Skip to content
Snippets Groups Projects
Commit 6afd515e authored by Daniel M. Basso's avatar Daniel M. Basso
Browse files

Fixed importing float c3d files with non-native endianness.

parent 0fcd60fe
No related branches found
No related tags found
No related merge requests found
...@@ -25,7 +25,7 @@ ...@@ -25,7 +25,7 @@
bl_info = { bl_info = {
'name': "C3D Graphics Lab Motion Capture file (.c3d)", 'name': "C3D Graphics Lab Motion Capture file (.c3d)",
'author': "Daniel Monteiro Basso <daniel@basso.inf.br>", 'author': "Daniel Monteiro Basso <daniel@basso.inf.br>",
'version': (2011, 11, 2, 1), 'version': (2011, 11, 3, 1),
'blender': (2, 6, 0), 'blender': (2, 6, 0),
'api': 41226, 'api': 41226,
'location': "File > Import", 'location': "File > Import",
......
...@@ -169,7 +169,10 @@ class MarkerSet: ...@@ -169,7 +169,10 @@ class MarkerSet:
self.frameRate) = struct.unpack('fhhf', td) self.frameRate) = struct.unpack('fhhf', td)
self.scale *= scale self.scale *= scale
if self.scale < 0: if self.scale < 0:
self.readMarker = self.readFloatMarker if self.procType == 2:
self.readMarker = self.readFloatMarkerInvOrd
else:
self.readMarker = self.readFloatMarker
self.scale *= -1 self.scale *= -1
else: else:
self.readMarker = self.readShortMarker self.readMarker = self.readShortMarker
...@@ -203,6 +206,14 @@ class MarkerSet: ...@@ -203,6 +206,14 @@ class MarkerSet:
m.position = (x * self.scale, y * self.scale, z * self.scale) m.position = (x * self.scale, y * self.scale, z * self.scale)
return m 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): def readShortMarker(self, infile):
m = Marker() m = Marker()
x, y, z, m.confidence = struct.unpack('hhhh', infile.read(8)) x, y, z, m.confidence = struct.unpack('hhhh', infile.read(8))
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment