@plurid/plurid-engine
Version:
Plurid Engine and Utility Functions
79 lines (78 loc) • 1.9 kB
TypeScript
/**
* Converts degrees to radians.
*
* @param deg
* @returns radians
*/
export declare const degToRad: (deg: number) => number;
/**
* Converts radians to degrees.
*
* @param deg
* @returns degrees
*/
export declare const radToDeg: (rad: number) => number;
export interface Quaternion {
x: number;
y: number;
z: number;
w: number;
}
/**
*
* @param x
* @param y
* @param z
* @param w
* @returns {Quaternion}
*/
export declare const makeQuaternion: (x: number, y: number, z: number, w: number) => Quaternion;
/**
* Returns all-fields 0-ed quaternion.
*
* @returns {Quaternion}
*/
export declare const zeroQuaternion: () => Quaternion;
/**
*
* @param quaternion
*/
export declare function inverseQuaternion(quaternion: Quaternion): Quaternion;
/**
*
* @param quaternion
*/
export declare function conjugateQuaternion(quaternion: Quaternion): Quaternion;
/**
* Generates quaternion based on Euler angles (in radians).
*
* @param alpha around Z axis
* @param beta around X axis
* @param gamma around Y axis
* @returns {Quaternion}
*/
export declare function computeQuaternionFromEulers(alpha: number, beta: number, gamma: number, radians?: boolean): Quaternion;
/**
*
* @param x
* @param y
* @param z
* @param angle
*/
export declare function quaternionFromAxisAngle(x: number, y: number, z: number, angle: number): Quaternion;
/**
*
* @param quaternionArray
*/
export declare function quaternionMultiply(quaternionArray: Quaternion[]): Quaternion;
/**
*
* @param pointRotate
* @param quaternion
*/
export declare function rotatePointViaQuaternion(pointRotate: [number, number, number], quaternion: Quaternion): Quaternion;
/**
*
* @param quaternion
*/
export declare function makeRotationMatrixFromQuaternion(quaternion: Quaternion): number[];