From dd31c5dda61a75b575ee93ad05a02bf15f7112c0 Mon Sep 17 00:00:00 2001 From: David Rose Date: Fri, 16 Feb 2001 05:44:09 +0000 Subject: [PATCH] *** empty log message *** --- direct/src/actor/Actor.py | 29 ++++++++++++++++++++--------- 1 file changed, 20 insertions(+), 9 deletions(-) diff --git a/direct/src/actor/Actor.py b/direct/src/actor/Actor.py index 8abc291c91..5722085f9c 100644 --- a/direct/src/actor/Actor.py +++ b/direct/src/actor/Actor.py @@ -615,10 +615,14 @@ class Actor(PandaObject, NodePath): Actor.notify.warning("no lod named %s!" % (lodName)) - def drawInFront(self, frontPartName, backPartName, root=None, + def stackDecals(self, frontPartName, backPartName, root=None, lodName=None): - """drawInFront(self, string, string=None, key=None) - Arrange geometry so the frontPart is drawn properly wrt backPart. + """stackDecals(self, string, string=None, key=None) + + Arrange geometry so the frontPart is drawn as a decal onto + backPart. This assumes that frontPart is mostly coplanar with + and does not extend beyond backPart. + Takes an optional argument root as the start of the search for the given parts. Also takes optional lod name to refine search for the named parts. If root and lod are defined, we search for the given @@ -639,18 +643,25 @@ class Actor(PandaObject, NodePath): if (root == None): root = self + # In case people don't have an up-to-date Panda, we'll fall + # back on DirectRenderTransition. + try: + dt = DecalTransition() + except: + dt = DirectRenderTransition() + # make the back part have the proper transition backPart = root.find("**/" + backPartName) if (backPart.isEmpty()): Actor.notify.warning("no part named %s!" % (backPartName)) else: - (backPart.getBottomArc()).setTransition(DirectRenderTransition()) + backPart.getBottomArc().setTransition(dt) - #reparent the front parts to the back part - frontParts = root.findAllMatches( "**/" + frontPartName) - numFrontParts = frontParts.getNumPaths() - for partNum in range(0, numFrontParts): - (frontParts.getPath(partNum)).reparentTo(backPart) + #reparent the front parts to the back part + frontParts = root.findAllMatches( "**/" + frontPartName) + numFrontParts = frontParts.getNumPaths() + for partNum in range(0, numFrontParts): + (frontParts.getPath(partNum)).reparentTo(backPart) def fixBounds(self, part=None):