Remove mjCBase::def and use mjCBase::classname instead.

PiperOrigin-RevId: 650629741
Change-Id: I10a9955b99e4a5ff0b5a742e22635ccad1455f1a
This commit is contained in:
Alessio Quaglino
2024-07-09 08:01:38 -07:00
committed by Copybara-Service
parent c5f958bdff
commit e0d33eb1d0
8 changed files with 56 additions and 75 deletions
+19 -12
View File
@@ -1472,7 +1472,7 @@ void mjXWriter::Asset(XMLElement* root) {
// create element and write
mjCMaterial* pmat = (mjCMaterial*)model->GetObject(mjOBJ_MATERIAL, i);
elem = InsertEnd(section, "material");
OneMaterial(elem, pmat, pmat->def);
OneMaterial(elem, pmat, model->def_map[pmat->classname]);
}
// write meshes
@@ -1485,7 +1485,7 @@ void mjXWriter::Asset(XMLElement* root) {
OnePlugin(InsertEnd(elem, "plugin"), &pmesh->plugin);
} else{
elem = InsertEnd(section, "mesh");
OneMesh(elem, pmesh, pmesh->def);
OneMesh(elem, pmesh, model->def_map[pmesh->classname]);
}
}
@@ -1543,7 +1543,9 @@ void mjXWriter::Body(XMLElement* elem, mjCBody* body, std::string_view childclas
// write body attributes and inertial
else if (body!=model->GetWorld()) {
WriteAttrTxt(elem, "name", body->name);
WriteAttrTxt(elem, "childclass", body->classname);
if (childclass != body->classname && body->classname != "main") {
WriteAttrTxt(elem, "childclass", body->classname);
}
// write pos if it's not {0, 0, 0}
if (body->pos[0] || body->pos[1] || body->pos[2]) {
@@ -1578,7 +1580,8 @@ void mjXWriter::Body(XMLElement* elem, mjCBody* body, std::string_view childclas
std::string classname = body->joints[i]->frame && !body->joints[i]->frame->classname.empty()
? body->joints[i]->frame->classname
: body->classname;
OneJoint(InsertEnd(celem, "joint"), body->joints[i], body->joints[i]->def,
OneJoint(InsertEnd(celem, "joint"), body->joints[i],
model->def_map[body->joints[i]->classname],
classname.empty() ? childclass : classname);
}
@@ -1588,7 +1591,8 @@ void mjXWriter::Body(XMLElement* elem, mjCBody* body, std::string_view childclas
std::string classname = body->geoms[i]->frame && !body->geoms[i]->frame->classname.empty()
? body->geoms[i]->frame->classname
: body->classname;
OneGeom(InsertEnd(celem, "geom"), body->geoms[i], body->geoms[i]->def,
OneGeom(InsertEnd(celem, "geom"), body->geoms[i],
model->def_map[body->geoms[i]->classname],
classname.empty() ? childclass : classname);
}
@@ -1598,7 +1602,8 @@ void mjXWriter::Body(XMLElement* elem, mjCBody* body, std::string_view childclas
std::string classname = body->sites[i]->frame && !body->sites[i]->frame->classname.empty()
? body->sites[i]->frame->classname
: body->classname;
OneSite(InsertEnd(celem, "site"), body->sites[i], body->sites[i]->def,
OneSite(InsertEnd(celem, "site"), body->sites[i],
model->def_map[body->sites[i]->classname],
classname.empty() ? childclass : classname);
}
@@ -1608,7 +1613,8 @@ void mjXWriter::Body(XMLElement* elem, mjCBody* body, std::string_view childclas
std::string classname = body->cameras[i]->frame && !body->cameras[i]->frame->classname.empty()
? body->cameras[i]->frame->classname
: body->classname;
OneCamera(InsertEnd(celem, "camera"), body->cameras[i], body->cameras[i]->def,
OneCamera(InsertEnd(celem, "camera"), body->cameras[i],
model->def_map[body->cameras[i]->classname],
classname.empty() ? childclass : classname);
}
@@ -1618,7 +1624,8 @@ void mjXWriter::Body(XMLElement* elem, mjCBody* body, std::string_view childclas
std::string classname = body->lights[i]->frame && !body->lights[i]->frame->classname.empty()
? body->lights[i]->frame->classname
: body->classname;
OneLight(InsertEnd(celem, "light"), body->lights[i], body->lights[i]->def,
OneLight(InsertEnd(celem, "light"), body->lights[i],
model->def_map[body->lights[i]->classname],
classname.empty() ? childclass : classname);
}
@@ -1660,7 +1667,7 @@ void mjXWriter::Contact(XMLElement* root) {
// create element and write
mjCPair* ppair = (mjCPair*)model->GetObject(mjOBJ_PAIR, i);
elem = InsertEnd(section, "pair");
OnePair(elem, ppair, ppair->def);
OnePair(elem, ppair, model->def_map[ppair->classname]);
}
// write all exclude pairs
@@ -1693,7 +1700,7 @@ void mjXWriter::Equality(XMLElement* root) {
for (int i=0; i<num; i++) {
mjCEquality* peq = (mjCEquality*)model->GetObject(mjOBJ_EQUALITY, i);
XMLElement* elem = InsertEnd(section, FindValue(equality_map, equality_sz, peq->type).c_str());
OneEquality(elem, peq, peq->def);
OneEquality(elem, peq, model->def_map[peq->classname]);
}
}
@@ -1754,7 +1761,7 @@ void mjXWriter::Tendon(XMLElement* root) {
}
XMLElement* elem = InsertEnd(section,
pten->GetWrap(0)->type==mjWRAP_JOINT ? "fixed" : "spatial");
OneTendon(elem, pten, pten->def);
OneTendon(elem, pten, model->def_map[pten->classname]);
// write wraps
XMLElement* wrap;
@@ -1815,7 +1822,7 @@ void mjXWriter::Actuator(XMLElement* root) {
} else {
elem = InsertEnd(section, "general");
}
OneActuator(elem, pact, pact->def);
OneActuator(elem, pact, model->def_map[pact->classname]);
}
}