Пример #1
0
    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()
Пример #2
0
 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()