private SEAObject3D AppendObject3D(Scene scene, Node node, SEAObject3D parent)
{
SEAObject3D object3d = null;
/*
mtx.e00 / scale.x, mtx.e10 / scale.x, mtx.e20 / scale.x,
mtx.e01 / scale.y, mtx.e11 / scale.y, mtx.e21 / scale.y,
mtx.e02 / scale.z, mtx.e12 / scale.z, mtx.e22 / scale.z
*/
//node.Transform = node.Transform * Matrix4x4.FromEulerAnglesXYZ(-90, 0, 0);
if (node.MeshCount > 0)
{
object3d = AppendMesh(scene, node, scene.Meshes, parent);
}
else if (!MeshOnly && scene.RootNode != node)
{
object unrelatedObject = GetUnrelatedObjectByNode(node, scene);
if (unrelatedObject is Light)
{
object3d = AppendLight(scene, node, (Light)unrelatedObject, parent);
}
else if (unrelatedObject is Camera)
{
object3d = AppendCamera(scene, node, (Camera)unrelatedObject, parent);
}
else if (EnabledDummy)
{
object3d = AppendDummy(scene, node, parent);
}
}
foreach (Node children in node.Children)
{
AppendObject3D(scene, children, object3d);
}
return null;
}