コード例 #1
0
ファイル: vtkAxes.py プロジェクト: fvpolpeta/devide
 def __init__(self, module_manager):
     SimpleVTKClassModuleBase.__init__(
         self, module_manager,
         vtk.vtkAxes(), 'Processing.',
         (), ('vtkPolyData',),
         replaceDoc=True,
         inputFunctions=None, outputFunctions=None)
コード例 #2
0
    def __init__ (self, mod_m):
        debug ("In Locator::__init__ ()")
        Common.state.busy ()
        Base.Objects.Module.__init__ (self, mod_m)

        self.root = None
	self.axesactor = None
        self.slider = []
	self.resoln_var = []
	self.maxlen=0.0
        self.plotline_var = Tkinter.IntVar ()
        self.tubesize_var = Tkinter.DoubleVar ()
        self.linelenres_var = Tkinter.DoubleVar ()
	self.npoints_var = Tkinter.IntVar ()
        self.data_out = self.mod_m.GetOutput ()        

        self.line=vtkpython.vtkLineSource()
	self.probe=vtkpython.vtkProbeFilter()
        self.plotline = self.actor = vtkpython.vtkXYPlotActor ()

	self.tuber = vtkpython.vtkTubeFilter()
	self.lineactor = vtkpython.vtkActor()
	self.mapper = vtkpython.vtkPolyDataMapper()
        self.axes=vtkpython.vtkAxes()
	self.trans = vtkpython.vtkTransform()
        self.axesactor = vtkpython.vtkActor()

        self._initialize ()

        self.renwin.add_actors (self.lineactor)
        self.renwin.add_actors (self.plotline)
        self.pipe_objs = self.plotline
        self.renwin.Render ()
        Common.state.idle ()
コード例 #3
0
    def draw_axes_array(self, point_array, color):
        points_vtk = vtk.vtkPoints()
        for x, y, z in point_array:
            points_vtk.InsertNextPoint(x, -y, z)

        points_polydata = vtk.vtkPolyData()
        points_polydata.SetPoints(points_vtk)

        axes = vtk.vtkAxes()
        axes.SetScaleFactor(0.5)
        sphere = vtk.vtkSphereSource()
        sphere.SetRadius(0.01)
        normals_filter = vtk.vtkPolyDataNormals()
        normals_filter.FlipNormalsOn()
        normals_filter.SetInputConnection(axes.GetOutputPort())

        axes_glyph_mapper = vtk.vtkGlyph3DMapper()
        axes_glyph_mapper.SetInputData(points_polydata)
        axes_glyph_mapper.SetSourceConnection(axes.GetOutputPort())

        axes_glyph_actor = vtk.vtkActor()
        axes_glyph_actor.SetMapper(axes_glyph_mapper)
        axes_glyph_actor.GetProperty().SetPointSize(6)
        axes_glyph_actor.GetProperty().SetColor(color)
        axes_glyph_actor.GetProperty().SetRepresentationToWireframe()

        self.renderer.AddActor(axes_glyph_actor)
コード例 #4
0
 def __init__(self, module_manager):
     SimpleVTKClassModuleBase.__init__(self,
                                       module_manager,
                                       vtk.vtkAxes(),
                                       'Processing.', (), ('vtkPolyData', ),
                                       replaceDoc=True,
                                       inputFunctions=None,
                                       outputFunctions=None)
コード例 #5
0
def CreateAxes():
    global xAxis, yAxis, zAxis, popSplatter

    # Create axes.
    popSplatter.Update()
    bounds = popSplatter.GetOutput().GetBounds()
    axes = vtk.vtkAxes()
    axes.SetOrigin(bounds[0], bounds[2], bounds[4])
    axes.SetScaleFactor(popSplatter.GetOutput().GetLength()/5.0)

    axesTubes = vtk.vtkTubeFilter()
    axesTubes.SetInputConnection(axes.GetOutputPort())
    axesTubes.SetRadius(axes.GetScaleFactor()/25.0)
    axesTubes.SetNumberOfSides(6)

    axesMapper = vtk.vtkPolyDataMapper()
    axesMapper.SetInputConnection(axesTubes.GetOutputPort())

    axesActor = vtk.vtkActor()
    axesActor.SetMapper(axesMapper)

    # Label the axes.
    XText = vtk.vtkVectorText()
    XText.SetText(xAxis)

    XTextMapper = vtk.vtkPolyDataMapper()
    XTextMapper.SetInputConnection(XText.GetOutputPort())

    XActor = vtk.vtkFollower()
    XActor.SetMapper(XTextMapper)
    XActor.SetScale(0.02, .02, .02)
    XActor.SetPosition(0.35, -0.05, -0.05)
    XActor.GetProperty().SetColor(0, 0, 0)

    YText = vtk.vtkVectorText()
    YText.SetText(yAxis)

    YTextMapper = vtk.vtkPolyDataMapper()
    YTextMapper.SetInputConnection(YText.GetOutputPort())

    YActor = vtk.vtkFollower()
    YActor.SetMapper(YTextMapper)
    YActor.SetScale(0.02, .02, .02)
    YActor.SetPosition(-0.05, 0.35, -0.05)
    YActor.GetProperty().SetColor(0, 0, 0)

    ZText = vtk.vtkVectorText()
    ZText.SetText(zAxis)

    ZTextMapper = vtk.vtkPolyDataMapper()
    ZTextMapper.SetInputConnection(ZText.GetOutputPort())

    ZActor = vtk.vtkFollower()
    ZActor.SetMapper(ZTextMapper)
    ZActor.SetScale(0.02, .02, .02)
    ZActor.SetPosition(-0.05, -0.05, 0.35)
    ZActor.GetProperty().SetColor(0, 0, 0)
    return axesActor, XActor, YActor, ZActor
コード例 #6
0
def CreateAxes():
    global xAxis, yAxis, zAxis, popSplatter

    # Create axes.
    popSplatter.Update()
    bounds = popSplatter.GetOutput().GetBounds()
    axes = vtk.vtkAxes()
    axes.SetOrigin(bounds[0], bounds[2], bounds[4])
    axes.SetScaleFactor(popSplatter.GetOutput().GetLength()/5.0)

    axesTubes = vtk.vtkTubeFilter()
    axesTubes.SetInputConnection(axes.GetOutputPort())
    axesTubes.SetRadius(axes.GetScaleFactor()/25.0)
    axesTubes.SetNumberOfSides(6)

    axesMapper = vtk.vtkPolyDataMapper()
    axesMapper.SetInputConnection(axesTubes.GetOutputPort())

    axesActor = vtk.vtkActor()
    axesActor.SetMapper(axesMapper)

    # Label the axes.
    XText = vtk.vtkVectorText()
    XText.SetText(xAxis)

    XTextMapper = vtk.vtkPolyDataMapper()
    XTextMapper.SetInputConnection(XText.GetOutputPort())

    XActor = vtk.vtkFollower()
    XActor.SetMapper(XTextMapper)
    XActor.SetScale(0.02, .02, .02)
    XActor.SetPosition(0.35, -0.05, -0.05)
    XActor.GetProperty().SetColor(0, 0, 0)

    YText = vtk.vtkVectorText()
    YText.SetText(yAxis)

    YTextMapper = vtk.vtkPolyDataMapper()
    YTextMapper.SetInputConnection(YText.GetOutputPort())

    YActor = vtk.vtkFollower()
    YActor.SetMapper(YTextMapper)
    YActor.SetScale(0.02, .02, .02)
    YActor.SetPosition(-0.05, 0.35, -0.05)
    YActor.GetProperty().SetColor(0, 0, 0)

    ZText = vtk.vtkVectorText()
    ZText.SetText(zAxis)

    ZTextMapper = vtk.vtkPolyDataMapper()
    ZTextMapper.SetInputConnection(ZText.GetOutputPort())

    ZActor = vtk.vtkFollower()
    ZActor.SetMapper(ZTextMapper)
    ZActor.SetScale(0.02, .02, .02)
    ZActor.SetPosition(-0.05, -0.05, 0.35)
    ZActor.GetProperty().SetColor(0, 0, 0)
    return axesActor, XActor, YActor, ZActor
コード例 #7
0
ファイル: main.py プロジェクト: xiao-code/pypetree
    def __init__(self):

        self.scene = Scene()
        self.frame = MainWindow(self.scene)

        self.camera_style = vtk.vtkInteractorStyleTrackballCamera()
        self.camera_style.AddObserver('LeftButtonPressEvent',
                                      self.bimodal_mouse_handler)
        self.camera_style.AddObserver('LeftButtonReleaseEvent',
                                      self.bimodal_mouse_handler)
        self.camera_style.AddObserver('MiddleButtonPressEvent',
                                      self.bimodal_mouse_handler)
        self.camera_style.AddObserver('MiddleButtonReleaseEvent',
                                      self.bimodal_mouse_handler)
        self.camera_style.AddObserver('RightButtonPressEvent',
                                      self.bimodal_mouse_handler)
        self.camera_style.AddObserver('RightButtonReleaseEvent',
                                      self.bimodal_mouse_handler)
        self.camera_style.AddObserver('MouseWheelForwardEvent',
                                      self.bimodal_mouse_handler)
        self.camera_style.AddObserver('MouseWheelBackwardEvent',
                                      self.bimodal_mouse_handler)
        self.camera_style.AddObserver('KeyPressEvent', lambda a, b: None)

        self.actor_style = vtk.vtkInteractorStyleTrackballActor()
        self.actor_style.AddObserver('LeftButtonPressEvent',
                                     self.bimodal_mouse_handler)
        self.actor_style.AddObserver('LeftButtonReleaseEvent',
                                     self.bimodal_mouse_handler)
        self.actor_style.AddObserver('MiddleButtonPressEvent',
                                     self.bimodal_mouse_handler)
        self.actor_style.AddObserver('MiddleButtonReleaseEvent',
                                     self.bimodal_mouse_handler)
        self.actor_style.AddObserver('RightButtonPressEvent',
                                     self.bimodal_mouse_handler)
        self.actor_style.AddObserver('RightButtonReleaseEvent',
                                     self.bimodal_mouse_handler)
        self.actor_style.AddObserver('MouseWheelForwardEvent',
                                     self.bimodal_mouse_handler)
        self.actor_style.AddObserver('MouseWheelBackwardEvent',
                                     self.bimodal_mouse_handler)
        self.actor_style.AddObserver('KeyPressEvent', lambda a, b: None)

        self.frame.iren.SetInteractorStyle(self.camera_style)
        self.frame.iren.AddObserver('KeyPressEvent', self.keypress_handler)
        self.frame.ren.SetBackground(name_to_rgb_float(MAIN_WIN_BG_COLOR))
        self.scene.frame = self.frame

        axes = vtk.vtkAxes()
        mapper = vtk.vtkPolyDataMapper()
        mapper.SetInputConnection(axes.GetOutputPort())
        self.frame.axes_actor = vtk.vtkActor()
        self.frame.axes_actor.SetMapper(mapper)
        self.frame.axes_actor.GetProperty().SetLineWidth(1)
        self.frame.axes_actor.SetVisibility(START_WITH_AXES)
        self.frame.ren.AddActor(self.frame.axes_actor)
コード例 #8
0
ファイル: main.py プロジェクト: cjauvin/pypetree
    def __init__(self):

        self.scene = Scene()
        self.frame = MainWindow(self.scene)

        self.camera_style = vtk.vtkInteractorStyleTrackballCamera()
        self.camera_style.AddObserver('LeftButtonPressEvent',
                                      self.bimodal_mouse_handler)
        self.camera_style.AddObserver('LeftButtonReleaseEvent',
                                      self.bimodal_mouse_handler)
        self.camera_style.AddObserver('MiddleButtonPressEvent',
                                      self.bimodal_mouse_handler)
        self.camera_style.AddObserver('MiddleButtonReleaseEvent',
                                      self.bimodal_mouse_handler)
        self.camera_style.AddObserver('RightButtonPressEvent',
                                      self.bimodal_mouse_handler)
        self.camera_style.AddObserver('RightButtonReleaseEvent',
                                      self.bimodal_mouse_handler)
        self.camera_style.AddObserver('MouseWheelForwardEvent',
                                      self.bimodal_mouse_handler)
        self.camera_style.AddObserver('MouseWheelBackwardEvent',
                                      self.bimodal_mouse_handler)
        self.camera_style.AddObserver('KeyPressEvent', lambda a, b: None)

        self.actor_style = vtk.vtkInteractorStyleTrackballActor()
        self.actor_style.AddObserver('LeftButtonPressEvent',
                                     self.bimodal_mouse_handler)
        self.actor_style.AddObserver('LeftButtonReleaseEvent',
                                     self.bimodal_mouse_handler)
        self.actor_style.AddObserver('MiddleButtonPressEvent',
                                     self.bimodal_mouse_handler)
        self.actor_style.AddObserver('MiddleButtonReleaseEvent',
                                     self.bimodal_mouse_handler)
        self.actor_style.AddObserver('RightButtonPressEvent',
                                     self.bimodal_mouse_handler)
        self.actor_style.AddObserver('RightButtonReleaseEvent',
                                     self.bimodal_mouse_handler)
        self.actor_style.AddObserver('MouseWheelForwardEvent',
                                     self.bimodal_mouse_handler)
        self.actor_style.AddObserver('MouseWheelBackwardEvent',
                                     self.bimodal_mouse_handler)
        self.actor_style.AddObserver('KeyPressEvent', lambda a, b: None)

        self.frame.iren.SetInteractorStyle(self.camera_style)
        self.frame.iren.AddObserver('KeyPressEvent', self.keypress_handler)
        self.frame.ren.SetBackground(name_to_rgb_float(MAIN_WIN_BG_COLOR))
        self.scene.frame = self.frame

        axes = vtk.vtkAxes()
        mapper = vtk.vtkPolyDataMapper()
        mapper.SetInputConnection(axes.GetOutputPort())
        self.frame.axes_actor = vtk.vtkActor()
        self.frame.axes_actor.SetMapper(mapper)
        self.frame.axes_actor.GetProperty().SetLineWidth(1)
        self.frame.axes_actor.SetVisibility(START_WITH_AXES)
        self.frame.ren.AddActor(self.frame.axes_actor)
コード例 #9
0
ファイル: ovdvtk.py プロジェクト: aewallin/randompolygon
    def __init__(self, center=(0,0,0), color=(0,0,1) ):
        """ create axes """
        self.src = vtk.vtkAxes()
        #self.src.SetCenter(center)

        self.mapper = vtk.vtkPolyDataMapper()
        self.mapper.SetInput(self.src.GetOutput())
        self.SetMapper(self.mapper)

        self.SetColor(color)
        self.SetOrigin(center)
コード例 #10
0
ファイル: myvtk.py プロジェクト: dubstar-04/libcutsim
    def __init__(self, center=(0, 0, 0), color=(0, 0, 1)):
        """ create axes """
        self.src = vtk.vtkAxes()
        #self.src.SetCenter(center)

        self.mapper = vtk.vtkPolyDataMapper()
        self.mapper.SetInputConnection(self.src.GetOutputPort())
        self.SetMapper(self.mapper)

        self.SetColor(color)
        self.SetOrigin(center)
コード例 #11
0
ファイル: TextOrigin.py プロジェクト: wangsen53/vtk-examples
def main():
    colors = vtk.vtkNamedColors()

    # Create the axes and the associated mapper and actor.
    axes = vtk.vtkAxes()
    axes.SetOrigin(0, 0, 0)
    axesMapper = vtk.vtkPolyDataMapper()
    axesMapper.SetInputConnection(axes.GetOutputPort())
    axesActor = vtk.vtkActor()
    axesActor.SetMapper(axesMapper)

    # Create the 3D text and the associated mapper and follower (a type of actor).  Position the text so it is displayed over the origin of the axes.
    atext = vtk.vtkVectorText()
    atext.SetText('Origin')
    textMapper = vtk.vtkPolyDataMapper()
    textMapper.SetInputConnection(atext.GetOutputPort())
    textActor = vtk.vtkFollower()
    textActor.SetMapper(textMapper)
    textActor.SetScale(0.2, 0.2, 0.2)
    textActor.AddPosition(0, -0.1, 0)
    textActor.GetProperty().SetColor(colors.GetColor3d('Peacock'))

    # Create the Renderer, RenderWindow, and RenderWindowInteractor.
    renderer = vtk.vtkRenderer()
    renderWindow = vtk.vtkRenderWindow()
    renderWindow.AddRenderer(renderer)
    renderWindow.SetSize(640, 480)

    interactor = vtk.vtkRenderWindowInteractor()
    interactor.SetRenderWindow(renderWindow)

    style = vtk.vtkInteractorStyleTrackballCamera()
    interactor.SetInteractorStyle(style)

    # Add the actors to the renderer.
    renderer.AddActor(axesActor)
    renderer.AddActor(textActor)

    renderer.SetBackground(colors.GetColor3d('Silver'))

    # Zoom in closer.
    renderer.ResetCamera()
    renderer.GetActiveCamera().Zoom(1.6)

    renderer.SetBackground(colors.GetColor3d('Silver'))

    # Reset the clipping range of the camera; set the camera of the follower; render.
    renderer.ResetCameraClippingRange()
    textActor.SetCamera(renderer.GetActiveCamera())

    interactor.Initialize()
    renderWindow.SetWindowName('TextOrigin')
    renderWindow.Render()
    interactor.Start()
コード例 #12
0
ファイル: ryuon_vtk.py プロジェクト: kichiki/stokes
def make_axesActor():
    axes = vtk.vtkAxes()
    axes.SetOrigin(0,0,0)
    axes.SetScaleFactor(4)
    axesTubes = vtk.vtkTubeFilter()
    axesTubes.SetInput(axes.GetOutput())
    axesTubes.SetRadius(axes.GetScaleFactor()/25.0)
    axesTubes.SetNumberOfSides(6)
    axesMapper = vtk.vtkPolyDataMapper()
    axesMapper.SetInput(axesTubes.GetOutput())
    axesActor = vtk.vtkActor()
    axesActor.SetMapper(axesMapper)
    
    #ren.AddActor(axesActor)
    return (axesActor)
コード例 #13
0
ファイル: vtkPlot.py プロジェクト: gouarin/python_azur
 def showAxis(self):
     if self.axis:
         xmin, xmax, ymin, ymax, zmin, zmax = self.bounds[:]
         axes=vtk.vtkAxes()
         axes.SetOrigin(0.0,0.0,0.0)
         axes.SetScaleFactor(0.1*max([xmax-xmin,ymax-ymin,zmax-zmin]))
         axesTubes=vtk.vtkTubeFilter()
         axesTubes.SetInputConnection(axes.GetOutputPort())
         axesTubes.SetRadius(0.2)
         axesTubes.SetNumberOfSides(6)
         axesMapper=vtk.vtkPolyDataMapper() 
         axesMapper.SetInputConnection(axesTubes.GetOutputPort())
         axesActor=vtk.vtkActor() 
         axesActor.SetMapper(axesMapper)
         XText=vtk.vtkVectorText()    
         XText.SetText("X")
         XTextMapper=vtk.vtkPolyDataMapper() 
         XTextMapper.SetInputConnection(XText.GetOutputPort())
         XActor=vtk.vtkFollower()
         XActor.SetMapper(XTextMapper)
         XActor.SetScale(2.0, 2.0, 2.0)
         XActor.SetPosition(1.11*xmax, ymin, zmin)
         XActor.GetProperty().SetColor(0,0,0)
         XActor.SetCamera(self.cam)
         YText=vtk.vtkVectorText()    
         YText.SetText("Y")
         YTextMapper=vtk.vtkPolyDataMapper() 
         YTextMapper.SetInputConnection(YText.GetOutputPort())
         YActor=vtk.vtkFollower()
         YActor.SetMapper(YTextMapper)
         YActor.SetScale(2.0, 2.0, 2.0)
         YActor.SetPosition(xmin, 1.11*ymax, zmin)
         YActor.GetProperty().SetColor(0,0,0)
         YActor.SetCamera(self.cam)
         ZText=vtk.vtkVectorText()    
         ZText.SetText("Z")
         ZTextMapper=vtk.vtkPolyDataMapper() 
         ZTextMapper.SetInputConnection(ZText.GetOutputPort())
         ZActor=vtk.vtkFollower()
         ZActor.SetMapper(ZTextMapper)
         ZActor.SetScale(2.0, 2.0, 2.0)
         ZActor.SetPosition(xmin, ymin, 1.11*zmax)
         ZActor.GetProperty().SetColor(0,0,0)
         ZActor.SetCamera(self.cam)
         self.ren.AddActor(axesActor)
         self.ren.AddActor(XActor)
         self.ren.AddActor(YActor)
         self.ren.AddActor(ZActor)
コード例 #14
0
ファイル: Objects.py プロジェクト: jraedler/SimuVis4
 def setup(self):
     self.axes = self.addPart(ObjectBase(vtk.vtkAxes()))
     self.xcone = self.addPart(ObjectBase(vtk.vtkConeSource()))
     self.xcone._actor.SetScale(0.1,0.05,0.05)
     self.xcone._actor.AddPosition(1.0,0.0,0.0)
     self.xcone._actor.GetProperty().SetColor(1.0,0.3,0.3)
     self.ycone = self.addPart(ObjectBase(vtk.vtkConeSource()))
     self.ycone._actor.SetScale(0.1,0.05,0.05)
     self.ycone._actor.RotateZ(90.0)
     self.ycone._actor.AddPosition(0.0,1.0,0.0)
     self.ycone._actor.GetProperty().SetColor(1.0,1.0,0.0)
     self.zcone = self.addPart(ObjectBase(vtk.vtkConeSource()))
     self.zcone._actor.SetScale(0.1,0.05,0.05)
     self.zcone._actor.RotateY(-90.0)
     self.zcone._actor.AddPosition(0.0,0.0,1.0)
     self.zcone._actor.GetProperty().SetColor(0.3,1.0,0.3)
     self.balls = self.addPart(ObjectBase(vtk.vtkSphereSource()))
     self.balls._actor.SetScale(0.05,0.05,0.05)
     self.balls._actor.GetProperty().SetColor(0.3,0.3,1.0)
     self.xtxt = ObjectBase(vtk.vtkVectorText(),
                                         actorType=vtk.vtkFollower)
     self.xtxt._source.SetText('X')
     self.xtxt._actor.SetScale(0.1,0.1,0.1)
     self.xtxt._actor.AddPosition(1.0,0.0,0.0)
     self.xtxt._actor.GetProperty().SetColor(1.0,0.3,0.3)
     self.addPart(self.xtxt)
     self.ytxt = ObjectBase(vtk.vtkVectorText(),
                                         actorType=vtk.vtkFollower)
     self.ytxt._source.SetText('Y')
     self.ytxt._actor.SetScale(0.1,0.1,0.1)
     self.ytxt._actor.AddPosition(0.0,1.0,0.0)
     self.ytxt._actor.GetProperty().SetColor(1.0,1.0,0.0)
     self.addPart(self.ytxt)
     self.ztxt = ObjectBase(vtk.vtkVectorText(),
                                         actorType=vtk.vtkFollower)
     self.ztxt._source.SetText('Z')
     self.ztxt._actor.SetScale(0.1,0.1,0.1)
     self.ztxt._actor.AddPosition(0.0,0.0,1.0)
     self.ztxt._actor.GetProperty().SetColor(0.3,1.0,0.3)
     self.addPart(self.ztxt)
     self.ntxt = ObjectBase(vtk.vtkVectorText(),
                                         actorType=vtk.vtkFollower)
     self.ntxt._source.SetText('0')
     self.ntxt._actor.SetScale(0.1,0.1,0.1)
     self.ntxt._actor.GetProperty().SetColor(0.3,0.3,1.0)
     self.addPart(self.ntxt)
コード例 #15
0
ファイル: render.py プロジェクト: GVallicrosa/FabQtV2
def generateAxes(printer):
    xmax, ymax, zmax = printer.getPrintingDimensions()
    axes = vtk.vtkAxes()
    axes.SetOrigin(-xmax/2, -ymax/2, 0)
    axes.SetScaleFactor(20)
    axesTubes = vtk.vtkTubeFilter()
    axesTubes.SetInputConnection(axes.GetOutputPort())
    axesTubes.SetRadius(2)
    axesTubes.SetNumberOfSides(4)
    axesMapper = vtk.vtkPolyDataMapper()
    axesMapper.SetInputConnection(axesTubes.GetOutputPort())
    axesActor = vtk.vtkActor()
    axesActor.SetMapper(axesMapper)
    XText = vtk.vtkVectorText()
    XText.SetText('X')
    XTextMapper = vtk.vtkPolyDataMapper()
    XTextMapper.SetInputConnection(XText.GetOutputPort())
    XActor = vtk.vtkFollower()
    XActor.SetMapper(XTextMapper)
    XActor.SetScale(5, 5, 5)
    XActor.SetPosition(-xmax/2 + 20, -ymax/2 - 10, 5)
    XActor.GetProperty().SetColor(1, 0, 0)
    YText = vtk.vtkVectorText()
    YText.SetText('Y')
    YTextMapper = vtk.vtkPolyDataMapper()
    YTextMapper.SetInputConnection(YText.GetOutputPort())
    YActor = vtk.vtkFollower()
    YActor.SetMapper(YTextMapper)
    YActor.SetScale(5, 5, 5)
    YActor.SetPosition(-xmax/2 - 5, -ymax/2 + 20, 5)
    YActor.GetProperty().SetColor(1, 1, 0)
    ZText = vtk.vtkVectorText()
    ZText.SetText('Z')
    ZTextMapper = vtk.vtkPolyDataMapper()
    ZTextMapper.SetInputConnection(ZText.GetOutputPort())
    ZActor = vtk.vtkFollower()
    ZActor.SetMapper(ZTextMapper)
    ZActor.SetScale(5, 5, 5)
    ZActor.SetPosition(-xmax/2, -ymax/2, 25)
    ZActor.GetProperty().SetColor(0, 1, 0)
    return axesActor, XActor, YActor, ZActor
コード例 #16
0
ファイル: CubeSection.py プロジェクト: Magellen/mystic
def getAxes(Origin, scale = 1):
    axes = vtk.vtkAxes()
    axes.SetOrigin(*Origin)
    axes.SetScaleFactor(scale)

    axesTubes = vtk.vtkTubeFilter()

    axesTubes.SetInputConnection(axes.GetOutputPort())
    axesTubes.SetRadius(0.01)
    axesTubes.SetNumberOfSides(6)

    axesMapper = vtk.vtkPolyDataMapper()
    axesMapper.SetInputConnection(axesTubes.GetOutputPort())

    axesActor = vtk.vtkActor()
    axesActor.SetMapper(axesMapper)

    XText = vtk.vtkVectorText()
    XText.SetText("x")

    XTextMapper = vtk.vtkPolyDataMapper()
    XTextMapper.SetInputConnection(XText.GetOutputPort())

    XActor = vtk.vtkFollower()
    XActor.SetMapper(XTextMapper)
    XActor.SetScale(.1, .1, .1)
    XActor.SetPosition(1, Origin[1], Origin[2])
    XActor.GetProperty().SetColor(0, 0, 0)

    YText = vtk.vtkVectorText()
    YText.SetText("y")

    YTextMapper = vtk.vtkPolyDataMapper()
    YTextMapper.SetInputConnection(YText.GetOutputPort())

    YActor = vtk.vtkFollower()
    YActor.SetMapper(YTextMapper)
    YActor.SetScale(.1, .1, .1)
    YActor.SetPosition(Origin[0], 1, Origin[2])
    YActor.GetProperty().SetColor(0, 0, 0)
    return axesActor, XActor, YActor
コード例 #17
0
ファイル: CubeSection.py プロジェクト: agamdua/mystic
def getAxes(Origin, scale=1):
    axes = vtk.vtkAxes()
    axes.SetOrigin(*Origin)
    axes.SetScaleFactor(scale)

    axesTubes = vtk.vtkTubeFilter()

    axesTubes.SetInputConnection(axes.GetOutputPort())
    axesTubes.SetRadius(0.01)
    axesTubes.SetNumberOfSides(6)

    axesMapper = vtk.vtkPolyDataMapper()
    axesMapper.SetInputConnection(axesTubes.GetOutputPort())

    axesActor = vtk.vtkActor()
    axesActor.SetMapper(axesMapper)

    XText = vtk.vtkVectorText()
    XText.SetText("x")

    XTextMapper = vtk.vtkPolyDataMapper()
    XTextMapper.SetInputConnection(XText.GetOutputPort())

    XActor = vtk.vtkFollower()
    XActor.SetMapper(XTextMapper)
    XActor.SetScale(.1, .1, .1)
    XActor.SetPosition(1, Origin[1], Origin[2])
    XActor.GetProperty().SetColor(0, 0, 0)

    YText = vtk.vtkVectorText()
    YText.SetText("y")

    YTextMapper = vtk.vtkPolyDataMapper()
    YTextMapper.SetInputConnection(YText.GetOutputPort())

    YActor = vtk.vtkFollower()
    YActor.SetMapper(YTextMapper)
    YActor.SetScale(.1, .1, .1)
    YActor.SetPosition(Origin[0], 1, Origin[2])
    YActor.GetProperty().SetColor(0, 0, 0)
    return axesActor, XActor, YActor
コード例 #18
0
ファイル: Picker.py プロジェクト: sldion/DNACC
    def __init__ (self, master, renwin):
        debug ("In Picker::__init__ ()")
        self.renwin = renwin
        self.master = master
        self.pointpicker = vtk.vtkPointPicker()
        self.cellpicker = vtk.vtkCellPicker()
        self.worldpicker = vtk.vtkWorldPointPicker()
        self.probe_point = vtk.vtkPoints()
        self.probe_data = vtk.vtkPolyData()
        self.pick_type_var = Tkinter.IntVar()
        self.tol_var = Tkinter.DoubleVar ()
        self.tol_var.set(self.pointpicker.GetTolerance())
        self.root = None
        self.txt = None

        # Use a set of axis to show the picked point.
        self.p_source = vtk.vtkAxes ()
        self.p_mapper = vtk.vtkPolyDataMapper ()
        self.p_actor = vtk.vtkActor ()

        self._initialize ()
コード例 #19
0
ファイル: TensorGlyphs.py プロジェクト: sldion/DNACC
    def __init__ (self, mod_m): 
        debug ("In TensorGlyph::__init__ ()")
        Common.state.busy ()
        Base.Objects.Module.__init__ (self, mod_m)
        
        self.sphere = vtk.vtkSphereSource ()
        self.axes = vtk.vtkAxes ()
        self.glyphs = vtk.vtkTensorGlyph ()
        # The actual glyph used is controlled using self.glyph_var
        
        self.mapper = vtk.vtkPolyDataMapper ()
        self.actor = vtk.vtkActor ()

        self.data_out = self.mod_m.GetOutput ()
        self.color_mode = 1 # 1 is scalar, -1 none
        
        self._initialize ()
        self._gui_init ()
        self.do_color_mode()
        self.renwin.Render ()
        Common.state.idle ()
コード例 #20
0
ファイル: troupe.py プロジェクト: gbaydin/autodiff
    def __init__(self, **kwargs):

        self.poly_data = vtk.vtkPolyData()

        self.axes = vtk.vtkAxes()
        self.axes.SetScaleFactor(0.01)
        
        self.glyph = vtk.vtkTensorGlyph()
        self.glyph.ExtractEigenvaluesOff()
        self.glyph.ThreeGlyphsOff()
        self.glyph.SymmetricOff()
        self.glyph.SetSourceConnection(self.axes.GetOutputPort())
        self.glyph.SetInput(self.poly_data)

        self.mapper = vtk.vtkPolyDataMapper()
        self.mapper.SetInputConnection(self.glyph.GetOutputPort())

        self.actor = vtk.vtkActor()
        self.actor.SetMapper(self.mapper)

        self._process_kwargs(**kwargs)
コード例 #21
0
ファイル: troupe.py プロジェクト: zsmith3/autodiff
    def __init__(self, **kwargs):

        self.poly_data = vtk.vtkPolyData()

        self.axes = vtk.vtkAxes()
        self.axes.SetScaleFactor(0.01)

        self.glyph = vtk.vtkTensorGlyph()
        self.glyph.ExtractEigenvaluesOff()
        self.glyph.ThreeGlyphsOff()
        self.glyph.SymmetricOff()
        self.glyph.SetSourceConnection(self.axes.GetOutputPort())
        self.glyph.SetInput(self.poly_data)

        self.mapper = vtk.vtkPolyDataMapper()
        self.mapper.SetInputConnection(self.glyph.GetOutputPort())

        self.actor = vtk.vtkActor()
        self.actor.SetMapper(self.mapper)

        self._process_kwargs(**kwargs)
コード例 #22
0
def show_scene(actors, show_unit_cube=False):
    # Create the Renderer, RenderWindow, and RenderWindowInteractor.
    ren = vtk.vtkRenderer()
    renWin = vtk.vtkRenderWindow()
    renWin.AddRenderer(ren)
    iren = vtk.vtkRenderWindowInteractor()
    iren.SetRenderWindow(renWin)

    axes = vtk.vtkAxes()
    axes.SetOrigin(0, 0, 0)
    axesMapper = vtk.vtkPolyDataMapper()
    axesMapper.SetInputConnection(axes.GetOutputPort())
    axesActor = vtk.vtkActor()
    axesActor.SetMapper(axesMapper)
    ren.AddActor(axesActor)

    # Add the actors to the renderer.
    print('Adding actors to renderer...')
    for actor in actors:
        ren.AddActor(actor)
        # Set the camera of the followers
        if actor.IsA('vtkFollower'):
            actor.SetCamera(ren.GetActiveCamera())

    if show_unit_cube:
        ren.AddActor(get_actor_from_poly_data(get_cube_poly_data()))

    # Zoom in closer.
    # ren.ResetCamera()
    # ren.GetActiveCamera().Zoom(1.6)

    # Reset the clipping range of the camera; render.
    # ren.ResetCameraClippingRange()

    iren.Initialize()
    renWin.Render()

    print('Starting interactor...')
    iren.Start()
コード例 #23
0
def vtk_show(_renderer_1, _renderer_2, width=640 * 2, height=480):

    # Multiple Viewports
    xmins = [0.0, 0.5]
    xmaxs = [0.5, 1.0]
    ymins = [0.0, 0.0]
    ymaxs = [1.0, 1.0]

    render_window = vtk.vtkRenderWindow()
    render_window.AddRenderer(_renderer_1)
    render_window.AddRenderer(_renderer_2)
    _renderer_1.ResetCamera()
    _renderer_2.ResetCamera()

    _renderer_1.SetViewport(xmins[0], ymins[0], xmaxs[0], ymaxs[0])
    _renderer_2.SetViewport(xmins[1], ymins[1], xmaxs[1], ymaxs[1])

    render_window.SetSize(width, height)

    iren = vtk.vtkRenderWindowInteractor()
    iren.SetRenderWindow(render_window)

    interactor_style = vtk.vtkInteractorStyleTrackballCamera()
    iren.SetInteractorStyle(interactor_style)

    _renderer_2.SetActiveCamera(_renderer_1.GetActiveCamera())

    # Add a x-y-z coordinate to the original point
    axes_coor = vtk.vtkAxes()
    axes_coor.SetOrigin(0, 0, 0)
    mapper_axes_coor = vtk.vtkPolyDataMapper()
    mapper_axes_coor.SetInputConnection(axes_coor.GetOutputPort())
    actor_axes_coor = vtk.vtkActor()
    actor_axes_coor.SetMapper(mapper_axes_coor)
    renderer_1.AddActor(actor_axes_coor)
    renderer_2.AddActor(actor_axes_coor)

    iren.Initialize()
    iren.Start()
コード例 #24
0
 def showAxes(self):
     axes = vtk.vtkAxes()
     axes.SetOrigin(-1, -1, -1)
     axes.SetScaleFactor(20)
     axesMapper = vtk.vtkPolyDataMapper()
     axesMapper.SetInputConnection(axes.GetOutputPort())
     
     axesActor.SetMapper(axesMapper)
     self.ren.AddActor(axesActor)
     
     atext = vtk.vtkVectorText()
     atext.SetText("X-Axis")
     textMapper = vtk.vtkPolyDataMapper()
     textMapper.SetInputConnection(atext.GetOutputPort())
     
     axisTextActor.SetMapper(textMapper)
     #axisTextActor.SetScale(0.2, 0.2, 0.2)
     axisTextActor.SetScale(3, 3, 3)
     #axisTextActor.RotateY(90)
     axisTextActor.AddPosition(0, 0, 0)        
     
     self.graphicsFrameWidget.ren.AddActor(axisTextActor)    
コード例 #25
0
 def showAxes(self):
     axes = vtk.vtkAxes()
     axes.SetOrigin(-1, -1, -1)
     axes.SetScaleFactor(20)
     axesMapper = vtk.vtkPolyDataMapper()
     axesMapper.SetInputConnection(axes.GetOutputPort())
     
     axesActor.SetMapper(axesMapper)
     self.ren.AddActor(axesActor)
     
     atext = vtk.vtkVectorText()
     atext.SetText("X-Axis")
     textMapper = vtk.vtkPolyDataMapper()
     textMapper.SetInputConnection(atext.GetOutputPort())
     
     axisTextActor.SetMapper(textMapper)
     #axisTextActor.SetScale(0.2, 0.2, 0.2)
     axisTextActor.SetScale(3, 3, 3)
     #axisTextActor.RotateY(90)
     axisTextActor.AddPosition(0, 0, 0)        
     
     self.graphicsFrameWidget.ren.AddActor(axisTextActor)    
コード例 #26
0
    def SetUp(self):
        '''
        Set up cursor3D
        '''
        def OnClosing():
            self.root.quit()

        def ViewerDown(tkvw):
            viewer = tkvw.GetImageViewer()
            ViewerSetZSlice(tkvw, viewer.GetZSlice() - 1)

        def ViewerUp(tkvw):
            viewer = tkvw.GetImageViewer()
            ViewerSetZSlice(tkvw, viewer.GetZSlice() + 1)

        def ViewerSetZSlice(tkvw, z):
            viewer = tkvw.GetImageViewer()
            viewer.SetZSlice(z)
            txt = 'slice: ' + str(z)
            sliceLabel.configure(text=txt)
            tkvw.Render()

        def SetCursorFromViewer(event):
            x = int(event.x)
            y = int(event.y)
            # We have to flip y axis because tk uses upper right origin.
            self.root.update_idletasks()
            height = int(self.tkvw.configure()['height'][4])
            y = height - y
            z = self.tkvw.GetImageViewer().GetZSlice()
            SetCursor(x / IMAGE_MAG_X, y / IMAGE_MAG_Y, z / IMAGE_MAG_Z)

        def SetCursor(x, y, z):

            CURSOR_X = x
            CURSOR_Y = y
            CURSOR_Z = z

            axes.SetOrigin(CURSOR_X, CURSOR_Y, CURSOR_Z)
            imageCursor.SetCursorPosition(CURSOR_X * IMAGE_MAG_X,
                                          CURSOR_Y * IMAGE_MAG_Y,
                                          CURSOR_Z * IMAGE_MAG_Z)

            self.viewer.Render()
            self.tkrw.Render()

        # Pipeline stuff.
        reader = vtk.vtkSLCReader()
        reader.SetFileName(VTK_DATA_ROOT + "/Data/neghip.slc")
        # Cursor stuff

        magnify = vtk.vtkImageMagnify()
        magnify.SetInputConnection(reader.GetOutputPort())
        magnify.SetMagnificationFactors(IMAGE_MAG_X, IMAGE_MAG_Y, IMAGE_MAG_Z)

        imageCursor = vtk.vtkImageCursor3D()
        imageCursor.SetInputConnection(magnify.GetOutputPort())
        imageCursor.SetCursorPosition(CURSOR_X * IMAGE_MAG_X,
                                      CURSOR_Y * IMAGE_MAG_Y,
                                      CURSOR_Z * IMAGE_MAG_Z)
        imageCursor.SetCursorValue(255)
        imageCursor.SetCursorRadius(50 * IMAGE_MAG_X)

        axes = vtk.vtkAxes()
        axes.SymmetricOn()
        axes.SetOrigin(CURSOR_X, CURSOR_Y, CURSOR_Z)
        axes.SetScaleFactor(50.0)

        axes_mapper = vtk.vtkPolyDataMapper()
        axes_mapper.SetInputConnection(axes.GetOutputPort())

        axesActor = vtk.vtkActor()
        axesActor.SetMapper(axes_mapper)
        axesActor.GetProperty().SetAmbient(0.5)

        # Image viewer stuff.
        viewer = vtk.vtkImageViewer()
        viewer.SetInputConnection(imageCursor.GetOutputPort())
        viewer.SetZSlice(CURSOR_Z * IMAGE_MAG_Z)
        viewer.SetColorWindow(256)
        viewer.SetColorLevel(128)

        # Create transfer functions for opacity and color.
        opacity_transfer_function = vtk.vtkPiecewiseFunction()
        opacity_transfer_function.AddPoint(20, 0.0)
        opacity_transfer_function.AddPoint(255, 0.2)

        color_transfer_function = vtk.vtkColorTransferFunction()
        color_transfer_function.AddRGBPoint(0, 0, 0, 0)
        color_transfer_function.AddRGBPoint(64, 1, 0, 0)
        color_transfer_function.AddRGBPoint(128, 0, 0, 1)
        color_transfer_function.AddRGBPoint(192, 0, 1, 0)
        color_transfer_function.AddRGBPoint(255, 0, .2, 0)

        # Create properties, mappers, volume actors, and ray cast function.
        volume_property = vtk.vtkVolumeProperty()
        volume_property.SetColor(color_transfer_function)
        #         volume_property.SetColor(color_transfer_function[0],
        #                                  color_transfer_function[1],
        #                                  color_transfer_function[2])
        volume_property.SetScalarOpacity(opacity_transfer_function)

        volume_mapper = vtk.vtkFixedPointVolumeRayCastMapper()
        volume_mapper.SetInputConnection(reader.GetOutputPort())

        volume = vtk.vtkVolume()
        volume.SetMapper(volume_mapper)
        volume.SetProperty(volume_property)

        # Create outline.
        outline = vtk.vtkOutlineFilter()
        outline.SetInputConnection(reader.GetOutputPort())

        outline_mapper = vtk.vtkPolyDataMapper()
        outline_mapper.SetInputConnection(outline.GetOutputPort())

        outlineActor = vtk.vtkActor()
        outlineActor.SetMapper(outline_mapper)
        outlineActor.GetProperty().SetColor(1, 1, 1)

        # Create the renderer.
        ren = vtk.vtkRenderer()
        ren.AddActor(axesActor)
        ren.AddVolume(volume)
        ren.SetBackground(0.1, 0.2, 0.4)

        renWin = vtk.vtkRenderWindow()
        renWin.AddRenderer(ren)
        renWin.SetSize(256, 256)

        # Create the GUI: two renderer widgets and a quit button.
        self.root = tkinter.Tk()
        self.root.title("cursor3D")
        # Define what to do when the user explicitly closes a window.
        self.root.protocol("WM_DELETE_WINDOW", OnClosing)

        # Help label, frame and quit button
        helpLabel = tkinter.Label(
            self.root,
            text=
            "MiddleMouse (or shift-LeftMouse) in image viewer to place cursor")
        displayFrame = tkinter.Frame(self.root)
        quitButton = tkinter.Button(self.root, text="Quit", command=OnClosing)

        # Pack the GUI.
        helpLabel.pack()
        displayFrame.pack(fill=BOTH, expand=TRUE)
        quitButton.pack(fill=X)

        # Create the viewer widget.
        viewerFrame = tkinter.Frame(displayFrame)
        viewerFrame.pack(padx=3,
                         pady=3,
                         side=LEFT,
                         anchor=N,
                         fill=BOTH,
                         expand=FALSE)
        self.tkvw = vtkTkImageViewerWidget(viewerFrame,
                                           iv=viewer,
                                           width=264,
                                           height=264)
        viewerControls = tkinter.Frame(viewerFrame)
        viewerControls.pack(side=BOTTOM, anchor=S, fill=BOTH, expand=TRUE)
        self.tkvw.pack(side=TOP, anchor=N, fill=BOTH, expand=FALSE)
        downButton = tkinter.Button(viewerControls,
                                    text="Down",
                                    command=[ViewerDown, self.tkvw])
        upButton = tkinter.Button(viewerControls,
                                  text="Up",
                                  command=[ViewerUp, self.tkvw])
        sliceLabel = tkinter.Label(viewerControls,
                                   text="slice: " +
                                   str(CURSOR_Z * IMAGE_MAG_Z))
        downButton.pack(side=LEFT, expand=TRUE, fill=BOTH)
        upButton.pack(side=LEFT, expand=TRUE, fill=BOTH)
        sliceLabel.pack(side=LEFT, expand=TRUE, fill=BOTH)

        # Create the render widget
        renderFrame = tkinter.Frame(displayFrame)
        renderFrame.pack(padx=3,
                         pady=3,
                         side=LEFT,
                         anchor=N,
                         fill=BOTH,
                         expand=TRUE)
        self.tkrw = vtkTkRenderWidget(renderFrame,
                                      rw=renWin,
                                      width=264,
                                      height=264)

        self.tkrw.pack(side=TOP, anchor=N, fill=BOTH, expand=TRUE)

        # Bindings
        self.tkvw.BindTkImageViewer()
        self.tkrw.BindTkRenderWidget()

        # Lets add an extra binding of the middle button in the image viewer
        # to set the cursor location.
        self.tkvw.bind('<Button-2>', SetCursorFromViewer)
        self.tkvw.bind('<Shift-Button-1>', SetCursorFromViewer)

        # Associate the functions with the buttons and label.
        #
        downButton.config(command=partial(ViewerDown, self.tkvw))
        upButton.config(command=partial(ViewerUp, self.tkvw))
コード例 #27
0
ファイル: WidgetTest.py プロジェクト: NESII/uvcdat
import vtk

def computeBounds( renderer, normalized_display_position, size ):
    upperRight = vtk.vtkCoordinate()
    upperRight.SetCoordinateSystemToNormalizedDisplay()
    upperRight.SetValue( normalized_display_position[0], normalized_display_position[1] )
    bds = [0.0]*6
    bds[0] = upperRight.GetComputedDisplayValue(renderer)[0] - size[0]
    bds[1] = bds[0] + size[0]
    bds[2] = upperRight.GetComputedDisplayValue(renderer)[1] - size[1]
    bds[3] = bds[2] + size[1]
    return bds

# Create the axes and the associated mapper and actor.
axes = vtk.vtkAxes()
axes.SetOrigin(0, 0, 0)
axesMapper = vtk.vtkPolyDataMapper()
axesMapper.SetInputConnection(axes.GetOutputPort())
axesActor = vtk.vtkActor()
axesActor.SetMapper(axesMapper)

# Create the 3D text and the associated mapper and follower (a type of
# actor).  Position the text so it is displayed over the origin of the
# axes.
atext = vtk.vtkVectorText()
atext.SetText("Origin")
textMapper = vtk.vtkPolyDataMapper()
textMapper.SetInputConnection(atext.GetOutputPort())
textActor = vtk.vtkFollower()
textActor.SetMapper(textMapper)
コード例 #28
0
ファイル: gauss.py プロジェクト: gnastacast/fruiting_bodies
def main():
    colors = vtk.vtkNamedColors()

    colors.SetColor("PopColor", [230, 230, 230, 255])

    # fileName = get_program_parameters()

    keys = ['NUMBER_POINTS', 'MONTHLY_PAYMENT', 'INTEREST_RATE', 'LOAN_AMOUNT', 'TIME_LATE']

    # Read in the data and make an unstructured data set.
    dataSet = make_dataset()

    # pts[:,0] = pts[:,0] ** 3
    # npData.SetPoints(npData.GetPoints())

    # # Construct the pipeline for the original population.
    # popSplatter = vtk.vtkGaussianSplatter()
    # popSplatter.SetInputData(dataSet)
    # popSplatter.SetSampleDimensions(100, 100, 100)
    # popSplatter.SetRadius(0.1)
    # popSplatter.ScalarWarpingOff()

    # popSurface = vtk.vtkContourFilter()
    # popSurface.SetInputConnection(popSplatter.GetOutputPort())
    # popSurface.SetValue(0, 0.01)

    # popMapper = vtk.vtkPolyDataMapper()
    # popMapper.SetInputConnection(popSurface.GetOutputPort())
    # popMapper.ScalarVisibilityOff()

    # popActor = vtk.vtkActor()
    # popActor.SetMapper(popMapper)
    # popActor.GetProperty().SetOpacity(0.3)
    # popActor.GetProperty().SetColor(colors.GetColor3d("PopColor"))

    # Construct the pipeline for the delinquent population.
    lateSplatter = vtk.vtkGaussianSplatter()
    lateSplatter.SetInputData(dataSet)
    lateSplatter.SetSampleDimensions(150, 150, 150)
    lateSplatter.SetRadius(0.1)
    lateSplatter.SetScaleFactor(.001)

    lateSurface = vtk.vtkContourFilter()
    lateSurface.SetInputConnection(lateSplatter.GetOutputPort())
    lateSurface.SetValue(0, 0.01)

    lateMapper = vtk.vtkPolyDataMapper()
    lateMapper.SetInputConnection(lateSurface.GetOutputPort())
    lateMapper.ScalarVisibilityOff()

    lateActor = vtk.vtkActor()
    lateActor.SetMapper(lateMapper)
    lateActor.GetProperty().SetColor(colors.GetColor3d("Red"))

    # Create axes.
    lateSplatter.Update()
    bounds = lateSplatter.GetOutput().GetBounds()

    axes = vtk.vtkAxes()
    axes.SetOrigin(bounds[0], bounds[2], bounds[4])
    axes.SetScaleFactor(lateSplatter.GetOutput().GetLength() / 5)

    axesTubes = vtk.vtkTubeFilter()
    axesTubes.SetInputConnection(axes.GetOutputPort())
    axesTubes.SetRadius(axes.GetScaleFactor() / 25.0)
    axesTubes.SetNumberOfSides(6)

    axesMapper = vtk.vtkPolyDataMapper()
    axesMapper.SetInputConnection(axesTubes.GetOutputPort())

    axesActor = vtk.vtkActor()
    axesActor.SetMapper(axesMapper)

    # Visualize.
    renderer = vtk.vtkRenderer()
    renderWindow = vtk.vtkRenderWindow()
    renderWindow.AddRenderer(renderer)
    interactor = vtk.vtkRenderWindowInteractor()
    interactor.SetRenderWindow(renderWindow)

    renderer.AddActor(axesActor)
    renderer.AddActor(lateActor)
    renderer.SetBackground(colors.GetColor3d("powder_blue"))

    # Enable user interface interactor
    renderWindow.Render()

    def update(self):
        pts = dataSet.GetPoints()
        pts.SetPoint(0, [0,0,np.sin(time.time())])
        pts.Modified()
        interactor.Render()

    # Sign up to receive TimerEvent
    cb = vtkTimerCallback()
    cb.update = update

    interactor.AddObserver('TimerEvent', cb.execute)
    timerId = interactor.CreateRepeatingTimer(10);

    interactor.Start()
コード例 #29
0
ファイル: plane.py プロジェクト: MBrill/VTKExamples
def main():
    reader = vtk.vtkPolyDataReader()
    reader.SetFileName('data/plane.vtk')

    prop = vtk.vtkProperty()
    prop.SetAmbient(0.05)
    prop.SetDiffuse(0.9)
    prop.SetSpecular(0.5)
    prop.SetSpecularPower(70.0)
    prop.SetAmbientColor(0.1, 0.1, 0.1)
    prop.SetDiffuseColor(0.6, 0.6, 0.6)
    prop.SetSpecularColor(1.0, 1.0, 1.0)

    normals = vtk.vtkPolyDataNormals()
    normals.SetInputConnection(reader.GetOutputPort())
    normals.SetFeatureAngle(60.0)
    normals.ConsistencyOn()

    mapper = vtk.vtkPolyDataMapper()
    mapper.SetInputConnection(normals.GetOutputPort())

    planeActor = vtk.vtkActor()
    planeActor.SetMapper(mapper)
    planeActor.SetProperty(prop)
    planeActor.SetOrientation(45.0, 67.5, 45.0)

    axes = vtk.vtkAxes()
    axes.SetOrigin(0.0, 0.0, 0.0)
    axes.SymmetricOn()
    axes.SetScaleFactor(10.0)

    axisProp = vtk.vtkProperty()
    axisProp.SetAmbient(0.05)
    axisProp.SetDiffuse(0.95)
    axisProp.SetSpecular(0.0)
    axisProp.SetAmbientColor(0.05, 0.05, 0.05)
    axisProp.SetDiffuseColor(0.05, 0.05, 0.05)

    aMap = vtk.vtkPolyDataMapper()
    aMap.SetInputConnection(axes.GetOutputPort())
    aMap.ScalarVisibilityOn()

    aAct = vtk.vtkActor()
    aAct.SetMapper(aMap)
    aAct.SetProperty(axisProp)

    # Text für die Achsen
    xText = vtk.vtkVectorText()
    xText.SetText('x')
    yText = vtk.vtkVectorText()
    yText.SetText('y')
    zText = vtk.vtkVectorText()
    zText.SetText('z')

    xMap = vtk.vtkPolyDataMapper()
    xMap.SetInputConnection(xText.GetOutputPort())
    yMap = vtk.vtkPolyDataMapper()
    yMap.SetInputConnection(yText.GetOutputPort())
    zMap = vtk.vtkPolyDataMapper()
    zMap.SetInputConnection(zText.GetOutputPort())

    xActor = vtk.vtkFollower()
    xActor.SetMapper(xMap)
    xActor.SetScale(0.6, 0.6, 0.6)
    xActor.AddPosition(9.0, 0.5, 0.0)
    xActor.SetProperty(axisProp)

    yActor = vtk.vtkFollower()
    yActor.SetMapper(yMap)
    yActor.SetScale(0.6, 0.6, 0.6)
    yActor.AddPosition(-1.0, 9.0, 0.0)
    yActor.SetProperty(axisProp)

    zActor = vtk.vtkFollower()
    zActor.SetMapper(zMap)
    zActor.SetScale(0.6, 0.6, 0.6)
    zActor.AddPosition(-1.0, 0.0, 9.0)
    zActor.SetOrientation(-45.0, 0.0, 0.0)
    zActor.SetProperty(axisProp)


    ren = vtk.vtkRenderer()
    ren.SetBackground(1.0, 1.0, 1.0)
    ren.AddActor(planeActor)
    ren.AddActor(aAct)
    ren.AddActor(xActor)
    ren.AddActor(yActor)
    ren.AddActor(zActor)
    ren.ResetCameraClippingRange()

    renderWindow = vtk.vtkRenderWindow()
    renderWindow.AddRenderer(ren)
    renderWindow.SetSize(800, 600)

    renderWindowInteractor = vtk.vtkRenderWindowInteractor()
    renderWindowInteractor.SetRenderWindow(renderWindow)

    renderWindow.Render()
    renderWindowInteractor.Start()
コード例 #30
0
ファイル: cursor3D.py プロジェクト: Kitware/VTK
    def SetUp(self):
        """
        Set up cursor3D
        """

        def OnClosing():
            self.root.quit()

        def ViewerDown(tkvw):
            viewer = tkvw.GetImageViewer()
            ViewerSetZSlice(tkvw, viewer.GetZSlice() - 1)

        def ViewerUp(tkvw):
            viewer = tkvw.GetImageViewer()
            ViewerSetZSlice(tkvw, viewer.GetZSlice() + 1)

        def ViewerSetZSlice(tkvw, z):
            viewer = tkvw.GetImageViewer()
            viewer.SetZSlice(z)
            txt = "slice: " + str(z)
            sliceLabel.configure(text=txt)
            tkvw.Render()

        def SetCursorFromViewer(event):
            x = int(event.x)
            y = int(event.y)
            # We have to flip y axis because tk uses upper right origin.
            self.root.update_idletasks()
            height = int(self.tkvw.configure()["height"][4])
            y = height - y
            z = self.tkvw.GetImageViewer().GetZSlice()
            SetCursor(x / IMAGE_MAG_X, y / IMAGE_MAG_Y, z / IMAGE_MAG_Z)

        def SetCursor(x, y, z):

            CURSOR_X = x
            CURSOR_Y = y
            CURSOR_Z = z

            axes.SetOrigin(CURSOR_X, CURSOR_Y, CURSOR_Z)
            imageCursor.SetCursorPosition(CURSOR_X * IMAGE_MAG_X, CURSOR_Y * IMAGE_MAG_Y, CURSOR_Z * IMAGE_MAG_Z)

            self.viewer.Render()
            self.tkrw.Render()

        # Pipeline stuff.
        reader = vtk.vtkSLCReader()
        reader.SetFileName(VTK_DATA_ROOT + "/Data/neghip.slc")
        # Cursor stuff

        magnify = vtk.vtkImageMagnify()
        magnify.SetInputConnection(reader.GetOutputPort())
        magnify.SetMagnificationFactors(IMAGE_MAG_X, IMAGE_MAG_Y, IMAGE_MAG_Z)

        imageCursor = vtk.vtkImageCursor3D()
        imageCursor.SetInputConnection(magnify.GetOutputPort())
        imageCursor.SetCursorPosition(CURSOR_X * IMAGE_MAG_X, CURSOR_Y * IMAGE_MAG_Y, CURSOR_Z * IMAGE_MAG_Z)
        imageCursor.SetCursorValue(255)
        imageCursor.SetCursorRadius(50 * IMAGE_MAG_X)

        axes = vtk.vtkAxes()
        axes.SymmetricOn()
        axes.SetOrigin(CURSOR_X, CURSOR_Y, CURSOR_Z)
        axes.SetScaleFactor(50.0)

        axes_mapper = vtk.vtkPolyDataMapper()
        axes_mapper.SetInputConnection(axes.GetOutputPort())

        axesActor = vtk.vtkActor()
        axesActor.SetMapper(axes_mapper)
        axesActor.GetProperty().SetAmbient(0.5)

        # Image viewer stuff.
        viewer = vtk.vtkImageViewer()
        viewer.SetInputConnection(imageCursor.GetOutputPort())
        viewer.SetZSlice(CURSOR_Z * IMAGE_MAG_Z)
        viewer.SetColorWindow(256)
        viewer.SetColorLevel(128)

        # Create transfer functions for opacity and color.
        opacity_transfer_function = vtk.vtkPiecewiseFunction()
        opacity_transfer_function.AddPoint(20, 0.0)
        opacity_transfer_function.AddPoint(255, 0.2)

        color_transfer_function = vtk.vtkColorTransferFunction()
        color_transfer_function.AddRGBPoint(0, 0, 0, 0)
        color_transfer_function.AddRGBPoint(64, 1, 0, 0)
        color_transfer_function.AddRGBPoint(128, 0, 0, 1)
        color_transfer_function.AddRGBPoint(192, 0, 1, 0)
        color_transfer_function.AddRGBPoint(255, 0, 0.2, 0)

        # Create properties, mappers, volume actors, and ray cast function.
        volume_property = vtk.vtkVolumeProperty()
        volume_property.SetColor(color_transfer_function)
        #         volume_property.SetColor(color_transfer_function[0],
        #                                  color_transfer_function[1],
        #                                  color_transfer_function[2])
        volume_property.SetScalarOpacity(opacity_transfer_function)

        volume_mapper = vtk.vtkFixedPointVolumeRayCastMapper()
        volume_mapper.SetInputConnection(reader.GetOutputPort())

        volume = vtk.vtkVolume()
        volume.SetMapper(volume_mapper)
        volume.SetProperty(volume_property)

        # Create outline.
        outline = vtk.vtkOutlineFilter()
        outline.SetInputConnection(reader.GetOutputPort())

        outline_mapper = vtk.vtkPolyDataMapper()
        outline_mapper.SetInputConnection(outline.GetOutputPort())

        outlineActor = vtk.vtkActor()
        outlineActor.SetMapper(outline_mapper)
        outlineActor.GetProperty().SetColor(1, 1, 1)

        # Create the renderer.
        ren = vtk.vtkRenderer()
        ren.AddActor(axesActor)
        ren.AddVolume(volume)
        ren.SetBackground(0.1, 0.2, 0.4)

        renWin = vtk.vtkRenderWindow()
        renWin.AddRenderer(ren)
        renWin.SetSize(256, 256)

        # Create the GUI: two renderer widgets and a quit button.
        self.root = tkinter.Tk()
        self.root.title("cursor3D")
        # Define what to do when the user explicitly closes a window.
        self.root.protocol("WM_DELETE_WINDOW", OnClosing)

        # Help label, frame and quit button
        helpLabel = tkinter.Label(self.root, text="MiddleMouse (or shift-LeftMouse) in image viewer to place cursor")
        displayFrame = tkinter.Frame(self.root)
        quitButton = tkinter.Button(self.root, text="Quit", command=OnClosing)

        # Pack the GUI.
        helpLabel.pack()
        displayFrame.pack(fill=BOTH, expand=TRUE)
        quitButton.pack(fill=X)

        # Create the viewer widget.
        viewerFrame = tkinter.Frame(displayFrame)
        viewerFrame.pack(padx=3, pady=3, side=LEFT, anchor=N, fill=BOTH, expand=FALSE)
        self.tkvw = vtkTkImageViewerWidget(viewerFrame, iv=viewer, width=264, height=264)
        viewerControls = tkinter.Frame(viewerFrame)
        viewerControls.pack(side=BOTTOM, anchor=S, fill=BOTH, expand=TRUE)
        self.tkvw.pack(side=TOP, anchor=N, fill=BOTH, expand=FALSE)
        downButton = tkinter.Button(viewerControls, text="Down", command=[ViewerDown, self.tkvw])
        upButton = tkinter.Button(viewerControls, text="Up", command=[ViewerUp, self.tkvw])
        sliceLabel = tkinter.Label(viewerControls, text="slice: " + str(CURSOR_Z * IMAGE_MAG_Z))
        downButton.pack(side=LEFT, expand=TRUE, fill=BOTH)
        upButton.pack(side=LEFT, expand=TRUE, fill=BOTH)
        sliceLabel.pack(side=LEFT, expand=TRUE, fill=BOTH)

        # Create the render widget
        renderFrame = tkinter.Frame(displayFrame)
        renderFrame.pack(padx=3, pady=3, side=LEFT, anchor=N, fill=BOTH, expand=TRUE)
        self.tkrw = vtkTkRenderWidget(renderFrame, rw=renWin, width=264, height=264)

        self.tkrw.pack(side=TOP, anchor=N, fill=BOTH, expand=TRUE)

        # Bindings
        self.tkvw.BindTkImageViewer()
        self.tkrw.BindTkRenderWidget()

        # Lets add an extra binding of the middle button in the image viewer
        # to set the cursor location.
        self.tkvw.bind("<Button-2>", SetCursorFromViewer)
        self.tkvw.bind("<Shift-Button-1>", SetCursorFromViewer)

        # Associate the functions with the buttons and label.
        #
        downButton.config(command=partial(ViewerDown, self.tkvw))
        upButton.config(command=partial(ViewerUp, self.tkvw))
コード例 #31
0
ファイル: sse.py プロジェクト: JDonner/gabbleduck
def show_axes(ren):
    # Create the axes and the associated mapper and actor.
    axes = vtk.vtkAxes()
    axes.SetOrigin(0, 0, 0)
    # length - hardwired for our images, which are usually 80 on a side
    # (80/2 = 40)
    AxisLength = 35.0
    TextScale = 1.5
    TextR = 0.4
    TextG = 0.4
    TextB = 0.8

    axes.SetScaleFactor(AxisLength)

    axesMapper = vtk.vtkPolyDataMapper()
    axesMapper.SetInputConnection(axes.GetOutputPort())
    axesActor = vtk.vtkActor()
    axesActor.SetMapper(axesMapper)

    # Label the axes
    XText = vtk.vtkVectorText()
    XText.SetText("X")

    XTextMapper = vtk.vtkPolyDataMapper()
    XTextMapper.SetInputConnection(XText.GetOutputPort())

    XActor = vtk.vtkFollower()
    XActor.SetMapper(XTextMapper)
    XActor.SetScale(TextScale, TextScale, TextScale)
    XActor.SetPosition(AxisLength, 0.0, 0.0)
    XActor.GetProperty().SetColor(TextR, TextG, TextB)

    YText = vtk.vtkVectorText()
    YText.SetText("Y")

    YTextMapper = vtk.vtkPolyDataMapper()
    YTextMapper.SetInputConnection(YText.GetOutputPort())

    YActor = vtk.vtkFollower()
    YActor.SetMapper(YTextMapper)
    YActor.SetScale(TextScale, TextScale, TextScale)
    YActor.SetPosition(0.0, AxisLength, 0.0)
    YActor.GetProperty().SetColor(TextR, TextG, TextB)

    ZText = vtk.vtkVectorText()
    ZText.SetText("Z")

    ZTextMapper = vtk.vtkPolyDataMapper()
    ZTextMapper.SetInputConnection(ZText.GetOutputPort())

    ZActor = vtk.vtkFollower()
    ZActor.SetMapper(ZTextMapper)
    ZActor.SetScale(TextScale, TextScale, TextScale)
    ZActor.SetPosition(0.0, 0.0, AxisLength)
    ZActor.GetProperty().SetColor(TextR, TextG, TextB)


    ren.AddActor(axesActor)
    ren.AddActor(XActor)
    ren.AddActor(YActor)
    ren.AddActor(ZActor)
コード例 #32
0
output = reader.GetOutput()
scalar_range = output.GetScalarRange()

# Create the mapper that corresponds the objects of the vtk file
# into graphics elements
mapper = vtkDataSetMapper()
mapper.SetInputConnection(reader.GetOutputPort())
mapper.SetScalarRange(scalar_range)

# Create the Actor
actor = vtkActor()
actor.SetMapper(mapper)
actor.SetScale(100.0, 100.0, 100.0)

# Create the axes and the associated mapper and actor.
axes = vtk.vtkAxes()
axes.SetOrigin(0, 0, 0)
axesMapper = vtk.vtkPolyDataMapper()
axesMapper.SetInputConnection(axes.GetOutputPort())
axesActor = vtk.vtkActor()
axesActor.SetMapper(axesMapper)

# Create the 3D text and the associated mapper and follower (a type of
# actor).  Position the text so it is displayed over the origin of the
# axes.
atext = vtk.vtkVectorText()
atext.SetText("Origin")
textMapper = vtk.vtkPolyDataMapper()
textMapper.SetInputConnection(atext.GetOutputPort())
textActor = vtk.vtkFollower()
textActor.SetMapper(textMapper)
コード例 #33
0
#
ren1 = vtk.vtkRenderer()
renWin = vtk.vtkRenderWindow()
renWin.AddRenderer(ren1)
iren = vtk.vtkRenderWindowInteractor()
iren.SetRenderWindow(renWin)
# create pipeline
#
cow = vtk.vtkBYUReader()
cow.SetGeometryFileName("" + str(VTK_DATA_ROOT) + "/Data/Viewpoint/cow.g")
cowMapper = vtk.vtkPolyDataMapper()
cowMapper.SetInputConnection(cow.GetOutputPort())
cowActor = vtk.vtkActor()
cowActor.SetMapper(cowMapper)
cowActor.GetProperty().SetDiffuseColor(0.9608, 0.8706, 0.7020)
cowAxesSource = vtk.vtkAxes()
cowAxesSource.SetScaleFactor(10)
cowAxesSource.SetOrigin(0, 0, 0)
cowAxesMapper = vtk.vtkPolyDataMapper()
cowAxesMapper.SetInputConnection(cowAxesSource.GetOutputPort())
cowAxes = vtk.vtkActor()
cowAxes.SetMapper(cowAxesMapper)
ren1.AddActor(cowAxes)
cowAxes.VisibilityOff()
# Add the actors to the renderer, set the background and size
#
ren1.AddActor(cowActor)
ren1.SetBackground(0.1, 0.2, 0.4)
renWin.SetSize(320, 240)
ren1.ResetCamera()
ren1.GetActiveCamera().Azimuth(0)
コード例 #34
0
    def testFinancialField(self):

        """
            Demonstrate the use and manipulation of fields and use of
            vtkProgrammableDataObjectSource. This creates fields the hard way
            (as compared to reading a vtk field file), but shows you how to
            interface to your own raw data.

            The image should be the same as financialField.tcl
        """

        xAxis = "INTEREST_RATE"
        yAxis = "MONTHLY_PAYMENT"
        zAxis = "MONTHLY_INCOME"
        scalar = "TIME_LATE"

        # Parse an ascii file and manually create a field. Then construct a
        # dataset from the field.
        dos = vtk.vtkProgrammableDataObjectSource()

        def parseFile():
            f = open(VTK_DATA_ROOT + "/Data/financial.txt", "r")

            line = f.readline().split()
            # From the size calculate the number of lines.
            numPts = int(line[1])
            numLines = (numPts - 1) / 8 + 1

            # create the data object
            field = vtk.vtkFieldData()
            field.AllocateArrays(4)

            # read TIME_LATE - dependent variable
            while True:
                line = f.readline().split()
                if len(line) > 0:
                    break;
            timeLate = vtk.vtkFloatArray()
            timeLate.SetName(line[0])
            for i in range(0, numLines):
                line = f.readline().split()
                for j in line:
                    timeLate.InsertNextValue(float(j))
            field.AddArray(timeLate)

            # MONTHLY_PAYMENT - independent variable
            while True:
                line = f.readline().split()
                if len(line) > 0:
                    break;
            monthlyPayment = vtk.vtkFloatArray()
            monthlyPayment.SetName(line[0])
            for i in range(0, numLines):
                line = f.readline().split()
                for j in line:
                    monthlyPayment.InsertNextValue(float(j))
            field.AddArray(monthlyPayment)

            # UNPAID_PRINCIPLE - skip
            while True:
                line = f.readline().split()
                if len(line) > 0:
                    break;
            for i in range(0, numLines):
                line = f.readline()

            # LOAN_AMOUNT - skip
            while True:
                line = f.readline().split()
                if len(line) > 0:
                    break;
            for i in range(0, numLines):
                line = f.readline()

            # INTEREST_RATE - independent variable
            while True:
                line = f.readline().split()
                if len(line) > 0:
                    break;
            interestRate = vtk.vtkFloatArray()
            interestRate.SetName(line[0])
            for i in range(0, numLines):
                line = f.readline().split()
                for j in line:
                    interestRate.InsertNextValue(float(j))
            field.AddArray(interestRate)

            # MONTHLY_INCOME - independent variable
            while True:
                line = f.readline().split()
                if len(line) > 0:
                    break;
            monthlyIncome = vtk.vtkFloatArray()
            monthlyIncome.SetName(line[0])
            for i in range(0, numLines):
                line = f.readline().split()
                for j in line:
                    monthlyIncome.InsertNextValue(float(j))
            field.AddArray(monthlyIncome)

            dos.GetOutput().SetFieldData(field)

        dos.SetExecuteMethod(parseFile)


        # Create the dataset
        do2ds = vtk.vtkDataObjectToDataSetFilter()
        do2ds.SetInputConnection(dos.GetOutputPort())
        do2ds.SetDataSetTypeToPolyData()
        #format: component#, arrayname, arraycomp, minArrayId, maxArrayId, normalize
        do2ds.DefaultNormalizeOn()
        do2ds.SetPointComponent(0, xAxis, 0)
        do2ds.SetPointComponent(1, yAxis, 0)
        do2ds.SetPointComponent(2, zAxis, 0)
        do2ds.Update()

        rf = vtk.vtkRearrangeFields()
        rf.SetInputConnection(do2ds.GetOutputPort())
        rf.AddOperation("MOVE", scalar, "DATA_OBJECT", "POINT_DATA")
        rf.RemoveOperation("MOVE", scalar, "DATA_OBJECT", "POINT_DATA")
        rf.AddOperation("MOVE", scalar, "DATA_OBJECT", "POINT_DATA")
        rf.RemoveAllOperations()
        rf.AddOperation("MOVE", scalar, "DATA_OBJECT", "POINT_DATA")
        rf.Update()
        max = rf.GetOutput().GetPointData().GetArray(scalar).GetRange(0)[1]


        calc = vtk.vtkArrayCalculator()
        calc.SetInputConnection(rf.GetOutputPort())
        calc.SetAttributeModeToUsePointData()
        calc.SetFunction("s / %f" % max)
        calc.AddScalarVariable("s", scalar, 0)
        calc.SetResultArrayName("resArray")

        aa = vtk.vtkAssignAttribute()
        aa.SetInputConnection(calc.GetOutputPort())
        aa.Assign("resArray", "SCALARS", "POINT_DATA")
        aa.Update()

        rf2 = vtk.vtkRearrangeFields()
        rf2.SetInputConnection(aa.GetOutputPort())
        rf2.AddOperation("COPY", "SCALARS", "POINT_DATA", "DATA_OBJECT")

        # construct pipeline for original population
        popSplatter = vtk.vtkGaussianSplatter()
        popSplatter.SetInputConnection(rf2.GetOutputPort())
        popSplatter.SetSampleDimensions(50, 50, 50)
        popSplatter.SetRadius(0.05)
        popSplatter.ScalarWarpingOff()
        popSurface = vtk.vtkContourFilter()
        popSurface.SetInputConnection(popSplatter.GetOutputPort())
        popSurface.SetValue(0, 0.01)
        popMapper = vtk.vtkPolyDataMapper()
        popMapper.SetInputConnection(popSurface.GetOutputPort())
        popMapper.ScalarVisibilityOff()
        popMapper.ImmediateModeRenderingOn()
        popActor = vtk.vtkActor()
        popActor.SetMapper(popMapper)
        popActor.GetProperty().SetOpacity(0.3)
        popActor.GetProperty().SetColor(.9, .9, .9)

        # construct pipeline for delinquent population
        lateSplatter = vtk.vtkGaussianSplatter()
        lateSplatter.SetInputConnection(aa.GetOutputPort())
        lateSplatter.SetSampleDimensions(50, 50, 50)
        lateSplatter.SetRadius(0.05)
        lateSplatter.SetScaleFactor(0.05)
        lateSurface = vtk.vtkContourFilter()
        lateSurface.SetInputConnection(lateSplatter.GetOutputPort())
        lateSurface.SetValue(0, 0.01)
        lateMapper = vtk.vtkPolyDataMapper()
        lateMapper.SetInputConnection(lateSurface.GetOutputPort())
        lateMapper.ScalarVisibilityOff()
        lateActor = vtk.vtkActor()
        lateActor.SetMapper(lateMapper)
        lateActor.GetProperty().SetColor(1.0, 0.0, 0.0)

        # create axes
        popSplatter.Update()
        bounds = popSplatter.GetOutput().GetBounds()
        axes = vtk.vtkAxes()
        axes.SetOrigin(bounds[0], bounds[2], bounds[4])
        axes.SetScaleFactor(popSplatter.GetOutput().GetLength() / 5.0)
        axesTubes = vtk.vtkTubeFilter()
        axesTubes.SetInputConnection(axes.GetOutputPort())
        axesTubes.SetRadius(axes.GetScaleFactor() / 25.0)
        axesTubes.SetNumberOfSides(6)
        axesMapper = vtk.vtkPolyDataMapper()
        axesMapper.SetInputConnection(axesTubes.GetOutputPort())
        axesActor = vtk.vtkActor()
        axesActor.SetMapper(axesMapper)

        # label the axes
        XText = vtk.vtkVectorText()
        XText.SetText(xAxis)
        XTextMapper = vtk.vtkPolyDataMapper()
        XTextMapper.SetInputConnection(XText.GetOutputPort())
        XActor = vtk.vtkFollower()
        XActor.SetMapper(XTextMapper)
        XActor.SetScale(0.02, .02, .02)
        XActor.SetPosition(0.35, -0.05, -0.05)
        XActor.GetProperty().SetColor(0, 0, 0)

        YText = vtk.vtkVectorText()
        YText.SetText(yAxis)
        YTextMapper = vtk.vtkPolyDataMapper()
        YTextMapper.SetInputConnection(YText.GetOutputPort())
        YActor = vtk.vtkFollower()
        YActor.SetMapper(YTextMapper)
        YActor.SetScale(0.02, .02, .02)
        YActor.SetPosition(-0.05, 0.35, -0.05)
        YActor.GetProperty().SetColor(0, 0, 0)

        ZText = vtk.vtkVectorText()
        ZText.SetText(zAxis)
        ZTextMapper = vtk.vtkPolyDataMapper()
        ZTextMapper.SetInputConnection(ZText.GetOutputPort())
        ZActor = vtk.vtkFollower()
        ZActor.SetMapper(ZTextMapper)
        ZActor.SetScale(0.02, .02, .02)
        ZActor.SetPosition(-0.05, -0.05, 0.35)
        ZActor.GetProperty().SetColor(0, 0, 0)

        # Graphics stuff
        #
        ren = vtk.vtkRenderer()
        renWin = vtk.vtkRenderWindow()
        renWin.AddRenderer(ren)
        renWin.SetWindowName("vtk(-, Field.Data")
        renWin.SetSize(300, 300)

        # Add the actors to the renderer, set the background and size
        #
        ren.AddActor(axesActor)
        ren.AddActor(lateActor)
        ren.AddActor(XActor)
        ren.AddActor(YActor)
        ren.AddActor(ZActor)
        ren.AddActor(popActor) #it's last because its translucent)
        ren.SetBackground(1, 1, 1)

        camera = vtk.vtkCamera()
        camera.SetClippingRange(.274, 13.72)
        camera.SetFocalPoint(0.433816, 0.333131, 0.449)
        camera.SetPosition(-1.96987, 1.15145, 1.49053)
        camera.SetViewUp(0.378927, 0.911821, 0.158107)
        ren.SetActiveCamera(camera)
        XActor.SetCamera(camera)
        YActor.SetCamera(camera)
        ZActor.SetCamera(camera)

        # render and interact with data

        iRen = vtk.vtkRenderWindowInteractor()
        iRen.SetRenderWindow(renWin);
        renWin.Render()

        img_file = "financialField3.png"
        vtk.test.Testing.compareImage(iRen.GetRenderWindow(), vtk.test.Testing.getAbsImagePath(img_file), threshold=25)
        vtk.test.Testing.interact()
コード例 #35
0
ファイル: financialField.py プロジェクト: kalmchocobo/VTK
    def testFinancialField(self):

        size = 3187 #maximum number possible

        #set size 100 #maximum number possible
        xAxis = "INTEREST_RATE"
        yAxis = "MONTHLY_PAYMENT"
        zAxis = "MONTHLY_INCOME"
        scalar = "TIME_LATE"


        # extract data from field as a polydata (just points), then extract scalars
        fdr = vtk.vtkDataObjectReader()
        fdr.SetFileName(VTK_DATA_ROOT + "/Data/financial.vtk")
        do2ds = vtk.vtkDataObjectToDataSetFilter()
        do2ds.SetInputConnection(fdr.GetOutputPort())
        do2ds.SetDataSetTypeToPolyData()
        #format: component#, arrayname, arraycomp, minArrayId, maxArrayId, normalize
        do2ds.DefaultNormalizeOn()
        do2ds.SetPointComponent(0, xAxis, 0)
        do2ds.SetPointComponent(1, yAxis, 0, 0, size, 1)
        do2ds.SetPointComponent(2, zAxis, 0)
        do2ds.Update()
        fd2ad = vtk.vtkFieldDataToAttributeDataFilter()
        fd2ad.SetInputConnection(do2ds.GetOutputPort())
        fd2ad.SetInputFieldToDataObjectField()
        fd2ad.SetOutputAttributeDataToPointData()
        fd2ad.DefaultNormalizeOn()
        fd2ad.SetScalarComponent(0, scalar, 0)

        # construct pipeline for original population
        popSplatter = vtk.vtkGaussianSplatter()
        popSplatter.SetInputConnection(fd2ad.GetOutputPort())
        popSplatter.SetSampleDimensions(50, 50, 50)
        popSplatter.SetRadius(0.05)
        popSplatter.ScalarWarpingOff()
        popSurface = vtk.vtkMarchingContourFilter()
        popSurface.SetInputConnection(popSplatter.GetOutputPort())
        popSurface.SetValue(0, 0.01)
        popMapper = vtk.vtkPolyDataMapper()
        popMapper.SetInputConnection(popSurface.GetOutputPort())
        popMapper.ScalarVisibilityOff()
        popActor = vtk.vtkActor()
        popActor.SetMapper(popMapper)
        popActor.GetProperty().SetOpacity(0.3)
        popActor.GetProperty().SetColor(.9, .9, .9)

        # construct pipeline for delinquent population
        lateSplatter = vtk.vtkGaussianSplatter()
        lateSplatter.SetInputConnection(fd2ad.GetOutputPort())
        lateSplatter.SetSampleDimensions(50, 50, 50)
        lateSplatter.SetRadius(0.05)
        lateSplatter.SetScaleFactor(0.05)
        lateSurface = vtk.vtkMarchingContourFilter()
        lateSurface.SetInputConnection(lateSplatter.GetOutputPort())
        lateSurface.SetValue(0, 0.01)
        lateMapper = vtk.vtkPolyDataMapper()
        lateMapper.SetInputConnection(lateSurface.GetOutputPort())
        lateMapper.ScalarVisibilityOff()
        lateActor = vtk.vtkActor()
        lateActor.SetMapper(lateMapper)
        lateActor.GetProperty().SetColor(1.0, 0.0, 0.0)

        # create axes
        popSplatter.Update()
        bounds = popSplatter.GetOutput().GetBounds()
        axes = vtk.vtkAxes()
        axes.SetOrigin(bounds[0], bounds[2], bounds[4])
        axes.SetScaleFactor(popSplatter.GetOutput().GetLength() / 5.0)
        axesTubes = vtk.vtkTubeFilter()
        axesTubes.SetInputConnection(axes.GetOutputPort())
        axesTubes.SetRadius(axes.GetScaleFactor() / 25.0)
        axesTubes.SetNumberOfSides(6)
        axesMapper = vtk.vtkPolyDataMapper()
        axesMapper.SetInputConnection(axesTubes.GetOutputPort())
        axesActor = vtk.vtkActor()
        axesActor.SetMapper(axesMapper)

        # label the axes
        XText = vtk.vtkVectorText()
        XText.SetText(xAxis)
        XTextMapper = vtk.vtkPolyDataMapper()
        XTextMapper.SetInputConnection(XText.GetOutputPort())
        XActor = vtk.vtkFollower()
        XActor.SetMapper(XTextMapper)
        XActor.SetScale(0.02, .02, .02)
        XActor.SetPosition(0.35, -0.05, -0.05)
        XActor.GetProperty().SetColor(0, 0, 0)

        YText = vtk.vtkVectorText()
        YText.SetText(yAxis)
        YTextMapper = vtk.vtkPolyDataMapper()
        YTextMapper.SetInputConnection(YText.GetOutputPort())
        YActor = vtk.vtkFollower()
        YActor.SetMapper(YTextMapper)
        YActor.SetScale(0.02, .02, .02)
        YActor.SetPosition(-0.05, 0.35, -0.05)
        YActor.GetProperty().SetColor(0, 0, 0)

        ZText = vtk.vtkVectorText()
        ZText.SetText(zAxis)
        ZTextMapper = vtk.vtkPolyDataMapper()
        ZTextMapper.SetInputConnection(ZText.GetOutputPort())
        ZActor = vtk.vtkFollower()
        ZActor.SetMapper(ZTextMapper)
        ZActor.SetScale(0.02, .02, .02)
        ZActor.SetPosition(-0.05, -0.05, 0.35)
        ZActor.GetProperty().SetColor(0, 0, 0)

        # Graphics stuff
        #
        ren = vtk.vtkRenderer()
        renWin = vtk.vtkRenderWindow()
        renWin.AddRenderer(ren)
        renWin.SetWindowName("vtk - Field.Data")

        # Add the actors to the renderer, set the background and size
        #
        ren.AddActor(axesActor)
        ren.AddActor(lateActor)
        ren.AddActor(XActor)
        ren.AddActor(YActor)
        ren.AddActor(ZActor)
        ren.AddActor(popActor) #it's last because its translucent)
        ren.SetBackground(1, 1, 1)
        renWin.SetSize(400, 400)

        camera = vtk.vtkCamera()
        camera.SetClippingRange(.274, 13.72)
        camera.SetFocalPoint(0.433816, 0.333131, 0.449)
        camera.SetPosition(-1.96987, 1.15145, 1.49053)
        camera.SetViewUp(0.378927, 0.911821, 0.158107)
        ren.SetActiveCamera(camera)
        XActor.SetCamera(camera)
        YActor.SetCamera(camera)
        ZActor.SetCamera(camera)


        # render and interact with data

        iRen = vtk.vtkRenderWindowInteractor()
        iRen.SetRenderWindow(renWin);
        renWin.Render()

        img_file = "financialField.png"
        vtk.test.Testing.compareImage(iRen.GetRenderWindow(), vtk.test.Testing.getAbsImagePath(img_file), threshold=25)
        vtk.test.Testing.interact()
コード例 #36
0
ファイル: Rotations.py プロジェクト: wangsen53/vtk-examples
def rotate(file_name, figure, actor_color):
    ''''
    This is where we do the rotations.

    '''
    # Create renderer stuff
    #
    colors = vtk.vtkNamedColors()
    # Set the background color.
    colors.SetColor('BkgColor', [26, 51, 102, 255])
    # colors.SetColor('BkgColor', [60, 93, 144, 255])

    ren1 = vtk.vtkRenderer()
    renWin = vtk.vtkRenderWindow()
    renWin.AddRenderer(ren1)

    iren = vtk.vtkRenderWindowInteractor()
    iren.SetRenderWindow(renWin)

    # Create the pipeline.
    #
    polyData = ReadPolyData(file_name)

    modelMapper = vtk.vtkPolyDataMapper()
    modelMapper.SetInputData(polyData)

    modelActor = vtk.vtkActor()
    modelActor.SetMapper(modelMapper)
    modelActor.GetProperty().SetDiffuseColor(colors.GetColor3d(actor_color))
    if actor_color != 'Wheat':
        modelActor.GetProperty().SetSpecular(0.6)
        modelActor.GetProperty().SetSpecularPower(30)

    modelAxesSource = vtk.vtkAxes()
    modelAxesSource.SetScaleFactor(10)
    modelAxesSource.SetOrigin(0, 0, 0)

    modelAxesMapper = vtk.vtkPolyDataMapper()
    modelAxesMapper.SetInputConnection(modelAxesSource.GetOutputPort())

    modelAxes = vtk.vtkActor()
    modelAxes.SetMapper(modelAxesMapper)

    ren1.AddActor(modelAxes)
    modelAxes.VisibilityOff()

    # Add the actors to the renderer, set the background and size.
    #
    ren1.AddActor(modelActor)
    if actor_color == 'Wheat':
        ren1.SetBackground(colors.GetColor3d('BkgColor'))
    else:
        ren1.SetBackground(colors.GetColor3d('Silver'))
    renWin.SetSize(640, 480)
    renWin.SetWindowName('Rotations')

    ren1.ResetCamera()
    ren1.GetActiveCamera().Azimuth(0)
    ren1.GetActiveCamera().SetClippingRange(0.1, 1000.0)

    modelAxes.VisibilityOn()

    renWin.Render()
    renWin.Render()

    if figure == 1:
        RotateX(renWin, modelActor)
    elif figure == 2:
        RotateY(renWin, modelActor)
    elif figure == 3:
        RotateZ(renWin, modelActor)
    else:
        RotateXY(renWin, modelActor)

    renWin.EraseOff()
    iren.Start()
コード例 #37
0
ファイル: financialField.py プロジェクト: marwan-abdellah/VTK
    def testFinancialField(self):

        size = 3187  #maximum number possible

        #set size 100 #maximum number possible
        xAxis = "INTEREST_RATE"
        yAxis = "MONTHLY_PAYMENT"
        zAxis = "MONTHLY_INCOME"
        scalar = "TIME_LATE"

        # extract data from field as a polydata (just points), then extract scalars
        fdr = vtk.vtkDataObjectReader()
        fdr.SetFileName(VTK_DATA_ROOT + "/Data/financial.vtk")
        do2ds = vtk.vtkDataObjectToDataSetFilter()
        do2ds.SetInputConnection(fdr.GetOutputPort())
        do2ds.SetDataSetTypeToPolyData()
        #format: component#, arrayname, arraycomp, minArrayId, maxArrayId, normalize
        do2ds.DefaultNormalizeOn()
        do2ds.SetPointComponent(0, xAxis, 0)
        do2ds.SetPointComponent(1, yAxis, 0, 0, size, 1)
        do2ds.SetPointComponent(2, zAxis, 0)
        do2ds.Update()
        if fdr.GetOutput().GetFieldData().GetAbstractArray(
                "Some Text").GetValue(0) != "Test me":
            raise RuntimeError, 'Could not properly read string array "Some Text"'
        fd2ad = vtk.vtkFieldDataToAttributeDataFilter()
        fd2ad.SetInputConnection(do2ds.GetOutputPort())
        fd2ad.SetInputFieldToDataObjectField()
        fd2ad.SetOutputAttributeDataToPointData()
        fd2ad.DefaultNormalizeOn()
        fd2ad.SetScalarComponent(0, scalar, 0)

        # construct pipeline for original population
        popSplatter = vtk.vtkGaussianSplatter()
        popSplatter.SetInputConnection(fd2ad.GetOutputPort())
        popSplatter.SetSampleDimensions(50, 50, 50)
        popSplatter.SetRadius(0.05)
        popSplatter.ScalarWarpingOff()
        popSurface = vtk.vtkMarchingContourFilter()
        popSurface.SetInputConnection(popSplatter.GetOutputPort())
        popSurface.SetValue(0, 0.01)
        popMapper = vtk.vtkPolyDataMapper()
        popMapper.SetInputConnection(popSurface.GetOutputPort())
        popMapper.ScalarVisibilityOff()
        popActor = vtk.vtkActor()
        popActor.SetMapper(popMapper)
        popActor.GetProperty().SetOpacity(0.3)
        popActor.GetProperty().SetColor(.9, .9, .9)

        # construct pipeline for delinquent population
        lateSplatter = vtk.vtkGaussianSplatter()
        lateSplatter.SetInputConnection(fd2ad.GetOutputPort())
        lateSplatter.SetSampleDimensions(50, 50, 50)
        lateSplatter.SetRadius(0.05)
        lateSplatter.SetScaleFactor(0.05)
        lateSurface = vtk.vtkMarchingContourFilter()
        lateSurface.SetInputConnection(lateSplatter.GetOutputPort())
        lateSurface.SetValue(0, 0.01)
        lateMapper = vtk.vtkPolyDataMapper()
        lateMapper.SetInputConnection(lateSurface.GetOutputPort())
        lateMapper.ScalarVisibilityOff()
        lateActor = vtk.vtkActor()
        lateActor.SetMapper(lateMapper)
        lateActor.GetProperty().SetColor(1.0, 0.0, 0.0)

        # create axes
        popSplatter.Update()
        bounds = popSplatter.GetOutput().GetBounds()
        axes = vtk.vtkAxes()
        axes.SetOrigin(bounds[0], bounds[2], bounds[4])
        axes.SetScaleFactor(popSplatter.GetOutput().GetLength() / 5.0)
        axesTubes = vtk.vtkTubeFilter()
        axesTubes.SetInputConnection(axes.GetOutputPort())
        axesTubes.SetRadius(axes.GetScaleFactor() / 25.0)
        axesTubes.SetNumberOfSides(6)
        axesMapper = vtk.vtkPolyDataMapper()
        axesMapper.SetInputConnection(axesTubes.GetOutputPort())
        axesActor = vtk.vtkActor()
        axesActor.SetMapper(axesMapper)

        # label the axes
        XText = vtk.vtkVectorText()
        XText.SetText(xAxis)
        XTextMapper = vtk.vtkPolyDataMapper()
        XTextMapper.SetInputConnection(XText.GetOutputPort())
        XActor = vtk.vtkFollower()
        XActor.SetMapper(XTextMapper)
        XActor.SetScale(0.02, .02, .02)
        XActor.SetPosition(0.35, -0.05, -0.05)
        XActor.GetProperty().SetColor(0, 0, 0)

        YText = vtk.vtkVectorText()
        YText.SetText(yAxis)
        YTextMapper = vtk.vtkPolyDataMapper()
        YTextMapper.SetInputConnection(YText.GetOutputPort())
        YActor = vtk.vtkFollower()
        YActor.SetMapper(YTextMapper)
        YActor.SetScale(0.02, .02, .02)
        YActor.SetPosition(-0.05, 0.35, -0.05)
        YActor.GetProperty().SetColor(0, 0, 0)

        ZText = vtk.vtkVectorText()
        ZText.SetText(zAxis)
        ZTextMapper = vtk.vtkPolyDataMapper()
        ZTextMapper.SetInputConnection(ZText.GetOutputPort())
        ZActor = vtk.vtkFollower()
        ZActor.SetMapper(ZTextMapper)
        ZActor.SetScale(0.02, .02, .02)
        ZActor.SetPosition(-0.05, -0.05, 0.35)
        ZActor.GetProperty().SetColor(0, 0, 0)

        # Graphics stuff
        #
        ren = vtk.vtkRenderer()
        renWin = vtk.vtkRenderWindow()
        renWin.AddRenderer(ren)
        renWin.SetWindowName("vtk - Field.Data")

        # Add the actors to the renderer, set the background and size
        #
        ren.AddActor(axesActor)
        ren.AddActor(lateActor)
        ren.AddActor(XActor)
        ren.AddActor(YActor)
        ren.AddActor(ZActor)
        ren.AddActor(popActor)  #it's last because its translucent)
        ren.SetBackground(1, 1, 1)
        renWin.SetSize(400, 400)

        camera = vtk.vtkCamera()
        camera.SetClippingRange(.274, 13.72)
        camera.SetFocalPoint(0.433816, 0.333131, 0.449)
        camera.SetPosition(-1.96987, 1.15145, 1.49053)
        camera.SetViewUp(0.378927, 0.911821, 0.158107)
        ren.SetActiveCamera(camera)
        XActor.SetCamera(camera)
        YActor.SetCamera(camera)
        ZActor.SetCamera(camera)

        # render and interact with data

        iRen = vtk.vtkRenderWindowInteractor()
        iRen.SetRenderWindow(renWin)
        renWin.Render()

        img_file = "financialField.png"
        vtk.test.Testing.compareImage(
            iRen.GetRenderWindow(),
            vtk.test.Testing.getAbsImagePath(img_file),
            threshold=25)
        vtk.test.Testing.interact()
コード例 #38
0
ファイル: Rotations.py プロジェクト: mathstuf/VTKExamples
def main():
    """
        To match the illustrations in VTKTextbook.pdf, use BkgColor as the background and
          Wheat as the cow colour.
        Also comment out the lines:
          modelActor->GetProperty()->SetSpecular(.6);
          modelActor->GetProperty()->SetSpecularPower(30);
        and use cow.g as the inout data.

    """
    file_name, figure = get_program_parameters()
    # Create renderer stuff
    #
    colors = vtk.vtkNamedColors()
    # Set the background color. Match those in VTKTextbook.pdf.
    bkg = map(lambda x: x / 256.0, [60, 93, 144])
    colors.SetColor("BkgColor", *bkg)

    ren1 = vtk.vtkRenderer()
    renWin = vtk.vtkRenderWindow()
    renWin.AddRenderer(ren1)

    iren = vtk.vtkRenderWindowInteractor()
    iren.SetRenderWindow(renWin)

    # create pipeline
    #
    polyData = ReadPolyData(file_name)

    modelMapper = vtk.vtkPolyDataMapper()
    modelMapper.SetInputData(polyData)

    modelActor = vtk.vtkActor()
    modelActor.SetMapper(modelMapper)
    # modelActor.GetProperty().SetDiffuseColor(colors.GetColor3d("Wheat"))
    modelActor.GetProperty().SetDiffuseColor(colors.GetColor3d("Crimson"))
    modelActor.GetProperty().SetSpecular(.6)
    modelActor.GetProperty().SetSpecularPower(30)

    modelAxesSource = vtk.vtkAxes()
    modelAxesSource.SetScaleFactor(10)
    modelAxesSource.SetOrigin(0, 0, 0)

    modelAxesMapper = vtk.vtkPolyDataMapper()
    modelAxesMapper.SetInputConnection(modelAxesSource.GetOutputPort())

    modelAxes = vtk.vtkActor()
    modelAxes.SetMapper(modelAxesMapper)

    ren1.AddActor(modelAxes)
    modelAxes.VisibilityOff()

    # Add the actors to the renderer, set the background and size
    #
    ren1.AddActor(modelActor)
    # ren1.SetBackground(colors.GetColor3d("BkgColor"))
    ren1.SetBackground(colors.GetColor3d("Silver"))
    renWin.SetSize(640, 480)
    ren1.ResetCamera()
    ren1.GetActiveCamera().Azimuth(0)
    ren1.GetActiveCamera().SetClippingRange(.1, 1000.0)

    modelAxes.VisibilityOn()

    renWin.Render()
    renWin.Render()

    if figure == 1:
        RotateX(renWin, modelActor)
    elif figure == 2:
        RotateY(renWin, modelActor)
    elif figure == 3:
        RotateZ(renWin, modelActor)
    else:
        RotateXY(renWin, modelActor)

    renWin.EraseOff()
    iren.Start()
コード例 #39
0
ファイル: TensorAxes.py プロジェクト: zwlshine/VTKExamples
def main():
    colors = vtk.vtkNamedColors()

    # Create the RenderWindow, Renderer and interactive renderer.
    #
    ren = vtk.vtkRenderer()
    renWin = vtk.vtkRenderWindow()
    renWin.AddRenderer(ren)
    iren = vtk.vtkRenderWindowInteractor()
    iren.SetRenderWindow(renWin)

    # Generate the tensors.
    ptLoad = vtk.vtkPointLoad()
    ptLoad.SetLoadValue(100.0)
    ptLoad.SetSampleDimensions(6, 6, 6)
    ptLoad.ComputeEffectiveStressOn()
    ptLoad.SetModelBounds(-10, 10, -10, 10, -10, 10)

    # Extract a plane of data.
    plane = vtk.vtkImageDataGeometryFilter()
    plane.SetInputConnection(ptLoad.GetOutputPort())
    plane.SetExtent(2, 2, 0, 99, 0, 99)

    # Generate the tensor axes.
    axes = vtk.vtkAxes()
    axes.SetScaleFactor(0.5)

    tubeAxes = vtk.vtkTubeFilter()
    tubeAxes.SetInputConnection(axes.GetOutputPort())
    tubeAxes.SetRadius(0.1)
    tubeAxes.SetNumberOfSides(6)

    tensorAxes = vtk.vtkTensorGlyph()
    tensorAxes.SetInputConnection(ptLoad.GetOutputPort())
    tensorAxes.SetSourceConnection(axes.GetOutputPort())
    tensorAxes.SetScaleFactor(10)
    tensorAxes.ClampScalingOn()

    # Map contour
    lut = vtk.vtkLookupTable()
    MakeLogLUT(lut)
    # lut.SetHueRange(.6667, 0.0)
    tensorAxesMapper = vtk.vtkPolyDataMapper()
    tensorAxesMapper.SetInputConnection(tensorAxes.GetOutputPort())
    tensorAxesMapper.SetLookupTable(lut)
    plane.Update()  # force update for scalar range
    # This is deprecated from vtk 8.1 onwards.
    # tensorAxesMapper.ImmediateModeRenderingOn()
    tensorAxesMapper.SetScalarRange(plane.GetOutput().GetScalarRange())

    tensorActor = vtk.vtkActor()
    tensorActor.SetMapper(tensorAxesMapper)

    # Create an outline around the data.
    #
    outline = vtk.vtkOutlineFilter()
    outline.SetInputConnection(ptLoad.GetOutputPort())

    outlineMapper = vtk.vtkPolyDataMapper()
    outlineMapper.SetInputConnection(outline.GetOutputPort())

    outlineActor = vtk.vtkActor()
    outlineActor.SetMapper(outlineMapper)
    outlineActor.GetProperty().SetColor(colors.GetColor3d("Black"))

    #
    # Create a cone whose apex indicates the application of load.
    #
    coneSrc = vtk.vtkConeSource()
    coneSrc.SetRadius(.5)
    coneSrc.SetHeight(2)
    coneMap = vtk.vtkPolyDataMapper()
    coneMap.SetInputConnection(coneSrc.GetOutputPort())
    coneActor = vtk.vtkActor()
    coneActor.SetMapper(coneMap)
    coneActor.SetPosition(0, 0, 11)
    coneActor.RotateY(90)
    coneActor.GetProperty().SetColor(colors.GetColor3d("BurlyWood"))

    camera = vtk.vtkCamera()
    camera.SetFocalPoint(0.113766, -1.13665, -1.01919)
    camera.SetPosition(-29.4886, -63.1488, 26.5807)
    camera.SetViewAngle(24.4617)
    camera.SetViewUp(0.17138, 0.331163, 0.927879)
    camera.SetClippingRange(1, 100)

    ren.AddActor(tensorActor)
    ren.AddActor(outlineActor)
    ren.AddActor(coneActor)
    ren.SetBackground(colors.GetColor3d("WhiteSmoke"))
    ren.SetActiveCamera(camera)

    renWin.SetSize(512, 512)

    iren.Initialize()
    renWin.Render()
    iren.Start()
コード例 #40
0
    def render_polydata(self, input_polydata, scalar_range=None,
                        tube=True, opacity=1, depth_peeling=False,
                        scalar_bar=False, scalar_bar_title=None,
                        axes=False, data_mode="Cell", colormap='jet', verbose=True):

        # re-do this every time because the user may close the window
        # and re-use the object
        #self.build_vtk()

        if verbose:
            print("<render.py> Rendering vtkPolyData.")
        
        # actor and mapper
        mapper = vtk.vtkPolyDataMapper()
        actor = vtk.vtkActor()
        actor.SetMapper(mapper)
        # assign actor to the renderer
        self.renderer.AddActor(actor)


        # lookup table for everything
        #self.lut = vtk.vtkLookupTable()
        if colormap == 'hot':
            lut = get_hot_lookup_table()
        else:
            lut = get_jet_lookup_table()

        mapper.UseLookupTableScalarRangeOn()
        mapper.SetLookupTable(lut)

        # see if we have RGB data, if so the scalar bar is meaningless
        self.render_RGB = False
        if input_polydata.GetCellData().GetScalars():
            if input_polydata.GetCellData().GetScalars().GetNumberOfComponents() == 3:
                self.render_RGB = True
                self.renderer.RemoveActor2D(self.scalarbar)
        if verbose:
            print("<render.py> RGB: ", self.render_RGB)

        if data_mode == "Cell":
            mapper.SetScalarModeToUseCellData()
        elif data_mode == "Point":
            mapper.SetScalarModeToUsePointData()

        #if input_polydata.GetNumberOfLines() > 0:
        #    mapper.SetScalarModeToUseCellData()
        
        if tube & (input_polydata.GetNumberOfLines() > 0):
            # make a tube filter
            tube_filter = vtk.vtkTubeFilter()
            tube_filter.SetNumberOfSides(self.number_of_tube_sides)
            if (vtk.vtkVersion().GetVTKMajorVersion() > 5.0):
                tube_filter.SetInputData(input_polydata)
            else:
                tube_filter.SetInput(input_polydata)
            if (vtk.vtkVersion().GetVTKMajorVersion() >= 6.0):
                mapper.SetInputConnection(tube_filter.GetOutputPort())
            else:
                mapper.SetInput(tube_filter.GetOutput())
        else:
            if (vtk.vtkVersion().GetVTKMajorVersion() >= 6.0):
                mapper.SetInputData(input_polydata)
            else:
                mapper.SetInput(input_polydata)            


        if scalar_range is None:
            # check polydata scalar range. 
            range_low, range_high = input_polydata.GetScalarRange()
            # if these numbers are between -1 and 1 assume laterality
            # data, so make sure colorbar is centered at 0 for clearer
            # interpretation
            if (range_low >= -1.0 ) and (range_high <= 1.0):
                range_final = max(abs(range_low), abs(range_high))
                lut.SetRange([-range_final, range_final])
            else:
                # otherwise just use the range directly
                lut.SetRange([range_low, range_high])

        else:
            lut.SetRange(scalar_range)

        if opacity is not 1:
            actor.GetProperty().SetOpacity(opacity)

        if depth_peeling is not False:
            # 1. Use a render window with alpha bits (as initial value is 0 (false)):
            self.render_window.SetAlphaBitPlanes(1)
            # 2. Force to not pick a framebuffer with a multisample buffer
            # (as initial value is 8):
            self.render_window.SetMultiSamples(0)
            # 3. Choose to use depth peeling (if supported) (initial value is 0 (false)):
            self.renderer.SetUseDepthPeeling(1)
            # 4. Set depth peeling parameters
            # - Set the maximum number of rendering passes (initial value is 4):
            #renderer->SetMaximumNumberOfPeels(maxNoOfPeels);
            #// - Set the occlusion ratio (initial value is 0.0, exact image):
            #renderer->SetOcclusionRatio(occlusionRatio);
            
        if scalar_bar:
            self.scalarbar.SetLookupTable(lut)
            self.renderer.AddActor2D(self.scalarbar)
            if scalar_bar_title is not None:
                self.scalarbar.SetTitle(scalar_bar_title)
        else:
            self.renderer.RemoveActor2D(self.scalarbar)
        
        # Create the axes and the associated mapper and actor.
        self.axes = vtk.vtkAxes()
        self.axes.SetOrigin(0, 0, 0)
        self.axes.SetScaleFactor(100)
        self.axes.SymmetricOn()
        self.axes_mapper = vtk.vtkPolyDataMapper()
        if (vtk.vtkVersion().GetVTKMajorVersion() >= 6.0):
            self.axes_mapper.SetInputConnection(self.axes.GetOutputPort())
        else:
            self.axes_mapper.SetInput(self.axes.GetOutput())
        self.axes_actor = vtk.vtkActor()
        self.axes_actor.SetMapper(self.axes_mapper)
        self.axes_mapper.SetLookupTable(lut)
        if axes:
            self.renderer.AddActor(self.axes_actor)
        else:
            self.renderer.RemoveActor(self.axes_actor)
        
        try:
            self.render_window.Render()
        except Exception:
            print("<render.py> ERROR. Failed to render. Check display settings.")
コード例 #41
0
def main():
    ifn = get_program_parameters()

    colors = vtk.vtkNamedColors()

    reader = vtk.vtkDataObjectReader()
    reader.SetFileName(ifn)

    size = 3187  # maximum number possible

    xAxis = "INTEREST_RATE"
    yAxis = "MONTHLY_PAYMENT"
    zAxis = "MONTHLY_INCOME"
    scalar = "TIME_LATE"

    # Extract data from field as a polydata (just points), then extract scalars.
    do2ds = vtk.vtkDataObjectToDataSetFilter()
    do2ds.SetInputConnection(reader.GetOutputPort())
    do2ds.SetDataSetTypeToPolyData()
    # format: component#, arrayname, arraycomp, minArrayId, maxArrayId, normalize
    do2ds.DefaultNormalizeOn()
    do2ds.SetPointComponent(0, xAxis, 0)
    do2ds.SetPointComponent(1, yAxis, 0, 0, size, 1)
    do2ds.SetPointComponent(2, zAxis, 0)
    do2ds.Update()
    fd2ad = vtk.vtkFieldDataToAttributeDataFilter()
    fd2ad.SetInputConnection(do2ds.GetOutputPort())
    fd2ad.SetInputFieldToDataObjectField()
    fd2ad.SetOutputAttributeDataToPointData()
    fd2ad.DefaultNormalizeOn()
    fd2ad.SetScalarComponent(0, scalar, 0)

    # Construct the pipeline for the original population.
    popSplatter = vtk.vtkGaussianSplatter()
    popSplatter.SetInputConnection(fd2ad.GetOutputPort())
    popSplatter.SetSampleDimensions(150, 150, 150)
    popSplatter.SetRadius(0.05)
    popSplatter.ScalarWarpingOff()

    popSurface = vtk.vtkMarchingContourFilter()
    popSurface.SetInputConnection(popSplatter.GetOutputPort())
    popSurface.SetValue(0, 0.01)
    popMapper = vtk.vtkPolyDataMapper()
    popMapper.SetInputConnection(popSurface.GetOutputPort())
    popMapper.ScalarVisibilityOff()
    popActor = vtk.vtkActor()
    popActor.SetMapper(popMapper)
    popActor.GetProperty().SetOpacity(0.3)
    popActor.GetProperty().SetColor(colors.GetColor3d("Gold"))

    # Construct the pipeline for the delinquent population.
    lateSplatter = vtk.vtkGaussianSplatter()
    lateSplatter.SetInputConnection(fd2ad.GetOutputPort())
    lateSplatter.SetSampleDimensions(150, 150, 150)
    lateSplatter.SetRadius(0.05)
    lateSplatter.SetScaleFactor(0.05)

    lateSurface = vtk.vtkMarchingContourFilter()
    lateSurface.SetInputConnection(lateSplatter.GetOutputPort())
    lateSurface.SetValue(0, 0.01)
    lateMapper = vtk.vtkPolyDataMapper()
    lateMapper.SetInputConnection(lateSurface.GetOutputPort())
    lateMapper.ScalarVisibilityOff()
    lateActor = vtk.vtkActor()
    lateActor.SetMapper(lateMapper)
    lateActor.GetProperty().SetColor(colors.GetColor3d("Tomato"))

    # Create the axes.
    popSplatter.Update()
    bounds = popSplatter.GetOutput().GetBounds()
    axes = vtk.vtkAxes()
    axes.SetOrigin(bounds[0], bounds[2], bounds[4])
    axes.SetScaleFactor(popSplatter.GetOutput().GetLength() / 5.0)
    axesTubes = vtk.vtkTubeFilter()
    axesTubes.SetInputConnection(axes.GetOutputPort())
    axesTubes.SetRadius(axes.GetScaleFactor() / 25.0)
    axesTubes.SetNumberOfSides(6)
    axesMapper = vtk.vtkPolyDataMapper()
    axesMapper.SetInputConnection(axesTubes.GetOutputPort())
    axesActor = vtk.vtkActor()
    axesActor.SetMapper(axesMapper)

    # Label the axes.
    XText = vtk.vtkVectorText()
    XText.SetText(xAxis)
    XTextMapper = vtk.vtkPolyDataMapper()
    XTextMapper.SetInputConnection(XText.GetOutputPort())

    XActor = vtk.vtkFollower()
    XActor.SetMapper(XTextMapper)
    XActor.SetScale(0.02, .02, .02)
    XActor.SetPosition(0.35, -0.05, -0.05)
    XActor.GetProperty().SetColor(0, 0, 0)

    YText = vtk.vtkVectorText()
    YText.SetText(yAxis)

    YTextMapper = vtk.vtkPolyDataMapper()
    YTextMapper.SetInputConnection(YText.GetOutputPort())
    YActor = vtk.vtkFollower()
    YActor.SetMapper(YTextMapper)
    YActor.SetScale(0.02, .02, .02)
    YActor.SetPosition(-0.05, 0.35, -0.05)
    YActor.GetProperty().SetColor(0, 0, 0)

    ZText = vtk.vtkVectorText()
    ZText.SetText(zAxis)
    ZTextMapper = vtk.vtkPolyDataMapper()
    ZTextMapper.SetInputConnection(ZText.GetOutputPort())
    ZActor = vtk.vtkFollower()
    ZActor.SetMapper(ZTextMapper)
    ZActor.SetScale(0.02, .02, .02)
    ZActor.SetPosition(-0.05, -0.05, 0.35)
    ZActor.GetProperty().SetColor(0, 0, 0)

    # Graphics stuff.
    renderer = vtk.vtkRenderer()
    renderWindow = vtk.vtkRenderWindow()
    renderWindow.AddRenderer(renderer)
    renderWindow.SetWindowName("vtk - Field.Data")

    # Add the actors to the renderer, set the background and size.
    renderer.AddActor(axesActor)
    renderer.AddActor(lateActor)
    renderer.AddActor(XActor)
    renderer.AddActor(YActor)
    renderer.AddActor(ZActor)
    renderer.AddActor(popActor)
    renderer.SetBackground(colors.GetColor3d("SlateGray"))
    renderWindow.SetSize(650, 480)

    camera = vtk.vtkCamera()
    camera.SetClippingRange(.274, 13.72)
    camera.SetFocalPoint(0.433816, 0.333131, 0.449)
    camera.SetPosition(-1.96987, 1.15145, 1.49053)
    camera.SetViewUp(0.378927, 0.911821, 0.158107)
    renderer.SetActiveCamera(camera)
    XActor.SetCamera(camera)
    YActor.SetCamera(camera)
    ZActor.SetCamera(camera)

    # Render and interact with the data.

    interactor = vtk.vtkRenderWindowInteractor()
    interactor.SetRenderWindow(renderWindow)
    renderWindow.Render()
    interactor.Start()
コード例 #42
0
ファイル: financialField3.py プロジェクト: DeepDriving/VTK-1
    def testFinancialField(self):
        """
            Demonstrate the use and manipulation of fields and use of
            vtkProgrammableDataObjectSource. This creates fields the hard way
            (as compared to reading a vtk field file), but shows you how to
            interface to your own raw data.

            The image should be the same as financialField.tcl
        """

        xAxis = "INTEREST_RATE"
        yAxis = "MONTHLY_PAYMENT"
        zAxis = "MONTHLY_INCOME"
        scalar = "TIME_LATE"

        # Parse an ascii file and manually create a field. Then construct a
        # dataset from the field.
        dos = vtk.vtkProgrammableDataObjectSource()

        def parseFile():
            f = open(VTK_DATA_ROOT + "/Data/financial.txt", "r")

            line = f.readline().split()
            # From the size calculate the number of lines.
            numPts = int(line[1])
            numLines = (numPts - 1) / 8 + 1

            # create the data object
            field = vtk.vtkFieldData()
            field.AllocateArrays(4)

            # read TIME_LATE - dependent variable
            while True:
                line = f.readline().split()
                if len(line) > 0:
                    break
            timeLate = vtk.vtkFloatArray()
            timeLate.SetName(line[0])
            for i in range(0, numLines):
                line = f.readline().split()
                for j in line:
                    timeLate.InsertNextValue(float(j))
            field.AddArray(timeLate)

            # MONTHLY_PAYMENT - independent variable
            while True:
                line = f.readline().split()
                if len(line) > 0:
                    break
            monthlyPayment = vtk.vtkFloatArray()
            monthlyPayment.SetName(line[0])
            for i in range(0, numLines):
                line = f.readline().split()
                for j in line:
                    monthlyPayment.InsertNextValue(float(j))
            field.AddArray(monthlyPayment)

            # UNPAID_PRINCIPLE - skip
            while True:
                line = f.readline().split()
                if len(line) > 0:
                    break
            for i in range(0, numLines):
                line = f.readline()

            # LOAN_AMOUNT - skip
            while True:
                line = f.readline().split()
                if len(line) > 0:
                    break
            for i in range(0, numLines):
                line = f.readline()

            # INTEREST_RATE - independent variable
            while True:
                line = f.readline().split()
                if len(line) > 0:
                    break
            interestRate = vtk.vtkFloatArray()
            interestRate.SetName(line[0])
            for i in range(0, numLines):
                line = f.readline().split()
                for j in line:
                    interestRate.InsertNextValue(float(j))
            field.AddArray(interestRate)

            # MONTHLY_INCOME - independent variable
            while True:
                line = f.readline().split()
                if len(line) > 0:
                    break
            monthlyIncome = vtk.vtkFloatArray()
            monthlyIncome.SetName(line[0])
            for i in range(0, numLines):
                line = f.readline().split()
                for j in line:
                    monthlyIncome.InsertNextValue(float(j))
            field.AddArray(monthlyIncome)

            dos.GetOutput().SetFieldData(field)

        dos.SetExecuteMethod(parseFile)

        # Create the dataset
        do2ds = vtk.vtkDataObjectToDataSetFilter()
        do2ds.SetInputConnection(dos.GetOutputPort())
        do2ds.SetDataSetTypeToPolyData()
        #format: component#, arrayname, arraycomp, minArrayId, maxArrayId, normalize
        do2ds.DefaultNormalizeOn()
        do2ds.SetPointComponent(0, xAxis, 0)
        do2ds.SetPointComponent(1, yAxis, 0)
        do2ds.SetPointComponent(2, zAxis, 0)
        do2ds.Update()

        rf = vtk.vtkRearrangeFields()
        rf.SetInputConnection(do2ds.GetOutputPort())
        rf.AddOperation("MOVE", scalar, "DATA_OBJECT", "POINT_DATA")
        rf.RemoveOperation("MOVE", scalar, "DATA_OBJECT", "POINT_DATA")
        rf.AddOperation("MOVE", scalar, "DATA_OBJECT", "POINT_DATA")
        rf.RemoveAllOperations()
        rf.AddOperation("MOVE", scalar, "DATA_OBJECT", "POINT_DATA")
        rf.Update()
        max = rf.GetOutput().GetPointData().GetArray(scalar).GetRange(0)[1]

        calc = vtk.vtkArrayCalculator()
        calc.SetInputConnection(rf.GetOutputPort())
        calc.SetAttributeTypeToPointData()
        calc.SetFunction("s / %f" % max)
        calc.AddScalarVariable("s", scalar, 0)
        calc.SetResultArrayName("resArray")

        aa = vtk.vtkAssignAttribute()
        aa.SetInputConnection(calc.GetOutputPort())
        aa.Assign("resArray", "SCALARS", "POINT_DATA")
        aa.Update()

        rf2 = vtk.vtkRearrangeFields()
        rf2.SetInputConnection(aa.GetOutputPort())
        rf2.AddOperation("COPY", "SCALARS", "POINT_DATA", "DATA_OBJECT")

        # construct pipeline for original population
        popSplatter = vtk.vtkGaussianSplatter()
        popSplatter.SetInputConnection(rf2.GetOutputPort())
        popSplatter.SetSampleDimensions(50, 50, 50)
        popSplatter.SetRadius(0.05)
        popSplatter.ScalarWarpingOff()
        popSurface = vtk.vtkContourFilter()
        popSurface.SetInputConnection(popSplatter.GetOutputPort())
        popSurface.SetValue(0, 0.01)
        popMapper = vtk.vtkPolyDataMapper()
        popMapper.SetInputConnection(popSurface.GetOutputPort())
        popMapper.ScalarVisibilityOff()
        popMapper.ImmediateModeRenderingOn()
        popActor = vtk.vtkActor()
        popActor.SetMapper(popMapper)
        popActor.GetProperty().SetOpacity(0.3)
        popActor.GetProperty().SetColor(.9, .9, .9)

        # construct pipeline for delinquent population
        lateSplatter = vtk.vtkGaussianSplatter()
        lateSplatter.SetInputConnection(aa.GetOutputPort())
        lateSplatter.SetSampleDimensions(50, 50, 50)
        lateSplatter.SetRadius(0.05)
        lateSplatter.SetScaleFactor(0.05)
        lateSurface = vtk.vtkContourFilter()
        lateSurface.SetInputConnection(lateSplatter.GetOutputPort())
        lateSurface.SetValue(0, 0.01)
        lateMapper = vtk.vtkPolyDataMapper()
        lateMapper.SetInputConnection(lateSurface.GetOutputPort())
        lateMapper.ScalarVisibilityOff()
        lateActor = vtk.vtkActor()
        lateActor.SetMapper(lateMapper)
        lateActor.GetProperty().SetColor(1.0, 0.0, 0.0)

        # create axes
        popSplatter.Update()
        bounds = popSplatter.GetOutput().GetBounds()
        axes = vtk.vtkAxes()
        axes.SetOrigin(bounds[0], bounds[2], bounds[4])
        axes.SetScaleFactor(popSplatter.GetOutput().GetLength() / 5.0)
        axesTubes = vtk.vtkTubeFilter()
        axesTubes.SetInputConnection(axes.GetOutputPort())
        axesTubes.SetRadius(axes.GetScaleFactor() / 25.0)
        axesTubes.SetNumberOfSides(6)
        axesMapper = vtk.vtkPolyDataMapper()
        axesMapper.SetInputConnection(axesTubes.GetOutputPort())
        axesActor = vtk.vtkActor()
        axesActor.SetMapper(axesMapper)

        # label the axes
        XText = vtk.vtkVectorText()
        XText.SetText(xAxis)
        XTextMapper = vtk.vtkPolyDataMapper()
        XTextMapper.SetInputConnection(XText.GetOutputPort())
        XActor = vtk.vtkFollower()
        XActor.SetMapper(XTextMapper)
        XActor.SetScale(0.02, .02, .02)
        XActor.SetPosition(0.35, -0.05, -0.05)
        XActor.GetProperty().SetColor(0, 0, 0)

        YText = vtk.vtkVectorText()
        YText.SetText(yAxis)
        YTextMapper = vtk.vtkPolyDataMapper()
        YTextMapper.SetInputConnection(YText.GetOutputPort())
        YActor = vtk.vtkFollower()
        YActor.SetMapper(YTextMapper)
        YActor.SetScale(0.02, .02, .02)
        YActor.SetPosition(-0.05, 0.35, -0.05)
        YActor.GetProperty().SetColor(0, 0, 0)

        ZText = vtk.vtkVectorText()
        ZText.SetText(zAxis)
        ZTextMapper = vtk.vtkPolyDataMapper()
        ZTextMapper.SetInputConnection(ZText.GetOutputPort())
        ZActor = vtk.vtkFollower()
        ZActor.SetMapper(ZTextMapper)
        ZActor.SetScale(0.02, .02, .02)
        ZActor.SetPosition(-0.05, -0.05, 0.35)
        ZActor.GetProperty().SetColor(0, 0, 0)

        # Graphics stuff
        #
        ren = vtk.vtkRenderer()
        renWin = vtk.vtkRenderWindow()
        renWin.AddRenderer(ren)
        renWin.SetWindowName("vtk(-, Field.Data")
        renWin.SetSize(300, 300)

        # Add the actors to the renderer, set the background and size
        #
        ren.AddActor(axesActor)
        ren.AddActor(lateActor)
        ren.AddActor(XActor)
        ren.AddActor(YActor)
        ren.AddActor(ZActor)
        ren.AddActor(popActor)  #it's last because its translucent)
        ren.SetBackground(1, 1, 1)

        camera = vtk.vtkCamera()
        camera.SetClippingRange(.274, 13.72)
        camera.SetFocalPoint(0.433816, 0.333131, 0.449)
        camera.SetPosition(-1.96987, 1.15145, 1.49053)
        camera.SetViewUp(0.378927, 0.911821, 0.158107)
        ren.SetActiveCamera(camera)
        XActor.SetCamera(camera)
        YActor.SetCamera(camera)
        ZActor.SetCamera(camera)

        # render and interact with data

        iRen = vtk.vtkRenderWindowInteractor()
        iRen.SetRenderWindow(renWin)
        renWin.Render()

        img_file = "financialField3.png"
        vtk.test.Testing.compareImage(
            iRen.GetRenderWindow(),
            vtk.test.Testing.getAbsImagePath(img_file),
            threshold=25)
        vtk.test.Testing.interact()
コード例 #43
0
ファイル: Picking_1.py プロジェクト: quentan/Picking
def vtk_show(_renderer, window_name='VTK Show Window',
             width=640, height=480, has_picker=False):
    """
    Show the vtkRenderer in an vtkRenderWindow
    Only support ONE vtkRenderer
    :return: No return value
    """
    # render_window = vtk.vtkRenderWindow()
    render_window.AddRenderer(_renderer)
    render_window.SetSize(width, height)
    render_window.Render()
    # It works only after Render() is called
    render_window.SetWindowName(window_name)

    # iren = vtk.vtkRenderWindowInteractor()
    # iren.SetRenderWindow(render_window)

    interactor_style = vtk.vtkInteractorStyleTrackballCamera()
    iren.SetInteractorStyle(interactor_style)

    # Add an Annoted Cube with Arrows
    cube = vtk.vtkAnnotatedCubeActor()
    cube.SetXPlusFaceText('R')
    cube.SetXMinusFaceText('L')
    cube.SetYPlusFaceText('A')
    cube.SetYMinusFaceText('P')
    cube.SetZPlusFaceText('I')
    cube.SetZMinusFaceText('S')
    cube.SetXFaceTextRotation(180)
    cube.SetYFaceTextRotation(180)
    cube.SetZFaceTextRotation(-90)
    cube.SetFaceTextScale(0.65)
    cube.GetCubeProperty().SetColor(0.5, 1.0, 1.0)
    cube.GetTextEdgesProperty().SetLineWidth(1)
    cube.GetTextEdgesProperty().SetColor(0.18, 0.28, 0.23)
    cube.GetTextEdgesProperty().SetDiffuse(0)
    cube.GetTextEdgesProperty().SetAmbient(1)

    cube.GetXPlusFaceProperty().SetColor(1, 0, 0)
    cube.GetXPlusFaceProperty().SetInterpolationToFlat()
    cube.GetXMinusFaceProperty().SetColor(1, 0, 0)
    cube.GetXMinusFaceProperty().SetInterpolationToFlat()

    cube.GetYPlusFaceProperty().SetColor(0, 1, 0)
    cube.GetYPlusFaceProperty().SetInterpolationToFlat()
    cube.GetYMinusFaceProperty().SetColor(0, 1, 0)
    cube.GetYMinusFaceProperty().SetInterpolationToFlat()

    cube.GetZPlusFaceProperty().SetColor(0, 0, 1)
    cube.GetZPlusFaceProperty().SetInterpolationToFlat()
    cube.GetZMinusFaceProperty().SetColor(0, 0, 1)
    cube.GetZMinusFaceProperty().SetInterpolationToFlat()

    text_property = vtk.vtkTextProperty()
    text_property.ItalicOn()
    text_property.ShadowOn()
    text_property.BoldOn()
    text_property.SetFontFamilyToTimes()
    text_property.SetColor(1, 0, 0)

    text_property_2 = vtk.vtkTextProperty()
    text_property_2.ShallowCopy(text_property)
    text_property_2.SetColor(0, 1, 0)
    text_property_3 = vtk.vtkTextProperty()
    text_property_3.ShallowCopy(text_property)
    text_property_3.SetColor(0, 0, 1)

    axes = vtk.vtkAxesActor()
    axes.SetShaftTypeToCylinder()
    axes.SetXAxisLabelText('X')
    axes.SetYAxisLabelText('Y')
    axes.SetZAxisLabelText('Z')
    axes.SetTotalLength(1.5, 1.5, 1.5)
    axes.GetXAxisCaptionActor2D().SetCaptionTextProperty(text_property)
    axes.GetYAxisCaptionActor2D().SetCaptionTextProperty(text_property_2)
    axes.GetZAxisCaptionActor2D().SetCaptionTextProperty(text_property_3)

    assembly = vtk.vtkPropAssembly()
    assembly.AddPart(axes)
    assembly.AddPart(cube)

    marker = vtk.vtkOrientationMarkerWidget()
    marker.SetOutlineColor(0.93, 0.57, 0.13)
    marker.SetOrientationMarker(assembly)
    marker.SetViewport(0.0, 0.0, 0.15, 0.3)
    marker.SetInteractor(iren)
    marker.EnabledOn()
    marker.InteractiveOn()

    # Add a x-y-z coordinate to the original point
    axes_coor = vtk.vtkAxes()
    axes_coor.SetOrigin(0, 0, 0)
    mapper_axes_coor = vtk.vtkPolyDataMapper()
    mapper_axes_coor.SetInputConnection(axes_coor.GetOutputPort())
    actor_axes_coor = vtk.vtkActor()
    actor_axes_coor.SetMapper(mapper_axes_coor)
    _renderer.AddActor(actor_axes_coor)

    # Add an original point and text
    add_point(_renderer, color=[0, 1, 0], radius=2)
    add_text(_renderer, position=[0, 0, 0], text="Origin",
             color=[0, 1, 0], scale=2)

    _renderer.ResetCamera()  # Coorperate with vtkFollower

    # iren.Initialize()  # will be called by Start() autometically
    if has_picker:
        iren.AddObserver('MouseMoveEvent', MoveCursor)
    iren.Start()
コード例 #44
0
def main():
    colors = vtk.vtkNamedColors()

    colors.SetColor("PopColor", [230, 230, 230, 255])

    fileName = get_program_parameters()

    keys = [
        'NUMBER_POINTS', 'MONTHLY_PAYMENT', 'INTEREST_RATE', 'LOAN_AMOUNT',
        'TIME_LATE'
    ]

    # Read in the data and make an unstructured data set.
    dataSet = make_dataset(fileName, keys)

    # Construct the pipeline for the original population.
    popSplatter = vtk.vtkGaussianSplatter()
    popSplatter.SetInputData(dataSet)
    popSplatter.SetSampleDimensions(100, 100, 100)
    popSplatter.SetRadius(0.05)
    popSplatter.ScalarWarpingOff()

    popSurface = vtk.vtkContourFilter()
    popSurface.SetInputConnection(popSplatter.GetOutputPort())
    popSurface.SetValue(0, 0.01)

    popMapper = vtk.vtkPolyDataMapper()
    popMapper.SetInputConnection(popSurface.GetOutputPort())
    popMapper.ScalarVisibilityOff()

    popActor = vtk.vtkActor()
    popActor.SetMapper(popMapper)
    popActor.GetProperty().SetOpacity(0.3)
    popActor.GetProperty().SetColor(colors.GetColor3d("PopColor"))

    # Construct the pipeline for the delinquent population.
    lateSplatter = vtk.vtkGaussianSplatter()
    lateSplatter.SetInputData(dataSet)
    lateSplatter.SetSampleDimensions(50, 50, 50)
    lateSplatter.SetRadius(0.05)
    lateSplatter.SetScaleFactor(0.005)

    lateSurface = vtk.vtkContourFilter()
    lateSurface.SetInputConnection(lateSplatter.GetOutputPort())
    lateSurface.SetValue(0, 0.01)

    lateMapper = vtk.vtkPolyDataMapper()
    lateMapper.SetInputConnection(lateSurface.GetOutputPort())
    lateMapper.ScalarVisibilityOff()

    lateActor = vtk.vtkActor()
    lateActor.SetMapper(lateMapper)
    lateActor.GetProperty().SetColor(colors.GetColor3d("Red"))

    # Create axes.
    popSplatter.Update()
    bounds = popSplatter.GetOutput().GetBounds()

    axes = vtk.vtkAxes()
    axes.SetOrigin(bounds[0], bounds[2], bounds[4])
    axes.SetScaleFactor(popSplatter.GetOutput().GetLength() / 5)

    axesTubes = vtk.vtkTubeFilter()
    axesTubes.SetInputConnection(axes.GetOutputPort())
    axesTubes.SetRadius(axes.GetScaleFactor() / 25.0)
    axesTubes.SetNumberOfSides(6)

    axesMapper = vtk.vtkPolyDataMapper()
    axesMapper.SetInputConnection(axesTubes.GetOutputPort())

    axesActor = vtk.vtkActor()
    axesActor.SetMapper(axesMapper)

    # Graphics stuff.
    renderer = vtk.vtkRenderer()

    renWin = vtk.vtkRenderWindow()
    renWin.AddRenderer(renderer)

    interactor = vtk.vtkRenderWindowInteractor()
    interactor.SetRenderWindow(renWin)

    # Set up the renderer.
    renderer.AddActor(lateActor)
    renderer.AddActor(axesActor)
    renderer.AddActor(popActor)
    renderer.SetBackground(colors.GetColor3d("Wheat"))
    renWin.SetSize(640, 480)

    renderer.ResetCamera()
    renderer.GetActiveCamera().Dolly(1.3)
    renderer.ResetCameraClippingRange()

    # Interact with the data.
    renWin.Render()
    interactor.Start()
コード例 #45
0
ファイル: WalkCow.py プロジェクト: zwlshine/VTKExamples
def walk_cow(file_name, figure):
    figure = abs(figure)
    if figure > 2:
        figure = 0

    colors = vtk.vtkNamedColors()
    # Set the background color.
    colors.SetColor("BkgColor1", [60, 93, 144, 255])
    colors.SetColor("BkgColor2", [26, 51, 102, 255])

    ren = vtk.vtkRenderer()
    renWin = vtk.vtkRenderWindow()
    renWin.AddRenderer(ren)

    iren = vtk.vtkRenderWindowInteractor()
    iren.SetRenderWindow(renWin)

    # The cow pipeline.
    cow = vtk.vtkBYUReader()
    cow.SetGeometryFileName(file_name)
    cow.Update()

    cowMapper = vtk.vtkPolyDataMapper()
    cowMapper.SetInputConnection(cow.GetOutputPort())
    cowMapper.ScalarVisibilityOff()

    cowActor = vtk.vtkActor()
    cowActor.SetMapper(cowMapper)
    cowActor.GetProperty().SetColor(colors.GetColor3d("Wheat"))

    ren.AddActor(cowActor)

    # Axes pipeline.
    cowAxesSource = vtk.vtkAxes()
    cowAxesSource.SetScaleFactor(10.0)
    cowAxesSource.SetOrigin(0, 0, 0)

    cowAxesMapper = vtk.vtkPolyDataMapper()
    cowAxesMapper.SetInputConnection(cowAxesSource.GetOutputPort())

    cowAxes = vtk.vtkActor()
    cowAxes.SetMapper(cowAxesMapper)
    cowAxes.VisibilityOff()

    ren.AddActor(cowAxes)

    ren.SetBackground(colors.GetColor3d("BkgColor1"))
    renWin.SetSize(600, 480)

    iren.Initialize()
    cowAxes.VisibilityOn()
    renWin.Render()

    # Activate this if you want to see the Position and Focal point.
    # ren.GetActiveCamera().AddObserver('ModifiedEvent', CameraModifiedCallback)

    # These four walks use the same camera position.
    Rotate_X(cowActor, ren, renWin)
    Rotate_Y(cowActor, ren, renWin)
    Rotate_Z(cowActor, ren, renWin)
    Rotate_XY(cowActor, ren, renWin)

    ren.SetBackground(colors.GetColor3d("BkgColor2"))
    if figure == 1:
        Rotate_V_0(cowActor, ren, renWin)
    elif figure == 2:
        Rotate_V_V(cowActor, ren, renWin)
    else:
        Rotate_V_0(cowActor, ren, renWin)
        Rotate_V_V(cowActor, ren, renWin)
        # Walk() needs to go after Rotate_V_0() or Rotate_V_V().
        Walk(cowActor, ren, renWin)

    # Interact with data.
    renWin.EraseOff()
    iren.Start()
コード例 #46
0
#
ren1 = vtk.vtkRenderer()
renWin = vtk.vtkRenderWindow()
renWin.AddRenderer(ren1)
iren = vtk.vtkRenderWindowInteractor()
iren.SetRenderWindow(renWin)
# create pipeline
#
cow = vtk.vtkBYUReader()
cow.SetGeometryFileName("" + str(VTK_DATA_ROOT) + "/Data/Viewpoint/cow.g")
cowMapper = vtk.vtkPolyDataMapper()
cowMapper.SetInputConnection(cow.GetOutputPort())
cowActor = vtk.vtkActor()
cowActor.SetMapper(cowMapper)
cowActor.GetProperty().SetDiffuseColor(0.9608,0.8706,0.7020)
cowAxesSource = vtk.vtkAxes()
cowAxesSource.SetScaleFactor(10)
cowAxesSource.SetOrigin(0,0,0)
cowAxesMapper = vtk.vtkPolyDataMapper()
cowAxesMapper.SetInputConnection(cowAxesSource.GetOutputPort())
cowAxes = vtk.vtkActor()
cowAxes.SetMapper(cowAxesMapper)
ren1.AddActor(cowAxes)
cowAxes.VisibilityOff()
# Add the actors to the renderer, set the background and size
#
ren1.AddActor(cowActor)
ren1.SetBackground(0.1,0.2,0.4)
renWin.SetSize(320,240)
ren1.ResetCamera()
ren1.GetActiveCamera().Azimuth(0)
コード例 #47
0
    def render_polydata(self, input_polydata, scalar_range=None,
                        tube=True, opacity=1, depth_peeling=False,
                        scalar_bar=False, scalar_bar_title=None,
                        axes=False, data_mode="Cell", colormap='jet', verbose=True):

        # re-do this every time because the user may close the window
        # and re-use the object
        #self.build_vtk()

        if verbose:
            print "<render.py> Rendering vtkPolyData."
        
        # actor and mapper
        mapper = vtk.vtkPolyDataMapper()
        actor = vtk.vtkActor()
        actor.SetMapper(mapper)
        # assign actor to the renderer
        self.renderer.AddActor(actor)


        # lookup table for everything
        #self.lut = vtk.vtkLookupTable()
        if colormap == 'hot':
            lut = get_hot_lookup_table()
        else:
            lut = get_jet_lookup_table()

        mapper.UseLookupTableScalarRangeOn()
        mapper.SetLookupTable(lut)

        # see if we have RGB data, if so the scalar bar is meaningless
        self.render_RGB = False
        if input_polydata.GetCellData().GetScalars():
            if input_polydata.GetCellData().GetScalars().GetNumberOfComponents() == 3:
                self.render_RGB = True
                self.renderer.RemoveActor2D(self.scalarbar)
        if verbose:
            print "<render.py> RGB: ", self.render_RGB

        if data_mode == "Cell":
            mapper.SetScalarModeToUseCellData()
        elif data_mode == "Point":
            mapper.SetScalarModeToUsePointData()

        #if input_polydata.GetNumberOfLines() > 0:
        #    mapper.SetScalarModeToUseCellData()
        
        if tube & (input_polydata.GetNumberOfLines() > 0):
            # make a tube filter
            tube_filter = vtk.vtkTubeFilter()
            tube_filter.SetNumberOfSides(self.number_of_tube_sides)
            if (vtk.vtkVersion().GetVTKMajorVersion() > 5.0):
                tube_filter.SetInputData(input_polydata)
            else:
                tube_filter.SetInput(input_polydata)
            if (vtk.vtkVersion().GetVTKMajorVersion() >= 6.0):
                mapper.SetInputConnection(tube_filter.GetOutputPort())
            else:
                mapper.SetInput(tube_filter.GetOutput())
        else:
            if (vtk.vtkVersion().GetVTKMajorVersion() >= 6.0):
                mapper.SetInputData(input_polydata)
            else:
                mapper.SetInput(input_polydata)            


        if scalar_range is None:
            # check polydata scalar range. 
            range_low, range_high = input_polydata.GetScalarRange()
            # if these numbers are between -1 and 1 assume laterality
            # data, so make sure colorbar is centered at 0 for clearer
            # interpretation
            if (range_low >= -1.0 ) and (range_high <= 1.0):
                range_final = max(abs(range_low), abs(range_high))
                lut.SetRange([-range_final, range_final])
            else:
                # otherwise just use the range directly
                lut.SetRange([range_low, range_high])

        else:
            lut.SetRange(scalar_range)

        if opacity is not 1:
            actor.GetProperty().SetOpacity(opacity)

        if depth_peeling is not False:
            # 1. Use a render window with alpha bits (as initial value is 0 (false)):
            self.render_window.SetAlphaBitPlanes(1)
            # 2. Force to not pick a framebuffer with a multisample buffer
            # (as initial value is 8):
            self.render_window.SetMultiSamples(0)
            # 3. Choose to use depth peeling (if supported) (initial value is 0 (false)):
            self.renderer.SetUseDepthPeeling(1)
            # 4. Set depth peeling parameters
            # - Set the maximum number of rendering passes (initial value is 4):
            #renderer->SetMaximumNumberOfPeels(maxNoOfPeels);
            #// - Set the occlusion ratio (initial value is 0.0, exact image):
            #renderer->SetOcclusionRatio(occlusionRatio);
            
        if scalar_bar:
            self.scalarbar.SetLookupTable(lut)
            self.renderer.AddActor2D(self.scalarbar)
            if scalar_bar_title is not None:
                self.scalarbar.SetTitle(scalar_bar_title)
        else:
            self.renderer.RemoveActor2D(self.scalarbar)
        
        # Create the axes and the associated mapper and actor.
        self.axes = vtk.vtkAxes()
        self.axes.SetOrigin(0, 0, 0)
        self.axes.SetScaleFactor(100)
        self.axes.SymmetricOn()
        self.axes_mapper = vtk.vtkPolyDataMapper()
        if (vtk.vtkVersion().GetVTKMajorVersion() >= 6.0):
            self.axes_mapper.SetInputConnection(self.axes.GetOutputPort())
        else:
            self.axes_mapper.SetInput(self.axes.GetOutput())
        self.axes_actor = vtk.vtkActor()
        self.axes_actor.SetMapper(self.axes_mapper)
        self.axes_mapper.SetLookupTable(lut)
        if axes:
            self.renderer.AddActor(self.axes_actor)
        else:
            self.renderer.RemoveActor(self.axes_actor)
        
        try:
            self.render_window.Render()
        except Exception:
            print "<render.py> ERROR. Failed to render. Check display settings."
コード例 #48
0
ファイル: Main.py プロジェクト: cliburn/flow
    def UpdateVTKWindow(self,x,y,z):
        self.widget.GetRenderWindow().RemoveRenderer(self.ren)
        self.ren = vtk.vtkRenderer()
        self.ren.SetBackground(0.1, 0.1, 0.7)
        self.widget.GetRenderWindow().AddRenderer(self.ren)

        scalars = vtk.vtkIntArray()
        
        self.pnt = vtk.vtkPoints()
        cells = vtk.vtkCellArray()
        self.pnt.SetNumberOfPoints(self.data.shape[0])
        cells.Allocate(self.data.shape[0],32)
        for i in xrange(0, self.data.shape[0]):
            if self.colors is not None:
                if self.cbs[self.colors[i]].IsChecked():     
                    self.pnt.InsertPoint(i,
                                    self.data[i,x],
                                    self.data[i,y],
                                    self.data[i,z])      
                    cells.InsertNextCell(1)
                    cells.InsertCellPoint(i)
            else:
                self.pnt.InsertPoint(i,
                                self.data[i,x],
                                self.data[i,y],
                                self.data[i,z])      
                cells.InsertNextCell(1)
                cells.InsertCellPoint(i)
        if self.colors is not None:
            for i in xrange(0, self.data.shape[0]):       
                scalars.InsertNextTuple1(self.colors[i])
        else:
            for i in xrange(0, self.data.shape[0]):       
                scalars.InsertNextTuple1(0)

        # create poly of the points
        self.poly = vtk.vtkPolyData()
        self.poly.SetPoints(self.pnt)
        self.poly.SetVerts(cells)
        self.poly.GetPointData().SetScalars(scalars)
        self.normals = vtk.vtkPolyDataNormals()
        self.normals.SetInput(self.poly)
        
        # add box widget for clipping
        # points inside the box are colored green
        apd = vtk.vtkAppendPolyData()
        apd.AddInput(self.poly)
        # create mapper pipline for the poly
        pntmapper = vtk.vtkPolyDataMapper()

        self.clipper.SetInput(apd.GetOutput())

        self.region = vtk.vtkImplicitBoolean()
        
        self.region.SetOperationTypeToUnion()
        self.clipper.SetClipFunction(self.region)
        self.clipper.InsideOutOn()

        selectMapper = vtk.vtkPolyDataMapper()
        selectMapper.SetInput(self.clipper.GetOutput())
        selectMapper.ScalarVisibilityOff()
        self.selectActor.SetMapper(selectMapper)
        self.selectActor.GetProperty().SetColor(0, 1, 0)
        self.selectActor.VisibilityOff()
        self.selectActor.SetScale(1.01, 1.01, 1.01)
        
        if self.colors is not None:
            pntmapper.SetLookupTable(self.lut)
        pntmapper.SetInput(apd.GetOutput())
        pntmapper.SetScalarRange(0, self.maxcolor)
        # create and add actor of mapper to renderer
        pntactor = vtk.vtkLODActor()
        # pntactor.GetProperty().SetColor(1,0,0)
        pntactor.SetMapper(pntmapper)
        pntactor.VisibilityOn()

        # create axes
        axes = vtk.vtkAxes()
        axes.SetOrigin(0,0,0)
        axes.SetScaleFactor(numpy.max(self.data))
        axesTubes = vtk.vtkTubeFilter()
        axesTubes.SetInput(axes.GetOutput())
        axesTubes.SetRadius(axes.GetScaleFactor()/200.0)
        axesTubes.SetNumberOfSides(6)
        #create axes mapper
        axesmapper = vtk.vtkPolyDataMapper()
        axesmapper.SetInput(axesTubes.GetOutput())
        #create actor and add to renderer
        axesactor = vtk.vtkActor()
        axesactor.SetMapper(axesmapper)

        #create labels
        sf = axes.GetScaleFactor()
        xactor = self.BuildLabelActor(self.radioX.GetString(x), {})
        xactor.SetScale(0.075*sf, 0.075*sf, 0.075*sf)
        xactor.SetPosition(0.2*sf, 0.05*sf, -0.05*sf)
        xactor.GetProperty().SetColor(0, 0, 0)

        yactor = self.BuildLabelActor(self.radioY.GetString(y), {'RotateZ': 90})
        yactor.SetScale(0.075*sf, 0.075*sf, 0.075*sf)
        yactor.SetPosition(-0.05*sf, 0.2*sf, -0.05*sf)
        yactor.GetProperty().SetColor(0, 0, 0)

        zactor = self.BuildLabelActor(self.radioZ.GetString(z), {'RotateY': 90})
        zactor.SetScale(0.075*sf, 0.075*sf, 0.075*sf)
        zactor.SetPosition(-0.05*sf, 0.05*sf, 0.6*sf)
        zactor.GetProperty().SetColor(0, 0, 0)

        self.ren.AddActor(xactor)
        self.ren.AddActor(yactor)
        self.ren.AddActor(zactor)

        self.ren.AddActor(axesactor)
        self.ren.AddActor(pntactor)
        self.ren.AddActor(self.selectActor)

        self.widget.Update()
        
        self.ren.ResetCamera()