2
# -*- coding: utf-8 -*-
5
=========================================================================
7
Program: Visualization Toolkit
8
Module: TestNamedColorsIntegration.py
10
Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
12
See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
14
This software is distributed WITHOUT ANY WARRANTY; without even
15
the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
16
PURPOSE. See the above copyright notice for more information.
18
=========================================================================
21
# Run this test like so:
22
# vtkpython deciFranFace.py -D $VTK_DATA_ROOT \
23
# -B $VTK_DATA_ROOT/Baseline/Graphics
26
import vtk.test.Testing
27
from vtk.util.misc import vtkGetDataRoot
28
VTK_DATA_ROOT = vtkGetDataRoot()
30
class deciFranFace(vtk.test.Testing.vtkTest):
32
def testDeciFranFace(self):
34
# Create the RenderWindow, Renderer and both Actors
36
ren1 = vtk.vtkRenderer()
37
ren2 = vtk.vtkRenderer()
38
ren3 = vtk.vtkRenderer()
39
ren4 = vtk.vtkRenderer()
40
renWin = vtk.vtkRenderWindow()
41
renWin.AddRenderer(ren1)
42
renWin.AddRenderer(ren2)
43
renWin.AddRenderer(ren3)
44
renWin.AddRenderer(ren4)
46
pnm1 = vtk.vtkPNGReader()
47
pnm1.SetFileName(VTK_DATA_ROOT + "/Data/fran_cut.png")
48
atext = vtk.vtkTexture()
49
atext.SetInputConnection(pnm1.GetOutputPort())
52
# create a cyberware source
54
fran = vtk.vtkPolyDataReader()
55
fran.SetFileName(VTK_DATA_ROOT + "/Data/fran_cut.vtk")
57
# Create a table of decimation conditions
59
boundaryVertexDeletion = ["On", "Off"]
60
accumulates = ["On", "Off"]
66
for topology in boundaryVertexDeletion:
67
for accumulate in accumulates:
68
idx = topology + accumulate
69
deci.update({idx: vtk.vtkDecimatePro()})
70
deci[idx].SetInputConnection(fran.GetOutputPort())
71
deci[idx].SetTargetReduction(.95)
73
deci[idx].PreserveTopologyOn()
74
elif topology == "Off":
75
deci[idx].PreserveTopologyOff()
76
if accumulate == "On":
77
deci[idx].AccumulateErrorOn()
78
elif accumulate == "Off":
79
deci[idx].AccumulateErrorOff()
80
mapper.update({idx: vtk.vtkPolyDataMapper()})
81
mapper[idx].SetInputConnection(deci[idx].GetOutputPort())
82
actor.update({idx: vtk.vtkActor()})
83
actor[idx].SetMapper(mapper[idx])
84
actor[idx].SetTexture(atext)
86
# Add the actors to the renderer, set the background and size
88
ren1.SetViewport(0, .5, .5, 1)
89
ren2.SetViewport(.5, .5, 1, 1)
90
ren3.SetViewport(0, 0, .5, .5)
91
ren4.SetViewport(.5, 0, 1, .5)
93
ren1.AddActor(actor["OnOn"])
94
ren2.AddActor(actor["OnOff"])
95
ren3.AddActor(actor["OffOn"])
96
ren4.AddActor(actor["OffOff"])
98
camera = vtk.vtkCamera()
99
ren1.SetActiveCamera(camera)
100
ren2.SetActiveCamera(camera)
101
ren3.SetActiveCamera(camera)
102
ren4.SetActiveCamera(camera)
104
ren1.GetActiveCamera().SetPosition(0.314753, -0.0699988, -0.264225)
105
ren1.GetActiveCamera().SetFocalPoint(0.00188636, -0.136847, -5.84226e-09)
106
ren1.GetActiveCamera().SetViewAngle(30)
107
ren1.GetActiveCamera().SetViewUp(0, 1, 0)
108
ren1.ResetCameraClippingRange()
110
ren2.ResetCameraClippingRange()
111
ren3.ResetCameraClippingRange()
112
ren4.ResetCameraClippingRange()
114
ren1.SetBackground(1, 1, 1)
115
ren2.SetBackground(1, 1, 1)
116
ren3.SetBackground(1, 1, 1)
117
ren4.SetBackground(1, 1, 1)
118
renWin.SetSize(500, 500)
120
# render and interact with data
122
iRen = vtk.vtkRenderWindowInteractor()
123
iRen.SetRenderWindow(renWin);
126
img_file = "deciFranFace.png"
127
vtk.test.Testing.compareImage(iRen.GetRenderWindow(), vtk.test.Testing.getAbsImagePath(img_file), threshold=25)
128
vtk.test.Testing.interact()
130
if __name__ == "__main__":
131
vtk.test.Testing.main([(deciFranFace, 'test')])