*** empty log message ***

This commit is contained in:
Dustin Barnard 2007-09-13 23:53:37 +00:00
parent b3164e9df6
commit 059a2000a2
3 changed files with 29 additions and 14 deletions

View File

@ -54,6 +54,7 @@ class ClusterClient(DirectObject.DirectObject):
# A dictionary of objects that can be accessed by name # A dictionary of objects that can be accessed by name
self.objectMappings = {} self.objectMappings = {}
self.objectHasColor = {}
# a dictionary of name objects and the corresponding names of # a dictionary of name objects and the corresponding names of
# objects they are to control on the server side # objects they are to control on the server side
@ -133,18 +134,21 @@ class ClusterClient(DirectObject.DirectObject):
#print object #print object
if (self.objectMappings.has_key(object)): if (self.objectMappings.has_key(object)):
self.moveObject(self.objectMappings[object],name,serverList, self.moveObject(self.objectMappings[object],name,serverList,
self.controlOffsets[object]) self.controlOffsets[object], self.objectHasColor[object])
#print "running control object" #print "running control object"
return Task.cont 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) self.notify.debug('moving object '+object)
xyz = nodePath.getPos(render) + offset xyz = nodePath.getPos(render) + offset
hpr = nodePath.getHpr(render) hpr = nodePath.getHpr(render)
scale = nodePath.getScale(render) scale = nodePath.getScale(render)
hidden = nodePath.isHidden() hidden = nodePath.isHidden()
color = nodePath.getColor() if (hasColor):
color = nodePath.getColor()
else:
color = [1,1,1,1]
for server in serverList: for server in serverList:
self.serverList[server].sendMoveNamedObject(xyz,hpr,scale,hidden,color,object) self.serverList[server].sendMoveNamedObject(xyz,hpr,scale,hidden,color,object)
@ -176,9 +180,10 @@ class ClusterClient(DirectObject.DirectObject):
return Task.cont return Task.cont
def addNamedObjectMapping(self,object,name): def addNamedObjectMapping(self,object,name,hasColor = True):
if (not self.objectMappings.has_key(name)): if (not self.objectMappings.has_key(name)):
self.objectMappings[name] = object self.objectMappings[name] = object
self.objectHasColor[name] = hasColor
else: else:
self.notify.debug('attempt to add duplicate named object: '+name) self.notify.debug('attempt to add duplicate named object: '+name)
@ -307,13 +312,17 @@ class ClusterClient(DirectObject.DirectObject):
def handleNamedMovement(self, dgi): def handleNamedMovement(self, dgi):
""" Update cameraJig position to reflect latest position """ """ 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) dgi)
#print "name" #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)): if (self.objectMappings.has_key(name)):
self.objectMappings[name].setPosHpr(render, x, y, z, h, p, r) self.objectMappings[name].setPosHpr(render, x, y, z, h, p, r)
self.objectMappings[name].setScale(render,sx,sy,sz) 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): if (hidden):
self.objectMappings[name].hide() self.objectMappings[name].hide()
else: else:

View File

@ -201,12 +201,12 @@ class ClusterMsgHandler:
sx = dgi.getFloat32() sx = dgi.getFloat32()
sy = dgi.getFloat32() sy = dgi.getFloat32()
sz = dgi.getFloat32() sz = dgi.getFloat32()
r = dgi.getFloat32() red = dgi.getFloat32()
g = dgi.getFloat32() g = dgi.getFloat32()
b = dgi.getFloat32() b = dgi.getFloat32()
a = dgi.getFloat32() a = dgi.getFloat32()
hidden = dgi.getBool() 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): def makeSelectedMovementDatagram(self, xyz, hpr, scale):

View File

@ -56,6 +56,7 @@ class ClusterServer(DirectObject.DirectObject):
self.daemon = DirectD() self.daemon = DirectD()
self.objectMappings = {} self.objectMappings = {}
self.objectHasColor = {}
self.controlMappings = {} self.controlMappings = {}
self.controlOffsets = {} self.controlOffsets = {}
@ -97,9 +98,10 @@ class ClusterServer(DirectObject.DirectObject):
return Task.cont return Task.cont
def addNamedObjectMapping(self,object,name): def addNamedObjectMapping(self,object,name,hasColor = True):
if (not self.objectMappings.has_key(name)): if (not self.objectMappings.has_key(name)):
self.objectMappings[name] = object self.objectMappings[name] = object
self.objectHasColor[name] = hasColor
else: else:
self.notify.debug('attempt to add duplicate named object: '+name) self.notify.debug('attempt to add duplicate named object: '+name)
@ -136,17 +138,21 @@ class ClusterServer(DirectObject.DirectObject):
for object in self.controlMappings: for object in self.controlMappings:
name = self.controlMappings[object] name = self.controlMappings[object]
if (self.objectMappings.has_key(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 return Task.cont
def moveObject(self, nodePath, object, offset): def moveObject(self, nodePath, object, offset, hasColor):
self.notify.debug('moving object '+object) self.notify.debug('moving object '+object)
#print "moving object",object #print "moving object",object
xyz = nodePath.getPos(render) + offset xyz = nodePath.getPos(render) + offset
hpr = nodePath.getHpr(render) hpr = nodePath.getHpr(render)
scale = nodePath.getScale(render) scale = nodePath.getScale(render)
color = nodePath.getColor() if (hasColor):
color = nodePath.getColor()
else:
color = [1,1,1,1]
hidden = nodePath.isHidden() hidden = nodePath.isHidden()
datagram = self.msgHandler.makeNamedObjectMovementDatagram(xyz,hpr,scale,color,hidden,object) datagram = self.msgHandler.makeNamedObjectMovementDatagram(xyz,hpr,scale,color,hidden,object)
self.cw.send(datagram, self.lastConnection) self.cw.send(datagram, self.lastConnection)
@ -256,12 +262,12 @@ class ClusterServer(DirectObject.DirectObject):
def handleNamedMovement(self, dgi): def handleNamedMovement(self, dgi):
""" Update cameraJig position to reflect latest position """ """ 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) dgi)
if (self.objectMappings.has_key(name)): if (self.objectMappings.has_key(name)):
self.objectMappings[name].setPosHpr(render, x, y, z, h, p, r) self.objectMappings[name].setPosHpr(render, x, y, z, h, p, r)
self.objectMappings[name].setScale(render,sx,sy,sz) 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): if (hidden):
self.objectMappings[name].hide() self.objectMappings[name].hide()
else: else: