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')) canvas.setRenderWorldOverlay([800,600],40,3) if NODE3D_CANVAS: pigeon = viz.addAvatar('pigeon.cfg',scale=[200]*3) pigeon.addAction(vizact.spin(0,1,0,45)) pigeon.enable(viz.DEPTH_TEST,op=viz.OP_ROOT) #Add the pigeon to the panel panel = vizinfo.InfoPanel('Find the pigeons before they fly away',align=viz.ALIGN_CENTER,fontSize=22,icon=False) panel.addItem(pigeon,align=viz.ALIGN_CENTER)
def __init__(self, canvas, controller): super(LayerMenu, self).__init__(canvas, 'layer', 'Layer Selection') # Store controller instance self.controller = controller #Store region, layer, and mode data from config to populate menu self.regions = config.OntologicalGroups.regions #collections.OrderedDict type self.layers = config.OntologicalGroups.layers #collections.OrderedDict type self.modes = config.MenuConfig.Modes self.getPanel().fontSize(50) ##################### '''LAYER TAB PANEL SETUP''' ##################### #creating tab panel tp byRegionPanel = vizdlg.TabPanel(align=viz.ALIGN_LEFT_TOP, parent=canvas) #creating sub panels for tab panels(all layer data is stored in config.layers) storing sub panels in laypan layPan = {} for i, l in enumerate(self.regions.iteritems()): layPan[l[0]] = vizdlg.GridPanel(parent=canvas, fontSize=50) #creating dict of checkboxes for layers self.checkBox = {} for key in self.regions.iterkeys(): self.checkBox[key] = {} for cb in self.layers.iterkeys(): self.checkBox[key][cb] = viz.addCheckbox(parent=canvas) #remove checkboxes from non-functioning region-layer selections for key in config.MenuConfig.RemoveCheckFromTab.iterkeys(): for cb in config.MenuConfig.RemoveCheckFromTab[key]: self.checkBox[key][cb].disable() #populate panels with layers and checkboxes for i in self.regions.iterkeys(): for j in self.layers.iterkeys(): layPan[i].addRow([viz.addText(j), self.checkBox[i][j]]) byRegionPanel.addPanel(i, layPan[i], align=viz.ALIGN_LEFT_TOP) ############################################# """CREATE TOTAL LAYER SELECTION CHECKBOXES""" ############################################# #creating grib panel to put checkboxes on selectAllPanel = vizdlg.GridPanel(parent=canvas, fontSize=50) #creating checkboxes self.selectAllOf = {} for i in self.layers.iterkeys(): self.selectAllOf[i] = viz.addCheckbox(parent=canvas) #adding checkboxes to panel for i in self.layers: selectAllPanel.addRow([ viz.addText('Load All ' + i, fontSize=50), self.selectAllOf[i] ]) ################################### '''CREATE START AND STOP BUTTONS''' ################################### #creating grid panels to add start and back buttons to setGrid = vizdlg.GridPanel(parent=canvas) #create back and start buttons and add to grid panel backButton = viz.addButtonLabel('Back') startButton = viz.addButtonLabel('Start') setGrid.addRow([backButton, startButton]) #add back and state button actions vizact.onbuttondown(backButton, self.controller.backMenu) vizact.onbuttondown(startButton, lambda: viztask.schedule(self.controller.start)) ############################ '''ADD ITEMS TO GAME MENU''' ############################ #add tab panel to info panel byRegionPanel.setCellPadding(5) self.addItem(byRegionPanel, align=viz.ALIGN_LEFT_TOP) #add grid panel to info panel self.addItem(selectAllPanel, align=viz.ALIGN_LEFT_TOP) #start and back buttons self.addItem(setGrid, align=viz.ALIGN_RIGHT_TOP) #change scale depending on display mode self.setScale(*[i * config.menuScale[self.name] for i in [1, 1, 1]]) #rendering bb = self.getBoundingBox() self.canvas.setRenderWorldOverlay([bb.width * 1.8, bb.height * 1.8], fov=bb.height * .1, distance=1) ############################# """BUTTON CALLBACK""" ############################# viz.callback(viz.BUTTON_EVENT, controller.onAllSelection)
def __init__(self,canvas): vizinfo.InfoPanel.__init__(self, '',title = 'Game Menu',fontSize = 100,align=viz.ALIGN_CENTER_CENTER,icon=False,parent= canvas) self.layers = config.layers self.modes = config.modes self.name = 'game' self.canvas = canvas self.active = False self.getPanel().fontSize(50) self.setPanelVisible(viz.OFF, animate = False) self.menuVisible = False ##################### '''LAYER TAB PANEL SETUP''' ##################### #creating tab panel tp tp = vizdlg.TabPanel(align = viz.ALIGN_LEFT_TOP, parent = canvas) #creating sub panels for tab panels(all layer data is stored in config.layers) storing sub panels in laypan layPan = {} for i, l in enumerate(self.layers): layPan[l] = vizdlg.GridPanel(parent = canvas) #creating dict of checkboxes for layers self.checkBox = {} for cb in [cb for l in self.layers.values() for cb in l]: self.checkBox[cb] = viz.addCheckbox(parent = canvas) #add layers and textboxes to panels for i in self.layers: for j in self.layers[i]: layPan[i].addRow([viz.addText(j), self.checkBox[j]]) tp.addPanel(i, layPan[i], align = viz.ALIGN_LEFT_TOP) ############################################### '''CREATING MODES PANEL''' ############################################### #creating labels for modes self.modeLabels = {} for l in self.modes.keys(): self.modeLabels[l] = viz.addText(l, parent = canvas) #creating radio buttons for modes self.modeGroup = viz.addGroup(parent = canvas) self.radioButtons = {} for rb in self.modes.keys(): self.radioButtons[rb] = viz.addRadioButton(self.modeGroup, parent = canvas) #creating grid panel to add mode to modeGrid = vizdlg.GridPanel(parent = canvas) #adding modes and radio buttons to grid panel for i in self.modes.keys(): modeGrid.addRow([self.modeLabels[i], self.radioButtons[i]]) ################################### '''CREATE START AND STOP BUTTONS''' ################################### #creating grid panels to add start and back buttons to setGrid = vizdlg.GridPanel(parent = canvas) #create back and start buttons and add to grid panel backButton = viz.addButtonLabel('Back') startButton = viz.addButtonLabel('Start') setGrid.addRow([backButton, startButton]) #add back and state button actions vizact.onbuttondown(backButton, self.back) vizact.onbuttondown(startButton, self.start) ############################ '''ADD ITEMS TO GAME MENU''' ############################ #directions self.addItem(viz.addText('Select Parts of the Skeletal System You Wish to Puzzle and Select a Mode:', parent = canvas), fontSize = 30, align = viz.ALIGN_LEFT_TOP) #add tab panel to info panel tp.setCellPadding(5) self.addItem(tp, align = viz.ALIGN_LEFT_TOP) #modes self.addItem(modeGrid, align = viz.ALIGN_LEFT_TOP) #start and back buttons self.addItem(setGrid, align = viz.ALIGN_RIGHT_TOP) #change scale depending on display mode self.setScale(*[i*config.menuScale[self.name] for i in [1,1,1]]) #rendering bb = self.getBoundingBox() self.canvas.setRenderWorldOverlay([bb.width*1.8, bb.height*1.8], fov = bb.height*.1, distance = 1)
def __init__(self,canvas,controller): super(LayerMenu, self).__init__(canvas, 'layer', 'Layer Selection') # Store controller instance self.controller = controller #Store region, layer, and mode data from config to populate menu self.regions = config.OntologicalGroups.regions #collections.OrderedDict type self.layers = config.OntologicalGroups.layers #collections.OrderedDict type self.modes = config.MenuConfig.Modes self.getPanel().fontSize(50) ##################### '''LAYER TAB PANEL SETUP''' ##################### #creating tab panel tp byRegionPanel = vizdlg.TabPanel(align = viz.ALIGN_LEFT_TOP, parent = canvas) #creating sub panels for tab panels(all layer data is stored in config.layers) storing sub panels in laypan layPan = {} for i, l in enumerate(self.regions.iteritems()): layPan[l[0]] = vizdlg.GridPanel(parent = canvas, fontSize = 50) #creating dict of checkboxes for layers self.checkBox = {} for key in self.regions.iterkeys(): self.checkBox[key] = {} for cb in self.layers.iterkeys(): self.checkBox[key][cb] = viz.addCheckbox(parent = canvas) #remove checkboxes from non-functioning region-layer selections for key in config.MenuConfig.RemoveCheckFromTab.iterkeys(): for cb in config.MenuConfig.RemoveCheckFromTab[key]: self.checkBox[key][cb].disable() #populate panels with layers and checkboxes for i in self.regions.iterkeys(): for j in self.layers.iterkeys(): layPan[i].addRow([viz.addText(j), self.checkBox[i][j]]) byRegionPanel.addPanel(i, layPan[i], align = viz.ALIGN_LEFT_TOP) ############################################# """CREATE TOTAL LAYER SELECTION CHECKBOXES""" ############################################# #creating grib panel to put checkboxes on selectAllPanel = vizdlg.GridPanel(parent = canvas, fontSize = 50) #creating checkboxes self.selectAllOf = {} for i in self.layers.iterkeys(): self.selectAllOf[i] = viz.addCheckbox(parent = canvas) #adding checkboxes to panel for i in self.layers: selectAllPanel.addRow([viz.addText('Load All ' + i, fontSize = 50), self.selectAllOf[i]]) ################################### '''CREATE START AND STOP BUTTONS''' ################################### #creating grid panels to add start and back buttons to setGrid = vizdlg.GridPanel(parent = canvas) #create back and start buttons and add to grid panel backButton = viz.addButtonLabel('Back') startButton = viz.addButtonLabel('Start') setGrid.addRow([backButton, startButton]) #add back and state button actions vizact.onbuttondown(backButton, self.controller.backMenu) vizact.onbuttondown(startButton, lambda: viztask.schedule(self.controller.start)) ############################ '''ADD ITEMS TO GAME MENU''' ############################ #add tab panel to info panel byRegionPanel.setCellPadding(5) self.addItem(byRegionPanel, align = viz.ALIGN_LEFT_TOP) #add grid panel to info panel self.addItem(selectAllPanel, align = viz.ALIGN_LEFT_TOP) #start and back buttons self.addItem(setGrid, align = viz.ALIGN_RIGHT_TOP) #change scale depending on display mode self.setScale(*[i*config.menuScale[self.name] for i in [1,1,1]]) #rendering bb = self.getBoundingBox() self.canvas.setRenderWorldOverlay([bb.width*1.8, bb.height*1.8], fov = bb.height*.1, distance = 1) ############################# """BUTTON CALLBACK""" ############################# viz.callback(viz.BUTTON_EVENT, controller.onAllSelection)
def __init__(self, canvas): vizinfo.InfoPanel.__init__(self, '', title='Game Menu', fontSize=100, align=viz.ALIGN_CENTER_CENTER, icon=False, parent=canvas) self.layers = config.layers self.modes = config.modes self.name = 'game' self.canvas = canvas self.active = False self.getPanel().fontSize(50) self.setPanelVisible(viz.OFF, animate=False) self.menuVisible = False ##################### '''LAYER TAB PANEL SETUP''' ##################### #creating tab panel tp tp = vizdlg.TabPanel(align=viz.ALIGN_LEFT_TOP, parent=canvas) #creating sub panels for tab panels(all layer data is stored in config.layers) storing sub panels in laypan layPan = {} for i, l in enumerate(self.layers): layPan[l] = vizdlg.GridPanel(parent=canvas) #creating dict of checkboxes for layers self.checkBox = {} for cb in [cb for l in self.layers.values() for cb in l]: self.checkBox[cb] = viz.addCheckbox(parent=canvas) #add layers and textboxes to panels for i in self.layers: for j in self.layers[i]: layPan[i].addRow([viz.addText(j), self.checkBox[j]]) tp.addPanel(i, layPan[i], align=viz.ALIGN_LEFT_TOP) ############################################### '''CREATING MODES PANEL''' ############################################### #creating labels for modes self.modeLabels = {} for l in self.modes.keys(): self.modeLabels[l] = viz.addText(l, parent=canvas) #creating radio buttons for modes self.modeGroup = viz.addGroup(parent=canvas) self.radioButtons = {} for rb in self.modes.keys(): self.radioButtons[rb] = viz.addRadioButton(self.modeGroup, parent=canvas) #creating grid panel to add mode to modeGrid = vizdlg.GridPanel(parent=canvas) #adding modes and radio buttons to grid panel for i in self.modes.keys(): modeGrid.addRow([self.modeLabels[i], self.radioButtons[i]]) ################################### '''CREATE START AND STOP BUTTONS''' ################################### #creating grid panels to add start and back buttons to setGrid = vizdlg.GridPanel(parent=canvas) #create back and start buttons and add to grid panel backButton = viz.addButtonLabel('Back') startButton = viz.addButtonLabel('Start') setGrid.addRow([backButton, startButton]) #add back and state button actions vizact.onbuttondown(backButton, self.back) vizact.onbuttondown(startButton, self.start) ############################ '''ADD ITEMS TO GAME MENU''' ############################ #directions self.addItem(viz.addText( 'Select Parts of the Skeletal System You Wish to Puzzle and Select a Mode:', parent=canvas), fontSize=30, align=viz.ALIGN_LEFT_TOP) #add tab panel to info panel tp.setCellPadding(5) self.addItem(tp, align=viz.ALIGN_LEFT_TOP) #modes self.addItem(modeGrid, align=viz.ALIGN_LEFT_TOP) #start and back buttons self.addItem(setGrid, align=viz.ALIGN_RIGHT_TOP) #change scale depending on display mode self.setScale(*[i * config.menuScale[self.name] for i in [1, 1, 1]]) #rendering bb = self.getBoundingBox() self.canvas.setRenderWorldOverlay([bb.width * 1.8, bb.height * 1.8], fov=bb.height * .1, distance=1)