From ddc3b433d402a4f41214fb081e929a3d6844f696 Mon Sep 17 00:00:00 2001 From: rlweaver <> Date: Thu, 6 Dec 2001 23:42:38 +0000 Subject: [PATCH] *** empty log message *** --- .../src/directdevices/DirectDeviceManager.py | 73 ++++++++++++------- direct/src/directdevices/DirectJoybox.py | 2 +- direct/src/directtools/DirectSession.py | 6 ++ direct/src/ffi/genPyCode | 6 ++ direct/src/gui/DirectFrame.py | 1 + direct/src/interval/SoundInterval.py | 3 +- 6 files changed, 64 insertions(+), 27 deletions(-) diff --git a/direct/src/directdevices/DirectDeviceManager.py b/direct/src/directdevices/DirectDeviceManager.py index 634ebbb32c..4b44cb95e6 100644 --- a/direct/src/directdevices/DirectDeviceManager.py +++ b/direct/src/directdevices/DirectDeviceManager.py @@ -1,21 +1,28 @@ """ Class used to create and control vrpn devices """ -from PandaObject import * -from DirectGeometry import CLAMP + +from DirectObject import * +from PandaModules import * ANALOG_MIN = -0.95 ANALOG_MAX = 0.95 ANALOG_RANGE = ANALOG_MAX - ANALOG_MIN ANALOG_DEADBAND = 0.075 -class DirectDeviceManager(VrpnClient, PandaObject): +try: + myBase = base +except: + myBase = simbase + +class DirectDeviceManager(VrpnClient, DirectObject): def __init__(self, server = None): + # Determine which server to use if server != None: # One give as constructor argument self.server = server else: # Check config file, if that fails, use default - self.server = base.config.GetString('vrpn-server', 'spacedyne') + self.server = myBase.config.GetString('vrpn-server', 'spacedyne') # Create a vrpn client VrpnClient.__init__(self, self.server) @@ -35,7 +42,7 @@ class DirectDeviceManager(VrpnClient, PandaObject): def createTimecodeReader(self, device): return DirectTimecodeReader(self, device) -class DirectButtons(ButtonNode, PandaObject): +class DirectButtons(ButtonNode, DirectObject): buttonCount = 0 def __init__(self, vrpnClient, device): # Keep track of number of buttons created @@ -45,7 +52,7 @@ class DirectButtons(ButtonNode, PandaObject): # Create a new button node for the given device ButtonNode.__init__(self, vrpnClient, device) # Attach node to data graph - self.nodePath = base.dataRoot.attachNewNode(self) + self.nodePath = myBase.dataRoot.attachNewNode(self) def __getitem__(self, index): if (index < 0) or (index > self.getNumButtons()): @@ -56,10 +63,10 @@ class DirectButtons(ButtonNode, PandaObject): return self.getNumButtons() def enable(self): - self.nodePath.reparentTo(base.dataRoot) + self.nodePath.reparentTo(myBase.dataRoot) def disable(self): - self.nodePath.reparentTo(base.dataUnused) + self.nodePath.reparentTo(myBase.dataUnused) def getName(self): return self.name @@ -73,7 +80,7 @@ class DirectButtons(ButtonNode, PandaObject): str = str + '%d' % val + ' ' return str -class DirectAnalogs(AnalogNode, PandaObject): +class DirectAnalogs(AnalogNode, DirectObject): analogCount = 0 def __init__(self, vrpnClient, device): # Keep track of number of analogs created @@ -83,7 +90,7 @@ class DirectAnalogs(AnalogNode, PandaObject): # Create a new analog node for the given device AnalogNode.__init__(self, vrpnClient, device) # Attach node to data graph - self.nodePath = base.dataRoot.attachNewNode(self) + self.nodePath = myBase.dataRoot.attachNewNode(self) def __getitem__(self, index): if (index < 0) or (index > self.getNumControls()): @@ -94,10 +101,10 @@ class DirectAnalogs(AnalogNode, PandaObject): return self.getNumControls() def enable(self): - self.nodePath.reparentTo(base.dataRoot) + self.nodePath.reparentTo(myBase.dataRoot) def disable(self): - self.nodePath.reparentTo(base.dataUnused) + self.nodePath.reparentTo(myBase.dataUnused) def normalize(self, val, minVal = -1, maxVal = 1): # First record sign @@ -108,7 +115,8 @@ class DirectAnalogs(AnalogNode, PandaObject): # Zero out values in deadband val = sign * max(abs(val) - ANALOG_DEADBAND, 0.0) # Now clamp value between minVal and maxVal - val = CLAMP(val, ANALOG_MIN, ANALOG_MAX) + val = min( max( val, ANALOG_MIN ), ANALOG_MAX ) +# val = CLAMP(val, ANALOG_MIN, ANALOG_MAX) return (((maxVal - minVal) * ((val - ANALOG_MIN) / ANALOG_RANGE)) + minVal) @@ -134,7 +142,7 @@ class DirectAnalogs(AnalogNode, PandaObject): str = str + '%.3f' % val + ' ' return str -class DirectTracker(TrackerNode, PandaObject): +class DirectTracker(TrackerNode, DirectObject): trackerCount = 0 def __init__(self, vrpnClient, device): # Keep track of number of trackers created @@ -144,13 +152,13 @@ class DirectTracker(TrackerNode, PandaObject): # Create a new tracker node for the given device TrackerNode.__init__(self, vrpnClient, device) # Attach node to data graph - self.nodePath = base.dataRoot.attachNewNode(self) + self.nodePath = myBase.dataRoot.attachNewNode(self) def enable(self): - self.nodePath.reparentTo(base.dataRoot) + self.nodePath.reparentTo(myBase.dataRoot) def disable(self): - self.nodePath.reparentTo(base.dataUnused) + self.nodePath.reparentTo(myBase.dataUnused) def getName(self): return self.name @@ -164,7 +172,7 @@ class DirectTracker(TrackerNode, PandaObject): str = str + '%.3f' % val + ' ' return str -class DirectDials(DialNode, PandaObject): +class DirectDials(DialNode, DirectObject): dialCount = 0 def __init__(self, vrpnClient, device): # Keep track of number of dials created @@ -174,7 +182,7 @@ class DirectDials(DialNode, PandaObject): # Create a new dial node for the given device DialNode.__init__(self, vrpnClient, device) # Attach node to data graph - self.nodePath = base.dataRoot.attachNewNode(self) + self.nodePath = myBase.dataRoot.attachNewNode(self) def __getitem__(self, index): if (index < 0) or (index > self.getNumDials()): @@ -185,10 +193,10 @@ class DirectDials(DialNode, PandaObject): return self.getNumDials() def enable(self): - self.nodePath.reparentTo(base.dataRoot) + self.nodePath.reparentTo(myBase.dataRoot) def disable(self): - self.nodePath.reparentTo(base.dataUnused) + self.nodePath.reparentTo(myBase.dataUnused) def getName(self): return self.name @@ -202,7 +210,7 @@ class DirectDials(DialNode, PandaObject): str = str + '%.3f' % val + ' ' return str -class DirectTimecodeReader(AnalogNode, PandaObject): +class DirectTimecodeReader(AnalogNode, DirectObject): timecodeReaderCount = 0 def __init__(self, vrpnClient, device): # Keep track of number of timecodeReader created @@ -218,13 +226,13 @@ class DirectTimecodeReader(AnalogNode, PandaObject): # Create a new dial node for the given device AnalogNode.__init__(self, vrpnClient, device) # Attach node to data graph - self.nodePath = base.dataRoot.attachNewNode(self) + self.nodePath = myBase.dataRoot.attachNewNode(self) def enable(self): - self.nodePath.reparentTo(base.dataRoot) + self.nodePath.reparentTo(myBase.dataRoot) def disable(self): - self.nodePath.reparentTo(base.dataUnused) + self.nodePath.reparentTo(myBase.dataUnused) def getName(self): return self.name @@ -253,3 +261,18 @@ class DirectTimecodeReader(AnalogNode, PandaObject): def __repr__(self): str = ('%s: %d:%d:%d:%d' % ((self.name,) + self.getTime()[:-1])) return str + + + + + + + + + + + + + + + diff --git a/direct/src/directdevices/DirectJoybox.py b/direct/src/directdevices/DirectJoybox.py index 476a4d1091..464d8c1fc2 100644 --- a/direct/src/directdevices/DirectJoybox.py +++ b/direct/src/directdevices/DirectJoybox.py @@ -42,7 +42,7 @@ class DirectJoybox(PandaObject): 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] + 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, diff --git a/direct/src/directtools/DirectSession.py b/direct/src/directtools/DirectSession.py index e5abc117e8..3b4be3476a 100644 --- a/direct/src/directtools/DirectSession.py +++ b/direct/src/directtools/DirectSession.py @@ -960,3 +960,9 @@ __builtin__.direct = base.direct = DirectSession() + + + + + + diff --git a/direct/src/ffi/genPyCode b/direct/src/ffi/genPyCode index 0cd3bbfd97..4a0c93e29e 100755 --- a/direct/src/ffi/genPyCode +++ b/direct/src/ffi/genPyCode @@ -13,6 +13,12 @@ shift firstarg="$1" fi +if [ "$firstarg" = "-v" ]; then +extra_genPyCode_libs="libvrpn" +shift +firstarg="$1" +fi + shift extra_genPyCode_libs="$extra_genPyCode_libs $*" diff --git a/direct/src/gui/DirectFrame.py b/direct/src/gui/DirectFrame.py index 86cb0336dd..b0366ad8eb 100644 --- a/direct/src/gui/DirectFrame.py +++ b/direct/src/gui/DirectFrame.py @@ -64,6 +64,7 @@ class DirectFrame(DirectGuiWidget): if text == None: return else: + from OnscreenText import OnscreenText self.createcomponent( component, (), 'text', OnscreenText, diff --git a/direct/src/interval/SoundInterval.py b/direct/src/interval/SoundInterval.py index a28622be42..cfe37aa806 100644 --- a/direct/src/interval/SoundInterval.py +++ b/direct/src/interval/SoundInterval.py @@ -39,7 +39,7 @@ class SoundInterval(Interval): #duration += 1.5 # DCR - hack for Miles bug - adding 1.5 seconds caused # problems for MG_neg_buzzer.wav - duration += min(duration * 0.4, 1.5) + duration += min(duration * 2.4, 1.5) else: # This will screw up any intervals that base their # time on the duration of this sound interval @@ -86,3 +86,4 @@ class SoundInterval(Interval): +