Add control values to keyframes.
- Add basic test for keyframes. - Add missing documentation for keyframe mocap positions and quaternions. PiperOrigin-RevId: 459021649 Change-Id: I91cf7ecbddc6262e8c72a868eeb82d627f389fb3
This commit is contained in:
committed by
Copybara-Service
parent
5ba880506c
commit
09a5efc09e
@@ -1016,6 +1016,7 @@ void mj_resetDataKeyframe(const mjModel* m, mjData* d, int key) {
|
||||
mju_copy(d->act, m->key_act+ key*m->na, m->na);
|
||||
mju_copy(d->mocap_pos, m->key_mpos+key*3*m->nmocap, 3*m->nmocap);
|
||||
mju_copy(d->mocap_quat, m->key_mquat+key*4*m->nmocap, 4*m->nmocap);
|
||||
mju_copy(d->ctrl, m->key_ctrl+key*m->nu, m->nu);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -592,7 +592,7 @@ void mj_printFormattedModel(const mjModel* m, const char* filename, const char*
|
||||
k = 2;
|
||||
}
|
||||
|
||||
// print if nozero
|
||||
// print if nonzero
|
||||
if (k==2) {
|
||||
fprintf(fp, "key_qvel%d ", i);
|
||||
for (int j=0; j<m->nv; j++) {
|
||||
@@ -665,6 +665,24 @@ void mj_printFormattedModel(const mjModel* m, const char* filename, const char*
|
||||
fprintf(fp, "\n");
|
||||
}
|
||||
|
||||
// check ctrl for nonzero
|
||||
for (int j=0; j<m->nu; j++) {
|
||||
if (m->key_ctrl[i*m->nu + j]) {
|
||||
k = 6;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
// print if nonzero
|
||||
if (k==6) {
|
||||
fprintf(fp, "key_ctrl%d ", i);
|
||||
for (int j=0; j<m->nu; j++) {
|
||||
fprintf(fp, float_format, m->key_ctrl[i*m->nu + j]);
|
||||
}
|
||||
fprintf(fp, "\n");
|
||||
}
|
||||
|
||||
|
||||
// new line if any data was written
|
||||
if (k) {
|
||||
fprintf(fp, "\n");
|
||||
|
||||
Reference in New Issue
Block a user