added smooth wrtReparent support

This commit is contained in:
Darren Ranalli 2007-06-29 21:19:59 +00:00
parent a06907e583
commit ee45d77be1

View File

@ -71,6 +71,7 @@ class DistributedSmoothNode(DistributedNode.DistributedNode,
self.smoother = SmoothMover() self.smoother = SmoothMover()
self.smoothStarted = 0 self.smoothStarted = 0
self.lastSuggestResync = 0 self.lastSuggestResync = 0
self._smoothWrtReparents = False
def delete(self): def delete(self):
DistributedSmoothNodeBase.DistributedSmoothNodeBase.delete(self) DistributedSmoothNodeBase.DistributedSmoothNodeBase.delete(self)
@ -127,6 +128,10 @@ class DistributedSmoothNode(DistributedNode.DistributedNode,
self.forceToTruePosition() self.forceToTruePosition()
self.smoothStarted = 0 self.smoothStarted = 0
def setSmoothWrtReparents(self, flag):
self._smoothWrtReparents = flag
def getSmoothWrtReparents(self):
return self._smoothWrtReparents
def forceToTruePosition(self): def forceToTruePosition(self):
""" """
@ -280,9 +285,13 @@ class DistributedSmoothNode(DistributedNode.DistributedNode,
# We override this NodePath method to force it to # We override this NodePath method to force it to
# automatically reset the smoothing position when we call it. # automatically reset the smoothing position when we call it.
if self.smoothStarted: if self.smoothStarted:
self.forceToTruePosition() if self._smoothWrtReparents:
NodePath.wrtReparentTo(self, parent) self.smoother.handleWrtReparent(self.getParent(), parent)
self.reloadPosition() NodePath.wrtReparentTo(self, parent)
else:
self.forceToTruePosition()
NodePath.wrtReparentTo(self, parent)
self.reloadPosition()
else: else:
NodePath.wrtReparentTo(self, parent) NodePath.wrtReparentTo(self, parent)