1package require vtk
2package require vtkinteraction
3
4#
5# Test butterfly subdivision of point data
6#
7vtkSphereSource sphere
8    sphere SetPhiResolution 11
9    sphere SetThetaResolution 11
10
11vtkElevationFilter colorIt
12  colorIt SetInputConnection [sphere GetOutputPort]
13  colorIt SetLowPoint 0 0 -.5
14  colorIt SetHighPoint 0 0 .5
15
16vtkButterflySubdivisionFilter butterfly
17  butterfly SetInputConnection [colorIt GetOutputPort]
18  butterfly SetNumberOfSubdivisions 3
19
20vtkLookupTable lut
21  lut SetNumberOfColors 256
22  lut Build
23
24vtkPolyDataMapper mapper
25  mapper SetInputConnection [butterfly GetOutputPort]
26  mapper SetLookupTable lut
27
28vtkActor actor
29  actor SetMapper mapper
30
31vtkLinearSubdivisionFilter linear
32  linear SetInputConnection [colorIt GetOutputPort]
33  linear SetNumberOfSubdivisions 3
34
35vtkPolyDataMapper mapper2
36  mapper2 SetInputConnection [linear GetOutputPort]
37  mapper2 SetLookupTable lut
38
39vtkActor actor2
40  actor2 SetMapper mapper2
41
42vtkPolyDataMapper mapper3
43  mapper3 SetInputConnection [colorIt GetOutputPort]
44  mapper3 SetLookupTable lut
45
46vtkActor actor3
47  actor3 SetMapper mapper3
48
49vtkRenderer ren1
50vtkRenderer ren2
51vtkRenderer ren3
52
53vtkRenderWindow renWin
54    renWin AddRenderer ren1
55    renWin AddRenderer ren2
56    renWin AddRenderer ren3
57
58vtkRenderWindowInteractor iren
59    iren SetRenderWindow renWin
60
61ren1 AddActor actor
62ren1 SetBackground 1 1 1
63
64ren2 AddActor actor2
65ren2 SetBackground 1 1 1
66
67ren3 AddActor actor3
68ren3 SetBackground 1 1 1
69
70renWin SetSize 600 200
71vtkCamera aCamera
72  aCamera Azimuth 70
73vtkLight aLight
74eval aLight SetPosition [aCamera GetPosition]
75eval aLight SetFocalPoint [aCamera GetFocalPoint]
76
77ren1 SetActiveCamera aCamera
78ren1 AddLight aLight
79ren1 ResetCamera
80aCamera Dolly 1.4
81ren1 ResetCameraClippingRange
82
83ren2 SetActiveCamera aCamera
84ren2 AddLight aLight
85
86ren3 SetActiveCamera aCamera
87ren3 AddLight aLight
88
89ren3 SetViewport 0 0 .33 1
90ren2 SetViewport .33 0 .67 1
91ren1 SetViewport .67 0 1 1
92
93iren AddObserver UserEvent {wm deiconify .vtkInteract}
94iren Initialize
95
96proc flat {} {
97    [actor GetProperty] SetInterpolationToFlat
98    [actor2 GetProperty] SetInterpolationToFlat
99    [actor3 GetProperty] SetInterpolationToFlat
100    renWin Render
101}
102
103proc smooth {} {
104    [actor GetProperty] SetInterpolationToGouraud
105    [actor2 GetProperty] SetInterpolationToGouraud
106    [actor3 GetProperty] SetInterpolationToGouraud
107    renWin Render
108}
109
110
111wm withdraw .
112