CeresEngine 0.2.0
A game development framework
Loading...
Searching...
No Matches
Vector.hpp File Reference
#include "Forward.hpp"
#include "CeresEngine/Macros.hpp"
#include "CeresEngine/Foundation/Hash.hpp"
#include <glm/vec2.hpp>
#include <glm/vec3.hpp>
#include <glm/vec4.hpp>

Go to the source code of this file.

Namespaces

namespace  Math
 

Macros

#define CE_EXTERN_VECTOR(D)
 
#define REFL_DECLARE_CE_VECTOR(T)
 

Typedefs

template<glm::length_t D, typename T = double>
using Math::TVector = glm::vec< D, T, glm::highp >
 A D-dimensional vector type that uses a internal representation of type T
 
template<typename T >
using Math::TVector2 = TVector< 2, T >
 A two dimensional vector type that uses a internal representation of type T
 
using Math::Vector2 = TVector2< double >
 A two dimensional vector with (x, y) coordinates.
 
using Math::Vector2f = TVector2< float >
 A two dimensional vector with (x, y) coordinates.
 
using Math::Vector2i = TVector2< int >
 A two dimensional vector with (x, y) coordinates.
 
using Math::Vector2ui = TVector2< unsigned int >
 A two dimensional vector with (x, y) coordinates.
 
using Math::Vector2b = TVector2< bool >
 A two dimensional vector with (x, y) coordinates.
 
using Math::Vec2 = Vector2
 A alias to a Vector2.
 
using Math::Vec2f = Vector2f
 A alias to a Vector2f.
 
template<typename T >
using Math::TVector3 = TVector< 3, T >
 A three dimensional vector type that uses a internal representation of type T
 
using Math::Vector3 = TVector3< double >
 A three dimensional vector with (x, y, z) coordinates.
 
using Math::Vector3f = TVector3< float >
 A three dimensional vector with (x, y, z) coordinates.
 
using Math::Vector3i = TVector3< int >
 A three dimensional vector with (x, y, z) coordinates.
 
using Math::Vector3ui = TVector3< unsigned int >
 A three dimensional vector with (x, y, z) coordinates.
 
using Math::Vector3b = TVector3< bool >
 A three dimensional vector with (x, y, z) coordinates.
 
using Math::Vec3 = Vector3
 A alias to a Vector3.
 
using Math::Vec3f = Vector3f
 A alias to a Vector3f.
 
template<typename T >
using Math::TVector4 = TVector< 4, T >
 A four dimensional vector type that uses a internal representation of type T
 
using Math::Vector4 = TVector4< double >
 A four dimensional vector with (x, y, z, w) coordinates.
 
using Math::Vector4f = TVector4< float >
 A four dimensional vector with (x, y, z, w) coordinates.
 
using Math::Vector4i = TVector4< int >
 A four dimensional vector with (x, y, z, w) coordinates.
 
using Math::Vector4ui = TVector4< unsigned int >
 A four dimensional vector with (x, y, z, w) coordinates.
 
using Math::Vector4b = TVector4< bool >
 A four dimensional vector with (x, y, z, w) coordinates.
 
using Math::Vec4 = Vector4
 A alias to a Vector4.
 
using Math::Vec4f = Vector4f
 A alias to a Vector4f.
 

Functions

template<std::size_t N, glm::length_t D, typename T >
T & Math::get (TVector< D, T > &vector) noexcept
 Decomposes a vector into one of it's components.
 
template<std::size_t N, glm::length_t D, typename T >
const T & Math::get (const TVector< D, T > &vector) noexcept
 Decomposes a vector into one of it's components.
 

Macro Definition Documentation

◆ CE_EXTERN_VECTOR

#define CE_EXTERN_VECTOR (   D)
Value:
extern template struct glm::vec<D, double, glm::highp>; \
extern template struct glm::vec<D, float, glm::highp>; \
extern template struct glm::vec<D, char, glm::highp>; \
extern template struct glm::vec<D, unsigned char, glm::highp>; \
extern template struct glm::vec<D, short, glm::highp>; \
extern template struct glm::vec<D, unsigned short, glm::highp>; \
extern template struct glm::vec<D, int, glm::highp>; \
extern template struct glm::vec<D, unsigned int, glm::highp>; \
extern template struct glm::vec<D, long, glm::highp>; \
extern template struct glm::vec<D, unsigned long, glm::highp>

◆ REFL_DECLARE_CE_VECTOR

#define REFL_DECLARE_CE_VECTOR (   T)
Value:
\
\