Example #1
0
        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);
        }