private static PartialModel AppendPartialMesh(Assimp.Mesh mesh) { var primitiveType = OpenTK.Graphics.OpenGL.PrimitiveType.Triangles; if (mesh.Faces[0].IndexCount == 4) { primitiveType = OpenTK.Graphics.OpenGL.PrimitiveType.Quads; } int curIdx = GeneralMeshBuffer.IndexCount; int curVert = GeneralMeshBuffer.VertexCount; GeneralMeshBuffer.LoadModelVertices(mesh, true); int idxCount = GeneralMeshBuffer.IndexCount - curIdx; var vertices = GeneralMeshBuffer.GetVertices().Skip(curVert); var vertexPositions = vertices.Select(x => x.Position).ToList(); var bounding = BBox.FromVertices(vertexPositions); var model = new PartialModel(GeneralMeshBuffer, curIdx, curVert, idxCount, primitiveType); model.BoundingBox = bounding; model.Vertices = vertexPositions; LoadedModels.Add(model); //model.LoadVertices(); //model.CalculateBoundingBox(); return(model); }