Generalize mesh object to be the type of tiny_obj_loader.
This commit is contained in:
@@ -61,7 +61,6 @@
|
|||||||
#include "user/user_objects.h"
|
#include "user/user_objects.h"
|
||||||
#include "user/user_resource.h"
|
#include "user/user_resource.h"
|
||||||
#include "user/user_util.h"
|
#include "user/user_util.h"
|
||||||
#include <tiny_obj_loader.h>
|
|
||||||
|
|
||||||
extern "C" {
|
extern "C" {
|
||||||
#include "qhull_ra.h"
|
#include "qhull_ra.h"
|
||||||
@@ -394,7 +393,7 @@ void mjCMesh::CacheMesh(mjCCache* cache, const mjResource* resource,
|
|||||||
+ (sizeof(int) * vertex_index_.size())
|
+ (sizeof(int) * vertex_index_.size())
|
||||||
+ (sizeof(int) * normal_index_.size())
|
+ (sizeof(int) * normal_index_.size())
|
||||||
+ (sizeof(int) * texcoord_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<const void> cached_data(mesh, +[](const void* data) {
|
std::shared_ptr<const void> cached_data(mesh, +[](const void* data) {
|
||||||
const mjCMesh* mesh = static_cast<const mjCMesh*>(data);
|
const mjCMesh* mesh = static_cast<const mjCMesh*>(data);
|
||||||
|
|||||||
@@ -24,6 +24,7 @@
|
|||||||
#include <string_view>
|
#include <string_view>
|
||||||
#include <utility>
|
#include <utility>
|
||||||
#include <vector>
|
#include <vector>
|
||||||
|
#include <tiny_obj_loader.h>
|
||||||
|
|
||||||
#include <mujoco/mjtnum.h>
|
#include <mujoco/mjtnum.h>
|
||||||
#include <mujoco/mjmodel.h>
|
#include <mujoco/mjmodel.h>
|
||||||
@@ -32,6 +33,8 @@
|
|||||||
#include "user/user_cache.h"
|
#include "user/user_cache.h"
|
||||||
#include "user/user_util.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
|
// forward declarations of all mjC/X classes
|
||||||
class mjCError;
|
class mjCError;
|
||||||
class mjCBase;
|
class mjCBase;
|
||||||
@@ -993,7 +996,7 @@ class mjCMesh: public mjCMesh_, private mjsMesh {
|
|||||||
std::vector<int> vertex_index_;
|
std::vector<int> vertex_index_;
|
||||||
std::vector<int> normal_index_;
|
std::vector<int> normal_index_;
|
||||||
std::vector<int> texcoord_index_;
|
std::vector<int> texcoord_index_;
|
||||||
std::vector<unsigned char> num_face_vertices_;
|
std::vector<face_vertices_type> num_face_vertices_;
|
||||||
|
|
||||||
// compute the volume and center-of-mass of the mesh given the face center
|
// 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]);
|
void ComputeVolume(double CoM[3], mjtGeomInertia gtype, const double facecen[3]);
|
||||||
|
|||||||
Reference in New Issue
Block a user