def OnCreate(self, e): self.Unbind(wx.EVT_INIT_DIALOG) base.le.ui.bindKeyEvents(False) self.filename = None self.name = '' self.Ok = False self.assetType = "Static Mesh" self.importScene = NodePath(PandaNode("importScene")) self.import2d = NodePath(PandaNode("import2d")) self.import2dScaled = self.import2d.attachNewNode( PandaNode("import2dScaled")) self.objPreview = None self.thumbnailTaken = False self.Bind(wx.EVT_CLOSE, self.Close) base.direct.manipulationControl.disableManipulation() self.Show() #init all the panels from XRC for parenting later on self.mainPanel = xrc.XRCCTRL(self, "mainPanel") self.pandaPanel = xrc.XRCCTRL(self, "pandaPanel") self.animPanel = xrc.XRCCTRL(self, "animPanel") self.libraryPanel = xrc.XRCCTRL(self, "libraryPanel") self.typeSelector = xrc.XRCCTRL(self.libraryPanel, 'choiceAssetType') self.typeSelector.Bind(wx.EVT_CHOICE, self.onSwitchType) self.typeSelector.SetStringSelection(self.assetType) self.btnScreenshot = xrc.XRCCTRL(self.mainPanel, "btnScreenShot") self.btnScreenshot.Bind(wx.EVT_BUTTON, self.onScreenShot) self.btnScreenshot.Disable() self.imgThumbnail = xrc.XRCCTRL(self.libraryPanel, 'imgThumbnail') self.btnPlay = xrc.XRCCTRL(self.libraryPanel, "btnPlay") self.btnStop = xrc.XRCCTRL(self.libraryPanel, "btnStop") self.viewport = Viewport('persp', self.pandaPanel) self.viewport.SetClientSize((500, 500)) ViewportManager.updateAll() base.le.ui.wxStep() self.viewport.initialize() self.handles = ObjectHandles('importUIWidget') self.handles.hide() base.direct.manipulationControl.widgetList.append(self.handles) base.direct.drList.addDisplayRegionContext(self.viewport.cam) #apply a mask to make sure GUI stuff from the main window doesn't show up here self.viewport.cam2d.node().setCameraMask(LE_IMPORT_MASK) self.viewport.camera.reparentTo(self.importScene) self.viewport.camera.setPos(-19, -19, 19) self.viewport.camera.lookAt(0, 0, 0) self.viewport.cam2d.reparentTo(self.import2d) dlight = DirectionalLight('dlight') dlight.setColor(VBase4(0.8, 0.8, 0.8, 1)) dlnp = self.importScene.attachNewNode(dlight) self.importScene.setLight(dlnp) dlnp.setHpr(45, -45, 0) alight = AmbientLight('alight') alight.setColor(VBase4(0.25, 0.25, 0.25, 1)) alnp = self.importScene.attachNewNode(alight) self.importScene.setLight(alnp) fileSelector = xrc.XRCCTRL(self.mainPanel, 'btnLoadAsset') fileSelector.Bind(wx.EVT_BUTTON, self.onFileSelect) if self.assetType != "Library": self.nameInput = xrc.XRCCTRL(self.libraryPanel, 'txtObjName') self.nameInput.Bind(wx.EVT_TEXT, self.onNameInput) self.okButton = xrc.XRCCTRL(self.mainPanel, 'btnSendToLibrary') self.okButton.Bind(wx.EVT_BUTTON, self.onOk) self.okButton.Enable(False) self.animPanel = xrc.XRCCTRL(self.mainPanel, 'animPanel') self.btnImportAnim = xrc.XRCCTRL(self.animPanel, 'btnImportAnim') self.btnImportAnim.Bind(wx.EVT_BUTTON, self.onImportAnim) self.btnImportAnim.Enable(False) self.btnRemoveSelected = xrc.XRCCTRL(self.animPanel, 'btnRemoveSelected') self.btnRemoveSelected.Bind(wx.EVT_BUTTON, self.onRemoveSelected) self.btnRemoveSelected.Enable(False) self.listCtrlAnim = xrc.XRCCTRL(self.animPanel, 'listCtrlAnim') self.listCtrlAnim.__class__ = ListCtrlMultiEdit self.btnPlay.Bind(wx.EVT_BUTTON, self.onPlaySound) self.btnStop.Bind(wx.EVT_BUTTON, self.onStopSound) self.listCtrlAnim.Bind(wx.EVT_LIST_END_LABEL_EDIT, self.onEditAnim) self.listCtrlAnim.Bind(wx.EVT_LIST_ITEM_SELECTED, self.onSelectAnim) self.imgThumbnail.Bind(wx.EVT_BUTTON, self.onScreenShot) TextEditMixin.__init__(self.listCtrlAnim) self.Layout()
def onCreate(self, evt=None): base.le.deselectAll() self.Unbind(wx.EVT_INIT_DIALOG) # Ignore the main editor ## taskMgr.remove("mouseTask") base.le.ui.bindKeyEvents(False) ## base.le.ui.inPandaWindow = False ## self.Bind(wx.EVT_CHAR, self.onKeyEvent) ## self.Bind(wx.EVT_KEY_DOWN, self.onKeyDown) ## self.Bind(wx.EVT_KEY_UP, self.onKeyUp) self.Show() base.direct.manipulationControl.disableManipulation() self.Bind(wx.EVT_CLOSE, self.close) # main panel self.panelMain = xrc.XRCCTRL(self, 'mainPanel') self.pandaPanel = xrc.XRCCTRL(self, "pandaPanel") self.propsPanel = xrc.XRCCTRL(self, "propsPanel") self.ropePanel = xrc.XRCCTRL(self, "ropePanel") # text boxes self.txtX = xrc.XRCCTRL(self.propsPanel, 'txtX') self.txtY = xrc.XRCCTRL(self.propsPanel, 'txtY') self.txtZ = xrc.XRCCTRL(self.propsPanel, 'txtZ') self.txtX.SetValue(str(self.camera.getPos()[0])) self.txtY.SetValue(str(self.camera.getPos()[1])) self.txtZ.SetValue(str(self.camera.getPos()[2])) for x in (self.txtX, self.txtY, self.txtZ): x.Bind(wx.EVT_TEXT_ENTER, self.updatePos) self.txtH = xrc.XRCCTRL(self.propsPanel, 'txtH') self.txtP = xrc.XRCCTRL(self.propsPanel, 'txtP') self.txtR = xrc.XRCCTRL(self.propsPanel, 'txtR') self.txtH.SetValue(str(self.camera.getHpr()[0])) self.txtP.SetValue(str(self.camera.getHpr()[1])) self.txtR.SetValue(str(self.camera.getHpr()[2])) for x in (self.txtH, self.txtP, self.txtR): x.Bind(wx.EVT_TEXT_ENTER, self.updateHpr) self.txtHoriz = xrc.XRCCTRL(self.propsPanel, 'txtHoriz') self.txtVert = xrc.XRCCTRL(self.propsPanel, 'txtVert') self.txtHoriz.SetValue(str(self.camera.getLens().getFov()[0])) self.txtVert.SetValue(str(self.camera.getLens().getFov()[1])) for x in (self.txtHoriz, self.txtVert): x.Bind(wx.EVT_TEXT_ENTER, self.updateFov) self.txtNear = xrc.XRCCTRL(self.propsPanel, 'txtNear') self.txtFar = xrc.XRCCTRL(self.propsPanel, 'txtFar') self.txtNear.SetValue(str(self.camera.getLens().getNear())) self.txtFar.SetValue(str(self.camera.getLens().getFar())) for x in (self.txtNear, self.txtFar): x.Bind(wx.EVT_TEXT_ENTER, self.updateNearFar) self.txtRope = xrc.XRCCTRL(self.ropePanel, 'txtRope') self.txtSeqTime = xrc.XRCCTRL(self.ropePanel, 'txtSeq') self.txtLookAt = xrc.XRCCTRL(self.ropePanel, 'txtLookAt') #self.txtRope.Bind(wx.EVT_TEXT_ENTER, self.updateRope) self.txtSeqTime.Bind(wx.EVT_TEXT_ENTER, self.updateSeqTime) self.radioBoxOrientation = xrc.XRCCTRL(self.ropePanel, 'radioBoxOrientation') self.Bind(wx.EVT_RADIOBOX, self.onOrientationChange, self.radioBoxOrientation) #Preview Buttons self.btnPreview = xrc.XRCCTRL(self, "btnPlay") self.btnPreview.Bind(wx.EVT_BUTTON, self.previewSeq) self.btnStop = xrc.XRCCTRL(self, "btnReset") self.btnStop.Bind(wx.EVT_BUTTON, self.resetSeq) # buttons self.btnOk = xrc.XRCCTRL(self.panelMain, 'btnOk') self.btnCancel = xrc.XRCCTRL(self.panelMain, 'btnCancel') self.btnCancel.Bind(wx.EVT_BUTTON, self.close) self.btnOk.Bind(wx.EVT_BUTTON, self.onOk) self.ok = False # Camera view diff = 600 - (self.camera.getLens().getAspectRatio() * 600) self.SetSize((610 - diff, 759)) pos = self.GetPosition() self.SetPosition((pos[0] + (diff/2), pos[1])) self.pandaPanel.SetSize((self.camera.getLens().getAspectRatio()*600, 600)) self.camView = Viewport('persp', self.pandaPanel) self.camView.SetClientSize((self.camera.getLens().getAspectRatio()*600, 600)) ViewportManager.updateAll() base.le.ui.wxStep() self.camView.initialize() self.handles = ObjectHandles('camViewWidget') self.handles.hide() base.direct.manipulationControl.widgetList.append(self.handles) self.camView.cam.node().setLens(self.camera.getLens()) base.direct.drList.addDisplayRegionContext(self.camView.cam) self.camView.cam2d.node().setCameraMask(LE_CAM_MASK) self.camView.cam.node().setCameraMask(LE_CAM_MASK) self.camView.camera.reparentTo(render) self.camView.camera.setPos(self.camera.getPos()) self.camView.camera.setHpr(self.camera.getHpr()) base.le.ui.perspView.grid.hide(LE_CAM_MASK) #self.startPos = self.camera.getPos() #self.startHpr = self.camera.getHpr() self.Layout()