IPhysicsMesh CreatePhysicsMesh(MyModel model) { IPhysicsMesh physicsMesh = new MyPhysicsMesh(); physicsMesh.SetAABB(model.BoundingBox.Min, model.BoundingBox.Max); for (int v = 0; v < model.GetVerticesCount(); v++) { Vector3 vertex = model.GetVertex(v); Vector3 normal = model.GetVertexNormal(v); Vector3 tangent = model.GetVertexTangent(v); if (model.TexCoords == null) { model.LoadTexCoordData(); } Vector2 texCoord = model.TexCoords[v].ToVector2(); physicsMesh.AddVertex(vertex, normal, tangent, texCoord); } for (int i = 0; i < model.Indices16.Length; i++) { physicsMesh.AddIndex(model.Indices16[i]); } for (int i = 0; i < model.GetMeshList().Count; i++) { var mesh = model.GetMeshList()[i]; physicsMesh.AddSectionData(mesh.IndexStart, mesh.TriCount, mesh.Material.Name); } return(physicsMesh); }
IPhysicsMesh CreatePhysicsMesh(MyModel model) { IPhysicsMesh physicsMesh = new MyPhysicsMesh(); physicsMesh.SetAABB(model.BoundingBox.Min, model.BoundingBox.Max); for (int v = 0; v < model.GetVerticesCount(); v++) { Vector3 vertex = model.GetVertex(v); Vector3 normal = model.GetVertexNormal(v); Vector3 tangent = model.GetVertexTangent(v); if (model.TexCoords == null) model.LoadTexCoordData(); Vector2 texCoord = model.TexCoords[v].ToVector2(); physicsMesh.AddVertex(vertex, normal, tangent, texCoord); } for (int i = 0; i < model.Indices16.Length; i++) { physicsMesh.AddIndex(model.Indices16[i]); } for (int i = 0; i < model.GetMeshList().Count; i++) { var mesh = model.GetMeshList()[i]; physicsMesh.AddSectionData(mesh.IndexStart, mesh.TriCount, mesh.Material.Name); } return physicsMesh; }