220#if MOCHI_LANGUAGE_CPP20
CoordinateSpaceAxes
Combination of axis directions for a coordinate space convention.
#define MOCHI_STRUCT_END()
#define MOCHI_ENUM_BEGIN(name)
#define MOCHI_FIELD(name)
#define MOCHI_STRUCT_BEGIN(name)
#define MOCHI_ATTRIBUTE(...)
#define MOCHI_ENUM_ITEM(name)
Coordinate-axis convention and linear unit scale.
static CoordinateSpace Unreal()
Return the coordinate space convention for Unreal Engine.
static CoordinateSpace Filament()
Return the coordinate space convention for Filament.
Real3 GetForward() const
Return the unit vector pointing forward, in this space's own coordinates.
constexpr bool operator!=(CoordinateSpace const &rhs) const =default
constexpr CoordinateSpace(CoordinateSpaceAxes inAxes, double inUnitsPerMeter)
static CoordinateSpace OpenGL()
Return the coordinate space convention for OpenGL.
static CoordinateSpace ROS()
Return the coordinate space convention for ROS.
static CoordinateSpace Default()
Return the default coordinate space convention for Mochi.
static CoordinateSpace Unity()
Return the coordinate space convention for Unity.
Real3 GetRight() const
Return the unit vector pointing right, in this space's own coordinates.
void Validate(Error &error) const
Validate that axes is a complete convention and unitsPerMeter is finite and positive.
constexpr CoordinateSpace()=default
constexpr bool operator==(CoordinateSpace const &rhs) const =default
Real3 GetUp() const
Return the unit vector pointing up, in this space's own coordinates.