示例#1
0
    def __init__(self, bgcolor='Silver', size=(800, 600)):

        self.colors = vtk.vtkNamedColors()

        # Camera
        self.camera = vtk.vtkCamera()
        self.camera.SetPosition(0, 0, 0)
        self.camera.SetFocalPoint(0, 0, 0)

        # A renderer and render window
        self.renderer = vtk.vtkRenderer()
        self.renderer.SetBackground(self.colors.GetColor3d(bgcolor))
        # self.renderer.SetActiveCamera(self.camera)

        # self.camera = self.renderer.GetActiveCamera()

        # render window
        self.renwin = vtk.vtkRenderWindow()
        self.renwin.SetWindowName("Croma - Visualization Tool")
        self.renwin.AddRenderer(self.renderer)
        self.renwin.SetSize(size[0], size[1])

        # An interactor
        self.interactor = vtk.vtkRenderWindowInteractor()
        self.interactor.SetRenderWindow(self.renwin)
        style = vtk.vtkInteractorStyleTerrain()
        self.interactor.SetInteractorStyle(style)

        self.interactor.Initialize()

        self.sources = []
        self.mappers = []
        self.actors = []
        self.callbacks = []
示例#2
0
    def testStyleTerrain(self):

        ren = vtk.vtkRenderer()
        renWin = vtk.vtkRenderWindow()
        iRen = vtk.vtkRenderWindowInteractor()
        iRen.SetRenderWindow(renWin)

        testStyleBaseSpike = TestStyleBaseSpike.StyleBaseSpike(
            ren, renWin, iRen)

        # Set interactor style
        inStyle = vtk.vtkInteractorStyleTerrain()
        iRen.SetInteractorStyle(inStyle)

        # Test style
        testStyleBase = TestStyleBase.TestStyleBase(ren)
        testStyleBase.test_style(inStyle)

        # render and interact with data

        img_file = "TestStyleTerrain.png"
        vtk.test.Testing.compareImage(
            iRen.GetRenderWindow(),
            vtk.test.Testing.getAbsImagePath(img_file),
            threshold=25)
        vtk.test.Testing.interact()
示例#3
0
 def setPickerMode(self,state):
     import utilities.pointPicker as pStyle
     print(pStyle)
     print(state)
     if state==2:
         self.interactor.SetInteractorStyle(pStyle.testStyle(self.emitPickedPoint))
     else:
         self.interactor.SetInteractorStyle(vtk.vtkInteractorStyleTerrain())
示例#4
0
def main(argv):
    parser = argparse.ArgumentParser(description=__doc__)
    parser.add_argument('path', type=str, help='Map to draw.')
    parser.add_argument(
        '-a',
        '--anchoring',
        action='store_true',
        help='Draw the map according to the anchoring (in seed frame).')
    options = parser.parse_args(argv)
    # Load the map from the given file.
    (current_graph, current_waypoints, current_waypoint_snapshots,
     current_edge_snapshots, current_anchors,
     current_anchored_world_objects) = load_map(options.path)

    # Create the renderer.
    renderer = vtk.vtkRenderer()
    renderer.SetBackground(0.05, 0.1, 0.15)

    if options.anchoring:
        if len(current_graph.anchoring.anchors) == 0:
            print('No anchors to draw.')
            sys.exit(-1)
        avg_pos = create_anchored_graph_objects(
            current_graph, current_waypoint_snapshots, current_waypoints,
            current_anchors, current_anchored_world_objects, renderer)
    else:
        avg_pos = create_graph_objects(current_graph,
                                       current_waypoint_snapshots,
                                       current_waypoints, renderer)

    camera_pos = avg_pos + np.array([-1, 0, 5])

    camera = renderer.GetActiveCamera()
    camera.SetViewUp(0, 0, 1)
    camera.SetPosition(camera_pos[0], camera_pos[1], camera_pos[2])

    # Create the VTK renderer and interactor.
    renderWindow = vtk.vtkRenderWindow()
    renderWindow.SetWindowName(options.path)
    renderWindow.AddRenderer(renderer)
    renderWindowInteractor = vtk.vtkRenderWindowInteractor()
    renderWindowInteractor.SetRenderWindow(renderWindow)
    renderWindow.SetSize(1280, 720)
    style = vtk.vtkInteractorStyleTerrain()
    renderWindowInteractor.SetInteractorStyle(style)
    renderer.ResetCamera()

    # Start rendering.
    renderWindow.Render()
    renderWindow.Start()
    renderWindowInteractor.Start()
示例#5
0
    def ViewVTK(self):
        polydata = vtk.vtkPolyData()
        polydata.SetPoints(self.points)
        polydata.SetLines(self.lines)

        pdmap = vtk.vtkPolyDataMapper()
        pdmap.SetInput(polydata)
        pdact = vtk.vtkActor()
        pdact.SetMapper(pdmap)
        pdact.GetProperty().SetColor(0.3, 0.8, 1.0)

        ren = vtk.vtkRenderer()
        ren.AddActor(pdact)

        for scol in self.acareas:
            apoints, atriangs = self.acareas[scol]

            dpd = vtk.vtkPolyData()
            dpd.SetPoints(apoints)
            dpd.SetPolys(atriangs)
            dmap = vtk.vtkPolyDataMapper()
            dmap.SetInput(dpd)
            dact = vtk.vtkActor()
            dact.SetMapper(dmap)
            dact.GetProperty().SetColor(
                eval("0x" + scol[1:3]) / 256.0,
                eval("0x" + scol[3:5]) / 256.0,
                eval("0x" + scol[5:7]) / 256.0)
            dact.GetProperty().SetAmbient(0.2)
            ren.AddActor(dact)

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

        iren = vtk.vtkRenderWindowInteractor()
        istyle = vtk.vtkInteractorStyleTerrain()
        iren.SetInteractorStyle(istyle)
        # "here", istyle, istyle.__str__()
        iren.SetRenderWindow(renWin)
        iren.Initialize()
        renWin.Render()
        #print "there", iren.GetInteractorStyle(), iren.GetInteractorStyle().__str__
        iren.Start()
示例#6
0
    def testStyleTerrain(self):

        ren = vtk.vtkRenderer()
        renWin = vtk.vtkRenderWindow()
        iRen = vtk.vtkRenderWindowInteractor()
        iRen.SetRenderWindow(renWin);

        testStyleBaseSpike = TestStyleBaseSpike.StyleBaseSpike(ren, renWin, iRen)

        # Set interactor style
        inStyle = vtk.vtkInteractorStyleTerrain()
        iRen.SetInteractorStyle(inStyle)

        # Test style
        testStyleBase = TestStyleBase.TestStyleBase(ren)
        testStyleBase.test_style(inStyle)

        # render and interact with data

        img_file = "TestStyleTerrain.png"
        vtk.test.Testing.compareImage(iRen.GetRenderWindow(), vtk.test.Testing.getAbsImagePath(img_file), threshold=25)
        vtk.test.Testing.interact()
示例#7
0
def main(argv):
    # Load the map from the given file.
    path = argv[0]
    (current_graph, current_waypoints, current_waypoint_snapshots,
     current_edge_snapshots) = load_map(path)

    # Create the renderer.
    renderer = vtk.vtkRenderer()
    renderer.SetBackground(0.05, 0.1, 0.15)

    avg_pos = create_graph_objects(current_graph, current_waypoint_snapshots,
                                   current_waypoints, renderer)

    # Compute the average waypoint position to place the camera appropriately.
    avg_pos /= len(current_waypoints)
    camera_pos = avg_pos + np.array([-1, 0, 5])

    camera = renderer.GetActiveCamera()
    camera.SetViewUp(0, 0, 1)
    camera.SetPosition(camera_pos[0], camera_pos[1], camera_pos[2])

    # Create the VTK renderer and interactor.
    renderWindow = vtk.vtkRenderWindow()
    renderWindow.SetWindowName(path)
    renderWindow.AddRenderer(renderer)
    renderWindowInteractor = vtk.vtkRenderWindowInteractor()
    renderWindowInteractor.SetRenderWindow(renderWindow)
    renderWindow.SetSize(1280, 720)
    style = vtk.vtkInteractorStyleTerrain()
    renderWindowInteractor.SetInteractorStyle(style)
    renderer.ResetCamera()

    # Start rendering.
    renderWindow.Render()
    renderWindow.Start()
    renderWindowInteractor.Start()
示例#8
0
def main(argv):
    """Main rendering loop for the API streaming visualizer."""
    # Setup the robot.
    parser = argparse.ArgumentParser()
    bosdyn.client.util.add_common_arguments(parser)
    parser.add_argument('--local-grid', choices=['no-step', 'obstacle-distance', 'terrain'],
                        help='Which local grid to visualize', default=['terrain'], action='append')
    options = parser.parse_args(argv)
    sdk = bosdyn.client.create_standard_sdk('SpotViz')
    sdk.load_app_token(options.app_token)
    robot = sdk.create_robot(options.hostname)
    robot.authenticate(options.username, options.password)
    robot.time_sync.wait_for_sync()

    # Set up the clients for getting Spot's perception scene.
    local_grid_client = robot.ensure_client(LocalGridClient.default_service_name)
    robot_state_client = robot.ensure_client(RobotStateClient.default_service_name)
    world_object_client = robot.ensure_client(WorldObjectClient.default_service_name)

    # Create the renderer and camera.
    renderer = vtk.vtkRenderer()
    renderer.SetBackground(0.05, 0.1, 0.15)
    camera = renderer.GetActiveCamera()
    camera.SetViewUp(0, 0, 1)
    camera.SetPosition(0, 0, 5)

    renderWindow = vtk.vtkRenderWindow()
    renderWindow.SetWindowName("API Visualizer")
    renderWindow.SetSize(1280, 720)

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

    # Setup the time-based event callbacks for each vtk actor to be visualized.
    robot_state_timer = RobotStateTimedCallbackEvent(robot_state_client)
    robot_state_actor = robot_state_timer.get_actor()
    renderer.AddActor(robot_state_actor)

    local_grid_timer = LocalGridTimedCallbackEvent(local_grid_client, robot_state_client, options.local_grid)
    grid_actors = local_grid_timer.get_actors()
    for actor in grid_actors:
        renderer.AddActor(actor)

    world_object_timer = WorldObjectTimedCallbackEvent(world_object_client)
    world_object_actors = world_object_timer.get_actors()
    for actor in world_object_actors:
        renderer.AddActor(actor)

    renderWindow.AddRenderer(renderer)
    renderer.ResetCamera()
    renderWindow.Render()

    # Initilize the render windows and set the timed callbacks.
    renderWindowInteractor.Initialize()
    renderWindowInteractor.AddObserver(vtk.vtkCommand.TimerEvent,
                                       robot_state_timer.update_state_actor)
    renderWindowInteractor.AddObserver(vtk.vtkCommand.TimerEvent,
                                       local_grid_timer.update_local_grid_actors)
    renderWindowInteractor.AddObserver(vtk.vtkCommand.TimerEvent,
                                       world_object_timer.update_world_object_actor)
    timerId = renderWindowInteractor.CreateRepeatingTimer(100)
    renderWindowInteractor.Start()
    return True
示例#9
0
import logging

from atom.api import Atom, Dict, Str, observe, Value, Int, Tuple, List
from functools import partial
import vtk

logging.basicConfig(format='%(asctime)s: %(levelname)s: %(message)s',
                    level=logging.DEBUG)

INTERACTION_STYLES = {
    'TrackBallActor': vtk.vtkInteractorStyleTrackballActor(),
    'TrackBallCamera':
    vtk.vtkInteractorStyleTrackballCamera(),  # default style
    'JoystickCamera': vtk.vtkInteractorStyleJoystickCamera(),
    'JoystickActor': vtk.vtkInteractorStyleJoystickActor(),
    'Terrain': vtk.vtkInteractorStyleTerrain(),
}


class VTKRenderController(Atom):
    """ vtk render controller - supply renderers to VTKCanvas  """

    zoomFactor = Value()
    numOfRenderers = Int()
    callbacks = Dict()
    customPorts = Dict()
    customBackgrounds = Dict()
    interactorStyle = Str()
    style = Value()
    bgColor = Tuple()
    motionFactor = Int()
demMapper16.SetInputConnection(normals16.GetOutputPort())
demMapper16.SetScalarRange(lo, hi)
demMapper16.SetLookupTable(lut)
demMapper16.ImmediateModeRenderingOn()

demMapper16.Update()
demActor.AddLODMapper(demMapper16)

# Create the RenderWindow, Renderer and both Actors
#
ren = vtk.vtkRenderer()
renWin = vtk.vtkRenderWindow()
renWin.AddRenderer(ren)
iren = vtk.vtkRenderWindowInteractor()
iren.SetRenderWindow(renWin)
t = vtk.vtkInteractorStyleTerrain()
iren.SetInteractorStyle(t)

# Add the actors to the renderer, set the background and size
#
ren.AddActor(demActor)
ren.SetBackground(.4, .4, .4)

iren.SetDesiredUpdateRate(1)


def TkCheckAbort(__vtk__temp0=0, __vtk__temp1=0):
    foo = renWin.GetEventPending()
    if (foo != 0):
        renWin.SetAbortRender(1)
        pass
示例#11
0
demMapper16.SetInputConnection(normals16.GetOutputPort())
demMapper16.SetScalarRange(lo, hi)
demMapper16.SetLookupTable(lut)
demMapper16.ImmediateModeRenderingOn()

demMapper16.Update()
demActor.AddLODMapper(demMapper16)

# Create the RenderWindow, Renderer and both Actors
#
ren = vtk.vtkRenderer()
renWin = vtk.vtkRenderWindow()
renWin.AddRenderer(ren)
iren = vtk.vtkRenderWindowInteractor()
iren.SetRenderWindow(renWin)
t = vtk.vtkInteractorStyleTerrain()
iren.SetInteractorStyle(t)

# Add the actors to the renderer, set the background and size
#
ren.AddActor(demActor)
ren.SetBackground(.4, .4, .4)

iren.SetDesiredUpdateRate(1)
def TkCheckAbort (__vtk__temp0=0, __vtk__temp1=0):
    foo = renWin.GetEventPending()
    if (foo != 0):
        renWin.SetAbortRender(1)
        pass

renWin.AddObserver("AbortCheckEvent", TkCheckAbort)
示例#12
0
def run_simulation(**kwds):
    from math import pi, sqrt
    from vtk import (vtkInteractorStyleTerrain,
                     vtkRenderWindowInteractor,
                     vtkRenderWindow,
                     vtkRenderer,
                     vtkActor,
                     vtkPolyDataMapper,
                     vtkSphereSource,
                     vtkCylinderSource,
                     vtkTransform)

    from vtk.util.colors import red, blue, brown

    M0 = kwds.get("mass0", DEFAULT_M0)
    M1 = kwds.get("mass1", DEFAULT_M1)
    L0 = kwds.get("length0", DEFAULT_L0)
    L1 = kwds.get("length1", DEFAULT_L1)
    iTH0 = kwds.get("theta0", DEFAULT_ITH0)
    iTH1 = kwds.get("theta1", DEFAULT_ITH1)
    iW0 = kwds.get("omega0", DEFAULT_IW0)
    iW1 = kwds.get("omega1", DEFAULT_IW1)
    G = kwds.get("gravity", DEFAULT_G)
    dt = kwds.get("time_step", DEFAULT_DT)
    duration = kwds.get("duration", DEFAULT_DURATION)

    sim = Pen2Sim(iTH0, iTH1, iW0, iW1, M0, M1, L0, L1, G, dt)

    sphere0 = vtkSphereSource()
    sphere1 = vtkSphereSource()

    cylinder0 = vtkCylinderSource()
    cylinder1 = vtkCylinderSource()

    sphere0.SetCenter(0.0, 0.0, 0.0)
    sphere1.SetCenter(0.0, 0.0, 0.0)

    sphere0.SetRadius(0.25*sqrt(M0/pi))
    sphere1.SetRadius(0.25*sqrt(M1/pi))

    cylinder0.SetRadius(0.04)
    cylinder1.SetRadius(0.04)

    cTran0 = vtkTransform()
    cTran1 = vtkTransform()

    sMap0 = vtkPolyDataMapper()
    sMap1 = vtkPolyDataMapper()

    cMap0 = vtkPolyDataMapper()
    cMap1 = vtkPolyDataMapper()

    sMap0.SetInputConnection(sphere0.GetOutputPort())
    sMap1.SetInputConnection(sphere1.GetOutputPort())

    cMap0.SetInputConnection(cylinder0.GetOutputPort())
    cMap1.SetInputConnection(cylinder1.GetOutputPort())

    sAct0 = vtkActor()
    sAct1 = vtkActor()
    sAct0.SetMapper(sMap0)
    sAct1.SetMapper(sMap1)
    sAct0.GetProperty().SetColor(red)
    sAct1.GetProperty().SetColor(blue)

    cAct0 = vtkActor()
    cAct1 = vtkActor()
    cAct0.SetMapper(cMap0)
    cAct1.SetMapper(cMap1)
    cAct0.GetProperty().SetColor(brown)
    cAct1.GetProperty().SetColor(brown)

    renderer = vtkRenderer()
    renderWindow = vtkRenderWindow()
    renderWindow.AddRenderer(renderer)

    interactor = vtkRenderWindowInteractor()
    interactor.SetInteractorStyle(vtkInteractorStyleTerrain())
    interactor.SetRenderWindow(renderWindow)

    renderer.AddActor(sAct0)
    renderer.AddActor(sAct1)
    renderer.AddActor(cAct0)
    renderer.AddActor(cAct1)
    renderer.SetBackground(0.1, 0.2, 0.4)
    renderer.GetActiveCamera().Dolly(0.125)

    renderWindow.SetSize(800, 600)

    renderWindow.Render()
    interactor.Initialize()

    state = [None]

    def callback(*args, **kwds):
        if state[0] is None:
            state[0] = list(sim.initial_state())
            cylinder0.SetHeight(state[0][5])
            cylinder1.SetHeight(state[0][6])

        else:
            state[0][:] = sim.advance()

        x0, x1, y0, y1, t, L0, L1, th0, th1 = state[0][:9]

        cTran0.Identity()
        cTran1.Identity()

        cTran1.Translate(x0, y0, 0.0)

        cTran0.RotateZ(180.0 * th0 / pi)
        cTran1.RotateZ(180.0 * th1 / pi)

        cTran0.Translate(0.0, -0.5*L0, 0.0)
        cTran1.Translate(0.0, -0.5*L1, 0.0)

        cAct0.SetUserTransform(cTran0)
        cAct1.SetUserTransform(cTran1)

        sAct0.SetPosition(x0, y0, 0.0)
        sAct1.SetPosition(x1, y1, 0.0)
        renderWindow.Render()

        if duration is not None and t >= duration:
            interactor.RemoveObserver(timerid)
            interactor.ExitCallback()

    interactor.AddObserver("TimerEvent", callback)
    timerid = interactor.CreateRepeatingTimer(int(1000*dt))

    interactor.Start()
示例#13
0
import logging

from atom.api import Atom, Dict, Str, observe, Value, Int, Tuple, List
from functools import partial
import vtk


logging.basicConfig(format="%(asctime)s: %(levelname)s: %(message)s", level=logging.DEBUG)


INTERACTION_STYLES = {
    "TrackBallActor": vtk.vtkInteractorStyleTrackballActor(),
    "TrackBallCamera": vtk.vtkInteractorStyleTrackballCamera(),  # default style
    "JoystickCamera": vtk.vtkInteractorStyleJoystickCamera(),
    "JoystickActor": vtk.vtkInteractorStyleJoystickActor(),
    "Terrain": vtk.vtkInteractorStyleTerrain(),
}


class VTKRenderController(Atom):
    """ vtk render controller - supply renderers to VTKCanvas  """

    zoomFactor = Value()
    numOfRenderers = Int()
    callbacks = Dict()
    customPorts = Dict()
    customBackgrounds = Dict()
    interactorStyle = Str()
    style = Value()
    bgColor = Tuple()
    motionFactor = Int()
示例#14
0
 def __init__(self, parent, dataPath):
     super(XYZviewer,self).__init__(parent)
     self.interactor = QVTKRenderWindowInteractor(self)
     self.layout = QtWidgets.QHBoxLayout()
     self.layout.addWidget(self.interactor)
     self.layout.setContentsMargins(0,0,0,0)
     self.setLayout(self.layout)
     self.pointCloud = VtkPointCloud()
     self.pcdCollection=[]
     self.actors = []
     self.pickedID=[]
     self.e=ErrorObserver()
     self.interactor.AddObserver("ErrorEvent",self.e)
     if self.e.ErrorOccurred():
         print(e.ErrorMessage)
     #self.load_data(loadPath)
     if dataPath != None:
         self.add_data(dataPath)
 # Renderer
     self.renderer = vtk.vtkRenderer()
     self.cubeAxesActor = vtk.vtkCubeAxesActor()
     self.setCubeAxesActor()
     self.cubeAxesActor.SetBounds(0,100,0,100,0,100)
     self.renderer.AddActor(self.cubeAxesActor)
 # Scalar Bar
     self.scalarBarActor = vtk.vtkScalarBarActor()
     self.setScalarBar()
     self.renderer.AddActor(self.scalarBarActor)
 #renderer.SetBackground(.2, .3, .4)
     #colors=vtk.vtkNamedColors()
     #colors.SetColor("BkgColor",[179,204,255,255])
     #renderer.SetBackground(colors.GetColor3d("BkgColor"))
     self.pointCloud.setLUTRange(0,10)
     #cam=self.renderer.GetActiveCamera()
     #cam.Azimuth(-45)
     #cam.Elevation(0)
     #cam.Roll(90)
     #cam.SetViewUp(0,0,1)
     #cam.SetPosition(0,1,0)
     #cam.SetParallelProjection(0)
     #cam.Elevation(-10)
     #self.renderer.SetActiveCamera(cam)
     #self.renderer.ResetCamera()
     #renderer.SetLayer(1)
  
 # Render Window
     renderWindow = self.interactor.GetRenderWindow()
     #renderWindow = vtk.vtkRenderWindow()
     #print(renderWindow)
     #renderWindow.SetNumberOfLayers(2)
     renderWindow.AddRenderer(self.renderer)
     #renderWindow.AddRenderer(self.addLogo())
     
     
 # Interactor
     #renderWindowInteractor = vtk.vtkRenderWindowInteractor()
     self.interactor.SetRenderWindow(renderWindow)
     self.interactor.SetInteractorStyle(vtk.vtkInteractorStyleTerrain())
 # Scalar Bar
     #self.addScalarBar(self.pointCloud.getLUT())
     
     #renderWindow.SetInteractor(self.interactor)
 # Logo
     #self.addLogo()
     self.renderer.ResetCamera()
 # Begin Interaction
     renderWindow.Render()
     renderWindow.SetWindowName("XYZ Data Viewer:"+ "xyz")
     self.interactor.Start()