Ejemplo n.º 1
0
renWin = vtk.vtkRenderWindow()
renWin.SetSize(640*2, 480*1)
iren = vtk.vtkRenderWindowInteractor()
iren.SetRenderWindow(renWin)

renWinD = vtk.vtkRenderWindow()
renWinD.SetSize(640*2, 480*1)
irenD = vtk.vtkRenderWindowInteractor()
irenD.SetRenderWindow(renWinD)

# scenario
renScenario = vtk.vtkRenderer()
renScenario.SetBackground(eggshell)
renScenario.SetViewport(0.0 / 2.0, 0.0, 1.0 / 2.0, 1.0)
cameraActor = vtk.vtkCameraActor()
cameraActor.SetCamera(di.get_vtk_camera())
cameraActor.SetWidthByHeightRatio(di.get_width_by_height_ratio())
renScenario.AddActor(cameraActor)
renScenario.AddActor(sourceAo.actor)
renScenario.AddActor(surfAo.actor)
renScenario.AddActor(meshAo.actor)
renScenario.GetActiveCamera().SetPosition(2.0, 7.0, 8.0)
renScenario.GetActiveCamera().SetFocalPoint(0.0, 1.0, 0.0)

# surf
renSurf = vtk.vtkRenderer()
renSurf.SetBackground(eggshell)
renSurf.SetViewport(1.0 / 2.0, 0.0, 2.0 / 2.0, 1.0)
cameraActor = vtk.vtkCameraActor()
cameraActor.SetCamera(di.get_vtk_camera())
Ejemplo n.º 2
0
def add_sensor_visualization(filter_depth_image, positions, vtk_renderer):
    """
    Add visualization specific to the sensor
    :param filter_depth_image: FilterDepthImage, needed to get camera info
    :param positions: list of sensor positions
    :param vtk_renderer: The vtkRenderer where the actors will be added.
    """

    """ Frustum of the sensor """

    cameraActor = vtk.vtkCameraActor()
    cameraActor.SetCamera(filter_depth_image.get_vtk_camera())
    cameraActor.SetWidthByHeightRatio(filter_depth_image.get_width_by_height_ratio())
    cameraActor.GetProperty().SetColor(blue)

    """ Path of the sensor """

    npts = positions.shape[0]

    points = vtk.vtkPoints()
    points.SetNumberOfPoints(npts)
    lines = vtk.vtkCellArray()
    lines.InsertNextCell(npts)
    for i, pos in enumerate(positions):
        points.SetPoint(i, pos)
        lines.InsertCellPoint(i)

    polydata = vtk.vtkPolyData()
    polydata.SetPoints(points)
    polydata.SetLines(lines)

    polymapper = vtk.vtkPolyDataMapper()
    polymapper.SetInputData(polydata)
    polymapper.Update()

    actor = vtk.vtkActor()
    actor.SetMapper(polymapper)
    actor.GetProperty().SetColor(blue)
    actor.GetProperty().SetOpacity(0.5)

    ball = vtk.vtkSphereSource()
    ball.SetRadius(0.02)
    ball.SetThetaResolution(12)
    ball.SetPhiResolution(12)
    balls = vtk.vtkGlyph3D()
    balls.SetInputData(polydata)
    balls.SetSourceConnection(ball.GetOutputPort())
    mapBalls = vtk.vtkPolyDataMapper()
    mapBalls.SetInputConnection(balls.GetOutputPort())
    spcActor = vtk.vtkActor()
    spcActor.SetMapper(mapBalls)
    spcActor.GetProperty().SetColor(hot_pink)
    spcActor.GetProperty().SetSpecularColor(1, 1, 1)
    spcActor.GetProperty().SetSpecular(0.3)
    spcActor.GetProperty().SetSpecularPower(20)
    spcActor.GetProperty().SetAmbient(0.2)
    spcActor.GetProperty().SetDiffuse(0.8)

    """ Add to the given renderer """

    vtk_renderer.AddActor(spcActor)
    vtk_renderer.AddActor(cameraActor)
    vtk_renderer.AddActor(actor)