diff options
Diffstat (limited to 'source/blender/collada/TransformReader.cpp')
-rw-r--r-- | source/blender/collada/TransformReader.cpp | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/source/blender/collada/TransformReader.cpp b/source/blender/collada/TransformReader.cpp index 5bc135e9b67..e0ba77e2554 100644 --- a/source/blender/collada/TransformReader.cpp +++ b/source/blender/collada/TransformReader.cpp @@ -47,6 +47,10 @@ void TransformReader::get_node_mat(float mat[4][4], COLLADAFW::Node *node, std:: COLLADAFW::Transformation::TransformationType type = tm->getTransformationType(); switch (type) { + case COLLADAFW::Transformation::MATRIX: + // XXX why does this return and discard all following transformations? + dae_matrix_to_mat4(tm, mat); + return; case COLLADAFW::Transformation::TRANSLATE: dae_translate_to_mat4(tm, cur); break; @@ -56,9 +60,6 @@ void TransformReader::get_node_mat(float mat[4][4], COLLADAFW::Node *node, std:: case COLLADAFW::Transformation::SCALE: dae_scale_to_mat4(tm, cur); break; - case COLLADAFW::Transformation::MATRIX: - dae_matrix_to_mat4(tm, cur); - break; case COLLADAFW::Transformation::LOOKAT: case COLLADAFW::Transformation::SKEW: fprintf(stderr, "LOOKAT and SKEW transformations are not supported yet.\n"); @@ -67,7 +68,7 @@ void TransformReader::get_node_mat(float mat[4][4], COLLADAFW::Node *node, std:: copy_m4_m4(copy, mat); mult_m4_m4m4(mat, copy, cur); - + if (animation_map) { // AnimationList that drives this Transformation const COLLADAFW::UniqueId& anim_list_id = tm->getAnimationList(); |