goat3d
diff src/goat3d_writexml.cc @ 30:0fe02696fb1e
yeeay, the max plugin works :)
author | John Tsiombikas <nuclear@member.fsf.org> |
---|---|
date | Sun, 29 Sep 2013 23:05:44 +0300 |
parents | b35427826b60 |
children | a5c5cec3cb88 |
line diff
1.1 --- a/src/goat3d_writexml.cc Sun Sep 29 21:53:03 2013 +0300 1.2 +++ b/src/goat3d_writexml.cc Sun Sep 29 23:05:44 2013 +0300 1.3 @@ -97,6 +97,46 @@ 1.4 1.5 static bool write_node(const Scene *scn, goat3d_io *io, const Node *node, int level) 1.6 { 1.7 + xmlout(io, level, "<node>\n"); 1.8 + xmlout(io, level + 1, "<name string=\"%s\"/>\n", node->get_name()); 1.9 + 1.10 + XFormNode *parent = node->get_parent(); 1.11 + if(parent) { 1.12 + xmlout(io, level + 1, "<parent string=\"%s\"/>\n", parent->get_name()); 1.13 + } 1.14 + 1.15 + const char *type = 0; 1.16 + const Object *obj = node->get_object(); 1.17 + if(dynamic_cast<const Mesh*>(obj)) { 1.18 + type = "mesh"; 1.19 + } else if(dynamic_cast<const Light*>(obj)) { 1.20 + type = "light"; 1.21 + } else if(dynamic_cast<const Camera*>(obj)) { 1.22 + type = "camera"; 1.23 + } 1.24 + 1.25 + if(type) { 1.26 + xmlout(io, level + 1, "<%s string=\"%s\"/>\n", type, obj->name.c_str()); 1.27 + } 1.28 + 1.29 + Vector3 pos = node->get_node_position(); 1.30 + Quaternion rot = node->get_node_rotation(); 1.31 + Vector3 scale = node->get_node_scaling(); 1.32 + Vector3 pivot = node->get_pivot(); 1.33 + 1.34 + Matrix4x4 xform; 1.35 + node->get_node_xform(0, &xform); 1.36 + 1.37 + xmlout(io, level + 1, "<pos float3=\"%g %g %g\"/>\n", pos.x, pos.y, pos.z); 1.38 + xmlout(io, level + 1, "<rot float4=\"%g %g %g %g\"/>\n", rot.v.x, rot.v.y, rot.v.z, rot.s); 1.39 + xmlout(io, level + 1, "<scale float3=\"%g %g %g\"/>\n", scale.x, scale.y, scale.z); 1.40 + xmlout(io, level + 1, "<pivot float3=\"%g %g %g\"/>\n", pivot.x, pivot.y, pivot.z); 1.41 + 1.42 + xmlout(io, level + 1, "<matrix0 float4=\"%g %g %g %g\"/>\n", xform[0][0], xform[0][1], xform[0][2], xform[0][3]); 1.43 + xmlout(io, level + 1, "<matrix1 float4=\"%g %g %g %g\"/>\n", xform[1][0], xform[1][1], xform[1][2], xform[1][3]); 1.44 + xmlout(io, level + 1, "<matrix2 float4=\"%g %g %g %g\"/>\n", xform[2][0], xform[2][1], xform[2][2], xform[2][3]); 1.45 + 1.46 + xmlout(io, level, "</node>\n"); 1.47 return true; 1.48 } 1.49