diff --git a/src/user/user_api.cc b/src/user/user_api.cc index 10ebc5d1..6af8b3d9 100644 --- a/src/user/user_api.cc +++ b/src/user/user_api.cc @@ -49,7 +49,7 @@ static T& operator+(T& base, std::string_view suffix) { // create model -mjSpec* mjm_createSpec() { +mjSpec* mjs_createSpec() { mjCModel* modelC = new mjCModel; return &modelC->spec; } @@ -57,7 +57,7 @@ mjSpec* mjm_createSpec() { // copy model -mjSpec* mjm_copySpec(const mjSpec* s) { +mjSpec* mjs_copySpec(const mjSpec* s) { mjCModel* modelC = new mjCModel(*reinterpret_cast(s->element)); return &modelC->spec; } @@ -65,7 +65,7 @@ mjSpec* mjm_copySpec(const mjSpec* s) { // copy back model -void mjm_copyBack(mjSpec* s, const mjModel* m) { +void mjs_copyBack(mjSpec* s, const mjModel* m) { mjCModel* modelC = reinterpret_cast(s->element); modelC->CopyBack(m); } @@ -73,7 +73,7 @@ void mjm_copyBack(mjSpec* s, const mjModel* m) { // compile model -mjModel* mjm_compile(mjSpec* s, const mjVFS* vfs) { +mjModel* mjs_compile(mjSpec* s, const mjVFS* vfs) { mjCModel* modelC = reinterpret_cast(s->element); return modelC->Compile(vfs); } @@ -81,7 +81,7 @@ mjModel* mjm_compile(mjSpec* s, const mjVFS* vfs) { // attach body to a frame of the parent -int mjm_attachBody(mjmFrame* parent, const mjmBody* child, +int mjs_attachBody(mjsFrame* parent, const mjsBody* child, const char* prefix, const char* suffix) { mjCFrame* frame_parent = reinterpret_cast(parent->element); mjCBody* child_body = reinterpret_cast(child->element); @@ -92,7 +92,7 @@ int mjm_attachBody(mjmFrame* parent, const mjmBody* child, // get error message from model -const char* mjm_getError(mjSpec* s) { +const char* mjs_getError(mjSpec* s) { mjCModel* modelC = reinterpret_cast(s->element); return modelC->GetError().message; } @@ -100,7 +100,7 @@ const char* mjm_getError(mjSpec* s) { // check if model has warnings -int mjm_isWarning(mjSpec* s) { +int mjs_isWarning(mjSpec* s) { mjCModel* modelC = reinterpret_cast(s->element); return modelC->GetError().warning; } @@ -108,7 +108,7 @@ int mjm_isWarning(mjSpec* s) { // delete model -void mjm_deleteSpec(mjSpec* s) { +void mjs_deleteSpec(mjSpec* s) { mjCModel* model = reinterpret_cast(s->element); delete model; } @@ -116,7 +116,7 @@ void mjm_deleteSpec(mjSpec* s) { // add child body to body, return child spec -mjmBody* mjm_addBody(mjmBody* bodyspec, mjmDefault* defspec) { +mjsBody* mjs_addBody(mjsBody* bodyspec, mjmDefault* defspec) { mjCDef* def = defspec ? reinterpret_cast(defspec->element) : 0; mjCBody* body = reinterpret_cast(bodyspec->element)->AddBody(def); return &body->spec; @@ -125,7 +125,7 @@ mjmBody* mjm_addBody(mjmBody* bodyspec, mjmDefault* defspec) { // add site to body, return site spec -mjmSite* mjm_addSite(mjmBody* bodyspec, mjmDefault* defspec) { +mjsSite* mjs_addSite(mjsBody* bodyspec, mjmDefault* defspec) { mjCDef* def = defspec ? reinterpret_cast(defspec->element) : 0; mjCBody* body = reinterpret_cast(bodyspec->element); mjCSite* site = body->AddSite(def); @@ -135,7 +135,7 @@ mjmSite* mjm_addSite(mjmBody* bodyspec, mjmDefault* defspec) { // add joint to body -mjmJoint* mjm_addJoint(mjmBody* bodyspec, mjmDefault* defspec) { +mjsJoint* mjs_addJoint(mjsBody* bodyspec, mjmDefault* defspec) { mjCDef* def = defspec ? reinterpret_cast(defspec->element) : 0; mjCBody* body = reinterpret_cast(bodyspec->element); mjCJoint* joint = body->AddJoint(def); @@ -145,7 +145,7 @@ mjmJoint* mjm_addJoint(mjmBody* bodyspec, mjmDefault* defspec) { // add free joint to body -mjmJoint* mjm_addFreeJoint(mjmBody* bodyspec) { +mjsJoint* mjs_addFreeJoint(mjsBody* bodyspec) { mjCBody* body = reinterpret_cast(bodyspec->element); mjCJoint* joint = body->AddFreeJoint(); return &joint->spec; @@ -154,7 +154,7 @@ mjmJoint* mjm_addFreeJoint(mjmBody* bodyspec) { // add geom to body -mjmGeom* mjm_addGeom(mjmBody* bodyspec, mjmDefault* defspec) { +mjsGeom* mjs_addGeom(mjsBody* bodyspec, mjmDefault* defspec) { mjCDef* def = defspec ? reinterpret_cast(defspec->element) : 0; mjCBody* body = reinterpret_cast(bodyspec->element); mjCGeom* geom = body->AddGeom(def); @@ -164,7 +164,7 @@ mjmGeom* mjm_addGeom(mjmBody* bodyspec, mjmDefault* defspec) { // add camera to body -mjmCamera* mjm_addCamera(mjmBody* bodyspec, mjmDefault* defspec) { +mjsCamera* mjs_addCamera(mjsBody* bodyspec, mjmDefault* defspec) { mjCDef* def = defspec ? reinterpret_cast(defspec->element) : 0; mjCBody* body = reinterpret_cast(bodyspec->element); mjCCamera* camera = body->AddCamera(def); @@ -174,7 +174,7 @@ mjmCamera* mjm_addCamera(mjmBody* bodyspec, mjmDefault* defspec) { // add light to body -mjmLight* mjm_addLight(mjmBody* bodyspec, mjmDefault* defspec) { +mjsLight* mjs_addLight(mjsBody* bodyspec, mjmDefault* defspec) { mjCDef* def = defspec ? reinterpret_cast(defspec->element) : 0; mjCBody* body = reinterpret_cast(bodyspec->element); mjCLight* light = body->AddLight(def); @@ -184,7 +184,7 @@ mjmLight* mjm_addLight(mjmBody* bodyspec, mjmDefault* defspec) { // add flex to model -mjmFlex* mjm_addFlex(mjSpec* s) { +mjsFlex* mjs_addFlex(mjSpec* s) { mjCModel* modelC = reinterpret_cast(s->element); mjCFlex* flex = modelC->AddFlex(); return &flex->spec; @@ -193,7 +193,7 @@ mjmFlex* mjm_addFlex(mjSpec* s) { // add frame to body -mjmFrame* mjm_addFrame(mjmBody* bodyspec, mjmFrame* parentframe) { +mjsFrame* mjs_addFrame(mjsBody* bodyspec, mjsFrame* parentframe) { mjCFrame* parentframeC = 0; if (parentframe) { parentframeC = reinterpret_cast(parentframe->element); @@ -207,7 +207,7 @@ mjmFrame* mjm_addFrame(mjmBody* bodyspec, mjmFrame* parentframe) { // add mesh to model -mjmMesh* mjm_addMesh(mjSpec* s, mjmDefault* defspec) { +mjsMesh* mjs_addMesh(mjSpec* s, mjmDefault* defspec) { mjCDef* def = defspec ? reinterpret_cast(defspec->element) : 0; mjCModel* modelC = reinterpret_cast(s->element); mjCMesh* mesh = modelC->AddMesh(def); @@ -217,7 +217,7 @@ mjmMesh* mjm_addMesh(mjSpec* s, mjmDefault* defspec) { // add height field to model -mjmHField* mjm_addHField(mjSpec* s) { +mjsHField* mjs_addHField(mjSpec* s) { mjCModel* modelC = reinterpret_cast(s->element); mjCHField* heightField = modelC->AddHField(); return &heightField->spec; @@ -226,7 +226,7 @@ mjmHField* mjm_addHField(mjSpec* s) { // add skin to model -mjmSkin* mjm_addSkin(mjSpec* s) { +mjsSkin* mjs_addSkin(mjSpec* s) { mjCModel* modelC = reinterpret_cast(s->element); mjCSkin* skin = modelC->AddSkin(); return &skin->spec; @@ -235,7 +235,7 @@ mjmSkin* mjm_addSkin(mjSpec* s) { // add texture to model -mjmTexture* mjm_addTexture(mjSpec* s) { +mjsTexture* mjs_addTexture(mjSpec* s) { mjCModel* modelC = reinterpret_cast(s->element); mjCTexture* texture = modelC->AddTexture(); return &texture->spec; @@ -244,7 +244,7 @@ mjmTexture* mjm_addTexture(mjSpec* s) { // add material to model -mjmMaterial* mjm_addMaterial(mjSpec* s, mjmDefault* defspec) { +mjsMaterial* mjs_addMaterial(mjSpec* s, mjmDefault* defspec) { mjCModel* modelC = reinterpret_cast(s->element); mjCDef* def = defspec ? reinterpret_cast(defspec->element) : 0; mjCMaterial* material = modelC->AddMaterial(def); @@ -254,7 +254,7 @@ mjmMaterial* mjm_addMaterial(mjSpec* s, mjmDefault* defspec) { // add pair to model -mjmPair* mjm_addPair(mjSpec* s, mjmDefault* defspec) { +mjsPair* mjs_addPair(mjSpec* s, mjmDefault* defspec) { mjCModel* modelC = reinterpret_cast(s->element); mjCDef* def = defspec ? reinterpret_cast(defspec->element) : 0; mjCPair* pair = modelC->AddPair(def); @@ -264,7 +264,7 @@ mjmPair* mjm_addPair(mjSpec* s, mjmDefault* defspec) { // add pair exclusion to model -mjmExclude* mjm_addExclude(mjSpec* s) { +mjsExclude* mjs_addExclude(mjSpec* s) { mjCModel* modelC = reinterpret_cast(s->element); mjCBodyPair* bodypair = modelC->AddExclude(); return &bodypair->spec; @@ -273,7 +273,7 @@ mjmExclude* mjm_addExclude(mjSpec* s) { // add equality to model -mjmEquality* mjm_addEquality(mjSpec* s, mjmDefault* defspec) { +mjsEquality* mjs_addEquality(mjSpec* s, mjmDefault* defspec) { mjCModel* modelC = reinterpret_cast(s->element); mjCDef* def = defspec ? reinterpret_cast(defspec->element) : 0; mjCEquality* equality = modelC->AddEquality(def); @@ -283,7 +283,7 @@ mjmEquality* mjm_addEquality(mjSpec* s, mjmDefault* defspec) { // add tendon to model -mjmTendon* mjm_addTendon(mjSpec* s, mjmDefault* defspec) { +mjsTendon* mjs_addTendon(mjSpec* s, mjmDefault* defspec) { mjCModel* modelC = reinterpret_cast(s->element); mjCDef* def = defspec ? reinterpret_cast(defspec->element) : 0; mjCTendon* tendon = modelC->AddTendon(def); @@ -293,7 +293,7 @@ mjmTendon* mjm_addTendon(mjSpec* s, mjmDefault* defspec) { // wrap site using tendon -MJAPI mjmWrap* mjm_wrapSite(mjmTendon* tendonspec, const char* name) { +MJAPI mjsWrap* mjs_wrapSite(mjsTendon* tendonspec, const char* name) { mjCTendon* tendon = reinterpret_cast(tendonspec->element); tendon->WrapSite(name); return &tendon->path.back()->spec; @@ -302,7 +302,7 @@ MJAPI mjmWrap* mjm_wrapSite(mjmTendon* tendonspec, const char* name) { // wrap geom using tendon -mjmWrap* mjm_wrapGeom(mjmTendon* tendonspec, const char* name, const char* sidesite) { +mjsWrap* mjs_wrapGeom(mjsTendon* tendonspec, const char* name, const char* sidesite) { mjCTendon* tendon = reinterpret_cast(tendonspec->element); tendon->WrapGeom(name, sidesite); return &tendon->path.back()->spec; @@ -311,7 +311,7 @@ mjmWrap* mjm_wrapGeom(mjmTendon* tendonspec, const char* name, const char* sides // wrap joint using tendon -mjmWrap* mjm_wrapJoint(mjmTendon* tendonspec, const char* name, double coef) { +mjsWrap* mjs_wrapJoint(mjsTendon* tendonspec, const char* name, double coef) { mjCTendon* tendon = reinterpret_cast(tendonspec->element); tendon->WrapJoint(name, coef); return &tendon->path.back()->spec; @@ -320,7 +320,7 @@ mjmWrap* mjm_wrapJoint(mjmTendon* tendonspec, const char* name, double coef) { // wrap pulley using tendon -mjmWrap* mjm_wrapPulley(mjmTendon* tendonspec, double divisor) { +mjsWrap* mjs_wrapPulley(mjsTendon* tendonspec, double divisor) { mjCTendon* tendon = reinterpret_cast(tendonspec->element); tendon->WrapPulley(divisor); return &tendon->path.back()->spec; @@ -329,7 +329,7 @@ mjmWrap* mjm_wrapPulley(mjmTendon* tendonspec, double divisor) { // add actuator to model -mjmActuator* mjm_addActuator(mjSpec* s, mjmDefault* defspec) { +mjsActuator* mjs_addActuator(mjSpec* s, mjmDefault* defspec) { mjCModel* modelC = reinterpret_cast(s->element); mjCDef* def = defspec ? reinterpret_cast(defspec->element) : 0; mjCActuator* actuator = modelC->AddActuator(def); @@ -339,7 +339,7 @@ mjmActuator* mjm_addActuator(mjSpec* s, mjmDefault* defspec) { // add sensor to model -mjmSensor* mjm_addSensor(mjSpec* s) { +mjsSensor* mjs_addSensor(mjSpec* s) { mjCModel* modelC = reinterpret_cast(s->element); mjCSensor* sensor = modelC->AddSensor(); return &sensor->spec; @@ -348,7 +348,7 @@ mjmSensor* mjm_addSensor(mjSpec* s) { // add numeric to model -mjmNumeric* mjm_addNumeric(mjSpec* s) { +mjsNumeric* mjs_addNumeric(mjSpec* s) { mjCModel* modelC = reinterpret_cast(s->element); mjCNumeric* numeric = modelC->AddNumeric(); return &numeric->spec; @@ -357,7 +357,7 @@ mjmNumeric* mjm_addNumeric(mjSpec* s) { // add text to model -mjmText* mjm_addText(mjSpec* s) { +mjsText* mjs_addText(mjSpec* s) { mjCModel* modelC = reinterpret_cast(s->element); mjCText* text = modelC->AddText(); return &text->spec; @@ -366,7 +366,7 @@ mjmText* mjm_addText(mjSpec* s) { // add tuple to model -mjmTuple* mjm_addTuple(mjSpec* s) { +mjsTuple* mjs_addTuple(mjSpec* s) { mjCModel* modelC = reinterpret_cast(s->element); mjCTuple* tuple = modelC->AddTuple(); return &tuple->spec; @@ -375,7 +375,7 @@ mjmTuple* mjm_addTuple(mjSpec* s) { // add keyframe to model -mjmKey* mjm_addKey(mjSpec* s) { +mjsKey* mjs_addKey(mjSpec* s) { mjCModel* modelC = reinterpret_cast(s->element); mjCKey* key = modelC->AddKey(); return &key->spec; @@ -384,7 +384,7 @@ mjmKey* mjm_addKey(mjSpec* s) { // add plugin to model -mjmPlugin* mjm_addPlugin(mjSpec* s) { +mjsPlugin* mjs_addPlugin(mjSpec* s) { mjCModel* modelC = reinterpret_cast(s->element); mjCPlugin* plugin = modelC->AddPlugin(); plugin->spec.instance = (mjElement)plugin; @@ -394,7 +394,7 @@ mjmPlugin* mjm_addPlugin(mjSpec* s) { // add default to model -mjmDefault* mjm_addDefault(mjSpec* s, const char* classname, int parentid, int* id) { +mjmDefault* mjs_addDefault(mjSpec* s, const char* classname, int parentid, int* id) { mjCModel* modelC = reinterpret_cast(s->element); *id = (int)modelC->defaults.size(); mjCDef* def = modelC->AddDef(classname, parentid); @@ -408,21 +408,21 @@ mjmDefault* mjm_addDefault(mjSpec* s, const char* classname, int parentid, int* // get objects -mjSpec* mjm_getSpec(mjmBody* body) { +mjSpec* mjs_getSpec(mjsBody* body) { return &(reinterpret_cast(body->element)->model->spec); } // get default -mjmDefault* mjm_getDefault(mjElement element) { +mjmDefault* mjs_getDefault(mjElement element) { return &(reinterpret_cast(element)->def->spec); } // Find default with given name in model. -mjmDefault* mjm_findDefault(mjSpec* s, const char* classname) { +mjmDefault* mjs_findDefault(mjSpec* s, const char* classname) { mjCModel* modelC = reinterpret_cast(s->element); mjCDef* cdef = modelC->FindDef(classname); if (!cdef) { @@ -434,7 +434,7 @@ mjmDefault* mjm_findDefault(mjSpec* s, const char* classname) { // get default[0] from model -mjmDefault* mjm_getSpecDefault(mjSpec* s) { +mjmDefault* mjs_getSpecDefault(mjSpec* s) { mjCModel* modelC = reinterpret_cast(s->element); mjCDef* def = modelC->defaults[0]; if (!def) { @@ -446,7 +446,7 @@ mjmDefault* mjm_getSpecDefault(mjSpec* s) { // find body in model by name -mjmBody* mjm_findBody(mjSpec* s, const char* name) { +mjsBody* mjs_findBody(mjSpec* s, const char* name) { mjCModel* model = reinterpret_cast(s->element); mjCBase* body = 0; if (model->IsCompiled()) { @@ -460,7 +460,7 @@ mjmBody* mjm_findBody(mjSpec* s, const char* name) { // find child of a body by name -mjmBody* mjm_findChild(mjmBody* bodyspec, const char* name) { +mjsBody* mjs_findChild(mjsBody* bodyspec, const char* name) { mjCBody* body = reinterpret_cast(bodyspec->element); mjCBase* child = body->FindObject(mjOBJ_BODY, std::string(name)); return child ? &(static_cast(child)->spec) : nullptr; @@ -469,7 +469,7 @@ mjmBody* mjm_findChild(mjmBody* bodyspec, const char* name) { // find mesh by name -mjmMesh* mjm_findMesh(mjSpec* s, const char* name) { +mjsMesh* mjs_findMesh(mjSpec* s, const char* name) { mjCModel* model = reinterpret_cast(s->element); mjCMesh* mesh = (mjCMesh*)model->FindObject(mjOBJ_MESH, std::string(name)); return mesh ? &(static_cast(mesh)->spec) : nullptr; @@ -478,7 +478,7 @@ mjmMesh* mjm_findMesh(mjSpec* s, const char* name) { // find frame by name -mjmFrame* mjm_findFrame(mjSpec* s, const char* name) { +mjsFrame* mjs_findFrame(mjSpec* s, const char* name) { mjCModel* model = reinterpret_cast(s->element); mjCFrame* frame = (mjCFrame*)model->FindFrame(model->GetWorld(), std::string(name)); return frame ? &(static_cast(frame)->spec) : nullptr; @@ -487,7 +487,7 @@ mjmFrame* mjm_findFrame(mjSpec* s, const char* name) { // set frame -void mjm_setFrame(mjElement dest, mjmFrame* frame) { +void mjs_setFrame(mjElement dest, mjsFrame* frame) { if (!frame) { return; } @@ -499,14 +499,14 @@ void mjm_setFrame(mjElement dest, mjmFrame* frame) { // get id -int mjm_getId(mjElement element) { +int mjs_getId(mjElement element) { return reinterpret_cast(element)->id; } // set default -void mjm_setDefault(mjElement element, mjmDefault* defspec) { +void mjs_setDefault(mjElement element, mjmDefault* defspec) { mjCBase* baseC = reinterpret_cast(element); baseC->def = reinterpret_cast(defspec->element); } @@ -514,7 +514,7 @@ void mjm_setDefault(mjElement element, mjmDefault* defspec) { // set string -void mjm_setString(mjString dest, const char* text) { +void mjs_setString(mjString dest, const char* text) { std::string* str = reinterpret_cast(dest); *str = std::string(text); } @@ -522,10 +522,10 @@ void mjm_setString(mjString dest, const char* text) { // Set specific entry in destination string vector. -mjtByte mjm_setInStringVec(mjStringVec dest, int i, const char* text) { +mjtByte mjs_setInStringVec(mjStringVec dest, int i, const char* text) { std::vector* v = reinterpret_cast*>(dest); if (v->size() <= i) { - mju_error("Requested index in mjm_setInStringVec is out of bounds"); + mju_error("Requested index in mjs_setInStringVec is out of bounds"); return 0; } v->at(i) = std::string(text); @@ -535,7 +535,7 @@ mjtByte mjm_setInStringVec(mjStringVec dest, int i, const char* text) { // split text and copy into string array -void mjm_setStringVec(mjStringVec dest, const char* text) { +void mjs_setStringVec(mjStringVec dest, const char* text) { std::vector* v = reinterpret_cast*>(dest); *v = mjXUtil::String2Vector(text); } @@ -543,14 +543,14 @@ void mjm_setStringVec(mjStringVec dest, const char* text) { // add text entry to destination string vector -void mjm_appendString(mjStringVec dest, const char* text) { +void mjs_appendString(mjStringVec dest, const char* text) { std::vector* v = reinterpret_cast*>(dest); v->push_back(std::string(text)); } // copy int array to vector -void mjm_setInt(mjIntVec dest, const int* array, int size) { +void mjs_setInt(mjIntVec dest, const int* array, int size) { std::vector* v = reinterpret_cast*>(dest); v->assign(size, 0.0); for (int i = 0; i < size; ++i) { @@ -561,7 +561,7 @@ void mjm_setInt(mjIntVec dest, const int* array, int size) { // append int array to vector of arrays -void mjm_appendIntVec(mjIntVecVec dest, const int* array, int size) { +void mjs_appendIntVec(mjIntVecVec dest, const int* array, int size) { std::vector>* v = reinterpret_cast>*>(dest); v->push_back(std::vector(array, array + size)); } @@ -569,7 +569,7 @@ void mjm_appendIntVec(mjIntVecVec dest, const int* array, int size) { // copy float array to vector -void mjm_setFloat(mjFloatVec dest, const float* array, int size) { +void mjs_setFloat(mjFloatVec dest, const float* array, int size) { std::vector* v = reinterpret_cast*>(dest); v->assign(size, 0.0); for (int i = 0; i < size; ++i) { @@ -581,7 +581,7 @@ void mjm_setFloat(mjFloatVec dest, const float* array, int size) { // append float array to vector of arrays -void mjm_appendFloatVec(mjFloatVecVec dest, const float* array, int size) { +void mjs_appendFloatVec(mjFloatVecVec dest, const float* array, int size) { std::vector>* v = reinterpret_cast>*>(dest); v->push_back(std::vector(array, array + size)); } @@ -589,7 +589,7 @@ void mjm_appendFloatVec(mjFloatVecVec dest, const float* array, int size) { // copy double array to vector -void mjm_setDouble(mjDoubleVec dest, const double* array, int size) { +void mjs_setDouble(mjDoubleVec dest, const double* array, int size) { std::vector* v = reinterpret_cast*>(dest); v->assign(size, 0.0); for (int i = 0; i < size; ++i) { @@ -600,7 +600,7 @@ void mjm_setDouble(mjDoubleVec dest, const double* array, int size) { // get string -const char* mjm_getString(const mjString source) { +const char* mjs_getString(const mjString source) { std::string* str = reinterpret_cast(source); if (!str) { return nullptr; @@ -611,7 +611,7 @@ const char* mjm_getString(const mjString source) { // get double array -const double* mjm_getDouble(const mjDoubleVec source, int* size) { +const double* mjs_getDouble(const mjDoubleVec source, int* size) { std::vector* v = reinterpret_cast*>(source); if (size) { *size = v->size(); @@ -622,7 +622,7 @@ const double* mjm_getDouble(const mjDoubleVec source, int* size) { // set plugin attributes -void mjm_setPluginAttributes(mjmPlugin* plugin, void* attributes) { +void mjs_setPluginAttributes(mjsPlugin* plugin, void* attributes) { mjCPlugin* pluginC = reinterpret_cast(plugin->instance); std::map>* config_attribs = reinterpret_cast>*>(attributes); @@ -632,7 +632,7 @@ void mjm_setPluginAttributes(mjmPlugin* plugin, void* attributes) { // Set active plugins. -void mjm_setActivePlugins(mjSpec* s, void* activeplugins) { +void mjs_setActivePlugins(mjSpec* s, void* activeplugins) { mjCModel* modelC = reinterpret_cast(s->element); std::vector>* active_plugins = reinterpret_cast>*>(activeplugins); @@ -642,7 +642,7 @@ void mjm_setActivePlugins(mjSpec* s, void* activeplugins) { // compute full inertia -const char* mjm_setFullInertia(mjmBody* bodyspec, double quat[4], double inertia[3]) { +const char* mjs_setFullInertia(mjsBody* bodyspec, double quat[4], double inertia[3]) { mjCBody* body = reinterpret_cast(bodyspec->element); return body->FullInertia(quat, inertia); } diff --git a/src/user/user_api.h b/src/user/user_api.h index 3e79c1c8..b78c8495 100644 --- a/src/user/user_api.h +++ b/src/user/user_api.h @@ -135,25 +135,25 @@ typedef struct _mjSpec { // model specification } mjSpec; -typedef struct _mjmOrientation { // alternative orientation specifiers +typedef struct _mjsOrientation { // alternative orientation specifiers double axisangle[4]; // rotation axis and angle double xyaxes[6]; // x and y axes double zaxis[3]; // z axis (use minimal rotation) double euler[3]; // euler angles -} mjmOrientation; +} mjsOrientation; -typedef struct _mjmPlugin { // plugin specification +typedef struct _mjsPlugin { // plugin specification mjElement instance; // internal, do not modify mjString name; // name mjString instance_name; // instance name int plugin_slot; // global registered slot number of the plugin mjtByte active; // is the plugin active mjString info; // message appended to compiler errors -} mjmPlugin; +} mjsPlugin; -typedef struct _mjmBody { // body specification +typedef struct _mjsBody { // body specification mjElement element; // internal, do not modify mjString name; // name mjString childclass; // childclass name @@ -161,14 +161,14 @@ typedef struct _mjmBody { // body specification // body frame double pos[3]; // frame position double quat[4]; // frame orientation - mjmOrientation alt; // frame alternative orientation + mjsOrientation alt; // frame alternative orientation // inertial frame double mass; // mass double ipos[3]; // inertial frame position double iquat[4]; // inertial frame orientation double inertia[3]; // diagonal inertia (in i-frame) - mjmOrientation ialt; // inertial frame alternative orientation + mjsOrientation ialt; // inertial frame alternative orientation double fullinertia[6]; // non-axis-aligned inertia matrix // other @@ -176,23 +176,23 @@ typedef struct _mjmBody { // body specification double gravcomp; // gravity compensation mjDoubleVec userdata; // user data mjtByte explicitinertial; // whether to save the body with explicit inertial clause - mjmPlugin plugin; // passive force plugin + mjsPlugin plugin; // passive force plugin mjString info; // message appended to compiler errors -} mjmBody; +} mjsBody; -typedef struct _mjmFrame { // frame specification +typedef struct _mjsFrame { // frame specification mjElement element; // internal, do not modify mjString name; // name mjString childclass; // childclass name double pos[3]; // position double quat[4]; // orientation - mjmOrientation alt; // alternative orientation + mjsOrientation alt; // alternative orientation mjString info; // message appended to compiler errors -} mjmFrame; +} mjsFrame; -typedef struct _mjmJoint { // joint specification +typedef struct _mjsJoint { // joint specification mjElement element; // internal, do not modify mjString name; // name mjString classname; // class name @@ -229,10 +229,10 @@ typedef struct _mjmJoint { // joint specification double urdfeffort; // effort (urdf) mjDoubleVec userdata; // user data mjString info; // message appended to compiler errors -} mjmJoint; +} mjsJoint; -typedef struct _mjmGeom { // geom specification +typedef struct _mjsGeom { // geom specification mjElement element; // internal, do not modify mjString name; // name mjString classname; // classname @@ -241,7 +241,7 @@ typedef struct _mjmGeom { // geom specification // frame, size double pos[3]; // position double quat[4]; // orientation - mjmOrientation alt; // alternative orientation + mjsOrientation alt; // alternative orientation double fromto[6]; // alternative for capsule, cylinder, box, ellipsoid double size[3]; // type-specific size @@ -276,12 +276,12 @@ typedef struct _mjmGeom { // geom specification mjString meshname; // mesh attached to geom double fitscale; // scale mesh uniformly mjDoubleVec userdata; // user data - mjmPlugin plugin; // sdf plugin + mjsPlugin plugin; // sdf plugin mjString info; // message appended to compiler errors -} mjmGeom; +} mjsGeom; -typedef struct _mjmSite { // site specification +typedef struct _mjsSite { // site specification mjElement element; // internal, do not modify mjString name; // name mjString classname; // class name @@ -289,7 +289,7 @@ typedef struct _mjmSite { // site specification // frame, size double pos[3]; // position double quat[4]; // orientation - mjmOrientation alt; // alternative orientation + mjsOrientation alt; // alternative orientation double fromto[6]; // alternative for capsule, cylinder, box, ellipsoid double size[3]; // geom size @@ -302,10 +302,10 @@ typedef struct _mjmSite { // site specification // other mjDoubleVec userdata; // user data mjString info; // message appended to compiler errors -} mjmSite; +} mjsSite; -typedef struct _mjmCamera { // camera specification +typedef struct _mjsCamera { // camera specification mjElement element; // internal, do not modify mjString name; // name mjString classname; // class name @@ -313,7 +313,7 @@ typedef struct _mjmCamera { // camera specification // extrinsics double pos[3]; // position double quat[4]; // orientation - mjmOrientation alt; // alternative orientation + mjsOrientation alt; // alternative orientation mjtCamLight mode; // tracking mode mjString targetbody; // target body for tracking/targeting @@ -331,10 +331,10 @@ typedef struct _mjmCamera { // camera specification // other mjDoubleVec userdata; // user data mjString info; // message appended to compiler errors -} mjmCamera; +} mjsCamera; -typedef struct _mjmLight { // light specification +typedef struct _mjsLight { // light specification mjElement element; // internal, do not modify mjString name; // name mjString classname; // class name @@ -358,10 +358,10 @@ typedef struct _mjmLight { // light specification // other mjString info; // message appended to compiler errors -} mjmLight; +} mjsLight; -typedef struct _mjmFlex { +typedef struct _mjsFlex { mjElement element; // internal, do not modify mjString name; // name mjString classname; // class name @@ -399,10 +399,10 @@ typedef struct _mjmFlex { // other mjString info; // message appended to compiler errors -} mjmFlex; +} mjsFlex; -typedef struct _mjmMesh { // mesh specification +typedef struct _mjsMesh { // mesh specification mjElement element; // internal, do not modify mjString name; // name mjString classname; // class name @@ -418,12 +418,12 @@ typedef struct _mjmMesh { // mesh specification mjIntVec userface; // user vertex indices mjIntVec userfacenormal; // user normal indices mjIntVec userfacetexcoord; // user texcoord indices - mjmPlugin plugin; // sdf plugin + mjsPlugin plugin; // sdf plugin mjString info; // message appended to compiler errors -} mjmMesh; +} mjsMesh; -typedef struct _mjmHField { // height field specification +typedef struct _mjsHField { // height field specification mjElement element; // internal, do not modify mjString name; // name mjString content_type; // content type of file @@ -433,11 +433,11 @@ typedef struct _mjmHField { // height field specification int ncol; // number of columns mjFloatVec userdata; // user-provided elevation data mjString info; // message appended to compiler errors -} mjmHField; +} mjsHField; -typedef struct _mjmSkin { // skin specification +typedef struct _mjsSkin { // skin specification mjElement element; // internal, do not modify mjString name; // name mjString classname; // class name @@ -461,10 +461,10 @@ typedef struct _mjmSkin { // skin specification // other mjString info; // message appended to compiler errors -} mjmSkin; +} mjsSkin; -typedef struct _mjmTexture { // texture specification +typedef struct _mjsTexture { // texture specification mjElement element; // internal, do not modify mjString name; // name mjString classname; // class name @@ -495,10 +495,10 @@ typedef struct _mjmTexture { // texture specification // other mjString info; // message appended to compiler errors -} mjmTexture; +} mjsTexture; -typedef struct _mjmMaterial { // material specification +typedef struct _mjsMaterial { // material specification mjElement element; // internal, do not modify mjString name; // name mjString classname; // class name @@ -511,10 +511,10 @@ typedef struct _mjmMaterial { // material specification float reflectance; // reflectance float rgba[4]; // rgba mjString info; // message appended to compiler errors -} mjmMaterial; +} mjsMaterial; -typedef struct _mjmPair { +typedef struct _mjsPair { mjElement element; // internal, do not modify mjString name; // name mjString classname; // class name @@ -530,19 +530,19 @@ typedef struct _mjmPair { double gap; // include in solver if distfullinertia. -MJAPI const char* mjm_setFullInertia(mjmBody* body, double quat[4], double inertia[3]); +MJAPI const char* mjs_setFullInertia(mjsBody* body, double quat[4], double inertia[3]); //---------------------------------- Initialization functions -------------------------------------- // Default model attributes. -MJAPI void mjm_defaultSpec(mjSpec& model); +MJAPI void mjs_defaultSpec(mjSpec& model); // Default body attributes. -MJAPI void mjm_defaultBody(mjmBody& body); +MJAPI void mjs_defaultBody(mjsBody& body); // Default frame attributes. -MJAPI void mjm_defaultFrame(mjmFrame& frame); +MJAPI void mjs_defaultFrame(mjsFrame& frame); // Default joint attributes. -MJAPI void mjm_defaultJoint(mjmJoint& joint); +MJAPI void mjs_defaultJoint(mjsJoint& joint); // Default geom attributes. -MJAPI void mjm_defaultGeom(mjmGeom& geom); +MJAPI void mjs_defaultGeom(mjsGeom& geom); // Default site attributes. -MJAPI void mjm_defaultSite(mjmSite& site); +MJAPI void mjs_defaultSite(mjsSite& site); // Default camera attributes. -MJAPI void mjm_defaultCamera(mjmCamera& camera); +MJAPI void mjs_defaultCamera(mjsCamera& camera); // Default light attributes. -MJAPI void mjm_defaultLight(mjmLight& light); +MJAPI void mjs_defaultLight(mjsLight& light); // Default flex attributes. -MJAPI void mjm_defaultFlex(mjmFlex& flex); +MJAPI void mjs_defaultFlex(mjsFlex& flex); // Default mesh attributes. -MJAPI void mjm_defaultMesh(mjmMesh& mesh); +MJAPI void mjs_defaultMesh(mjsMesh& mesh); // Default height field attributes. -MJAPI void mjm_defaultHField(mjmHField& hfield); +MJAPI void mjs_defaultHField(mjsHField& hfield); // Default skin attributes. -MJAPI void mjm_defaultSkin(mjmSkin& skin); +MJAPI void mjs_defaultSkin(mjsSkin& skin); // Default texture attributes. -MJAPI void mjm_defaultTexture(mjmTexture& texture); +MJAPI void mjs_defaultTexture(mjsTexture& texture); // Default material attributes. -MJAPI void mjm_defaultMaterial(mjmMaterial& material); +MJAPI void mjs_defaultMaterial(mjsMaterial& material); // Default pair attributes. -MJAPI void mjm_defaultPair(mjmPair& pair); +MJAPI void mjs_defaultPair(mjsPair& pair); // Default equality attributes. -MJAPI void mjm_defaultEquality(mjmEquality& equality); +MJAPI void mjs_defaultEquality(mjsEquality& equality); // Default tendon attributes. -MJAPI void mjm_defaultTendon(mjmTendon& tendon); +MJAPI void mjs_defaultTendon(mjsTendon& tendon); // Default actuator attributes. -MJAPI void mjm_defaultActuator(mjmActuator& actuator); +MJAPI void mjs_defaultActuator(mjsActuator& actuator); // Default sensor attributes. -MJAPI void mjm_defaultSensor(mjmSensor& sensor); +MJAPI void mjs_defaultSensor(mjsSensor& sensor); // Default numeric attributes. -MJAPI void mjm_defaultNumeric(mjmNumeric& numeric); +MJAPI void mjs_defaultNumeric(mjsNumeric& numeric); // Default text attributes. -MJAPI void mjm_defaultText(mjmText& text); +MJAPI void mjs_defaultText(mjsText& text); // Default tuple attributes. -MJAPI void mjm_defaultTuple(mjmTuple& tuple); +MJAPI void mjs_defaultTuple(mjsTuple& tuple); // Default keyframe attributes. -MJAPI void mjm_defaultKey(mjmKey& key); +MJAPI void mjs_defaultKey(mjsKey& key); // Default plugin attributes. -MJAPI void mjm_defaultPlugin(mjmPlugin& plugin); +MJAPI void mjs_defaultPlugin(mjsPlugin& plugin); //------------------------- Cache functions ------------------------------------ diff --git a/src/user/user_composite.cc b/src/user/user_composite.cc index 15a77caf..4337557d 100644 --- a/src/user/user_composite.cc +++ b/src/user/user_composite.cc @@ -66,7 +66,7 @@ mjCComposite::mjCComposite(void) { mj_defaultSolRefImp(solrefsmooth, solimpsmooth); // plugin variables - mjm_defaultPlugin(plugin); + mjs_defaultPlugin(plugin); plugin_name = ""; plugin_instance_name = ""; plugin.name = (mjString)&plugin_name; @@ -223,7 +223,7 @@ void mjCComposite::SetDefault(void) { // make composite object -bool mjCComposite::Make(mjSpec* spec, mjmBody* body, char* error, int error_sz) { +bool mjCComposite::Make(mjSpec* spec, mjsBody* body, char* error, int error_sz) { mjCModel* model = (mjCModel*)spec->element; // check geom type @@ -350,7 +350,7 @@ bool mjCComposite::Make(mjSpec* spec, mjmBody* body, char* error, int error_sz) -bool mjCComposite::MakeParticle(mjCModel* model, mjmBody* body, char* error, int error_sz) { +bool mjCComposite::MakeParticle(mjCModel* model, mjsBody* body, char* error, int error_sz) { char txt[100]; std::vector face; @@ -464,13 +464,13 @@ bool mjCComposite::MakeParticle(mjCModel* model, mjmBody* body, char* error, int // create bodies and geoms for (int i=0; iname, username[i].c_str()); + mjs_setString(b->name, username[i].c_str()); } else { mju::sprintf_arr(txt, "%sB%d", prefix.c_str(), i); - mjm_setString(b->name, txt); + mjs_setString(b->name, txt); } // set body position @@ -481,8 +481,8 @@ bool mjCComposite::MakeParticle(mjCModel* model, mjmBody* body, char* error, int // add slider joints if none defined if (!add[mjCOMPKIND_PARTICLE]) { for (int i=0; i<3; i++) { - mjmJoint* jnt = mjm_addJoint(b, &defjoint[mjCOMPKIND_JOINT][0].spec); - mjm_setDefault(jnt->element, mjm_getDefault(body->element)); + mjsJoint* jnt = mjs_addJoint(b, &defjoint[mjCOMPKIND_JOINT][0].spec); + mjs_setDefault(jnt->element, mjs_getDefault(body->element)); jnt->type = mjJNT_SLIDE; mjuu_setvec(jnt->pos, 0, 0, 0); mjuu_setvec(jnt->axis, 0, 0, 0); @@ -493,30 +493,30 @@ bool mjCComposite::MakeParticle(mjCModel* model, mjmBody* body, char* error, int // add user-specified joints else { for (auto defjnt : defjoint[mjCOMPKIND_PARTICLE]) { - mjmJoint* jnt = mjm_addJoint(b, &defjnt.spec); - mjm_setDefault(jnt->element, mjm_getDefault(body->element)); + mjsJoint* jnt = mjs_addJoint(b, &defjnt.spec); + mjs_setDefault(jnt->element, mjs_getDefault(body->element)); } } // add geom - mjmGeom* g = mjm_addGeom(b, &def[0].spec); - mjm_setDefault(g->element, mjm_getDefault(body->element)); + mjsGeom* g = mjs_addGeom(b, &def[0].spec); + mjs_setDefault(g->element, mjs_getDefault(body->element)); // add site - mjmSite* s = mjm_addSite(b, &def[0].spec); - mjm_setDefault(s->element, mjm_getDefault(body->element)); + mjsSite* s = mjs_addSite(b, &def[0].spec); + mjs_setDefault(s->element, mjs_getDefault(body->element)); s->type = mjGEOM_SPHERE; mju::sprintf_arr(txt, "%sS%d", prefix.c_str(), i); - mjm_setString(s->name, txt); + mjs_setString(s->name, txt); // add plugin if (plugin.active) { - mjmPlugin* pplugin = &b->plugin; + mjsPlugin* pplugin = &b->plugin; mjCPlugin* cplugin = (mjCPlugin*)plugin.instance; pplugin->active = true; pplugin->instance = (mjElement)plugin.instance; - mjm_setString(pplugin->instance_name, plugin_instance_name.c_str()); - mjm_setString(pplugin->name, mjm_getString(plugin.name)); + mjs_setString(pplugin->instance_name, plugin_instance_name.c_str()); + mjs_setString(pplugin->name, mjs_getString(plugin.name)); if (i==0 && !cplugin->config_attribs["face"].empty()) { return comperr(error, "Face attribute already exists in plugin", error_sz); @@ -560,18 +560,18 @@ bool mjCComposite::MakeParticle(mjCModel* model, mjmBody* body, char* error, int mju::sprintf_arr(txt2, "%sS%d", prefix.c_str(), v1); // create tendon - mjmTendon* ten = mjm_addTendon(&model->spec, &def[mjCOMPKIND_TENDON].spec); - mjm_setDefault(ten->element, &model->defaults[0]->spec); - mjm_setString(ten->name, txt0); + mjsTendon* ten = mjs_addTendon(&model->spec, &def[mjCOMPKIND_TENDON].spec); + mjs_setDefault(ten->element, &model->defaults[0]->spec); + mjs_setString(ten->name, txt0); ten->group = 4; - mjm_wrapSite(ten, txt1); - mjm_wrapSite(ten, txt2); + mjs_wrapSite(ten, txt1); + mjs_wrapSite(ten, txt2); // add equality constraint - mjmEquality* eq = mjm_addEquality(&model->spec, &def[mjCOMPKIND_TENDON].spec); - mjm_setDefault(eq->element, &model->defaults[0]->spec); + mjsEquality* eq = mjs_addEquality(&model->spec, &def[mjCOMPKIND_TENDON].spec); + mjs_setDefault(eq->element, &model->defaults[0]->spec); eq->type = mjEQ_TENDON; - mjm_setString(eq->name1, mjm_getString(ten->name)); + mjs_setString(eq->name1, mjs_getString(ten->name)); } } @@ -593,7 +593,7 @@ bool mjCComposite::MakeParticle(mjCModel* model, mjmBody* body, char* error, int // make grid connected with tendons -bool mjCComposite::MakeGrid(mjCModel* model, mjmBody* body, char* error, int error_sz) { +bool mjCComposite::MakeGrid(mjCModel* model, mjsBody* body, char* error, int error_sz) { char txt[100], txt1[100], txt2[100]; // check dimensionality @@ -615,9 +615,9 @@ bool mjCComposite::MakeGrid(mjCModel* model, mjmBody* body, char* error, int err for (int ix=0; ixname, txt); + mjs_setString(b->name, txt); // set body position b->pos[0] = offset[0] + spacing*(ix - 0.5*count[0]); @@ -625,18 +625,18 @@ bool mjCComposite::MakeGrid(mjCModel* model, mjmBody* body, char* error, int err b->pos[2] = offset[2]; // add geom - mjmGeom* g = mjm_addGeom(b, &def[0].spec); - mjm_setDefault(g->element, mjm_getDefault(body->element)); + mjsGeom* g = mjs_addGeom(b, &def[0].spec); + mjs_setDefault(g->element, mjs_getDefault(body->element)); g->type = mjGEOM_SPHERE; mju::sprintf_arr(txt, "%sG%d_%d", prefix.c_str(), ix, iy); - mjm_setString(g->name, txt); + mjs_setString(g->name, txt); // add site - mjmSite* s = mjm_addSite(b, &def[0].spec); - mjm_setDefault(s->element, mjm_getDefault(body->element)); + mjsSite* s = mjs_addSite(b, &def[0].spec); + mjs_setDefault(s->element, mjs_getDefault(body->element)); s->type = mjGEOM_SPHERE; mju::sprintf_arr(txt, "%sS%d_%d", prefix.c_str(), ix, iy); - mjm_setString(s->name, txt); + mjs_setString(s->name, txt); // skip pinned elements bool skip = false; @@ -651,12 +651,12 @@ bool mjCComposite::MakeGrid(mjCModel* model, mjmBody* body, char* error, int err } // add slider joint - mjmJoint* jnt[3]; + mjsJoint* jnt[3]; for (int i=0; i<3; i++) { - jnt[i] = mjm_addJoint(b, &defjoint[mjCOMPKIND_JOINT][0].spec); - mjm_setDefault(jnt[i]->element, mjm_getDefault(body->element)); + jnt[i] = mjs_addJoint(b, &defjoint[mjCOMPKIND_JOINT][0].spec); + mjs_setDefault(jnt[i]->element, mjs_getDefault(body->element)); mju::sprintf_arr(txt, "%sJ%d_%d_%d", prefix.c_str(), i, ix, iy); - mjm_setString(jnt[i]->name, txt); + mjs_setString(jnt[i]->name, txt); jnt[i]->type = mjJNT_SLIDE; mjuu_setvec(jnt[i]->pos, 0, 0, 0); mjuu_setvec(jnt[i]->axis, 0, 0, 0); @@ -682,10 +682,10 @@ bool mjCComposite::MakeGrid(mjCModel* model, mjmBody* body, char* error, int err ten->WrapSite(txt2); // add equality constraint - mjmEquality* eq = mjm_addEquality(&model->spec, &def[mjCOMPKIND_TENDON].spec); - mjm_setDefault(eq->element, &model->defaults[0]->spec); + mjsEquality* eq = mjs_addEquality(&model->spec, &def[mjCOMPKIND_TENDON].spec); + mjs_setDefault(eq->element, &model->defaults[0]->spec); eq->type = mjEQ_TENDON; - mjm_setString(eq->name1, ten->name.c_str()); + mjs_setString(eq->name1, ten->name.c_str()); } } } @@ -709,7 +709,7 @@ bool mjCComposite::MakeGrid(mjCModel* model, mjmBody* body, char* error, int err -bool mjCComposite::MakeCable(mjCModel* model, mjmBody* body, char* error, int error_sz) { +bool mjCComposite::MakeCable(mjCModel* model, mjsBody* body, char* error, int error_sz) { // check dim if (dim!=1) { return comperr(error, "Cable must be one-dimensional", error_sz); @@ -723,9 +723,9 @@ bool mjCComposite::MakeCable(mjCModel* model, mjmBody* body, char* error, int er } // add name to model - mjmText* pte = mjm_addText(&model->spec); - mjm_setString(pte->name, ("composite_" + prefix).c_str()); - mjm_setString(pte->data, ("rope_" + prefix).c_str()); + mjsText* pte = mjs_addText(&model->spec); + mjs_setString(pte->name, ("composite_" + prefix).c_str()); + mjs_setString(pte->data, ("rope_" + prefix).c_str()); // populate uservert if not specified if (uservert.empty()) { @@ -780,7 +780,7 @@ bool mjCComposite::MakeCable(mjCModel* model, mjmBody* body, char* error, int er -mjmBody* mjCComposite::AddCableBody(mjCModel* model, mjmBody* body, int ix, mjtNum normal[3], mjtNum prev_quat[4]) { +mjsBody* mjCComposite::AddCableBody(mjCModel* model, mjsBody* body, int ix, mjtNum normal[3], mjtNum prev_quat[4]) { char txt_geom[100], txt_site[100], txt_slide[100]; char this_body[100], next_body[100], this_joint[100]; mjtNum dquat[4], this_quat[4]; @@ -836,8 +836,8 @@ mjmBody* mjCComposite::AddCableBody(mjCModel* model, mjmBody* body, int ix, mjtN mju::sprintf_arr(txt_slide, "%sJs%d", prefix.c_str(), ix); // add body - body = mjm_addBody(body, 0); - mjm_setString(body->name, this_body); + body = mjs_addBody(body, 0); + mjs_setString(body->name, this_body); if (first) { mjuu_setvec(body->pos, offset[0]+uservert[3*ix], offset[1]+uservert[3*ix+1], @@ -851,9 +851,9 @@ mjmBody* mjCComposite::AddCableBody(mjCModel* model, mjmBody* body, int ix, mjtN } // add geom - mjmGeom* geom = mjm_addGeom(body, &def[0].spec); - mjm_setDefault(geom->element, mjm_getDefault(body->element)); - mjm_setString(geom->name, txt_geom); + mjsGeom* geom = mjs_addGeom(body, &def[0].spec); + mjs_setDefault(geom->element, mjs_getDefault(body->element)); + mjs_setString(geom->name, txt_geom); if (def[0].spec.geom->type==mjGEOM_CYLINDER || def[0].spec.geom->type==mjGEOM_CAPSULE) { mjuu_zerovec(geom->fromto, 6); @@ -866,11 +866,11 @@ mjmBody* mjCComposite::AddCableBody(mjCModel* model, mjmBody* body, int ix, mjtN // add plugin if (plugin.active) { - mjmPlugin* pplugin = &body->plugin; + mjsPlugin* pplugin = &body->plugin; pplugin->active = true; pplugin->instance = (mjElement)plugin.instance; - mjm_setString(pplugin->name, mjm_getString(plugin.name)); - mjm_setString(pplugin->instance_name, plugin_instance_name.c_str()); + mjs_setString(pplugin->name, mjs_getString(plugin.name)); + mjs_setString(pplugin->instance_name, plugin_instance_name.c_str()); } // update orientation @@ -878,27 +878,27 @@ mjmBody* mjCComposite::AddCableBody(mjCModel* model, mjmBody* body, int ix, mjtN // add curvature joint if (!first || strcmp(initial.c_str(), "none")) { - mjmJoint* jnt = mjm_addJoint(body, &defjoint[mjCOMPKIND_JOINT][0].spec); - mjm_setDefault(jnt->element, mjm_getDefault(body->element)); + mjsJoint* jnt = mjs_addJoint(body, &defjoint[mjCOMPKIND_JOINT][0].spec); + mjs_setDefault(jnt->element, mjs_getDefault(body->element)); jnt->type = (first && strcmp(initial.c_str(), "free")==0) ? mjJNT_FREE : mjJNT_BALL; jnt->damping = jnt->type==mjJNT_FREE ? 0 : jnt->damping; jnt->armature = jnt->type==mjJNT_FREE ? 0 : jnt->armature; jnt->frictionloss = jnt->type==mjJNT_FREE ? 0 : jnt->frictionloss; - mjm_setString(jnt->name, this_joint); + mjs_setString(jnt->name, this_joint); } // exclude contact pair if (!last) { - mjmExclude* exclude = mjm_addExclude(&model->spec); - mjm_setString(exclude->bodyname1, std::string(this_body).c_str()); - mjm_setString(exclude->bodyname2, std::string(next_body).c_str()); + mjsExclude* exclude = mjs_addExclude(&model->spec); + mjs_setString(exclude->bodyname1, std::string(this_body).c_str()); + mjs_setString(exclude->bodyname2, std::string(next_body).c_str()); } // add site at the boundary if (last || first) { - mjmSite* site = mjm_addSite(body, &def[0].spec); - mjm_setDefault(site->element, mjm_getDefault(body->element)); - mjm_setString(site->name, txt_site); + mjsSite* site = mjs_addSite(body, &def[0].spec); + mjs_setDefault(site->element, mjs_getDefault(body->element)); + mjs_setString(site->name, txt_site); mjuu_setvec(site->pos, last ? length : 0, 0, 0); mjuu_setvec(site->quat, 1, 0, 0, 0); } @@ -908,7 +908,7 @@ mjmBody* mjCComposite::AddCableBody(mjCModel* model, mjmBody* body, int ix, mjtN // make rope -bool mjCComposite::MakeRope(mjCModel* model, mjmBody* body, char* error, int error_sz) { +bool mjCComposite::MakeRope(mjCModel* model, mjsBody* body, char* error, int error_sz) { // check dim if (dim!=1) { return comperr(error, "Rope must be one-dimensional", error_sz); @@ -917,7 +917,7 @@ bool mjCComposite::MakeRope(mjCModel* model, mjmBody* body, char* error, int err // check root body name prefix char txt[200]; mju::sprintf_arr(txt, "%sB", prefix.c_str()); - std::string body_name = mjm_getString(body->name); + std::string body_name = mjs_getString(body->name); if (std::strncmp(txt, body_name.substr(0, strlen(txt)).c_str(), mju::sizeof_arr(txt))) { mju::strcat_arr(txt, " must be the beginning of root body name"); return comperr(error, txt, error_sz); @@ -937,7 +937,7 @@ bool mjCComposite::MakeRope(mjCModel* model, mjmBody* body, char* error, int err AddRopeBody(model, body, ox, ox); // add elements: right - mjmBody* pbody = body; + mjsBody* pbody = body; for (int ix=ox; ixspec, 0); + mjsEquality* eq = mjs_addEquality(&model->spec, 0); eq->type = mjEQ_CONNECT; mju::sprintf_arr(txt, "%sB0", prefix.c_str()); mju::sprintf_arr(txt2, "%sB%d", prefix.c_str(), count[0]-1); - mjm_setString(eq->name1, txt); - mjm_setString(eq->name2, txt2); + mjs_setString(eq->name1, txt); + mjs_setString(eq->name2, txt2); mjuu_setvec(eq->data, -0.5*spacing, 0, 0); mju_copy(eq->solref, solrefsmooth, mjNREF); mju_copy(eq->solimp, solimpsmooth, mjNIMP); // remove contact between connected bodies - mjmExclude* pair = mjm_addExclude(&model->spec); - mjm_setString(pair->bodyname1, std::string(txt).c_str()); - mjm_setString(pair->bodyname2, std::string(txt2).c_str()); + mjsExclude* pair = mjs_addExclude(&model->spec); + mjs_setString(pair->bodyname1, std::string(txt).c_str()); + mjs_setString(pair->bodyname2, std::string(txt2).c_str()); } return true; @@ -975,16 +975,16 @@ bool mjCComposite::MakeRope(mjCModel* model, mjmBody* body, char* error, int err // add child body for cloth -mjmBody* mjCComposite::AddRopeBody(mjCModel* model, mjmBody* body, int ix, int ix1) { +mjsBody* mjCComposite::AddRopeBody(mjCModel* model, mjsBody* body, int ix, int ix1) { char txt[100]; bool isroot = (ix==ix1); double dx = spacing*(ix1-ix); // add child if not root if (!isroot) { - body = mjm_addBody(body, 0); + body = mjs_addBody(body, 0); mju::sprintf_arr(txt, "%sB%d", prefix.c_str(), ix1); - mjm_setString(body->name, txt); + mjs_setString(body->name, txt); // loop if (type==mjCOMPTYPE_LOOP) { @@ -1007,10 +1007,10 @@ mjmBody* mjCComposite::AddRopeBody(mjCModel* model, mjmBody* body, int ix, int i } // add geom - mjmGeom* geom = mjm_addGeom(body, &def[0].spec); - mjm_setDefault(geom->element, mjm_getDefault(body->element)); + mjsGeom* geom = mjs_addGeom(body, &def[0].spec); + mjs_setDefault(geom->element, mjs_getDefault(body->element)); mju::sprintf_arr(txt, "%sG%d", prefix.c_str(), ix1); - mjm_setString(geom->name, txt); + mjs_setString(geom->name, txt); mjuu_setvec(geom->pos, 0, 0, 0); mjuu_setvec(geom->quat, sqrt(0.5), 0, sqrt(0.5), 0); @@ -1022,10 +1022,10 @@ mjmBody* mjCComposite::AddRopeBody(mjCModel* model, mjmBody* body, int ix, int i // add main joint for (int i=0; i<2; i++) { // add joint - mjmJoint* jnt = mjm_addJoint(body, &defjoint[mjCOMPKIND_JOINT][0].spec); - mjm_setDefault(jnt->element, mjm_getDefault(body->element)); + mjsJoint* jnt = mjs_addJoint(body, &defjoint[mjCOMPKIND_JOINT][0].spec); + mjs_setDefault(jnt->element, mjs_getDefault(body->element)); mju::sprintf_arr(txt, "%sJ%d_%d", prefix.c_str(), i, ix1); - mjm_setString(jnt->name, txt); + mjs_setString(jnt->name, txt); jnt->type = mjJNT_HINGE; mjuu_setvec(jnt->pos, -0.5*dx, 0, 0); mjuu_setvec(jnt->axis, 0, 0, 0); @@ -1035,37 +1035,37 @@ mjmBody* mjCComposite::AddRopeBody(mjCModel* model, mjmBody* body, int ix, int i // add twist joint if (add[mjCOMPKIND_TWIST]) { // add joint - mjmJoint* jnt = mjm_addJoint(body, &defjoint[mjCOMPKIND_TWIST][0].spec); - mjm_setDefault(jnt->element, mjm_getDefault(body->element)); + mjsJoint* jnt = mjs_addJoint(body, &defjoint[mjCOMPKIND_TWIST][0].spec); + mjs_setDefault(jnt->element, mjs_getDefault(body->element)); mju::sprintf_arr(txt, "%sJT%d", prefix.c_str(), ix1); - mjm_setString(jnt->name, txt); + mjs_setString(jnt->name, txt); jnt->type = mjJNT_HINGE; mjuu_setvec(jnt->pos, -0.5*dx, 0, 0); mjuu_setvec(jnt->axis, 1, 0, 0); // add constraint - mjmEquality* eq = mjm_addEquality(&model->spec, &def[mjCOMPKIND_TWIST].spec); - mjm_setDefault(eq->element, &model->defaults[0]->spec); + mjsEquality* eq = mjs_addEquality(&model->spec, &def[mjCOMPKIND_TWIST].spec); + mjs_setDefault(eq->element, &model->defaults[0]->spec); eq->type = mjEQ_JOINT; - mjm_setString(eq->name1, mjm_getString(jnt->name)); + mjs_setString(eq->name1, mjs_getString(jnt->name)); } // add stretch joint if (add[mjCOMPKIND_STRETCH]) { // add joint - mjmJoint* jnt = mjm_addJoint(body, &defjoint[mjCOMPKIND_STRETCH][0].spec); - mjm_setDefault(jnt->element, mjm_getDefault(body->element)); + mjsJoint* jnt = mjs_addJoint(body, &defjoint[mjCOMPKIND_STRETCH][0].spec); + mjs_setDefault(jnt->element, mjs_getDefault(body->element)); mju::sprintf_arr(txt, "%sJS%d", prefix.c_str(), ix1); - mjm_setString(jnt->name, txt); + mjs_setString(jnt->name, txt); jnt->type = mjJNT_SLIDE; mjuu_setvec(jnt->pos, -0.5*dx, 0, 0); mjuu_setvec(jnt->axis, 1, 0, 0); // add constraint - mjmEquality* eq = mjm_addEquality(&model->spec, &def[mjCOMPKIND_STRETCH].spec); - mjm_setDefault(eq->element, &model->defaults[0]->spec); + mjsEquality* eq = mjs_addEquality(&model->spec, &def[mjCOMPKIND_STRETCH].spec); + mjs_setDefault(eq->element, &model->defaults[0]->spec); eq->type = mjEQ_JOINT; - mjm_setString(eq->name1, mjm_getString(jnt->name)); + mjs_setString(eq->name1, mjs_getString(jnt->name)); } return body; @@ -1110,7 +1110,7 @@ void mjCComposite::BoxProject(double* pos) { // make 3d box, ellipsoid or cylinder -bool mjCComposite::MakeBox(mjCModel* model, mjmBody* body, char* error, int error_sz) { +bool mjCComposite::MakeBox(mjCModel* model, mjsBody* body, char* error, int error_sz) { char txt[100]; // check dim @@ -1119,11 +1119,11 @@ bool mjCComposite::MakeBox(mjCModel* model, mjmBody* body, char* error, int erro } // center geom: two times bigger - mjmGeom* geom = mjm_addGeom(body, &def[0].spec); - mjm_setDefault(geom->element, mjm_getDefault(body->element)); + mjsGeom* geom = mjs_addGeom(body, &def[0].spec); + mjs_setDefault(geom->element, mjs_getDefault(body->element)); geom->type = mjGEOM_SPHERE; mju::sprintf_arr(txt, "%sGcenter", prefix.c_str()); - mjm_setString(geom->name, txt); + mjs_setString(geom->name, txt); mjuu_setvec(geom->pos, 0, 0, 0); geom->size[0] *= 2; geom->size[1] = 0; @@ -1143,9 +1143,9 @@ bool mjCComposite::MakeBox(mjCModel* model, mjmBody* body, char* error, int erro iy==0 || iy==count[1]-1 || iz==0 || iz==count[2]-1) { // create body - mjmBody* b = mjm_addBody(body, NULL); + mjsBody* b = mjs_addBody(body, NULL); mju::sprintf_arr(txt, "%sB%d_%d_%d", prefix.c_str(), ix, iy, iz); - mjm_setString(b->name, txt); + mjs_setString(b->name, txt); // set body position (+/- 1) b->pos[0] = 2.0*ix/(count[0]-1) - 1; @@ -1160,10 +1160,10 @@ bool mjCComposite::MakeBox(mjCModel* model, mjmBody* body, char* error, int erro mjuu_normvec(b->alt.zaxis, 3); // add geom - mjmGeom* g = mjm_addGeom(b, &def[0].spec); - mjm_setDefault(g->element, mjm_getDefault(body->element)); + mjsGeom* g = mjs_addGeom(b, &def[0].spec); + mjs_setDefault(g->element, mjs_getDefault(body->element)); mju::sprintf_arr(txt, "%sG%d_%d_%d", prefix.c_str(), ix, iy, iz); - mjm_setString(g->name, txt); + mjs_setString(g->name, txt); // offset inwards, enforce sphere or capsule if (g->type==mjGEOM_CAPSULE) { @@ -1174,22 +1174,22 @@ bool mjCComposite::MakeBox(mjCModel* model, mjmBody* body, char* error, int erro } // add slider joint - mjmJoint* jnt = mjm_addJoint(b, &defjoint[mjCOMPKIND_JOINT][0].spec); - mjm_setDefault(jnt->element, mjm_getDefault(body->element)); + mjsJoint* jnt = mjs_addJoint(b, &defjoint[mjCOMPKIND_JOINT][0].spec); + mjs_setDefault(jnt->element, mjs_getDefault(body->element)); mju::sprintf_arr(txt, "%sJ%d_%d_%d", prefix.c_str(), ix, iy, iz); - mjm_setString(jnt->name, txt); + mjs_setString(jnt->name, txt); jnt->type = mjJNT_SLIDE; mjuu_setvec(jnt->pos, 0, 0, 0); mjuu_setvec(jnt->axis, 0, 0, 1); // add fix constraint - mjmEquality* eq = mjm_addEquality(&model->spec, &def[mjCOMPKIND_JOINT].spec); - mjm_setDefault(eq->element, &model->defaults[0]->spec); + mjsEquality* eq = mjs_addEquality(&model->spec, &def[mjCOMPKIND_JOINT].spec); + mjs_setDefault(eq->element, &model->defaults[0]->spec); eq->type = mjEQ_JOINT; - mjm_setString(eq->name1, mjm_getString(jnt->name)); + mjs_setString(eq->name1, mjs_getString(jnt->name)); // add joint to tendon - ten->WrapJoint(std::string(mjm_getString(jnt->name)), 1); + ten->WrapJoint(std::string(mjs_getString(jnt->name)), 1); // add neighbor constraints for (int i=0; i<3; i++) { @@ -1203,12 +1203,12 @@ bool mjCComposite::MakeBox(mjCModel* model, mjmBody* body, char* error, int erro char txt2[200]; mju::sprintf_arr(txt2, "%sJ%d_%d_%d", prefix.c_str(), ix1, iy1, iz1); - mjmEquality* eqn = mjm_addEquality(&model->spec, 0); + mjsEquality* eqn = mjs_addEquality(&model->spec, 0); mju_copy(eqn->solref, solrefsmooth, mjNREF); mju_copy(eqn->solimp, solimpsmooth, mjNIMP); eqn->type = mjEQ_JOINT; - mjm_setString(eqn->name1, txt); - mjm_setString(eqn->name2, txt2); + mjs_setString(eqn->name1, txt); + mjs_setString(eqn->name2, txt2); } } } @@ -1217,10 +1217,10 @@ bool mjCComposite::MakeBox(mjCModel* model, mjmBody* body, char* error, int erro } // finalize fixed tendon - mjmEquality* eqt = mjm_addEquality(&model->spec, &def[mjCOMPKIND_TENDON].spec); - mjm_setDefault(eqt->element, &model->defaults[0]->spec); + mjsEquality* eqt = mjs_addEquality(&model->spec, &def[mjCOMPKIND_TENDON].spec); + mjs_setDefault(eqt->element, &model->defaults[0]->spec); eqt->type = mjEQ_TENDON; - mjm_setString(eqt->name1, ten->name.c_str()); + mjs_setString(eqt->name1, ten->name.c_str()); // skin if (skin) { @@ -1253,10 +1253,10 @@ void mjCComposite::MakeShear(mjCModel* model) { ten->name = txt; // equality constraint - mjmEquality* eq = mjm_addEquality(&model->spec, &def[mjCOMPKIND_SHEAR].spec); - mjm_setDefault(eq->element, &model->defaults[0]->spec); + mjsEquality* eq = mjs_addEquality(&model->spec, &def[mjCOMPKIND_SHEAR].spec); + mjs_setDefault(eq->element, &model->defaults[0]->spec); eq->type = mjEQ_TENDON; - mjm_setString(eq->name1, txt); + mjs_setString(eq->name1, txt); } } } @@ -1264,18 +1264,18 @@ void mjCComposite::MakeShear(mjCModel* model) { // copy local vectors to skin -void mjCComposite::CopyIntoSkin(mjmSkin* skin) { - mjm_setInt(skin->face, face.data(), face.size()); - mjm_setFloat(skin->vert, vert.data(), vert.size()); - mjm_setFloat(skin->bindpos, bindpos.data(), bindpos.size()); - mjm_setFloat(skin->bindquat, bindquat.data(), bindquat.size()); - mjm_setFloat(skin->texcoord, texcoord.data(), texcoord.size()); +void mjCComposite::CopyIntoSkin(mjsSkin* skin) { + mjs_setInt(skin->face, face.data(), face.size()); + mjs_setFloat(skin->vert, vert.data(), vert.size()); + mjs_setFloat(skin->bindpos, bindpos.data(), bindpos.size()); + mjs_setFloat(skin->bindquat, bindquat.data(), bindquat.size()); + mjs_setFloat(skin->texcoord, texcoord.data(), texcoord.size()); for (int i=0; ivertid, vertid[i].data(), vertid[i].size()); + mjs_appendIntVec(skin->vertid, vertid[i].data(), vertid[i].size()); } for (int i=0; i< vertweight.size(); i++) { - mjm_appendFloatVec(skin->vertweight, vertweight[i].data(), vertweight[i].size()); + mjs_appendFloatVec(skin->vertweight, vertweight[i].data(), vertweight[i].size()); } face.clear(); @@ -1295,10 +1295,10 @@ void mjCComposite::MakeSkin2(mjCModel* model, mjtNum inflate) { int N = count[0]*count[1]; // add skin, set name and material - mjmSkin* skin = mjm_addSkin(&model->spec); + mjsSkin* skin = mjs_addSkin(&model->spec); mju::sprintf_arr(txt, "%sSkin", prefix.c_str()); - mjm_setString(skin->name, txt); - mjm_setString(skin->material, skinmaterial.c_str()); + mjs_setString(skin->name, txt); + mjs_setString(skin->material, skinmaterial.c_str()); mjuu_copyvec(skin->rgba, skinrgba, 4); skin->inflate = inflate; skin->group = skingroup; @@ -1316,7 +1316,7 @@ void mjCComposite::MakeSkin2(mjCModel* model, mjtNum inflate) { vert.push_back(0); mju::sprintf_arr(txt, "%sB%d", prefix.c_str(), i); - mjm_appendString(skin->bodyname, txt); + mjs_appendString(skin->bodyname, txt); bindpos.push_back(0); bindpos.push_back(0); bindpos.push_back(0); @@ -1426,7 +1426,7 @@ void mjCComposite::MakeSkin2(mjCModel* model, mjtNum inflate) { // add bones in 2D -void mjCComposite::MakeClothBones(mjCModel* model, mjmSkin* skin) { +void mjCComposite::MakeClothBones(mjCModel* model, mjsSkin* skin) { char txt[100]; int N = count[0]*count[1]; @@ -1441,7 +1441,7 @@ void mjCComposite::MakeClothBones(mjCModel* model, mjmSkin* skin) { } // bind pose - mjm_appendString(skin->bodyname, txt); + mjs_appendString(skin->bodyname, txt); bindpos.push_back(0); bindpos.push_back(0); bindpos.push_back(0); @@ -1459,7 +1459,7 @@ void mjCComposite::MakeClothBones(mjCModel* model, mjmSkin* skin) { -void mjCComposite::MakeClothBonesSubgrid(mjCModel* model, mjmSkin* skin) { +void mjCComposite::MakeClothBonesSubgrid(mjCModel* model, mjsSkin* skin) { char txt[100]; // populate bones @@ -1473,7 +1473,7 @@ void mjCComposite::MakeClothBonesSubgrid(mjCModel* model, mjmSkin* skin) { } // bind pose - mjm_appendString(skin->bodyname, txt); + mjs_appendString(skin->bodyname, txt); bindpos.push_back(ix*spacing); bindpos.push_back(iy*spacing); bindpos.push_back(0); @@ -1492,7 +1492,7 @@ void mjCComposite::MakeClothBonesSubgrid(mjCModel* model, mjmSkin* skin) { // add bones to 1D -void mjCComposite::MakeCableBones(mjCModel* model, mjmSkin* skin) { +void mjCComposite::MakeCableBones(mjCModel* model, mjsSkin* skin) { char this_body[100]; int N = count[0]*count[1]; @@ -1510,14 +1510,14 @@ void mjCComposite::MakeCableBones(mjCModel* model, mjmSkin* skin) { // bind pose if (iy==0) { - mjm_appendString(skin->bodyname, this_body); + mjs_appendString(skin->bodyname, this_body); bindpos.push_back((ix==count[0]-1) ? -2*def[0].spec.geom->size[0] : 0); bindpos.push_back(-def[0].spec.geom->size[1]); bindpos.push_back(0); bindquat.push_back(1); bindquat.push_back(0); bindquat.push_back(0); bindquat.push_back(0); } else { - mjm_appendString(skin->bodyname, this_body); + mjs_appendString(skin->bodyname, this_body); bindpos.push_back((ix==count[0]-1) ? -2*def[0].spec.geom->size[0] : 0); bindpos.push_back(def[0].spec.geom->size[1]); bindpos.push_back(0); @@ -1534,7 +1534,7 @@ void mjCComposite::MakeCableBones(mjCModel* model, mjmSkin* skin) { -void mjCComposite::MakeCableBonesSubgrid(mjCModel* model, mjmSkin* skin) { +void mjCComposite::MakeCableBonesSubgrid(mjCModel* model, mjsSkin* skin) { // populate bones for (int ix=0; ixbodyname, txt); + mjs_appendString(skin->bodyname, txt); bindquat.push_back(1); bindquat.push_back(0); bindquat.push_back(0); @@ -1888,10 +1888,10 @@ void mjCComposite::MakeSkin2Subgrid(mjCModel* model, mjtNum inflate) { // add skin, set name and material char txt[100]; - mjmSkin* skin = mjm_addSkin(&model->spec); + mjsSkin* skin = mjs_addSkin(&model->spec); mju::sprintf_arr(txt, "%sSkin", prefix.c_str()); - mjm_setString(skin->name, txt); - mjm_setString(skin->material, skinmaterial.c_str()); + mjs_setString(skin->name, txt); + mjs_setString(skin->material, skinmaterial.c_str()); mjuu_copyvec(skin->rgba, skinrgba, 4); skin->inflate = inflate; skin->group = skingroup; @@ -2043,10 +2043,10 @@ void mjCComposite::MakeSkin3(mjCModel* model) { mju::sprintf_arr(cnt2, "%d", count[2]-1); // add skin, set name and material - mjmSkin* skin = mjm_addSkin(&model->spec); + mjsSkin* skin = mjs_addSkin(&model->spec); mju::sprintf_arr(txt, "%sSkin", prefix.c_str()); - mjm_setString(skin->name, txt); - mjm_setString(skin->material, skinmaterial.c_str()); + mjs_setString(skin->name, txt); + mjs_setString(skin->material, skinmaterial.c_str()); mjuu_copyvec(skin->rgba, skinrgba, 4); skin->inflate = skininflate; skin->group = skingroup; @@ -2191,7 +2191,7 @@ void mjCComposite::MakeSkin3(mjCModel* model) { // make one face of 3D skin, box -void mjCComposite::MakeSkin3Box(mjmSkin* skin, int c0, int c1, int side, +void mjCComposite::MakeSkin3Box(mjsSkin* skin, int c0, int c1, int side, int& vcnt, const char* format) { char txt[100]; @@ -2224,7 +2224,7 @@ void mjCComposite::MakeSkin3Box(mjmSkin* skin, int c0, int c1, int side, mju::sprintf_arr(txt, format, prefix.c_str(), i0, i1); // bind pose: origin - mjm_appendString(skin->bodyname, txt); + mjs_appendString(skin->bodyname, txt); bindpos.push_back(0); bindpos.push_back(0); bindpos.push_back(0); @@ -2246,7 +2246,7 @@ void mjCComposite::MakeSkin3Box(mjmSkin* skin, int c0, int c1, int side, // make one face of 3D skin, smooth -void mjCComposite::MakeSkin3Smooth(mjmSkin* skin, int c0, int c1, int side, +void mjCComposite::MakeSkin3Smooth(mjsSkin* skin, int c0, int c1, int side, const std::map& vmap, const char* format) { char txt00[100], txt01[100], txt10[100], txt11[100]; @@ -2281,7 +2281,7 @@ void mjCComposite::MakeSkin3Smooth(mjmSkin* skin, int c0, int c1, int side, } // bind pose: origin - mjm_appendString(skin->bodyname, txt00); + mjs_appendString(skin->bodyname, txt00); bindpos.push_back(0); bindpos.push_back(0); bindpos.push_back(0); diff --git a/src/user/user_composite.h b/src/user/user_composite.h index 6b30e2fa..bbc49a72 100644 --- a/src/user/user_composite.h +++ b/src/user/user_composite.h @@ -69,25 +69,25 @@ class mjCComposite { bool AddDefaultJoint(char* error = NULL, int error_sz = 0); void AdjustSoft(mjtNum* solref, mjtNum* solimp, int level); - bool Make(mjSpec* spec, mjmBody* body, char* error, int error_sz); + bool Make(mjSpec* spec, mjsBody* body, char* error, int error_sz); - bool MakeParticle(mjCModel* model, mjmBody* body, char* error, int error_sz); - bool MakeGrid(mjCModel* model, mjmBody* body, char* error, int error_sz); - bool MakeRope(mjCModel* model, mjmBody* body, char* error, int error_sz); - bool MakeCable(mjCModel* model, mjmBody* body, char* error, int error_sz); - bool MakeBox(mjCModel* model, mjmBody* body, char* error, int error_sz); + bool MakeParticle(mjCModel* model, mjsBody* body, char* error, int error_sz); + bool MakeGrid(mjCModel* model, mjsBody* body, char* error, int error_sz); + bool MakeRope(mjCModel* model, mjsBody* body, char* error, int error_sz); + bool MakeCable(mjCModel* model, mjsBody* body, char* error, int error_sz); + bool MakeBox(mjCModel* model, mjsBody* body, char* error, int error_sz); void MakeShear(mjCModel* model); void MakeSkin2(mjCModel* model, mjtNum inflate); void MakeSkin2Subgrid(mjCModel* model, mjtNum inflate); - void MakeClothBones(mjCModel* model, mjmSkin* skin); - void MakeClothBonesSubgrid(mjCModel* model, mjmSkin* skin); - void MakeCableBones(mjCModel* model, mjmSkin* skin); - void MakeCableBonesSubgrid(mjCModel* model, mjmSkin* skin); + void MakeClothBones(mjCModel* model, mjsSkin* skin); + void MakeClothBonesSubgrid(mjCModel* model, mjsSkin* skin); + void MakeCableBones(mjCModel* model, mjsSkin* skin); + void MakeCableBonesSubgrid(mjCModel* model, mjsSkin* skin); void MakeSkin3(mjCModel* model); - void MakeSkin3Box(mjmSkin* skin, int c0, int c1, int side, int& vcnt, const char* format); - void MakeSkin3Smooth(mjmSkin* skin, int c0, int c1, int side, + void MakeSkin3Box(mjsSkin* skin, int c0, int c1, int side, int& vcnt, const char* format); + void MakeSkin3Smooth(mjsSkin* skin, int c0, int c1, int side, const std::map& vmap, const char* format); void BoxProject(double* pos); @@ -116,7 +116,7 @@ class mjCComposite { // plugin support std::string plugin_name; std::string plugin_instance_name; - mjmPlugin plugin; + mjsPlugin plugin; // skin bool skin; // generate skin @@ -136,11 +136,11 @@ class mjCComposite { int dim; // dimensionality private: - mjmBody* AddRopeBody(mjCModel* model, mjmBody* body, int ix, int ix1); - mjmBody* AddCableBody(mjCModel* model, mjmBody* body, int ix, mjtNum normal[3], mjtNum prev_quat[4]); + mjsBody* AddRopeBody(mjCModel* model, mjsBody* body, int ix, int ix1); + mjsBody* AddCableBody(mjCModel* model, mjsBody* body, int ix, mjtNum normal[3], mjtNum prev_quat[4]); // temporary skin vectors - void CopyIntoSkin(mjmSkin* skin); + void CopyIntoSkin(mjsSkin* skin); std::vector face; std::vector vert; std::vector bindpos; diff --git a/src/user/user_flexcomp.cc b/src/user/user_flexcomp.cc index 0686065d..41e031e6 100644 --- a/src/user/user_flexcomp.cc +++ b/src/user/user_flexcomp.cc @@ -72,7 +72,7 @@ mjCFlexcomp::mjCFlexcomp(void) { rigid = false; centered = false; - mjm_defaultPlugin(plugin); + mjs_defaultPlugin(plugin); plugin_name = ""; plugin_instance_name = ""; plugin.name = (mjString)&plugin_name; @@ -82,9 +82,9 @@ mjCFlexcomp::mjCFlexcomp(void) { // make flexcomp object -bool mjCFlexcomp::Make(mjSpec* spec, mjmBody* body, char* error, int error_sz) { +bool mjCFlexcomp::Make(mjSpec* spec, mjsBody* body, char* error, int error_sz) { mjCModel* model = (mjCModel*)spec->element; - mjmFlex* dflex = def.spec.flex; + mjsFlex* dflex = def.spec.flex; int dim = dflex->dim; bool radial = (type==mjFCOMPTYPE_BOX || type==mjFCOMPTYPE_CYLINDER || @@ -94,7 +94,7 @@ bool mjCFlexcomp::Make(mjSpec* spec, mjmBody* body, char* error, int error_sz) { type==mjFCOMPTYPE_GMSH); // check parent body name - if (std::string(mjm_getString(body->name)).empty()) { + if (std::string(mjs_getString(body->name)).empty()) { return comperr(error, "Parent body must have name", error_sz); } @@ -381,7 +381,7 @@ bool mjCFlexcomp::Make(mjSpec* spec, mjmBody* body, char* error, int error_sz) { // create flex, copy parameters mjCFlex* flex = model->AddFlex(); - mjmFlex* pf = &flex->spec; + mjsFlex* pf = &flex->spec; int id = flex->id; *flex = def.flex; @@ -389,13 +389,13 @@ bool mjCFlexcomp::Make(mjSpec* spec, mjmBody* body, char* error, int error_sz) { flex->model = model; flex->id = id; - mjm_setString(pf->name, name.c_str()); - mjm_setInt(pf->elem, element.data(), element.size()); - mjm_setFloat(pf->texcoord, texcoord.data(), texcoord.size()); + mjs_setString(pf->name, name.c_str()); + mjs_setInt(pf->elem, element.data(), element.size()); + mjs_setFloat(pf->texcoord, texcoord.data(), texcoord.size()); // rigid: set parent name, nothing else to do if (rigid) { - mjm_appendString(pf->vertbody, mjm_getString(body->name)); + mjs_appendString(pf->vertbody, mjs_getString(body->name)); return true; } @@ -418,22 +418,22 @@ bool mjCFlexcomp::Make(mjSpec* spec, mjmBody* body, char* error, int error_sz) { // pinned: parent body if (pinned[i]) { - mjm_appendString(pf->vertbody, mjm_getString(body->name)); + mjs_appendString(pf->vertbody, mjs_getString(body->name)); // add plugin if (plugin.active) { - mjmPlugin* pplugin = &body->plugin; + mjsPlugin* pplugin = &body->plugin; pplugin->active = true; pplugin->instance = (mjElement)plugin.instance; - mjm_setString(pplugin->name, mjm_getString(plugin.name)); - mjm_setString(pplugin->instance_name, plugin_instance_name.c_str()); + mjs_setString(pplugin->name, mjs_getString(plugin.name)); + mjs_setString(pplugin->instance_name, plugin_instance_name.c_str()); } } // not pinned: new body else { // add new body at vertex coordinates - mjmBody* pb = mjm_addBody(body, 0); + mjsBody* pb = mjs_addBody(body, 0); // set frame and inertial pb->pos[0] = point[3*i]; @@ -448,7 +448,7 @@ bool mjCFlexcomp::Make(mjSpec* spec, mjmBody* body, char* error, int error_sz) { // add radial slider if (radial) { - mjmJoint* jnt = mjm_addJoint(pb, 0); + mjsJoint* jnt = mjs_addJoint(pb, 0); // set properties jnt->type = mjJNT_SLIDE; @@ -461,7 +461,7 @@ bool mjCFlexcomp::Make(mjSpec* spec, mjmBody* body, char* error, int error_sz) { else { for (int j=0; j<3; j++) { // add joint to body - mjmJoint* jnt = mjm_addJoint(pb, 0); + mjsJoint* jnt = mjs_addJoint(pb, 0); // set properties jnt->type = mjJNT_SLIDE; @@ -474,8 +474,8 @@ bool mjCFlexcomp::Make(mjSpec* spec, mjmBody* body, char* error, int error_sz) { // construct body name, add to vertbody char txt[100]; mju::sprintf_arr(txt, "%s_%d", name.c_str(), i); - mjm_setString(pb->name, txt); - mjm_appendString(pf->vertbody, mjm_getString(pb->name)); + mjs_setString(pb->name, txt); + mjs_appendString(pf->vertbody, mjs_getString(pb->name)); // clear flex vertex coordinates if allocated if (!centered) { @@ -486,26 +486,26 @@ bool mjCFlexcomp::Make(mjSpec* spec, mjmBody* body, char* error, int error_sz) { // add plugin if (plugin.active) { - mjmPlugin* pplugin = &pb->plugin; + mjsPlugin* pplugin = &pb->plugin; pplugin->active = true; pplugin->instance = (mjElement)plugin.instance; - mjm_setString(pplugin->name, mjm_getString(plugin.name)); - mjm_setString(pplugin->instance_name, plugin_instance_name.c_str()); + mjs_setString(pplugin->name, mjs_getString(plugin.name)); + mjs_setString(pplugin->instance_name, plugin_instance_name.c_str()); } } } if (!centered) { - mjm_setDouble(pf->vert, point.data(), point.size()); + mjs_setDouble(pf->vert, point.data(), point.size()); } // create edge equality constraint if (equality) { - mjmEquality* pe = mjm_addEquality(&model->spec, &def.spec); - mjm_setDefault(pe->element, &model->defaults[0]->spec); + mjsEquality* pe = mjs_addEquality(&model->spec, &def.spec); + mjs_setDefault(pe->element, &model->defaults[0]->spec); pe->type = mjEQ_FLEX; pe->active = true; - mjm_setString(pe->name1, name.c_str()); + mjs_setString(pe->name1, name.c_str()); } return true; @@ -885,8 +885,8 @@ bool mjCFlexcomp::MakeMesh(mjCModel* model, char* error, int error_sz) { } // load resource - string filename = mjuu_makefullname(mjm_getString(model->spec.modelfiledir), - mjm_getString(model->spec.meshdir), file); + string filename = mjuu_makefullname(mjs_getString(model->spec.modelfiledir), + mjs_getString(model->spec.meshdir), file); mjResource* resource = nullptr; try { @@ -992,8 +992,8 @@ bool mjCFlexcomp::MakeGMSH(mjCModel* model, char* error, int error_sz) { } // open resource - string filename = mjuu_makefullname(mjm_getString(model->spec.modelfiledir), - mjm_getString(model->spec.meshdir), file); + string filename = mjuu_makefullname(mjs_getString(model->spec.modelfiledir), + mjs_getString(model->spec.meshdir), file); mjResource* resource = nullptr; try { diff --git a/src/user/user_flexcomp.h b/src/user/user_flexcomp.h index 54c44a4b..8e6b4340 100644 --- a/src/user/user_flexcomp.h +++ b/src/user/user_flexcomp.h @@ -42,7 +42,7 @@ typedef enum _mjtFcompType { class mjCFlexcomp { public: mjCFlexcomp(void); - bool Make(mjSpec* spec, mjmBody* body, char* error, int error_sz); + bool Make(mjSpec* spec, mjsBody* body, char* error, int error_sz); bool MakeGrid(char* error, int error_sz); bool MakeBox(char* error, int error_sz); @@ -93,7 +93,7 @@ class mjCFlexcomp { // plugin support std::string plugin_name; std::string plugin_instance_name; - mjmPlugin plugin; + mjsPlugin plugin; }; #endif // MUJOCO_SRC_USER_USER_FLEXCOMP_H_ diff --git a/src/user/user_init.cc b/src/user/user_init.cc index 77716bdb..0e85848e 100644 --- a/src/user/user_init.cc +++ b/src/user/user_init.cc @@ -22,7 +22,7 @@ // default model attributes -void mjm_defaultSpec(mjSpec& model) { +void mjs_defaultSpec(mjSpec& model) { memset(&model, 0, sizeof(mjSpec)); // default statistics @@ -76,8 +76,8 @@ void mjm_defaultSpec(mjSpec& model) { // default body attributes -void mjm_defaultBody(mjmBody& body) { - memset(&body, 0, sizeof(mjmBody)); +void mjs_defaultBody(mjsBody& body) { + memset(&body, 0, sizeof(mjsBody)); // body frame body.pos[0] = mjNAN; @@ -94,8 +94,8 @@ void mjm_defaultBody(mjmBody& body) { // default frame attributes -void mjm_defaultFrame(mjmFrame& frame) { - memset(&frame, 0, sizeof(mjmFrame)); +void mjs_defaultFrame(mjsFrame& frame) { + memset(&frame, 0, sizeof(mjsFrame)); mju_zero3(frame.pos); mjuu_setvec(frame.quat, 1, 0, 0, 0); frame.alt.axisangle[0] = frame.alt.xyaxes[0] = frame.alt.zaxis[0] = frame.alt.euler[0] = mjNAN; @@ -104,8 +104,8 @@ void mjm_defaultFrame(mjmFrame& frame) { // default joint attributes -void mjm_defaultJoint(mjmJoint& joint) { - memset(&joint, 0, sizeof(mjmJoint)); +void mjs_defaultJoint(mjsJoint& joint) { + memset(&joint, 0, sizeof(mjsJoint)); joint.type = mjJNT_HINGE; joint.axis[2] = 1; @@ -119,8 +119,8 @@ void mjm_defaultJoint(mjmJoint& joint) { // default geom attributes -void mjm_defaultGeom(mjmGeom& geom) { - memset(&geom, 0, sizeof(mjmGeom)); +void mjs_defaultGeom(mjsGeom& geom) { + memset(&geom, 0, sizeof(mjsGeom)); // type geom.type = mjGEOM_SPHERE; @@ -163,9 +163,9 @@ void mjm_defaultGeom(mjmGeom& geom) { // default site attributes -void mjm_defaultSite(mjmSite& site) { +void mjs_defaultSite(mjsSite& site) { // set everything to 0 / false / NULL - memset(&site, 0, sizeof(mjmSite)); + memset(&site, 0, sizeof(mjsSite)); // type site.type = mjGEOM_SPHERE; @@ -184,8 +184,8 @@ void mjm_defaultSite(mjmSite& site) { // default cam attributes -void mjm_defaultCamera(mjmCamera& cam) { - memset(&cam, 0, sizeof(mjmCamera)); +void mjs_defaultCamera(mjsCamera& cam) { + memset(&cam, 0, sizeof(mjsCamera)); // type cam.mode = mjCAMLIGHT_FIXED; @@ -203,8 +203,8 @@ void mjm_defaultCamera(mjmCamera& cam) { // default light attributes -void mjm_defaultLight(mjmLight& light) { - memset(&light, 0, sizeof(mjmLight)); +void mjs_defaultLight(mjsLight& light) { + memset(&light, 0, sizeof(mjsLight)); // mode light.mode = mjCAMLIGHT_FIXED; @@ -223,8 +223,8 @@ void mjm_defaultLight(mjmLight& light) { // default flex attributes -void mjm_defaultFlex(mjmFlex& flex) { - memset(&flex, 0, sizeof(mjmFlex)); +void mjs_defaultFlex(mjsFlex& flex) { + memset(&flex, 0, sizeof(mjsFlex)); // set contact defaults flex.contype = 1; @@ -247,8 +247,8 @@ void mjm_defaultFlex(mjmFlex& flex) { // default mesh attributes -void mjm_defaultMesh(mjmMesh& mesh) { - memset(&mesh, 0, sizeof(mjmMesh)); +void mjs_defaultMesh(mjsMesh& mesh) { + memset(&mesh, 0, sizeof(mjsMesh)); mjuu_setvec(mesh.refpos, 0, 0, 0); mjuu_setvec(mesh.refquat, 1, 0, 0, 0); mjuu_setvec(mesh.scale, 1, 1, 1); @@ -258,15 +258,15 @@ void mjm_defaultMesh(mjmMesh& mesh) { // default height field attributes -void mjm_defaultHField(mjmHField& hfield) { - memset(&hfield, 0, sizeof(mjmHField)); +void mjs_defaultHField(mjsHField& hfield) { + memset(&hfield, 0, sizeof(mjsHField)); } // default skin attributes -void mjm_defaultSkin(mjmSkin& skin) { - memset(&skin, 0, sizeof(mjmSkin)); +void mjs_defaultSkin(mjsSkin& skin) { + memset(&skin, 0, sizeof(mjsSkin)); skin.rgba[0] = skin.rgba[1] = skin.rgba[2] = 0.5f; skin.rgba[3] = 1.0f; skin.inflate = 0; @@ -276,8 +276,8 @@ void mjm_defaultSkin(mjmSkin& skin) { // default texture attributes -void mjm_defaultTexture(mjmTexture& texture) { - memset(&texture, 0, sizeof(mjmTexture)); +void mjs_defaultTexture(mjsTexture& texture) { + memset(&texture, 0, sizeof(mjsTexture)); texture.type = mjTEXTURE_CUBE; mjuu_setvec(texture.rgb1, 0.8, 0.8, 0.8); mjuu_setvec(texture.rgb2, 0.5, 0.5, 0.5); @@ -290,8 +290,8 @@ void mjm_defaultTexture(mjmTexture& texture) { // default material attributes -void mjm_defaultMaterial(mjmMaterial& material) { - memset(&material, 0, sizeof(mjmMaterial)); +void mjs_defaultMaterial(mjsMaterial& material) { + memset(&material, 0, sizeof(mjsMaterial)); material.texuniform = false; material.texrepeat[0] = material.texrepeat[1] = 1; material.emission = 0; @@ -304,8 +304,8 @@ void mjm_defaultMaterial(mjmMaterial& material) { // default pair attributes -void mjm_defaultPair(mjmPair& pair) { - memset(&pair, 0, sizeof(mjmPair)); +void mjs_defaultPair(mjsPair& pair) { + memset(&pair, 0, sizeof(mjsPair)); pair.condim = 3; mj_defaultSolRefImp(pair.solref, pair.solimp); pair.friction[0] = 1; @@ -318,8 +318,8 @@ void mjm_defaultPair(mjmPair& pair) { // default equality attributes -void mjm_defaultEquality(mjmEquality& equality) { - memset(&equality, 0, sizeof(mjmEquality)); +void mjs_defaultEquality(mjsEquality& equality) { + memset(&equality, 0, sizeof(mjsEquality)); equality.type = mjEQ_CONNECT; equality.active = 1; mj_defaultSolRefImp(equality.solref, equality.solimp); @@ -330,8 +330,8 @@ void mjm_defaultEquality(mjmEquality& equality) { // default tendon attributes -void mjm_defaultTendon(mjmTendon& tendon) { - memset(&tendon, 0, sizeof(mjmTendon)); +void mjs_defaultTendon(mjsTendon& tendon) { + memset(&tendon, 0, sizeof(mjsTendon)); tendon.limited = mjLIMITED_AUTO; tendon.springlength[0] = tendon.springlength[1] = -1; mj_defaultSolRefImp(tendon.solref_limit, tendon.solimp_limit); @@ -344,8 +344,8 @@ void mjm_defaultTendon(mjmTendon& tendon) { // default actuator attributes -void mjm_defaultActuator(mjmActuator& actuator) { - memset(&actuator, 0, sizeof(mjmActuator)); +void mjs_defaultActuator(mjsActuator& actuator) { + memset(&actuator, 0, sizeof(mjsActuator)); // gain, bias actuator.gaintype = mjGAIN_FIXED; @@ -370,8 +370,8 @@ void mjm_defaultActuator(mjmActuator& actuator) { // default sensor attributes -void mjm_defaultSensor(mjmSensor& sensor) { - memset(&sensor, 0, sizeof(mjmSensor)); +void mjs_defaultSensor(mjsSensor& sensor) { + memset(&sensor, 0, sizeof(mjsSensor)); sensor.type = mjSENS_TOUCH; sensor.datatype = mjDATATYPE_REAL; sensor.needstage = mjSTAGE_ACC; @@ -380,36 +380,36 @@ void mjm_defaultSensor(mjmSensor& sensor) { // Default numeric attributes. -void mjm_defaultNumeric(mjmNumeric& numeric) { - memset(&numeric, 0, sizeof(mjmNumeric)); +void mjs_defaultNumeric(mjsNumeric& numeric) { + memset(&numeric, 0, sizeof(mjsNumeric)); } // Default text attributes. -void mjm_defaultText(mjmText& text) { - memset(&text, 0, sizeof(mjmText)); +void mjs_defaultText(mjsText& text) { + memset(&text, 0, sizeof(mjsText)); } // Default tuple attributes. -void mjm_defaultTuple(mjmTuple& tuple) { - memset(&tuple, 0, sizeof(mjmTuple)); +void mjs_defaultTuple(mjsTuple& tuple) { + memset(&tuple, 0, sizeof(mjsTuple)); } // Default keyframe attributes. -void mjm_defaultKey(mjmKey& key) { - memset(&key, 0, sizeof(mjmKey)); +void mjs_defaultKey(mjsKey& key) { + memset(&key, 0, sizeof(mjsKey)); } // default plugin attributes -void mjm_defaultPlugin(mjmPlugin& plugin) { - memset(&plugin, 0, sizeof(mjmPlugin)); +void mjs_defaultPlugin(mjsPlugin& plugin) { + memset(&plugin, 0, sizeof(mjsPlugin)); plugin.plugin_slot = -1; } diff --git a/src/user/user_mesh.cc b/src/user/user_mesh.cc index c6c5d9de..71357f45 100644 --- a/src/user/user_mesh.cc +++ b/src/user/user_mesh.cc @@ -130,7 +130,7 @@ static void ReadFromBuffer(T* dst, const char* src) { //------------------ class mjCMesh implementation -------------------------------------------------- mjCMesh::mjCMesh(mjCModel* _model, mjCDef* _def) { - mjm_defaultMesh(spec); + mjs_defaultMesh(spec); // clear internal variables mjuu_setvec(pos_surface_, 0, 0, 0); @@ -195,7 +195,7 @@ mjCMesh& mjCMesh::operator=(const mjCMesh& other) { if (this != &other) { this->spec = other.spec; *static_cast(this) = static_cast(other); - *static_cast(this) = static_cast(other); + *static_cast(this) = static_cast(other); if (other.vert_) { size_t nvert = 3*other.nvert_*sizeof(float); this->vert_ = (float*)mju_malloc(nvert); @@ -282,7 +282,7 @@ void mjCMesh::PointToLocal() { void mjCMesh::CopyFromSpec() { - *static_cast(this) = spec; + *static_cast(this) = spec; file_ = spec_file_; content_type_ = spec_content_type_; uservert_ = spec_uservert_; @@ -2054,7 +2054,7 @@ void mjCMesh::MakeCenter(void) { // constructor mjCSkin::mjCSkin(mjCModel* _model) { - mjm_defaultSkin(spec); + mjs_defaultSkin(spec); // set model pointer model = _model; @@ -2093,7 +2093,7 @@ mjCSkin& mjCSkin::operator=(const mjCSkin& other) { if (this != &other) { this->spec = other.spec; *static_cast(this) = static_cast(other); - *static_cast(this) = static_cast(other); + *static_cast(this) = static_cast(other); } PointToLocal(); return *this; @@ -2129,7 +2129,7 @@ void mjCSkin::NameSpace(const mjCModel* m) { void mjCSkin::CopyFromSpec() { - *static_cast(this) = spec; + *static_cast(this) = spec; file_ = spec_file_; material_ = spec_material_; vert_ = spec_vert_; @@ -2478,7 +2478,7 @@ constexpr int eledge[3][6][2] = {{{ 0, 1}, {-1, -1}, {-1, -1}, // constructor mjCFlex::mjCFlex(mjCModel* _model) { - mjm_defaultFlex(spec); + mjs_defaultFlex(spec); // set model model = _model; @@ -2505,7 +2505,7 @@ mjCFlex& mjCFlex::operator=(const mjCFlex& other) { if (this != &other) { this->spec = other.spec; *static_cast(this) = static_cast(other); - *static_cast(this) = static_cast(other); + *static_cast(this) = static_cast(other); } PointToLocal(); return *this; @@ -2535,7 +2535,7 @@ void mjCFlex::NameSpace(const mjCModel* m) { void mjCFlex::CopyFromSpec() { - *static_cast(this) = spec; + *static_cast(this) = spec; spec.info = (mjString)&info; material_ = spec_material_; vertbody_ = spec_vertbody_; diff --git a/src/user/user_model.cc b/src/user/user_model.cc index 0cd073f6..d8a72c50 100644 --- a/src/user/user_model.cc +++ b/src/user/user_model.cc @@ -83,7 +83,7 @@ static void copyvec(T1* dest, T2* src, int n) { // constructor mjCModel::mjCModel() { - mjm_defaultSpec(spec); + mjs_defaultSpec(spec); spec_comment_.clear(); spec_modelfiledir_.clear(); spec_meshdir_.clear(); diff --git a/src/user/user_objects.cc b/src/user/user_objects.cc index 8e2a1d78..79008f69 100644 --- a/src/user/user_objects.cc +++ b/src/user/user_objects.cc @@ -432,18 +432,18 @@ mjCDef::mjCDef(void) { name.clear(); parentid = -1; childid.clear(); - mjm_defaultJoint(joint.spec); - mjm_defaultGeom(geom.spec); - mjm_defaultSite(site.spec); - mjm_defaultCamera(camera.spec); - mjm_defaultLight(light.spec); - mjm_defaultFlex(flex.spec); - mjm_defaultMesh(mesh.spec); - mjm_defaultMaterial(material.spec); - mjm_defaultPair(pair.spec); - mjm_defaultEquality(equality.spec); - mjm_defaultTendon(tendon.spec); - mjm_defaultActuator(actuator.spec); + mjs_defaultJoint(joint.spec); + mjs_defaultGeom(geom.spec); + mjs_defaultSite(site.spec); + mjs_defaultCamera(camera.spec); + mjs_defaultLight(light.spec); + mjs_defaultFlex(flex.spec); + mjs_defaultMesh(mesh.spec); + mjs_defaultMaterial(material.spec); + mjs_defaultPair(pair.spec); + mjs_defaultEquality(equality.spec); + mjs_defaultTendon(tendon.spec); + mjs_defaultActuator(actuator.spec); // make sure all the pointers are local PointToLocal(); @@ -626,7 +626,7 @@ mjCBody::mjCBody(mjCModel* _model) { // set model pointer model = _model; - mjm_defaultBody(spec); + mjs_defaultBody(spec); parentid = -1; weldid = -1; dofnum = 0; @@ -668,7 +668,7 @@ mjCBody& mjCBody::operator=(const mjCBody& other) { if (this != &other) { spec = other.spec; *static_cast(this) = static_cast(other); - *static_cast(this) = static_cast(other); + *static_cast(this) = static_cast(other); std::map fmap; mjCFrame *np = nullptr; bodies.clear(); @@ -751,7 +751,7 @@ void mjCBody::PointToLocal() { void mjCBody::CopyFromSpec() { - *static_cast(this) = spec; + *static_cast(this) = spec; userdata_ = spec_userdata_; userdata = (mjDoubleVec)&userdata_; mju_copy4(alt_.axisangle, alt.axisangle); @@ -1367,7 +1367,7 @@ void mjCBody::Compile(void) { // initialize frame mjCFrame::mjCFrame(mjCModel* _model, mjCFrame* _frame) { - mjm_defaultFrame(spec); + mjs_defaultFrame(spec); compiled = false; model = _model; body = NULL; @@ -1388,7 +1388,7 @@ mjCFrame& mjCFrame::operator=(const mjCFrame& other) { if (this != &other) { this->spec = other.spec; *static_cast(this) = static_cast(other); - *static_cast(this) = static_cast(other); + *static_cast(this) = static_cast(other); } PointToLocal(); return *this; @@ -1429,7 +1429,7 @@ void mjCFrame::PointToLocal() { void mjCFrame::CopyFromSpec() { - *static_cast(this) = spec; + *static_cast(this) = spec; mju_copy3(pos, spec.pos); mju_copy4(quat, spec.quat); mju_copy4(alt_.axisangle, alt.axisangle); @@ -1467,7 +1467,7 @@ void mjCFrame::Compile() { // initialize default joint mjCJoint::mjCJoint(mjCModel* _model, mjCDef* _def) { - mjm_defaultJoint(spec); + mjs_defaultJoint(spec); // clear internal variables spec_userdata_.clear(); @@ -1501,7 +1501,7 @@ mjCJoint& mjCJoint::operator=(const mjCJoint& other) { if (this != &other) { this->spec = other.spec; *static_cast(this) = static_cast(other); - *static_cast(this) = static_cast(other); + *static_cast(this) = static_cast(other); } PointToLocal(); return *this; @@ -1525,7 +1525,7 @@ void mjCJoint::PointToLocal() { void mjCJoint::CopyFromSpec() { - *static_cast(this) = spec; + *static_cast(this) = spec; userdata_ = spec_userdata_; userdata = (mjDoubleVec)&spec_userdata_; } @@ -1664,7 +1664,7 @@ int mjCJoint::Compile(void) { // initialize default geom mjCGeom::mjCGeom(mjCModel* _model, mjCDef* _def) { - mjm_defaultGeom(spec); + mjs_defaultGeom(spec); mass_ = 0; body = 0; @@ -1712,7 +1712,7 @@ mjCGeom& mjCGeom::operator=(const mjCGeom& other) { if (this != &other) { this->spec = other.spec; *static_cast(this) = static_cast(other); - *static_cast(this) = static_cast(other); + *static_cast(this) = static_cast(other); } PointToLocal(); return *this; @@ -1737,7 +1737,7 @@ void mjCGeom::PointToLocal(void) { void mjCGeom::CopyFromSpec() { - *static_cast(this) = spec; + *static_cast(this) = spec; userdata_ = spec_userdata_; hfieldname_ = spec_hfieldname_; meshname_ = spec_meshname_; @@ -2294,7 +2294,7 @@ void mjCGeom::Compile(void) { // initialize default site mjCSite::mjCSite(mjCModel* _model, mjCDef* _def) { - mjm_defaultSite(spec); + mjs_defaultSite(spec); // clear internal variables body = 0; @@ -2330,7 +2330,7 @@ mjCSite& mjCSite::operator=(const mjCSite& other) { if (this != &other) { this->spec = other.spec; *static_cast(this) = static_cast(other); - *static_cast(this) = static_cast(other); + *static_cast(this) = static_cast(other); } PointToLocal(); return *this; @@ -2350,7 +2350,7 @@ void mjCSite::PointToLocal() { void mjCSite::CopyFromSpec() { - *static_cast(this) = spec; + *static_cast(this) = spec; userdata_ = spec_userdata_; material_ = spec_material_; userdata = (mjDoubleVec)&userdata_; @@ -2454,7 +2454,7 @@ void mjCSite::Compile(void) { // initialize defaults mjCCamera::mjCCamera(mjCModel* _model, mjCDef* _def) { - mjm_defaultCamera(spec); + mjs_defaultCamera(spec); // clear private variables body = 0; @@ -2489,7 +2489,7 @@ mjCCamera& mjCCamera::operator=(const mjCCamera& other) { if (this != &other) { this->spec = other.spec; *static_cast(this) = static_cast(other); - *static_cast(this) = static_cast(other); + *static_cast(this) = static_cast(other); } PointToLocal(); return *this; @@ -2509,7 +2509,7 @@ void mjCCamera::PointToLocal() { void mjCCamera::CopyFromSpec() { - *static_cast(this) = spec; + *static_cast(this) = spec; userdata_ = spec_userdata_; targetbody_ = spec_targetbody_; userdata = (mjDoubleVec)&userdata_; @@ -2608,7 +2608,7 @@ void mjCCamera::Compile(void) { // initialize defaults mjCLight::mjCLight(mjCModel* _model, mjCDef* _def) { - mjm_defaultLight(spec); + mjs_defaultLight(spec); // clear private variables body = 0; @@ -2640,7 +2640,7 @@ mjCLight& mjCLight::operator=(const mjCLight& other) { if (this != &other) { this->spec = other.spec; *static_cast(this) = static_cast(other); - *static_cast(this) = static_cast(other); + *static_cast(this) = static_cast(other); } PointToLocal(); return *this; @@ -2659,7 +2659,7 @@ void mjCLight::PointToLocal() { void mjCLight::CopyFromSpec() { - *static_cast(this) = spec; + *static_cast(this) = spec; targetbody_ = spec_targetbody_; targetbody = (mjString)&targetbody_; } @@ -2704,7 +2704,7 @@ void mjCLight::Compile(void) { // constructor mjCHField::mjCHField(mjCModel* _model) { - mjm_defaultHField(spec); + mjs_defaultHField(spec); // set model pointer model = _model; @@ -2733,7 +2733,7 @@ mjCHField& mjCHField::operator=(const mjCHField& other) { if (this != &other) { this->spec = other.spec; *static_cast(this) = static_cast(other); - *static_cast(this) = static_cast(other); + *static_cast(this) = static_cast(other); } PointToLocal(); return *this; @@ -2753,7 +2753,7 @@ void mjCHField::PointToLocal() { void mjCHField::CopyFromSpec() { - *static_cast(this) = spec; + *static_cast(this) = spec; file_ = spec_file_; content_type_ = spec_content_type_; userdata_ = spec_userdata_; @@ -2956,7 +2956,7 @@ void mjCHField::Compile(const mjVFS* vfs) { // initialize defaults mjCTexture::mjCTexture(mjCModel* _model) { - mjm_defaultTexture(spec); + mjs_defaultTexture(spec); // set model pointer model = _model; @@ -3010,7 +3010,7 @@ void mjCTexture::PointToLocal() { void mjCTexture::CopyFromSpec() { - *static_cast(this) = spec; + *static_cast(this) = spec; file_ = spec_file_; content_type_ = spec_content_type_; cubefiles_ = spec_cubefiles_; @@ -3698,7 +3698,7 @@ void mjCTexture::Compile(const mjVFS* vfs) { // initialize defaults mjCMaterial::mjCMaterial(mjCModel* _model, mjCDef* _def) { - mjm_defaultMaterial(spec); + mjs_defaultMaterial(spec); // clear internal spec_texture_.clear(); @@ -3732,7 +3732,7 @@ mjCMaterial& mjCMaterial::operator=(const mjCMaterial& other) { if (this != &other) { this->spec = other.spec; *static_cast(this) = static_cast(other); - *static_cast(this) = static_cast(other); + *static_cast(this) = static_cast(other); } PointToLocal(); return *this; @@ -3751,7 +3751,7 @@ void mjCMaterial::PointToLocal() { void mjCMaterial::CopyFromSpec() { - *static_cast(this) = spec; + *static_cast(this) = spec; texture_ = spec_texture_; texture = (mjString)&texture_; } @@ -3769,7 +3769,7 @@ void mjCMaterial::Compile(void) { // constructor mjCPair::mjCPair(mjCModel* _model, mjCDef* _def) { - mjm_defaultPair(spec); + mjs_defaultPair(spec); // set defaults spec_geomname1_.clear(); @@ -3808,7 +3808,7 @@ mjCPair& mjCPair::operator=(const mjCPair& other) { if (this != &other) { this->spec = other.spec; *static_cast(this) = static_cast(other); - *static_cast(this) = static_cast(other); + *static_cast(this) = static_cast(other); this->geom1 = nullptr; this->geom2 = nullptr; } @@ -3840,7 +3840,7 @@ void mjCPair::NameSpace(const mjCModel* m) { void mjCPair::CopyFromSpec() { - *static_cast(this) = spec; + *static_cast(this) = spec; geomname1_ = spec_geomname1_; geomname2_ = spec_geomname2_; geomname1 = (mjString)&geomname1_; @@ -4020,7 +4020,7 @@ mjCBodyPair& mjCBodyPair::operator=(const mjCBodyPair& other) { if (this != &other) { this->spec = other.spec; *static_cast(this) = static_cast(other); - *static_cast(this) = static_cast(other); + *static_cast(this) = static_cast(other); } PointToLocal(); return *this; @@ -4049,7 +4049,7 @@ void mjCBodyPair::NameSpace(const mjCModel* m) { void mjCBodyPair::CopyFromSpec() { - *static_cast(this) = spec; + *static_cast(this) = spec; bodyname1_ = spec_bodyname1_; bodyname2_ = spec_bodyname2_; bodyname1 = (mjString)&bodyname1_; @@ -4104,7 +4104,7 @@ void mjCBodyPair::Compile(void) { // initialize default constraint mjCEquality::mjCEquality(mjCModel* _model, mjCDef* _def) { - mjm_defaultEquality(spec); + mjs_defaultEquality(spec); // clear internal variables spec_name1_.clear(); @@ -4139,7 +4139,7 @@ mjCEquality& mjCEquality::operator=(const mjCEquality& other) { if (this != &other) { this->spec = other.spec; *static_cast(this) = static_cast(other); - *static_cast(this) = static_cast(other); + *static_cast(this) = static_cast(other); } PointToLocal(); return *this; @@ -4169,7 +4169,7 @@ void mjCEquality::NameSpace(const mjCModel* m) { void mjCEquality::CopyFromSpec() { - *static_cast(this) = spec; + *static_cast(this) = spec; name1_ = spec_name1_; name2_ = spec_name2_; name1 = (mjString)&name1_; @@ -4266,7 +4266,7 @@ void mjCEquality::Compile(void) { // constructor mjCTendon::mjCTendon(mjCModel* _model, mjCDef* _def) { - mjm_defaultTendon(spec); + mjs_defaultTendon(spec); // clear internal variables spec_material_.clear(); @@ -4302,7 +4302,7 @@ mjCTendon& mjCTendon::operator=(const mjCTendon& other) { if (this != &other) { this->spec = other.spec; *static_cast(this) = static_cast(other); - *static_cast(this) = static_cast(other); + *static_cast(this) = static_cast(other); for (int i=0; itendon = this; @@ -4340,7 +4340,7 @@ void mjCTendon::NameSpace(const mjCModel* m) { void mjCTendon::CopyFromSpec() { - *static_cast(this) = spec; + *static_cast(this) = spec; material_ = spec_material_; userdata_ = spec_userdata_; material = (mjString)&material_; @@ -4622,7 +4622,7 @@ mjCWrap& mjCWrap::operator=(const mjCWrap& other) { if (this != &other) { this->spec = other.spec; *static_cast(this) = static_cast(other); - *static_cast(this) = static_cast(other); + *static_cast(this) = static_cast(other); obj = nullptr; } PointToLocal(); @@ -4723,7 +4723,7 @@ void mjCWrap::ResolveReferences(const mjCModel* m) { // initialize defaults mjCActuator::mjCActuator(mjCModel* _model, mjCDef* _def) { - mjm_defaultActuator(spec); + mjs_defaultActuator(spec); // clear private variables ptarget = nullptr; @@ -4761,7 +4761,7 @@ mjCActuator& mjCActuator::operator=(const mjCActuator& other) { if (this != &other) { this->spec = other.spec; *static_cast(this) = static_cast(other); - *static_cast(this) = static_cast(other); + *static_cast(this) = static_cast(other); ptarget = nullptr; } PointToLocal(); @@ -4803,7 +4803,7 @@ void mjCActuator::NameSpace(const mjCModel* m) { void mjCActuator::CopyFromSpec() { - *static_cast(this) = spec; + *static_cast(this) = spec; userdata_ = spec_userdata_; target_ = spec_target_; refsite_ = spec_refsite_; @@ -5066,7 +5066,7 @@ void mjCActuator::Compile(void) { // initialize defaults mjCSensor::mjCSensor(mjCModel* _model) { - mjm_defaultSensor(spec); + mjs_defaultSensor(spec); // set model model = _model; @@ -5098,7 +5098,7 @@ mjCSensor& mjCSensor::operator=(const mjCSensor& other) { if (this != &other) { this->spec = other.spec; *static_cast(this) = static_cast(other); - *static_cast(this) = static_cast(other); + *static_cast(this) = static_cast(other); obj = nullptr; ref = nullptr; } @@ -5133,7 +5133,7 @@ void mjCSensor::NameSpace(const mjCModel* m) { void mjCSensor::CopyFromSpec() { - *static_cast(this) = spec; + *static_cast(this) = spec; userdata_ = spec_userdata_; objname_ = spec_objname_; refname_ = spec_refname_; @@ -5552,7 +5552,7 @@ void mjCSensor::Compile(void) { // constructor mjCNumeric::mjCNumeric(mjCModel* _model) { - mjm_defaultNumeric(spec); + mjs_defaultNumeric(spec); // set model pointer model = _model; @@ -5579,7 +5579,7 @@ mjCNumeric& mjCNumeric::operator=(const mjCNumeric& other) { if (this != &other) { this->spec = other.spec; *static_cast(this) = static_cast(other); - *static_cast(this) = static_cast(other); + *static_cast(this) = static_cast(other); } PointToLocal(); return *this; @@ -5597,7 +5597,7 @@ void mjCNumeric::PointToLocal() { void mjCNumeric::CopyFromSpec() { - *static_cast(this) = spec; + *static_cast(this) = spec; data_ = spec_data_; data = (mjDoubleVec)&data_; } @@ -5640,7 +5640,7 @@ void mjCNumeric::Compile(void) { // constructor mjCText::mjCText(mjCModel* _model) { - mjm_defaultText(spec); + mjs_defaultText(spec); // set model pointer model = _model; @@ -5667,7 +5667,7 @@ mjCText& mjCText::operator=(const mjCText& other) { if (this != &other) { this->spec = other.spec; *static_cast(this) = static_cast(other); - *static_cast(this) = static_cast(other); + *static_cast(this) = static_cast(other); } PointToLocal(); return *this; @@ -5685,7 +5685,7 @@ void mjCText::PointToLocal() { void mjCText::CopyFromSpec() { - *static_cast(this) = spec; + *static_cast(this) = spec; data_ = spec_data_; data = (mjString)&data_; } @@ -5716,7 +5716,7 @@ void mjCText::Compile(void) { // constructor mjCTuple::mjCTuple(mjCModel* _model) { - mjm_defaultTuple(spec); + mjs_defaultTuple(spec); // set model pointer model = _model; @@ -5746,7 +5746,7 @@ mjCTuple& mjCTuple::operator=(const mjCTuple& other) { if (this != &other) { this->spec = other.spec; *static_cast(this) = static_cast(other); - *static_cast(this) = static_cast(other); + *static_cast(this) = static_cast(other); } PointToLocal(); return *this; @@ -5777,7 +5777,7 @@ void mjCTuple::NameSpace(const mjCModel* m) { void mjCTuple::CopyFromSpec() { - *static_cast(this) = spec; + *static_cast(this) = spec; objtype_ = spec_objtype_; objname_ = spec_objname_; objprm_ = spec_objprm_; @@ -5848,7 +5848,7 @@ void mjCTuple::Compile(void) { // constructor mjCKey::mjCKey(mjCModel* _model) { - mjm_defaultKey(spec); + mjs_defaultKey(spec); // set model pointer model = _model; @@ -5880,7 +5880,7 @@ mjCKey& mjCKey::operator=(const mjCKey& other) { if (this != &other) { this->spec = other.spec; *static_cast(this) = static_cast(other); - *static_cast(this) = static_cast(other); + *static_cast(this) = static_cast(other); } PointToLocal(); return *this; @@ -5903,7 +5903,7 @@ void mjCKey::PointToLocal() { void mjCKey::CopyFromSpec() { - *static_cast(this) = spec; + *static_cast(this) = spec; qpos_ = spec_qpos_; qvel_ = spec_qvel_; act_ = spec_act_; @@ -6031,7 +6031,7 @@ mjCPlugin::mjCPlugin(mjCModel* _model) { instance_name.clear(); // public interface - mjm_defaultPlugin(spec); + mjs_defaultPlugin(spec); spec.name = (mjString)&name; spec.instance_name = (mjString)&instance_name; spec.info = (mjString)&info; diff --git a/src/user/user_objects.h b/src/user/user_objects.h index 1a4cd0c6..0cf4fbde 100644 --- a/src/user/user_objects.h +++ b/src/user/user_objects.h @@ -82,7 +82,7 @@ class [[nodiscard]] mjCError { // alternative specifications of frame orientation -class mjCAlternative : public mjmOrientation { +class mjCAlternative : public mjsOrientation { public: mjCAlternative(); // constuctor const char* Set(double* quat, // set frame quat @@ -253,7 +253,7 @@ class mjCBody_ : public mjCBase { std::vector spec_userdata_; }; -class mjCBody : public mjCBody_, private mjmBody { +class mjCBody : public mjCBody_, private mjsBody { friend class mjCJoint; friend class mjCGeom; friend class mjCSite; @@ -300,7 +300,7 @@ class mjCBody : public mjCBody_, private mjmBody { const char* FullInertia(double quat[4], double inertia[3]); // variables set by user - mjmBody spec; + mjsBody spec; // inherited using mjCBase::name; @@ -343,7 +343,7 @@ class mjCFrame_ : public mjCBase { mjCAlternative alt_; }; -class mjCFrame : public mjCFrame_, private mjmFrame { +class mjCFrame : public mjCFrame_, private mjsFrame { friend class mjCBase; friend class mjCBody; friend class mjCGeom; @@ -354,7 +354,7 @@ class mjCFrame : public mjCFrame_, private mjmFrame { friend class mjCModel; public: - mjmFrame spec; + mjsFrame spec; using mjCBase::name; using mjCBase::classname; using mjCBase::info; @@ -389,7 +389,7 @@ class mjCJoint_ : public mjCBase { std::vector spec_userdata_; }; -class mjCJoint : public mjCJoint_, private mjmJoint { +class mjCJoint : public mjCJoint_, private mjsJoint { friend class mjCDef; friend class mjCEquality; friend class mjCBody; @@ -399,7 +399,7 @@ class mjCJoint : public mjCJoint_, private mjmJoint { friend class mjXURDF; public: - mjmJoint spec; + mjsJoint spec; using mjCBase::name; using mjCBase::classname; using mjCBase::info; @@ -457,7 +457,7 @@ class mjCGeom_ : public mjCBase { std::vector spec_userdata_; }; -class mjCGeom : public mjCGeom_, private mjmGeom { +class mjCGeom : public mjCGeom_, private mjsGeom { friend class mjCDef; friend class mjCMesh; friend class mjCPair; @@ -469,7 +469,7 @@ class mjCGeom : public mjCGeom_, private mjmGeom { public: using mjCBase::name; - mjmGeom spec; // variables set by user + mjsGeom spec; // variables set by user double GetVolume(void); // compute geom volume void SetInertia(void); // compute and set geom inertia bool IsVisual(void) const { return visual_; } @@ -526,7 +526,7 @@ class mjCSite_ : public mjCBase { int matid; // material id for rendering }; -class mjCSite : public mjCSite_, private mjmSite { +class mjCSite : public mjCSite_, private mjsSite { friend class mjCDef; friend class mjCBody; friend class mjCModel; @@ -534,9 +534,9 @@ class mjCSite : public mjCSite_, private mjmSite { friend class mjXURDF; public: - mjmSite spec; // variables set by user + mjsSite spec; // variables set by user - // use strings from mjCBase rather than mjStrings from mjmSite + // use strings from mjCBase rather than mjStrings from mjsSite using mjCBase::name; using mjCBase::classname; using mjCBase::info; @@ -572,7 +572,7 @@ class mjCCamera_ : public mjCBase { std::vector spec_userdata_; }; -class mjCCamera : public mjCCamera_, private mjmCamera { +class mjCCamera : public mjCCamera_, private mjsCamera { friend class mjCDef; friend class mjCBody; friend class mjCModel; @@ -580,7 +580,7 @@ class mjCCamera : public mjCCamera_, private mjmCamera { friend class mjXWriter; public: - mjmCamera spec; + mjsCamera spec; using mjCBase::name; using mjCBase::classname; using mjCBase::info; @@ -612,14 +612,14 @@ class mjCLight_ : public mjCBase { std::string spec_targetbody_; }; -class mjCLight : public mjCLight_, private mjmLight { +class mjCLight : public mjCLight_, private mjsLight { friend class mjCDef; friend class mjCBody; friend class mjCModel; friend class mjXWriter; public: - mjmLight spec; + mjsLight spec; using mjCBase::name; using mjCBase::classname; using mjCBase::info; @@ -673,7 +673,7 @@ class mjCFlex_ : public mjCBase { std::vector spec_texcoord_; }; -class mjCFlex: public mjCFlex_, private mjmFlex { +class mjCFlex: public mjCFlex_, private mjsFlex { friend class mjCDef; friend class mjCModel; friend class mjCFlexcomp; @@ -681,7 +681,7 @@ class mjCFlex: public mjCFlex_, private mjmFlex { friend class mjXWriter; public: - mjmFlex spec; + mjsFlex spec; using mjCBase::name; using mjCBase::classname; using mjCBase::info; @@ -777,7 +777,7 @@ class mjCMesh_ : public mjCBase { std::vector face_aabb_; // bounding boxes of all faces }; -class mjCMesh: public mjCMesh_, private mjmMesh { +class mjCMesh: public mjCMesh_, private mjsMesh { friend class mjCModel; friend class mjCFlexcomp; friend class mjXWriter; @@ -787,7 +787,7 @@ class mjCMesh: public mjCMesh_, private mjmMesh { mjCMesh& operator=(const mjCMesh& other); // copy assignment ~mjCMesh(); - mjmMesh spec; + mjsMesh spec; using mjCBase::name; using mjCBase::classname; using mjCBase::info; @@ -914,12 +914,12 @@ class mjCSkin_ : public mjCBase { std::vector bodyid; // body ids }; -class mjCSkin: public mjCSkin_, private mjmSkin { +class mjCSkin: public mjCSkin_, private mjsSkin { friend class mjCModel; friend class mjXWriter; public: - mjmSkin spec; + mjsSkin spec; using mjCBase::name; using mjCBase::classname; using mjCBase::info; @@ -968,13 +968,13 @@ class mjCHField_ : public mjCBase { std::vector spec_userdata_; }; -class mjCHField : public mjCHField_, private mjmHField { +class mjCHField : public mjCHField_, private mjsHField { friend class mjCGeom; friend class mjCModel; friend class mjXWriter; public: - mjmHField spec; + mjsHField spec; using mjCBase::name; using mjCBase::info; @@ -1015,7 +1015,7 @@ class mjCTexture_ : public mjCBase { std::vector spec_cubefiles_; }; -class mjCTexture : public mjCTexture_, private mjmTexture { +class mjCTexture : public mjCTexture_, private mjsTexture { friend class mjCModel; friend class mjXReader; friend class mjXWriter; @@ -1023,7 +1023,7 @@ class mjCTexture : public mjCTexture_, private mjmTexture { public: ~mjCTexture(); // destructor - mjmTexture spec; + mjsTexture spec; using mjCBase::name; using mjCBase::classname; using mjCBase::info; @@ -1072,13 +1072,13 @@ class mjCMaterial_ : public mjCBase { std::string spec_texture_; }; -class mjCMaterial : public mjCMaterial_, private mjmMaterial { +class mjCMaterial : public mjCMaterial_, private mjsMaterial { friend class mjCDef; friend class mjCModel; friend class mjXWriter; public: - mjmMaterial spec; + mjsMaterial spec; using mjCBase::name; using mjCBase::classname; using mjCBase::info; @@ -1111,14 +1111,14 @@ class mjCPair_ : public mjCBase { std::string spec_geomname2_; }; -class mjCPair : public mjCPair_, private mjmPair { +class mjCPair : public mjCPair_, private mjsPair { friend class mjCDef; friend class mjCBody; friend class mjCModel; friend class mjXWriter; public: - mjmPair spec; + mjsPair spec; using mjCBase::name; using mjCBase::classname; using mjCBase::info; @@ -1163,12 +1163,12 @@ class mjCBodyPair_ : public mjCBase { std::string spec_bodyname2_; }; -class mjCBodyPair : public mjCBodyPair_, private mjmExclude { +class mjCBodyPair : public mjCBodyPair_, private mjsExclude { friend class mjCBody; friend class mjCModel; public: - mjmExclude spec; + mjsExclude spec; using mjCBase::name; using mjCBase::info; @@ -1207,14 +1207,14 @@ class mjCEquality_ : public mjCBase { std::string spec_name2_; }; -class mjCEquality : public mjCEquality_, private mjmEquality { +class mjCEquality : public mjCEquality_, private mjsEquality { friend class mjCDef; friend class mjCBody; friend class mjCModel; friend class mjXWriter; public: - mjmEquality spec; + mjsEquality spec; using mjCBase::name; using mjCBase::classname; using mjCBase::info; @@ -1248,13 +1248,13 @@ class mjCTendon_ : public mjCBase { std::vector spec_userdata_; }; -class mjCTendon : public mjCTendon_, private mjmTendon { +class mjCTendon : public mjCTendon_, private mjsTendon { friend class mjCDef; friend class mjCModel; friend class mjXWriter; public: - mjmTendon spec; + mjsTendon spec; using mjCBase::name; using mjCBase::classname; using mjCBase::info; @@ -1308,12 +1308,12 @@ class mjCWrap_ : public mjCBase { std::string sidesite; // name of side site }; -class mjCWrap : public mjCWrap_, private mjmWrap { +class mjCWrap : public mjCWrap_, private mjsWrap { friend class mjCTendon; friend class mjCModel; public: - mjmWrap spec; + mjsWrap spec; using mjCBase::info; void PointToLocal(); @@ -1350,7 +1350,7 @@ class mjCPlugin : public mjCPlugin_ { friend class mjXWriter; public: - mjmPlugin spec; + mjsPlugin spec; mjCBase* parent; // parent object (only used when generating error message) mjCPlugin(const mjCPlugin& other); // copy constructor @@ -1383,13 +1383,13 @@ class mjCActuator_ : public mjCBase { std::vector spec_userdata_; }; -class mjCActuator : public mjCActuator_, private mjmActuator { +class mjCActuator : public mjCActuator_, private mjsActuator { friend class mjCDef; friend class mjCModel; friend class mjXWriter; public: - mjmActuator spec; + mjsActuator spec; using mjCBase::name; using mjCBase::classname; using mjCBase::info; @@ -1438,13 +1438,13 @@ class mjCSensor_ : public mjCBase { std::vector spec_userdata_; }; -class mjCSensor : public mjCSensor_, private mjmSensor { +class mjCSensor : public mjCSensor_, private mjsSensor { friend class mjCDef; friend class mjCModel; friend class mjXWriter; public: - mjmSensor spec; + mjsSensor spec; using mjCBase::name; using mjCBase::classname; using mjCBase::info; @@ -1480,12 +1480,12 @@ class mjCNumeric_ : public mjCBase { std::vector spec_data_; }; -class mjCNumeric : public mjCNumeric_, private mjmNumeric { +class mjCNumeric : public mjCNumeric_, private mjsNumeric { friend class mjCModel; friend class mjXWriter; public: - mjmNumeric spec; + mjsNumeric spec; using mjCBase::name; using mjCBase::info; @@ -1512,12 +1512,12 @@ class mjCText_ : public mjCBase { std::string spec_data_; }; -class mjCText : public mjCText_, private mjmText { +class mjCText : public mjCText_, private mjsText { friend class mjCModel; friend class mjXWriter; public: - mjmText spec; + mjsText spec; using mjCBase::name; using mjCBase::info; @@ -1549,12 +1549,12 @@ class mjCTuple_ : public mjCBase { std::vector spec_objprm_; }; -class mjCTuple : public mjCTuple_, private mjmTuple { +class mjCTuple : public mjCTuple_, private mjsTuple { friend class mjCModel; friend class mjXWriter; public: - mjmTuple spec; + mjsTuple spec; using mjCBase::name; using mjCBase::info; @@ -1593,12 +1593,12 @@ class mjCKey_ : public mjCBase { std::vector spec_ctrl_; }; -class mjCKey : public mjCKey_, private mjmKey { +class mjCKey : public mjCKey_, private mjsKey { friend class mjCModel; friend class mjXWriter; public: - mjmKey spec; + mjsKey spec; using mjCBase::name; using mjCBase::info; diff --git a/src/xml/xml.cc b/src/xml/xml.cc index e6919948..064d52f3 100644 --- a/src/xml/xml.cc +++ b/src/xml/xml.cc @@ -345,14 +345,14 @@ mjSpec* mjParseXML(const char* filename, const mjVFS* vfs, } // create model, set filedir - model = mjm_createSpec(); + model = mjs_createSpec(); const char* dir; int ndir = 0; mju_getResourceDir(resource, &dir, &ndir); if (dir != nullptr) { - mjm_setString(model->modelfiledir, std::string(dir, ndir).c_str()); + mjs_setString(model->modelfiledir, std::string(dir, ndir).c_str()); } else { - mjm_setString(model->modelfiledir, ""); + mjs_setString(model->modelfiledir, ""); } // close resource @@ -364,8 +364,8 @@ mjSpec* mjParseXML(const char* filename, const mjVFS* vfs, // find include elements, replace them with subtree from xml file std::unordered_set included = {filename}; mjXReader parser; - parser.SetModelFileDir(mjm_getString(model->modelfiledir)); - mjIncludeXML(parser, root, mjm_getString(model->modelfiledir), vfs, included); + parser.SetModelFileDir(mjs_getString(model->modelfiledir)); + mjIncludeXML(parser, root, mjs_getString(model->modelfiledir), vfs, included); // parse MuJoCo model parser.SetModel(model); @@ -394,7 +394,7 @@ mjSpec* mjParseXML(const char* filename, const mjVFS* vfs, // catch known errors catch (mjXError err) { mjCopyError(error, err.message, error_sz); - mjm_deleteSpec(model); + mjs_deleteSpec(model); return nullptr; } diff --git a/src/xml/xml_api.cc b/src/xml/xml_api.cc index 9b8a96e8..a827ddef 100644 --- a/src/xml/xml_api.cc +++ b/src/xml/xml_api.cc @@ -56,7 +56,7 @@ std::optional GlobalModel::ToXML(const mjModel* m, char* error, mjCopyError(error, "No XML model loaded", error_sz); return std::nullopt; } - mjm_copyBack(model_, m); + mjs_copyBack(model_, m); std::string result = mjWriteXML(model_, error, error_sz); if (result.empty()) { return std::nullopt; @@ -67,7 +67,7 @@ std::optional GlobalModel::ToXML(const mjModel* m, char* error, void GlobalModel::Set(mjSpec* model) { std::lock_guard lock(*mutex_); if (model_ != nullptr) { - mjm_deleteSpec(model_); + mjs_deleteSpec(model_); } model_ = model; } @@ -93,21 +93,21 @@ mjModel* mj_loadXML(const char* filename, const mjVFS* vfs, // parse new model std::unique_ptr> model( mjParseXML(filename, vfs, error, error_sz), - [](mjSpec* m) { mjm_deleteSpec(m); }); + [](mjSpec* m) { mjs_deleteSpec(m); }); if (!model) { return nullptr; } // compile new model - mjModel* m = mjm_compile(model.get(), vfs); + mjModel* m = mjs_compile(model.get(), vfs); if (!m) { - mjCopyError(error, mjm_getError(model.get()), error_sz); + mjCopyError(error, mjs_getError(model.get()), error_sz); return nullptr; } // handle compile warning - if (mjm_isWarning(model.get())) { - mjCopyError(error, mjm_getError(model.get()), error_sz); + if (mjs_isWarning(model.get())) { + mjCopyError(error, mjs_getError(model.get()), error_sz); } else if (error) { error[0] = '\0'; } diff --git a/src/xml/xml_base.cc b/src/xml/xml_base.cc index 60a854b5..d440dd2b 100644 --- a/src/xml/xml_base.cc +++ b/src/xml/xml_base.cc @@ -24,6 +24,7 @@ #include "user/user_api.h" #include "user/user_model.h" #include "user/user_objects.h" +#include "xml/xml_util.h" #include "tinyxml2.h" namespace { @@ -51,7 +52,7 @@ void mjXBase::SetModel(mjSpec* _model) { // read alternative orientation specification -int mjXBase::ReadAlternative(XMLElement* elem, mjmOrientation& alt) { +int mjXBase::ReadAlternative(XMLElement* elem, mjsOrientation& alt) { string text; int read = (int)(elem->Attribute("quat") != 0) + (ReadAttr(elem, "axisangle", 4, alt.axisangle, text) ? 1 : 0) + diff --git a/src/xml/xml_base.h b/src/xml/xml_base.h index 662d9e7e..26d95fcb 100644 --- a/src/xml/xml_base.h +++ b/src/xml/xml_base.h @@ -90,7 +90,7 @@ class mjXBase : public mjXUtil { virtual void SetModel(mjSpec*); // read alternative orientation specification - static int ReadAlternative(tinyxml2::XMLElement* elem, mjmOrientation& alt); + static int ReadAlternative(tinyxml2::XMLElement* elem, mjsOrientation& alt); protected: mjSpec* model; // internally-allocated model diff --git a/src/xml/xml_native_reader.cc b/src/xml/xml_native_reader.cc index 4d72f0b0..667364d3 100644 --- a/src/xml/xml_native_reader.cc +++ b/src/xml/xml_native_reader.cc @@ -48,7 +48,7 @@ using std::string; using std::vector; using tinyxml2::XMLElement; -void ReadPluginConfigs(tinyxml2::XMLElement* elem, mjmPlugin* p) { +void ReadPluginConfigs(tinyxml2::XMLElement* elem, mjsPlugin* p) { std::map> config_attribs; XMLElement* child = FirstChildElement(elem); while (child) { @@ -71,7 +71,7 @@ void ReadPluginConfigs(tinyxml2::XMLElement* elem, mjmPlugin* p) { "plugin configuration attributes cannot be used in an " "element that references a predefined plugin instance"); } else if (p) { - mjm_setPluginAttributes(p, &config_attribs); + mjs_setPluginAttributes(p, &config_attribs); } } } // namespace @@ -808,14 +808,14 @@ void mjXReader::Parse(XMLElement* root) { // get model name string modelname; if (ReadAttrTxt(root, "model", modelname)) { - mjm_setString(model->modelname, modelname.c_str()); + mjs_setString(model->modelname, modelname.c_str()); } // get comment if (root->FirstChild() && root->FirstChild()->ToComment()) { - mjm_setString(model->comment, root->FirstChild()->Value()); + mjs_setString(model->comment, root->FirstChild()->Value()); } else { - mjm_setString(model->comment, ""); + mjs_setString(model->comment, ""); } //------------------- parse MuJoCo sections embedded in all XML formats @@ -871,7 +871,7 @@ void mjXReader::Parse(XMLElement* root) { for (XMLElement* section = FirstChildElement(root, "worldbody"); section; section = NextSiblingElement(section, "worldbody")) { - Body(section, mjm_findBody(model, "world"), nullptr); + Body(section, mjs_findBody(model, "world"), nullptr); } for (XMLElement* section = FirstChildElement(root, "contact"); section; @@ -949,16 +949,16 @@ void mjXReader::Compiler(XMLElement* section, mjSpec* mod) { memcpy(mod->euler, text.c_str(), 3); } if (ReadAttrTxt(section, "assetdir", text)) { - mjm_setString(mod->meshdir, text.c_str()); - mjm_setString(mod->texturedir, text.c_str()); + mjs_setString(mod->meshdir, text.c_str()); + mjs_setString(mod->texturedir, text.c_str()); } // meshdir and texturedir take precedence over assetdir std::string meshdir, texturedir; if (ReadAttrTxt(section, "meshdir", meshdir)) { - mjm_setString(mod->meshdir, meshdir.c_str()); + mjs_setString(mod->meshdir, meshdir.c_str()); }; if (ReadAttrTxt(section, "texturedir", texturedir)) { - mjm_setString(mod->texturedir, texturedir.c_str()); + mjs_setString(mod->texturedir, texturedir.c_str()); } if (MapValue(section, "discardvisual", &n, bool_map, 2)) { mod->discardvisual = (n==1); @@ -1276,19 +1276,19 @@ void mjXReader::Statistic(XMLElement* section) { //---------------------------------- one-element parsers ------------------------------------------- // flex element parser -void mjXReader::OneFlex(XMLElement* elem, mjmFlex* pflex) { +void mjXReader::OneFlex(XMLElement* elem, mjsFlex* pflex) { string text, name, classname, material; int n; // read attributes if (ReadAttrTxt(elem, "name", name)) { - mjm_setString(pflex->name, name.c_str()); + mjs_setString(pflex->name, name.c_str()); } if (ReadAttrTxt(elem, "classname", classname)) { - mjm_setString(pflex->classname, classname.c_str()); + mjs_setString(pflex->classname, classname.c_str()); } if (ReadAttrTxt(elem, "material", material)) { - mjm_setString(pflex->material, material.c_str()); + mjs_setString(pflex->material, material.c_str()); } ReadAttr(elem, "radius", 1, &pflex->radius, text); @@ -1301,19 +1301,19 @@ void mjXReader::OneFlex(XMLElement* elem, mjmFlex* pflex) { // read data vectors if (ReadAttrTxt(elem, "body", text, true)) { - mjm_setStringVec(pflex->vertbody, text.c_str()); + mjs_setStringVec(pflex->vertbody, text.c_str()); } if (ReadAttrTxt(elem, "vertex", text)) { std::vector vert = String2Vector(text); - mjm_setDouble(pflex->vert, vert.data(), vert.size()); + mjs_setDouble(pflex->vert, vert.data(), vert.size()); } if (ReadAttrTxt(elem, "element", text, true)) { std::vector elem = String2Vector(text); - mjm_setInt(pflex->elem, elem.data(), elem.size()); + mjs_setInt(pflex->elem, elem.data(), elem.size()); } if (ReadAttrTxt(elem, "texcoord", text)) { std::vector texcoord = String2Vector(text); - mjm_setFloat(pflex->texcoord, texcoord.data(), texcoord.size()); + mjs_setFloat(pflex->texcoord, texcoord.data(), texcoord.size()); } // contact subelement @@ -1344,29 +1344,29 @@ void mjXReader::OneFlex(XMLElement* elem, mjmFlex* pflex) { } // write error info - mjm_setString(pflex->info, ("line = " + std::to_string(elem->GetLineNum())).c_str()); + mjs_setString(pflex->info, ("line = " + std::to_string(elem->GetLineNum())).c_str()); } // mesh element parser -void mjXReader::OneMesh(XMLElement* elem, mjmMesh* pmesh) { +void mjXReader::OneMesh(XMLElement* elem, mjsMesh* pmesh) { int n; string text, name, classname, content_type; // read attributes if (ReadAttrTxt(elem, "name", name)) { - mjm_setString(pmesh->name, name.c_str()); + mjs_setString(pmesh->name, name.c_str()); } if (ReadAttrTxt(elem, "class", classname)) { - mjm_setString(pmesh->classname, classname.c_str()); + mjs_setString(pmesh->classname, classname.c_str()); } if (ReadAttrTxt(elem, "content_type", content_type)) { - mjm_setString(pmesh->content_type, content_type.c_str()); + mjs_setString(pmesh->content_type, content_type.c_str()); } auto file = ReadAttrFile(elem, "file", MeshDir()); if (file) { - mjm_setString(pmesh->file, file->c_str()); + mjs_setString(pmesh->file, file->c_str()); } ReadAttr(elem, "refpos", 3, pmesh->refpos, text); ReadAttr(elem, "refquat", 4, pmesh->refquat, text); @@ -1385,7 +1385,7 @@ void mjXReader::OneMesh(XMLElement* elem, mjmMesh* pmesh) { if (ReadAttrTxt(elem, "vertex", text)) { auto uservert = ReadAttrVec(elem, "vertex"); if (uservert.has_value()) { - mjm_setFloat(pmesh->uservert, uservert->data(), uservert->size()); + mjs_setFloat(pmesh->uservert, uservert->data(), uservert->size()); } } @@ -1393,7 +1393,7 @@ void mjXReader::OneMesh(XMLElement* elem, mjmMesh* pmesh) { if (ReadAttrTxt(elem, "normal", text)) { auto usernormal = ReadAttrVec(elem, "normal"); if (usernormal.has_value()) { - mjm_setFloat(pmesh->usernormal, usernormal->data(), usernormal->size()); + mjs_setFloat(pmesh->usernormal, usernormal->data(), usernormal->size()); } } @@ -1401,7 +1401,7 @@ void mjXReader::OneMesh(XMLElement* elem, mjmMesh* pmesh) { if (ReadAttrTxt(elem, "texcoord", text)) { auto usertexcoord = ReadAttrVec(elem, "texcoord"); if (usertexcoord.has_value()) { - mjm_setFloat(pmesh->usertexcoord, usertexcoord->data(), usertexcoord->size()); + mjs_setFloat(pmesh->usertexcoord, usertexcoord->data(), usertexcoord->size()); } } @@ -1409,31 +1409,31 @@ void mjXReader::OneMesh(XMLElement* elem, mjmMesh* pmesh) { if (ReadAttrTxt(elem, "face", text)) { auto userface = ReadAttrVec(elem, "face"); if (userface.has_value()) { - mjm_setInt(pmesh->userface, userface->data(), userface->size()); + mjs_setInt(pmesh->userface, userface->data(), userface->size()); } } // write error info - mjm_setString(pmesh->info, ("line = " + std::to_string(elem->GetLineNum())).c_str()); + mjs_setString(pmesh->info, ("line = " + std::to_string(elem->GetLineNum())).c_str()); } // skin element parser -void mjXReader::OneSkin(XMLElement* elem, mjmSkin* pskin) { +void mjXReader::OneSkin(XMLElement* elem, mjsSkin* pskin) { string text, name, material; float data[4]; // read attributes if (ReadAttrTxt(elem, "name", name)) { - mjm_setString(pskin->name, name.c_str()); + mjs_setString(pskin->name, name.c_str()); } auto file = ReadAttrFile(elem, "file", AssetDir()); if (file.has_value()) { - mjm_setString(pskin->file, file->c_str()); + mjs_setString(pskin->file, file->c_str()); } if (ReadAttrTxt(elem, "material", material)) { - mjm_setString(pskin->material, material.c_str()); + mjs_setString(pskin->material, material.c_str()); } ReadAttrInt(elem, "group", &pskin->group); if (pskin->group<0 || pskin->group>=mjNGROUP) { @@ -1445,19 +1445,19 @@ void mjXReader::OneSkin(XMLElement* elem, mjmSkin* pskin) { // read vertex data if (ReadAttrTxt(elem, "vertex", text)) { std::vector vert = String2Vector(text); - mjm_setFloat(pskin->vert, vert.data(), vert.size()); + mjs_setFloat(pskin->vert, vert.data(), vert.size()); } // read texcoord data if (ReadAttrTxt(elem, "texcoord", text)) { std::vector texcoord = String2Vector(text); - mjm_setFloat(pskin->texcoord, texcoord.data(), texcoord.size()); + mjs_setFloat(pskin->texcoord, texcoord.data(), texcoord.size()); } // read user face data if (ReadAttrTxt(elem, "face", text)) { std::vector face = String2Vector(text); - mjm_setInt(pskin->face, face.data(), face.size()); + mjs_setInt(pskin->face, face.data(), face.size()); } // read bones @@ -1468,7 +1468,7 @@ void mjXReader::OneSkin(XMLElement* elem, mjmSkin* pskin) { while (bone) { // read body ReadAttrTxt(bone, "body", text, true); - mjm_appendString(pskin->bodyname, text.c_str()); + mjs_appendString(pskin->bodyname, text.c_str()); // read bindpos ReadAttr(bone, "bindpos", 3, data, text, true); @@ -1486,41 +1486,41 @@ void mjXReader::OneSkin(XMLElement* elem, mjmSkin* pskin) { // read vertid ReadAttrTxt(bone, "vertid", text, true); vector tempid = String2Vector(text); - mjm_appendIntVec(pskin->vertid, tempid.data(), tempid.size()); + mjs_appendIntVec(pskin->vertid, tempid.data(), tempid.size()); // read vertweight ReadAttrTxt(bone, "vertweight", text, true); vector tempweight = String2Vector(text); - mjm_appendFloatVec(pskin->vertweight, tempweight.data(), tempweight.size()); + mjs_appendFloatVec(pskin->vertweight, tempweight.data(), tempweight.size()); // advance to next bone bone = NextSiblingElement(bone, "bone"); } // set bind vectors - mjm_setFloat(pskin->bindpos, bindpos.data(), bindpos.size()); - mjm_setFloat(pskin->bindquat, bindquat.data(), bindquat.size()); + mjs_setFloat(pskin->bindpos, bindpos.data(), bindpos.size()); + mjs_setFloat(pskin->bindquat, bindquat.data(), bindquat.size()); // write error info - mjm_setString(pskin->info, ("line = " + std::to_string(elem->GetLineNum())).c_str()); + mjs_setString(pskin->info, ("line = " + std::to_string(elem->GetLineNum())).c_str()); } // material element parser -void mjXReader::OneMaterial(XMLElement* elem, mjmMaterial* pmat) { +void mjXReader::OneMaterial(XMLElement* elem, mjsMaterial* pmat) { string text, name, classname, texture; int n; // read attributes if (ReadAttrTxt(elem, "name", name)) { - mjm_setString(pmat->name, name.c_str()); + mjs_setString(pmat->name, name.c_str()); } if (ReadAttrTxt(elem, "class", classname)) { - mjm_setString(pmat->classname, classname.c_str()); + mjs_setString(pmat->classname, classname.c_str()); } if (ReadAttrTxt(elem, "texture", texture)) { - mjm_setString(pmat->texture, texture.c_str()); + mjs_setString(pmat->texture, texture.c_str()); } if (MapValue(elem, "texuniform", &n, bool_map, 2)) { pmat->texuniform = (n==1); @@ -1533,23 +1533,23 @@ void mjXReader::OneMaterial(XMLElement* elem, mjmMaterial* pmat) { ReadAttr(elem, "rgba", 4, pmat->rgba, text); // write error info - mjm_setString(pmat->info, ("line = " + std::to_string(elem->GetLineNum())).c_str()); + mjs_setString(pmat->info, ("line = " + std::to_string(elem->GetLineNum())).c_str()); } // joint element parser -void mjXReader::OneJoint(XMLElement* elem, mjmJoint* pjoint) { +void mjXReader::OneJoint(XMLElement* elem, mjsJoint* pjoint) { string text, name, classname; std::vector userdata; int n; // read attributes if (ReadAttrTxt(elem, "name", name)) { - mjm_setString(pjoint->name, name.c_str()); + mjs_setString(pjoint->name, name.c_str()); } if (ReadAttrTxt(elem, "class", classname)) { - mjm_setString(pjoint->classname, classname.c_str()); + mjs_setString(pjoint->classname, classname.c_str()); } if (MapValue(elem, "type", &n, joint_map, joint_sz)) { pjoint->type = (mjtJoint)n; @@ -1576,17 +1576,17 @@ void mjXReader::OneJoint(XMLElement* elem, mjmJoint* pjoint) { // read userdata if (ReadVector(elem, "user", userdata, text)) { - mjm_setDouble(pjoint->userdata, userdata.data(), userdata.size()); + mjs_setDouble(pjoint->userdata, userdata.data(), userdata.size()); } // write error info - mjm_setString(pjoint->info, ("line = " + std::to_string(elem->GetLineNum())).c_str()); + mjs_setString(pjoint->info, ("line = " + std::to_string(elem->GetLineNum())).c_str()); } // geom element parser -void mjXReader::OneGeom(XMLElement* elem, mjmGeom* pgeom) { +void mjXReader::OneGeom(XMLElement* elem, mjsGeom* pgeom) { string text, name, classname; std::vector userdata; std::string hfieldname, meshname, material; @@ -1594,10 +1594,10 @@ void mjXReader::OneGeom(XMLElement* elem, mjmGeom* pgeom) { // read attributes if (ReadAttrTxt(elem, "name", name)) { - mjm_setString(pgeom->name, name.c_str()); + mjs_setString(pgeom->name, name.c_str()); } if (ReadAttrTxt(elem, "class", classname)) { - mjm_setString(pgeom->classname, classname.c_str()); + mjs_setString(pgeom->classname, classname.c_str()); } if (MapValue(elem, "type", &n, geom_map, mjNGEOMTYPES)) { pgeom->type = (mjtGeom)n; @@ -1615,14 +1615,14 @@ void mjXReader::OneGeom(XMLElement* elem, mjmGeom* pgeom) { ReadAttr(elem, "margin", 1, &pgeom->margin, text); ReadAttr(elem, "gap", 1, &pgeom->gap, text); if (ReadAttrTxt(elem, "hfield", hfieldname)) { - mjm_setString(pgeom->hfieldname, hfieldname.c_str()); + mjs_setString(pgeom->hfieldname, hfieldname.c_str()); } if (ReadAttrTxt(elem, "mesh", meshname)) { - mjm_setString(pgeom->meshname, meshname.c_str()); + mjs_setString(pgeom->meshname, meshname.c_str()); } ReadAttr(elem, "fitscale", 1, &pgeom->fitscale, text); if (ReadAttrTxt(elem, "material", material)) { - mjm_setString(pgeom->material, material.c_str()); + mjs_setString(pgeom->material, material.c_str()); } ReadAttr(elem, "rgba", 4, pgeom->rgba, text); if (MapValue(elem, "fluidshape", &n, fluid_map, 2)) { @@ -1632,7 +1632,7 @@ void mjXReader::OneGeom(XMLElement* elem, mjmGeom* pgeom) { // read userdata if (ReadVector(elem, "user", userdata, text)) { - mjm_setDouble(pgeom->userdata, userdata.data(), userdata.size()); + mjs_setDouble(pgeom->userdata, userdata.data(), userdata.size()); } // plugin sub-element @@ -1655,13 +1655,13 @@ void mjXReader::OneGeom(XMLElement* elem, mjmGeom* pgeom) { } // write error info - mjm_setString(pgeom->info, ("line = " + std::to_string(elem->GetLineNum())).c_str()); + mjs_setString(pgeom->info, ("line = " + std::to_string(elem->GetLineNum())).c_str()); } // site element parser -void mjXReader::OneSite(XMLElement* elem, mjmSite* site) { +void mjXReader::OneSite(XMLElement* elem, mjsSite* site) { int n; string text, name, classname; std::vector userdata; @@ -1669,10 +1669,10 @@ void mjXReader::OneSite(XMLElement* elem, mjmSite* site) { // read attributes if (ReadAttrTxt(elem, "name", name)) { - mjm_setString(site->name, name.c_str()); + mjs_setString(site->name, name.c_str()); } if (ReadAttrTxt(elem, "class", classname)) { - mjm_setString(site->classname, classname.c_str()); + mjs_setString(site->classname, classname.c_str()); } if (MapValue(elem, "type", &n, geom_map, mjNGEOMTYPES)) { site->type = (mjtGeom)n; @@ -1682,36 +1682,36 @@ void mjXReader::OneSite(XMLElement* elem, mjmSite* site) { ReadAttr(elem, "pos", 3, site->pos, text); ReadQuat(elem, "quat", site->quat, text); if (ReadAttrTxt(elem, "material", material)) { - mjm_setString(site->material, material.c_str()); + mjs_setString(site->material, material.c_str()); } ReadAttr(elem, "rgba", 4, site->rgba, text); ReadAttr(elem, "fromto", 6, site->fromto, text); ReadAlternative(elem, site->alt); if (ReadVector(elem, "user", userdata, text)) { - mjm_setDouble(site->userdata, userdata.data(), userdata.size()); + mjs_setDouble(site->userdata, userdata.data(), userdata.size()); } // write error info - mjm_setString(site->info, ("line = " + std::to_string(elem->GetLineNum())).c_str()); + mjs_setString(site->info, ("line = " + std::to_string(elem->GetLineNum())).c_str()); } // camera element parser -void mjXReader::OneCamera(XMLElement* elem, mjmCamera* pcam) { +void mjXReader::OneCamera(XMLElement* elem, mjsCamera* pcam) { int n; string text, name, classname, targetbody; std::vector userdata; // read attributes if (ReadAttrTxt(elem, "name", name)) { - mjm_setString(pcam->name, name.c_str()); + mjs_setString(pcam->name, name.c_str()); } if (ReadAttrTxt(elem, "class", classname)) { - mjm_setString(pcam->classname, classname.c_str()); + mjs_setString(pcam->classname, classname.c_str()); } if (ReadAttrTxt(elem, "target", targetbody)) { - mjm_setString(pcam->targetbody, targetbody.c_str()); + mjs_setString(pcam->targetbody, targetbody.c_str()); } if (MapValue(elem, "mode", &n, camlight_map, camlight_sz)) { pcam->mode = (mjtCamLight)n; @@ -1743,28 +1743,28 @@ void mjXReader::OneCamera(XMLElement* elem, mjmCamera* pcam) { // read userdata ReadVector(elem, "user", userdata, text); - mjm_setDouble(pcam->userdata, userdata.data(), userdata.size()); + mjs_setDouble(pcam->userdata, userdata.data(), userdata.size()); // write error info - mjm_setString(pcam->info, ("line = " + std::to_string(elem->GetLineNum())).c_str()); + mjs_setString(pcam->info, ("line = " + std::to_string(elem->GetLineNum())).c_str()); } // light element parser -void mjXReader::OneLight(XMLElement* elem, mjmLight* plight) { +void mjXReader::OneLight(XMLElement* elem, mjsLight* plight) { int n; string text, name, classname, targetbody; // read attributes if (ReadAttrTxt(elem, "name", name)) { - mjm_setString(plight->name, name.c_str()); + mjs_setString(plight->name, name.c_str()); } if (ReadAttrTxt(elem, "class", classname)) { - mjm_setString(plight->classname, classname.c_str()); + mjs_setString(plight->classname, classname.c_str()); } if (ReadAttrTxt(elem, "target", targetbody)) { - mjm_setString(plight->targetbody, targetbody.c_str()); + mjs_setString(plight->targetbody, targetbody.c_str()); } if (MapValue(elem, "mode", &n, camlight_map, camlight_sz)) { plight->mode = (mjtCamLight)n; @@ -1788,31 +1788,31 @@ void mjXReader::OneLight(XMLElement* elem, mjmLight* plight) { ReadAttr(elem, "specular", 3, plight->specular, text); // write error info - mjm_setString(plight->info, ("line = " + std::to_string(elem->GetLineNum())).c_str()); + mjs_setString(plight->info, ("line = " + std::to_string(elem->GetLineNum())).c_str()); } // pair element parser -void mjXReader::OnePair(XMLElement* elem, mjmPair* ppair) { +void mjXReader::OnePair(XMLElement* elem, mjsPair* ppair) { string text, name, classname, geomname1, geomname2; // regular only if (!readingdefaults) { if (ReadAttrTxt(elem, "class", classname)) { - mjm_setString(ppair->classname, classname.c_str()); + mjs_setString(ppair->classname, classname.c_str()); } if (ReadAttrTxt(elem, "geom1", geomname1)) { - mjm_setString(ppair->geomname1, geomname1.c_str()); + mjs_setString(ppair->geomname1, geomname1.c_str()); } if (ReadAttrTxt(elem, "geom2", geomname2)) { - mjm_setString(ppair->geomname2, geomname2.c_str()); + mjs_setString(ppair->geomname2, geomname2.c_str()); } } // read other parameters if (ReadAttrTxt(elem, "name", name)) { - mjm_setString(ppair->name, name.c_str()); + mjs_setString(ppair->name, name.c_str()); } ReadAttrInt(elem, "condim", &ppair->condim); ReadAttr(elem, "solref", mjNREF, ppair->solref, text, false, false); @@ -1823,13 +1823,13 @@ void mjXReader::OnePair(XMLElement* elem, mjmPair* ppair) { ReadAttr(elem, "friction", 5, ppair->friction, text, false, false); // write error info - mjm_setString(ppair->info, ("line = " + std::to_string(elem->GetLineNum())).c_str()); + mjs_setString(ppair->info, ("line = " + std::to_string(elem->GetLineNum())).c_str()); } // equality element parser -void mjXReader::OneEquality(XMLElement* elem, mjmEquality* pequality) { +void mjXReader::OneEquality(XMLElement* elem, mjsEquality* pequality) { int n; string text, name1, name2, name, classname; @@ -1840,10 +1840,10 @@ void mjXReader::OneEquality(XMLElement* elem, mjmEquality* pequality) { // regular only if (!readingdefaults) { if (ReadAttrTxt(elem, "name", name)) { - mjm_setString(pequality->name, name.c_str()); + mjs_setString(pequality->name, name.c_str()); } if (ReadAttrTxt(elem, "class", classname)) { - mjm_setString(pequality->classname, classname.c_str()); + mjs_setString(pequality->classname, classname.c_str()); }; switch (pequality->type) { @@ -1887,9 +1887,9 @@ void mjXReader::OneEquality(XMLElement* elem, mjmEquality* pequality) { throw mjXError(elem, "unrecognized equality constraint type"); } - mjm_setString(pequality->name1, name1.c_str()); + mjs_setString(pequality->name1, name1.c_str()); if (!name2.empty()) { - mjm_setString(pequality->name2, name2.c_str()); + mjs_setString(pequality->name2, name2.c_str()); } } @@ -1901,26 +1901,26 @@ void mjXReader::OneEquality(XMLElement* elem, mjmEquality* pequality) { ReadAttr(elem, "solimp", mjNIMP, pequality->solimp, text, false, false); // write error info - mjm_setString(pequality->info, ("line = " + std::to_string(elem->GetLineNum())).c_str()); + mjs_setString(pequality->info, ("line = " + std::to_string(elem->GetLineNum())).c_str()); } // tendon element parser -void mjXReader::OneTendon(XMLElement* elem, mjmTendon* pten) { +void mjXReader::OneTendon(XMLElement* elem, mjsTendon* pten) { string text, name, classname, material; std::vector userdata; // read attributes if (ReadAttrTxt(elem, "name", name)) { - mjm_setString(pten->name, name.c_str()); + mjs_setString(pten->name, name.c_str()); } if (ReadAttrTxt(elem, "class", classname)) { - mjm_setString(pten->classname, classname.c_str()); + mjs_setString(pten->classname, classname.c_str()); } ReadAttrInt(elem, "group", &pten->group); if (ReadAttrTxt(elem, "material", material)) { - mjm_setString(pten->material, material.c_str()); + mjs_setString(pten->material, material.c_str()); } MapValue(elem, "limited", &pten->limited, TFAuto_map, 3); ReadAttr(elem, "width", 1, &pten->width, text); @@ -1941,25 +1941,25 @@ void mjXReader::OneTendon(XMLElement* elem, mjmTendon* pten) { // read userdata if (ReadVector(elem, "user", userdata, text)) { - mjm_setDouble(pten->userdata, userdata.data(), userdata.size()); + mjs_setDouble(pten->userdata, userdata.data(), userdata.size()); } // write error info - mjm_setString(pten->info, ("line = " + std::to_string(elem->GetLineNum())).c_str()); + mjs_setString(pten->info, ("line = " + std::to_string(elem->GetLineNum())).c_str()); } // actuator element parser -void mjXReader::OneActuator(XMLElement* elem, mjmActuator* pact) { +void mjXReader::OneActuator(XMLElement* elem, mjsActuator* pact) { string text, type, name, classname, target, slidersite, refsite; // common attributes if (ReadAttrTxt(elem, "name", name)) { - mjm_setString(pact->name, name.c_str()); + mjs_setString(pact->name, name.c_str()); } if (ReadAttrTxt(elem, "class", classname)) { - mjm_setString(pact->classname, classname.c_str()); + mjs_setString(pact->classname, classname.c_str()); } ReadAttrInt(elem, "group", &pact->group); MapValue(elem, "ctrllimited", &pact->ctrllimited, TFAuto_map, 3); @@ -1974,32 +1974,32 @@ void mjXReader::OneActuator(XMLElement* elem, mjmActuator* pact) { // transmission target and type int cnt = 0; if (ReadAttrTxt(elem, "joint", target)) { - mjm_setString(pact->target, target.c_str()); + mjs_setString(pact->target, target.c_str()); pact->trntype = mjTRN_JOINT; cnt++; } if (ReadAttrTxt(elem, "jointinparent", target)) { - mjm_setString(pact->target, target.c_str()); + mjs_setString(pact->target, target.c_str()); pact->trntype = mjTRN_JOINTINPARENT; cnt++; } if (ReadAttrTxt(elem, "tendon", target)) { - mjm_setString(pact->target, target.c_str()); + mjs_setString(pact->target, target.c_str()); pact->trntype = mjTRN_TENDON; cnt++; } if (ReadAttrTxt(elem, "cranksite", target)) { - mjm_setString(pact->target, target.c_str()); + mjs_setString(pact->target, target.c_str()); pact->trntype = mjTRN_SLIDERCRANK; cnt++; } if (ReadAttrTxt(elem, "site", target)) { - mjm_setString(pact->target, target.c_str()); + mjs_setString(pact->target, target.c_str()); pact->trntype = mjTRN_SITE; cnt++; } if (ReadAttrTxt(elem, "body", target)) { - mjm_setString(pact->target, target.c_str()); + mjs_setString(pact->target, target.c_str()); pact->trntype = mjTRN_BODY; cnt++; } @@ -2012,7 +2012,7 @@ void mjXReader::OneActuator(XMLElement* elem, mjmActuator* pact) { int r1 = ReadAttr(elem, "cranklength", 1, &pact->cranklength, text); int r2 = ReadAttrTxt(elem, "slidersite", slidersite); if (r2) { - mjm_setString(pact->slidersite, slidersite.c_str()); + mjs_setString(pact->slidersite, slidersite.c_str()); } if ((r1 || r2) && pact->trntype!=mjTRN_SLIDERCRANK && pact->trntype!=mjTRN_UNDEFINED) { throw mjXError(elem, "cranklength and slidersite can only be used in slidercrank transmission"); @@ -2021,7 +2021,7 @@ void mjXReader::OneActuator(XMLElement* elem, mjmActuator* pact) { // site-specific parameters (refsite) int r3 = ReadAttrTxt(elem, "refsite", refsite); if (r3) { - mjm_setString(pact->refsite, refsite.c_str()); + mjs_setString(pact->refsite, refsite.c_str()); } if (r3 && pact->trntype!=mjTRN_SITE && pact->trntype!=mjTRN_UNDEFINED) { throw mjXError(elem, "refsite can only be used with site transmission"); @@ -2231,17 +2231,17 @@ void mjXReader::OneActuator(XMLElement* elem, mjmActuator* pact) { // read userdata std::vector userdata; if (ReadVector(elem, "user", userdata, text)) { - mjm_setDouble(pact->userdata, userdata.data(), userdata.size()); + mjs_setDouble(pact->userdata, userdata.data(), userdata.size()); } // write info - mjm_setString(pact->info, ("line = " + std::to_string(elem->GetLineNum())).c_str()); + mjs_setString(pact->info, ("line = " + std::to_string(elem->GetLineNum())).c_str()); } // make composite -void mjXReader::OneComposite(XMLElement* elem, mjmBody* pbody, mjmDefault* def) { +void mjXReader::OneComposite(XMLElement* elem, mjsBody* pbody, mjmDefault* def) { string text; int n; @@ -2318,7 +2318,7 @@ void mjXReader::OneComposite(XMLElement* elem, mjmBody* pbody, mjmDefault* def) XMLElement* egeom = FirstChildElement(elem, "geom"); if (egeom) { std::string material; - mjmGeom& dgeom = *comp.def[0].spec.geom; + mjsGeom& dgeom = *comp.def[0].spec.geom; if (MapValue(egeom, "type", &n, geom_map, mjNGEOMTYPES)) { dgeom.type = (mjtGeom)n; } @@ -2335,7 +2335,7 @@ void mjXReader::OneComposite(XMLElement* elem, mjmBody* pbody, mjmDefault* def) ReadAttr(egeom, "margin", 1, &dgeom.margin, text); ReadAttr(egeom, "gap", 1, &dgeom.gap, text); if (ReadAttrTxt(egeom, "material", material)) { - mjm_setString(dgeom.material, material.c_str()); + mjs_setString(dgeom.material, material.c_str()); } ReadAttr(egeom, "rgba", 4, dgeom.rgba, text); ReadAttr(egeom, "mass", 1, &dgeom.mass, text); @@ -2346,12 +2346,12 @@ void mjXReader::OneComposite(XMLElement* elem, mjmBody* pbody, mjmDefault* def) XMLElement* esite = FirstChildElement(elem, "site"); if (esite) { std::string material; - mjmSite& dsite = *comp.def[0].spec.site; + mjsSite& dsite = *comp.def[0].spec.site; ReadAttr(esite, "size", 3, dsite.size, text, false, false); ReadAttrInt(esite, "group", &dsite.group); ReadAttrTxt(esite, "material", material); ReadAttr(esite, "rgba", 4, dsite.rgba, text); - mjm_setString(dsite.material, material.c_str()); + mjs_setString(dsite.material, material.c_str()); } // joint @@ -2372,8 +2372,8 @@ void mjXReader::OneComposite(XMLElement* elem, mjmBody* pbody, mjmDefault* def) // get element mjmDefault* dspec = &comp.defjoint[(mjtCompKind)kind].back().spec; - mjmJoint& djoint = *dspec->joint; - mjmEquality& dequality = *dspec->equality; + mjsJoint& djoint = *dspec->joint; + mjsEquality& dequality = *dspec->equality; // particle joint if (MapValue(ejnt, "type", &n, joint_map, joint_sz)) { @@ -2414,8 +2414,8 @@ void mjXReader::OneComposite(XMLElement* elem, mjmBody* pbody, mjmDefault* def) comp.add[kind] = true; // get default structs - mjmTendon& dtendon = *comp.def[kind].spec.tendon; - mjmEquality& dequality = *comp.def[kind].spec.equality; + mjsTendon& dtendon = *comp.def[kind].spec.tendon; + mjsEquality& dequality = *comp.def[kind].spec.equality; // solreffix, solimpfix ReadAttr(eten, "solreffix", mjNREF, dequality.solref, text, false, false); @@ -2437,7 +2437,7 @@ void mjXReader::OneComposite(XMLElement* elem, mjmBody* pbody, mjmDefault* def) ReadAttr(eten, "damping", 1, &dtendon.damping, text); ReadAttr(eten, "frictionloss", 1, &dtendon.frictionloss, text); ReadAttrTxt(eten, "material", material); - mjm_setString(dtendon.material, material.c_str()); + mjs_setString(dtendon.material, material.c_str()); ReadAttr(eten, "rgba", 4, dtendon.rgba, text); ReadAttr(eten, "width", 1, &dtendon.width, text); @@ -2473,13 +2473,13 @@ void mjXReader::OneComposite(XMLElement* elem, mjmBody* pbody, mjmDefault* def) // make flexcomp -void mjXReader::OneFlexcomp(XMLElement* elem, mjmBody* pbody) { +void mjXReader::OneFlexcomp(XMLElement* elem, mjsBody* pbody) { string text, material; int n; // create out-of-DOM element mjCFlexcomp fcomp; - mjmFlex& dflex = *fcomp.def.spec.flex; + mjsFlex& dflex = *fcomp.def.spec.flex; // common properties ReadAttrTxt(elem, "name", fcomp.name, true); @@ -2493,7 +2493,7 @@ void mjXReader::OneFlexcomp(XMLElement* elem, mjmBody* pbody) { ReadAttr(elem, "inertiabox", 1, &fcomp.inertiabox, text); fcomp.file = ReadAttrFile(elem, "file", modelfiledir_).value_or(""); if (ReadAttrTxt(elem, "material", material)) { - mjm_setString(dflex.material, material.c_str()); + mjs_setString(dflex.material, material.c_str()); } ReadAttr(elem, "rgba", 4, dflex.rgba, text); if (MapValue(elem, "flatskin", &n, bool_map, 2)) { @@ -2599,16 +2599,16 @@ void mjXReader::OneFlexcomp(XMLElement* elem, mjmBody* pbody) { // add plugin -void mjXReader::OnePlugin(XMLElement* elem, mjmPlugin* plugin) { +void mjXReader::OnePlugin(XMLElement* elem, mjsPlugin* plugin) { plugin->active = true; std::string name = ""; std::string instance_name = ""; ReadAttrTxt(elem, "plugin", name); ReadAttrTxt(elem, "instance", instance_name); - mjm_setString(plugin->name, name.c_str()); - mjm_setString(plugin->instance_name, instance_name.c_str()); + mjs_setString(plugin->name, name.c_str()); + mjs_setString(plugin->instance_name, instance_name.c_str()); if (instance_name.empty()) { - plugin->instance = mjm_addPlugin(model)->instance; + plugin->instance = mjs_addPlugin(model)->instance; ReadPluginConfigs(elem, plugin); } else { model->hasImplicitPluginElem = true; @@ -2637,14 +2637,14 @@ void mjXReader::Default(XMLElement* section, int parentid) { } } if (parentid>=0) { - def = mjm_addDefault(model, text.c_str(), parentid, &thisid); + def = mjs_addDefault(model, text.c_str(), parentid, &thisid); if (!def) { throw mjXError(section, "repeated default class name"); } } else { thisid = 0; - def = mjm_getSpecDefault(model); - mjm_setString(def->name, text.c_str()); + def = mjs_getSpecDefault(model); + mjs_setString(def->name, text.c_str()); } // iterate over elements other than nested defaults @@ -2755,10 +2755,10 @@ void mjXReader::Extension(XMLElement* section) { child, "explicit plugin instance must appear before implicit plugin elements"); } string name; - mjmPlugin* p = mjm_addPlugin(model); - mjm_setString(p->info, ("line = " + std::to_string(elem->GetLineNum())).c_str()); + mjsPlugin* p = mjs_addPlugin(model); + mjs_setString(p->info, ("line = " + std::to_string(elem->GetLineNum())).c_str()); ReadAttrTxt(child, "name", name, /* required = */ true); - mjm_setString(p->name, name.c_str()); + mjs_setString(p->name, name.c_str()); if (!p->name) { throw mjXError(child, "plugin instance must have a name"); } @@ -2773,7 +2773,7 @@ void mjXReader::Extension(XMLElement* section) { elem = NextSiblingElement(elem); } - mjm_setActivePlugins(model, &active_plugins); + mjs_setActivePlugins(model, &active_plugins); } @@ -2794,14 +2794,14 @@ void mjXReader::Custom(XMLElement* section) { // numeric if (name=="numeric") { // create custom - mjmNumeric* pnum = mjm_addNumeric(model); + mjsNumeric* pnum = mjs_addNumeric(model); // write error info - mjm_setString(pnum->info, ("line = " + std::to_string(elem->GetLineNum())).c_str()); + mjs_setString(pnum->info, ("line = " + std::to_string(elem->GetLineNum())).c_str()); // read attributes ReadAttrTxt(elem, "name", elname, true); - mjm_setString(pnum->name, elname.c_str()); + mjs_setString(pnum->name, elname.c_str()); if (ReadAttrInt(elem, "size", &pnum->size)) { int sz = pnum->size < 500 ? pnum->size : 500; for (int i=0; idata, data, pnum->size); + mjs_setDouble(pnum->data, data, pnum->size); } // text else if (name=="text") { // create custom - mjmText* pte = mjm_addText(model); + mjsText* pte = mjs_addText(model); // write error info - mjm_setString(pte->info, ("line = " + std::to_string(elem->GetLineNum())).c_str()); + mjs_setString(pte->info, ("line = " + std::to_string(elem->GetLineNum())).c_str()); // read attributes ReadAttrTxt(elem, "name", elname, true); - mjm_setString(pte->name, elname.c_str()); + mjs_setString(pte->name, elname.c_str()); ReadAttrTxt(elem, "data", text, true); if (text.empty()) { throw mjXError(elem, "text field cannot be empty"); } // copy data - mjm_setString(pte->data, text.c_str()); + mjs_setString(pte->data, text.c_str()); } // tuple else if (name=="tuple") { // create custom - mjmTuple* ptu = mjm_addTuple(model); + mjsTuple* ptu = mjs_addTuple(model); // write error info - mjm_setString(ptu->info, ("line = " + std::to_string(elem->GetLineNum())).c_str()); + mjs_setString(ptu->info, ("line = " + std::to_string(elem->GetLineNum())).c_str()); // read attributes ReadAttrTxt(elem, "name", elname, true); - mjm_setString(ptu->name, elname.c_str()); + mjs_setString(ptu->name, elname.c_str()); // read objects and add XMLElement* obj = FirstChildElement(elem); @@ -2888,9 +2888,9 @@ void mjXReader::Custom(XMLElement* section) { obj = NextSiblingElement(obj); } - mjm_setInt(ptu->objtype, objtype.data(), objtype.size()); - mjm_setStringVec(ptu->objname, objname.c_str()); - mjm_setDouble(ptu->objprm, objprm.data(), objprm.size()); + mjs_setInt(ptu->objtype, objtype.data(), objtype.size()); + mjs_setStringVec(ptu->objname, objname.c_str()); + mjs_setDouble(ptu->objprm, objprm.data(), objprm.size()); } // advance to next element @@ -3046,30 +3046,30 @@ void mjXReader::Asset(XMLElement* section) { // get class if specified, otherwise use default0 mjmDefault* def = GetClass(elem); if (!def) { - def = mjm_getSpecDefault(model); + def = mjs_getSpecDefault(model); } // texture sub-element if (name=="texture") { // create texture - mjmTexture* ptex = mjm_addTexture(model); + mjsTexture* ptex = mjs_addTexture(model); // write error info - mjm_setString(ptex->info, ("line = " + std::to_string(elem->GetLineNum())).c_str()); + mjs_setString(ptex->info, ("line = " + std::to_string(elem->GetLineNum())).c_str()); // read attributes if (MapValue(elem, "type", &n, texture_map, texture_sz)) { ptex->type = (mjtTexture)n; } if (ReadAttrTxt(elem, "name", texname)) { - mjm_setString(ptex->name, texname.c_str()); + mjs_setString(ptex->name, texname.c_str()); } if (ReadAttrTxt(elem, "content_type", content_type)) { - mjm_setString(ptex->content_type, content_type.c_str()); + mjs_setString(ptex->content_type, content_type.c_str()); } auto file = ReadAttrFile(elem, "file", TextureDir()); if (file.has_value()) { - mjm_setString(ptex->file, file->c_str()); + mjs_setString(ptex->file, file->c_str()); } ReadAttrInt(elem, "width", &ptex->width); ReadAttrInt(elem, "height", &ptex->height); @@ -3113,50 +3113,50 @@ void mjXReader::Asset(XMLElement* section) { cubefiles[4] = ReadAttrFile(elem, "filefront", TextureDir()).value_or(""); cubefiles[5] = ReadAttrFile(elem, "fileback", TextureDir()).value_or(""); for (int i = 0; i < cubefiles.size(); i++) { - mjm_setInStringVec(ptex->cubefiles, i, cubefiles[i].c_str()); + mjs_setInStringVec(ptex->cubefiles, i, cubefiles[i].c_str()); } } // material sub-element else if (name=="material") { // create material and parse - mjmMaterial* pmat = mjm_addMaterial(model, def); + mjsMaterial* pmat = mjs_addMaterial(model, def); OneMaterial(elem, pmat); } // mesh sub-element else if (name=="mesh") { // create mesh and parse - mjmMesh* pmesh = mjm_addMesh(model, def); + mjsMesh* pmesh = mjs_addMesh(model, def); OneMesh(elem, pmesh); } // skin sub-element... deprecate ??? else if (name=="skin") { // create skin and parse - mjmSkin* pskin = mjm_addSkin(model); + mjsSkin* pskin = mjs_addSkin(model); OneSkin(elem, pskin); } // hfield sub-element else if (name=="hfield") { // create hfield - mjmHField* phf = mjm_addHField(model); + mjsHField* phf = mjs_addHField(model); // write error info - mjm_setString(phf->info, ("line = " + std::to_string(elem->GetLineNum())).c_str()); + mjs_setString(phf->info, ("line = " + std::to_string(elem->GetLineNum())).c_str()); // read attributes string name, content_type; if (ReadAttrTxt(elem, "name", name)) { - mjm_setString(phf->name, name.c_str()); + mjs_setString(phf->name, name.c_str()); } if (ReadAttrTxt(elem, "content_type", content_type)) { - mjm_setString(phf->content_type, content_type.c_str()); + mjs_setString(phf->content_type, content_type.c_str()); } auto file = ReadAttrFile(elem, "file", AssetDir()); if (file.has_value()) { - mjm_setString(phf->file, file->c_str()); + mjs_setString(phf->file, file->c_str()); } ReadAttrInt(elem, "nrow", &phf->nrow); ReadAttrInt(elem, "ncol", &phf->ncol); @@ -3185,13 +3185,13 @@ void mjXReader::Asset(XMLElement* section) { } } - mjm_setFloat(phf->userdata, flipped.data(), flipped.size()); + mjs_setFloat(phf->userdata, flipped.data(), flipped.size()); } // user data not given, set to 0 else { std::vector zero(nrow*ncol); - mjm_setFloat(phf->userdata, zero.data(), zero.size()); + mjs_setFloat(phf->userdata, zero.data(), zero.size()); } } } @@ -3204,7 +3204,7 @@ void mjXReader::Asset(XMLElement* section) { // body/world section parser; recursive -void mjXReader::Body(XMLElement* section, mjmBody* pbody, mjmFrame* frame) { +void mjXReader::Body(XMLElement* section, mjsBody* pbody, mjsFrame* frame) { string text, name; XMLElement* elem; int n; @@ -3215,7 +3215,7 @@ void mjXReader::Body(XMLElement* section, mjmBody* pbody, mjmFrame* frame) { } // no attributes allowed in world body - if (mjm_getId(pbody->element)==0 && section->FirstAttribute() && !frame) { + if (mjs_getId(pbody->element)==0 && section->FirstAttribute() && !frame) { throw mjXError(section, "World body cannot have attributes"); } @@ -3228,13 +3228,13 @@ void mjXReader::Body(XMLElement* section, mjmBody* pbody, mjmFrame* frame) { // get class if specified, otherwise use body mjmDefault* def = GetClass(elem); if (!def) { - def = mjm_getDefault(frame ? frame->element : pbody->element); + def = mjs_getDefault(frame ? frame->element : pbody->element); } // inertial sub-element if (name=="inertial") { // no inertia allowed in world body - if (mjm_getId(pbody->element)==0) { + if (mjs_getId(pbody->element)==0) { throw mjXError(elem, "World body cannot have inertia"); } pbody->explicitinertial = true; @@ -3252,34 +3252,34 @@ void mjXReader::Body(XMLElement* section, mjmBody* pbody, mjmFrame* frame) { // joint sub-element else if (name=="joint") { // no joints allowed in world body - if (mjm_getId(pbody->element)==0) { + if (mjs_getId(pbody->element)==0) { throw mjXError(elem, "World body cannot have joints"); } // create joint and parse - mjmJoint* pjoint = mjm_addJoint(pbody, def); + mjsJoint* pjoint = mjs_addJoint(pbody, def); OneJoint(elem, pjoint); - mjm_setFrame(pjoint->element, frame); + mjs_setFrame(pjoint->element, frame); } // freejoint sub-element else if (name=="freejoint") { // no joints allowed in world body - if (mjm_getId(pbody->element)==0) { + if (mjs_getId(pbody->element)==0) { throw mjXError(elem, "World body cannot have joints"); } // create free joint without defaults - mjmJoint* pjoint = mjm_addFreeJoint(pbody); - mjm_setFrame(pjoint->element, frame); + mjsJoint* pjoint = mjs_addFreeJoint(pbody); + mjs_setFrame(pjoint->element, frame); // save defaults after creation, to make sure writing is ok - mjm_setDefault(pjoint->element, def); + mjs_setDefault(pjoint->element, def); // read attributes std::string name; if (ReadAttrTxt(elem, "name", name)) { - mjm_setString(pjoint->name, name.c_str()); + mjs_setString(pjoint->name, name.c_str()); } ReadAttrInt(elem, "group", &pjoint->group); } @@ -3287,33 +3287,33 @@ void mjXReader::Body(XMLElement* section, mjmBody* pbody, mjmFrame* frame) { // geom sub-element else if (name=="geom") { // create geom and parse - mjmGeom* pgeom = mjm_addGeom(pbody, def); + mjsGeom* pgeom = mjs_addGeom(pbody, def); OneGeom(elem, pgeom); - mjm_setFrame(pgeom->element, frame); + mjs_setFrame(pgeom->element, frame); } // site sub-element else if (name=="site") { // create site and parse - mjmSite* site = mjm_addSite(pbody, def); + mjsSite* site = mjs_addSite(pbody, def); OneSite(elem, site); - mjm_setFrame(site->element, frame); + mjs_setFrame(site->element, frame); } // camera sub-element else if (name=="camera") { // create camera and parse - mjmCamera* pcam = mjm_addCamera(pbody, def); + mjsCamera* pcam = mjs_addCamera(pbody, def); OneCamera(elem, pcam); - mjm_setFrame(pcam->element, frame); + mjs_setFrame(pcam->element, frame); } // light sub-element else if (name=="light") { // create light and parse - mjmLight* plight = mjm_addLight(pbody, def); + mjsLight* plight = mjs_addLight(pbody, def); OneLight(elem, plight); - mjm_setFrame(plight->element, frame); + mjs_setFrame(plight->element, frame); } // plugin sub-element @@ -3338,25 +3338,25 @@ void mjXReader::Body(XMLElement* section, mjmBody* pbody, mjmFrame* frame) { // read childdef mjmDefault* childdef = 0; if (ReadAttrTxt(elem, "childclass", text)) { - childdef = mjm_findDefault(model, text.c_str()); - mjm_findDefault(model, text.c_str()); + childdef = mjs_findDefault(model, text.c_str()); + mjs_findDefault(model, text.c_str()); if (!childdef) { throw mjXError(elem, "unknown default childclass"); } } // create frame - mjmFrame* pframe = mjm_addFrame(pbody, frame); - mjm_setString(pframe->info, ("line = " + std::to_string(elem->GetLineNum())).c_str()); - mjm_setDefault(pframe->element, childdef ? childdef : def); + mjsFrame* pframe = mjs_addFrame(pbody, frame); + mjs_setString(pframe->info, ("line = " + std::to_string(elem->GetLineNum())).c_str()); + mjs_setDefault(pframe->element, childdef ? childdef : def); // read attributes std::string name, childclass; if (ReadAttrTxt(elem, "name", name)) { - mjm_setString(pframe->name, name.c_str()); + mjs_setString(pframe->name, name.c_str()); } if (ReadAttrTxt(elem, "childclass", childclass)) { - mjm_setString(pframe->childclass, childclass.c_str()); + mjs_setString(pframe->childclass, childclass.c_str()); } ReadAttr(elem, "pos", 3, pframe->pos, text); ReadQuat(elem, "quat", pframe->quat, text); @@ -3370,25 +3370,25 @@ void mjXReader::Body(XMLElement* section, mjmBody* pbody, mjmFrame* frame) { // read childdef mjmDefault* childdef = 0; if (ReadAttrTxt(elem, "childclass", text)) { - childdef = mjm_findDefault(model, text.c_str()); - mjm_findDefault(model, text.c_str()); + childdef = mjs_findDefault(model, text.c_str()); + mjs_findDefault(model, text.c_str()); if (!childdef) { throw mjXError(elem, "unknown default childclass"); } } // create child body - mjmBody* pchild = mjm_addBody(pbody, childdef); - mjm_setString(pchild->info, + mjsBody* pchild = mjs_addBody(pbody, childdef); + mjs_setString(pchild->info, std::string("line = " + std::to_string(elem->GetLineNum())).c_str()); // read attributes std::string name, childclass; if (ReadAttrTxt(elem, "name", name)) { - mjm_setString(pchild->name, name.c_str()); + mjs_setString(pchild->name, name.c_str()); } if (ReadAttrTxt(elem, "childclass", childclass)) { - mjm_setString(pchild->childclass, childclass.c_str()); + mjs_setString(pchild->childclass, childclass.c_str()); } ReadAttr(elem, "pos", 3, pchild->pos, text); ReadQuat(elem, "quat", pchild->quat, text); @@ -3403,10 +3403,10 @@ void mjXReader::Body(XMLElement* section, mjmBody* pbody, mjmFrame* frame) { // read userdata std::vector userdata; ReadVector(elem, "user", userdata, text); - mjm_setDouble(pchild->userdata, userdata.data(), userdata.size()); + mjs_setDouble(pchild->userdata, userdata.data(), userdata.size()); // add frame - mjm_setFrame(pchild->element, frame); + mjs_setFrame(pchild->element, frame); // make recursive call Body(elem, pchild, nullptr); @@ -3438,32 +3438,32 @@ void mjXReader::Contact(XMLElement* section) { // get class if specified, otherwise use default0 mjmDefault* def = GetClass(elem); if (!def) { - def = mjm_getSpecDefault(model); + def = mjs_getSpecDefault(model); } // geom pair to include if (name=="pair") { // create pair and parse - mjmPair* ppair = mjm_addPair(model, def); + mjsPair* ppair = mjs_addPair(model, def); OnePair(elem, ppair); } // body pair to exclude else if (name=="exclude") { - mjmExclude* pexclude = mjm_addExclude(model); + mjsExclude* pexclude = mjs_addExclude(model); string exname, exbody1, exbody2; // write error info - mjm_setString(pexclude->info, ("line = " + std::to_string(elem->GetLineNum())).c_str()); + mjs_setString(pexclude->info, ("line = " + std::to_string(elem->GetLineNum())).c_str()); // read name and body names if (ReadAttrTxt(elem, "name", exname)) { - mjm_setString(pexclude->name, exname.c_str()); + mjs_setString(pexclude->name, exname.c_str()); } ReadAttrTxt(elem, "body1", exbody1, true); - mjm_setString(pexclude->bodyname1, exbody1.c_str()); + mjs_setString(pexclude->bodyname1, exbody1.c_str()); ReadAttrTxt(elem, "body2", exbody2, true); - mjm_setString(pexclude->bodyname2, exbody2.c_str()); + mjs_setString(pexclude->bodyname2, exbody2.c_str()); } // advance to next element @@ -3483,11 +3483,11 @@ void mjXReader::Equality(XMLElement* section) { // get class if specified, otherwise use default0 mjmDefault* def = GetClass(elem); if (!def) { - def = mjm_getSpecDefault(model); + def = mjs_getSpecDefault(model); } // create equality constraint and parse - mjmEquality* pequality = mjm_addEquality(model, def); + mjsEquality* pequality = mjs_addEquality(model, def); OneEquality(elem, pequality); // advance to next element @@ -3511,20 +3511,20 @@ void mjXReader::Deformable(XMLElement* section) { // get class if specified, otherwise use default0 mjmDefault* def = GetClass(elem); if (!def) { - def = mjm_getSpecDefault(model); + def = mjs_getSpecDefault(model); } // flex sub-element if (name=="flex") { // create flex and parse - mjmFlex* pflex = mjm_addFlex(model); + mjsFlex* pflex = mjs_addFlex(model); OneFlex(elem, pflex); } // skin sub-element else if (name=="skin") { // create skin and parse - mjmSkin* pskin = mjm_addSkin(model); + mjsSkin* pskin = mjs_addSkin(model); OneSkin(elem, pskin); } @@ -3547,11 +3547,11 @@ void mjXReader::Tendon(XMLElement* section) { // get class if specified, otherwise use default0 mjmDefault* def = GetClass(elem); if (!def) { - def = mjm_getSpecDefault(model); + def = mjs_getSpecDefault(model); } // create equality constraint and parse - mjmTendon* pten = mjm_addTendon(model, def); + mjsTendon* pten = mjs_addTendon(model, def); OneTendon(elem, pten); // process wrap sub-elements @@ -3559,12 +3559,12 @@ void mjXReader::Tendon(XMLElement* section) { while (sub) { // get wrap type string wrap = sub->Value(); - mjmWrap* pwrap;; + mjsWrap* pwrap;; // read attributes depending on type if (wrap=="site") { ReadAttrTxt(sub, "site", text, true); - pwrap = mjm_wrapSite(pten, text.c_str()); + pwrap = mjs_wrapSite(pten, text.c_str()); } else if (wrap=="geom") { @@ -3572,25 +3572,25 @@ void mjXReader::Tendon(XMLElement* section) { if (!ReadAttrTxt(sub, "sidesite", text1)) { text1.clear(); } - pwrap = mjm_wrapGeom(pten, text.c_str(), text1.c_str()); + pwrap = mjs_wrapGeom(pten, text.c_str(), text1.c_str()); } else if (wrap=="pulley") { ReadAttr(sub, "divisor", 1, &data, text, true); - pwrap = mjm_wrapPulley(pten, data); + pwrap = mjs_wrapPulley(pten, data); } else if (wrap=="joint") { ReadAttrTxt(sub, "joint", text, true); ReadAttr(sub, "coef", 1, &data, text1, true); - pwrap = mjm_wrapJoint(pten, text.c_str(), data); + pwrap = mjs_wrapJoint(pten, text.c_str(), data); } else { throw mjXError(sub, "unknown wrap type"); // SHOULD NOT OCCUR } - mjm_setString(pwrap->info, ("line = " + std::to_string(sub->GetLineNum())).c_str()); + mjs_setString(pwrap->info, ("line = " + std::to_string(sub->GetLineNum())).c_str()); // advance to next sub-element sub = NextSiblingElement(sub); @@ -3613,11 +3613,11 @@ void mjXReader::Actuator(XMLElement* section) { // get class if specified, otherwise use default0 mjmDefault* def = GetClass(elem); if (!def) { - def = mjm_getSpecDefault(model); + def = mjs_getSpecDefault(model); } // create actuator and parse - mjmActuator* pact = mjm_addActuator(model, def); + mjsActuator* pact = mjs_addActuator(model, def); OneActuator(elem, pact); // advance to next element @@ -3633,19 +3633,19 @@ void mjXReader::Sensor(XMLElement* section) { XMLElement* elem = FirstChildElement(section); while (elem) { // create sensor, get string type - mjmSensor* psen = mjm_addSensor(model); + mjsSensor* psen = mjs_addSensor(model); string type = elem->Value(); string text, name, objname, refname; std::vector userdata; // read name, noise, userdata if (ReadAttrTxt(elem, "name", name)) { - mjm_setString(psen->name, name.c_str()); + mjs_setString(psen->name, name.c_str()); } ReadAttr(elem, "cutoff", 1, &psen->cutoff, text); ReadAttr(elem, "noise", 1, &psen->noise, text); if (ReadVector(elem, "user", userdata, text)) { - mjm_setDouble(psen->userdata, userdata.data(), userdata.size()); + mjs_setDouble(psen->userdata, userdata.data(), userdata.size()); } // common robotic sensors, attached to a site @@ -3921,15 +3921,15 @@ void mjXReader::Sensor(XMLElement* section) { } if (!objname.empty()) { - mjm_setString(psen->objname, objname.c_str()); + mjs_setString(psen->objname, objname.c_str()); } if (!refname.empty()) { - mjm_setString(psen->refname, refname.c_str()); + mjs_setString(psen->refname, refname.c_str()); } // write info - mjm_setString(psen->info, ("line = " + std::to_string(elem->GetLineNum())).c_str()); + mjs_setString(psen->info, ("line = " + std::to_string(elem->GetLineNum())).c_str()); // advance to next element elem = NextSiblingElement(elem); @@ -3950,47 +3950,47 @@ void mjXReader::Keyframe(XMLElement* section) { string text, name = ""; // add keyframe - mjmKey* pk = mjm_addKey(model); + mjsKey* pk = mjs_addKey(model); // read name, time ReadAttrTxt(elem, "name", name); - mjm_setString(pk->name, name.c_str()); + mjs_setString(pk->name, name.c_str()); ReadAttr(elem, "time", 1, &pk->time, text); // read qpos n = ReadAttr(elem, "qpos", 1000, data, text, false, false); if (n) { - mjm_setDouble(pk->qpos, data, n); + mjs_setDouble(pk->qpos, data, n); } // read qvel n = ReadAttr(elem, "qvel", 1000, data, text, false, false); if (n) { - mjm_setDouble(pk->qvel, data, n); + mjs_setDouble(pk->qvel, data, n); } // read act n = ReadAttr(elem, "act", 1000, data, text, false, false); if (n) { - mjm_setDouble(pk->act, data, n); + mjs_setDouble(pk->act, data, n); } // read mpos n = ReadAttr(elem, "mpos", 1000, data, text, false, false); if (n) { - mjm_setDouble(pk->mpos, data, n); + mjs_setDouble(pk->mpos, data, n); } // read mquat n = ReadAttr(elem, "mquat", 1000, data, text, false, false); if (n) { - mjm_setDouble(pk->mquat, data, n); + mjs_setDouble(pk->mquat, data, n); } // read ctrl n = ReadAttr(elem, "ctrl", 1000, data, text, false, false); if (n) { - mjm_setDouble(pk->ctrl, data, n); + mjs_setDouble(pk->ctrl, data, n); } // advance to next element @@ -4006,7 +4006,7 @@ mjmDefault* mjXReader::GetClass(XMLElement* section) { mjmDefault* def = nullptr; if (ReadAttrTxt(section, "class", text)) { - def = mjm_findDefault(model, text.c_str()); + def = mjs_findDefault(model, text.c_str()); if (!def) { throw mjXError( section, diff --git a/src/xml/xml_native_reader.h b/src/xml/xml_native_reader.h index 2d2c177d..50d28a9a 100644 --- a/src/xml/xml_native_reader.h +++ b/src/xml/xml_native_reader.h @@ -54,8 +54,8 @@ class mjXReader : public mjXBase { void Visual(tinyxml2::XMLElement* section); // visual section void Statistic(tinyxml2::XMLElement* section); // statistic section void Asset(tinyxml2::XMLElement* section); // asset section - void Body(tinyxml2::XMLElement* section, mjmBody* pbody, - mjmFrame* pframe); // body/world section + void Body(tinyxml2::XMLElement* section, mjsBody* pbody, + mjsFrame* pframe); // body/world section void Contact(tinyxml2::XMLElement* section); // contact section void Deformable(tinyxml2::XMLElement* section); // deformable section void Equality(tinyxml2::XMLElement* section); // equality section @@ -65,22 +65,22 @@ class mjXReader : public mjXBase { void Keyframe(tinyxml2::XMLElement* section); // keyframe section // single element parsers, used in defaults and main body - void OneFlex(tinyxml2::XMLElement* elem, mjmFlex* pflex); - void OneMesh(tinyxml2::XMLElement* elem, mjmMesh* pmesh); - void OneSkin(tinyxml2::XMLElement* elem, mjmSkin* pskin); - void OneMaterial(tinyxml2::XMLElement* elem, mjmMaterial* pmaterial); - void OneJoint(tinyxml2::XMLElement* elem, mjmJoint* pjoint); - void OneGeom(tinyxml2::XMLElement* elem, mjmGeom* pgeom); - void OneSite(tinyxml2::XMLElement* elem, mjmSite* site); - void OneCamera(tinyxml2::XMLElement* elem, mjmCamera* pcamera); - void OneLight(tinyxml2::XMLElement* elem, mjmLight* plight); - void OnePair(tinyxml2::XMLElement* elem, mjmPair* ppair); - void OneEquality(tinyxml2::XMLElement* elem, mjmEquality* pequality); - void OneTendon(tinyxml2::XMLElement* elem, mjmTendon* ptendon); - void OneActuator(tinyxml2::XMLElement* elem, mjmActuator* pactuator); - void OneComposite(tinyxml2::XMLElement* elem, mjmBody* pbody, mjmDefault* def); - void OneFlexcomp(tinyxml2::XMLElement* elem, mjmBody* pbody); - void OnePlugin(tinyxml2::XMLElement* elem, mjmPlugin* plugin); + void OneFlex(tinyxml2::XMLElement* elem, mjsFlex* pflex); + void OneMesh(tinyxml2::XMLElement* elem, mjsMesh* pmesh); + void OneSkin(tinyxml2::XMLElement* elem, mjsSkin* pskin); + void OneMaterial(tinyxml2::XMLElement* elem, mjsMaterial* pmaterial); + void OneJoint(tinyxml2::XMLElement* elem, mjsJoint* pjoint); + void OneGeom(tinyxml2::XMLElement* elem, mjsGeom* pgeom); + void OneSite(tinyxml2::XMLElement* elem, mjsSite* site); + void OneCamera(tinyxml2::XMLElement* elem, mjsCamera* pcamera); + void OneLight(tinyxml2::XMLElement* elem, mjsLight* plight); + void OnePair(tinyxml2::XMLElement* elem, mjsPair* ppair); + void OneEquality(tinyxml2::XMLElement* elem, mjsEquality* pequality); + void OneTendon(tinyxml2::XMLElement* elem, mjsTendon* ptendon); + void OneActuator(tinyxml2::XMLElement* elem, mjsActuator* pactuator); + void OneComposite(tinyxml2::XMLElement* elem, mjsBody* pbody, mjmDefault* def); + void OneFlexcomp(tinyxml2::XMLElement* elem, mjsBody* pbody); + void OnePlugin(tinyxml2::XMLElement* elem, mjsPlugin* plugin); mjXSchema schema; // schema used for validation mjmDefault* GetClass(tinyxml2::XMLElement* section); // get default class name diff --git a/src/xml/xml_native_writer.cc b/src/xml/xml_native_writer.cc index c0d72f80..642a96d4 100644 --- a/src/xml/xml_native_writer.cc +++ b/src/xml/xml_native_writer.cc @@ -553,33 +553,33 @@ void mjXWriter::OneEquality(XMLElement* elem, mjCEquality* peq, mjCDef* def) { switch (peq->type) { case mjEQ_CONNECT: - WriteAttrTxt(elem, "body1", mjm_getString(peq->name1)); - WriteAttrTxt(elem, "body2", mjm_getString(peq->name2)); + WriteAttrTxt(elem, "body1", mjs_getString(peq->name1)); + WriteAttrTxt(elem, "body2", mjs_getString(peq->name2)); WriteAttr(elem, "anchor", 3, peq->data); break; case mjEQ_WELD: - WriteAttrTxt(elem, "body1", mjm_getString(peq->name1)); - WriteAttrTxt(elem, "body2", mjm_getString(peq->name2)); + WriteAttrTxt(elem, "body1", mjs_getString(peq->name1)); + WriteAttrTxt(elem, "body2", mjs_getString(peq->name2)); WriteAttr(elem, "anchor", 3, peq->data); WriteAttr(elem, "torquescale", 1, peq->data+10); WriteAttr(elem, "relpose", 7, peq->data+3); break; case mjEQ_JOINT: - WriteAttrTxt(elem, "joint1", mjm_getString(peq->name1)); - WriteAttrTxt(elem, "joint2", mjm_getString(peq->name2)); + WriteAttrTxt(elem, "joint1", mjs_getString(peq->name1)); + WriteAttrTxt(elem, "joint2", mjs_getString(peq->name2)); WriteAttr(elem, "polycoef", 5, peq->data); break; case mjEQ_TENDON: - WriteAttrTxt(elem, "tendon1", mjm_getString(peq->name1)); - WriteAttrTxt(elem, "tendon2", mjm_getString(peq->name2)); + WriteAttrTxt(elem, "tendon1", mjs_getString(peq->name1)); + WriteAttrTxt(elem, "tendon2", mjs_getString(peq->name2)); WriteAttr(elem, "polycoef", 5, peq->data); break; case mjEQ_FLEX: - WriteAttrTxt(elem, "flex", mjm_getString(peq->name1)); + WriteAttrTxt(elem, "flex", mjs_getString(peq->name1)); break; default: @@ -731,9 +731,9 @@ void mjXWriter::OneActuator(XMLElement* elem, mjCActuator* pact, mjCDef* def) { // write plugin -void mjXWriter::OnePlugin(XMLElement* elem, mjmPlugin* plugin) { - const std::string instance_name = std::string(mjm_getString(plugin->instance_name)); - const std::string plugin_name = std::string(mjm_getString(plugin->name)); +void mjXWriter::OnePlugin(XMLElement* elem, mjsPlugin* plugin) { + const std::string instance_name = std::string(mjs_getString(plugin->instance_name)); + const std::string plugin_name = std::string(mjs_getString(plugin->name)); if (!instance_name.empty()) { WriteAttrTxt(elem, "instance", instance_name); } else { @@ -783,13 +783,13 @@ string mjXWriter::Write(char *error, size_t error_sz) { // create document and root XMLDocument doc; XMLElement* root = doc.NewElement("mujoco"); - root->SetAttribute("model", mjm_getString(model->modelname)); + root->SetAttribute("model", mjs_getString(model->modelname)); // insert root doc.InsertFirstChild(root); // write comment if present - string text = mjm_getString(model->comment); + string text = mjs_getString(model->comment); if (!text.empty()) { XMLComment* comment = doc.NewComment(text.c_str()); root->LinkEndChild(comment); diff --git a/src/xml/xml_native_writer.h b/src/xml/xml_native_writer.h index 0a475448..0e7513bb 100644 --- a/src/xml/xml_native_writer.h +++ b/src/xml/xml_native_writer.h @@ -72,7 +72,7 @@ class mjXWriter : public mjXBase { void OneEquality(tinyxml2::XMLElement* elem, mjCEquality* pequality, mjCDef* def); void OneTendon(tinyxml2::XMLElement* elem, mjCTendon* ptendon, mjCDef* def); void OneActuator(tinyxml2::XMLElement* elem, mjCActuator* pactuator, mjCDef* def); - void OnePlugin(tinyxml2::XMLElement* elem, mjmPlugin* plugin); + void OnePlugin(tinyxml2::XMLElement* elem, mjsPlugin* plugin); bool writingdefaults; // true during defaults write }; diff --git a/src/xml/xml_urdf.cc b/src/xml/xml_urdf.cc index 23bd2647..28e76beb 100644 --- a/src/xml/xml_urdf.cc +++ b/src/xml/xml_urdf.cc @@ -112,7 +112,7 @@ void mjXURDF::Parse( // get model name std::string modelname; if (ReadAttrTxt(root, "name", modelname)) { - mjm_setString(model->modelname, modelname.c_str()); + mjs_setString(model->modelname, modelname.c_str()); } // find and register all materials @@ -206,16 +206,16 @@ void mjXURDF::Parse( // override the pose for the base link and add a free joint for (int i = 0; i < (int)urName.size(); i++) { if (urParent[i] < 0) { - mjmBody* world = mjm_findBody(model, "world"); - mjmBody* pbody = mjm_findChild(world, urName[i].c_str()); + mjsBody* world = mjs_findBody(model, "world"); + mjsBody* pbody = mjs_findChild(world, urName[i].c_str()); mjuu_copyvec(pbody->pos, pos, 3); mjuu_copyvec(pbody->quat, quat, 4); // add a free joint to allow motion of the body // if the mass is 0, assume the object is static if (!static_body && pbody->mass > 0) { - mjmJoint* pjoint = mjm_addJoint(pbody, 0); - mjm_setString(pjoint->name, (urName[i] + "_free_joint").c_str()); + mjsJoint* pjoint = mjs_addJoint(pbody, 0); + mjs_setString(pjoint->name, (urName[i] + "_free_joint").c_str()); pjoint->type = mjJNT_FREE; } } @@ -226,14 +226,14 @@ void mjXURDF::Parse( void mjXURDF::Body(XMLElement* body_elem) { std::string name, text; XMLElement *elem, *temp, *temp1; - mjmBody *pbody, *world; - mjmGeom* pgeom; + mjsBody *pbody, *world; + mjsGeom* pgeom; - // get body name and pointer to mjmBody + // get body name and pointer to mjsBody ReadAttrTxt(body_elem, "name", name, true); name = GetPrefixedName(name); - world = mjm_findBody(model, "world"); - pbody = mjm_findChild(world, name.c_str()); + world = mjs_findBody(model, "world"); + pbody = mjs_findChild(world, name.c_str()); if (!pbody) { throw mjXError(body_elem, "URDF body not found"); // SHOULD NOT OCCUR } @@ -272,7 +272,7 @@ void mjXURDF::Body(XMLElement* body_elem) { // lquat = rotation from specified to default (joint/body) inertial frame double lquat[4] = {1, 0, 0, 0}; double tmpquat[4] = {1, 0, 0, 0}; - const char* altres = mjm_setFullInertia(pbody, lquat, pbody->inertia); + const char* altres = mjs_setFullInertia(pbody, lquat, pbody->inertia); // inertia are sometimes 0 in URDF files: ignore error in altres, fix later (void) altres; @@ -326,7 +326,7 @@ void mjXURDF::Body(XMLElement* body_elem) { mjXUtil::ReadAttrTxt(elem, "name", geom_name); name = GetPrefixedName(name); if (urGeomNames.find(geom_name) == urGeomNames.end()) { - mjm_setString(pgeom->name, geom_name.c_str()); + mjs_setString(pgeom->name, geom_name.c_str()); urGeomNames.insert(geom_name); } else { std::cerr << "WARNING: Geom with duplicate name '" << geom_name @@ -349,7 +349,7 @@ void mjXURDF::Body(XMLElement* body_elem) { mjXUtil::ReadAttrTxt(elem, "name", geom_name); geom_name = GetPrefixedName(geom_name); if (urGeomNames.find(geom_name) == urGeomNames.end()) { - mjm_setString(pgeom->name, geom_name.c_str()); + mjs_setString(pgeom->name, geom_name.c_str()); urGeomNames.insert(geom_name); } else { std::cerr << "WARNING: Geom with duplicate name '" << geom_name @@ -374,8 +374,8 @@ void mjXURDF::Parse(XMLElement* root) { void mjXURDF::Joint(XMLElement* joint_elem) { std::string jntname, name, text; XMLElement *elem; - mjmBody *pbody, *parent, *world; - mjmJoint *pjoint=0, *pjoint1=0, *pjoint2=0; + mjsBody *pbody, *parent, *world; + mjsJoint *pjoint=0, *pjoint1=0, *pjoint2=0; int jointtype; // get type and name @@ -390,8 +390,8 @@ void mjXURDF::Joint(XMLElement* joint_elem) { elem = FindSubElem(joint_elem, "parent", true); ReadAttrTxt(elem, "link", name, true); name = GetPrefixedName(name); - world = mjm_findBody(model, "world"); - parent = mjm_findChild(world, name.c_str()); + world = mjs_findBody(model, "world"); + parent = mjs_findChild(world, name.c_str()); if (!parent) { // SHOULD NOT OCCUR throw mjXError(elem, "invalid parent name in URDF joint definition"); } @@ -400,8 +400,8 @@ void mjXURDF::Joint(XMLElement* joint_elem) { elem = FindSubElem(joint_elem, "child", true); ReadAttrTxt(elem, "link", name, true); name = GetPrefixedName(name); - world = mjm_findBody(model, "world"); - pbody = mjm_findChild(world, name.c_str()); + world = mjs_findBody(model, "world"); + pbody = mjs_findChild(world, name.c_str()); if (!pbody) { // SHOULD NOT OCCUR throw mjXError(elem, "invalid child name in URDF joint definition"); } @@ -418,16 +418,16 @@ void mjXURDF::Joint(XMLElement* joint_elem) { switch (jointtype) { case 0: // revolute case 1: // continuous - pjoint = mjm_addJoint(pbody, 0); - mjm_setString(pjoint->name, jntname.c_str()); + pjoint = mjs_addJoint(pbody, 0); + mjs_setString(pjoint->name, jntname.c_str()); pjoint->type = mjJNT_HINGE; mjuu_setvec(pjoint->pos, 0, 0, 0); mjuu_copyvec(pjoint->axis, axis, 3); break; case 2: // prismatic - pjoint = mjm_addJoint(pbody, 0); - mjm_setString(pjoint->name, jntname.c_str()); + pjoint = mjs_addJoint(pbody, 0); + mjs_setString(pjoint->name, jntname.c_str()); pjoint->type = mjJNT_SLIDE; mjuu_setvec(pjoint->pos, 0, 0, 0); mjuu_copyvec(pjoint->axis, axis, 3); @@ -437,8 +437,8 @@ void mjXURDF::Joint(XMLElement* joint_elem) { return; case 4: // floating - pjoint = mjm_addJoint(pbody, 0); - mjm_setString(pjoint->name, jntname.c_str()); + pjoint = mjs_addJoint(pbody, 0); + mjs_setString(pjoint->name, jntname.c_str()); pjoint->type = mjJNT_FREE; break; @@ -448,8 +448,8 @@ void mjXURDF::Joint(XMLElement* joint_elem) { mjuu_quat2mat(mat, quat); // construct slider along x - pjoint = mjm_addJoint(pbody, 0); - mjm_setString(pjoint->name, (jntname + "_TX").c_str()); + pjoint = mjs_addJoint(pbody, 0); + mjs_setString(pjoint->name, (jntname + "_TX").c_str()); pjoint->type = mjJNT_SLIDE; tmpaxis[0] = mat[0]; tmpaxis[1] = mat[3]; @@ -458,8 +458,8 @@ void mjXURDF::Joint(XMLElement* joint_elem) { mjuu_copyvec(pjoint->axis, tmpaxis, 3); // construct slider along y - pjoint1 = mjm_addJoint(pbody, 0); - mjm_setString(pjoint1->name, (jntname + "_TY").c_str()); + pjoint1 = mjs_addJoint(pbody, 0); + mjs_setString(pjoint1->name, (jntname + "_TY").c_str()); pjoint1->type = mjJNT_SLIDE; tmpaxis[0] = mat[1]; tmpaxis[1] = mat[4]; @@ -468,8 +468,8 @@ void mjXURDF::Joint(XMLElement* joint_elem) { mjuu_copyvec(pjoint1->axis, tmpaxis, 3); // construct hinge around z = locaxis - pjoint2 = mjm_addJoint(pbody, 0); - mjm_setString(pjoint2->name, (jntname + "_RZ").c_str()); + pjoint2 = mjs_addJoint(pbody, 0); + mjs_setString(pjoint2->name, (jntname + "_RZ").c_str()); pjoint2->type = mjJNT_HINGE; mjuu_setvec(pjoint2->pos, 0, 0, 0); mjuu_copyvec(pjoint2->axis, axis, 3); @@ -506,7 +506,7 @@ void mjXURDF::Joint(XMLElement* joint_elem) { // parse origin and geometry elements of visual or collision -mjmGeom* mjXURDF::Geom(XMLElement* geom_elem, mjmBody* pbody, bool collision) { +mjsGeom* mjXURDF::Geom(XMLElement* geom_elem, mjsBody* pbody, bool collision) { XMLElement *elem, *temp; std::string text, meshfile; @@ -514,8 +514,8 @@ mjmGeom* mjXURDF::Geom(XMLElement* geom_elem, mjmBody* pbody, bool collision) { elem = FindSubElem(geom_elem, "geometry", true); // add BOX geom, modify type later - mjmGeom* pgeom = mjm_addGeom(pbody, 0); - mjm_setString(pgeom->name, ""); + mjsGeom* pgeom = mjs_addGeom(pbody, 0); + mjs_setString(pgeom->name, ""); pgeom->type = mjGEOM_BOX; if (collision) { pgeom->contype = 1; @@ -576,19 +576,19 @@ mjmGeom* mjXURDF::Geom(XMLElement* geom_elem, mjmBody* pbody, bool collision) { meshname = mjuu_stripext(meshname); // look for existing mesh - mjmMesh* mesh = mjm_findMesh(model, meshname.c_str()); - mjmMesh* pmesh = 0; + mjsMesh* mesh = mjs_findMesh(model, meshname.c_str()); + mjsMesh* pmesh = 0; // does not exist: create if (!mesh) { - pmesh = mjm_addMesh(model, 0); + pmesh = mjs_addMesh(model, 0); } // exists with different scale: append name with '1', create else if (mesh->scale[0]!=meshscale[0] || mesh->scale[1]!=meshscale[1] || mesh->scale[2]!=meshscale[2]) { - pmesh = mjm_addMesh(model, 0); + pmesh = mjs_addMesh(model, 0); meshname = meshname + "1"; } @@ -598,9 +598,9 @@ mjmGeom* mjXURDF::Geom(XMLElement* geom_elem, mjmBody* pbody, bool collision) { } // set fields - mjm_setString(pmesh->file, meshfile.c_str()); - mjm_setString(pmesh->name, meshname.c_str()); - mjm_setString(pgeom->meshname, meshname.c_str()); + mjs_setString(pmesh->file, meshfile.c_str()); + mjs_setString(pmesh->name, meshname.c_str()); + mjs_setString(pgeom->meshname, meshname.c_str()); pmesh->scale[0] = meshscale[0]; pmesh->scale[1] = meshscale[1]; pmesh->scale[2] = meshscale[2]; @@ -683,22 +683,22 @@ void mjXURDF::AddBody(std::string name) { // add body with given number to the mjCModel tree, process children void mjXURDF::AddToTree(int n) { // get pointer to parent in mjCModel tree - mjmBody *parent = 0, *child = 0, *world = 0; + mjsBody *parent = 0, *child = 0, *world = 0; if (urParent[n]>=0) { - world = mjm_findBody(model, "world"); - parent = mjm_findChild(world, urName[urParent[n]].c_str()); + world = mjs_findBody(model, "world"); + parent = mjs_findChild(world, urName[urParent[n]].c_str()); if (!parent) throw mjXError(0, "URDF body parent should already be in tree: %s", urName[urParent[n]].c_str()); // SHOULD NOT OCCUR } else { - parent = mjm_findBody(model, "world"); + parent = mjs_findBody(model, "world"); } // add this body if (urName[n] != "world") { - child = mjm_addBody(parent, 0); - mjm_setString(child->name, urName[n].c_str()); + child = mjs_addBody(parent, 0); + mjs_setString(child->name, urName[n].c_str()); } // add children recursively diff --git a/src/xml/xml_urdf.h b/src/xml/xml_urdf.h index 79a76dd4..d2efa317 100644 --- a/src/xml/xml_urdf.h +++ b/src/xml/xml_urdf.h @@ -51,8 +51,8 @@ class mjXURDF : public mjXBase { void AddToTree(int n); // add body to mjCModel tree void Body(tinyxml2::XMLElement* body_elem); // parse body void Joint(tinyxml2::XMLElement* joint_elem); // parse joint - mjmGeom* Geom(tinyxml2::XMLElement* geom_elem, - mjmBody* pbody, bool collision); // parse origin and geometry of geom + mjsGeom* Geom(tinyxml2::XMLElement* geom_elem, + mjsBody* pbody, bool collision); // parse origin and geometry of geom void Origin(tinyxml2::XMLElement* origin_elem, double* pos, double* quat); // parse origin element void MakeMaterials(tinyxml2::XMLElement* elem); // find all materials recursively diff --git a/test/user/user_api_test.cc b/test/user/user_api_test.cc index e0a83d5f..74bd22cf 100644 --- a/test/user/user_api_test.cc +++ b/test/user/user_api_test.cc @@ -39,28 +39,28 @@ using ::testing::NotNull; // ----------------------------- test set/get -------------------------------- TEST_F(MujocoTest, ReadWriteData) { - mjSpec* spec = mjm_createSpec(); - mjmBody* world = mjm_findBody(spec, "world"); - mjmBody* body = mjm_addBody(world, 0); - mjmSite* site = mjm_addSite(body, 0); + mjSpec* spec = mjs_createSpec(); + mjsBody* world = mjs_findBody(spec, "world"); + mjsBody* body = mjs_addBody(world, 0); + mjsSite* site = mjs_addSite(body, 0); { double vec[10] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}; const char* str = "sitename"; - mjm_setString(site->name, str); - mjm_setDouble(site->userdata, vec, 10); + mjs_setString(site->name, str); + mjs_setDouble(site->userdata, vec, 10); } - EXPECT_THAT(mjm_getString(site->name), HasSubstr("sitename")); + EXPECT_THAT(mjs_getString(site->name), HasSubstr("sitename")); int nsize; - const double* vec = mjm_getDouble(site->userdata, &nsize); + const double* vec = mjs_getDouble(site->userdata, &nsize); for (int i = 0; i < nsize; ++i) { EXPECT_EQ(vec[i], i); } - mjm_deleteSpec(spec); + mjs_deleteSpec(spec); } // ------------------- test recompilation multiple files ---------------------- @@ -93,12 +93,12 @@ TEST_F(PluginTest, RecompileCompare) { mjSpec* s = mjParseXML(xml.c_str(), nullptr, err.data(), err.size()); // copy spec - mjSpec* s_copy = mjm_copySpec(s); + mjSpec* s_copy = mjs_copySpec(s); // compile twice and compare - mjModel* m_old = mjm_compile(s, nullptr); - mjModel* m_new = mjm_compile(s, nullptr); - mjModel* m_copy = mjm_compile(s_copy, nullptr); + mjModel* m_old = mjs_compile(s, nullptr); + mjModel* m_new = mjs_compile(s, nullptr); + mjModel* m_copy = mjs_compile(s_copy, nullptr); ASSERT_THAT(m_old, NotNull()) << "Failed to compile " << xml << ": " << err.data(); @@ -118,8 +118,8 @@ TEST_F(PluginTest, RecompileCompare) { << "Different field: " << field << '\n'; // copy to a new spec, compile and compare - mjSpec* s_copy2 = mjm_copySpec(s); - mjModel* m_copy2 = mjm_compile(s_copy2, nullptr); + mjSpec* s_copy2 = mjs_copySpec(s); + mjModel* m_copy2 = mjs_compile(s_copy2, nullptr); ASSERT_THAT(m_copy2, NotNull()) << "Failed to compile " << xml << ": " << err.data(); @@ -130,9 +130,9 @@ TEST_F(PluginTest, RecompileCompare) { << "Different field: " << field << '\n'; // delete models - mjm_deleteSpec(s); - mjm_deleteSpec(s_copy); - mjm_deleteSpec(s_copy2); + mjs_deleteSpec(s); + mjs_deleteSpec(s_copy); + mjs_deleteSpec(s_copy2); mj_deleteModel(m_old); mj_deleteModel(m_new); mj_deleteModel(m_copy); @@ -273,7 +273,7 @@ TEST_F(MujocoTest, Attach) { EXPECT_THAT(parent, NotNull()) << er.data(); // get frame - mjmFrame* frame = mjm_findFrame(parent, "frame"); + mjsFrame* frame = mjs_findFrame(parent, "frame"); EXPECT_THAT(frame, NotNull()); // model with one cylinder and a hinge @@ -281,15 +281,15 @@ TEST_F(MujocoTest, Attach) { EXPECT_THAT(child, NotNull()) << er.data(); // get subtree - mjmBody* body = mjm_findBody(child, "body"); + mjsBody* body = mjs_findBody(child, "body"); EXPECT_THAT(body, NotNull()); // attach child to parent frame EXPECT_THAT( - mjm_attachBody(frame, body, /*prefix=*/"attached-", /*suffix=*/"-1"), 0); + mjs_attachBody(frame, body, /*prefix=*/"attached-", /*suffix=*/"-1"), 0); // compile new model - mjModel* m_attached = mjm_compile(parent, 0); + mjModel* m_attached = mjs_compile(parent, 0); EXPECT_THAT(m_attached, NotNull()); // check full name stored in mjModel @@ -306,8 +306,8 @@ TEST_F(MujocoTest, Attach) { << "Different field: " << field << '\n';; // destroy everything - mjm_deleteSpec(parent); - mjm_deleteSpec(child); + mjs_deleteSpec(parent); + mjs_deleteSpec(child); mj_deleteModel(m_attached); mj_deleteModel(m_expected); }