Accumulate rotation after updating pos and quat in replicate.
Fixes #2501. PiperOrigin-RevId: 737929158 Change-Id: I0cad2de37190f1d30d427ae646acbde335b5be56
This commit is contained in:
committed by
Copybara-Service
parent
1bf24e9f67
commit
bae5175cf2
@@ -3544,17 +3544,19 @@ void mjXReader::Body(XMLElement* section, mjsBody* body, mjsFrame* frame,
|
||||
|
||||
// update pframe and attach
|
||||
for (int i = 0; i < count; i++) {
|
||||
// accumulate rotation
|
||||
mjuu_setvec(pframe->pos, pos[0], pos[1], pos[2]);
|
||||
mjuu_frameaccum(pos, quat, offset, rotation);
|
||||
|
||||
// overwrite orientation to increase precision
|
||||
alt.euler[0] = i*euler[0];
|
||||
alt.euler[1] = i*euler[1];
|
||||
alt.euler[2] = i*euler[2];
|
||||
mjs_resolveOrientation(quat, spec->compiler.degree, spec->compiler.eulerseq, &alt);
|
||||
|
||||
// set position and orientation
|
||||
mjuu_setvec(pframe->pos, pos[0], pos[1], pos[2]);
|
||||
mjuu_setvec(pframe->quat, quat[0], quat[1], quat[2], quat[3]);
|
||||
|
||||
// accumulate rotation
|
||||
mjuu_frameaccum(pos, quat, offset, rotation);
|
||||
|
||||
// process suffix
|
||||
string suffix = separator;
|
||||
UpdateString(suffix, count, i);
|
||||
|
||||
Reference in New Issue
Block a user