This is the Rotation export class A Rotation using a quaternion. The Rotation object can be created by: -- an empty parameter list -- a Rotation object -- a Vector (axis) and a float (angle) -- two Vectors (rotation from/to vector) -- three floats (Euler angles) as yaw-pitch-roll in XY'Z'' convention -- four floats (Quaternion) where the quaternion is specified as: q=xi+yj+zk+w, i.e. the last parameter is the real part -- three vectors that define rotated axes directions + an optional 3-characher string of capital letters 'X', 'Y', 'Z' that sets the order of importance of the axes (e.g., 'ZXY' means z direction is followed strictly, x is used but corrected if necessary, y is ignored). invert() -> None Sets the rotation to its inverse inverted() -> Rotation Returns the inverse of the rotation isSame(Rotation) Checks if the two quaternions perform the same rotation multiply(Rotation) Multiply this quaternion with another quaternion multVec(Vector) -> Vector Compute the transformed vector using the rotation toEuler(Vector) -> list Get the Euler angles of this rotation as yaw-pitch-roll in XY'Z'' convention isNull() -> Bool returns True if all Q values are zero isIdentity() -> Bool returns True if the rotation equals the unity matrix The rotation elements (as quaternion) The rotation axis of the quaternion The rotation angle of the quaternion public: RotationPy(const Rotation & mat, PyTypeObject *T = &Type) :PyObjectBase(new Rotation(mat),T){} Rotation value() const { return *(getRotationPtr()); }