Allow height-field elevation data to be specified in XML.
PiperOrigin-RevId: 602374498 Change-Id: I2d3364d68876a35799b24aca1051e2f5aebdda75
This commit is contained in:
committed by
Copybara-Service
parent
e6847f843d
commit
e143b3dbc0
+18
-1
@@ -3376,11 +3376,28 @@ bool mjCModel::CopyBack(const mjModel* m) {
|
||||
mjCMesh* pm;
|
||||
for (int i=0; i<nmesh; i++) {
|
||||
pm = meshes[i];
|
||||
|
||||
copyvec(pm->GetOffsetPosPtr(), m->mesh_pos+3*i, 3);
|
||||
copyvec(pm->GetOffsetQuatPtr(), m->mesh_quat+4*i, 4);
|
||||
}
|
||||
|
||||
// heightfield
|
||||
mjCHField* phf;
|
||||
for (int i=0; i<nhfield; i++) {
|
||||
phf = hfields[i];
|
||||
int size = phf->userdata().size();
|
||||
if (size) {
|
||||
int nrow = m->hfield_nrow[i];
|
||||
int ncol = m->hfield_ncol[i];
|
||||
float* userdata = phf->userdata().data();
|
||||
float* modeldata = m->hfield_data + m->hfield_adr[i];
|
||||
// copy back in reverse row order
|
||||
for (int j=0; j<nrow; j++) {
|
||||
int flip = nrow-1-j;
|
||||
copyvec(userdata + flip*ncol, modeldata+j*ncol, ncol);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// sites
|
||||
for (int i=0; i<nsite; i++) {
|
||||
copyvec(sites[i]->size, m->site_size + 3 * i, 3);
|
||||
|
||||
Reference in New Issue
Block a user