def initViewOptions(self, fields): viewOptions = vis.ViewOptionsItem(fields.view) fields.objectModel.addToObjectModel( viewOptions, parentObj=fields.objectModel.findObjectByName('scene')) viewOptions.setProperty('Background color', [0.3, 0.3, 0.35]) viewOptions.setProperty('Background color 2', [0.95, 0.95, 1]) return FieldContainer(viewOptions=viewOptions)
def createView(self, useGrid=True): view = PythonQt.dd.ddQVTKWidgetView() view.resize(600, 400) applogic.setCameraTerrainModeEnabled(view, True) if useGrid: self.gridObj = vis.showGrid(view, parent='scene') self.viewOptions = vis.ViewOptionsItem(view) om.addToObjectModel(self.viewOptions, parentObj=om.findObjectByName('scene')) applogic.resetCamera(viewDirection=[-1,-1,-0.3], view=view) self.viewBehaviors = viewbehaviors.ViewBehaviors(view) applogic._defaultRenderView = view applogic.addShortcut(view, 'Ctrl+Q', self.quit) applogic.addShortcut(view, 'F8', self.showPythonConsole) applogic.addShortcut(view, 'F1', self.showObjectModel) view.setWindowIcon(om.Icons.getIcon(om.Icons.Robot)) view.setWindowTitle('View') return view
def __init__(self): self.applicationInstance().setOrganizationName('RobotLocomotionGroup') self.applicationInstance().setApplicationName('drake-visualizer') om.init() self.view = PythonQt.dd.ddQVTKWidgetView() # init grid self.gridObj = vis.showGrid(self.view, parent='scene') self.gridObj.setProperty('Surface Mode', 'Surface with edges') self.gridObj.setProperty('Color', [0, 0, 0]) self.gridObj.setProperty('Alpha', 0.1) # init view options self.viewOptions = vis.ViewOptionsItem(self.view) om.addToObjectModel(self.viewOptions, parentObj=om.findObjectByName('scene')) self.viewOptions.setProperty('Background color', [0.3, 0.3, 0.35]) self.viewOptions.setProperty('Background color 2', [0.95, 0.95, 1]) # setup camera applogic.setCameraTerrainModeEnabled(self.view, True) applogic.resetCamera(viewDirection=[-1, 0, -0.3], view=self.view) # This setting improves the near plane clipping resolution. # Drake often draws a very large ground plane which is detrimental to # the near clipping for up close objects. The trade-off is Z buffer # resolution but in practice things look good with this setting. self.view.renderer().SetNearClippingPlaneTolerance(0.0005) # add view behaviors self.viewBehaviors = viewbehaviors.ViewBehaviors(self.view) applogic._defaultRenderView = self.view self.mainWindow = QtGui.QMainWindow() self.mainWindow.setCentralWidget(self.view) self.mainWindow.resize(768 * (16 / 9.0), 768) self.mainWindow.setWindowTitle('Drake Visualizer') self.mainWindow.setWindowIcon(QtGui.QIcon(':/images/drake_logo.png')) self.settings = QtCore.QSettings() self.fileMenu = self.mainWindow.menuBar().addMenu('&File') self.viewMenu = self.mainWindow.menuBar().addMenu('&View') self.viewMenuManager = PythonQt.dd.ddViewMenu(self.viewMenu) self.drakeVisualizer = DrakeVisualizer(self.view) self.lcmglManager = lcmgl.LCMGLManager( self.view) if lcmgl.LCMGL_AVAILABLE else None model = om.getDefaultObjectModel() model.getTreeWidget().setWindowTitle('Scene Browser') model.getPropertiesPanel().setWindowTitle('Properties Panel') self.sceneBrowserDock = self.addWidgetToDock( model.getTreeWidget(), QtCore.Qt.LeftDockWidgetArea, visible=False) self.propertiesDock = self.addWidgetToDock( self.wrapScrollArea(model.getPropertiesPanel()), QtCore.Qt.LeftDockWidgetArea, visible=False) self.addViewMenuSeparator() self.screenGrabberPanel = ScreenGrabberPanel(self.view) self.screenGrabberDock = self.addWidgetToDock( self.screenGrabberPanel.widget, QtCore.Qt.RightDockWidgetArea, visible=False) self.cameraBookmarksPanel = camerabookmarks.CameraBookmarkWidget( self.view) self.cameraBookmarksDock = self.addWidgetToDock( self.cameraBookmarksPanel.widget, QtCore.Qt.RightDockWidgetArea, visible=False) self.cameraControlPanel = cameracontrolpanel.CameraControlPanel( self.view) self.cameraControlDock = self.addWidgetToDock( self.cameraControlPanel.widget, QtCore.Qt.RightDockWidgetArea, visible=False) act = self.fileMenu.addAction('&Quit') act.setShortcut(QtGui.QKeySequence('Ctrl+Q')) act.connect('triggered()', self.applicationInstance().quit) self.fileMenu.addSeparator() act = self.fileMenu.addAction('&Open Data...') act.setShortcut(QtGui.QKeySequence('Ctrl+O')) act.connect('triggered()', self._onOpenDataFile) applogic.addShortcut(self.mainWindow, 'F1', self._toggleObjectModel) applogic.addShortcut(self.mainWindow, 'F8', applogic.showPythonConsole) self.applicationInstance().connect('aboutToQuit()', self._onAboutToQuit) for obj in om.getObjects(): obj.setProperty('Deletable', False) self.mainWindow.show() self._saveWindowState('MainWindowDefault') self._restoreWindowState('MainWindowCustom')
if useOpenniDepthImage: openniDepthPointCloud = segmentation.DisparityPointCloudItem( 'openni point cloud', 'OPENNI_FRAME', 'OPENNI_FRAME_LEFT', cameraview.imageManager) openniDepthPointCloud.addToView(view) om.addToObjectModel(openniDepthPointCloud, parentObj=om.findObjectByName('sensors')) if useGrid: grid = vis.showGrid(view, color=[0, 0, 0], alpha=0.1) grid.setProperty('Surface Mode', 'Surface with edges') app.setBackgroundColor([0.3, 0.3, 0.35], [0.95, 0.95, 1]) viewOptions = vis.ViewOptionsItem(view) om.addToObjectModel(viewOptions, parentObj=om.findObjectByName('sensors')) viewBackgroundLightHandler = viewcolors.ViewBackgroundLightHandler( viewOptions, grid, app.getToolsMenuActions()['ActionToggleBackgroundLight']) if not useLightColorScheme: viewBackgroundLightHandler.action.trigger() if useHands: handcontrolpanel.init(lHandDriver, rHandDriver, robotStateModel, robotStateJointController, view) else: app.removeToolbarMacro('ActionHandControlPanel') if useFootsteps: