( sim3d: Sim3d, xyz: [number, number, number] )
| 95 | * Reference: colmap/geometry/sim3.h operator*(Sim3d, Vector3d) |
| 96 | */ |
| 97 | export function transformPoint( |
| 98 | sim3d: Sim3d, |
| 99 | xyz: [number, number, number] |
| 100 | ): [number, number, number] { |
| 101 | const p = new THREE.Vector3(xyz[0], xyz[1], xyz[2]); |
| 102 | p.applyQuaternion(sim3d.rotation); // R * x |
| 103 | p.multiplyScalar(sim3d.scale); // scale * (R * x) |
| 104 | p.add(sim3d.translation); // + t |
| 105 | return [p.x, p.y, p.z]; |
| 106 | } |
| 107 | |
| 108 | /** |
| 109 | * Compute inverse of Sim3d transformation. |
no test coverage detected