Castor3D 0.16.0
Multiplatform 3D engine
Classes | Namespaces | Concepts
MathModule.hpp File Reference

Classes

struct  castor::PointTyperT< SrcT, DstCompT >
 
struct  castor::PointTyperT< Point< SrcCompT, CountT >, DstCompT >
 
struct  castor::PointTyperT< LengthT< SrcT >, DstCompT >
 
struct  castor::PointComponentGetT< TypeT >
 
struct  castor::PointComponentGetT< Point< TypeT, 2u > >
 
struct  castor::PointComponentGetT< Point< TypeT, 3u > >
 
struct  castor::PointComponentGetT< Point< TypeT, 4u > >
 
struct  castor::PointComponentGetT< LengthT< TypeT > >
 
struct  castor::IsLengthT< TypeT >
 
struct  castor::IsLengthT< LengthT< TypeT > >
 

Namespaces

namespace  castor
 

Concepts

concept  castor::FloatingT
 
concept  castor::Vector2T
 
concept  castor::Vector3T
 
concept  castor::Vector4T
 
concept  castor::Vector2fT
 
concept  castor::Vector3fT
 
concept  castor::Vector4fT
 
concept  castor::Vector2dT
 
concept  castor::Vector3dT
 
concept  castor::Vector4dT
 

Math

enum class  castor::LengthUnit {
  castor::eKilometre = 0 , castor::eMetre = 1 , castor::eCentimetre = 2 , castor::eMillimetre = 3 ,
  castor::eYard = 4 , castor::eFoot = 5 , castor::eInch = 6 , castor::eCount ,
  castor::eMin = eKilometre
}
 
template<typename T >
using castor::Point2 = Point< T, 2 >
 
template<typename T >
using castor::Point3 = Point< T, 3 >
 
template<typename T >
using castor::Point4 = Point< T, 4 >
 
template<typename T >
using castor::Coords2 = Coords< T, 2 >
 
template<typename T >
using castor::Coords3 = Coords< T, 3 >
 
template<typename T >
using castor::Coords4 = Coords< T, 4 >
 
template<typename T >
using castor::Matrix2x2 = SquareMatrix< T, 2 >
 
template<typename T >
using castor::Matrix3x3 = SquareMatrix< T, 3 >
 
template<typename T >
using castor::Matrix4x4 = SquareMatrix< T, 4 >
 
using castor::Length = LengthT< float >
 
using castor::Quaternion = QuaternionT< float >
 
using castor::QuaternionArray = Vector< Quaternion >
 
using castor::Vector2f = LengthT< Point2f >
 
using castor::Vector3f = LengthT< Point3f >
 
using castor::Vector4f = LengthT< Point4f >
 
using castor::Vector2d = LengthT< Point2d >
 
using castor::Vector3d = LengthT< Point3d >
 
using castor::Vector4d = LengthT< Point4d >
 
template<typename SrcT , typename DstCompT >
using castor::PointTypeT = typename PointTyperT< SrcT, DstCompT >::Type
 
template<typename TypeT >
using castor::PointComponentT = typename PointComponentGetT< TypeT >::Type
 
template<typename Type >
static constexpr Type castor::Pi { Type( 3.1415926535897932384626433832795028841968 ) }
 
template<typename Type >
static constexpr Type castor::PiMult2 { Type( 3.1415926535897932384626433832795028841968 * 2.0 ) }
 
template<typename Type >
static constexpr Type castor::Tau { Type( 3.1415926535897932384626433832795028841968 * 2.0 ) }
 
template<typename Type >
static constexpr Type castor::PiDiv2 { Type( 3.1415926535897932384626433832795028841968 / 2.0 ) }
 
template<typename TypeT >
static constexpr bool castor::isLengthV = IsLengthT< TypeT >::value
 
template<typename TypeT >
static constexpr bool castor::isFloatingV
 
template<typename TypeT , typename CoordT , uint32_t CountT>
static constexpr bool castor::isPointV
 
template<typename TypeT , typename CoordT >
static constexpr bool castor::isPoint2V = isPointV< TypeT, CoordT, 2u >
 
template<typename TypeT , typename CoordT >
static constexpr bool castor::isPoint3V = isPointV< TypeT, CoordT, 3u >
 
template<typename TypeT , typename CoordT >
static constexpr bool castor::isPoint4V = isPointV< TypeT, CoordT, 4u >
 
template<typename TypeT >
static constexpr bool castor::isPoint2f = isPoint2V< TypeT, float >
 
template<typename TypeT >
static constexpr bool castor::isPoint3f = isPoint3V< TypeT, float >
 
template<typename TypeT >
static constexpr bool castor::isPoint4f = isPoint4V< TypeT, float >
 
template<typename TypeT >
static constexpr bool castor::isPoint2d = isPoint2V< TypeT, double >
 
template<typename TypeT >
static constexpr bool castor::isPoint3d = isPoint3V< TypeT, double >
 
template<typename TypeT >
static constexpr bool castor::isPoint4d = isPoint4V< TypeT, double >
 
CU_API String castor::getName (LengthUnit value)
 
 castor::CU_DeclarePoint (bool, 4, b)
 
 castor::CU_DeclarePoint (bool, 3, b)
 
 castor::CU_DeclarePoint (bool, 2, b)
 
 castor::CU_DeclarePoint (int8_t, 4, c)
 
 castor::CU_DeclarePoint (int8_t, 3, c)
 
 castor::CU_DeclarePoint (int8_t, 2, c)
 
 castor::CU_DeclarePoint (uint8_t, 4, ub)
 
 castor::CU_DeclarePoint (uint8_t, 3, ub)
 
 castor::CU_DeclarePoint (uint8_t, 2, ub)
 
 castor::CU_DeclarePoint (int16_t, 4, s)
 
 castor::CU_DeclarePoint (int16_t, 3, s)
 
 castor::CU_DeclarePoint (int16_t, 2, s)
 
 castor::CU_DeclarePoint (uint16_t, 4, us)
 
 castor::CU_DeclarePoint (uint16_t, 3, us)
 
 castor::CU_DeclarePoint (uint16_t, 2, us)
 
 castor::CU_DeclarePoint (int32_t, 4, i)
 
 castor::CU_DeclarePoint (int32_t, 3, i)
 
 castor::CU_DeclarePoint (int32_t, 2, i)
 
 castor::CU_DeclarePoint (uint32_t, 4, ui)
 
 castor::CU_DeclarePoint (uint32_t, 3, ui)
 
 castor::CU_DeclarePoint (uint32_t, 2, ui)
 
 castor::CU_DeclarePoint (float, 4, f)
 
 castor::CU_DeclarePoint (float, 3, f)
 
 castor::CU_DeclarePoint (float, 2, f)
 
 castor::CU_DeclarePoint (double, 4, d)
 
 castor::CU_DeclarePoint (double, 3, d)
 
 castor::CU_DeclarePoint (double, 2, d)
 
 castor::CU_DeclareCoord (bool, 4, b)
 
 castor::CU_DeclareCoord (bool, 3, b)
 
 castor::CU_DeclareCoord (bool, 2, b)
 
 castor::CU_DeclareCoord (int8_t, 4, c)
 
 castor::CU_DeclareCoord (int8_t, 3, c)
 
 castor::CU_DeclareCoord (int8_t, 2, c)
 
 castor::CU_DeclareCoord (uint8_t, 4, ub)
 
 castor::CU_DeclareCoord (uint8_t, 3, ub)
 
 castor::CU_DeclareCoord (uint8_t, 2, ub)
 
 castor::CU_DeclareCoord (int16_t, 4, s)
 
 castor::CU_DeclareCoord (int16_t, 3, s)
 
 castor::CU_DeclareCoord (int16_t, 2, s)
 
 castor::CU_DeclareCoord (uint16_t, 4, us)
 
 castor::CU_DeclareCoord (uint16_t, 3, us)
 
 castor::CU_DeclareCoord (uint16_t, 2, us)
 
 castor::CU_DeclareCoord (int32_t, 4, i)
 
 castor::CU_DeclareCoord (int32_t, 3, i)
 
 castor::CU_DeclareCoord (int32_t, 2, i)
 
 castor::CU_DeclareCoord (uint32_t, 4, ui)
 
 castor::CU_DeclareCoord (uint32_t, 3, ui)
 
 castor::CU_DeclareCoord (uint32_t, 2, ui)
 
 castor::CU_DeclareCoord (float, 4, f)
 
 castor::CU_DeclareCoord (float, 3, f)
 
 castor::CU_DeclareCoord (float, 2, f)
 
 castor::CU_DeclareCoord (double, 4, d)
 
 castor::CU_DeclareCoord (double, 3, d)
 
 castor::CU_DeclareCoord (double, 2, d)
 
 castor::CU_DeclareConstCoord (bool, 4, b)
 
 castor::CU_DeclareConstCoord (bool, 3, b)
 
 castor::CU_DeclareConstCoord (bool, 2, b)
 
 castor::CU_DeclareConstCoord (int8_t, 4, c)
 
 castor::CU_DeclareConstCoord (int8_t, 3, c)
 
 castor::CU_DeclareConstCoord (int8_t, 2, c)
 
 castor::CU_DeclareConstCoord (uint8_t, 4, ub)
 
 castor::CU_DeclareConstCoord (uint8_t, 3, ub)
 
 castor::CU_DeclareConstCoord (uint8_t, 2, ub)
 
 castor::CU_DeclareConstCoord (int16_t, 4, s)
 
 castor::CU_DeclareConstCoord (int16_t, 3, s)
 
 castor::CU_DeclareConstCoord (int16_t, 2, s)
 
 castor::CU_DeclareConstCoord (uint16_t, 4, us)
 
 castor::CU_DeclareConstCoord (uint16_t, 3, us)
 
 castor::CU_DeclareConstCoord (uint16_t, 2, us)
 
 castor::CU_DeclareConstCoord (int32_t, 4, i)
 
 castor::CU_DeclareConstCoord (int32_t, 3, i)
 
 castor::CU_DeclareConstCoord (int32_t, 2, i)
 
 castor::CU_DeclareConstCoord (uint32_t, 4, ui)
 
 castor::CU_DeclareConstCoord (uint32_t, 3, ui)
 
 castor::CU_DeclareConstCoord (uint32_t, 2, ui)
 
 castor::CU_DeclareConstCoord (float, 4, f)
 
 castor::CU_DeclareConstCoord (float, 3, f)
 
 castor::CU_DeclareConstCoord (float, 2, f)
 
 castor::CU_DeclareConstCoord (double, 4, d)
 
 castor::CU_DeclareConstCoord (double, 3, d)
 
 castor::CU_DeclareConstCoord (double, 2, d)
 
 castor::CU_DeclareSqMtx (bool, 4, b)
 
 castor::CU_DeclareSqMtx (bool, 3, b)
 
 castor::CU_DeclareSqMtx (bool, 2, b)
 
 castor::CU_DeclareSqMtx (int32_t, 4, i)
 
 castor::CU_DeclareSqMtx (int32_t, 3, i)
 
 castor::CU_DeclareSqMtx (int32_t, 2, i)
 
 castor::CU_DeclareSqMtx (uint32_t, 4, ui)
 
 castor::CU_DeclareSqMtx (uint32_t, 3, ui)
 
 castor::CU_DeclareSqMtx (uint32_t, 2, ui)
 
 castor::CU_DeclareSqMtx (float, 4, f)
 
 castor::CU_DeclareSqMtx (float, 3, f)
 
 castor::CU_DeclareSqMtx (float, 2, f)
 
 castor::CU_DeclareSqMtx (double, 4, d)
 
 castor::CU_DeclareSqMtx (double, 3, d)
 
 castor::CU_DeclareSqMtx (double, 2, d)
 
 castor::CU_DeclareMtx (bool, 2, 3, b)
 
 castor::CU_DeclareMtx (bool, 2, 4, b)
 
 castor::CU_DeclareMtx (bool, 3, 2, b)
 
 castor::CU_DeclareMtx (bool, 3, 4, b)
 
 castor::CU_DeclareMtx (bool, 4, 2, b)
 
 castor::CU_DeclareMtx (bool, 4, 3, b)
 
 castor::CU_DeclareMtx (int32_t, 2, 3, i)
 
 castor::CU_DeclareMtx (int32_t, 2, 4, i)
 
 castor::CU_DeclareMtx (int32_t, 3, 2, i)
 
 castor::CU_DeclareMtx (int32_t, 3, 4, i)
 
 castor::CU_DeclareMtx (int32_t, 4, 2, i)
 
 castor::CU_DeclareMtx (int32_t, 4, 3, i)
 
 castor::CU_DeclareMtx (uint32_t, 2, 3, ui)
 
 castor::CU_DeclareMtx (uint32_t, 2, 4, ui)
 
 castor::CU_DeclareMtx (uint32_t, 3, 2, ui)
 
 castor::CU_DeclareMtx (uint32_t, 3, 4, ui)
 
 castor::CU_DeclareMtx (uint32_t, 4, 2, ui)
 
 castor::CU_DeclareMtx (uint32_t, 4, 3, ui)
 
 castor::CU_DeclareMtx (float, 2, 3, f)
 
 castor::CU_DeclareMtx (float, 2, 4, f)
 
 castor::CU_DeclareMtx (float, 3, 2, f)
 
 castor::CU_DeclareMtx (float, 3, 4, f)
 
 castor::CU_DeclareMtx (float, 4, 2, f)
 
 castor::CU_DeclareMtx (float, 4, 3, f)
 
 castor::CU_DeclareMtx (double, 2, 3, d)
 
 castor::CU_DeclareMtx (double, 2, 4, d)
 
 castor::CU_DeclareMtx (double, 3, 2, d)
 
 castor::CU_DeclareMtx (double, 3, 4, d)
 
 castor::CU_DeclareMtx (double, 4, 2, d)
 
 castor::CU_DeclareMtx (double, 4, 3, d)
 
CU_API Point3f castor::operator* (Matrix4x4f const &lhs, Point3f const &rhs)
 
CU_API Point3f castor::operator* (Point3f const &lhs, Matrix4x4f const &rhs)
 
CU_API Point4f castor::operator* (Matrix4x4f const &lhs, Point4f const &rhs)
 
CU_API Point4f castor::operator* (Point4f const &lhs, Matrix4x4f const &rhs)