diff --git a/doc/SceneEditor/sceneEditor.py b/doc/SceneEditor/sceneEditor.py index dfc9efa3ba..ec59365b12 100644 --- a/doc/SceneEditor/sceneEditor.py +++ b/doc/SceneEditor/sceneEditor.py @@ -155,7 +155,7 @@ class myLevelEditor(AppShell): self.initialiseoptions(myLevelEditor) self.parent.resizable(False,False) ## Disable the ability to resize for this Window. - + ######### Set the event handler ########## self.dataFlowEvents = [ ## Event from Side Window @@ -210,7 +210,7 @@ class myLevelEditor(AppShell): ['SEditor-ToggleBackface',self.toggleBackface], ['SEditor-ToggleTexture',self.toggleTexture], ['SEditor-ToggleWireframe',self.toggleWireframe], - ['ParticlePanel_Added_Effect',self.addParticleEffect], + ['ParticlePanel_Added_Effect',self.addParticleEffect], ['f11',self.loadFromBam], ['f12',self.saveAsBam], ] @@ -219,7 +219,7 @@ class myLevelEditor(AppShell): ################################# ### Collision detection ################################# - self.cTrav = CollisionTraverser() + self.cTrav = CollisionTraverser() base.cTrav = self.cTrav for event in self.dataFlowEvents: @@ -233,7 +233,7 @@ class myLevelEditor(AppShell): ['SGE_Remove', self.remove], ['SGE_Add Dummy', self.addDummyNode], ['SGE_Add Collision Object', self.addCollisionObj], - ['SGE_Metadata', self.openMetadataPanel], + ['SGE_Metadata', self.openMetadataPanel], ['SGE_Set as Reparent Target', self.setAsReparentTarget], ['SGE_Reparent to Target', self.reparentToNode], ['SGE_Animation Panel', self.openAnimPanel], @@ -265,17 +265,17 @@ class myLevelEditor(AppShell): ### Create SceneEditor Ver. DirectSession self.seSession = SeSession() self.seSession.enable() - SEditor.camera.setPos(0,-50,10) + SEditor.camera.setPos(0,-50,10) - self.placer=None - self.MopathPanel = None - self.alignPanelDict = {} - #self.quadview=QuadView() - + self.placer=None + self.MopathPanel = None + self.alignPanelDict = {} + #self.quadview=QuadView() + - self.lightingPanel = None - self.controllerPanel = None - self.particlePanel = None + self.lightingPanel = None + self.controllerPanel = None + self.particlePanel = None ### Create Side Window self.sideWindow = sideWindow(worldColor = self.worldColor, @@ -308,7 +308,7 @@ class myLevelEditor(AppShell): ### Creating the Buttons in the window frame ####################################################### buttonFrame = Frame(interior) - self.image=[] + self.image=[] self.image.append(self.getPhotoImage('models/icons/new.gif'))#0 self.image.append(self.getPhotoImage('models/icons/open.gif'))#1 @@ -330,20 +330,20 @@ class myLevelEditor(AppShell): self.image.append(self.getPhotoImage('models/icons/blank.gif')) self.image.append(self.getPhotoImage('models/icons/blank.gif')) self.image.append(self.getPhotoImage('models/icons/blank.gif')) - self.image.append(self.getPhotoImage('models/icons/blank.gif')) - self.image.append(self.getPhotoImage('models/icons/blank.gif')) - self.image.append(self.getPhotoImage('models/icons/blank.gif')) + self.image.append(self.getPhotoImage('models/icons/blank.gif')) + self.image.append(self.getPhotoImage('models/icons/blank.gif')) + self.image.append(self.getPhotoImage('models/icons/blank.gif')) i = 0 for element in self.image: i += 1 button = Button(buttonFrame, image = element, command=lambda n=i : self.buttonPushed(n)) button.pack(fill=X, side = LEFT) - + buttonFrame.pack(fill=X, side=LEFT,expand=True) - - + + def buttonPushed(self, buttonIndex): ################################################################# # buttonPushed(self, buttonNum) @@ -354,8 +354,8 @@ class myLevelEditor(AppShell): #### Change here to process the button event further. #### if buttonIndex==1: # New Scene - self.newScene() - return + self.newScene() + return elif buttonIndex==2: # Open Scene self.openScene() return @@ -372,13 +372,13 @@ class myLevelEditor(AppShell): self.openPlacerPanel() return elif buttonIndex==7: # Open Mopath Panel - self.openMoPathPanel() + self.openMoPathPanel() return elif buttonIndex==8: # Open Lighting Panel self.openLightingPanel() return elif buttonIndex==9: # Open Particle Panel - self.openParticlePanel() + self.openParticlePanel() return elif buttonIndex==10: self.openInputPanel() @@ -585,7 +585,7 @@ class myLevelEditor(AppShell): ## Processing message events def makeDirty(self): - self.Dirty=1 + self.Dirty=1 def removeLight(self, lightNode): ################################################################# @@ -642,7 +642,7 @@ class myLevelEditor(AppShell): list, lightNode = AllScene.createLight(type = type) if self.lightingPanel != None: self.lightingPanel.updateList(list,lightNode) - self.makeDirty() + self.makeDirty() return def lightingPanelClose(self): @@ -677,9 +677,9 @@ class myLevelEditor(AppShell): return def openMetadataPanel(self,nodePath=None): - print nodePath - self.MetadataPanel=MetadataPanel(nodePath) - pass + print nodePath + self.MetadataPanel=MetadataPanel(nodePath) + pass def duplicate(self, nodePath = None): ################################################################# @@ -721,7 +721,7 @@ class myLevelEditor(AppShell): # ################################################################# AllScene.addDummyNode(nodepath) - self.makeDirty() + self.makeDirty() pass def addCollisionObj(self, nodepath = None): @@ -835,67 +835,67 @@ class myLevelEditor(AppShell): # and will reset the application title to "New Scene" ################################################################# self.closeAllSubWindows() ## Close all sub window - if(self.CurrentFileName): - currentF=Filename(self.CurrentFileName) - self.CurrentFileName=None + if(self.CurrentFileName): + currentF=Filename(self.CurrentFileName) + self.CurrentFileName=None AllScene.resetAll() - currentModName=currentF.getBasenameWoExtension() - # Let us actually remove the scene from sys modules... this is done because every scene is loaded as a module - # And if we reload a scene python wont reload since its already in sys.modules... and hence we delete it - # If there is ever a garbage colleciton bug..this might be a point to look at - if sys.modules.has_key(currentModName): - del sys.modules[currentModName] - print sys.getrefcount(AllScene.theScene) - del AllScene.theScene - else: - AllScene.resetAll() - self.parent.title('Scene Editor - New Scene') + currentModName=currentF.getBasenameWoExtension() + # Let us actually remove the scene from sys modules... this is done because every scene is loaded as a module + # And if we reload a scene python wont reload since its already in sys.modules... and hence we delete it + # If there is ever a garbage colleciton bug..this might be a point to look at + if sys.modules.has_key(currentModName): + del sys.modules[currentModName] + print sys.getrefcount(AllScene.theScene) + del AllScene.theScene + else: + AllScene.resetAll() + self.parent.title('Scene Editor - New Scene') pass def openScene(self): ################################################################# # openScene(self) ################################################################# - # In the future try and provide merging of two scenes - + # In the future try and provide merging of two scenes + if(self.CurrentFileName or self.Dirty): - saveScene = tkMessageBox._show("Load scene","Save the current scene?",icon = tkMessageBox.QUESTION,type = tkMessageBox.YESNOCANCEL) - if (saveScene == "yes"): - self.saveScene() - elif (saveScene == "cancel"): - return + saveScene = tkMessageBox._show("Load scene","Save the current scene?",icon = tkMessageBox.QUESTION,type = tkMessageBox.YESNOCANCEL) + if (saveScene == "yes"): + self.saveScene() + elif (saveScene == "cancel"): + return self.closeAllSubWindows() ## Close all sub window - if(self.CurrentFileName): - currentF=Filename(self.CurrentFileName) - AllScene.resetAll() - currentModName=currentF.getBasenameWoExtension() - # Let us actually remove the scene from sys modules... this is done because every scene is loaded as a module - # And if we reload a scene python wont reload since its already in sys.modules... and hence we delete it - # If there is ever a garbage colleciton bug..this might be a point to look at - if sys.modules.has_key(currentModName): - del sys.modules[currentModName] - print sys.getrefcount(AllScene.theScene) - del AllScene.theScene + if(self.CurrentFileName): + currentF=Filename(self.CurrentFileName) + AllScene.resetAll() + currentModName=currentF.getBasenameWoExtension() + # Let us actually remove the scene from sys modules... this is done because every scene is loaded as a module + # And if we reload a scene python wont reload since its already in sys.modules... and hence we delete it + # If there is ever a garbage colleciton bug..this might be a point to look at + if sys.modules.has_key(currentModName): + del sys.modules[currentModName] + print sys.getrefcount(AllScene.theScene) + del AllScene.theScene else: - AllScene.resetAll() + AllScene.resetAll() - self.CurrentFileName = AllScene.loadScene() - - if(self.CurrentFileName==None): - return + self.CurrentFileName = AllScene.loadScene() + + if(self.CurrentFileName==None): + return - thefile=Filename(self.CurrentFileName) - thedir=thefile.getFullpathWoExtension() - print "SCENE EDITOR::" + thedir - self.CurrentDirName=thedir - if self.CurrentFileName != None: + thefile=Filename(self.CurrentFileName) + thedir=thefile.getFullpathWoExtension() + print "SCENE EDITOR::" + thedir + self.CurrentDirName=thedir + if self.CurrentFileName != None: self.parent.title('Scene Editor - '+ Filename.fromOsSpecific(self.CurrentFileName).getBasenameWoExtension()) - if self.lightingPanel !=None: + if self.lightingPanel !=None: lightList=AllScene.getList() self.lightingPanel.updateList(lightList) messenger.send('SGE_Update Explorer',[render]) - + # Close the side window in order to reset all world settings to fit the scene we have loaded. self.sideWindow.quit() @@ -920,12 +920,12 @@ class myLevelEditor(AppShell): # If this filename exists in sys.modules you cannot use it ################################################################# - if(self.CurrentFileName): - f=FileSaver() - f.SaveFile(AllScene,self.CurrentFileName,self.CurrentDirName,1) - self.Dirty=0 - else: - self.saveAsScene() + if(self.CurrentFileName): + f=FileSaver() + f.SaveFile(AllScene,self.CurrentFileName,self.CurrentDirName,1) + self.Dirty=0 + else: + self.saveAsScene() pass def saveAsBam(self): @@ -946,34 +946,34 @@ class myLevelEditor(AppShell): def saveAsScene(self): ################################################################# - # saveAsScene(self) + # saveAsScene(self) # Ask for filename using a file save dialog # If this filename exists in sys.modules you cannot use it # Instantiate FileSaver from seFileSaver.py and pass it the filename ################################################################# fileName = tkFileDialog.asksaveasfilename(filetypes = [("PY","py")],title = "Save Scene") - if(not fileName): - return - fCheck=Filename(fileName) - #print fCheck.getBasenameWoExtension() - ############################################################################### - # !!!!! See if a module exists by this name... if it does you cannot use this filename !!!!! - ############################################################################### - if(sys.modules.has_key(fCheck.getBasenameWoExtension())): - tkMessageBox.showwarning( + if(not fileName): + return + fCheck=Filename(fileName) + #print fCheck.getBasenameWoExtension() + ############################################################################### + # !!!!! See if a module exists by this name... if it does you cannot use this filename !!!!! + ############################################################################### + if(sys.modules.has_key(fCheck.getBasenameWoExtension())): + tkMessageBox.showwarning( "Save file", "Cannot save with this name because there is a system module with the same name. Please resave as something else." - ) + ) - return - self.CurrentDirName=fileName - fileName=fileName+".py" + return + self.CurrentDirName=fileName + fileName=fileName+".py" f=FileSaver() - self.CurrentFileName=fileName - f.SaveFile(AllScene,fileName,self.CurrentDirName,0) - self.Dirty=0 - self.parent.title('Scene Editor - '+ Filename.fromOsSpecific(self.CurrentFileName).getBasenameWoExtension()) + self.CurrentFileName=fileName + f.SaveFile(AllScene,fileName,self.CurrentDirName,0) + self.Dirty=0 + self.parent.title('Scene Editor - '+ Filename.fromOsSpecific(self.CurrentFileName).getBasenameWoExtension()) pass def loadModel(self): @@ -992,7 +992,7 @@ class myLevelEditor(AppShell): title = 'Load New Model', parent = self.parent) if modelFilename: - self.makeDirty() + self.makeDirty() if not AllScene.loadModel(modelFilename, Filename.fromOsSpecific(modelFilename)): print '----Error! No Such Model File!' pass @@ -1013,9 +1013,9 @@ class myLevelEditor(AppShell): title = 'Load New Actor', parent = self.parent) - + if ActorFilename: - self.makeDirty() + self.makeDirty() if not AllScene.loadActor(ActorFilename, Filename.fromOsSpecific(ActorFilename)): print '----Error! No Such Model File!' pass @@ -1192,24 +1192,24 @@ class myLevelEditor(AppShell): return def addParticleEffect(self,effect_name,effect,node): - AllScene.particleDict[effect_name]=effect - AllScene.particleNodes[effect_name]=node - if not self.ParticleEnable: + AllScene.particleDict[effect_name]=effect + AllScene.particleNodes[effect_name]=node + if not self.ParticleEnable: AllScene.particleNodes[effect_name].setTransparency(True) AllScene.particleNodes[effect_name].setAlphaScale(0) AllScene.particleNodes[effect_name].setBin("fixed",1) - return + return def openParticlePanel(self): if self.particlePanel != None: ## There already has a Particle panel! return - if(len(AllScene.particleDict)==0): - self.particlePanel=seParticlePanel.ParticlePanel() - else: - for effect in AllScene.particleDict: - theeffect=AllScene.particleDict[effect] - self.particlePanel=seParticlePanel.ParticlePanel(particleEffect=theeffect,effectsDict=AllScene.particleDict) + if(len(AllScene.particleDict)==0): + self.particlePanel=seParticlePanel.ParticlePanel() + else: + for effect in AllScene.particleDict: + theeffect=AllScene.particleDict[effect] + self.particlePanel=seParticlePanel.ParticlePanel(particleEffect=theeffect,effectsDict=AllScene.particleDict) pass @@ -1355,7 +1355,7 @@ class myLevelEditor(AppShell): self.menuEdit.entryconfig('Duplicate', state=NORMAL) self.menuEdit.entryconfig('Remove', state=NORMAL) self.menuEdit.entryconfig('Object Properties', state=NORMAL) - if callBack: + if callBack: self.seSession.select(nodePath,fResetAncestry=1) messenger.send('SGE_Update Explorer',[render]) if not taskMgr.hasTaskNamed('seMonitorSelectedNode'): diff --git a/doc/SceneEditor/seForceGroup.py b/doc/SceneEditor/seForceGroup.py index 5b83f767d2..778849150e 100644 --- a/doc/SceneEditor/seForceGroup.py +++ b/doc/SceneEditor/seForceGroup.py @@ -128,7 +128,7 @@ class ForceGroup(DirectObject): file.write(i2+fname + ' = LinearVectorForce(Vec3(%.4f, %.4f, %.4f), %.4f, %d)\n' % (vec[0], vec[1], vec[2], amplitude, massDependent)) elif isinstance(f, AngularForce): if isinstance(f, AngularVectorForce): - vec = f.getLocalVector() - file.write(i2+fname + ' = AngularVectorForce(Vec3(%.4f, %.4f, %.4f))\n' % (vec[0], vec[1], vec[2])) + vec = f.getQuat() + file.write(i2+fname + ' = AngularVectorForce(Quat(%.4f, %.4f, %.4f))\n' % (vec[0], vec[1], vec[2], vec[3])) file.write(i2+fname + '.setActive(%d)\n' % f.getActive()) file.write(i2+targ + '.addForce(%s)\n' % fname) diff --git a/doc/makepanda/makepanda.py b/doc/makepanda/makepanda.py index 40e0a76039..bc5fb084e5 100755 --- a/doc/makepanda/makepanda.py +++ b/doc/makepanda/makepanda.py @@ -483,7 +483,7 @@ for (ver,key) in MAYAVERSIONINFO: print "Checking for "+ver if (OMIT.count(ver)==0): if (sys.platform == "win32"): - if (MAYASDK.has_key(ver)==0): + if (MAYASDK.has_key(ver)==0): MAYASDK[ver]=GetRegistryKey(key, "MAYA_INSTALL_LOCATION") if (MAYASDK[ver] == 0): WARNINGS.append("The registry does not appear to contain a pointer to the "+ver+" SDK.") @@ -491,7 +491,7 @@ for (ver,key) in MAYAVERSIONINFO: OMIT.append(ver) else: MAYASDK[ver] = MAYASDK[ver].replace("\\", "/").rstrip("/") - else: + else: WARNINGS.append(ver+" not yet supported under linux") WARNINGS.append("I have automatically added this command-line option: --no-"+ver.lower()) OMIT.append(ver) @@ -510,7 +510,7 @@ MAXVERSIONINFO = [("MAX6", "SOFTWARE\\Autodesk\\3DSMAX\\6.0", "instal for version,key1,key2,subdir in MAXVERSIONINFO: if (OMIT.count(version)==0): if (sys.platform == "win32"): - if (MAXSDK.has_key(version)==0): + if (MAXSDK.has_key(version)==0): top = GetRegistryKey(key1,key2) if (top == 0): WARNINGS.append("The registry does not appear to contain a pointer to "+version)