@@ -101,15 +101,15 @@ def getAverageNormalFromModel(model):
101101
102102 return averageNormal
103103
104- def getAverageNormalFromModelPoint (model ,point ):
104+ def getAverageNormalFromModelPoint (model ,point , radius = 3 ):
105105 normalsOfModel = slicer .util .arrayFromModelPointData (model , 'Normals' )
106106
107107 modelMesh = model .GetMesh ()
108108 pointID = modelMesh .FindPoint (point )
109109 normalAtPointID = normalsOfModel [pointID ]
110110
111111 cylinder = vtk .vtkCylinder ()
112- cylinder .SetRadius (3 )
112+ cylinder .SetRadius (radius )
113113 cylinder .SetCenter (point )
114114 cylinder .SetAxis (normalAtPointID )
115115
@@ -175,19 +175,21 @@ def createBox(X, Y, Z, name):
175175 miterBox .SetAndObservePolyData (triangleFilter .GetOutput ())
176176 return miterBox
177177
178- def createCylinder (R , name ):
178+ def createCylinder (name , R , H = 50 ):
179179 cylinder = slicer .mrmlScene .CreateNodeByClass ('vtkMRMLModelNode' )
180180 cylinder .SetName (slicer .mrmlScene .GetUniqueNameByString (name ))
181181 slicer .mrmlScene .AddNode (cylinder )
182182 cylinder .CreateDefaultDisplayNodes ()
183183 lineSource = vtk .vtkLineSource ()
184- lineSource .SetPoint1 (0 , 0 , 25 )
185- lineSource .SetPoint2 (0 , 0 , - 25 )
184+ lineSource .SetPoint1 (0 , 0 , H / 2 )
185+ lineSource .SetPoint2 (0 , 0 , - H / 2 )
186186 tubeFilter = vtk .vtkTubeFilter ()
187187 tubeFilter .SetInputConnection (lineSource .GetOutputPort ())
188188 tubeFilter .SetRadius (R )
189189 tubeFilter .SetNumberOfSides (50 )
190190 tubeFilter .CappingOn ()
191191 tubeFilter .Update ()
192192 cylinder .SetAndObservePolyData (tubeFilter .GetOutput ())
193+ cylinder .SetAttribute ('radius' ,str (R ))
194+ cylinder .SetAttribute ('height' ,str (H ))
193195 return cylinder
0 commit comments