~ubuntu-branches/ubuntu/utopic/vtk6/utopic

« back to all changes in this revision

Viewing changes to Filters/Core/Testing/Python/deciFranFace.py

  • Committer: Package Import Robot
  • Author(s): Anton Gladky
  • Date: 2014-01-07 21:26:32 UTC
  • Revision ID: package-import@ubuntu.com-20140107212632-vzwzmu3oyc3obmsg
Tags: upstream-6.0.0
ImportĀ upstreamĀ versionĀ 6.0.0

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
#!/usr/bin/env python
 
2
# -*- coding: utf-8 -*-
 
3
 
 
4
'''
 
5
=========================================================================
 
6
 
 
7
  Program:   Visualization Toolkit
 
8
  Module:    TestNamedColorsIntegration.py
 
9
 
 
10
  Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
 
11
  All rights reserved.
 
12
  See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
 
13
 
 
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.
 
17
 
 
18
=========================================================================
 
19
'''
 
20
 
 
21
# Run this test like so:
 
22
# vtkpython deciFranFace.py  -D $VTK_DATA_ROOT \
 
23
# -B $VTK_DATA_ROOT/Baseline/Graphics
 
24
 
 
25
import vtk
 
26
import vtk.test.Testing
 
27
from vtk.util.misc import vtkGetDataRoot
 
28
VTK_DATA_ROOT = vtkGetDataRoot()
 
29
 
 
30
class deciFranFace(vtk.test.Testing.vtkTest):
 
31
 
 
32
    def testDeciFranFace(self):
 
33
 
 
34
        # Create the RenderWindow, Renderer and both Actors
 
35
        #
 
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)
 
45
 
 
46
        pnm1 = vtk.vtkPNGReader()
 
47
        pnm1.SetFileName(VTK_DATA_ROOT + "/Data/fran_cut.png")
 
48
        atext = vtk.vtkTexture()
 
49
        atext.SetInputConnection(pnm1.GetOutputPort())
 
50
        atext.InterpolateOn()
 
51
 
 
52
        # create a cyberware source
 
53
        #
 
54
        fran = vtk.vtkPolyDataReader()
 
55
        fran.SetFileName(VTK_DATA_ROOT + "/Data/fran_cut.vtk")
 
56
 
 
57
        # Create a table of decimation conditions
 
58
        #
 
59
        boundaryVertexDeletion = ["On", "Off"]
 
60
        accumulates = ["On", "Off"]
 
61
 
 
62
        deci = dict()
 
63
        mapper = dict()
 
64
        actor = dict()
 
65
 
 
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)
 
72
                if topology == "On":
 
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)
 
85
 
 
86
        # Add the actors to the renderer, set the background and size
 
87
        #
 
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)
 
92
 
 
93
        ren1.AddActor(actor["OnOn"])
 
94
        ren2.AddActor(actor["OnOff"])
 
95
        ren3.AddActor(actor["OffOn"])
 
96
        ren4.AddActor(actor["OffOff"])
 
97
 
 
98
        camera = vtk.vtkCamera()
 
99
        ren1.SetActiveCamera(camera)
 
100
        ren2.SetActiveCamera(camera)
 
101
        ren3.SetActiveCamera(camera)
 
102
        ren4.SetActiveCamera(camera)
 
103
 
 
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()
 
109
 
 
110
        ren2.ResetCameraClippingRange()
 
111
        ren3.ResetCameraClippingRange()
 
112
        ren4.ResetCameraClippingRange()
 
113
 
 
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)
 
119
 
 
120
        # render and interact with data
 
121
 
 
122
        iRen = vtk.vtkRenderWindowInteractor()
 
123
        iRen.SetRenderWindow(renWin);
 
124
        renWin.Render()
 
125
 
 
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()
 
129
 
 
130
if __name__ == "__main__":
 
131
     vtk.test.Testing.main([(deciFranFace, 'test')])