23 #ifndef __QUATERNION_H__
24 #define __QUATERNION_H__
26 #include "MatrixAlg.h"
33 typedef struct Quaternion Quaternion;
Quaternion Quaternion_fromAxisAngle(struct Vector axis, float angle)
Creates quaternion from axis angle.
void Quaternion_toAxisAngle(Quaternion quaternion, struct Vector *axis, float *angle)
Converts quaternion to axis angle.
Quaternion Quaternion_identity()
Returns identity quaternion.
Contains all classes and functions for the VoxelFarm engine.
Quaternion Quaternion_slerp(Quaternion start, Quaternion end, float alpha)
Interpolates between two quaternions.
Quaternion Quaternion_withValues(float x, float y, float z, float w)
Initializes quaternion.
void Quaternion_rotate(Quaternion *quaternion, struct Vector axis, float angle)
Rotates quaternion.
Quaternion Quaternion_inverted(Quaternion quaternion)
Returns inverted quaternion.
void Quaternion_loadIdentity(Quaternion *quaternion)
Load identity quaternion.
struct Vector Quaternion_toVector(Quaternion quaternion)
Returns vector from quaternion.
A Matrix for 3D operations.
struct Matrix Quaternion_toMatrix(Quaternion quaternion)
Converts quaternion to Matrix.
Quaternion Quaternion_multiplied(Quaternion quaternion1, Quaternion quaternion2)
Returns mutiplication of quaternion.
Quaternion Quaternion_normalized(Quaternion quaternion)
Returns normalized quaternion.
void Quaternion_invert(Quaternion *quaternion)
Inverts quaternion.
Quaternion Quaternion_rotated(Quaternion quaternion, struct Vector axis, float angle)
Returns rotated quaternion.
void Quaternion_multiply(Quaternion *quaternion1, Quaternion quaternion2)
Multiplies quaternion.
struct Vector Quaternion_multiplyVector(Quaternion quaternion, struct Vector vector)
Returns quaternion to vector multiplication.
void Quaternion_normalize(Quaternion *quaternion)
Normalizes quaternion.
Quaternion Quaternion_fromVector(struct Vector vector)
Initializes quaternion from a vector.