예제 #1
1
 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)
예제 #2
0
파일: ruler.py 프로젝트: aevum/moonstone
 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)
예제 #3
0
    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