jaulib v1.3.0
Jau Support Library (C++, Java, ..)
Namespaces | Classes | Typedefs | Enumerations | Functions
jau::math Namespace Reference

Namespaces

namespace  geom
 
namespace  util
 

Classes

class  FovHVHalves
 Horizontal and vertical field of view (FOV) halves, allowing a non-centered projection. More...
 
class  MathDivByZeroError
 math_error_t::div_by_zero, i.e. More...
 
class  MathDomainError
 math_error_t::invalid More...
 
class  MathError
 
class  MathInexactError
 math_error_t::inexact More...
 
class  MathOverflowError
 math_error_t::overflow More...
 
class  MathUnderflowError
 math_error_t::underflow More...
 
class  Matrix4
 Basic 4x4 value_type matrix implementation using fields for intensive use-cases (host operations). More...
 
class  Quaternion
 Quaternion implementation supporting Gimbal-Lock free rotations. More...
 
class  Ray2F
 Simple compound denoting a ray. More...
 
struct  Ray3F
 Simple compound denoting a ray. More...
 
class  RectI
 Rectangle with x, y, width and height integer components. More...
 
class  Vector2F
 2D vector using two value_type components. More...
 
struct  Vector2I
 2D vector using two integer components. More...
 
class  Vector3F
 3D vector using three value_type components. More...
 
class  Vector4F
 4D vector using four value_type components. More...
 

Typedefs

typedef Matrix4< float > Mat4f
 
template<typename T , std::enable_if_t< std::is_floating_point_v< T >, bool > = true>
using Point2F = Vector2F< T >
 Point2F alias of Vector2F. More...
 
typedef Point2F< float > Point2f
 
template<typename T , std::enable_if_t< std::is_floating_point_v< T >, bool > = true>
using Point3F = Vector3F< T >
 Point3F alias of Vector3F. More...
 
typedef Point3F< float > Point3f
 
template<typename T , std::enable_if_t< std::is_floating_point_v< T >, bool > = true>
using Point4F = Vector4F< T >
 Point4F alias of Vector4F. More...
 
typedef Point4F< float > Point4f
 
typedef Quaternion< float > Quat4f
 
typedef Ray2F< float > Ray2f
 
typedef Ray3F< float > Ray3f
 
typedef RectI< int > Recti
 
typedef Vector2F< float > Vec2f
 
typedef Vector2I< int > Vec2i
 
typedef Vector3F< float > Vec3f
 
typedef Vector4F< float > Vec4f
 

Enumerations

enum class  math_error_t {
  math_error_t::invalid , math_error_t::div_by_zero , math_error_t::overflow , math_error_t::underflow ,
  math_error_t::inexact
}
 Error types as specified by C++ Math Error Handling More...
 

Functions

template<typename T , std::enable_if_t< std::numeric_limits< T >::is_integer, bool > = true>
constexpr Vector2I< T > operator* (const float s, const Vector2I< T > &rhs) noexcept
 
template<typename T , std::enable_if_t< std::is_floating_point_v< T >, bool > = true>
constexpr Matrix4< T > operator* (const Matrix4< T > &lhs, const Matrix4< T > &rhs) noexcept
 
template<typename T , std::enable_if_t< std::is_floating_point_v< T >, bool > = true>
constexpr Matrix4< T > operator* (const Matrix4< T > &lhs, const T s) noexcept
 
template<typename T , std::enable_if_t< std::is_floating_point_v< T >, bool > = true>
constexpr Quaternion< T > operator* (const Quaternion< T > &lhs, const Quaternion< T > &rhs) noexcept
 
template<typename T , std::enable_if_t< std::is_floating_point_v< T >, bool > = true>
constexpr Quaternion< T > operator* (const Quaternion< T > &lhs, const T s) noexcept
 
template<typename T , std::enable_if_t< std::is_floating_point_v< T >, bool > = true>
constexpr Matrix4< T > operator* (const T s, const Matrix4< T > &rhs) noexcept
 
template<typename T , std::enable_if_t< std::is_floating_point_v< T >, bool > = true>
constexpr Quaternion< T > operator* (const T s, const Quaternion< T > &rhs) noexcept
 
template<typename T , std::enable_if_t< std::is_floating_point_v< T >, bool > = true>
constexpr Vector2F< T > operator* (const T s, const Vector2F< T > &rhs) noexcept
 
template<typename T , std::enable_if_t< std::is_floating_point_v< T >, bool > = true>
constexpr Vector3F< T > operator* (const T s, const Vector3F< T > &rhs) noexcept
 
template<typename T , std::enable_if_t< std::is_floating_point_v< T >, bool > = true>
constexpr Vector4F< T > operator* (const T s, const Vector4F< T > &rhs) noexcept
 
template<typename T , std::enable_if_t< std::is_floating_point_v< T >, bool > = true>
constexpr Vector2F< T > operator* (const Vector2F< T > &lhs, const T s) noexcept
 
template<typename T , std::enable_if_t< std::numeric_limits< T >::is_integer, bool > = true>
constexpr Vector2I< T > operator* (const Vector2I< T > &lhs, const float s) noexcept
 
template<typename T , std::enable_if_t< std::is_floating_point_v< T >, bool > = true>
constexpr Vector3F< T > operator* (const Vector3F< T > &lhs, const T s) noexcept
 
template<typename T , std::enable_if_t< std::is_floating_point_v< T >, bool > = true>
constexpr Vector4F< T > operator* (const Vector4F< T > &lhs, const T s) noexcept
 
template<typename T , std::enable_if_t< std::is_floating_point_v< T >, bool > = true>
constexpr Quaternion< T > operator+ (const Quaternion< T > &lhs, const Quaternion< T > &rhs) noexcept
 
template<typename T , std::enable_if_t< std::is_floating_point_v< T >, bool > = true>
constexpr Vector2F< T > operator+ (const Vector2F< T > &lhs, const Vector2F< T > &rhs) noexcept
 
template<typename T , std::enable_if_t< std::numeric_limits< T >::is_integer, bool > = true>
constexpr Vector2I< T > operator+ (const Vector2I< T > &lhs, const Vector2I< T > &rhs) noexcept
 
template<typename T , std::enable_if_t< std::is_floating_point_v< T >, bool > = true>
constexpr Vector3F< T > operator+ (const Vector3F< T > &lhs, const Vector3F< T > &rhs) noexcept
 
template<typename T , std::enable_if_t< std::is_floating_point_v< T >, bool > = true>
constexpr Vector4F< T > operator+ (const Vector4F< T > &lhs, const Vector4F< T > &rhs) noexcept
 
template<typename T , std::enable_if_t< std::is_floating_point_v< T >, bool > = true>
constexpr Quaternion< T > operator- (const Quaternion< T > &lhs, const Quaternion< T > &rhs) noexcept
 
template<typename T , std::enable_if_t< std::is_floating_point_v< T >, bool > = true>
constexpr Vector2F< T > operator- (const Vector2F< T > &lhs, const Vector2F< T > &rhs) noexcept
 
template<typename T , std::enable_if_t< std::numeric_limits< T >::is_integer, bool > = true>
constexpr Vector2I< T > operator- (const Vector2I< T > &lhs, const Vector2I< T > &rhs) noexcept
 
template<typename T , std::enable_if_t< std::is_floating_point_v< T >, bool > = true>
constexpr Vector3F< T > operator- (const Vector3F< T > &lhs, const Vector3F< T > &rhs) noexcept
 
template<typename T , std::enable_if_t< std::is_floating_point_v< T >, bool > = true>
constexpr Vector4F< T > operator- (const Vector4F< T > &lhs, const Vector4F< T > &rhs) noexcept
 
template<typename T , std::enable_if_t< std::is_floating_point_v< T >, bool > = true>
constexpr Vector2F< T > operator/ (const Vector2F< T > &lhs, const T s) noexcept
 
template<typename T , std::enable_if_t< std::numeric_limits< T >::is_integer, bool > = true>
constexpr Vector2I< T > operator/ (const Vector2I< T > &lhs, const float s) noexcept
 
template<typename T , std::enable_if_t< std::is_floating_point_v< T >, bool > = true>
constexpr Vector3F< T > operator/ (const Vector3F< T > &lhs, const T s) noexcept
 
template<typename T , std::enable_if_t< std::is_floating_point_v< T >, bool > = true>
constexpr Vector4F< T > operator/ (const Vector4F< T > &lhs, const T s) noexcept
 
template<typename T , std::enable_if_t< std::is_floating_point_v< T >, bool > = true>
std::ostream & operator<< (std::ostream &out, const Matrix4< T > &v) noexcept
 
template<typename T , std::enable_if_t< std::is_floating_point_v< T >, bool > = true>
std::ostream & operator<< (std::ostream &out, const Quaternion< T > &v) noexcept
 
template<typename T , std::enable_if_t< std::is_floating_point_v< T >, bool > = true>
std::ostream & operator<< (std::ostream &out, const Ray2F< T > &v) noexcept
 
template<typename T , std::enable_if_t< std::is_floating_point_v< T >, bool > = true>
std::ostream & operator<< (std::ostream &out, const Ray3F< T > &v) noexcept
 
template<typename T , std::enable_if_t< std::numeric_limits< T >::is_integer, bool > = true>
std::ostream & operator<< (std::ostream &out, const RectI< T > &v) noexcept
 
template<typename T , std::enable_if_t< std::is_floating_point_v< T >, bool > = true>
std::ostream & operator<< (std::ostream &out, const Vector2F< T > &v) noexcept
 
template<typename T , std::enable_if_t< std::numeric_limits< T >::is_integer, bool > = true>
std::ostream & operator<< (std::ostream &out, const Vector2I< T > &v) noexcept
 
template<typename T , std::enable_if_t< std::is_floating_point_v< T >, bool > = true>
std::ostream & operator<< (std::ostream &out, const Vector3F< T > &v) noexcept
 
template<typename T , std::enable_if_t< std::is_floating_point_v< T >, bool > = true>
std::ostream & operator<< (std::ostream &out, const Vector4F< T > &v) noexcept
 
std::string to_string (const math_error_t v) noexcept
 Returns std::string representation of math_error_t. More...
 
template<typename T , std::enable_if_t< std::is_floating_point_v< T >, bool > = true>
constexpr Vector3F< T > to_vec3 (const Vector4F< T > &v) noexcept
 out = { this.x, this.y, this.z } dropping w, returns out. More...