Add compiler settings to mjmModel.
PiperOrigin-RevId: 608908314 Change-Id: Id3b0d8c62ca710b5b6d6e423abbbddcb7e7079a1
This commit is contained in:
committed by
Copybara-Service
parent
abf6d41b7f
commit
042760eba8
+21
-27
@@ -25,15 +25,10 @@
|
||||
#include <mujoco/mjdata.h>
|
||||
#include <mujoco/mjmodel.h>
|
||||
#include <mujoco/mjplugin.h>
|
||||
#include <mujoco/mjtnum.h>
|
||||
#include "user/user_api.h"
|
||||
#include "user/user_objects.h"
|
||||
|
||||
typedef enum _mjtInertiaFromGeom {
|
||||
mjINERTIAFROMGEOM_FALSE = 0, // do not use; inertial element required
|
||||
mjINERTIAFROMGEOM_TRUE, // always use; overwrite inertial element
|
||||
mjINERTIAFROMGEOM_AUTO // use only if inertial element is missing
|
||||
} mjtInertiaFromGeom;
|
||||
|
||||
typedef std::map<std::string, int, std::less<> > mjKeyMap;
|
||||
typedef std::array<mjKeyMap, mjNOBJECT> mjListKeyMap;
|
||||
|
||||
@@ -49,10 +44,19 @@ typedef std::array<mjKeyMap, mjNOBJECT> mjListKeyMap;
|
||||
|
||||
class mjCModel : private mjmModel {
|
||||
friend class mjCBody;
|
||||
friend class mjCCamera;
|
||||
friend class mjCGeom;
|
||||
friend class mjCFlex;
|
||||
friend class mjCHField;
|
||||
friend class mjCFrame;
|
||||
friend class mjCJoint;
|
||||
friend class mjCEquality;
|
||||
friend class mjCMesh;
|
||||
friend class mjCSkin;
|
||||
friend class mjCSite;
|
||||
friend class mjCTendon;
|
||||
friend class mjCTexture;
|
||||
friend class mjCActuator;
|
||||
friend class mjXReader;
|
||||
friend class mjXWriter;
|
||||
|
||||
@@ -60,6 +64,7 @@ class mjCModel : private mjmModel {
|
||||
mjCModel(); // constructor
|
||||
~mjCModel(); // destructor
|
||||
void CopyFromSpec(); // copy spec to private attributes
|
||||
void PointToLocal();
|
||||
|
||||
mjmModel spec;
|
||||
|
||||
@@ -110,6 +115,10 @@ class mjCModel : private mjmModel {
|
||||
mjCBase* FindObject(mjtObj type, std::string name); // find object given type and name
|
||||
bool IsNullPose(const mjtNum* pos, const mjtNum* quat); // detect null pose
|
||||
|
||||
//------------------------ getters
|
||||
std::string get_meshdir(void) const { return meshdir_; }
|
||||
std::string get_texturedir(void) const { return texturedir_; }
|
||||
|
||||
//------------------------ API for plugins
|
||||
void ResolvePlugin(mjCBase* obj, // resolve plugin instance, create a new one if needed
|
||||
const std::string& plugin_name,
|
||||
@@ -122,27 +131,6 @@ class mjCModel : private mjmModel {
|
||||
std::string modelfiledir; // path to model file
|
||||
std::vector<mjCDef*> defaults; // settings for each defaults class
|
||||
|
||||
//------------------------ compiler settings
|
||||
bool autolimits; // infer "limited" attribute based on range
|
||||
double boundmass; // enforce minimum body mass
|
||||
double boundinertia; // enforce minimum body diagonal inertia
|
||||
double settotalmass; // rescale masses and inertias; <=0: ignore
|
||||
bool balanceinertia; // automatically impose A + B >= C rule
|
||||
bool strippath; // automatically strip paths from mesh files
|
||||
bool fitaabb; // meshfit to aabb instead of inertia box
|
||||
bool degree; // angles in radians or degrees
|
||||
char euler[3]; // sequence for euler rotations
|
||||
std::string meshdir; // mesh and hfield directory
|
||||
std::string texturedir; // texture directory
|
||||
bool discardvisual; // discard visual geoms in parser
|
||||
bool convexhull; // compute mesh convex hulls
|
||||
bool usethread; // use multiple threads to speed up compiler
|
||||
bool fusestatic; // fuse static bodies with parent
|
||||
int inertiafromgeom; // use geom inertias (mjtInertiaFromGeom)
|
||||
int inertiagrouprange[2]; // range of geom groups used to compute inertia
|
||||
bool exactmeshinertia; // if false, use old formula
|
||||
mjLROpt LRopt; // options for lengthrange computation
|
||||
|
||||
//------------------------ engine data
|
||||
std::string modelname; // model name
|
||||
mjOption option; // options
|
||||
@@ -307,5 +295,11 @@ class mjCModel : private mjmModel {
|
||||
mjCError errInfo; // last error info
|
||||
int fixCount; // how many bodies have been fixed
|
||||
std::vector<mjtNum> qpos0; // save qpos0, to recognize changed key_qpos in write
|
||||
|
||||
// variable-size attributes
|
||||
std::string meshdir_;
|
||||
std::string texturedir_;
|
||||
std::string spec_meshdir_;
|
||||
std::string spec_texturedir_;
|
||||
};
|
||||
#endif // MUJOCO_SRC_USER_USER_MODEL_H_
|
||||
|
||||
Reference in New Issue
Block a user