31 lines
838 B
C
31 lines
838 B
C
#pragma once
|
|
|
|
#ifndef QUATERNION_H
|
|
#define QUATERNION_H
|
|
|
|
#include "vector.h"
|
|
#include <stdbool.h>
|
|
|
|
typedef struct
|
|
{
|
|
float x, y, z, w;
|
|
} Quaternion;
|
|
|
|
Quaternion QuatNormalize(const Quaternion* q, const float gain);
|
|
Quaternion QuatConjugate(const Quaternion* q);
|
|
Quaternion QuatInvert(const Quaternion* q);
|
|
Quaternion QuatNegate(const Quaternion* q);
|
|
|
|
Quaternion QuatSum(const Quaternion* q1, const Quaternion* q2);
|
|
Quaternion QuatDiff(const Quaternion* q1, const Quaternion* q2);
|
|
Quaternion QuatConstProd(const Quaternion* q, const float value);
|
|
Quaternion QuatProd(const Quaternion* q1, const Quaternion* q2);
|
|
|
|
Vector3 QuatRotateAroundZ(const Vector3* vec, bool CCW);
|
|
Quaternion QuatCreateRollPitchYaw(const Vector3* RollPitchYawRad);
|
|
Quaternion QuatGetError(const Quaternion* current, const Quaternion* target, bool fastWay);
|
|
|
|
|
|
#endif
|
|
|