svn merge -r40197:40311 ^/trunk/blender
[blender.git] / source / blender / collada / TransformWriter.cpp
index 3ac0654c86668e72a71ed8f5d47fcaab3e4abf18..34d13a2184d2fa8c72d4c07002efa26d1d89aac2 100644 (file)
@@ -49,13 +49,14 @@ void TransformWriter::add_node_transform(COLLADASW::Node& node, float mat[][4],
        }
 
        double dmat[4][4];
-       for ( int i = 0 ; i< 4 ; i ++ )
-               for ( int j =0 ; j < 4 ; j++)
-                       dmat[i][j]  = (double)local[i][j];
+       UnitConverter* converter = new UnitConverter();
+       converter->mat4_to_dae_double(dmat,local);
 
        TransformBase::decompose(local, loc, rot, NULL, scale);
-       node.addMatrix("transform",dmat);
-       add_transform(node, loc, rot, scale);
+       if ( node.getType() == COLLADASW::Node::JOINT)
+               node.addMatrix("transform",dmat);
+       else
+               add_transform(node, loc, rot, scale);
 }
 
 void TransformWriter::add_node_transform_ob(COLLADASW::Node& node, Object *ob)
@@ -106,9 +107,9 @@ void TransformWriter::add_transform(COLLADASW::Node& node, float loc[3], float r
        /*node.addRotateZ("rotationZ", COLLADABU::Math::Utils::radToDegF(rot[2]));
        node.addRotateY("rotationY", COLLADABU::Math::Utils::radToDegF(rot[1]));
        node.addRotateX("rotationX", COLLADABU::Math::Utils::radToDegF(rot[0]));*/
-       node.addRotateZ("rotationZ", rot[2] * 180.0f/M_PI);
-       node.addRotateY("rotationY", (rot[1]* 180.0f/M_PI));
-       node.addRotateX("rotationX", (rot[0]* 180.0f/M_PI));
+       node.addRotateZ("rotationZ", RAD2DEGF(rot[2]));
+       node.addRotateY("rotationY", RAD2DEGF(rot[1]));
+       node.addRotateX("rotationX", RAD2DEGF(rot[0]));
 
        node.addScale("scale", scale[0], scale[1], scale[2]);
 }