[Bf-extensions-cvs] SVN commit: /data/svn/bf-extensions [2574] trunk/py/scripts/addons/ io_anim_c3d: Fixed importing float c3d files with non-native endianness.
Daniel M. Basso
danielmbasso at gmail.com
Thu Nov 3 02:13:08 CET 2011
Revision: 2574
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-extensions&revision=2574
Author: dmbasso
Date: 2011-11-03 01:13:07 +0000 (Thu, 03 Nov 2011)
Log Message:
-----------
Fixed importing float c3d files with non-native endianness.
Modified Paths:
--------------
trunk/py/scripts/addons/io_anim_c3d/__init__.py
trunk/py/scripts/addons/io_anim_c3d/c3d.py
Modified: trunk/py/scripts/addons/io_anim_c3d/__init__.py
===================================================================
--- trunk/py/scripts/addons/io_anim_c3d/__init__.py 2011-11-03 00:22:18 UTC (rev 2573)
+++ trunk/py/scripts/addons/io_anim_c3d/__init__.py 2011-11-03 01:13:07 UTC (rev 2574)
@@ -25,7 +25,7 @@
bl_info = {
'name': "C3D Graphics Lab Motion Capture file (.c3d)",
'author': "Daniel Monteiro Basso <daniel at basso.inf.br>",
- 'version': (2011, 11, 2, 1),
+ 'version': (2011, 11, 3, 1),
'blender': (2, 6, 0),
'api': 41226,
'location': "File > Import",
Modified: trunk/py/scripts/addons/io_anim_c3d/c3d.py
===================================================================
--- trunk/py/scripts/addons/io_anim_c3d/c3d.py 2011-11-03 00:22:18 UTC (rev 2573)
+++ trunk/py/scripts/addons/io_anim_c3d/c3d.py 2011-11-03 01:13:07 UTC (rev 2574)
@@ -169,7 +169,10 @@
self.frameRate) = struct.unpack('fhhf', td)
self.scale *= scale
if self.scale < 0:
- self.readMarker = self.readFloatMarker
+ if self.procType == 2:
+ self.readMarker = self.readFloatMarkerInvOrd
+ else:
+ self.readMarker = self.readFloatMarker
self.scale *= -1
else:
self.readMarker = self.readShortMarker
@@ -203,6 +206,14 @@
m.position = (x * self.scale, y * self.scale, z * self.scale)
return m
+ def readFloatMarkerInvOrd(self, infile):
+ m = Marker()
+ inv = lambda f: f[2:] + f[:2]
+ i = lambda: inv(infile.read(4))
+ x, y, z, m.confidence = struct.unpack('ffff', i() + i() + i() + i())
+ m.position = (x * self.scale, y * self.scale, z * self.scale)
+ return m
+
def readShortMarker(self, infile):
m = Marker()
x, y, z, m.confidence = struct.unpack('hhhh', infile.read(8))
More information about the Bf-extensions-cvs
mailing list