| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125 |
- """DistributedNode module: contains the DistributedNode class"""
- from ShowBaseGlobal import *
- import NodePath
- import DistributedObject
- import Task
- class DistributedNode(DistributedObject.DistributedObject, NodePath.NodePath):
- """Distributed Node class:"""
- def __init__(self, cr):
- try:
- self.DistributedNode_initialized
- except:
- self.DistributedNode_initialized = 1
- DistributedObject.DistributedObject.__init__(self, cr)
- return None
- def disable(self):
- self.reparentTo(hidden)
- DistributedObject.DistributedObject.disable(self)
- def delete(self):
- try:
- self.DistributedNode_deleted
- except:
- self.DistributedNode_deleted = 1
- if not self.isEmpty():
- self.removeNode()
- DistributedObject.DistributedObject.delete(self)
- def generate(self):
- DistributedObject.DistributedObject.generate(self)
- def __cmp__(self, other):
- # DistributedNode inherits from NodePath, which inherits a
- # definition of __cmp__ from FFIExternalObject that uses the
- # NodePath's compareTo() method to compare different
- # NodePaths. But we don't want this behavior for
- # DistributedNodes; DistributedNodes should only be compared
- # pointerwise. A NodePath that happens to reference the same
- # node is still different from the DistributedNode. Thus, we
- # redefine __cmp__ to always return a failed comparison.
- return 1
- ### setParent ###
- def b_setParent(self, parentToken):
- self.setParent(parentToken)
- self.d_setParent(parentToken)
- return None
- def d_setParent(self, parentToken):
- self.sendUpdate("setParent", [parentToken])
- return None
- def setParent(self, parentToken):
- assert(self.cr.token2nodePath.has_key(parentToken))
- parent = self.cr.token2nodePath[parentToken]
- self.wrtReparentTo(parent)
- return None
- ###### set pos and hpr functions #######
- # setX provided by NodePath
- def d_setX(self, x):
- self.sendUpdate("setX", [x])
- # setY provided by NodePath
- def d_setY(self, y):
- self.sendUpdate("setY", [y])
-
- # setZ provided by NodePath
- def d_setZ(self, z):
- self.sendUpdate("setZ", [z])
-
- # setH provided by NodePath
- def d_setH(self, h):
- self.sendUpdate("setH", [h])
-
- # setP provided by NodePath
- def d_setP(self, p):
- self.sendUpdate("setP", [p])
-
- # setR provided by NodePath
- def d_setR(self, r):
- self.sendUpdate("setR", [r])
- def setXY(self, x, y):
- self.setX(x)
- self.setY(y)
- def d_setXY(self, x, y):
- self.sendUpdate("setXY", [x, y])
- def setXZ(self, x, z):
- self.setX(x)
- self.setZ(z)
- def d_setXZ(self, x, z):
- self.sendUpdate("setXZ", [x, z])
- # setPos provided by NodePath
- def d_setPos(self, x, y, z):
- self.sendUpdate("setPos", [x, y, z])
- # setHpr provided by NodePath
- def d_setHpr(self, h, p, r):
- self.sendUpdate("setHpr", [h, p, r])
- def setXYH(self, x, y, h):
- self.setX(x)
- self.setY(y)
- self.setH(h)
- def d_setXYH(self, x, y, h):
- self.sendUpdate("setXYH", [x, y, h])
- def setXYZH(self, x, y, z, h):
- self.setPos(x, y, z)
- self.setH(h)
- def d_setXYZH(self, x, y, z, h):
- self.sendUpdate("setXYZH", [x, y, z, h])
- # setPosHpr provided by NodePath
- def d_setPosHpr(self, x, y, z, h, p, r):
- self.sendUpdate("setPosHpr", [x, y, z, h, p, r])
|