From 3c078eeef64a14b6ea753c0c0244a5f5c2301047 Mon Sep 17 00:00:00 2001 From: sabrina-shanman Date: Tue, 29 Oct 2019 17:25:38 -0700 Subject: [PATCH] It makes more sense for joint.globalTransform to have the hfmModel.offset applied --- libraries/fbx/src/FBXSerializer.cpp | 4 ++-- libraries/fbx/src/GLTFSerializer.cpp | 2 +- libraries/hfm/src/hfm/HFMModelMath.cpp | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/libraries/fbx/src/FBXSerializer.cpp b/libraries/fbx/src/FBXSerializer.cpp index bf79a012a0..79c3e1368c 100644 --- a/libraries/fbx/src/FBXSerializer.cpp +++ b/libraries/fbx/src/FBXSerializer.cpp @@ -1362,8 +1362,8 @@ HFMModel* FBXSerializer::extractHFMModel(const hifi::VariantHash& mapping, const joint.localTransform = glm::translate(joint.translation) * joint.preTransform * glm::mat4_cast(combinedRotation) * joint.postTransform; if (joint.parentIndex == -1) { - joint.transform = hfmModel.offset * joint.localTransform; - joint.globalTransform = joint.localTransform; + joint.transform = joint.localTransform; + joint.globalTransform = hfmModel.offset * joint.localTransform; joint.inverseDefaultRotation = glm::inverse(combinedRotation); joint.distanceToParent = 0.0f; } else { diff --git a/libraries/fbx/src/GLTFSerializer.cpp b/libraries/fbx/src/GLTFSerializer.cpp index 5bf1ea17ff..42306dce40 100755 --- a/libraries/fbx/src/GLTFSerializer.cpp +++ b/libraries/fbx/src/GLTFSerializer.cpp @@ -1015,7 +1015,7 @@ bool GLTFSerializer::buildGeometry(HFMModel& hfmModel, const hifi::VariantHash& joint.transform = parentJoint.transform * joint.transform; joint.globalTransform = joint.globalTransform * parentJoint.globalTransform; } else { - joint.transform = hfmModel.offset * joint.transform; + joint.transform = joint.transform; joint.globalTransform = hfmModel.offset * joint.globalTransform; } diff --git a/libraries/hfm/src/hfm/HFMModelMath.cpp b/libraries/hfm/src/hfm/HFMModelMath.cpp index 93687b08b0..0026378060 100644 --- a/libraries/hfm/src/hfm/HFMModelMath.cpp +++ b/libraries/hfm/src/hfm/HFMModelMath.cpp @@ -43,13 +43,13 @@ void calculateExtentsForShape(hfm::Shape& shape, const std::vector& m const auto& mesh = meshes[shape.mesh]; const auto& meshPart = mesh.parts[shape.meshPart]; - glm::mat4 globalTransform = joints[shape.joint].globalTransform; + glm::mat4 transform = joints[shape.joint].transform; forEachIndex(meshPart, [&](int32_t idx){ if (mesh.vertices.size() <= idx) { return; } const glm::vec3& vertex = mesh.vertices[idx]; - const glm::vec3 transformedVertex = glm::vec3(globalTransform * glm::vec4(vertex, 1.0f)); + const glm::vec3 transformedVertex = glm::vec3(transform * glm::vec4(vertex, 1.0f)); shapeExtents.addPoint(transformedVertex); });