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 -- one string and three floats (Euler angles) as euler rotation of a given type. Call toEulerSequence() for supported sequence types. -- 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 setYawPitchRoll(angle1, angle2, angle3) Set the Euler angles of this rotation as yaw-pitch-roll in XY'Z'' convention. NOTE: The angles are in degree getYawPitchRoll() -> list Get the Euler angles of this rotation as yaw-pitch-roll in XY'Z'' convention NOTE: The angles are in degree setEulerAngles(seq, angle1, angle2, angle3) Set the Euler angles in a given sequence for this rotation. 'seq' is the Euler sequence name. You get all possible values with toEulerAngles() toEulerAngles(seq='') -> list Get the Euler angles in a given sequence for this rotation. Call this function without arguments to output all possible values of 'seq'. 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()); }