15#include <glm/ext/quaternion_geometric.hpp>
16#include <glm/ext/quaternion_transform.hpp>
17#include <glm/ext/quaternion_trigonometric.hpp>
18#include <glm/gtc/quaternion.hpp>
23 template<
typename T =
double>
using TQuaternion = glm::qua<T, glm::highp>;
35#define IMPORT_FROM_GLM(Symbol) \
36 namespace CeresEngine::inline Math { \
51 using Type = CeresEngine::Math::TQuaternion<T>;
52 constexpr size_t operator()(
const Type& obj)
const {
return CeresEngine::hash(obj[0], obj[1], obj[2], obj[4]); }
55#define REFL_DECLARE_CE_QUATERNION(T)
#define CE_SCRIPT_EXPORT(...)
The CE_SCRIPT_EXPORT macro marks a class or method as exportable and available in scripting environme...
Definition Macros.hpp:247
#define IMPORT_FROM_GLM(Symbol)
Definition Quaternion.hpp:35
#define REFL_DECLARE_CE_QUATERNION(T)
Definition Quaternion.hpp:55
Definition Application.hpp:19
constexpr size_t hash(const T &v)
Generates a hash for the provided type.
Definition Hash.hpp:25
glm::qua< T, glm::highp > TQuaternion
A quaternion type that uses a internal representation of type T
Definition Quaternion.hpp:23
TQuaternion< double > Quaternion
A quaternion type. Data is internally represented as double.
Definition Quaternion.hpp:27
TQuaternion< float > Quaternionf
A quaternion type. Data is internally represented as float.
Definition Quaternion.hpp:31