def Execute(self): if self.Surface == None: self.PrintError('Error: no Surface.') if not self.vmtkRenderer: self.vmtkRenderer = vmtkrenderer.vmtkRenderer() self.vmtkRenderer.Initialize() self.OwnRenderer = 1 self.vmtkRenderer.RegisterScript(self) triangleFilter = vtk.vtkTriangleFilter() triangleFilter.SetInputData(self.Surface) triangleFilter.Update() self.Surface = triangleFilter.GetOutput() contourScalars = vtk.vtkDoubleArray() contourScalars.SetNumberOfComponents(1) contourScalars.SetNumberOfTuples(self.Surface.GetNumberOfPoints()) contourScalars.SetName(self.ContourScalarsArrayName) contourScalars.FillComponent(0,self.OutsideValue) self.Surface.GetPointData().AddArray(contourScalars) self.Surface.GetPointData().SetActiveScalars(self.ContourScalarsArrayName) mapper = vtk.vtkPolyDataMapper() mapper.SetInputData(self.Surface) mapper.ScalarVisibilityOn() self.Actor = vtk.vtkActor() self.Actor.SetMapper(mapper) self.Actor.GetMapper().SetScalarRange(-1.0,0.0) self.vmtkRenderer.Renderer.AddActor(self.Actor) self.ContourWidget = vtk.vtkContourWidget() self.ContourWidget.SetInteractor(self.vmtkRenderer.RenderWindowInteractor) rep = vtk.vtkOrientedGlyphContourRepresentation.SafeDownCast(self.ContourWidget.GetRepresentation()) rep.GetLinesProperty().SetColor(1, 0.2, 0) rep.GetLinesProperty().SetLineWidth(3.0) pointPlacer = vtk.vtkPolygonalSurfacePointPlacer() pointPlacer.AddProp(self.Actor) pointPlacer.GetPolys().AddItem(self.Surface) rep.SetPointPlacer(pointPlacer) self.Interpolator = vtk.vtkPolygonalSurfaceContourLineInterpolator() self.Interpolator.GetPolys().AddItem(self.Surface) rep.SetLineInterpolator(self.Interpolator) self.vmtkRenderer.AddKeyBinding('space','Generate scalars',self.ScalarsCallback) self.vmtkRenderer.AddKeyBinding('d','Delete contour',self.DeleteContourCallback) self.vmtkRenderer.AddKeyBinding('i','Start interaction',self.InteractCallback) self.Display() if self.OwnRenderer: self.vmtkRenderer.Deallocate()
def Execute(self): if self.Surface == None: self.PrintError('Error: no Surface.') if not self.vmtkRenderer: self.vmtkRenderer = vmtkrenderer.vmtkRenderer() self.vmtkRenderer.Initialize() self.OwnRenderer = 1 self.vmtkRenderer.RegisterScript(self) triangleFilter = vtk.vtkTriangleFilter() triangleFilter.SetInputData(self.Surface) triangleFilter.Update() self.Surface = triangleFilter.GetOutput() contourScalars = vtk.vtkDoubleArray() contourScalars.SetNumberOfComponents(1) contourScalars.SetNumberOfTuples(self.Surface.GetNumberOfPoints()) contourScalars.SetName(self.ContourScalarsArrayName) contourScalars.FillComponent(0,self.OutsideValue) self.Surface.GetPointData().AddArray(contourScalars) self.Surface.GetPointData().SetActiveScalars(self.ContourScalarsArrayName) mapper = vtk.vtkPolyDataMapper() mapper.SetInputData(self.Surface) mapper.ScalarVisibilityOn() self.Actor = vtk.vtkActor() self.Actor.SetMapper(mapper) self.Actor.GetMapper().SetScalarRange(-1.0,0.0) self.vmtkRenderer.Renderer.AddActor(self.Actor) self.ContourWidget = vtk.vtkContourWidget() self.ContourWidget.SetInteractor(self.vmtkRenderer.RenderWindowInteractor) rep = vtk.vtkOrientedGlyphContourRepresentation.SafeDownCast(self.ContourWidget.GetRepresentation()) rep.GetLinesProperty().SetColor(1, 0.2, 0) rep.GetLinesProperty().SetLineWidth(3.0) pointPlacer = vtk.vtkPolygonalSurfacePointPlacer() pointPlacer.AddProp(self.Actor) pointPlacer.GetPolys().AddItem(self.Surface) rep.SetPointPlacer(pointPlacer) self.Interpolator = vtk.vtkPolygonalSurfaceContourLineInterpolator() self.Interpolator.GetPolys().AddItem(self.Surface) rep.SetLineInterpolator(self.Interpolator) self.vmtkRenderer.AddKeyBinding('space','Generate scalars',self.ScalarsCallback) self.vmtkRenderer.AddKeyBinding('d','Delete contour',self.DeleteContourCallback) self.vmtkRenderer.AddKeyBinding('i','Start interaction',self.InteractCallback) self.Display() if self.OwnRenderer: self.vmtkRenderer.Deallocate()
def Execute(self): from vmtk import vmtkscripts if self.Surface == None: self.PrintError('Error: no Surface.') if not self.vmtkRenderer: self.vmtkRenderer = vmtkrenderer.vmtkRenderer() self.vmtkRenderer.Initialize() self.OwnRenderer = 1 self.vmtkRenderer.RegisterScript(self) triangleFilter = vtk.vtkTriangleFilter() triangleFilter.SetInputData(self.Surface) triangleFilter.Update() self.Surface = triangleFilter.GetOutput() self.tagviewer = vmtkscripts.vmtkSurfaceViewer() self.tagviewer.Surface = self.Surface self.tagviewer.vmtkRenderer = self.vmtkRenderer self.tagviewer.Representation = 'edges' self.tagviewer.Opacity = self.Opacity self.tagviewer.Execute() self.ContourWidget = vtk.vtkContourWidget() self.ContourWidget.SetInteractor( self.vmtkRenderer.RenderWindowInteractor) rep = vtk.vtkOrientedGlyphContourRepresentation.SafeDownCast( self.ContourWidget.GetRepresentation()) rep.GetLinesProperty().SetColor(1, 0, 0) rep.GetLinesProperty().SetLineWidth(4.0) pointPlacer = vtk.vtkPolygonalSurfacePointPlacer() pointPlacer.AddProp(self.tagviewer.Actor) pointPlacer.GetPolys().AddItem(self.Surface) rep.SetPointPlacer(pointPlacer) self.Interpolator = vtk.vtkPolygonalSurfaceContourLineInterpolator() self.Interpolator.GetPolys().AddItem(self.Surface) rep.SetLineInterpolator(self.Interpolator) self.InputInfo("Building loop ...\n") self.vmtkRenderer.AddKeyBinding('space', 'Generate loop', self.LoopCallback) self.vmtkRenderer.AddKeyBinding('d', 'Delete contour', self.DeleteContourCallback) self.vmtkRenderer.AddKeyBinding('i', 'Start/stop contour drawing', self.InteractCallback) self.Display() if self.OwnRenderer: self.vmtkRenderer.Deallocate()
def Execute(self): from vmtk import vmtkscripts if self.Surface == None: self.PrintError('Error: no Surface.') if not self.vmtkRenderer: self.vmtkRenderer = vmtkrenderer.vmtkRenderer() self.vmtkRenderer.Initialize() self.OwnRenderer = 1 self.vmtkRenderer.RegisterScript(self) triangleFilter = vtk.vtkTriangleFilter() triangleFilter.SetInputData(self.Surface) triangleFilter.Update() self.Surface = triangleFilter.GetOutput() self.tagviewer = vmtkscripts.vmtkSurfaceViewer() self.tagviewer.Surface = self.Surface self.tagviewer.vmtkRenderer = self.vmtkRenderer self.tagviewer.Representation = 'edges' self.tagviewer.Opacity = self.Opacity self.tagviewer.Execute() self.ContourWidget = vtk.vtkContourWidget() self.ContourWidget.SetInteractor(self.vmtkRenderer.RenderWindowInteractor) rep = vtk.vtkOrientedGlyphContourRepresentation.SafeDownCast(self.ContourWidget.GetRepresentation()) rep.GetLinesProperty().SetColor(1, 0, 0) rep.GetLinesProperty().SetLineWidth(4.0) pointPlacer = vtk.vtkPolygonalSurfacePointPlacer() pointPlacer.AddProp(self.tagviewer.Actor) pointPlacer.GetPolys().AddItem(self.Surface) rep.SetPointPlacer(pointPlacer) self.Interpolator = vtk.vtkPolygonalSurfaceContourLineInterpolator() self.Interpolator.GetPolys().AddItem(self.Surface) rep.SetLineInterpolator(self.Interpolator) self.InputInfo("Building loop ...\n") self.vmtkRenderer.AddKeyBinding('space','Generate loop',self.LoopCallback) self.vmtkRenderer.AddKeyBinding('d','Delete contour',self.DeleteContourCallback) self.vmtkRenderer.AddKeyBinding('i','Start/stop contour drawing',self.InteractCallback) self.Display() if self.OwnRenderer: self.vmtkRenderer.Deallocate()
def _InitializeWidget(self): contourWidget = vtk.vtkContourWidget() contourWidget.SetInteractor(self.RenderWindowInteractor) contourWidget.FollowCursorOn() eventTranslator = contourWidget.GetEventTranslator() # Right Button Press controls both camera dolly and contour loop closing, # which can lead to premature interaction end eventTranslator.RemoveTranslation(vtk.vtkCommand.RightButtonPressEvent) set_event_translator_key_press_event(eventTranslator, vtk.vtkWidgetEvent.AddFinalPoint, 'c') set_event_translator_key_press_event(eventTranslator, vtk.vtkWidgetEvent.Delete, 'd') set_event_translator_key_press_event(eventTranslator, vtk.vtkWidgetEvent.Reset, 'r') rep = contourWidget.GetRepresentation() repProperty = rep.GetLinesProperty() repProperty.SetColor(1, 0, 0) repProperty.SetLineWidth(4.0) pointPlacer = vtk.vtkPolygonalSurfacePointPlacer() pointPlacer.AddProp(self.Actor) pointPlacer.GetPolys().AddItem(self.InputData) interpolator = vtk.vtkPolygonalSurfaceContourLineInterpolator() interpolator.GetPolys().AddItem(self.InputData) rep.SetPointPlacer(pointPlacer) rep.SetLineInterpolator(interpolator) self.ContourWidget = contourWidget self.PointPlacer = pointPlacer self.Interpolator = interpolator self.ContourRepresentation = rep
ren1.GetActiveCamera().Dolly(4.2) ren1.ResetCameraClippingRange() # Here comes the contour widget stuff..... contourWidget = vtk.vtkContourWidget() contourWidget.SetInteractor(iren) rep = contourWidget.GetRepresentation() rep.GetLinesProperty().SetColor(1, 0.2, 0) rep.GetLinesProperty().SetLineWidth(3.0) pointPlacer = vtk.vtkPolygonalSurfacePointPlacer() pointPlacer.AddProp(demActor) pointPlacer.GetPolys().AddItem(pd) rep.SetPointPlacer(pointPlacer) interpolator = vtk.vtkPolygonalSurfaceContourLineInterpolator() interpolator.GetPolys().AddItem( pd ) rep.SetLineInterpolator(interpolator) del interpolator if distanceOffsetSpecified: pointPlacer.SetDistanceOffset( distanceOffset ) interpolator.SetDistanceOffset( distanceOffset ) recorder = vtk.vtkInteractorEventRecorder() recorder.SetInteractor(iren) recorder.ReadFromInputStringOn() recorder.SetInputString(TestDijkstraGraphGeodesicPathLog) recorder.EnabledOn() renWin.Render() iren.Initialize()