/// <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); }