def __init__(self): self.canvas = viz.addGUICanvas(scene = viz.Scene2) canvas = self.canvas # Compatibility for all display types canvas.setCursorSize([25,25]) canvas.setCursorPosition([0,0]) #init keybindings self.keybindings = [] self.keybindings.append(vizact.onkeydown(viz.KEY_RETURN, self.nextMenu)) self.keybindings.append(vizact.onkeydown(viz.KEY_ESCAPE, self.exitGame)) #init menus self.mainMenu = MainMenu(canvas, self) self.modeMenu = ModeMenu(canvas, self) self.layerMenu = LayerMenu(canvas, self) self.loadingScreen = LoadingScreen() self.inGameMenu = InGameMenu(canvas, self) #stating menu display path self.menuOrder = [self.mainMenu, self.modeMenu, self.layerMenu, self.inGameMenu] self.activeMenu = self.mainMenu
def __init__(self): self.canvas = viz.addGUICanvas(scene=viz.Scene2) canvas = self.canvas # Compatibility for all display types canvas.setCursorSize([25, 25]) canvas.setCursorPosition([0, 0]) #init keybindings self.keybindings = [] self.keybindings.append(vizact.onkeydown(viz.KEY_RETURN, self.nextMenu)) self.keybindings.append(vizact.onkeydown(viz.KEY_ESCAPE, self.exitGame)) #init menus self.mainMenu = MainMenu(canvas, self) self.modeMenu = ModeMenu(canvas, self) self.layerMenu = LayerMenu(canvas, self) self.loadingScreen = LoadingScreen() self.inGameMenu = InGameMenu(canvas, self) #stating menu display path self.menuOrder = [ self.mainMenu, self.modeMenu, self.layerMenu, self.inGameMenu ] self.activeMenu = self.mainMenu
def instruction_canvas_vr(self, fov_canvas): """ Sets up a canvas for showing instructions in VR. Args: fov_canvas: field of view that the canvas should overlay """ self.canvas = viz.addGUICanvas() # Reduce canvas FOV from default 50 to 40 ; fov ist wichtig, distance scheint nichts zu tun. self.canvas.setRenderWorldOverlay([1280, 720], fov_canvas, distance=10.0) viz.MainWindow.setDefaultGUICanvas(self.canvas) instruction_window = vizinfo.InfoPanel(text='Bitte warten...', title='Instruktionen', key=None, icon=False, align=viz.ALIGN_CENTER, fontSize=30, parent=self.canvas) return instruction_window
def __init__(self): #init canvas and create themes for the test panel self.canvas = viz.addGUICanvas(align = viz.ALIGN_CENTER_CENTER) self.canvas.setPosition(0,0,0) viz.mouse.setVisible(False) self.name = 'test' self._theme = viz.Theme() self._theme.borderColor = (0.1,0.1,0.1,1) self._theme.backColor = (0.4,0.4,0.4,1) self._theme.lightBackColor = (0.6,0.6,0.6,1) self._theme.darkBackColor = (0.2,0.2,0.2,1) self._theme.highBackColor = (0.2,0.2,0.2,1) self._theme.textColor = (1,1,1,1) self._theme.highTextColor = (1,1,1,1) #initialize test panel vizdlg.Panel.__init__(self, parent = self.canvas, theme = self._theme, align = viz.ALIGN_CENTER_TOP, fontSize = 15) self.visible(viz.OFF) self.setScale(*[i*config.menuScale[self.name] for i in [1,1,1]]) self.alpha(0.6) # #title title = vizdlg.TitleBar('INSTRUCTIONS') self.addItem(title, align = viz.ALIGN_CENTER_TOP) #bones to be snapped. source snapped to target. source = 'a'*20 self.sourceText = viz.addTextbox(parent = self.canvas) self.sourceText.setLength(1.5) target = 'a'*20 self.targetText = viz.addTextbox(parent = self.canvas) self.targetText.setLength(1.5) #instructions self.Instruct1 = self.addItem(viz.addText('Snap the: ', parent = self.canvas), align = viz.ALIGN_CENTER_TOP) self.sourceCommand = self.addItem(self.sourceText, align = viz.ALIGN_CENTER_TOP) self.Instruct2 = self.addItem(viz.addText('To the: ', parent = self.canvas), align = viz.ALIGN_CENTER_TOP) self.targetCommand = self.addItem(self.targetText, align = viz.ALIGN_CENTER_TOP) #render canvas if config.dispMode == config.DisplayMode.monitor: self.canvas.billboard(viz.BILLBOARD_YAXIS) self.canvas.setPosition(-2,0,0) self.canvas.setBackdrop(viz.ALIGN_CENTER_TOP) if config.dispMode == config.DisplayMode.oculus: bb = self.canvas.getBoundingBox() self.canvas.setRenderWorldOverlay([bb.width*1, bb.height*1], fov = bb.height, distance = 0.4) self.canvas.setPosition(0,0.05,0) self.canvasViewPos = self.canvas.getPosition() self.canvas.setEuler(0,15,0) self.canvas.setPosition(0, -5, 0) self.canvasHidePos = self.canvas.getPosition() viztask.schedule(self.updatePanelPos()) vizact.onkeydown(viz.KEY_ESCAPE, self.toggle)
def toggleMenu(node=viz.addGroup(),view=viz.MainView,menu=viz.addGUICanvas(),val=viz.TOGGLE): menu.visible(val) menuLink = None if menu.getVisible() is True: pos = view.getPosition() menu.setPosition(pos[0],pos[1]-1,pos[2]+5) # menuLink.remove() else: menuLink = viz.grab(node,menu)
def init(): global proxList global snapTransitionTime global animateOutline global tasks global snapFlag global gloveLink global recordData global Tutorial snapFlag = False proxList = [] gloveLink = None snapTransitionTime = 0.3 animateOutline = 1.25 canvas = viz.addGUICanvas() tasks = viztask.Scheduler Tutorial = InterfaceTutorial(canvas) recordData = TutorialData()
def init(): """Create global menu instance""" global main global game global ingame global canvas canvas = viz.addGUICanvas() # canvas.setRenderWorldOverlay([2000,2000],60,1) main = MainMenu(canvas) game = GameMenu(canvas) ingame = InGameMenu(canvas) # Compatibility for all display types canvas.setMouseStyle(viz.CANVAS_MOUSE_VIRTUAL) canvas.setCursorSize([25,25]) canvas.setCursorPosition([0,0])
def init(): """Create global menu instance""" global main global game global ingame global canvas canvas = viz.addGUICanvas() # canvas.setRenderWorldOverlay([2000,2000],60,1) main = MainMenu(canvas) game = GameMenu(canvas) ingame = InGameMenu(canvas) # Compatibility for all display types canvas.setMouseStyle(viz.CANVAS_MOUSE_VIRTUAL) canvas.setCursorSize([25, 25]) canvas.setCursorPosition([0, 0])
def __init__(self): """Init canvas and create themes for the test panel""" self.canvas = viz.addGUICanvas(parent = viz.ABS_GLOBAL) viz.mouse.setVisible(False) self.name = 'test' self._theme = viz.Theme() self._theme.borderColor = (0.1,0.1,0.1,1) self._theme.backColor = (0.4,0.4,0.4,1) self._theme.lightBackColor = (0.6,0.6,0.6,1) self._theme.darkBackColor = (0.2,0.2,0.2,1) self._theme.highBackColor = (0.2,0.2,0.2,1) self._theme.textColor = (1,1,1,1) self._theme.highTextColor = (1,1,1,1) # Initialize test panel vizdlg.Panel.__init__(self, parent = self.canvas, theme = self._theme, align = viz.ALIGN_CENTER, fontSize = 10) self.visible(viz.OFF) self.setScale(*[i*config.menuScale[self.name] for i in [1,1,1]]) # Title title = vizdlg.TitleBar('INSTRUCTIONS') self.addItem(title, align = viz.ALIGN_CENTER_TOP) # Bones to be snapped. source snapped to target. self.sourceText = viz.addTextbox(parent = self.canvas) self.sourceText.setLength(1.5) self.targetText = viz.addTextbox(parent = self.canvas) self.targetText.setLength(1.5) # Instructions self.Instruct1 = self.addItem(viz.addText('Snap the: ', parent = self.canvas), align = viz.ALIGN_CENTER_TOP) self.sourceCommand = self.addItem(self.sourceText, align = viz.ALIGN_CENTER_TOP) self.Instruct2 = self.addItem(viz.addText('To the: ', parent = self.canvas), align = viz.ALIGN_CENTER_TOP) self.targetCommand = self.addItem(self.targetText, align = viz.ALIGN_CENTER_TOP) # Render canvas bb = self.getBoundingBox() self.canvas.setRenderWorld([bb.height, bb.width],[4, 3*1.333]) # On esc toggle menu (doesn't interfere with in-game menu) # vizact.onkeydown(viz.KEY_ESCAPE, self.toggle) self.canvas.setPosition(0.0,2.0,4.0) self.canvas.resolution(self.canvas.getResolution())
def __init__(self, name = 'loading', title = '', fontSize = 175): """initialize the menu""" self.canvas = viz.addGUICanvas(scene = viz.Scene2) vizinfo.InfoPanel.__init__(self, '', title = title, fontSize = fontSize, parent = self.canvas, align = viz.ALIGN_CENTER_CENTER, icon = False) #hide system mouse viz.mouse.setVisible(False) viz.mouse.setTrap(True) #adding progress bar self.name = name self.setScale(*[i*config.menuScale[self.name] for i in [1,1,1]]) self.percentLoaded = 0 self.progress = viz.addProgressBar('Loading...') self.getPanel().fontSize(100) self.addItem(self.progress, align = viz.ALIGN_CENTER_CENTER)
def __init__(self, values, scene=viz.MainScene, align=viz.ALIGN_CENTER_BOTTOM, fontSize=30, rift=False): if rift: self.canvas = viz.addGUICanvas(parent=viz.WORLD, scene=scene) self.canvas.setRenderWorldOverlay([1280,720], fov=50.0, distance=0.5) viz.MainWindow.setDefaultGUICanvas(self.canvas) self.menu = vizinfo.InfoPanel(' ',align=align,fontSize=fontSize,icon=False) if rift: self.menu.setScale(2.5,2.5) self.values = values self.labels = [] self.margin = self.menu.getMargin() self.alignments = Queue() currAlignment = (align + 1) % 10 for i in range(currAlignment, currAlignment+10): self.alignments.put(i % 10) self.disable() self.setMarginOfGUI([.1,.1]) self.menu.alpha(0.8)
def __init__(self, gem, gempos, escena, sound): print "ESCENA-2", escena self.gem = viz.addChild(gem, scene=escena) self.gem.setScale(2.5, 2.5, 2.5) self.gem.setPosition(gempos[0], gempos[1]) self.sensorGem = vizproximity.addBoundingBoxSensor(self.gem, scale=[6, 4, 6]) self.chimesound = sound self.canvas = viz.addGUICanvas() self.canvas.alignment(viz.ALIGN_CENTER) viz.MainWindow.setDefaultGUICanvas(self.canvas) self.info = vizinfo.InfoPanel('AVERNO', align=viz.ALIGN_RIGHT_TOP, icon=False) self.info.setTitle('Ejemplo') self.info.setPanelVisible(False) self.canvas.setRenderWorld([600, 500], [3, viz.AUTO_COMPUTE]) self.canvas.setPosition([ self.gem.getPosition()[0], self.gem.getPosition()[1] + 0.5, self.gem.getPosition()[2] ]) self.canvas.setEuler(0, 0, 0)
def __init__(self, name='loading', title='', fontSize=175): """initialize the menu""" self.canvas = viz.addGUICanvas(scene=viz.Scene2) vizinfo.InfoPanel.__init__(self, '', title=title, fontSize=fontSize, parent=self.canvas, align=viz.ALIGN_CENTER_CENTER, icon=False) #hide system mouse viz.mouse.setVisible(False) viz.mouse.setTrap(True) #adding progress bar self.name = name self.setScale(*[i * config.menuScale[self.name] for i in [1, 1, 1]]) self.percentLoaded = 0 self.progress = viz.addProgressBar('Loading...') self.getPanel().fontSize(100) self.addItem(self.progress, align=viz.ALIGN_CENTER_CENTER)
def __init__(self): #init canvas and create themes for the test panel self.canvas = viz.addGUICanvas(align=viz.ALIGN_CENTER_CENTER) self.canvas.setPosition(0, 0, 0) viz.mouse.setVisible(False) self.name = 'test' self._theme = viz.Theme() self._theme.borderColor = (0.1, 0.1, 0.1, 1) self._theme.backColor = (0.4, 0.4, 0.4, 1) self._theme.lightBackColor = (0.6, 0.6, 0.6, 1) self._theme.darkBackColor = (0.2, 0.2, 0.2, 1) self._theme.highBackColor = (0.2, 0.2, 0.2, 1) self._theme.textColor = (1, 1, 1, 1) self._theme.highTextColor = (1, 1, 1, 1) #initialize test panel vizdlg.Panel.__init__(self, parent=self.canvas, theme=self._theme, align=viz.ALIGN_CENTER_TOP, fontSize=15) self.visible(viz.OFF) self.setScale(*[i * config.menuScale[self.name] for i in [1, 1, 1]]) self.alpha(0.6) # #title title = vizdlg.TitleBar('INSTRUCTIONS') self.addItem(title, align=viz.ALIGN_CENTER_TOP) #bones to be snapped. source snapped to target. source = 'a' * 20 self.sourceText = viz.addTextbox(parent=self.canvas) self.sourceText.setLength(1.5) target = 'a' * 20 self.targetText = viz.addTextbox(parent=self.canvas) self.targetText.setLength(1.5) #instructions self.Instruct1 = self.addItem(viz.addText('Snap the: ', parent=self.canvas), align=viz.ALIGN_CENTER_TOP) self.sourceCommand = self.addItem(self.sourceText, align=viz.ALIGN_CENTER_TOP) self.Instruct2 = self.addItem(viz.addText('To the: ', parent=self.canvas), align=viz.ALIGN_CENTER_TOP) self.targetCommand = self.addItem(self.targetText, align=viz.ALIGN_CENTER_TOP) #render canvas if config.dispMode == config.DisplayMode.monitor: self.canvas.billboard(viz.BILLBOARD_YAXIS) self.canvas.setPosition(-2, 0, 0) self.canvas.setBackdrop(viz.ALIGN_CENTER_TOP) if config.dispMode == config.DisplayMode.oculus: bb = self.canvas.getBoundingBox() self.canvas.setRenderWorldOverlay([bb.width * 1, bb.height * 1], fov=bb.height, distance=0.4) self.canvas.setPosition(0, 0.05, 0) self.canvasViewPos = self.canvas.getPosition() self.canvas.setEuler(0, 15, 0) self.canvas.setPosition(0, -5, 0) self.canvasHidePos = self.canvas.getPosition() viztask.schedule(self.updatePanelPos()) vizact.onkeydown(viz.KEY_ESCAPE, self.toggle)
req.send_string('t') return float(req.recv_string()) # set start eye windows n = {'subject':'eye_process.should_start.0','eye_id':0, 'args':{}} print(send_recv_notification(n)) n = {'subject':'eye_process.should_start.1','eye_id':1, 'args':{}} print(send_recv_notification(n)) time.sleep(2) # set calibration method to hmd calibration n = {'subject':'start_plugin','name':'HMD_Calibration', 'args':{}} print(send_recv_notification(n)) canvas = viz.addGUICanvas() canvas.setRenderWorldOverlay([2160, 1200], fov=85.0, distance=2.0) viz.MainWindow.setDefaultGUICanvas(canvas) def showMessage(msg): """ Show a message in the virtual environment until keypress """ message = vizinfo.InfoPanel(msg, align=viz.ALIGN_CENTER_CENTER, fontSize=22, icon=False, key=None) message.setPosition(.5, .5, mode=viz.RELATIVE) #hmd.addWindowMessage(message) yield viztask.waitKeyDown(' ') message.remove() ###########################################################
# trackerLink.preEuler([0,0,0]) # trackerLink.postTrans([.5,-.2,0]) # trackerLink.setPosition([0,5,1]) # vizact.ontimer(0,updateClampedPos) # vizact.ontimer(0,updateHand,tracker) # arrowLink = viz.link(tracker,highlighter) # arrowLink.postMultLinkable(navigator.VIEW) # arrowLink = viz.link(tracker,arrow) # arrowLink = viz.link(arrow,highlighter) # arrowLink.preMultLinkable(viz.MainView) # arrowLink.preMultLinkable(navigator.VIEW) # arrowLink.postMultLinkable(navigator.VIEW) # vizact.ontimer(0,updateHand,arrow) # vizact.ontimer(0,updateArrow,trackerLink,arrow) canvas = viz.addGUICanvas(align=viz.ALIGN_CENTER) viz.MainWindow.setDefaultGUICanvas(canvas) canvas.setRenderWorld([600,400],[2,viz.AUTO_COMPUTE]) canvas.setMouseStyle(viz.CANVAS_MOUSE_BUTTON | viz.CANVAS_MOUSE_VISIBLE) panel = vizdlg.TabPanel(parent=canvas,align=viz.ALIGN_CENTER) panel_A = vizdlg.Panel() panel_B = vizdlg.Panel() tab_A = panel.addPanel('Tab A',panel_A) tab_B = panel.addPanel('Tab B',panel_B) canvas.setPosition(0,2,3) vizact.ontimer(0,updateMousePosition,canvas,highlighter.getRayCaster()) vizact.onkeyup(' ',toggleMenu,node=navigator.NODE,menu=canvas) viz.addChild('maze.osgb')
# viz.mouse(viz.OFF) # viz.mouse.setVisible(False) viz.mouse.setTrap() # Add environment maze = vizfx.addChild('maze.osgb') maze.hint(viz.OPTIMIZE_INTERSECT_HINT) maze.disable(viz.SHADOW_CASTING) #Create skylight viz.MainView.getHeadLight().disable() sky_light = viz.addDirectionalLight(euler=(0,90,0), color=viz.WHITE) sky_light.setShadowMode(viz.SHADOW_DEPTH_MAP) # Create canvas for displaying GUI objects canvas = viz.addGUICanvas(pos=[0, 3.0, 3.0]) canvas.alignment(viz.ALIGN_CENTER) canvasButtonTask = viztask.schedule(CanvasButtonTask(canvas)) instructions ="""Use the trigger to select and jump to painting.""" panel = vizinfo.InfoPanel(instructions, title='Vizard SteamVR Demo', key=None, icon=False, align=viz.ALIGN_CENTER, parent=canvas) click_button = viz.addButton(parent=canvas) SetWorld() bb = panel.getBoundingBox() canvas.setRenderWorld([bb.width, bb.height],[1,viz.AUTO_COMPUTE]) print(canvas.getNodeNames()) import vizshape import tools from tools import highlighter from tools import ray_caster
### Fade-to-gray-efect , ! Not operationalized in this study !### gray_effect = BlendEffect(None, GrayscaleEffect(), blend=0.0) gray_effect.setEnabled(False) vizfx.postprocess.addEffect(gray_effect) def FadeToGrayTask(): gray_effect.setBlend(1) gray_effect.setEnabled(True) yield viztask.waitCall(gray_effect.setBlend, vizact.mix(viz.BLACK, viz.WHITE, time=1.0)) #### Panels ###### canvas = viz.addGUICanvas() # Create canvas for display UI to user Panel = vizinfo.InfoPanel('', icon=False, parent=canvas, fontSize=18) #Define main Panel# Panel.alpha(.8) #set transparency rowBottom = vizdlg.Panel(layout=vizdlg.LAYOUT_HORZ_CENTER, background=False, border=False, theme=blackTheme, spacing=30) #Add rows to the panel# Panel.addSeparator(.8, padding=(10, 10)) Panel.addItem(rowBottom) rowBottom.setTheme(blackTheme) #Panel.getPanel().fontSize(22) Panel.setTheme(blackTheme) Panel.getPanel().font('Times New Roman') Panel.getPanel().fontSize(12)
import viz import vizinfo from vhil_devkit import * RIFT = False vhilGo(RIFT) TYPICAL_GUI_CANVAS = False NODE3D_CANVAS = True if TYPICAL_GUI_CANVAS: # Create canvas for displaying GUI objects canvas = viz.addGUICanvas() canvas.alignment(viz.ALIGN_CENTER) # Set canvas as default so all GUI objects are automatically added to it viz.MainWindow.setDefaultGUICanvas(canvas) controlPanel = vizinfo.InfoPanel(text='Navigate with WASD', title='Canvas Example') controlPanel.addSection('Render Mode') radio_world_overlay = controlPanel.addLabelItem('World Overlay', viz.addRadioButton('RenderMode')) radio_world = controlPanel.addLabelItem('World', viz.addRadioButton('RenderMode')) radio_screen_ortho = controlPanel.addLabelItem('Screen Ortho', viz.addRadioButton('RenderMode')) radio_world_overlay.set(1) controlPanel.addSeparator() manual_cursor = controlPanel.addLabelItem('Manual Cursor',viz.addCheckbox()) select_world = controlPanel.addItem(viz.addButtonLabel('Select World'))
def updateMousePosition(canvas=viz.addGUICanvas(),raycaster=ray_caster.RayCaster(autoHide=False)): line = raycaster.getLineForward() newPos = line.endFromDistance(2) screenPos = viz.MainWindow.worldToScreen(newPos) canvas.setCursorPosition(screenPos)
gemLev1 = [item['gem'], item['gem']] gemPosLev1 = [[-30, 4], [-20, 4]] planeLev1 = [item['gem']] planePosLev1 = [[10, 5]] #Escenario1 mine1 = viz.addChild(model['mundo1'], viz.VizScene(1)) plane11 = viz.addChild(planeLev1[0], viz.VizScene(1)) plane11.setPosition(planePosLev1[0][0], planePosLev1[0][1]) btn_regresa1 = viz.addButtonLabel("regresar", scene=viz.Scene1) btn_regresa1.setPosition(0.9, 0.1) gem11 = viz.addChild(gemLev1[0], viz.VizScene(1)) gem11.setPosition(gemPosLev1[0][0], gemPosLev1[0][1]) canvas11 = viz.addGUICanvas() canvas11.alignment(viz.ALIGN_CENTER) viz.MainWindow.setDefaultGUICanvas(canvas11) info11 = vizinfo.InfoPanel('AVERNO', align=viz.ALIGN_RIGHT_TOP, icon=False) info11.setTitle('Ejemplo') info11.setPanelVisible(False) canvas11.setRenderWorld([600, 500], [3, viz.AUTO_COMPUTE]) canvas11.setPosition([ gem11.getPosition()[0], gem11.getPosition()[1] + 0.5, gem11.getPosition()[2] ]) canvas11.setEuler(0, 0, 0) gem12 = viz.addChild(gemLev1[1], scene=viz.VizScene(1)) gem12.setPosition(gemPosLev1[1][0], gemPosLev1[1][1])
mine5 = viz.addChild(model['mundo5'], scene=viz.Scene5) plane5 = viz.addChild(item['gem'], scene=viz.Scene5) plane5.setScale(2.5, 2.5, 2.5) plane5.setPosition(325, 5, -60) plane5.visible(False) btn_regresa5 = viz.addButton(scene=viz.Scene5) btn_regresa5.setPosition(0.9, 0.1) btn_regresa5.setScale(4, 1.5) btn_regresa5.downpicture(button['regresar']) btn_regresa5.uppicture(button['regresar']) gem51 = viz.addChild(item['gem1'], scene=viz.Scene5) gem51.setScale(2.5, 2.5, 2.5) gem51.setPosition(245, 3, -97) canvas51 = viz.addGUICanvas() canvas51.alignment(viz.ALIGN_CENTER) viz.MainWindow.setDefaultGUICanvas(canvas51) info51 = vizinfo.InfoPanel('AVERNO', align=viz.ALIGN_RIGHT_TOP, icon=False) info51.setTitle('Ejemplo') info51.setPanelVisible(False) canvas51.setRenderWorld([600, 500], [3, viz.AUTO_COMPUTE]) canvas51.setPosition([ gem51.getPosition()[0], gem51.getPosition()[1] + 0.5, gem51.getPosition()[2] ]) canvas51.setEuler(0, 0, 0) gem52 = viz.addChild(item['gem1'], scene=viz.Scene5) gem52.setScale(2.5, 2.5, 2.5)