Пример #1
0
        /// <summary>
        /// Inserts a new mesh and returns its index in MeshPointers.
        /// </summary>
        public int InsertMesh(TRMesh newMesh)
        {
            //get the final mesh we currently have
            TRMesh lastMesh = Meshes[Meshes.Length - 1];

            //new mesh pointer will be the current final mesh's pointer plus its length
            newMesh.Pointer = lastMesh.Pointer + (uint)lastMesh.Serialize().Length;

            List <TRMesh> meshes = Meshes.ToList();

            meshes.Add(newMesh);
            Meshes = meshes.ToArray();

            List <uint> pointers = MeshPointers.ToList();

            pointers.Add(newMesh.Pointer);
            MeshPointers = pointers.ToArray();
            NumMeshPointers++;

            //NumMeshData needs the additional mesh size added
            NumMeshData += (uint)newMesh.Serialize().Length / 2;

            //the pointer index will be the final index in the array
            return(MeshPointers.Length - 1);
        }