From 9c2d85165013f9a41721f99567d3b5195ffa31f7 Mon Sep 17 00:00:00 2001 From: Andrzej Kapolka Date: Fri, 20 Sep 2013 16:38:44 -0700 Subject: [PATCH] Fixed bug in decoding: newer versions of Qt streaming use whatever precision the stream is set at for both floats and doubles. --- interface/src/renderer/FBXReader.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/interface/src/renderer/FBXReader.cpp b/interface/src/renderer/FBXReader.cpp index 1739008326..8398ba2513 100644 --- a/interface/src/renderer/FBXReader.cpp +++ b/interface/src/renderer/FBXReader.cpp @@ -41,6 +41,7 @@ template QVariant readArray(QDataStream& in) { QByteArray uncompressed = qUncompress(compressed); QDataStream uncompressedIn(uncompressed); uncompressedIn.setByteOrder(QDataStream::LittleEndian); + uncompressedIn.setVersion(QDataStream::Qt_4_5); // for single/double precision switch for (int i = 0; i < arrayLength; i++) { T value; uncompressedIn >> value; @@ -132,7 +133,7 @@ FBXNode parseFBXNode(QDataStream& in) { if (endOffset < MIN_VALID_OFFSET || nameLength == 0) { // use a null name to indicate a null node return node; - } + } node.name = in.device()->read(nameLength); for (int i = 0; i < propertyCount; i++) { @@ -155,6 +156,7 @@ FBXNode parseFBXNode(QDataStream& in) { FBXNode parseFBX(QIODevice* device) { QDataStream in(device); in.setByteOrder(QDataStream::LittleEndian); + in.setVersion(QDataStream::Qt_4_5); // for single/double precision switch // see http://code.blender.org/index.php/2013/08/fbx-binary-file-format-specification/ for an explanation // of the FBX format