OEGeom3DUnitQuaternionRotate

OEGeom3DUnitQuaternionRotate(xyz: OEFloatArray, quat: OEDoubleArray,
                             ncoord: int) -> None
OEGeom3DUnitQuaternionRotate(xyz: OEDoubleArray, quat: OEDoubleArray,
                             ncoord: int) -> None
OEGeom3DUnitQuaternionRotate(xyz: OEFloatArray, quat: OEDoubleArray,
                             idx: int, ncoord: int) -> None
OEGeom3DUnitQuaternionRotate(xyz: OEDoubleArray, quat: OEDoubleArray,
                             idx: int, ncoord: int) -> None

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.