def __init__(self, scene=None): logging.debug("In Protractor::__init__()") self._status = 0 self._angleWidget = vtk.vtkAngleWidget() self._handle = vtk.vtkPointHandleRepresentation3D() self._representation = vtk.vtkAngleRepresentation2D() self._representation.SetHandleRepresentation(self._handle) self._angleWidget.CreateDefaultRepresentation() self._angleWidget.SetRepresentation(self._representation) self._angleWidget.parent = self self._started = False self._pointColor = self._handle.GetProperty().GetColor() self._lineColor = self._representation.GetRay1().GetProperty().GetColor() self._fontColor = self._representation.GetArc().GetLabelTextProperty().GetColor() self._placePointEvent = self._angleWidget.AddObserver("PlacePointEvent", self._startEvent)
def __init__(self, scene=None): logging.debug("In Ruler::__init__()") self._scene = scene self._distanceWidget = vtk.vtkDistanceWidget() self._handle = vtk.vtkPointHandleRepresentation3D() self._representation = vtk.vtkDistanceRepresentation2D() self._representation.SetHandleRepresentation(self._handle) self._distanceWidget.SetRepresentation(self._representation) self._distanceWidget.CreateDefaultRepresentation() self._distanceWidget.parent = self self._started = False self._lineColor = [0, 1, 0] self._fontColor = [0, 1, 0] self._handle.GetProperty().SetOpacity(0.01) self._distanceWidget.AddObserver("PlacePointEvent", self.startEvent)
def __init__(self, parent=None): QtWidgets.QMainWindow.__init__(self, parent) self.frame = QtWidgets.QFrame() self.vl = QtWidgets.QVBoxLayout() self.vtkWidget = QVTKRenderWindowInteractor(self.frame) self.vl.addWidget(self.vtkWidget) self.ren = vtk.vtkRenderer() self.vtkWidget.GetRenderWindow().AddRenderer(self.ren) self.iren = self.vtkWidget.GetRenderWindow().GetInteractor() self.widget = vtk.vtkDistanceWidget() self.widget.SetInteractor(self.iren) self.handle = vtk.vtkPointHandleRepresentation3D() self.representation = vtk.vtkDistanceRepresentation2D() self.representation.SetHandleRepresentation(self.handle) self.widget.SetRepresentation(self.representation) self.widget.CreateDefaultRepresentation() self.widget.On() # Create source source = vtk.vtkSphereSource() source.SetCenter(0, 0, 0) source.SetRadius(5.0) # Create a mapper mapper = vtk.vtkPolyDataMapper() mapper.SetInputConnection(source.GetOutputPort()) # Create an actor actor = vtk.vtkActor() actor.SetMapper(mapper) self.ren.AddActor(actor) self.ren.ResetCamera() self.frame.setLayout(self.vl) self.setCentralWidget(self.frame) self.show() self.iren.Initialize() self.iren.Start()
# Add the actors to the renderer, set the backgournd and size ren1.AddActor(demActor) ren1.GetActiveCamera().SetViewUp(0, 0, 1) ren1.GetActiveCamera().SetPosition(-99900, -21354, 131801) ren1.GetActiveCamera().SetFocalPoint(41461, 41461, 2815) ren1.ResetCamera() ren1.ResetCameraClippingRange() # Here comes the surface constrained handle widget stuff.... widget = vtk.vtkHandleWidget() widget.SetInteractor(iren) rep = vtk.vtkPointHandleRepresentation3D() widget.SetRepresentation(rep) pointPlacer = vtk.vtkPolygonalSurfacePointPlacer() pointPlacer.AddProp(demActor) pointPlacer.GetPolys().AddItem(pd) rep.SetPointPlacer(pointPlacer) # Let the surface constrained point-placer be the sole constraint dictating # the placement of handles. Lets not over-constrain it allowing axis # constrained interactions. widget.EnableAxisConstraintOff() # Set some defaults on the handle widget