Sunag.SEA3D.SEA3DAssimp.AppendMesh C# (CSharp) Method

AppendMesh() private method

private AppendMesh ( Assimp.Scene scene, Assimp.Node node, List meshes, SEAObject3D parent ) : SEAMesh
scene Assimp.Scene
node Assimp.Node
meshes List
parent Poonya.SEA3D.Objects.SEAObject3D
return Poonya.SEA3D.Objects.SEAMesh
        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;
        }