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, [tolerance=0]) Checks if the two quaternions perform the same rotation. Optionally, a tolerance value greater than zero can be passed. multiply(Rotation) Multiply this quaternion with another quaternion multVec(Vector) -> Vector Compute the transformed vector using the rotation slerp(Rotation, Float) -> Rotation Spherical linear interpolation of this and a given rotation. The float must be in the range of 0 and 1 toEuler(Vector) -> list Get the Euler angles of this rotation as yaw-pitch-roll in XY'Z'' convention toMatrix() convert the rotation to a matrix representation 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 axis without normalization The rotation angle of the quaternion public: RotationPy(const Rotation & mat, PyTypeObject *T = &Type) :PyObjectBase(new Rotation(mat),T){} Rotation value() const { return *(getRotationPtr()); }