From 26ea29157cbb75f4653a0b2b84275734c0e978b5 Mon Sep 17 00:00:00 2001 From: Dave Schuyler Date: Fri, 17 Mar 2006 21:41:36 +0000 Subject: [PATCH] formatting --- direct/src/actor/Actor.py | 6 +- direct/src/actor/DistributedActor.py | 4 +- direct/src/cluster/ClusterClient.py | 56 ++++----- direct/src/cluster/ClusterConfig.py | 24 ++-- direct/src/cluster/ClusterMsgs.py | 38 +++--- direct/src/cluster/ClusterServer.py | 44 +++---- direct/src/controls/BattleWalker.py | 14 +-- direct/src/controls/ControlManager.py | 28 ++--- direct/src/controls/DevWalker.py | 22 ++-- direct/src/controls/GravityWalker.py | 2 +- direct/src/controls/InputState.py | 18 +-- direct/src/controls/NonPhysicsWalker.py | 24 ++-- direct/src/controls/ObserverWalker.py | 6 +- direct/src/controls/PhysicsWalker.py | 64 +++++----- direct/src/controls/ShipPilot.py | 82 ++++++------- direct/src/directdevices/DirectFastrak.py | 2 +- direct/src/directdevices/DirectJoybox.py | 32 ++--- direct/src/directdevices/DirectRadamec.py | 8 +- direct/src/directnotify/DirectNotify.py | 6 +- direct/src/directnotify/Logger.py | 10 +- direct/src/directnotify/Notifier.py | 12 +- direct/src/directnotify/RotatingLog.py | 16 +-- direct/src/directscripts/gendocs.py | 26 ++-- direct/src/directscripts/make-panda3d-tgz.py | 4 +- direct/src/directscripts/packpanda.py | 40 +++--- direct/src/directtools/DirectCameraControl.py | 32 ++--- direct/src/directtools/DirectGeometry.py | 6 +- direct/src/directtools/DirectGlobals.py | 12 +- direct/src/directtools/DirectGrid.py | 20 +-- direct/src/directtools/DirectLights.py | 10 +- direct/src/directtools/DirectManipulation.py | 114 +++++++++--------- 31 files changed, 391 insertions(+), 391 deletions(-) diff --git a/direct/src/actor/Actor.py b/direct/src/actor/Actor.py index a5871d63f0..d568fdd79a 100644 --- a/direct/src/actor/Actor.py +++ b/direct/src/actor/Actor.py @@ -395,14 +395,14 @@ class Actor(DirectObject, NodePath): # and sort them every time somebody asks for the list self.__sortedLODNames = self.__partBundleDict.keys() # Reverse sort the doing a string->int - def sortFunc(x,y): + def sortFunc(x, y): if not str(x).isdigit(): smap = {'h':2, 'm':1, 'l':0} - return cmp(smap[y[0]],smap[x[0]]) + return cmp(smap[y[0]], smap[x[0]]) else: - return cmp (int(y),int(x)) + return cmp (int(y), int(x)) self.__sortedLODNames.sort(sortFunc) diff --git a/direct/src/actor/DistributedActor.py b/direct/src/actor/DistributedActor.py index 525bff139d..df599e2a74 100644 --- a/direct/src/actor/DistributedActor.py +++ b/direct/src/actor/DistributedActor.py @@ -31,5 +31,5 @@ class DistributedActor(DistributedNode.DistributedNode, Actor.Actor): Actor.Actor.delete(self) - def loop(self, animName, restart=1, partName=None,fromFrame=None, toFrame=None): - return Actor.Actor.loop(self,animName,restart,partName,fromFrame,toFrame) + def loop(self, animName, restart=1, partName=None, fromFrame=None, toFrame=None): + return Actor.Actor.loop(self, animName, restart, partName, fromFrame, toFrame) diff --git a/direct/src/cluster/ClusterClient.py b/direct/src/cluster/ClusterClient.py index 79ecff2c3b..914e080e7e 100644 --- a/direct/src/cluster/ClusterClient.py +++ b/direct/src/cluster/ClusterClient.py @@ -52,8 +52,8 @@ class ClusterClient(DirectObject.DirectObject): self.serverList = [] self.msgHandler = ClusterMsgHandler(ClusterClient.MGR_NUM, self.notify) for serverConfig in configList: - server = DisplayConnection(self.qcm,serverConfig.serverName, - serverConfig.serverPort,self.msgHandler) + server = DisplayConnection(self.qcm, serverConfig.serverName, + serverConfig.serverPort, self.msgHandler) if server == None: self.notify.error('Could not open %s on %s port %d' % (serverConfig.serverConfigName, @@ -63,7 +63,7 @@ class ClusterClient(DirectObject.DirectObject): self.notify.debug('send cam pos') #server.sendMoveCam(Point3(0), Vec3(0)) self.notify.debug('send cam offset') - server.sendCamOffset(serverConfig.xyz,serverConfig.hpr) + server.sendCamOffset(serverConfig.xyz, serverConfig.hpr) if serverConfig.fFrustum: self.notify.debug('send cam frustum') server.sendCamFrustum(serverConfig.focalLength, @@ -81,7 +81,7 @@ class ClusterClient(DirectObject.DirectObject): self.notify.debug('broadcasting frame time') taskMgr.add(self.synchronizeTimeTask, "synchronizeTimeTask", -40) - def synchronizeTimeTask(self,task): + def synchronizeTimeTask(self, task): frameCount = globalClock.getFrameCount() frameTime = globalClock.getFrameTime() dt = globalClock.getDt() @@ -93,7 +93,7 @@ class ClusterClient(DirectObject.DirectObject): self.notify.debug('adding move cam') taskMgr.add(self.moveCameraTask, "moveCamTask", 49) - def moveCameraTask(self,task): + def moveCameraTask(self, task): self.moveCamera( base.camera.getPos(render), base.camera.getHpr(render)) @@ -102,7 +102,7 @@ class ClusterClient(DirectObject.DirectObject): def moveCamera(self, xyz, hpr): self.notify.debug('moving unsynced camera') for server in self.serverList: - server.sendMoveCam(xyz,hpr) + server.sendMoveCam(xyz, hpr) def startMoveSelectedTask(self): taskMgr.add(self.moveSelectedTask, "moveSelectedTask", 48) @@ -116,7 +116,7 @@ class ClusterClient(DirectObject.DirectObject): scale = VBase3(1) decomposeMatrix(last.getMat(), scale, hpr, xyz) for server in self.serverList: - server.sendMoveSelected(xyz,hpr,scale) + server.sendMoveSelected(xyz, hpr, scale) return Task.cont def getNodePathFindCmd(self, nodePath): @@ -182,7 +182,7 @@ class ClusterClientSync(ClusterClient): def startSwapCoordinatorTask(self): taskMgr.add(self.swapCoordinator, "clientSwapCoordinator", 51) - def swapCoordinator(self,task): + def swapCoordinator(self, task): self.ready = 1 if self.waitForSwap: self.waitForSwap=0 @@ -201,15 +201,15 @@ class ClusterClientSync(ClusterClient): "------------------------------------------END swap") return Task.cont - def moveCamera(self,xyz,hpr): + def moveCamera(self, xyz, hpr): if self.ready: self.notify.debug('moving synced camera') - ClusterClient.moveCamera(self,xyz,hpr) + ClusterClient.moveCamera(self, xyz, hpr) self.waitForSwap=1 class DisplayConnection: - def __init__(self,qcm,serverName,port,msgHandler): + def __init__(self, qcm, serverName, port, msgHandler): self.msgHandler = msgHandler gameServerTimeoutMs = base.config.GetInt( "cluster-server-timeout-ms", 300000) @@ -225,15 +225,15 @@ class DisplayConnection: self.qcr.addConnection(self.tcpConn) self.cw=ConnectionWriter(qcm, 0) - def sendCamOffset(self,xyz,hpr): + def sendCamOffset(self, xyz, hpr): ClusterClient.notify.debug("send cam offset...") - ClusterClient.notify.debug(("packet %d xyz,hpr=%f %f %f %f %f %f" % - (self.msgHandler.packetNumber,xyz[0],xyz[1],xyz[2], - hpr[0],hpr[1],hpr[2]))) + ClusterClient.notify.debug(("packet %d xyz, hpr=%f %f %f %f %f %f" % + (self.msgHandler.packetNumber, xyz[0], xyz[1], xyz[2], + hpr[0], hpr[1], hpr[2]))) datagram = self.msgHandler.makeCamOffsetDatagram(xyz, hpr) self.cw.send(datagram, self.tcpConn) - def sendCamFrustum(self,focalLength, filmSize, filmOffset): + def sendCamFrustum(self, focalLength, filmSize, filmOffset): ClusterClient.notify.info("send cam frustum...") ClusterClient.notify.info( (("packet %d" % self.msgHandler.packetNumber) + @@ -245,23 +245,23 @@ class DisplayConnection: focalLength, filmSize, filmOffset) self.cw.send(datagram, self.tcpConn) - def sendMoveCam(self,xyz,hpr): + def sendMoveCam(self, xyz, hpr): ClusterClient.notify.debug("send cam move...") - ClusterClient.notify.debug(("packet %d xyz,hpr=%f %f %f %f %f %f" % - (self.msgHandler.packetNumber,xyz[0],xyz[1],xyz[2], - hpr[0],hpr[1],hpr[2]))) + ClusterClient.notify.debug(("packet %d xyz, hpr=%f %f %f %f %f %f" % + (self.msgHandler.packetNumber, xyz[0], xyz[1], xyz[2], + hpr[0], hpr[1], hpr[2]))) datagram = self.msgHandler.makeCamMovementDatagram(xyz, hpr) self.cw.send(datagram, self.tcpConn) - def sendMoveSelected(self,xyz,hpr,scale): + def sendMoveSelected(self, xyz, hpr, scale): ClusterClient.notify.debug("send move selected...") ClusterClient.notify.debug( - "packet %d xyz,hpr=%f %f %f %f %f %f %f %f %f" % + "packet %d xyz, hpr=%f %f %f %f %f %f %f %f %f" % (self.msgHandler.packetNumber, - xyz[0],xyz[1],xyz[2], - hpr[0],hpr[1],hpr[2], - scale[0],scale[1],scale[2])) - datagram = self.msgHandler.makeSelectedMovementDatagram(xyz, hpr,scale) + xyz[0], xyz[1], xyz[2], + hpr[0], hpr[1], hpr[2], + scale[0], scale[1], scale[2])) + datagram = self.msgHandler.makeSelectedMovementDatagram(xyz, hpr, scale) self.cw.send(datagram, self.tcpConn) # the following should only be called by a synchronized cluster manger @@ -293,7 +293,7 @@ class DisplayConnection: datagram = self.msgHandler.makeExitDatagram() self.cw.send(datagram, self.tcpConn) - def sendTimeData(self,frameCount, frameTime, dt): + def sendTimeData(self, frameCount, frameTime, dt): ClusterClient.notify.debug("send time data...") datagram = self.msgHandler.makeTimeDataDatagram( frameCount, frameTime, dt) @@ -362,7 +362,7 @@ def createClusterClient(): if serverName == '': base.notify.warning( '%s undefined in Configrc: expected by %s display client.'% - (serverConfigName,clusterConfig)) + (serverConfigName, clusterConfig)) base.notify.warning('%s will not be used.' % serverConfigName) else: # Server port diff --git a/direct/src/cluster/ClusterConfig.py b/direct/src/cluster/ClusterConfig.py index 2ef008f687..260d8f40c6 100644 --- a/direct/src/cluster/ClusterConfig.py +++ b/direct/src/cluster/ClusterConfig.py @@ -28,12 +28,12 @@ ClientConfigs = { 'two-server': [{'display name': 'master', 'display mode': 'client', 'pos': Vec3(0), - #'hpr': Vec3(30,0,0)}, - 'hpr': Vec3(0,0,0)}, + #'hpr': Vec3(30, 0, 0)}, + 'hpr': Vec3(0, 0, 0)}, {'display name': 'la', 'pos': Vec3(0), - #'hpr': Vec3(-30,0,0) - 'hpr': Vec3(0,0,0) + #'hpr': Vec3(-30, 0, 0) + 'hpr': Vec3(0, 0, 0) } ], 'mono-cave': [{'display name': 'la', @@ -418,11 +418,11 @@ ClientConfigs = { 'hpr': Vec3(0), }, {'display name': 'left', - 'pos': Vec3(-.105,0,0), - 'hpr': Vec3(0,0,0)}, + 'pos': Vec3(-.105, 0, 0), + 'hpr': Vec3(0, 0, 0)}, {'display name': 'right', - 'pos': Vec3(.105,0,0), - 'hpr': Vec3(0,0,0)} + 'pos': Vec3(.105, 0, 0), + 'hpr': Vec3(0, 0, 0)} ], 'ursula': [{'display name': 'master', 'display mode': 'client', @@ -430,16 +430,16 @@ ClientConfigs = { 'hpr': Vec3(0), }, {'display name': 'l', - 'pos': Vec3(-.105,0,0), - 'hpr': Vec3(0,0,0), + 'pos': Vec3(-.105, 0, 0), + 'hpr': Vec3(0, 0, 0), 'focal length': 15, 'film size': (13.33, 10), #'film offset': (0.105, -2), 'film offset': (0.105, -1), }, {'display name': 'r', - 'pos': Vec3(.105,0,0), - 'hpr': Vec3(0,0,0), + 'pos': Vec3(.105, 0, 0), + 'hpr': Vec3(0, 0, 0), 'focal length': 15, 'film size': (13.33, 10), #'film offset': (-0.105, -2), diff --git a/direct/src/cluster/ClusterMsgs.py b/direct/src/cluster/ClusterMsgs.py index 1191fef91b..2d2daedea6 100644 --- a/direct/src/cluster/ClusterMsgs.py +++ b/direct/src/cluster/ClusterMsgs.py @@ -41,13 +41,13 @@ SERVER_STARTUP_STRING = ( class ClusterMsgHandler: """ClusterMsgHandler: wrapper for PC clusters/multi-piping networking""" - def __init__(self,packetStart, notify): + def __init__(self, packetStart, notify): # packetStart can be used to distinguish which ClusterMsgHandler # sends a given packet. self.packetNumber = packetStart self.notify = notify - def nonBlockingRead(self,qcr): + def nonBlockingRead(self, qcr): """ Return a datagram iterator and type if data is available on the queued connection reader @@ -65,9 +65,9 @@ class ClusterMsgHandler: dgi = None type = CLUSTER_NONE # Note, return datagram to keep a handle on the data - return (datagram, dgi,type) + return (datagram, dgi, type) - def blockingRead(self,qcr): + def blockingRead(self, qcr): """ Block until data is available on the queued connection reader. Returns a datagram iterator and type @@ -88,14 +88,14 @@ class ClusterMsgHandler: # Note, return datagram to keep a handle on the data return (datagram, dgi, type) - def readHeader(self,datagram): + def readHeader(self, datagram): dgi = PyDatagramIterator(datagram) number = dgi.getUint32() type = dgi.getUint8() - self.notify.debug("Packet %d type %d received" % (number,type)) - return (dgi,type) + self.notify.debug("Packet %d type %d received" % (number, type)) + return (dgi, type) - def makeCamOffsetDatagram(self,xyz,hpr): + def makeCamOffsetDatagram(self, xyz, hpr): datagram = PyDatagram() datagram.addUint32(self.packetNumber) self.packetNumber = self.packetNumber + 1 @@ -115,10 +115,10 @@ class ClusterMsgHandler: h=dgi.getFloat32() p=dgi.getFloat32() r=dgi.getFloat32() - self.notify.debug('new offset=%f %f %f %f %f %f' % (x,y,z,h,p,r)) - return (x,y,z,h,p,r) + self.notify.debug('new offset=%f %f %f %f %f %f' % (x, y, z, h, p, r)) + return (x, y, z, h, p, r) - def makeCamFrustumDatagram(self,focalLength, filmSize, filmOffset): + def makeCamFrustumDatagram(self, focalLength, filmSize, filmOffset): datagram = PyDatagram() datagram.addUint32(self.packetNumber) self.packetNumber = self.packetNumber + 1 @@ -133,13 +133,13 @@ class ClusterMsgHandler: def parseCamFrustumDatagram(self, dgi): focalLength = dgi.getFloat32() filmSize = (dgi.getFloat32(), dgi.getFloat32()) - filmOffset = (dgi.getFloat32(),dgi.getFloat32()) + filmOffset = (dgi.getFloat32(), dgi.getFloat32()) self.notify.debug('fl, fs, fo=%f, (%f, %f), (%f, %f)' % (focalLength, filmSize[0], filmSize[1], filmOffset[0], filmOffset[1])) return (focalLength, filmSize, filmOffset) - def makeCamMovementDatagram(self,xyz,hpr): + def makeCamMovementDatagram(self, xyz, hpr): datagram = PyDatagram() datagram.addUint32(self.packetNumber) self.packetNumber = self.packetNumber + 1 @@ -160,10 +160,10 @@ class ClusterMsgHandler: p=dgi.getFloat32() r=dgi.getFloat32() self.notify.debug((' new position=%f %f %f %f %f %f' % - (x,y,z,h,p,r))) - return (x,y,z,h,p,r) + (x, y, z, h, p, r))) + return (x, y, z, h, p, r) - def makeSelectedMovementDatagram(self,xyz,hpr,scale): + def makeSelectedMovementDatagram(self, xyz, hpr, scale): datagram = PyDatagram() datagram.addUint32(self.packetNumber) self.packetNumber = self.packetNumber + 1 @@ -190,8 +190,8 @@ class ClusterMsgHandler: sy=dgi.getFloat32() sz=dgi.getFloat32() self.notify.debug(' new position=%f %f %f %f %f %f %f %f %f' % - (x,y,z,h,p,r,sx,sy,sz)) - return (x,y,z,h,p,r,sx,sy,sz) + (x, y, z, h, p, r, sx, sy, sz)) + return (x, y, z, h, p, r, sx, sy, sz) def makeCommandStringDatagram(self, commandString): datagram = PyDatagram() @@ -226,7 +226,7 @@ class ClusterMsgHandler: datagram.addUint8(CLUSTER_EXIT) return datagram - def makeTimeDataDatagram(self,frameCount, frameTime, dt): + def makeTimeDataDatagram(self, frameCount, frameTime, dt): datagram = PyDatagram() datagram.addUint32(self.packetNumber) self.packetNumber = self.packetNumber + 1 diff --git a/direct/src/cluster/ClusterServer.py b/direct/src/cluster/ClusterServer.py index a4591d7d41..58ba19d2e6 100644 --- a/direct/src/cluster/ClusterServer.py +++ b/direct/src/cluster/ClusterServer.py @@ -18,7 +18,7 @@ class ClusterServer(DirectObject.DirectObject): notify = DirectNotifyGlobal.directNotify.newCategory("ClusterServer") MSG_NUM = 2000000 - def __init__(self,cameraJig,camera): + def __init__(self, cameraJig, camera): global clusterServerPort, clusterSyncFlag global clusterDaemonClient, clusterDaemonPort # Store information about the cluster's camera @@ -31,7 +31,7 @@ class ClusterServer(DirectObject.DirectObject): self.qcm = QueuedConnectionManager() self.qcl = QueuedConnectionListener(self.qcm, 0) self.qcr = QueuedConnectionReader(self.qcm, 0) - self.cw = ConnectionWriter(self.qcm,0) + self.cw = ConnectionWriter(self.qcm, 0) try: port = clusterServerPort except NameError: @@ -68,7 +68,7 @@ class ClusterServer(DirectObject.DirectObject): def startListenerPollTask(self): # Run this task near the start of frame, sometime after the dataLoop - taskMgr.add(self.listenerPollTask, "serverListenerPollTask",-40) + taskMgr.add(self.listenerPollTask, "serverListenerPollTask", -40) def listenerPollTask(self, task): """ Task to listen for a new connection from the client """ @@ -78,7 +78,7 @@ class ClusterServer(DirectObject.DirectObject): rendezvous = PointerToConnection() netAddress = NetAddress() newConnection = PointerToConnection() - if self.qcl.getNewConnection(rendezvous,netAddress,newConnection): + if self.qcl.getNewConnection(rendezvous, netAddress, newConnection): # Crazy dereferencing newConnection=newConnection.p() self.qcr.addConnection(newConnection) @@ -101,7 +101,7 @@ class ClusterServer(DirectObject.DirectObject): def _readerPollTask(self, state): """ Non blocking task to read all available datagrams """ while 1: - (datagram, dgi,type) = self.msgHandler.nonBlockingRead(self.qcr) + (datagram, dgi, type) = self.msgHandler.nonBlockingRead(self.qcr) # Queue is empty, done for now if type is CLUSTER_NONE: break @@ -118,9 +118,9 @@ class ClusterServer(DirectObject.DirectObject): type = CLUSTER_NONE while type != CLUSTER_CAM_MOVEMENT: # Block until you get a new datagram - (datagram,dgi,type) = self.msgHandler.blockingRead(self.qcr) + (datagram, dgi, type) = self.msgHandler.blockingRead(self.qcr) # Process datagram - self.handleDatagram(dgi,type) + self.handleDatagram(dgi, type) return Task.cont def startSwapCoordinator(self): @@ -133,8 +133,8 @@ class ClusterServer(DirectObject.DirectObject): self.sendSwapReady() # Wait for swap command (processing any intermediate datagrams) while 1: - (datagram,dgi,type) = self.msgHandler.blockingRead(self.qcr) - self.handleDatagram(dgi,type) + (datagram, dgi, type) = self.msgHandler.blockingRead(self.qcr) + self.handleDatagram(dgi, type) if type == CLUSTER_SWAP_NOW: break return Task.cont @@ -176,35 +176,35 @@ class ClusterServer(DirectObject.DirectObject): return type # Server specific tasks - def handleCamOffset(self,dgi): + def handleCamOffset(self, dgi): """ Set offset of camera from cameraJig """ - (x,y,z,h,p,r) = self.msgHandler.parseCamOffsetDatagram(dgi) + (x, y, z, h, p, r) = self.msgHandler.parseCamOffsetDatagram(dgi) self.lens.setIodOffset(x) - self.lens.setViewHpr(h,p,r) + self.lens.setViewHpr(h, p, r) - def handleCamFrustum(self,dgi): + def handleCamFrustum(self, dgi): """ Adjust camera frustum based on parameters sent by client """ - (fl,fs,fo) = self.msgHandler.parseCamFrustumDatagram(dgi) + (fl, fs, fo) = self.msgHandler.parseCamFrustumDatagram(dgi) self.lens.setFocalLength(fl) self.lens.setFilmSize(fs[0], fs[1]) self.lens.setFilmOffset(fo[0], fo[1]) - def handleCamMovement(self,dgi): + def handleCamMovement(self, dgi): """ Update cameraJig position to reflect latest position """ - (x,y,z,h,p,r) = self.msgHandler.parseCamMovementDatagram(dgi) - self.cameraJig.setPosHpr(render,x,y,z,h,p,r) + (x, y, z, h, p, r) = self.msgHandler.parseCamMovementDatagram(dgi) + self.cameraJig.setPosHpr(render, x, y, z, h, p, r) self.fPosReceived = 1 - def handleSelectedMovement(self,dgi): + def handleSelectedMovement(self, dgi): """ Update cameraJig position to reflect latest position """ - (x,y,z,h,p,r,sx,sy,sz) = self.msgHandler.parseSelectedMovementDatagram( + (x, y, z, h, p, r, sx, sy, sz) = self.msgHandler.parseSelectedMovementDatagram( dgi) if last: - last.setPosHprScale(x,y,z,h,p,r,sx,sy,sz) + last.setPosHprScale(x, y, z, h, p, r, sx, sy, sz) - def handleTimeData(self,dgi): + def handleTimeData(self, dgi): """ Update cameraJig position to reflect latest position """ - (frameCount,frameTime,dt) = self.msgHandler.parseTimeDataDatagram(dgi) + (frameCount, frameTime, dt) = self.msgHandler.parseTimeDataDatagram(dgi) # Use frame time from client for both real and frame time globalClock.setFrameCount(frameCount) globalClock.setFrameTime(frameTime) diff --git a/direct/src/controls/BattleWalker.py b/direct/src/controls/BattleWalker.py index 5fbe0abfb2..25385a8cd0 100755 --- a/direct/src/controls/BattleWalker.py +++ b/direct/src/controls/BattleWalker.py @@ -11,13 +11,13 @@ def ToggleStrafe(): def SetStrafe(status): global BattleStrafe BattleStrafe = status - + class BattleWalker(GravityWalker.GravityWalker): def __init__(self): GravityWalker.GravityWalker.__init__(self) self.slideSpeed = 0 self.advanceSpeed = 0 - + def getSpeeds(self): return (self.speed, self.rotationSpeed, self.slideSpeed, self.advanceSpeed) @@ -37,7 +37,7 @@ class BattleWalker(GravityWalker.GravityWalker): # Determine what the speeds are based on the buttons: self.speed=(forward and self.avatarControlForwardSpeed or reverse and -self.avatarControlReverseSpeed) - # Slide speed is a scaled down version of forward speed + # Slide speed is a scaled down version of forward speed self.slideSpeed=(slideLeft and -self.avatarControlForwardSpeed or slideRight and self.avatarControlForwardSpeed) * 0.5 self.rotationSpeed=not (slideLeft or slideRight) and ( @@ -108,7 +108,7 @@ class BattleWalker(GravityWalker.GravityWalker): # Consider commenting out this normalize. If you do so # then going up and down slops is a touch slower and # steeper terrain can cut the movement in half. Without - # the normalize the movement is slowed by the cosine of + # the normalize the movement is slowed by the cosine of # the slope (i.e. it is multiplied by the sign as a # side effect of the cross product above). forward.normalize() @@ -151,12 +151,12 @@ class BattleWalker(GravityWalker.GravityWalker): slide = inputState.isSet("slide") jump = inputState.isSet("jump") # Determine what the speeds are based on the buttons: - self.advanceSpeed=(forward and self.avatarControlForwardSpeed or + self.advanceSpeed=(forward and self.avatarControlForwardSpeed or reverse and -self.avatarControlReverseSpeed) if run and self.advanceSpeed>0.0: self.advanceSpeed*=2.0 #*# # Should fSlide be renamed slideButton? - self.slideSpeed=.15*(turnLeft and -self.avatarControlForwardSpeed or + self.slideSpeed=.15*(turnLeft and -self.avatarControlForwardSpeed or turnRight and self.avatarControlForwardSpeed) print 'slideSpeed: ', self.slideSpeed self.rotationSpeed=0 @@ -261,7 +261,7 @@ class BattleWalker(GravityWalker.GravityWalker): distance = 0 # Take a step in the direction of our previous heading. - self.vel=Vec3(Vec3.forward() * distance + + self.vel=Vec3(Vec3.forward() * distance + Vec3.right() * slideDistance) if self.vel != Vec3.zero() or self.priorParent != Vec3.zero(): # rotMat is the rotation matrix corresponding to diff --git a/direct/src/controls/ControlManager.py b/direct/src/controls/ControlManager.py index 8003af38e6..3c0007daa6 100755 --- a/direct/src/controls/ControlManager.py +++ b/direct/src/controls/ControlManager.py @@ -29,10 +29,10 @@ class ControlManager: self.isEnabled = 1 #self.monitorTask = taskMgr.add(self.monitor, "ControlManager-%s"%(id(self)), priority=-1) inputState.watch("run", "running-on", "running-off") - + inputState.watchWithModifiers("forward", "arrow_up") inputState.watch("forward", "force-forward", "force-forward-stop") - + inputState.watchWithModifiers("reverse", "arrow_down") inputState.watchWithModifiers("reverse", "mouse4") @@ -65,9 +65,9 @@ class ControlManager: controls is an avatar control system. name is any key that you want to use to refer to the the controls later (e.g. using the use() call). - + Add a control instance to the list of available control systems. - + See also: use(). """ assert self.notify.debugCall(id(self)) @@ -85,11 +85,11 @@ class ControlManager: def remove(self, name): """ name is any key that was used to refer to the - the controls when they were added (e.g. + the controls when they were added (e.g. using the add(, ) call). - + Remove a control instance from the list of available control systems. - + See also: add(). """ assert self.notify.debugCall(id(self)) @@ -108,13 +108,13 @@ class ControlManager: def unlockControls(self): if hasattr(self, "ignoreUse"): del self.ignoreUse - + def use(self, name, avatar): """ name is a key (string) that was previously passed to add(). - + Use a previously added control system. - + See also: add(). """ assert self.notify.debugCall(id(self)) @@ -162,9 +162,9 @@ class ControlManager: if self.wantWASD: inputState.ignore("slideLeft") inputState.ignore("slideRight") - + #self.monitorTask.remove() - + def getSpeeds(self): return self.currentControls.getSpeeds() @@ -194,7 +194,7 @@ class ControlManager: assert self.notify.debugCall(id(self)) self.isEnabled = 1 self.currentControls.enableAvatarControls() - + def disable(self): assert self.notify.debugCall(id(self)) self.isEnabled = 0 @@ -219,7 +219,7 @@ class ControlManager: self.enableJumpCounter-=1 if self.enableJumpCounter <= 0: inputState.force("jump", 0) - + def monitor(self, foo): #assert(self.debugPrint("monitor()")) #if 1: diff --git a/direct/src/controls/DevWalker.py b/direct/src/controls/DevWalker.py index 724c8201d9..eb859c2b61 100755 --- a/direct/src/controls/DevWalker.py +++ b/direct/src/controls/DevWalker.py @@ -56,11 +56,11 @@ class DevWalker(DirectObject.DirectObject): def setWallBitMask(self, bitMask): pass - + def setFloorBitMask(self, bitMask): pass - def initializeCollisions(self, collisionTraverser, avatarNodePath, + def initializeCollisions(self, collisionTraverser, avatarNodePath, wallCollideMask, floorCollideMask, avatarRadius = 1.4, floorOffset = 1.0, reach = 1.0): assert not avatarNodePath.isEmpty() @@ -79,7 +79,7 @@ class DevWalker(DirectObject.DirectObject): def setCollisionsActive(self, active = 1): pass - + def placeOnFloor(self): pass @@ -111,21 +111,21 @@ class DevWalker(DirectObject.DirectObject): run = inputState.isSet("run") and self.runMultiplier or 1.0 # Determine what the speeds are based on the buttons: self.speed=( - (forward and self.avatarControlForwardSpeed or + (forward and self.avatarControlForwardSpeed or reverse and -self.avatarControlReverseSpeed)) self.liftSpeed=( - (levitateUp and self.avatarControlForwardSpeed or + (levitateUp and self.avatarControlForwardSpeed or levitateDown and -self.avatarControlReverseSpeed)) self.slideSpeed=( - (slideLeft and -self.avatarControlForwardSpeed) or + (slideLeft and -self.avatarControlForwardSpeed) or (slideRight and self.avatarControlForwardSpeed)) self.rotationSpeed=( (turnLeft and self.avatarControlRotateSpeed) or (turnRight and -self.avatarControlRotateSpeed)) - + if self.wantDebugIndicator: self.displayDebugInfo() - + # Check to see if we're moving at all: if self.speed or self.liftSpeed or self.slideSpeed or self.rotationSpeed: # How far did we move based on the amount of time elapsed? @@ -136,8 +136,8 @@ class DevWalker(DirectObject.DirectObject): rotation = dt * self.rotationSpeed # Take a step in the direction of our previous heading. - self.vel=Vec3(Vec3.forward() * distance + - Vec3.up() * lift + + self.vel=Vec3(Vec3.forward() * distance + + Vec3.up() * lift + Vec3.right() * slideDistance) if self.vel != Vec3.zero(): # rotMat is the rotation matrix corresponding to @@ -172,7 +172,7 @@ class DevWalker(DirectObject.DirectObject): if self.task: self.task.remove() self.task = None - + if __debug__: def debugPrint(self, message): """for debugging""" diff --git a/direct/src/controls/GravityWalker.py b/direct/src/controls/GravityWalker.py index cde299b210..46ea810731 100755 --- a/direct/src/controls/GravityWalker.py +++ b/direct/src/controls/GravityWalker.py @@ -526,7 +526,7 @@ class GravityWalker(DirectObject.DirectObject): # Consider commenting out this normalize. If you do so # then going up and down slops is a touch slower and # steeper terrain can cut the movement in half. Without - # the normalize the movement is slowed by the cosine of + # the normalize the movement is slowed by the cosine of # the slope (i.e. it is multiplied by the sign as a # side effect of the cross product above). forward.normalize() diff --git a/direct/src/controls/InputState.py b/direct/src/controls/InputState.py index 3eb7e477c0..ebf6b69151 100755 --- a/direct/src/controls/InputState.py +++ b/direct/src/controls/InputState.py @@ -13,7 +13,7 @@ class InputState(DirectObject.DirectObject): to use it:) If in doubt, don't use this class and listen for events instead. """ - + notify = DirectNotifyGlobal.directNotify.newCategory("InputState") def __init__(self): @@ -21,10 +21,10 @@ class InputState(DirectObject.DirectObject): assert self.debugPrint("InputState()") self.watching = {} self.forcing = {} - + def delete(self): self.ignoreAll() - + def watch(self, name, eventOn, eventOff, default = 0): """ name is any string (or actually any valid dictionary key). @@ -57,21 +57,21 @@ class InputState(DirectObject.DirectObject): 'control-alt-%s', 'shift-%s',) for pattern in patterns: self.watch(name, pattern % event, '%s-up' % event, default) - + def force(self, name, value): """ Force isSet(name) to return value. See Also: unforce() """ self.forcing[name] = value - + def unforce(self, name): """ Stop forcing a value. See Also: force() """ del self.forcing[name] - + def ignore(self, name): """ The opposite of watch(name, ...) @@ -83,7 +83,7 @@ class InputState(DirectObject.DirectObject): DirectObject.DirectObject.ignore(self, eventOff) del self.watching[name] del self.state[name] - + def set(self, name, isSet): assert self.debugPrint("set(name=%s, isSet=%s)"%(name, isSet)) self.state[name] = isSet @@ -91,7 +91,7 @@ class InputState(DirectObject.DirectObject): # be the same name that messenger used to call InputState.set() # this avoids running in circles: messenger.send("InputState-%s"%(name,), [isSet]) - + def isSet(self, name): """ returns 0, 1 @@ -101,7 +101,7 @@ class InputState(DirectObject.DirectObject): if r is not None: return r return self.state.get(name, 0) - + def debugPrint(self, message): """for debugging""" return self.notify.debug( diff --git a/direct/src/controls/NonPhysicsWalker.py b/direct/src/controls/NonPhysicsWalker.py index 7f96046da5..7d3706fa0a 100755 --- a/direct/src/controls/NonPhysicsWalker.py +++ b/direct/src/controls/NonPhysicsWalker.py @@ -112,7 +112,7 @@ class NonPhysicsWalker(DirectObject.DirectObject): # and float above them as we go down. I increased this # from 8.0 to 16.0 to prevent this self.lifter.setMaxVelocity(16.0) - + self.pusher.addCollider(self.cSphereNodePath, avatarNodePath) self.lifter.addCollider(self.cRayNodePath, avatarNodePath) @@ -150,11 +150,11 @@ class NonPhysicsWalker(DirectObject.DirectObject): # Now that we have disabled collisions, make one more pass # right now to ensure we aren't standing in a wall. self.oneTimeCollide() - + def placeOnFloor(self): """ Make a reasonable effor to place the avatar on the ground. - For example, this is useful when switching away from the + For example, this is useful when switching away from the current walker. """ # With these on, getAirborneHeight is not returning the correct value so @@ -193,11 +193,11 @@ class NonPhysicsWalker(DirectObject.DirectObject): slide = inputState.isSet(self.slideName) or 0 #jump = inputState.isSet("jump") # Determine what the speeds are based on the buttons: - self.speed=(forward and self.avatarControlForwardSpeed or + self.speed=(forward and self.avatarControlForwardSpeed or reverse and -self.avatarControlReverseSpeed) # Should fSlide be renamed slideButton? self.slideSpeed=slide and ( - (turnLeft and -self.avatarControlForwardSpeed) or + (turnLeft and -self.avatarControlForwardSpeed) or (turnRight and self.avatarControlForwardSpeed)) self.rotationSpeed=not slide and ( (turnLeft and self.avatarControlRotateSpeed) or @@ -212,7 +212,7 @@ class NonPhysicsWalker(DirectObject.DirectObject): messenger.send("walkerIsOutOfWorld", [self.avatarNodePath]) self._calcSpeeds() - + if __debug__: debugRunning = inputState.isSet("debugRunning") if debugRunning: @@ -237,7 +237,7 @@ class NonPhysicsWalker(DirectObject.DirectObject): rotation = dt * self.rotationSpeed # Take a step in the direction of our previous heading. - self.vel=Vec3(Vec3.forward() * distance + + self.vel=Vec3(Vec3.forward() * distance + Vec3.right() * slideDistance) if self.vel != Vec3.zero(): # rotMat is the rotation matrix corresponding to @@ -249,16 +249,16 @@ class NonPhysicsWalker(DirectObject.DirectObject): messenger.send("avatarMoving") else: self.vel.set(0.0, 0.0, 0.0) - + self.__oldPosDelta = self.avatarNodePath.getPosDelta(render) self.__oldDt = dt self.worldVelocity = self.__oldPosDelta*(1/self.__oldDt) - + return Task.cont - + def doDeltaPos(self): assert self.debugPrint("doDeltaPos()") - + def reset(self): assert self.debugPrint("reset()") @@ -285,7 +285,7 @@ class NonPhysicsWalker(DirectObject.DirectObject): assert self.debugPrint("disableAvatarControls") taskName = "AvatarControls-%s"%(id(self),) taskMgr.remove(taskName) - + if __debug__: def debugPrint(self, message): """for debugging""" diff --git a/direct/src/controls/ObserverWalker.py b/direct/src/controls/ObserverWalker.py index 8d21034f85..2bd2613365 100755 --- a/direct/src/controls/ObserverWalker.py +++ b/direct/src/controls/ObserverWalker.py @@ -52,16 +52,16 @@ class ObserverWalker(NonPhysicsWalker.NonPhysicsWalker): self.pusher = CollisionHandlerPusher() self.pusher.setInPattern("enter%in") self.pusher.setOutPattern("exit%in") - + self.pusher.addCollider(self.cSphereNodePath, avatarNodePath) # activate the collider with the traverser and pusher self.setCollisionsActive(1) - + class Foo: def hasContact(self): return 1 - + self.lifter = Foo() def deleteCollisions(self): diff --git a/direct/src/controls/PhysicsWalker.py b/direct/src/controls/PhysicsWalker.py index bd598a9c01..faada5305d 100755 --- a/direct/src/controls/PhysicsWalker.py +++ b/direct/src/controls/PhysicsWalker.py @@ -28,10 +28,10 @@ class PhysicsWalker(DirectObject.DirectObject): notify = DirectNotifyGlobal.directNotify.newCategory("PhysicsWalker") wantDebugIndicator = base.config.GetBool('want-avatar-physics-indicator', 0) wantAvatarPhysicsIndicator = base.config.GetBool('want-avatar-physics-indicator', 0) - + useLifter = 0 useHeightRay = 0 - + # special methods def __init__(self, gravity = -32.1740, standableGround=0.707, hardLandingForce=16.0): @@ -41,7 +41,7 @@ class PhysicsWalker(DirectObject.DirectObject): self.__gravity=gravity self.__standableGround=standableGround self.__hardLandingForce=hardLandingForce - + self.needToDeltaPos = 0 self.physVelocityIndicator=None self.avatarControlForwardSpeed=0 @@ -58,7 +58,7 @@ class PhysicsWalker(DirectObject.DirectObject): self.__slideSpeed=0.0 self.__vel=Vec3(0.0) self.collisionsActive = 0 - + self.isAirborne = 0 self.highMark = 0 @@ -70,14 +70,14 @@ class PhysicsWalker(DirectObject.DirectObject): from pandac.PandaModules import * from direct.interval.IntervalGlobal import * from toontown.coghq import MovingPlatform - + if hasattr(self, "platform"): # Remove the prior instantiation: self.moveIval.pause() del self.moveIval self.platform.destroy() del self.platform - + model = loader.loadModelCopy('phase_9/models/cogHQ/platform1') fakeId = id(self) self.platform = MovingPlatform.MovingPlatform() @@ -263,16 +263,16 @@ class PhysicsWalker(DirectObject.DirectObject): #fnp.remove() return avatarNodePath - def initializeCollisions(self, collisionTraverser, avatarNodePath, - wallBitmask, floorBitmask, + def initializeCollisions(self, collisionTraverser, avatarNodePath, + wallBitmask, floorBitmask, avatarRadius = 1.4, floorOffset = 1.0, reach = 1.0): """ Set up the avatar collisions """ assert self.debugPrint("initializeCollisions()") - + assert not avatarNodePath.isEmpty() - + self.cTrav = collisionTraverser self.floorOffset = floorOffset = 7.0 @@ -356,7 +356,7 @@ class PhysicsWalker(DirectObject.DirectObject): del self.cSphereNodePath del self.pusher - + del self.getAirborneHeight def setCollisionsActive(self, active = 1): @@ -382,11 +382,11 @@ class PhysicsWalker(DirectObject.DirectObject): assert(self.debugPrint("getCollisionsActive() returning=%s"%( self.collisionsActive,))) return self.collisionsActive - + def placeOnFloor(self): """ Make a reasonable effort to place the avatar on the ground. - For example, this is useful when switching away from the + For example, this is useful when switching away from the current walker. """ self.oneTimeCollide() @@ -415,7 +415,7 @@ class PhysicsWalker(DirectObject.DirectObject): For debug use. """ onScreenDebug.add("w controls", "PhysicsWalker") - + if self.useLifter: onScreenDebug.add("w airborneHeight", self.lifter.getAirborneHeight()) onScreenDebug.add("w isOnGround", self.lifter.isOnGround()) @@ -443,14 +443,14 @@ class PhysicsWalker(DirectObject.DirectObject): #rotAvatarToPhys=Mat3.rotateMatNormaxis(-self.avatarNodePath.getH(), Vec3.up()) #rotPhysToAvatar=Mat3.rotateMatNormaxis(self.avatarNodePath.getH(), Vec3.up()) contact=self.actorNode.getContactVector() - + # hack fix for falling through the floor: if contact==Vec3.zero() and self.avatarNodePath.getZ()<-50.0: # DCR: don't reset X and Y; allow player to move self.reset() self.avatarNodePath.setZ(50.0) messenger.send("walkerIsOutOfWorld", [self.avatarNodePath]) - + if self.wantDebugIndicator: self.displayDebugInfo() @@ -464,14 +464,14 @@ class PhysicsWalker(DirectObject.DirectObject): slideRight = 0#inputState.isSet("slideRight") jump = inputState.isSet("jump") # Determine what the speeds are based on the buttons: - self.__speed=(forward and self.avatarControlForwardSpeed or + self.__speed=(forward and self.avatarControlForwardSpeed or reverse and -self.avatarControlReverseSpeed) avatarSlideSpeed=self.avatarControlForwardSpeed*0.5 #self.__slideSpeed=slide and ( - # (turnLeft and -avatarSlideSpeed) or + # (turnLeft and -avatarSlideSpeed) or # (turnRight and avatarSlideSpeed)) self.__slideSpeed=( - (slideLeft and -avatarSlideSpeed) or + (slideLeft and -avatarSlideSpeed) or (slideRight and avatarSlideSpeed)) self.__rotationSpeed=not slide and ( (turnLeft and self.avatarControlRotateSpeed) or @@ -502,13 +502,13 @@ class PhysicsWalker(DirectObject.DirectObject): if self.wantDebugIndicator: onScreenDebug.add("posDelta1", self.avatarNodePath.getPosDelta(render).pPrintValues()) - + if 0: onScreenDebug.add("posDelta3", render.getRelativeVector( self.avatarNodePath, self.avatarNodePath.getPosDelta(render)).pPrintValues()) - + if 0: onScreenDebug.add("gravity", self.gravity.getLocalVector().pPrintValues()) @@ -516,7 +516,7 @@ class PhysicsWalker(DirectObject.DirectObject): self.priorParent.getLocalVector().pPrintValues()) onScreenDebug.add("avatarViscosity", "% 10.4f"%(self.avatarViscosity.getCoef(),)) - + onScreenDebug.add("physObject pos", physObject.getPosition().pPrintValues()) onScreenDebug.add("physObject hpr", @@ -531,7 +531,7 @@ class PhysicsWalker(DirectObject.DirectObject): "% 10.4f"%physObject.getVelocity().length()) if 0: - onScreenDebug.add("posDelta4", + onScreenDebug.add("posDelta4", self.priorParentNp.getRelativeVector( render, self.avatarNodePath.getPosDelta(render)).pPrintValues()) @@ -636,7 +636,7 @@ class PhysicsWalker(DirectObject.DirectObject): self.__oldAirborneHeight=airborneHeight moveToGround = Vec3.zero() - if not self.useHeightRay or self.isAirborne: + if not self.useHeightRay or self.isAirborne: # ...the airborne check is a hack to stop sliding. self.phys.doPhysics(dt) if __debug__: @@ -662,9 +662,9 @@ class PhysicsWalker(DirectObject.DirectObject): # update pos: # Take a step in the direction of our previous heading. self.__vel=Vec3( - Vec3.forward() * distance + + Vec3.forward() * distance + Vec3.right() * slideDistance) - + # rotMat is the rotation matrix corresponding to # our previous heading. rotMat=Mat3.rotateMatNormaxis(self.avatarNodePath.getH(), Vec3.up()) @@ -690,20 +690,20 @@ class PhysicsWalker(DirectObject.DirectObject): # Clear the contact vector so we can tell if we contact something next frame: self.actorNode.setContactVector(Vec3.zero()) return Task.cont - + def doDeltaPos(self): assert self.debugPrint("doDeltaPos()") self.needToDeltaPos = 1 - + def setPriorParentVector(self): assert self.debugPrint("doDeltaPos()") - + print "self.__oldDt", self.__oldDt, "self.__oldPosDelta", self.__oldPosDelta if __debug__: onScreenDebug.add("__oldDt", "% 10.4f"%self.__oldDt) onScreenDebug.add("self.__oldPosDelta", self.__oldPosDelta.pPrintValues()) - + velocity = self.__oldPosDelta*(1/self.__oldDt)*4.0 # *4.0 is a hack assert self.debugPrint(" __oldPosDelta=%s"%(self.__oldPosDelta,)) assert self.debugPrint(" velocity=%s"%(velocity,)) @@ -711,7 +711,7 @@ class PhysicsWalker(DirectObject.DirectObject): if __debug__: if self.wantDebugIndicator: onScreenDebug.add("velocity", velocity.pPrintValues()) - + def reset(self): assert self.debugPrint("reset()") self.actorNode.getPhysicsObject().resetPosition(self.avatarNodePath.getPos()) @@ -763,7 +763,7 @@ class PhysicsWalker(DirectObject.DirectObject): self.ignore("control-f3") #*# self.ignore("f3") - + if __debug__: def setupAvatarPhysicsIndicator(self): if self.wantDebugIndicator: diff --git a/direct/src/controls/ShipPilot.py b/direct/src/controls/ShipPilot.py index 7df27acab1..3967ec8b50 100755 --- a/direct/src/controls/ShipPilot.py +++ b/direct/src/controls/ShipPilot.py @@ -28,11 +28,11 @@ class ShipPilot(PhysicsWalker): notify = directNotify.newCategory("PhysicsWalker") wantDebugIndicator = base.config.GetBool( 'want-avatar-physics-indicator', 0) - + useBowSternSpheres = 1 useLifter = 0 useHeightRay = 0 - + # special methods def __init__(self, gravity = -32.1740, standableGround=0.707, hardLandingForce=16.0): @@ -44,7 +44,7 @@ class ShipPilot(PhysicsWalker): self.__gravity=gravity self.__standableGround=standableGround self.__hardLandingForce=hardLandingForce - + self.needToDeltaPos = 0 self.physVelocityIndicator=None self.avatarControlForwardSpeed=0 @@ -61,7 +61,7 @@ class ShipPilot(PhysicsWalker): self.__slideSpeed=0.0 self.__vel=Vec3(0.0) self.collisionsActive = 0 - + self.isAirborne = 0 self.highMark = 0 self.ship = None @@ -85,7 +85,7 @@ class ShipPilot(PhysicsWalker): #self.setupShip() self.setupPhysics(ship) self.ship = ship - + #*# Debug: if not hasattr(ship, "acceleration"): self.ship.acceleration = 60 @@ -211,7 +211,7 @@ class ShipPilot(PhysicsWalker): self.pusher.addCollider( self.cBowSphereNodePath, self.avatarNodePath) - + # Back sphere: self.cSternSphere = CollisionSphere( 0.0, self.backSphereOffset, -5.0, avatarRadius) @@ -232,7 +232,7 @@ class ShipPilot(PhysicsWalker): shipCollWall = self.avatarNodePath.hull.find("**/collision_hull") if not shipCollWall.isEmpty(): shipCollWall.stash() - + def takedownPhysics(self): assert self.debugPrint("takedownPhysics()") if hasattr(self, "phys"): @@ -241,7 +241,7 @@ class ShipPilot(PhysicsWalker): del self.phys if self.ship != None: self.ship.worldVelocity = Vec3.zero() - + def setupPhysics(self, avatarNodePath): assert self.debugPrint("setupPhysics()") if avatarNodePath is None: @@ -269,7 +269,7 @@ class ShipPilot(PhysicsWalker): self.actorNode = physicsActor.node() self.actorNode.getPhysicsObject().setOriented(1) self.actorNode.getPhysical(0).setViscosity(0.1) - + fn=ForceNode("ship gravity") fnp=NodePath(fn) #fnp.reparentTo(physicsActor) @@ -290,7 +290,7 @@ class ShipPilot(PhysicsWalker): fn.addForce(buoyancy) self.phys.addLinearForce(buoyancy) self.buoyancy = buoyancy - + fn=ForceNode("ship keel") fnp=NodePath(fn) #fnp.reparentTo(physicsActor) @@ -299,7 +299,7 @@ class ShipPilot(PhysicsWalker): self.keel=AngularVectorForce(0.0, 0.0, 0.0) fn.addForce(self.keel) self.phys.addAngularForce(self.keel) - + fn=ForceNode("ship priorParent") fnp=NodePath(fn) fnp.reparentTo(render) @@ -309,7 +309,7 @@ class ShipPilot(PhysicsWalker): self.phys.addLinearForce(priorParent) self.priorParentNp = fnp self.priorParent = priorParent - + if 1: fn=ForceNode("ship viscosity") fnp=NodePath(fn) @@ -334,7 +334,7 @@ class ShipPilot(PhysicsWalker): self.nodes.append(fnp) fn.addForce(self.momentumForce) self.phys.addLinearForce(self.momentumForce) - + self.acForce=LinearVectorForce(0.0, 0.0, 0.0) self.acForce.setAmplitude(5) fn=ForceNode("ship avatarControls") @@ -345,11 +345,11 @@ class ShipPilot(PhysicsWalker): self.phys.addLinearForce(self.acForce) #self.phys.removeLinearForce(self.acForce) #fnp.remove() - + if 0 or self.useHeightRay: #self.setupRay(self.floorBitmask, self.avatarRadius) self.setupRay(self.floorBitmask, 0.0) - + #avatarNodePath.reparentTo(render) self.avatarNodePath = avatarNodePath @@ -398,7 +398,7 @@ class ShipPilot(PhysicsWalker): del self.cSphereNodePath del self.pusher - + self.getAirborneHeight = None def setTag(self, key, value): @@ -493,11 +493,11 @@ class ShipPilot(PhysicsWalker): assert self.debugPrint( "getCollisionsActive() returning=%s"%(self.collisionsActive,)) return self.collisionsActive - + def placeOnFloor(self): """ Make a reasonable effort to place the avatar on the ground. - For example, this is useful when switching away from the + For example, this is useful when switching away from the current walker. """ self.oneTimeCollide() @@ -585,7 +585,7 @@ class ShipPilot(PhysicsWalker): ## onScreenDebug.add("w keel vec", ## keel.pPrintValues()) if 0: - onScreenDebug.add("posDelta4", + onScreenDebug.add("posDelta4", self.priorParentNp.getRelativeVector( render, self.avatarNodePath.getPosDelta(render)).pPrintValues()) @@ -621,7 +621,7 @@ class ShipPilot(PhysicsWalker): #rotPhysToAvatar=Mat3.rotateMatNormaxis( # self.avatarNodePath.getH(), Vec3.up()) contact=self.actorNode.getContactVector() - + depth=physObject.getPosition().getZ() if depth < 0.0: # self.buoyancy.setVector(Vec3.zero()) @@ -664,14 +664,14 @@ class ShipPilot(PhysicsWalker): self.sailsDeployed = -1.0 self.__speed = self.ship.acceleration * self.sailsDeployed else: - self.__speed=(forward and self.ship.acceleration or + self.__speed=(forward and self.ship.acceleration or reverse and -self.ship.reverseAcceleration) avatarSlideSpeed=self.ship.acceleration*0.5 #self.__slideSpeed=slide and ( - # (turnLeft and -avatarSlideSpeed) or + # (turnLeft and -avatarSlideSpeed) or # (turnRight and avatarSlideSpeed)) self.__slideSpeed=(forward or reverse) and ( - (slideLeft and -avatarSlideSpeed) or + (slideLeft and -avatarSlideSpeed) or (slideRight and avatarSlideSpeed)) self.__rotationSpeed=not slide and ( (turnLeft and self.ship.turnRate) or @@ -803,7 +803,7 @@ class ShipPilot(PhysicsWalker): assert self.avatarNodePath.getPos().almostEqual(physObject.getPosition(), 0.0001) moveToGround = Vec3.zero() - if not self.useHeightRay or self.isAirborne: + if not self.useHeightRay or self.isAirborne: # ...the airborne check is a hack to stop sliding. self.phys.doPhysics(dt) if __debug__: @@ -814,7 +814,7 @@ class ShipPilot(PhysicsWalker): # moveToGround = Vec3(0.0, 0.0, -airborneHeight) #moveToGround = Vec3(0.0, 0.0, -airborneHeight) moveToGround = Vec3(0.0, 0.0, -self.determineHeight()) - if __debug__: + if __debug__: onScreenDebug.add("phys", "off") #debugTempH=self.avatarNodePath.getH() @@ -830,9 +830,9 @@ class ShipPilot(PhysicsWalker): physVel = physObject.getVelocity() physVelLen = physVel.length() if (physVelLen!=0. - or self.__speed - or self.__slideSpeed - or self.__rotationSpeed + or self.__speed + or self.__slideSpeed + or self.__rotationSpeed or moveToGround!=Vec3.zero()): distance = dt * self.__speed goForward = True @@ -841,11 +841,11 @@ class ShipPilot(PhysicsWalker): distance /= 5 slideDistance = dt * self.__slideSpeed rotation = dt * self.__rotationSpeed - + # update pos: # Take a step in the direction of our previous heading. self.__vel=Vec3( - Vec3.forward() * distance + + Vec3.forward() * distance + Vec3.right() * slideDistance) # rotMat is the rotation matrix corresponding to @@ -875,13 +875,13 @@ class ShipPilot(PhysicsWalker): onScreenDebug.add("newVector length", newVector.length()) self.acForce.setVector(Vec3(newVector)) - - + + #momentum = self.momentumForce.getLocalVector() #momentum *= 0.9 #self.momentumForce.setVector(momentum) - + #physObject.setPosition(Point3( # physObject.getPosition()+step+moveToGround)) @@ -901,7 +901,7 @@ class ShipPilot(PhysicsWalker): self.__vel.set(0.0, 0.0, 0.0) goForward = True - + #*# speed = physVel if (goForward): @@ -955,28 +955,28 @@ class ShipPilot(PhysicsWalker): self.ship.worldVelocity.pPrintValues()) onScreenDebug.add("w worldVelocity len", "% 10.4f"%self.ship.worldVelocity.length()) - + # if hasattr(self.ship, 'sailBillow'): # self.ship.sailBillow = self.sailsDeployed if hasattr(self.ship, 'currentTurning'): self.ship.currentTurning = self.currentTurning - + return Task.cont - + def doDeltaPos(self): assert self.debugPrint("doDeltaPos()") self.needToDeltaPos = 1 - + def setPriorParentVector(self): assert self.debugPrint("doDeltaPos()") - + #print "self.__oldDt", self.__oldDt, "self.__oldPosDelta", self.__oldPosDelta if __debug__: onScreenDebug.add("__oldDt", "% 10.4f"%self.__oldDt) onScreenDebug.add("self.__oldPosDelta", self.__oldPosDelta.pPrintValues()) - + velocity = self.__oldPosDelta*(1/self.__oldDt)*4.0 # *4.0 is a hack assert self.debugPrint(" __oldPosDelta=%s"%(self.__oldPosDelta,)) assert self.debugPrint(" velocity=%s"%(velocity,)) @@ -984,7 +984,7 @@ class ShipPilot(PhysicsWalker): if __debug__: if self.wantDebugIndicator: onScreenDebug.add("velocity", velocity.pPrintValues()) - + def reset(self): assert self.debugPrint("reset()") self.actorNode.getPhysicsObject().resetPosition( diff --git a/direct/src/directdevices/DirectFastrak.py b/direct/src/directdevices/DirectFastrak.py index 744c1b492d..d008e058b3 100644 --- a/direct/src/directdevices/DirectFastrak.py +++ b/direct/src/directdevices/DirectFastrak.py @@ -59,7 +59,7 @@ class DirectFastrak(DirectObject): return Task.cont def fastrakUpdate(self): - # Get tracker position in feet. Flip x,z axes. + # Get tracker position in feet. Flip x, z axes. pos = direct.fastrak[self.deviceNo].tracker.getPos() self.trackerPos = Vec3(3.280839895013123 * pos[2], 3.280839895013123 * pos[1], diff --git a/direct/src/directdevices/DirectJoybox.py b/direct/src/directdevices/DirectJoybox.py index 778ace773d..0916d8c72d 100644 --- a/direct/src/directdevices/DirectJoybox.py +++ b/direct/src/directdevices/DirectJoybox.py @@ -47,13 +47,13 @@ class DirectJoybox(DirectObject): self.device = device self.analogs = direct.deviceManager.createAnalogs(self.device) self.buttons = direct.deviceManager.createButtons(self.device) - self.aList = [0,0,0,0,0,0,0,0] - self.bList = [0,0,0,0,0,0,0,0,0,0,0,0] + self.aList = [0, 0, 0, 0, 0, 0, 0, 0] + self.bList = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] # For joybox fly mode # Default is joe mode self.mapping = [R_LEFT_RIGHT, R_FWD_BACK, L_FWD_BACK, R_TWIST, L_TWIST, NULL_AXIS] - self.modifier = [1,1,1,-1,-1,0] + self.modifier = [1, 1, 1, -1, -1, 0] # Initialize time self.lastTime = globalClock.getFrameTime() # Record node path @@ -232,67 +232,67 @@ class DirectJoybox(DirectObject): x = getAxisVal(0) * self.modifier[0] y = getAxisVal(1) * self.modifier[1] z = getAxisVal(2) * self.modifier[2] - pos = Vec3(x,y,z) * (posScale * self.deltaTime) + pos = Vec3(x, y, z) * (posScale * self.deltaTime) h = getAxisVal(3) * self.modifier[3] p = getAxisVal(4) * self.modifier[4] r = getAxisVal(5) * self.modifier[5] - hpr = Vec3(h,p,r) * (hprScale * self.deltaTime) + hpr = Vec3(h, p, r) * (hprScale * self.deltaTime) # Move node path self.nodePath.setPosHpr(self.nodePath, pos, hpr) def joeMode(self): self.mapping = [R_LEFT_RIGHT, R_FWD_BACK, L_FWD_BACK, R_TWIST, L_TWIST, NULL_AXIS] - self.modifier = [1,1,1,-1,-1,0] + self.modifier = [1, 1, 1, -1, -1, 0] self.setMode(self.joyboxFly, 'Joe Mode') def lucMode(self): self.mapping = [R_LEFT_RIGHT, R_FWD_BACK, L_FWD_BACK, R_TWIST, L_TWIST, L_LEFT_RIGHT] - self.modifier = [1,1,1,-1,-1,0] + self.modifier = [1, 1, 1, -1, -1, 0] self.setMode(self.joyboxFly, 'Luc Mode') def driveMode(self): self.mapping = [L_LEFT_RIGHT, R_FWD_BACK, R_TWIST, R_LEFT_RIGHT, L_FWD_BACK, NULL_AXIS] - self.modifier = [1,1,-1,-1,-1,0] + self.modifier = [1, 1, -1, -1, -1, 0] self.setMode(self.joyboxFly, 'Drive Mode') def lookAtMode(self): self.mapping = [R_LEFT_RIGHT, R_TWIST, R_FWD_BACK, L_LEFT_RIGHT, L_FWD_BACK, NULL_AXIS] - self.modifier = [1,1,1,-1,1,0] + self.modifier = [1, 1, 1, -1, 1, 0] self.setMode(self.joyboxFly, 'Look At Mode') def lookAroundMode(self): self.mapping = [NULL_AXIS, NULL_AXIS, NULL_AXIS, R_LEFT_RIGHT, R_FWD_BACK, NULL_AXIS] - self.modifier = [0,0,0,-1,-1,0] + self.modifier = [0, 0, 0, -1, -1, 0] self.setMode(self.joyboxFly, 'Lookaround Mode') def demoMode(self): self.mapping = [R_LEFT_RIGHT, R_FWD_BACK, L_FWD_BACK, R_TWIST, NULL_AXIS, NULL_AXIS] - self.modifier = [1,1,1,-1,0,0] + self.modifier = [1, 1, 1, -1, 0, 0] self.setMode(self.joyboxFly, 'Demo Mode') def hprXyzMode(self): self.mapping = [R_LEFT_RIGHT, R_FWD_BACK, R_TWIST, L_TWIST, L_FWD_BACK, L_LEFT_RIGHT] - self.modifier = [1,1,-1,-1,-1,1] + self.modifier = [1, 1, -1, -1, -1, 1] self.setMode(self.joyboxFly, 'HprXyz Mode') def mopathMode(self): self.mapping = [R_LEFT_RIGHT, R_FWD_BACK, R_TWIST, L_LEFT_RIGHT, L_FWD_BACK, L_LEFT_RIGHT] - self.modifier = [1,1,-1,-1,1,0] + self.modifier = [1, 1, -1, -1, 1, 0] self.setMode(self.joyboxFly, 'Mopath Mode') def walkthruMode(self): self.mapping = [R_LEFT_RIGHT, R_FWD_BACK, L_TWIST, R_TWIST, L_FWD_BACK, L_LEFT_RIGHT] - self.modifier = [1,1,-1,-1,-1, 1] + self.modifier = [1, 1, -1, -1, -1, 1] self.setMode(self.joyboxFly, 'Walkthru Mode') def spaceMode(self): @@ -330,7 +330,7 @@ class DirectJoybox(DirectObject): dh = -1 * hprScale * self.aList[R_LEFT_RIGHT] * self.deltaTime self.nodePath.setHpr(self.nodePath, dh, dp, dr) dy = posScale * self.aList[L_FWD_BACK] * self.deltaTime - dPos = VBase3(0,dy,0) + dPos = VBase3(0, dy, 0) for planet, radius in self.auxData: # Are we within min radius? # How far above planet are we? @@ -389,7 +389,7 @@ class DirectJoybox(DirectObject): self.orbitNode(rx, ry, 0) pos = self.nodePath.getPos(self.refCS) if Vec3(pos).length() < 0.005: - pos.set(0,-0.01, 0) + pos.set(0, -0.01, 0) # Now move on out pos.assign(pos * (1 + r)) self.nodePath.setPos(self.refCS, pos) diff --git a/direct/src/directdevices/DirectRadamec.py b/direct/src/directdevices/DirectRadamec.py index 33a41b82b9..b84fd2fd9e 100644 --- a/direct/src/directdevices/DirectRadamec.py +++ b/direct/src/directdevices/DirectRadamec.py @@ -32,7 +32,7 @@ class DirectRadamec(DirectObject): self.device = device self.analogs = direct.deviceManager.createAnalogs(self.device) self.numAnalogs = len(self.analogs) - self.aList = [0,0,0,0,0,0,0,0] + self.aList = [0, 0, 0, 0, 0, 0, 0, 0] # Radamec device max/mins # Note: These values change quite often, i.e. everytime # you unplug the radamec cords, or jostle them too @@ -61,8 +61,8 @@ class DirectRadamec(DirectObject): return Task.cont def radamecDebug(self): - panVal = self.normalizeChannel(RAD_PAN,-180,180) - tiltVal = self.normalizeChannel(RAD_TILT,-90,90) + panVal = self.normalizeChannel(RAD_PAN, -180, 180) + tiltVal = self.normalizeChannel(RAD_TILT, -90, 90) self.notify.debug("PAN = %s" % self.aList[RAD_PAN]) self.notify.debug("TILT = %s" % self.aList[RAD_TILT]) @@ -70,7 +70,7 @@ class DirectRadamec(DirectObject): self.notify.debug("FOCUS = %s" % self.aList[RAD_FOCUS]) self.notify.debug("Normalized: panVal: %s tiltVal: %s" % (panVal, tiltVal)) - # Normalize to the range [-minVal,maxVal] based on some hard-coded + # Normalize to the range [-minVal, maxVal] based on some hard-coded # max/min numbers of the Radamec device def normalizeChannel(self, chan, minVal = -1, maxVal = 1): try: diff --git a/direct/src/directnotify/DirectNotify.py b/direct/src/directnotify/DirectNotify.py index 0bbdd4ef82..3dfcdf7eb7 100644 --- a/direct/src/directnotify/DirectNotify.py +++ b/direct/src/directnotify/DirectNotify.py @@ -10,7 +10,7 @@ class DirectNotify: DirectNotify class: this class contains methods for creating mulitple notify categories via a dictionary of Notifiers. """ - + def __init__(self): """ DirectNotify class keeps a dictionary of Notfiers @@ -70,7 +70,7 @@ class DirectNotify: config except: return 0 - + dconfigParam = ("notify-level-" + categoryName) level = config.GetString(dconfigParam, "") @@ -103,7 +103,7 @@ class DirectNotify: else: print ("DirectNotify: unknown notify level: " + str(level) + " for category: " + str(categoryName)) - + def setDconfigLevels(self): for categoryName in self.getCategories(): self.setDconfigLevel(categoryName) diff --git a/direct/src/directnotify/Logger.py b/direct/src/directnotify/Logger.py index 8910e43fe4..8c7f6b6f3b 100644 --- a/direct/src/directnotify/Logger.py +++ b/direct/src/directnotify/Logger.py @@ -9,12 +9,12 @@ class Logger: def __init__(self, fileName="log"): """ Logger constructor - """ + """ self.__timeStamp = 1 self.__startTime = 0.0 self.__logFile = None self.__logFileName = fileName - + def setTimeStamp(self, bool): """ Toggle time stamp printing with log entries on and off @@ -29,7 +29,7 @@ class Logger: # logging control - + def resetStartTime(self): """ Reset the start time of the log file for time stamps @@ -45,9 +45,9 @@ class Logger: self.__logFile.write(self.__getTimeStamp()) self.__logFile.write(entryString + '\n') - + # logging functions - + def __openLogFile(self): """ Open a file for logging error/warning messages diff --git a/direct/src/directnotify/Notifier.py b/direct/src/directnotify/Notifier.py index 63baff7d54..2180e882d3 100644 --- a/direct/src/directnotify/Notifier.py +++ b/direct/src/directnotify/Notifier.py @@ -54,7 +54,7 @@ class Notifier: # from Python-level notify messages. from pandac.PandaModules import NotifyCategory NotifyCategory.setServerDelta(self.serverDelta) - + self.info("Notify clock adjusted by %s (and timezone adjusted by %s hours) to synchronize with server." % (PythonUtil.formatElapsedSeconds(delta), (time.timezone - timezone) / 3600)) def getTime(self): @@ -216,11 +216,11 @@ class Notifier: self.streamWriter.appendData(string + '\n') else: print string - + def debugStateCall(self, obj=None, fsmMemberName='fsm', secondaryFsm='secondaryFSM'): """ - If this notify is in debug mode, print the time of the + If this notify is in debug mode, print the time of the call followed by the [fsm state] notifier category and the function call (with parameters). """ @@ -229,14 +229,14 @@ class Notifier: state = '' doId = '' if obj is not None: - + fsm=obj.__dict__.get(fsmMemberName) if fsm is not None: stateObj = fsm.getCurrentState() if stateObj is not None: #state = "%s=%s"%(fsmMemberName, stateObj.getName()) state = stateObj.getName() - + fsm=obj.__dict__.get(secondaryFsm) if fsm is not None: stateObj = fsm.getCurrentState() @@ -261,7 +261,7 @@ class Notifier: def debugCall(self, debugString=''): """ - If this notify is in debug mode, print the time of the + If this notify is in debug mode, print the time of the call followed by the notifier category and the function call (with parameters). """ diff --git a/direct/src/directnotify/RotatingLog.py b/direct/src/directnotify/RotatingLog.py index ca521efc2e..caf7bbd527 100755 --- a/direct/src/directnotify/RotatingLog.py +++ b/direct/src/directnotify/RotatingLog.py @@ -8,7 +8,7 @@ class RotatingLog: A file() (or open()) replacement that will automatically open and write to a new file if the prior file is too large or after a time interval. """ - + def __init__(self, path="./log_file", hourInterval=24, megabyteLimit=1024): """ path is a full or partial path with file name. @@ -73,12 +73,12 @@ class RotatingLog: file=open(path, "a") if file: self.close() - # This should be redundant with "a" open() mode, - # but on some platforms tell() will return 0 + # This should be redundant with "a" open() mode, + # but on some platforms tell() will return 0 # until the first write: file.seek(0, 2) self.file=file - + # Some of these data members may be expected by some of our clients: self.closed = self.file.closed self.mode = self.file.mode @@ -86,13 +86,13 @@ class RotatingLog: self.softspace = self.file.softspace #self.encoding = self.file.encoding # Python 2.3 #self.newlines = self.file.newlines # Python 2.3, maybe - + if self.timeLimit is not None and time.time() > self.timeLimit: self.timeLimit=time.time()+self.timeInterval else: # We'll keep writing to the old file, if available. print "RotatingLog error: Unable to open new log file \"%s\"."%(path,) - + def write(self, data): """ Write the data to either the current log or a new one, @@ -109,7 +109,7 @@ class RotatingLog: def flush(self): return self.file.flush() - def fileno(self): + def fileno(self): return self.file.fileno() def isatty(self): @@ -118,7 +118,7 @@ class RotatingLog: def next(self): return self.file.next() - def read(self, size): + def read(self, size): return self.file.read(size) def readline(self, size): diff --git a/direct/src/directscripts/gendocs.py b/direct/src/directscripts/gendocs.py index 8c37e68341..6fb90a4ca0 100644 --- a/direct/src/directscripts/gendocs.py +++ b/direct/src/directscripts/gendocs.py @@ -48,7 +48,7 @@ # ######################################################################## -import os,sys,parser,symbol,token,types,re +import os, sys, parser, symbol, token, types, re ######################################################################## # @@ -68,7 +68,7 @@ def readFile(fn): except: sys.exit("Cannot read "+fn) -def writeFile(wfile,data): +def writeFile(wfile, data): try: dsthandle = open(wfile, "wb") dsthandle.write(data) @@ -89,7 +89,7 @@ def findFiles(dirlist, ext, ign, list): elif (os.path.isdir(full)): findFiles(full, ext, ign, list) -def textToHTML(comment,sep,delsection=None): +def textToHTML(comment, sep, delsection=None): sections = [""] included = {} for line in comment.split("\n"): @@ -143,7 +143,7 @@ class InterrogateTokenizer: used by interrogate databases. """ - def __init__(self,fn): + def __init__(self, fn): self.fn = fn self.pos = 0 self.data = readFile(fn) @@ -299,9 +299,9 @@ class InterrogateDatabase: # ######################################################################## -def printTree(tree,indent): +def printTree(tree, indent): spacing = " "[:indent] - if isinstance(tree,types.TupleType) and isinstance(tree[0], types.IntType): + if isinstance(tree, types.TupleType) and isinstance(tree[0], types.IntType): if symbol.sym_name.has_key(tree[0]): for i in range(len(tree)): if (i==0): @@ -446,7 +446,7 @@ class ParseTreeInfo: elif cstmt[0] == symbol.classdef: name = cstmt[2][1] self.class_info[name] = ParseTreeInfo(cstmt and cstmt[-1] or None, name) - self.extract_derivs(self.class_info[name],cstmt) + self.extract_derivs(self.class_info[name], cstmt) def extract_derivs(self, classinfo, tree): if (len(tree)==8): @@ -667,9 +667,9 @@ def generateLinkTable(link, text, cols, urlprefix, urlsuffix): if (slot < len(link)): linkval = link[slot] if (slot < len(text)): textval = text[slot] if (i==0): - line = line + '' + linkTo(urlprefix+linkval+urlsuffix,textval) + "" + line = line + '' + linkTo(urlprefix+linkval+urlsuffix, textval) + "" else: - line = line + '' + linkTo(urlprefix+linkval+urlsuffix,textval) + "" + line = line + '' + linkTo(urlprefix+linkval+urlsuffix, textval) + "" result = result + "" + line + "\n" result = result + "\n" return result @@ -702,9 +702,9 @@ def generate(pversion, indirlist, directdirlist, docdir, header, footer, urlpref inheritance = code.getInheritance(type) body = body + "

Inheritance:

\n
    \n" for inh in inheritance: - line = " " + linkTo(urlprefix+inh+urlsuffix,inh) + ": " + line = " " + linkTo(urlprefix+inh+urlsuffix, inh) + ": " for parent in code.getClassParents(inh): - line = line + linkTo(urlprefix+parent+urlsuffix,parent) + " " + line = line + linkTo(urlprefix+parent+urlsuffix, parent) + " " body = body + line + "
    \n" body = body + "
\n" for sclass in inheritance: @@ -731,7 +731,7 @@ def generate(pversion, indirlist, directdirlist, docdir, header, footer, urlpref xclasses.sort() index = "

List of Classes - Panda " + pversion + "

\n" - index = index + generateLinkTable(xclasses,xclasses,3,urlprefix,urlsuffix) + index = index + generateLinkTable(xclasses, xclasses, 3, urlprefix, urlsuffix) fnlist = code.getGlobalFunctionList()[:] fnlist.sort() fnnames = [] @@ -741,7 +741,7 @@ def generate(pversion, indirlist, directdirlist, docdir, header, footer, urlpref writeFile(docdir + "/classes.html", index) index = "

List of Global Functions - Panda " + pversion + "

\n" - index = index + generateLinkTable(fnnames,fnnames,3,"#","") + index = index + generateLinkTable(fnnames, fnnames, 3,"#","") for func in fnlist: index = index + generateFunctionDocs(code, func) index = header + index + footer diff --git a/direct/src/directscripts/make-panda3d-tgz.py b/direct/src/directscripts/make-panda3d-tgz.py index eaa8a6e7a6..33615bb0e3 100755 --- a/direct/src/directscripts/make-panda3d-tgz.py +++ b/direct/src/directscripts/make-panda3d-tgz.py @@ -9,7 +9,7 @@ Options: Specifies the CVSROOT string to use to tag and export the tree. The default is $SFROOT if it is defined, or $CVSROOT otherwise. - + -r tag Specifies the tag to export from. If this parameter is specified, the tree is not tagged again; otherwise, the @@ -17,7 +17,7 @@ Options: name. -m module - Specifies the module to check out and build. The default is + Specifies the module to check out and build. The default is panda3d. """ diff --git a/direct/src/directscripts/packpanda.py b/direct/src/directscripts/packpanda.py index e4e4fa1961..8b7552bccb 100755 --- a/direct/src/directscripts/packpanda.py +++ b/direct/src/directscripts/packpanda.py @@ -12,7 +12,7 @@ # ############################################################################## -import sys,os,getopt,string,shutil,py_compile +import sys, os, getopt, string, shutil, py_compile OPTIONLIST = [ ("game", 1, "Name of directory containing game"), @@ -30,9 +30,9 @@ def ParseFailure(): print "" for (opt, hasval, explanation) in OPTIONLIST: if (hasval): - print " --%-10s %s"%(opt+" x",explanation) + print " --%-10s %s"%(opt+" x", explanation) else: - print " --%-10s %s"%(opt+" ",explanation) + print " --%-10s %s"%(opt+" ", explanation) sys.exit(1) def ParseOptions(args): @@ -50,7 +50,7 @@ def ParseOptions(args): longopts.append(opt) options[opt] = 0 opts, extras = getopt.getopt(args, "", longopts) - for option,value in opts: + for option, value in opts: for (opt, hasval, explanation) in OPTIONLIST: if (option == "--"+opt): if (hasval==2): options[opt].append(value) @@ -97,8 +97,8 @@ GAME=os.path.abspath(GAME) NAME=os.path.basename(GAME) SMDIRECTORY=os.path.basename(GAME) if (VER!=""): SMDIRECTORY=SMDIRECTORY+" "+VER -ICON=os.path.join(GAME,NAME+".ico") -BITMAP=os.path.join(GAME,NAME+".bmp") +ICON=os.path.join(GAME, NAME+".ico") +BITMAP=os.path.join(GAME, NAME+".bmp") LICENSE=os.path.join(GAME,"LICENSE.TXT") OUTFILE=os.path.basename(GAME) if (VER!=""): OUTFILE=OUTFILE+"-"+VER @@ -112,24 +112,24 @@ else: MAIN=NAME+".py" def PrintFileStatus(label, file): if (os.path.exists(file)): - print "%-15s: %s"%(label,file) + print "%-15s: %s"%(label, file) else: - print "%-15s: %s (MISSING)"%(label,file) + print "%-15s: %s (MISSING)"%(label, file) -PrintFileStatus("Game",GAME) -print "%-15s: %s"%("Name",NAME) -print "%-15s: %s"%("Start Menu",SMDIRECTORY) -PrintFileStatus("Main",os.path.join(GAME,MAIN)) -PrintFileStatus("Icon",ICON) -PrintFileStatus("Bitmap",BITMAP) -PrintFileStatus("License",LICENSE) -print "%-15s: %s"%("Output",OUTFILE) -print "%-15s: %s"%("Install Dir",INSTALLDIR) +PrintFileStatus("Game", GAME) +print "%-15s: %s"%("Name", NAME) +print "%-15s: %s"%("Start Menu", SMDIRECTORY) +PrintFileStatus("Main", os.path.join(GAME, MAIN)) +PrintFileStatus("Icon", ICON) +PrintFileStatus("Bitmap", BITMAP) +PrintFileStatus("License", LICENSE) +print "%-15s: %s"%("Output", OUTFILE) +print "%-15s: %s"%("Install Dir", INSTALLDIR) if (os.path.isdir(GAME)==0): sys.exit("Difficulty reading "+GAME+". Cannot continue.") -if (os.path.isfile(os.path.join(GAME,NAME+".py"))==0): +if (os.path.isfile(os.path.join(GAME, NAME+".py"))==0): sys.exit("Difficulty reading "+NAME+".py. Cannot continue.") if (os.path.isfile(LICENSE)==0): @@ -198,7 +198,7 @@ def CompileFiles(file): else: pass elif (os.path.isdir(file)): for x in os.listdir(file): - CompileFiles(os.path.join(file,x)) + CompileFiles(os.path.join(file, x)) def DeleteFiles(file): base = string.lower(os.path.basename(file)) @@ -209,7 +209,7 @@ def DeleteFiles(file): shutil.rmtree(file) return for x in os.listdir(file): - DeleteFiles(os.path.join(file,x)) + DeleteFiles(os.path.join(file, x)) else: for ext in OPTIONS["rmext"]: if (base[-(len(ext)+1):] == string.lower("."+ext)): diff --git a/direct/src/directtools/DirectCameraControl.py b/direct/src/directtools/DirectCameraControl.py index b301d9ba6f..92e92413d8 100644 --- a/direct/src/directtools/DirectCameraControl.py +++ b/direct/src/directtools/DirectCameraControl.py @@ -7,7 +7,7 @@ from direct.task import Task CAM_MOVE_DURATION = 1.2 COA_MARKER_SF = 0.0075 -Y_AXIS = Vec3(0,1,0) +Y_AXIS = Vec3(0, 1, 0) class DirectCameraControl(DirectObject): def __init__(self): @@ -16,12 +16,12 @@ class DirectCameraControl(DirectObject): self.startF = 0 self.orthoViewRoll = 0.0 self.lastView = 0 - self.coa = Point3(0,100,0) + self.coa = Point3(0, 100, 0) self.coaMarker = loader.loadModel('models/misc/sphere') self.coaMarker.setName('DirectCameraCOAMarker') self.coaMarker.setTransparency(1) - self.coaMarker.setColor(1,0,0,0) - self.coaMarker.setPos(0,100,0) + self.coaMarker.setColor(1, 0, 0, 0) + self.coaMarker.setPos(0, 100, 0) useDirectRenderStyle(self.coaMarker) self.coaMarkerPos = Point3(0) self.coaMarkerColorIval = None @@ -208,7 +208,7 @@ class DirectCameraControl(DirectObject): # Translation action return self.XZTranslateTask(state) - def XZTranslateTask(self,state): + def XZTranslateTask(self, state): coaDist = Vec3(self.coaMarker.getPos(direct.camera)).length() xlateSF = (coaDist / direct.dr.near) direct.camera.setPos(direct.camera, @@ -221,7 +221,7 @@ class DirectCameraControl(DirectObject): xlateSF)) return Task.cont - def HPanYZoomTask(self,state): + def HPanYZoomTask(self, state): # If the cam is orthogonal, don't rotate or zoom. if (hasattr(direct.camera.node(), "getLens") and direct.camera.node().getLens().__class__.__name__ == "OrthographicLens"): @@ -400,11 +400,11 @@ class DirectCameraControl(DirectObject): # At least display it dist = pow(10.0, self.nullHitPointCount) direct.message('COA Distance: ' + `dist`) - coa.set(0,dist,0) + coa.set(0, dist, 0) # Compute COA Dist coaDist = Vec3(coa - ZERO_POINT).length() if coaDist < (1.1 * dr.near): - coa.set(0,100,0) + coa.set(0, 100, 0) coaDist = 100 # Update coa and marker self.updateCoa(coa, coaDist = coaDist) @@ -444,8 +444,8 @@ class DirectCameraControl(DirectObject): self.coaMarkerColorIval.finish() self.coaMarkerColorIval = Sequence( Func(self.coaMarker.unstash), - self.coaMarker.colorInterval(1.5, Vec4(1,0,0,0), - startColor = Vec4(1,0,0,1), + self.coaMarker.colorInterval(1.5, Vec4(1, 0, 0, 0), + startColor = Vec4(1, 0, 0, 1), blendType = 'easeInOut'), Func(self.coaMarker.stash) ) @@ -481,7 +481,7 @@ class DirectCameraControl(DirectObject): zAxis = Vec3(mCam2Render.xformVec(Z_AXIS)) zAxis.normalize() # Compute rotation angle needed to upright cam - orbitAngle = rad2Deg(math.acos(CLAMP(zAxis.dot(Z_AXIS),-1,1))) + orbitAngle = rad2Deg(math.acos(CLAMP(zAxis.dot(Z_AXIS), -1, 1))) # Check angle if orbitAngle < 0.1: # Already upright @@ -490,7 +490,7 @@ class DirectCameraControl(DirectObject): rotAxis = Vec3(zAxis.cross(Z_AXIS)) rotAxis.normalize() # Find angle between rot Axis and render X_AXIS - rotAngle = rad2Deg(math.acos(CLAMP(rotAxis.dot(X_AXIS),-1,1))) + rotAngle = rad2Deg(math.acos(CLAMP(rotAxis.dot(X_AXIS), -1, 1))) # Determine sign or rotation angle if rotAxis[1] < 0: rotAngle *= -1 @@ -593,7 +593,7 @@ class DirectCameraControl(DirectObject): # Record view for next time around self.lastView = view t = direct.camera.lerpPosHpr(ZERO_POINT, - VBase3(0,0,self.orthoViewRoll), + VBase3(0, 0, self.orthoViewRoll), CAM_MOVE_DURATION, other = self.camManipRef, blendType = 'easeInOut', @@ -616,7 +616,7 @@ class DirectCameraControl(DirectObject): parent = direct.camera.getParent() direct.camera.wrtReparentTo(self.camManipRef) - manipTask = self.camManipRef.lerpHpr(VBase3(degrees,0,0), + manipTask = self.camManipRef.lerpHpr(VBase3(degrees, 0, 0), CAM_MOVE_DURATION, blendType = 'easeInOut', task = 'manipulateCamera') @@ -634,7 +634,7 @@ class DirectCameraControl(DirectObject): taskMgr.remove('manipulateCamera') # How big is the node? nodeScale = direct.widget.scalingNode.getScale(render) - maxScale = max(nodeScale[0],nodeScale[1],nodeScale[2]) + maxScale = max(nodeScale[0], nodeScale[1], nodeScale[2]) maxDim = min(direct.dr.nearWidth, direct.dr.nearHeight) # At what distance does the object fill 30% of the screen? @@ -655,7 +655,7 @@ class DirectCameraControl(DirectObject): parent = direct.camera.getParent() direct.camera.wrtReparentTo(self.camManipRef) - fitTask = direct.camera.lerpPos(Point3(0,0,0), + fitTask = direct.camera.lerpPos(Point3(0, 0, 0), CAM_MOVE_DURATION, blendType = 'easeInOut', task = 'manipulateCamera') diff --git a/direct/src/directtools/DirectGeometry.py b/direct/src/directtools/DirectGeometry.py index 0360b6594b..e5e113dcc2 100644 --- a/direct/src/directtools/DirectGeometry.py +++ b/direct/src/directtools/DirectGeometry.py @@ -154,7 +154,7 @@ def getScreenXY(nodePath): percentX = (nearX - direct.dr.left)/direct.dr.nearWidth percentY = (nearY - direct.dr.bottom)/direct.dr.nearHeight # Map this percentage to the same -1 to 1 space as the mouse - screenXY = Vec3((2 * percentX) - 1.0,nearVec[1],(2 * percentY) - 1.0) + screenXY = Vec3((2 * percentX) - 1.0, nearVec[1], (2 * percentY) - 1.0) # Return the resulting value return screenXY @@ -163,7 +163,7 @@ def getCrankAngle(center): # origin) in screen space x = direct.dr.mouseX - center[0] y = direct.dr.mouseY - center[2] - return (180 + rad2Deg(math.atan2(y,x))) + return (180 + rad2Deg(math.atan2(y, x))) def relHpr(nodePath, base, h, p, r): # Compute nodePath2newNodePath relative to base coordinate system @@ -171,7 +171,7 @@ def relHpr(nodePath, base, h, p, r): mNodePath2Base = nodePath.getMat(base) # delta scale, orientation, and position matrix mBase2NewBase = Mat4() - composeMatrix(mBase2NewBase, UNIT_VEC, VBase3(h,p,r), ZERO_VEC, + composeMatrix(mBase2NewBase, UNIT_VEC, VBase3(h, p, r), ZERO_VEC, CSDefault) # base2nodePath mBase2NodePath = base.getMat(nodePath) diff --git a/direct/src/directtools/DirectGlobals.py b/direct/src/directtools/DirectGlobals.py index dc9cc22504..898f8c57a5 100644 --- a/direct/src/directtools/DirectGlobals.py +++ b/direct/src/directtools/DirectGlobals.py @@ -4,12 +4,12 @@ UNPICKABLE = ['x-disc-visible', 'y-disc-visible', 'z-disc-visible', 'GridBack', 'unpickable'] # For linmath operations -X_AXIS = Vec3(1,0,0) -Y_AXIS = Vec3(0,1,0) -Z_AXIS = Vec3(0,0,1) -NEG_X_AXIS = Vec3(-1,0,0) -NEG_Y_AXIS = Vec3(0,-1,0) -NEG_Z_AXIS = Vec3(0,0,-1) +X_AXIS = Vec3(1, 0, 0) +Y_AXIS = Vec3(0, 1, 0) +Z_AXIS = Vec3(0, 0, 1) +NEG_X_AXIS = Vec3(-1, 0, 0) +NEG_Y_AXIS = Vec3(0, -1, 0) +NEG_Z_AXIS = Vec3(0, 0, -1) ZERO_VEC = ORIGIN = Vec3(0) UNIT_VEC = Vec3(1) ZERO_POINT = Point3(0) diff --git a/direct/src/directtools/DirectGrid.py b/direct/src/directtools/DirectGrid.py index afd72ba02c..9e3a66b110 100644 --- a/direct/src/directtools/DirectGrid.py +++ b/direct/src/directtools/DirectGrid.py @@ -16,30 +16,30 @@ class DirectGrid(NodePath, DirectObject): # Polygon used to mark grid plane self.gridBack = loader.loadModel('models/misc/gridBack') self.gridBack.reparentTo(self) - self.gridBack.setColor(0.5,0.5,0.5,0.5) + self.gridBack.setColor(0.5, 0.5, 0.5, 0.5) # Grid Lines self.lines = self.attachNewNode('gridLines') self.minorLines = LineNodePath(self.lines) self.minorLines.lineNode.setName('minorLines') - self.minorLines.setColor(VBase4(0.3,0.55,1,1)) + self.minorLines.setColor(VBase4(0.3, 0.55, 1, 1)) self.minorLines.setThickness(1) self.majorLines = LineNodePath(self.lines) self.majorLines.lineNode.setName('majorLines') - self.majorLines.setColor(VBase4(0.3,0.55,1,1)) + self.majorLines.setColor(VBase4(0.3, 0.55, 1, 1)) self.majorLines.setThickness(5) self.centerLines = LineNodePath(self.lines) self.centerLines.lineNode.setName('centerLines') - self.centerLines.setColor(VBase4(1,0,0,0)) + self.centerLines.setColor(VBase4(1, 0, 0, 0)) self.centerLines.setThickness(3) # Small marker to hilight snap-to-grid point self.snapMarker = loader.loadModel('models/misc/sphere') self.snapMarker.node().setName('gridSnapMarker') self.snapMarker.reparentTo(self) - self.snapMarker.setColor(1,0,0,1) + self.snapMarker.setColor(1, 0, 0, 1) self.snapMarker.setScale(0.3) self.snapPos = Point3(0) @@ -79,11 +79,11 @@ class DirectGrid(NodePath, DirectObject): # Now redraw lines numLines = int(math.ceil(self.gridSize/self.gridSpacing)) scaledSize = numLines * self.gridSpacing - + center = self.centerLines minor = self.minorLines major = self.majorLines - for i in range(-numLines,numLines + 1): + for i in range(-numLines, numLines + 1): if i == 0: center.moveTo(i * self.gridSpacing, -scaledSize, 0) center.drawTo(i * self.gridSpacing, scaledSize, 0) @@ -105,7 +105,7 @@ class DirectGrid(NodePath, DirectObject): minor.create() major.create() self.gridBack.setScale(scaledSize) - + def setXyzSnap(self, fSnap): self.fXyzSnap = fSnap @@ -127,7 +127,7 @@ class DirectGrid(NodePath, DirectObject): ROUND_TO(self.snapPos[0], self.gridSpacing), ROUND_TO(self.snapPos[1], self.gridSpacing), ROUND_TO(self.snapPos[2], self.gridSpacing)) - + # Move snap marker to this point self.snapMarker.setPos(self.snapPos) @@ -146,7 +146,7 @@ class DirectGrid(NodePath, DirectObject): def setGridSpacing(self, spacing): self.gridSpacing = spacing self.updateGrid() - + def getGridSpacing(self): return self.gridSpacing diff --git a/direct/src/directtools/DirectLights.py b/direct/src/directtools/DirectLights.py index a8ac3363ef..05a60dfb53 100644 --- a/direct/src/directtools/DirectLights.py +++ b/direct/src/directtools/DirectLights.py @@ -20,7 +20,7 @@ class DirectLight(NodePath): def getName(self): return self.light.getName() - + def getLight(self): return self.light @@ -61,13 +61,13 @@ class DirectLights(NodePath): nameList = map(lambda x: x.getName(), self.lightDict.values()) nameList.sort() return nameList - + def create(self, type): type = type.lower() if type == 'ambient': self.ambientCount += 1 light = AmbientLight('ambient-' + `self.ambientCount`) - light.setColor(VBase4(.3,.3,.3,1)) + light.setColor(VBase4(.3, .3, .3, 1)) elif type == 'directional': self.directionalCount += 1 light = DirectionalLight('directional-' + `self.directionalCount`) @@ -85,7 +85,7 @@ class DirectLights(NodePath): print 'Invalid light type' return None # Add the new light - directLight = DirectLight(light,self) + directLight = DirectLight(light, self) self.lightDict[directLight.getName()] = directLight # Turn it on as a default self.setOn(directLight) @@ -128,7 +128,7 @@ class DirectLights(NodePath): Turn on the given directLight """ render.setLight(directLight) - + def setOff(self, directLight): """ Turn off the given directLight diff --git a/direct/src/directtools/DirectManipulation.py b/direct/src/directtools/DirectManipulation.py index a66f8cd90c..43c05c5a0d 100644 --- a/direct/src/directtools/DirectManipulation.py +++ b/direct/src/directtools/DirectManipulation.py @@ -39,7 +39,7 @@ class DirectManipulationControl(DirectObject): self.defaultSkipFlags = SKIP_HIDDEN | SKIP_BACKFACE self.optionalSkipFlags = 0 self.unmovableTagList = [] - + def manipulationStart(self, modifiers): # Start out in select mode self.mode = 'select' @@ -55,7 +55,7 @@ class DirectManipulationControl(DirectObject): else: # Nope, off the widget, no constraint self.constraint = None - + if not direct.gotAlt(modifiers): # Check to see if we are moving the object # We are moving the object if we either wait long enough @@ -183,7 +183,7 @@ class DirectManipulationControl(DirectObject): # Changes: none # Returns: list of edit types #-------------------------------------------------------------------------- - def getEditTypes(self,objects): + def getEditTypes(self, objects): # See if any of the selected in the don't manipulate tag list editTypes = 0 for tag in self.unmovableTagList: @@ -218,7 +218,7 @@ class DirectManipulationControl(DirectObject): self.objectHandles.hideAllHandles() self.objectHandles.showHandle(self.constraint) if direct.clusterMode == 'client': - oh = 'direct.manipulationControl.objectHandles' + oh = 'direct.manipulationControl.objectHandles' cluster(oh + '.showGuides()', 0) cluster(oh + '.hideAllHandles()', 0) cluster(oh + ('.showHandle("%s")'% self.constraint), 0) @@ -229,7 +229,7 @@ class DirectManipulationControl(DirectObject): # Send event to signal start of manipulation messenger.send('DIRECT_manipulateObjectStart') # Manipulate the real object with the constraint - # The constraint is passed as the name of the node + # The constraint is passed as the name of the node self.spawnManipulateObjectTask() def spawnManipulateObjectTask(self): @@ -338,7 +338,7 @@ class DirectManipulationControl(DirectObject): direct.widget.setPos(direct.widget, offset) def rotate1D(self, state): - # Constrained 1D rotation about the widget's main axis (X,Y, or Z) + # Constrained 1D rotation about the widget's main axis (X, Y, or Z) # Rotation depends upon circular motion of the mouse about the # projection of the widget's origin on the image plane # A complete circle about the widget results in a change in @@ -351,7 +351,7 @@ class DirectManipulationControl(DirectObject): self.fWidgetTop = self.widgetCheck('top?') self.rotationCenter = getScreenXY(direct.widget) self.lastCrankAngle = getCrankAngle(self.rotationCenter) - + # Rotate widget based on how far cursor has swung around origin newAngle = getCrankAngle(self.rotationCenter) deltaAngle = self.lastCrankAngle - newAngle @@ -366,7 +366,7 @@ class DirectManipulationControl(DirectObject): # Record crank angle for next time around self.lastCrankAngle = newAngle - def widgetCheck(self,type): + def widgetCheck(self, type): # Utility to see if we are looking at the top or bottom of # a 2D planar widget or if we are looking at a 2D planar widget # edge on @@ -530,7 +530,7 @@ class DirectManipulationControl(DirectObject): direct.selected.getWrtAll() # Move selected direct.widget.setPos( - direct.camera,entry.getSurfacePoint(entry.getFromNodePath())) + direct.camera, entry.getSurfacePoint(entry.getFromNodePath())) # Move all the selected objects with widget # Move the objects with the widget direct.selected.moveWrtWidgetAll() @@ -538,7 +538,7 @@ class DirectManipulationControl(DirectObject): messenger.send('DIRECT_manipulateObjectCleanup', [direct.selected.getSelectedAsList()]) -class ObjectHandles(NodePath,DirectObject): +class ObjectHandles(NodePath, DirectObject): def __init__(self): # Initialize the superclass NodePath.__init__(self) @@ -560,7 +560,7 @@ class ObjectHandles(NodePath,DirectObject): self.xDiscGroup = self.xHandles.find('**/x-disc-group') self.xDisc = self.xHandles.find('**/x-disc-visible') self.xDiscCollision = self.xHandles.find('**/x-disc') - + self.yHandles = self.find('**/Y') self.yPostGroup = self.yHandles.find('**/y-post-group') self.yPostCollision = self.yHandles.find('**/y-post') @@ -569,7 +569,7 @@ class ObjectHandles(NodePath,DirectObject): self.yDiscGroup = self.yHandles.find('**/y-disc-group') self.yDisc = self.yHandles.find('**/y-disc-visible') self.yDiscCollision = self.yHandles.find('**/y-disc') - + self.zHandles = self.find('**/Z') self.zPostGroup = self.zHandles.find('**/z-post-group') self.zPostCollision = self.zHandles.find('**/z-post') @@ -582,13 +582,13 @@ class ObjectHandles(NodePath,DirectObject): # Adjust visiblity, colors, and transparency self.xPostCollision.hide() self.xRingCollision.hide() - self.xDisc.setColor(1,0,0,.2) + self.xDisc.setColor(1, 0, 0, .2) self.yPostCollision.hide() self.yRingCollision.hide() - self.yDisc.setColor(0,1,0,.2) + self.yDisc.setColor(0, 1, 0, .2) self.zPostCollision.hide() self.zRingCollision.hide() - self.zDisc.setColor(0,0,1,.2) + self.zDisc.setColor(0, 0, 1, .2) # Augment geometry with lines self.createObjectHandleLines() # Create long markers to help line up in world @@ -603,7 +603,7 @@ class ObjectHandles(NodePath,DirectObject): useDirectRenderStyle(self) def coaModeColor(self): - self.setColor(.5,.5,.5,1) + self.setColor(.5, .5, .5, 1) def manipModeColor(self): self.clearColor() @@ -783,7 +783,7 @@ class ObjectHandles(NodePath,DirectObject): def multiplyScalingFactorBy(self, factor): taskMgr.remove('resizeObjectHandles') sf = self.ohScalingFactor = self.ohScalingFactor * factor - self.scalingNode.lerpScale(sf,sf,sf, 0.5, + self.scalingNode.lerpScale(sf, sf, sf, 0.5, blendType = 'easeInOut', task = 'resizeObjectHandles') @@ -794,7 +794,7 @@ class ObjectHandles(NodePath,DirectObject): minDim = min(direct.dr.nearWidth, direct.dr.nearHeight) sf = 0.15 * minDim * (pos[1]/direct.dr.near) self.ohScalingFactor = sf - self.scalingNode.lerpScale(sf,sf,sf, 0.5, + self.scalingNode.lerpScale(sf, sf, sf, 0.5, blendType = 'easeInOut', task = 'resizeObjectHandles') @@ -802,51 +802,51 @@ class ObjectHandles(NodePath,DirectObject): # X post self.xPost = self.xPostGroup.attachNewNode('x-post-visible') lines = LineNodePath(self.xPost) - lines.setColor(VBase4(1,0,0,1)) + lines.setColor(VBase4(1, 0, 0, 1)) lines.setThickness(5) - lines.moveTo(0,0,0) - lines.drawTo(1.5,0,0) + lines.moveTo(0, 0, 0) + lines.drawTo(1.5, 0, 0) lines.create() lines = LineNodePath(self.xPost) - lines.setColor(VBase4(1,0,0,1)) + lines.setColor(VBase4(1, 0, 0, 1)) lines.setThickness(1.5) - lines.moveTo(0,0,0) - lines.drawTo(-1.5,0,0) + lines.moveTo(0, 0, 0) + lines.drawTo(-1.5, 0, 0) lines.create() - + # X ring self.xRing = self.xRingGroup.attachNewNode('x-ring-visible') lines = LineNodePath(self.xRing) - lines.setColor(VBase4(1,0,0,1)) + lines.setColor(VBase4(1, 0, 0, 1)) lines.setThickness(3) - lines.moveTo(0,1,0) + lines.moveTo(0, 1, 0) for ang in range(15, 370, 15): lines.drawTo(0, math.cos(deg2Rad(ang)), math.sin(deg2Rad(ang))) lines.create() - + # Y post self.yPost = self.yPostGroup.attachNewNode('y-post-visible') lines = LineNodePath(self.yPost) - lines.setColor(VBase4(0,1,0,1)) + lines.setColor(VBase4(0, 1, 0, 1)) lines.setThickness(5) - lines.moveTo(0,0,0) - lines.drawTo(0,1.5,0) + lines.moveTo(0, 0, 0) + lines.drawTo(0, 1.5, 0) lines.create() lines = LineNodePath(self.yPost) - lines.setColor(VBase4(0,1,0,1)) + lines.setColor(VBase4(0, 1, 0, 1)) lines.setThickness(1.5) - lines.moveTo(0,0,0) - lines.drawTo(0,-1.5,0) + lines.moveTo(0, 0, 0) + lines.drawTo(0, -1.5, 0) lines.create() - + # Y ring self.yRing = self.yRingGroup.attachNewNode('y-ring-visible') lines = LineNodePath(self.yRing) - lines.setColor(VBase4(0,1,0,1)) + lines.setColor(VBase4(0, 1, 0, 1)) lines.setThickness(3) - lines.moveTo(1,0,0) + lines.moveTo(1, 0, 0) for ang in range(15, 370, 15): lines.drawTo(math.cos(deg2Rad(ang)), 0, @@ -856,24 +856,24 @@ class ObjectHandles(NodePath,DirectObject): # Z post self.zPost = self.zPostGroup.attachNewNode('z-post-visible') lines = LineNodePath(self.zPost) - lines.setColor(VBase4(0,0,1,1)) + lines.setColor(VBase4(0, 0, 1, 1)) lines.setThickness(5) - lines.moveTo(0,0,0) - lines.drawTo(0,0,1.5) + lines.moveTo(0, 0, 0) + lines.drawTo(0, 0, 1.5) lines.create() lines = LineNodePath(self.zPost) - lines.setColor(VBase4(0,0,1,1)) + lines.setColor(VBase4(0, 0, 1, 1)) lines.setThickness(1.5) - lines.moveTo(0,0,0) - lines.drawTo(0,0,-1.5) + lines.moveTo(0, 0, 0) + lines.drawTo(0, 0, -1.5) lines.create() - + # Z ring self.zRing = self.zRingGroup.attachNewNode('z-ring-visible') lines = LineNodePath(self.zRing) - lines.setColor(VBase4(0,0,1,1)) + lines.setColor(VBase4(0, 0, 1, 1)) lines.setThickness(3) - lines.moveTo(1,0,0) + lines.moveTo(1, 0, 0) for ang in range(15, 370, 15): lines.drawTo(math.cos(deg2Rad(ang)), math.sin(deg2Rad(ang)), @@ -884,28 +884,28 @@ class ObjectHandles(NodePath,DirectObject): self.guideLines = self.attachNewNode('guideLines') # X guide lines lines = LineNodePath(self.guideLines) - lines.setColor(VBase4(1,0,0,1)) + lines.setColor(VBase4(1, 0, 0, 1)) lines.setThickness(0.5) - lines.moveTo(-500,0,0) - lines.drawTo(500,0,0) + lines.moveTo(-500, 0, 0) + lines.drawTo(500, 0, 0) lines.create() lines.setName('x-guide') # Y guide lines lines = LineNodePath(self.guideLines) - lines.setColor(VBase4(0,1,0,1)) + lines.setColor(VBase4(0, 1, 0, 1)) lines.setThickness(0.5) - lines.moveTo(0,-500,0) - lines.drawTo(0,500,0) + lines.moveTo(0, -500, 0) + lines.drawTo(0, 500, 0) lines.create() lines.setName('y-guide') # Z guide lines lines = LineNodePath(self.guideLines) - lines.setColor(VBase4(0,0,1,1)) + lines.setColor(VBase4(0, 0, 1, 1)) lines.setThickness(0.5) - lines.moveTo(0,0,-500) - lines.drawTo(0,0,500) + lines.moveTo(0, 0, -500) + lines.drawTo(0, 0, 500) lines.create() lines.setName('z-guide') @@ -960,12 +960,12 @@ class ObjectHandles(NodePath,DirectObject): # Calc the xfrom from camera to the nodePath mCam2NodePath = direct.camera.getMat(nodePath) - + # And determine where the viewpoint is relative to widget lineOrigin = VBase3(0) decomposeMatrix(mCam2NodePath, VBase3(0), VBase3(0), lineOrigin, CSDefault) - + # Next we find the vector from viewpoint to the widget through # the mouse's position on near plane. # This defines the intersection ray