Convert mjmStruct to a C-struct.

PiperOrigin-RevId: 603357871
Change-Id: I27918b0030fc6a589c361cad965611adc3bf7247
This commit is contained in:
Alessio Quaglino
2024-02-01 06:56:46 -08:00
committed by Copybara-Service
parent 7a98038e88
commit b3f93d436b
7 changed files with 103 additions and 65 deletions
+17 -17
View File
@@ -653,8 +653,8 @@ void mjCModel::MakeLists(mjCBody* body) {
template <class T>
void mjCModel::DeleteMaterial(std::vector<T*>& list, std::string_view name) {
for (T* plist : list) {
if (name.empty() || plist->material == name) {
plist->material.clear();
if (name.empty() || plist->material_ == name) {
plist->material_.clear();
}
}
}
@@ -775,12 +775,12 @@ void mjCModel::IndexAssets(bool discard) {
mjCGeom* pgeom = geoms[i];
// find material by name
if (!pgeom->material.empty()) {
mjCBase* m = FindObject(mjOBJ_MATERIAL, pgeom->material);
if (!pgeom->material_.empty()) {
mjCBase* m = FindObject(mjOBJ_MATERIAL, pgeom->material_);
if (m) {
pgeom->matid = m->id;
} else {
throw mjCError(pgeom, "material '%s' not found in geom %d", pgeom->material.c_str(), i);
throw mjCError(pgeom, "material '%s' not found in geom %d", pgeom->material_.c_str(), i);
}
}
@@ -822,12 +822,12 @@ void mjCModel::IndexAssets(bool discard) {
mjCSkin* pskin = skins[i];
// find material by name
if (!pskin->material.empty()) {
mjCBase* m = FindObject(mjOBJ_MATERIAL, pskin->material);
if (!pskin->material_.empty()) {
mjCBase* m = FindObject(mjOBJ_MATERIAL, pskin->material_);
if (m) {
pskin->matid = m->id;
} else {
throw mjCError(pskin, "material '%s' not found in skin %d", pskin->material.c_str(), i);
throw mjCError(pskin, "material '%s' not found in skin %d", pskin->material_.c_str(), i);
}
}
}
@@ -837,12 +837,12 @@ void mjCModel::IndexAssets(bool discard) {
mjCSite* psite = sites[i];
// find material by name
if (!psite->material.empty()) {
mjCBase* m = FindObject(mjOBJ_MATERIAL, psite->material);
if (!psite->material_.empty()) {
mjCBase* m = FindObject(mjOBJ_MATERIAL, psite->get_material());
if (m) {
psite->matid = m->id;
} else {
throw mjCError(psite, "material '%s' not found in site %d", psite->material.c_str(), i);
throw mjCError(psite, "material '%s' not found in site %d", psite->material_.c_str(), i);
}
}
}
@@ -852,12 +852,12 @@ void mjCModel::IndexAssets(bool discard) {
mjCTendon* pten = tendons[i];
// find material by name
if (!pten->material.empty()) {
mjCBase* m = FindObject(mjOBJ_MATERIAL, pten->material);
if (!pten->material_.empty()) {
mjCBase* m = FindObject(mjOBJ_MATERIAL, pten->material_);
if (m) {
pten->matid = m->id;
} else {
throw mjCError(pten, "material '%s' not found in tendon %d", pten->material.c_str(), i);
throw mjCError(pten, "material '%s' not found in tendon %d", pten->material_.c_str(), i);
}
}
}
@@ -1718,7 +1718,7 @@ void mjCModel::CopyTree(mjModel* m) {
copyvec(m->site_size+3*sid, ps->size, 3);
copyvec(m->site_pos+3*sid, ps->pos, 3);
copyvec(m->site_quat+4*sid, ps->quat, 4);
copyvec(m->site_user+nuser_site*sid, ps->userdata.data(), nuser_site);
copyvec(m->site_user+nuser_site*sid, ps->userdata_.data(), nuser_site);
copyvec(m->site_rgba+4*sid, ps->rgba, 4);
// determine sameframe
@@ -2901,7 +2901,7 @@ void mjCModel::TryCompile(mjModel*& m, mjData*& d, const mjVFS* vfs) {
if (nuser_site == -1) {
nuser_site = 0;
for (int i=0; i<sites.size(); i++) {
nuser_site = mjMAX(nuser_site, sites[i]->spec.userdata.size());
nuser_site = mjMAX(nuser_site, sites[i]->spec_userdata_.size());
}
}
if (nuser_cam == -1) {
@@ -3407,7 +3407,7 @@ bool mjCModel::CopyBack(const mjModel* m) {
copyvec(sites[i]->rgba, m->site_rgba+4*i, 4);
if (nuser_site) {
copyvec(sites[i]->userdata.data(), m->site_user + nuser_site*i, nuser_site);
copyvec(sites[i]->userdata_.data(), m->site_user + nuser_site*i, nuser_site);
}
}