Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender-addons.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel M. Basso <danielmbasso@gmail.com>2011-11-03 05:13:07 +0400
committerDaniel M. Basso <danielmbasso@gmail.com>2011-11-03 05:13:07 +0400
commit6afd515ecee367d05c96c6dbc31fb894e14b3c0b (patch)
treef493b18b2ed0f8618a2a7001efdf296631e35a7f /io_anim_c3d
parent0fcd60fe15f41054fd3b97e9ac0370851699a35f (diff)
Fixed importing float c3d files with non-native endianness.
Diffstat (limited to 'io_anim_c3d')
-rw-r--r--io_anim_c3d/__init__.py2
-rw-r--r--io_anim_c3d/c3d.py13
2 files changed, 13 insertions, 2 deletions
diff --git a/io_anim_c3d/__init__.py b/io_anim_c3d/__init__.py
index f8510fd2..1a460ea4 100644
--- a/io_anim_c3d/__init__.py
+++ b/io_anim_c3d/__init__.py
@@ -25,7 +25,7 @@
bl_info = {
'name': "C3D Graphics Lab Motion Capture file (.c3d)",
'author': "Daniel Monteiro Basso <daniel@basso.inf.br>",
- 'version': (2011, 11, 2, 1),
+ 'version': (2011, 11, 3, 1),
'blender': (2, 6, 0),
'api': 41226,
'location': "File > Import",
diff --git a/io_anim_c3d/c3d.py b/io_anim_c3d/c3d.py
index a28c5dce..7df6bcf8 100644
--- a/io_anim_c3d/c3d.py
+++ b/io_anim_c3d/c3d.py
@@ -169,7 +169,10 @@ class MarkerSet:
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 @@ class MarkerSet:
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))