From 326cdd21e5b45e5ba3c6188ec0c78db8741a8dfd Mon Sep 17 00:00:00 2001 From: "Asad M. Zaman" Date: Sat, 18 Feb 2006 01:21:44 +0000 Subject: [PATCH] added a few more functions in actor --- direct/src/actor/Actor.py | 25 +++++++++++++++++-------- 1 file changed, 17 insertions(+), 8 deletions(-) diff --git a/direct/src/actor/Actor.py b/direct/src/actor/Actor.py index 0c808c7108..cdd60784e7 100644 --- a/direct/src/actor/Actor.py +++ b/direct/src/actor/Actor.py @@ -191,7 +191,6 @@ class Actor(DirectObject, NodePath): else: # act like a copy constructor - # copy the scene graph elements of other otherCopy = other.copyTo(hidden) otherCopy.detachNode() @@ -346,24 +345,27 @@ class Actor(DirectObject, NodePath): Actor cleanup function """ self.stop() + self.flush() + self.__geomNode.removeNode() + if not self.isEmpty(): + self.removeNode() + def flush(self): + """ + Actor flush function + """ self.__partBundleDict = {} self.__subpartDict = {} self.__sortedLODNames = [] self.__animControlDict = {} self.__controlJoints = {} - self.__geomNode.removeNode() - if self.__LODNode: self.__LODNode.removeNode() self.__LODNode = None self.__hasLOD = 0 - if not self.isEmpty(): - self.removeNode() - # accessing def getAnimControlDict(self): @@ -1583,10 +1585,17 @@ class Actor(DirectObject, NodePath): """ for lodName in other.__partBundleDict.keys(): self.__partBundleDict[lodName] = {} - self.__updateSortedLODNames() + self.__updateSortedLODNames() + # find the lod :Asad: + partLod = self.find("**/" + lodName) + if (partLod == None): + Actor.notify.warning("no lod named: %s" % (lodName)) + return None for partName in other.__partBundleDict[lodName].keys(): # find the part in our tree - partBundle = self.find("**/" + Actor.partPrefix + partName) + #partBundle = self.find("**/" + Actor.partPrefix + partName) + # Asad: changed above line to below + partBundle = partLod.find("**/" + Actor.partPrefix + partName) if (partBundle != None): # store the part bundle self.__partBundleDict[lodName][partName] = partBundle