From 059a2000a2a1f1884b91a2368c5dd92608b4abf8 Mon Sep 17 00:00:00 2001 From: Dustin Barnard Date: Thu, 13 Sep 2007 23:53:37 +0000 Subject: [PATCH] *** empty log message *** --- direct/src/cluster/ClusterClient.py | 21 +++++++++++++++------ direct/src/cluster/ClusterMsgs.py | 4 ++-- direct/src/cluster/ClusterServer.py | 18 ++++++++++++------ 3 files changed, 29 insertions(+), 14 deletions(-) diff --git a/direct/src/cluster/ClusterClient.py b/direct/src/cluster/ClusterClient.py index e47053f821..176efbb83f 100644 --- a/direct/src/cluster/ClusterClient.py +++ b/direct/src/cluster/ClusterClient.py @@ -54,6 +54,7 @@ class ClusterClient(DirectObject.DirectObject): # A dictionary of objects that can be accessed by name self.objectMappings = {} + self.objectHasColor = {} # a dictionary of name objects and the corresponding names of # objects they are to control on the server side @@ -133,18 +134,21 @@ class ClusterClient(DirectObject.DirectObject): #print object if (self.objectMappings.has_key(object)): self.moveObject(self.objectMappings[object],name,serverList, - self.controlOffsets[object]) + self.controlOffsets[object], self.objectHasColor[object]) #print "running control object" return Task.cont - def moveObject(self, nodePath, object, serverList, offset): + def moveObject(self, nodePath, object, serverList, offset, hasColor = True): self.notify.debug('moving object '+object) xyz = nodePath.getPos(render) + offset hpr = nodePath.getHpr(render) scale = nodePath.getScale(render) hidden = nodePath.isHidden() - color = nodePath.getColor() + if (hasColor): + color = nodePath.getColor() + else: + color = [1,1,1,1] for server in serverList: self.serverList[server].sendMoveNamedObject(xyz,hpr,scale,hidden,color,object) @@ -176,9 +180,10 @@ class ClusterClient(DirectObject.DirectObject): return Task.cont - def addNamedObjectMapping(self,object,name): + def addNamedObjectMapping(self,object,name,hasColor = True): if (not self.objectMappings.has_key(name)): self.objectMappings[name] = object + self.objectHasColor[name] = hasColor else: self.notify.debug('attempt to add duplicate named object: '+name) @@ -307,13 +312,17 @@ class ClusterClient(DirectObject.DirectObject): def handleNamedMovement(self, dgi): """ Update cameraJig position to reflect latest position """ - (name,x, y, z, h, p, r, sx, sy, sz,r,g,b,a, hidden) = self.msgHandler.parseNamedMovementDatagram( + + (name,x, y, z, h, p, r, sx, sy, sz,red,g,b,a, hidden) = self.msgHandler.parseNamedMovementDatagram( dgi) #print "name" + #if (name == "camNode"): + # print x,y,z,h,p,r, sx, sy, sz,red,g,b,a, hidden if (self.objectMappings.has_key(name)): self.objectMappings[name].setPosHpr(render, x, y, z, h, p, r) self.objectMappings[name].setScale(render,sx,sy,sz) - self.objectMappings[name].setColor(r,g,b,a) + if (self.objectHasColor[name]): + self.objectMappings[name].setColor(red,g,b,a) if (hidden): self.objectMappings[name].hide() else: diff --git a/direct/src/cluster/ClusterMsgs.py b/direct/src/cluster/ClusterMsgs.py index f9bb414685..116e90c28d 100644 --- a/direct/src/cluster/ClusterMsgs.py +++ b/direct/src/cluster/ClusterMsgs.py @@ -201,12 +201,12 @@ class ClusterMsgHandler: sx = dgi.getFloat32() sy = dgi.getFloat32() sz = dgi.getFloat32() - r = dgi.getFloat32() + red = dgi.getFloat32() g = dgi.getFloat32() b = dgi.getFloat32() a = dgi.getFloat32() hidden = dgi.getBool() - return (name,x, y, z, h, p, r, sx, sy, sz, r, g, b, a, hidden) + return (name,x, y, z, h, p, r, sx, sy, sz, red, g, b, a, hidden) def makeSelectedMovementDatagram(self, xyz, hpr, scale): diff --git a/direct/src/cluster/ClusterServer.py b/direct/src/cluster/ClusterServer.py index 1cc215b8bc..d585673510 100644 --- a/direct/src/cluster/ClusterServer.py +++ b/direct/src/cluster/ClusterServer.py @@ -56,6 +56,7 @@ class ClusterServer(DirectObject.DirectObject): self.daemon = DirectD() self.objectMappings = {} + self.objectHasColor = {} self.controlMappings = {} self.controlOffsets = {} @@ -97,9 +98,10 @@ class ClusterServer(DirectObject.DirectObject): return Task.cont - def addNamedObjectMapping(self,object,name): + def addNamedObjectMapping(self,object,name,hasColor = True): if (not self.objectMappings.has_key(name)): self.objectMappings[name] = object + self.objectHasColor[name] = hasColor else: self.notify.debug('attempt to add duplicate named object: '+name) @@ -136,17 +138,21 @@ class ClusterServer(DirectObject.DirectObject): for object in self.controlMappings: name = self.controlMappings[object] if (self.objectMappings.has_key(object)): - self.moveObject(self.objectMappings[object],name,self.controlOffsets[object]) + self.moveObject(self.objectMappings[object],name,self.controlOffsets[object], + self.objectHasColor[object]) return Task.cont - def moveObject(self, nodePath, object, offset): + def moveObject(self, nodePath, object, offset, hasColor): self.notify.debug('moving object '+object) #print "moving object",object xyz = nodePath.getPos(render) + offset hpr = nodePath.getHpr(render) scale = nodePath.getScale(render) - color = nodePath.getColor() + if (hasColor): + color = nodePath.getColor() + else: + color = [1,1,1,1] hidden = nodePath.isHidden() datagram = self.msgHandler.makeNamedObjectMovementDatagram(xyz,hpr,scale,color,hidden,object) self.cw.send(datagram, self.lastConnection) @@ -256,12 +262,12 @@ class ClusterServer(DirectObject.DirectObject): def handleNamedMovement(self, dgi): """ Update cameraJig position to reflect latest position """ - (name,x, y, z, h, p, r,sx,sy,sz, r, g, b, a, hidden) = self.msgHandler.parseNamedMovementDatagram( + (name,x, y, z, h, p, r,sx,sy,sz, red, g, b, a, hidden) = self.msgHandler.parseNamedMovementDatagram( dgi) if (self.objectMappings.has_key(name)): self.objectMappings[name].setPosHpr(render, x, y, z, h, p, r) self.objectMappings[name].setScale(render,sx,sy,sz) - self.objectMappings[name].setColor(r,g,b,a) + self.objectMappings[name].setColor(red,g,b,a) if (hidden): self.objectMappings[name].hide() else: