private SEAMesh AppendMesh(Scene scene, Node node, List<Mesh> meshes, SEAObject3D parent)
{
int sIndex = GetIndexByTag(node);
if (sIndex != -1) return (SEAMesh)Writer.Objects[sIndex];
List<Animation> anmList = GetAnimation(scene, node.Name);
SEAGeometry geo = AppendGeometry(scene, node, meshes);
if (geo != null)
{
SEAMesh seaMesh = new SEAMesh(node.Name);
/*if (meshes[0].HasMeshAnimationAttachments)
{
}*/
Mesh mesh = meshes[0];
if (Modifiers && geo.jointPerVertex > 0)
{
seaMesh.modifiers.Add((uint)GetIndex(AppendSkeleton(scene, mesh)));
seaMesh.animations.Add((uint)GetIndex(AppendSkeletonAnimation(scene, mesh)));
}
if (mesh.MaterialIndex != -1)
{
seaMesh.materials.Add(GetIndex(AppendMaterial(scene, scene.Materials[mesh.MaterialIndex])));
}
seaMesh.parent = parent != null ? GetIndex(parent) : -1;
objects.Add(seaMesh);
Writer.AddObject(seaMesh);
seaMesh.transform = To3x4Array( node.Transform );
seaMesh.geometry = GetIndex(geo);
seaMesh.tag = node;
return seaMesh;
}
return null;
}