diff --git a/src/user/user_mesh.cc b/src/user/user_mesh.cc index 2e34945958..454a6c7f49 100644 --- a/src/user/user_mesh.cc +++ b/src/user/user_mesh.cc @@ -61,7 +61,6 @@ #include "user/user_objects.h" #include "user/user_resource.h" #include "user/user_util.h" -#include extern "C" { #include "qhull_ra.h" @@ -394,7 +393,7 @@ void mjCMesh::CacheMesh(mjCCache* cache, const mjResource* resource, + (sizeof(int) * vertex_index_.size()) + (sizeof(int) * normal_index_.size()) + (sizeof(int) * texcoord_index_.size()) - + (sizeof(unsigned char) * num_face_vertices_.size()); + + (sizeof(face_vertices_type) * num_face_vertices_.size()); std::shared_ptr cached_data(mesh, +[](const void* data) { const mjCMesh* mesh = static_cast(data); diff --git a/src/user/user_objects.h b/src/user/user_objects.h index 0d093c0e03..8e4114553f 100644 --- a/src/user/user_objects.h +++ b/src/user/user_objects.h @@ -24,6 +24,7 @@ #include #include #include +#include #include #include @@ -32,6 +33,8 @@ #include "user/user_cache.h" #include "user/user_util.h" +using face_vertices_type = decltype(tinyobj::mesh_t::num_face_vertices)::value_type; + // forward declarations of all mjC/X classes class mjCError; class mjCBase; @@ -993,7 +996,7 @@ class mjCMesh: public mjCMesh_, private mjsMesh { std::vector vertex_index_; std::vector normal_index_; std::vector texcoord_index_; - std::vector num_face_vertices_; + std::vector num_face_vertices_; // compute the volume and center-of-mass of the mesh given the face center void ComputeVolume(double CoM[3], mjtGeomInertia gtype, const double facecen[3]);