tp/include/dolphin/mtx/quat.h

35 lines
711 B
C

#ifndef QUAT_H
#define QUAT_H
#include "dolphin/mtx/vec.h"
#ifdef __cplusplus
extern "C" {
#endif
typedef struct Quaternion {
f32 x, y, z, w;
} Quaternion;
typedef f32 PSQuaternion[4];
void PSQUATMultiply(const Quaternion* a, const Quaternion* b, Quaternion* ab);
void C_QUATRotAxisRad(Quaternion* q, const Vec* axis, f32 rad);
void C_QUATSlerp(const Quaternion* p, const Quaternion* q, Quaternion* r, f32 t);
/* When compiling in debug mode, use C implementations */
#ifdef DEBUG
// TODO: Add debug rom C implementations
/* #define QUATMultiply C_QUATMultiply */
#define QUATMultiply PSQUATMultiply
#else
#define QUATMultiply PSQUATMultiply
#endif
#ifdef __cplusplus
};
#endif
#endif /* QUAT_H */