|
template<typename T, std::enable_if_t< std::is_floating_point_v< T >, bool > = true> |
constexpr Vector2F< T > | jau::math::abs (const Vector2F< T > &lhs) noexcept |
|
template<typename T, std::enable_if_t< std::is_floating_point_v< T >, bool > = true> |
constexpr Vector2I< T > | jau::math::abs (const Vector2I< T > &lhs) noexcept |
|
template<typename T, std::enable_if_t< std::is_floating_point_v< T >, bool > = true> |
constexpr Vector3F< T > | jau::math::abs (const Vector3F< T > &lhs) noexcept |
|
template<typename T, std::enable_if_t< std::is_floating_point_v< T >, bool > = true> |
constexpr Vector4F< T > | jau::math::abs (const Vector4F< T > &lhs) noexcept |
|
constexpr double | jau::math::geom::area2D (const Vec3fList &vertices) noexcept |
| Computes the area of a list of vertices via shoelace formula.
|
|
constexpr Winding | jau::math::geom::get2DWinding (const Vec3f &a, const Vec3f &b, const Vec3f &c) noexcept |
| Compute the winding of the 3 given points.
|
|
constexpr Winding | jau::math::geom::getArea2DWinding (const Vec3fList &vertices) noexcept |
| Compute the winding using the area2D() function over all vertices for complex shapes.
|
|
constexpr jau::math::Vec3f | jau::math::util::getEulerAngleOrientation (const jau::math::Vec3f &eulerRotation) noexcept |
| Returns an orientation vector for given eurler X/Y/Z angles in radians.
|
|
constexpr float | jau::math::util::getOrthoWinZ (float orthoZ, float zNear, float zFar) noexcept |
| Returns orthogonal distance (1f/zNear-1f/orthoZ) / (1f/zNear-1f/zFar);.
|
|
Quat & | jau::math::Matrix4< Value_type, >::getRotation (Quat &res) const noexcept |
| Returns the rotation [m00 .
|
|
constexpr float | jau::math::util::getZBufferEpsilon (int zBits, float z, float zNear) noexcept |
| Returns resolution of Z buffer of given parameter, see Love Your Z-Buffer.
|
|
constexpr int | jau::math::util::getZBufferValue (int zBits, float z, float zNear, float zFar) noexcept |
| Returns Z buffer value of given parameter, see Love Your Z-Buffer.
|
|
constexpr double | jau::math::geom::inCircle2DVal (const Vec3f &a, const Vec3f &b, const Vec3f &c, const Vec3f &d) noexcept |
|
constexpr bool | jau::math::geom::is2DCCW (const Vec3f &a, const Vec3f &b, const Vec3f &c) noexcept |
| Check if points are in ccw order.
|
|
constexpr bool | jau::math::geom::isInCircle2D (const Vec3f &a, const Vec3f &b, const Vec3f &c, const Vec3f &d) noexcept |
| Check if vertices in triangle circumcircle given d vertex, from paper by Guibas and Stolfi (1985).
|
|
constexpr bool | jau::math::geom::isInTriangle3 (const Vec3f &a, const Vec3f &b, const Vec3f &c, const Vec3f &p1, const Vec3f &p2, const Vec3f &p3) noexcept |
| Check if one of three vertices are in triangle using barycentric coordinates computation.
|
|
| jau::math::geom::plane::JAU_MAKE_BITFIELD_ENUM_STRING (AffineTransformType, identity, translation, uniform_scale, general_scale, quadrant_rotation, general_rotation, general_transform, flip) |
|
| jau::math::geom::JAU_MAKE_ENUM_STRING (orientation_t, COL, CW, CCW) |
|
| jau::math::geom::JAU_MAKE_ENUM_STRING (Winding, CW, CCW) |
|
template<typename T, std::enable_if_t< std::is_floating_point_v< T >, bool > = true> |
constexpr Vector2F< T > | jau::math::max (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 > | jau::math::max (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 > | jau::math::max (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 > | jau::math::max (const Vector4F< T > &lhs, const Vector4F< T > &rhs) noexcept |
|
constexpr Vec3f | jau::math::geom::midpoint (const Vec3f &a, const Vec3f &b) noexcept |
|
template<typename T, std::enable_if_t< std::is_floating_point_v< T >, bool > = true> |
constexpr Vector2F< T > | jau::math::min (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 > | jau::math::min (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 > | jau::math::min (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 > | jau::math::min (const Vector4F< T > &lhs, const Vector4F< T > &rhs) noexcept |
|
template<typename T, std::enable_if_t< std::numeric_limits< T >::is_integer, bool > = true> |
constexpr Vector2I< T > | jau::math::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 > | jau::math::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 > | jau::math::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 > | jau::math::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 > | jau::math::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 > | jau::math::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 > | jau::math::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 > | jau::math::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 > | jau::math::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 > | jau::math::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 > | jau::math::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 > | jau::math::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 > | jau::math::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 > | jau::math::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 > | jau::math::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 > | jau::math::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 > | jau::math::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 > | jau::math::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 > | jau::math::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 > | jau::math::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 > | jau::math::operator- (const Vector2F< T > &lhs) noexcept |
|
template<typename T, std::enable_if_t< std::is_floating_point_v< T >, bool > = true> |
constexpr Vector2F< T > | jau::math::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 > | jau::math::operator- (const Vector2I< T > &lhs) noexcept |
|
template<typename T, std::enable_if_t< std::numeric_limits< T >::is_integer, bool > = true> |
constexpr Vector2I< T > | jau::math::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 > | jau::math::operator- (const Vector3F< T > &lhs) noexcept |
|
template<typename T, std::enable_if_t< std::is_floating_point_v< T >, bool > = true> |
constexpr Vector3F< T > | jau::math::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 > | jau::math::operator- (const Vector4F< T > &lhs) noexcept |
|
template<typename T, std::enable_if_t< std::is_floating_point_v< T >, bool > = true> |
constexpr Vector4F< T > | jau::math::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 > | jau::math::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 Vector2I< T > | jau::math::operator/ (const T s, const Vector2I< T > &rhs) noexcept |
|
template<typename T, std::enable_if_t< std::is_floating_point_v< T >, bool > = true> |
constexpr Vector3F< T > | jau::math::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 > | jau::math::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 > | jau::math::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 > | jau::math::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 > | jau::math::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 > | jau::math::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 & | jau::math::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 & | jau::math::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 & | jau::math::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 & | jau::math::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 & | jau::math::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 & | jau::math::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 & | jau::math::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 & | jau::math::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 & | jau::math::operator<< (std::ostream &out, const Vector4F< T > &v) noexcept |
|
template<typename Value_type, std::enable_if_t< std::is_floating_point_v< Value_type >, bool > = true> |
std::ostream & | jau::math::util::operator<< (std::ostream &out, const PMVMatrix4< Value_type > &v) noexcept |
|
constexpr orientation_t | jau::math::geom::orientation (const Point2f &a, const Point2f &b, const Point2f &c) noexcept |
| Return the orientation of the given point triplet a, b and c using triArea()
|
|
Matrix4 & | jau::math::Matrix4< Value_type, >::setToRotation (const Quat &q) |
| Set this matrix to rotation using the given Quaternion.
|
|
constexpr double | jau::math::geom::sqlend (double x, double y) noexcept |
|
constexpr bool | jau::math::geom::testSeg2SegIntersection2D (const Vec3f &p, const Vec3f &p2, const Vec3f &q, const Vec3f &q2) noexcept |
| 2D line segment intersection test w/o considering collinear-case
|
|
constexpr bool | jau::math::geom::testSeg2SegIntersection2D (Vec2f *result, const Vec2f &p, const Vec2f &p2, const Vec2f &q, const Vec2f &q2, const bool do_collinear=false) noexcept |
| See p + t r = q + u s and its terse C# implementation
|
|
constexpr bool | jau::math::geom::testTri2SegIntersection2D (const Vec3f &a, const Vec3f &b, const Vec3f &c, const Vec3f &d, const Vec3f &e) |
| Check if a segment intersects with a triangle using FloatUtil#EPSILON w/o considering collinear-case.
|
|
std::string | jau::math::to_string (const math_error_t v) noexcept |
| Returns std::string representation of math_error_t.
|
|
template<typename T, std::enable_if_t< std::is_floating_point_v< T >, bool > = true> |
constexpr Vector3F< T > | jau::math::to_vec3 (const Vector4F< T > &v) noexcept |
| out = { this.x, this.y, this.z } dropping w, returns out.
|
|
constexpr double | jau::math::geom::tri_area (const Point2f &a, const Point2f &b, const Point2f &c) |
| Computes oriented double area of a triangle, i.e.
|
|
constexpr double | jau::math::geom::triArea (double ax, double ay, double bx, double by, double cx, double cy) noexcept |
|
constexpr double | jau::math::geom::triArea (float ax, float ay, float bx, float by, float cx, float cy) noexcept |
|
constexpr double | jau::math::geom::triArea2D (const Vec3f &a, const Vec3f &b, const Vec3f &c) noexcept |
| Computes oriented double area of a triangle, i.e.
|
|
Math Support Functionality, e.g.