OEGeom3DUnitQuaternionRotate¶
template<class T, class U>
void OEGeom3DUnitQuaternionRotate(T *xyz, const U *quat, unsigned int ncoord)
template<class T, class U>
void OEGeom3DUnitQuaternionRotate(T *xyz, const U *quat, unsigned int *idx,
unsigned int ncoord)
Rotates the coordinates of xyz
using the unit-quaternion
given by quat
. The second form only rotates the coordinates
according to the indices given by idx
. When it is known that
the input quaternion is a unit quaternion, this is more
efficient than using OEGeom3DQuaternionRotate
.
- xyz
Array of coordinates to rotate
- quat
unit-quaternion for rotation
- ncoord
Number of coordinate sets to rotate
- idx
Indices of the coordinates to rotate
Warning
Calling this functions when the input quaternion is not a unit quaternion could led to unexpected results.