1
- import vtk , qt , ctk , slicer , time
1
+ import time
2
2
import os
3
+
4
+ import ctk
5
+ import qt
6
+ import vtk
7
+
8
+ import slicer
9
+
10
+
3
11
#
4
12
# testCameraPath
5
13
#
@@ -17,6 +25,7 @@ def __init__(self, parent):
17
25
self .parent = parent
18
26
19
27
28
+ #
20
29
# qtestCameraPathWidget
21
30
#
22
31
@@ -50,133 +59,106 @@ def setup(self):
50
59
self .RemoveButton .toolTip = "Remove KeyFrames"
51
60
self .RemoveButton .connect ('clicked()' , self .onRemoveButton )
52
61
progress_layout .addWidget (self .RemoveButton )
53
-
62
+
54
63
self .AddButton = qt .QPushButton ("Add KeyFrame" )
55
64
self .AddButton .toolTip = "Add KeyFrame"
56
65
self .AddButton .connect ('clicked()' , self .onAddButton )
57
66
progress_layout .addWidget (self .AddButton )
58
-
67
+
59
68
self .CreateButton = qt .QPushButton ("Create Path" )
60
69
self .CreateButton .toolTip = "Create Path"
61
70
self .CreateButton .connect ('clicked()' , self .onCreateButton )
62
71
progress_layout .addWidget (self .CreateButton )
63
-
72
+
64
73
self .FlyButton = qt .QPushButton ("Fly !" )
65
74
self .FlyButton .toolTip = "Fly !"
66
75
self .FlyButton .connect ('clicked()' , self .onFlyButton )
67
76
self .FlyButton .setEnabled (False )
68
77
progress_layout .addWidget (self .FlyButton )
69
-
78
+
70
79
# LOGIC
71
80
self .defaultCam = slicer .mrmlScene .GetNodeByID ('vtkMRMLCameraNode1' )
72
81
self .Time = 0
73
82
self .CameraList = []
74
83
self .cameraPath = slicer .vtkMRMLCameraPathNode ()
75
- posSpline = self .cameraPath .GetPositionSplines ()
76
- focalSpline = self .cameraPath .GetFocalPointSplines ()
77
- viewSpline = self .cameraPath .GetViewUpSplines ()
78
-
79
- posSpline .SetName ('posSpline' )
80
- focalSpline .SetName ('focalSpline' )
81
- viewSpline .SetName ('viewSpline' )
82
-
83
- slicer .mrmlScene .AddNode (self .cameraPath )
84
- slicer .mrmlScene .AddNode (posSpline )
85
- slicer .mrmlScene .AddNode (focalSpline )
86
- slicer .mrmlScene .AddNode (viewSpline )
87
-
88
- self .Flying = False
84
+ posSpline = self .cameraPath .GetPositionSplines ()
85
+ focalSpline = self .cameraPath .GetFocalPointSplines ()
86
+ viewSpline = self .cameraPath .GetViewUpSplines ()
87
+
88
+ posSpline .SetName ('posSpline' )
89
+ focalSpline .SetName ('focalSpline' )
90
+ viewSpline .SetName ('viewSpline' )
91
+
92
+ slicer .mrmlScene .AddNode (self .cameraPath )
93
+ slicer .mrmlScene .AddNode (posSpline )
94
+ slicer .mrmlScene .AddNode (focalSpline )
95
+ slicer .mrmlScene .AddNode (viewSpline )
96
+
97
+ self .Flying = False
89
98
90
99
def onRemoveButton (self ):
91
-
92
100
print "-- Removing KeyFrames"
93
101
self .cameraPath .RemoveKeyFrames ()
94
-
102
+
95
103
if self .CameraList :
96
- for camera in self .CameraList :
97
- print camera .GetName ()
98
- slicer .mrmlScene .RemoveNode (camera )
99
- del self .CameraList [:]
100
-
104
+ for camera in self .CameraList :
105
+ print camera .GetName ()
106
+ slicer .mrmlScene .RemoveNode (camera )
107
+ del self .CameraList [:]
108
+
101
109
self .Time = 0
102
-
110
+
103
111
def onAddButton (self ):
104
-
105
- print " -- Adding Keyframe at t =" ,self .Time
106
- camera = slicer .mrmlScene .CreateNodeByClass ('vtkMRMLCameraNode' )
107
- slicer .mrmlScene .AddNode (camera )
108
-
109
- x = vtk .mutable (0 )
110
- y = vtk .mutable (0 )
111
- z = vtk .mutable (0 )
112
- value = [x ,y ,z ]
113
-
114
- self .defaultCam .GetPosition (value )
115
- camera .SetPosition (value )
116
- self .defaultCam .GetFocalPoint (value )
117
- camera .SetFocalPoint (value )
118
- self .defaultCam .GetViewUp (value )
119
- camera .SetViewUp (value )
120
-
121
- cameraName = 'Camera T = ' + str (self .Time )
122
- print cameraName
123
- camera .SetName (cameraName )
124
-
125
- self .cameraPath .AddKeyFrame (self .Time , camera )
126
- self .Time += 100
127
- self .CameraList .append (camera )
128
-
112
+ print " -- Adding Keyframe at t =" ,self .Time
113
+ camera = slicer .mrmlScene .CreateNodeByClass ('vtkMRMLCameraNode' )
114
+ slicer .mrmlScene .AddNode (camera )
115
+
116
+ x = vtk .mutable (0 )
117
+ y = vtk .mutable (0 )
118
+ z = vtk .mutable (0 )
119
+ value = [x ,y ,z ]
120
+
121
+ self .defaultCam .GetPosition (value )
122
+ camera .SetPosition (value )
123
+ self .defaultCam .GetFocalPoint (value )
124
+ camera .SetFocalPoint (value )
125
+ self .defaultCam .GetViewUp (value )
126
+ camera .SetViewUp (value )
127
+
128
+ cameraName = 'Camera T = ' + str (self .Time )
129
+ print cameraName
130
+ camera .SetName (cameraName )
131
+
132
+ self .cameraPath .AddKeyFrame (self .Time , camera )
133
+ self .Time += 100
134
+ self .CameraList .append (camera )
135
+
129
136
self .FlyButton .setEnabled (False )
130
137
131
138
def onCreateButton (self ):
132
-
133
- print " -- Creating Path"
134
- self .cameraPath .CreatePath ();
139
+ print " -- Creating Path"
140
+ self .cameraPath .CreatePath ();
135
141
self .FlyButton .setEnabled (True )
136
142
137
-
138
143
def onFlyButton (self ):
139
-
140
144
if not self .Flying :
141
- print " -- FLYING !"
142
- self .Flying = True
145
+ print " -- FLYING !"
146
+ self .Flying = True
143
147
self .FlyButton .setText ("Stop" )
144
-
145
- for t in range (0 ,self .Time - 99 ):
146
- if not self .Flying :
147
- return
148
- self .cameraPath .GetCameraAt (t ,self .defaultCam )
149
- self .defaultCam .ResetClippingRange ()
150
- print t
151
- slicer .app .processEvents ()
152
- time .sleep (0.05 )
153
-
154
- print "End"
155
- self .Flying = False
156
- self .FlyButton .setText ("Fly!" )
157
-
158
- else :
159
- print " -- Stopped"
160
- self .Flying = False
161
- self .FlyButton .setText ("Fly!" )
162
-
148
+ for t in range (0 ,self .Time - 99 ):
149
+ if not self .Flying :
150
+ return
151
+ self .cameraPath .GetCameraAt (t ,self .defaultCam )
152
+ self .defaultCam .ResetClippingRange ()
153
+ print t
154
+ slicer .app .processEvents ()
155
+ time .sleep (0.05 )
156
+ print "End"
157
+ self .Flying = False
158
+ self .FlyButton .setText ("Fly!" )
159
+ else :
160
+ print " -- Stopped"
161
+ self .Flying = False
162
+ self .FlyButton .setText ("Fly!" )
163
163
self .FlyButton .setEnabled (True )
164
-
165
-
166
-
167
-
168
-
169
-
170
-
171
-
172
-
173
-
174
-
175
-
176
-
177
-
178
-
179
-
180
-
181
-
182
-
164
+
0 commit comments