From 096b751815b0e098c92a03840757851db86c2ded Mon Sep 17 00:00:00 2001 From: Mark Mine Date: Thu, 19 Dec 2002 23:13:40 +0000 Subject: [PATCH] Changed joybox scaling --- direct/src/directdevices/DirectDeviceManager.py | 15 ++++++++------- direct/src/directdevices/DirectJoybox.py | 2 +- 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/direct/src/directdevices/DirectDeviceManager.py b/direct/src/directdevices/DirectDeviceManager.py index 59ca1f9f65..91345f0b8f 100644 --- a/direct/src/directdevices/DirectDeviceManager.py +++ b/direct/src/directdevices/DirectDeviceManager.py @@ -135,28 +135,29 @@ class DirectAnalogs(AnalogNode, DirectObject): ((val - self.analogMin) / self.analogRange)) + minVal) - def normalize(self, val, minVal = -1, maxVal = 1): + def normalize(self, val, minVal = -1, maxVal = 1, sf = 1.0): max = self.analogMax min = self.analogMin center = self.analogCenter deadband = self.analogDeadband range = self.analogRange + # Zero out values in deadband + if (abs(val) <= deadband): + return 0.0 + # Apply scale factor + val *= sf # Clamp value between min and max and scale around center if (val >= center): val = (val - center) / (max - center) else: val = (val - center) / (center - min) - # Zero out values in deadband - if (abs(val) <= deadband): - val = 0.0 # Normalize values to given minVal and maxVal range return (((maxVal - minVal) * ((val - min) / range)) + minVal) - - def normalizeChannel(self, chan, minVal = -1, maxVal = 1): + def normalizeChannel(self, chan, minVal = -1, maxVal = 1, sf = 1.0): try: - return self.normalize(self[chan], minVal, maxVal) + return self.normalize(self[chan], minVal, maxVal, sfx) except IndexError: return 0.0 diff --git a/direct/src/directdevices/DirectJoybox.py b/direct/src/directdevices/DirectJoybox.py index 62d035bc0d..b17d032111 100644 --- a/direct/src/directdevices/DirectJoybox.py +++ b/direct/src/directdevices/DirectJoybox.py @@ -409,7 +409,7 @@ class DirectJoybox(PandaObject): if (chan == L_TWIST) or (chan == R_TWIST): # These channels have reduced range return self.analogs.normalize( - self.analogs.getControlState(chan) * 3.0, minVal, maxVal) + self.analogs.getControlState(chan), minVal, maxVal, 3.0) else: return self.analogs.normalize( self.analogs.getControlState(chan), minVal, maxVal)