| 187 | |
| 188 | describe('rig frame transformation under Sim3D', () => { |
| 189 | function applyPoseToPoint( |
| 190 | qvec: [number, number, number, number], |
| 191 | tvec: [number, number, number], |
| 192 | p: [number, number, number], |
| 193 | ): [number, number, number] { |
| 194 | const q = new THREE.Quaternion(qvec[1], qvec[2], qvec[3], qvec[0]); |
| 195 | const v = new THREE.Vector3(p[0], p[1], p[2]); |
| 196 | v.applyQuaternion(q); |
| 197 | v.x += tvec[0]; v.y += tvec[1]; v.z += tvec[2]; |
| 198 | return [v.x, v.y, v.z]; |
| 199 | } |
| 200 | |
| 201 | it('rotates rigFromWorld consistently with world transformation', () => { |
| 202 | const { reconstruction } = makeSyntheticRigData(); |