mirror of
https://github.com/panda3d/panda3d.git
synced 2025-10-02 09:52:27 -04:00
better rounding (better behavior for negative numbers
This commit is contained in:
parent
fb284b821f
commit
5d86a43700
@ -3,21 +3,21 @@
|
||||
# Import the type numbers
|
||||
import DCSubatomicType
|
||||
if subatomicType == DCSubatomicType.STInt8:
|
||||
self.addInt8(int(arg*divisor+0.5))
|
||||
self.addInt8(int(round(arg*divisor)))
|
||||
elif subatomicType == DCSubatomicType.STInt16:
|
||||
self.addInt16(int(arg*divisor+0.5))
|
||||
self.addInt16(int(round(arg*divisor)))
|
||||
elif subatomicType == DCSubatomicType.STInt32:
|
||||
self.addInt32(int(arg*divisor+0.5))
|
||||
self.addInt32(int(round(arg*divisor)))
|
||||
elif subatomicType == DCSubatomicType.STInt64:
|
||||
self.addInt64(int(arg*divisor+0.5))
|
||||
self.addInt64(int(round(arg*divisor)))
|
||||
elif subatomicType == DCSubatomicType.STUint8:
|
||||
self.addUint8(int(arg*divisor+0.5))
|
||||
self.addUint8(int(round(arg*divisor)))
|
||||
elif subatomicType == DCSubatomicType.STUint16:
|
||||
self.addUint16(int(arg*divisor+0.5))
|
||||
self.addUint16(int(round(arg*divisor)))
|
||||
elif subatomicType == DCSubatomicType.STUint32:
|
||||
self.addUint32(int(arg*divisor+0.5))
|
||||
self.addUint32(int(round(arg*divisor)))
|
||||
elif subatomicType == DCSubatomicType.STUint64:
|
||||
self.addUint64(int(arg*divisor+0.5))
|
||||
self.addUint64(int(round(arg*divisor)))
|
||||
elif subatomicType == DCSubatomicType.STFloat64:
|
||||
self.addFloat64(arg)
|
||||
elif subatomicType == DCSubatomicType.STString:
|
||||
@ -27,32 +27,32 @@
|
||||
elif subatomicType == DCSubatomicType.STInt8array:
|
||||
self.addUint16(len(arg))
|
||||
for i in arg:
|
||||
self.addInt8(int(i*divisor+0.5))
|
||||
self.addInt8(int(round(i*divisor)))
|
||||
elif subatomicType == DCSubatomicType.STInt16array:
|
||||
self.addUint16(len(arg) << 1)
|
||||
for i in arg:
|
||||
self.addInt16(int(i*divisor+0.5))
|
||||
self.addInt16(int(round(i*divisor)))
|
||||
elif subatomicType == DCSubatomicType.STInt32array:
|
||||
self.addUint16(len(arg) << 2)
|
||||
for i in arg:
|
||||
self.addInt32(int(i*divisor+0.5))
|
||||
self.addInt32(int(round(i*divisor)))
|
||||
elif subatomicType == DCSubatomicType.STUint8array:
|
||||
self.addUint16(len(arg))
|
||||
for i in arg:
|
||||
self.addUint8(int(i*divisor+0.5))
|
||||
self.addUint8(int(round(i*divisor)))
|
||||
elif subatomicType == DCSubatomicType.STUint16array:
|
||||
self.addUint16(len(arg) << 1)
|
||||
for i in arg:
|
||||
self.addUint16(int(i*divisor+0.5))
|
||||
self.addUint16(int(round(i*divisor)))
|
||||
elif subatomicType == DCSubatomicType.STUint32array:
|
||||
self.addUint16(len(arg) << 2)
|
||||
for i in arg:
|
||||
self.addUint32(int(i*divisor+0.5))
|
||||
self.addUint32(int(round(i*divisor)))
|
||||
elif subatomicType == DCSubatomicType.STUint32uint8array:
|
||||
self.addUint16(len(arg) * 5)
|
||||
for i in arg:
|
||||
self.addUint32(int(i[0]*divisor+0.5))
|
||||
self.addUint8(int(i[1]*divisor+0.5))
|
||||
self.addUint32(int(round(i[0]*divisor)))
|
||||
self.addUint8(int(round(i[1]*divisor)))
|
||||
else:
|
||||
raise Exception("Error: No such type as: " + str(subatomicType))
|
||||
return None
|
||||
|
Loading…
x
Reference in New Issue
Block a user