Mundy: Multibody Nonlocal Dynamics Version of the Day
Loading...
Searching...
No Matches
Mundy geometric primitives

Point, line, sphere, ring, ellipsoid, and related primitive geometry types. More...

Concepts

concept  mundy::ValidAABBType
 Concept to determine if a type is a valid AABB type.
concept  mundy::ValidCircle3DType
 Concept to determine if a type is a valid Circle3D type.
concept  mundy::ValidEllipsoidType
 Concept to check if a type is an Ellipsoid.
concept  mundy::ValidLineType
 Concept to check if a type is a valid Line type.
concept  mundy::ValidLineSegmentType
 Concept to check if a type is a valid LineSegment type.
concept  mundy::ValidOBBType
concept  mundy::ValidPointType
 Concept to check if a type has the necessary properties to be a valid Point type As a predicate to creating a new point type, specialize is_point for the new type.
concept  mundy::ValidRingType
 Concept to check if a type is a valid Ring type.
concept  mundy::ValidSphereType
 Concept to check if a type is a valid Sphere type.
concept  mundy::ValidSpherocylinderType
 Concept to check if a type is a valid Spherocylinder type.
concept  mundy::ValidSpherocylinderSegmentType
 Concept to check if a type is a valid SpherocylinderSegment type.
concept  mundy::FinitePrimitive
 Concept: satisfied by primitives with finite spatial extent (is_finite == true).
concept  mundy::ValidVSegmentType
 Concept to check if a type is a valid VSegment type.

Classes

class  mundy::AABB< Scalar, MinPointType, MaxPointType >
class  mundy::Circle3D< Scalar, PointType, QuaternionType >
class  mundy::Ellipsoid< Scalar, PointType, OrientationType >
class  mundy::Line< Scalar, PointType >
class  mundy::LineSegment< Scalar, StartPointType, EndPointType >
class  mundy::OBB< Scalar, PointType, QuaternionType, HalfExtentsType >
 Oriented Bounding Box: a center, a unit-quaternion orientation, and per-axis half-extents. More...
struct  mundy::is_obb< T >
class  mundy::Ring< Scalar, PointType, QuaternionType >
class  mundy::Sphere< Scalar, PointType >
class  mundy::Spherocylinder< Scalar, PointType, QuaternionType >
class  mundy::SpherocylinderSegment< Scalar, PointType >
struct  mundy::is_finite< T, typename >
 Trait: does a primitive type have finite spatial extent? More...
struct  mundy::is_finite< T, std::void_t< decltype(std::remove_cv_t< T >::is_finite)> >
class  mundy::VSegment< Scalar, PointType >

Typedefs

template<typename Scalar, ValidAccessor< Scalar > Accessor = Array<Scalar, 3>>
using mundy::APoint = AVector3<Scalar, Accessor>
 A point in 3D space.
template<typename Scalar>
using mundy::Point = APoint<Scalar>

Variables

template<typename T>
constexpr bool mundy::is_aabb_v = is_aabb<T>::value
template<typename T>
constexpr bool mundy::is_circle3d_v = is_circle3d<T>::value
template<typename T>
constexpr bool mundy::is_ellipsoid_v = is_ellipsoid<T>::value
template<typename T>
constexpr bool mundy::is_line_v = is_line<T>::value
template<typename T>
constexpr bool mundy::is_line_segment_v = is_line_segment<T>::value
template<typename T>
constexpr bool mundy::is_obb_v = is_obb<T>::value
template<typename T>
constexpr bool mundy::is_point_v = is_point<T>::value
template<typename T>
constexpr bool mundy::is_ring_v = is_ring<T>::value
template<typename T>
constexpr bool mundy::is_sphere_v = is_sphere<T>::value
template<typename T>
constexpr bool mundy::is_spherocylinder_v = is_spherocylinder<T>::value
template<typename T>
constexpr bool mundy::is_spherocylinder_segment_v = is_spherocylinder_segment<T>::value
template<typename T>
constexpr bool mundy::is_finite_v = is_finite<T>::value
template<typename T>
constexpr bool mundy::is_v_segment_v = is_v_segment<T>::value

Type aliases

using mundy::AABB< Scalar, MinPointType, MaxPointType >::value_type = Scalar
 Our scalar type.
using mundy::AABB< Scalar, MinPointType, MaxPointType >::min_point_t = MinPointType
 Our point type for the min corner.
using mundy::AABB< Scalar, MinPointType, MaxPointType >::max_point_t = MaxPointType
 Our point type for the max corner.
static constexpr bool mundy::AABB< Scalar, MinPointType, MaxPointType >::is_finite = true

Type aliases

using mundy::Circle3D< Scalar, PointType, QuaternionType >::value_type = Scalar
 Our scalar type.
using mundy::Circle3D< Scalar, PointType, QuaternionType >::point_t = PointType
 Our point type.
using mundy::Circle3D< Scalar, PointType, QuaternionType >::orientation_t = QuaternionType
 Our orientation type.
static constexpr bool mundy::Circle3D< Scalar, PointType, QuaternionType >::is_finite = true

Type aliases

using mundy::Ellipsoid< Scalar, PointType, OrientationType >::value_type = Scalar
 Our scalar type.
using mundy::Ellipsoid< Scalar, PointType, OrientationType >::point_t = PointType
 Our point type.
using mundy::Ellipsoid< Scalar, PointType, OrientationType >::orientation_t = OrientationType
 Our quaternion type.
static constexpr bool mundy::Ellipsoid< Scalar, PointType, OrientationType >::is_finite = true

Type aliases

using mundy::Line< Scalar, PointType >::value_type = Scalar
 Our scalar type.
using mundy::Line< Scalar, PointType >::point_t = PointType
 Our point type.
using mundy::Line< Scalar, PointType >::vector_t = PointType
 Our vector type.
static constexpr bool mundy::Line< Scalar, PointType >::is_finite = false

Type aliases

using mundy::LineSegment< Scalar, StartPointType, EndPointType >::value_type = Scalar
 Our scalar type.
using mundy::LineSegment< Scalar, StartPointType, EndPointType >::start_point_t = StartPointType
 Our point type for the start point.
using mundy::LineSegment< Scalar, StartPointType, EndPointType >::end_point_t = EndPointType
 Our point type for the end point.
static constexpr bool mundy::LineSegment< Scalar, StartPointType, EndPointType >::is_finite = true

Type aliases

using mundy::OBB< Scalar, PointType, QuaternionType, HalfExtentsType >::value_type = Scalar
using mundy::OBB< Scalar, PointType, QuaternionType, HalfExtentsType >::point_t = PointType
using mundy::OBB< Scalar, PointType, QuaternionType, HalfExtentsType >::orientation_t = QuaternionType
using mundy::OBB< Scalar, PointType, QuaternionType, HalfExtentsType >::half_extents_t = HalfExtentsType
static constexpr bool mundy::OBB< Scalar, PointType, QuaternionType, HalfExtentsType >::is_finite = true

Type aliases

using mundy::Ring< Scalar, PointType, QuaternionType >::value_type = Scalar
 Our scalar type.
using mundy::Ring< Scalar, PointType, QuaternionType >::point_t = PointType
 Our point type.
using mundy::Ring< Scalar, PointType, QuaternionType >::orientation_t = QuaternionType
 Our orientation type.
static constexpr bool mundy::Ring< Scalar, PointType, QuaternionType >::is_finite = true

Type aliases

using mundy::Sphere< Scalar, PointType >::value_type = Scalar
 Our scalar type.
using mundy::Sphere< Scalar, PointType >::point_t = PointType
 Our point type.
static constexpr bool mundy::Sphere< Scalar, PointType >::is_finite = true

Type aliases

using mundy::Spherocylinder< Scalar, PointType, QuaternionType >::value_type = Scalar
 Our scalar type.
using mundy::Spherocylinder< Scalar, PointType, QuaternionType >::point_t = PointType
 Our point type.
using mundy::Spherocylinder< Scalar, PointType, QuaternionType >::orientation_t = QuaternionType
 Our orientation type.
static constexpr bool mundy::Spherocylinder< Scalar, PointType, QuaternionType >::is_finite = true

Type aliases

using mundy::SpherocylinderSegment< Scalar, PointType >::value_type = Scalar
 Our scalar type.
using mundy::SpherocylinderSegment< Scalar, PointType >::point_t = PointType
 Our point type.
static constexpr bool mundy::SpherocylinderSegment< Scalar, PointType >::is_finite = true

Type aliases

using mundy::VSegment< Scalar, PointType >::value_type = Scalar
 Our scalar type.
using mundy::VSegment< Scalar, PointType >::point_t = PointType
 Our point type.
static constexpr bool mundy::VSegment< Scalar, PointType >::is_finite = true

Setters

template<ValidPointType OtherPointType>
constexpr void mundy::Circle3D< Scalar, PointType, QuaternionType >::set_center (const OtherPointType &center)
 Set the center.
constexpr void mundy::Circle3D< Scalar, PointType, QuaternionType >::set_center (const value_type &x, const value_type &y, const value_type &z)
 Set the center.
constexpr void mundy::Circle3D< Scalar, PointType, QuaternionType >::set_orientation (const orientation_t &orientation)
 Set the orientation.
constexpr void mundy::Circle3D< Scalar, PointType, QuaternionType >::set_orientation (const value_type &qw, const value_type &qx, const value_type &qy, const value_type &qz)
 Set the orientation.
constexpr void mundy::Circle3D< Scalar, PointType, QuaternionType >::set_radius (const value_type &radius)
 Set the major radius.

Setters

constexpr void mundy::Ellipsoid< Scalar, PointType, OrientationType >::set_center (const point_t &center)
 Set the center.
constexpr void mundy::Ellipsoid< Scalar, PointType, OrientationType >::set_center (const value_type &x, const value_type &y, const value_type &z)
 Set the center.
constexpr void mundy::Ellipsoid< Scalar, PointType, OrientationType >::set_orientation (const orientation_t &orientation)
 Set the orientation.
constexpr void mundy::Ellipsoid< Scalar, PointType, OrientationType >::set_orientation (const value_type &qw, const value_type &qx, const value_type &qy, const value_type &qz)
 Set the orientation.
constexpr void mundy::Ellipsoid< Scalar, PointType, OrientationType >::set_radii (const point_t &radii)
 Set the radii.
constexpr void mundy::Ellipsoid< Scalar, PointType, OrientationType >::set_radii (const value_type &radius_1, const value_type &radius_2, const value_type &radius_3)
 Set the radii.

Setters

template<ValidPointType OtherPointType>
constexpr void mundy::Line< Scalar, PointType >::set_center (const OtherPointType &center)
 Set the center.
constexpr void mundy::Line< Scalar, PointType >::set_center (const Scalar &x, const Scalar &y, const Scalar &z)
 Set the center.
template<ValidVectorType OtherVectorType>
constexpr void mundy::Line< Scalar, PointType >::set_direction (const OtherVectorType &direction)
 Set the direction.
constexpr void mundy::Line< Scalar, PointType >::set_direction (const Scalar &x, const Scalar &y, const Scalar &z)
 Set the direction.

Friends <3

template<typename, ValidPointType, ValidPointType>
class mundy::LineSegment< Scalar, StartPointType, EndPointType >::LineSegment

Setters

template<typename, ValidPointType, ValidQuaternionType, ValidVector3Type>
class mundy::OBB< Scalar, PointType, QuaternionType, HalfExtentsType >::OBB
template<ValidPointType OtherPointType>
constexpr void mundy::OBB< Scalar, PointType, QuaternionType, HalfExtentsType >::set_center (const OtherPointType &c)
template<ValidQuaternionType OtherQuatType>
constexpr void mundy::OBB< Scalar, PointType, QuaternionType, HalfExtentsType >::set_orientation (const OtherQuatType &q)
template<ValidVector3Type OtherVecType>
constexpr void mundy::OBB< Scalar, PointType, QuaternionType, HalfExtentsType >::set_half_extents (const OtherVecType &he)
constexpr void mundy::OBB< Scalar, PointType, QuaternionType, HalfExtentsType >::set_half_extents (const value_type &hx, const value_type &hy, const value_type &hz)

Setters

template<ValidPointType OtherPointType>
constexpr void mundy::Ring< Scalar, PointType, QuaternionType >::set_center (const OtherPointType &center)
 Set the center.
constexpr void mundy::Ring< Scalar, PointType, QuaternionType >::set_center (const value_type &x, const value_type &y, const value_type &z)
 Set the center.
constexpr void mundy::Ring< Scalar, PointType, QuaternionType >::set_orientation (const orientation_t &orientation)
 Set the orientation.
constexpr void mundy::Ring< Scalar, PointType, QuaternionType >::set_orientation (const value_type &qw, const value_type &qx, const value_type &qy, const value_type &qz)
 Set the orientation.
constexpr void mundy::Ring< Scalar, PointType, QuaternionType >::set_major_radius (const value_type &major_radius)
 Set the major radius.
constexpr void mundy::Ring< Scalar, PointType, QuaternionType >::set_minor_radius (const value_type &minor_radius)
 Set the minor radius.

Setters

template<ValidPointType OtherPointType>
constexpr void mundy::Sphere< Scalar, PointType >::set_center (const OtherPointType &center)
 Set the center.
constexpr void mundy::Sphere< Scalar, PointType >::set_center (const value_type &x, const value_type &y, const value_type &z)
 Set the center.
constexpr void mundy::Sphere< Scalar, PointType >::set_radius (const value_type &radius)
 Set the radius.

Setters

template<ValidPointType OtherPointType>
constexpr void mundy::Spherocylinder< Scalar, PointType, QuaternionType >::set_center (const OtherPointType &center)
 Set the center.
constexpr void mundy::Spherocylinder< Scalar, PointType, QuaternionType >::set_center (const value_type &x, const value_type &y, const value_type &z)
 Set the center.
constexpr void mundy::Spherocylinder< Scalar, PointType, QuaternionType >::set_orientation (const orientation_t &orientation)
 Set the orientation.
constexpr void mundy::Spherocylinder< Scalar, PointType, QuaternionType >::set_orientation (const value_type &qw, const value_type &qx, const value_type &qy, const value_type &qz)
 Set the orientation.
constexpr void mundy::Spherocylinder< Scalar, PointType, QuaternionType >::set_radius (const value_type &radius)
 Set the radius.
constexpr void mundy::Spherocylinder< Scalar, PointType, QuaternionType >::set_length (const value_type &length)
 Set the length.

Setters

template<ValidPointType OtherPointType>
constexpr void mundy::SpherocylinderSegment< Scalar, PointType >::set_start (const OtherPointType &start)
 Set the start point.
constexpr void mundy::SpherocylinderSegment< Scalar, PointType >::set_start (const Scalar &x, const Scalar &y, const Scalar &z)
 Set the start point.
template<ValidPointType OtherPointType>
constexpr void mundy::SpherocylinderSegment< Scalar, PointType >::set_end (const OtherPointType &end)
 Set the end point.
constexpr void mundy::SpherocylinderSegment< Scalar, PointType >::set_end (const Scalar &x, const Scalar &y, const Scalar &z)
 Set the end point.
constexpr void mundy::SpherocylinderSegment< Scalar, PointType >::set_radius (const value_type &radius)
 Set the radius.

Setters

template<ValidPointType OtherPointType>
constexpr void mundy::VSegment< Scalar, PointType >::set_start (const OtherPointType &start)
 Set the start point.
constexpr void mundy::VSegment< Scalar, PointType >::set_start (const Scalar &x, const Scalar &y, const Scalar &z)
 Set the start point.
template<ValidPointType OtherPointType>
constexpr void mundy::VSegment< Scalar, PointType >::set_middle (const OtherPointType &middle)
 Set the middle point.
constexpr void mundy::VSegment< Scalar, PointType >::set_middle (const Scalar &x, const Scalar &y, const Scalar &z)
 Set the middle point.
template<ValidPointType OtherPointType>
constexpr void mundy::VSegment< Scalar, PointType >::set_end (const OtherPointType &end)
 Set the end point.
constexpr void mundy::VSegment< Scalar, PointType >::set_end (const Scalar &x, const Scalar &y, const Scalar &z)
 Set the end point.

Friends <3

template<typename, ValidPointType, ValidPointType>
class mundy::AABB< Scalar, MinPointType, MaxPointType >::AABB

Constructors and destructor

constexpr mundy::AABB< Scalar, MinPointType, MaxPointType >::AABB ()
 Default constructor (enabled when both points are default constructible). Initializes the aabb inside-out so nothing can be inside this aabb.
constexpr mundy::AABB< Scalar, MinPointType, MaxPointType >::AABB (const min_point_t &min_corner, const max_point_t &max_corner)
 Constructor to directly set the min and max corners.
template<ValidPointType OtherPointType1, ValidPointType OtherPointType2>
constexpr mundy::AABB< Scalar, MinPointType, MaxPointType >::AABB (const OtherPointType1 &min_corner, const OtherPointType2 &max_corner)
 Constructor to directly set the min and max corners.
constexpr mundy::AABB< Scalar, MinPointType, MaxPointType >::AABB (value_type x_min, value_type y_min, value_type z_min, value_type x_max, value_type y_max, value_type z_max)
 Constructor to directly set the min and max corners.
constexpr mundy::AABB< Scalar, MinPointType, MaxPointType >::~AABB ()=default
 Destructor.
constexpr mundy::AABB< Scalar, MinPointType, MaxPointType >::AABB (const AABB< value_type, min_point_t, max_point_t > &other)
 Deep copy constructor.
template<typename OtherAABBType>
constexpr mundy::AABB< Scalar, MinPointType, MaxPointType >::AABB (const OtherAABBType &other)
 Deep copy constructor.
constexpr mundy::AABB< Scalar, MinPointType, MaxPointType >::AABB (AABB< value_type, min_point_t, max_point_t > &&other)
 Deep move constructor.
template<typename OtherAABBType>
constexpr mundy::AABB< Scalar, MinPointType, MaxPointType >::AABB (OtherAABBType &&other)
 Deep move constructor.

Operators

constexpr AABB< value_type, min_point_t, max_point_t > & mundy::AABB< Scalar, MinPointType, MaxPointType >::operator= (const AABB< value_type, min_point_t, max_point_t > &other)
 Copy assignment operator.
template<typename OtherAABBType>
constexpr AABB< value_type, min_point_t, max_point_t > & mundy::AABB< Scalar, MinPointType, MaxPointType >::operator= (const OtherAABBType &other)
 Copy assignment operator.
constexpr AABB< value_type, min_point_t, max_point_t > & mundy::AABB< Scalar, MinPointType, MaxPointType >::operator= (AABB< value_type, min_point_t, max_point_t > &&other)
 Move assignment operator.
template<typename OtherAABBType>
constexpr AABB< value_type, min_point_t, max_point_t > & mundy::AABB< Scalar, MinPointType, MaxPointType >::operator= (OtherAABBType &&other)
 Move assignment operator.

Accessors

constexpr const value_typemundy::AABB< Scalar, MinPointType, MaxPointType >::operator[] (const size_t &i) const
 Accesses the AABB as though it were an array of size 6 with the min then max corners.
constexpr value_typemundy::AABB< Scalar, MinPointType, MaxPointType >::operator[] (const size_t &i)
 Accesses the AABB as though it were an array of size 6 with the min then max corners.
constexpr const min_point_tmundy::AABB< Scalar, MinPointType, MaxPointType >::min_corner () const
constexpr min_point_tmundy::AABB< Scalar, MinPointType, MaxPointType >::min_corner ()
constexpr const max_point_tmundy::AABB< Scalar, MinPointType, MaxPointType >::max_corner () const
constexpr max_point_tmundy::AABB< Scalar, MinPointType, MaxPointType >::max_corner ()
constexpr const value_typemundy::AABB< Scalar, MinPointType, MaxPointType >::x_min () const
constexpr value_typemundy::AABB< Scalar, MinPointType, MaxPointType >::x_min ()
constexpr const value_typemundy::AABB< Scalar, MinPointType, MaxPointType >::y_min () const
constexpr value_typemundy::AABB< Scalar, MinPointType, MaxPointType >::y_min ()
constexpr const value_typemundy::AABB< Scalar, MinPointType, MaxPointType >::z_min () const
constexpr value_typemundy::AABB< Scalar, MinPointType, MaxPointType >::z_min ()
constexpr const value_typemundy::AABB< Scalar, MinPointType, MaxPointType >::x_max () const
constexpr value_typemundy::AABB< Scalar, MinPointType, MaxPointType >::x_max ()
constexpr const value_typemundy::AABB< Scalar, MinPointType, MaxPointType >::y_max () const
constexpr value_typemundy::AABB< Scalar, MinPointType, MaxPointType >::y_max ()
constexpr const value_typemundy::AABB< Scalar, MinPointType, MaxPointType >::z_max () const
constexpr value_typemundy::AABB< Scalar, MinPointType, MaxPointType >::z_max ()

Casting

template<typename U>
constexpr auto mundy::AABB< Scalar, MinPointType, MaxPointType >::cast () const
 Cast (and copy) the AABB to a different scalar type.

Setters

template<ValidPointType OtherPointType>
constexpr void mundy::AABB< Scalar, MinPointType, MaxPointType >::set_min_corner (const OtherPointType &min_corner)
 Set the minimum corner.
constexpr void mundy::AABB< Scalar, MinPointType, MaxPointType >::set_min_corner (const value_type &x, const value_type &y, const value_type &z)
 Set the minimum corner.
template<ValidPointType OtherPointType>
constexpr void mundy::AABB< Scalar, MinPointType, MaxPointType >::set_max_corner (const OtherPointType &max_corner)
 Set the maximum corner.
constexpr void mundy::AABB< Scalar, MinPointType, MaxPointType >::set_max_corner (const value_type &x, const value_type &y, const value_type &z)
 Set the maximum corner.

Non-member functions for ValidAABBType objects

template<ValidAABBType T1, ValidAABBType T2>
constexpr bool mundy::is_close (const T1 &a1, const T2 &a2, typename T1::value_type tol=get_comparison_tolerance< typename T1::value_type, typename T2::value_type >())
 Element-wise approximate equality (within a tolerance).
template<ValidAABBType T1, ValidAABBType T2>
constexpr bool mundy::is_approx_close (const T1 &a1, const T2 &a2, typename T1::value_type tol=get_relaxed_comparison_tolerance< typename T1::value_type, typename T2::value_type >())
 Element-wise approximate equality (within a relaxed tolerance).
template<ValidAABBType AABBType>
std::ostream & mundy::operator<< (std::ostream &os, const AABBType &aabb)
template<ValidAABBType AABBType1, ValidAABBType AABBType2>
constexpr bool mundy::intersects (const AABBType1 &aabb1, const AABBType2 &aabb2)
 Check if two AABBs intersect.

Point visitation

template<ValidAABBType T, typename Functor>
void mundy::for_each_point (const T &aabb, Functor &&f)
 Visit each geometric point of an AABB (min_corner, max_corner).
template<ValidAABBType T, typename Functor>
void mundy::for_each_point_mutable (T &aabb, Functor &&f)
 Visit and mutate each geometric point of an AABB.
template<ValidPointType PointT, typename Functor>
void mundy::for_each_point (const PointT &pt, Functor &&f)
 Visit each geometric point of a Point (the point itself).
template<ValidPointType PointT, typename Functor>
void mundy::for_each_point_mutable (PointT &pt, Functor &&f)
 Visit and mutate each geometric point of a Point.

Constructors and destructor

constexpr mundy::Circle3D< Scalar, PointType, QuaternionType >::Circle3D ()
 Default constructor. Initializes as invalid.
constexpr mundy::Circle3D< Scalar, PointType, QuaternionType >::Circle3D (const point_t &center, const orientation_t &orientation, const value_type &radius)
 Constructor to initialize the circle3d.
template<ValidPointType OtherPointType, ValidQuaternionType OtherQuaternionType>
constexpr mundy::Circle3D< Scalar, PointType, QuaternionType >::Circle3D (const OtherPointType &center, const OtherQuaternionType &orientation, const value_type &radius)
 Constructor to initialize the circle3d.
 mundy::Circle3D< Scalar, PointType, QuaternionType >::~Circle3D ()=default
 Destructor.
constexpr mundy::Circle3D< Scalar, PointType, QuaternionType >::Circle3D (const Circle3D< value_type, point_t, orientation_t > &other)
 Deep copy constructor.
template<typename OtherCircle3DType>
constexpr mundy::Circle3D< Scalar, PointType, QuaternionType >::Circle3D (const OtherCircle3DType &other)
 Deep copy constructor with different circle3d type.
constexpr mundy::Circle3D< Scalar, PointType, QuaternionType >::Circle3D (Circle3D< value_type, point_t, orientation_t > &&other)
 Deep move constructor.
template<typename OtherCircle3DType>
constexpr mundy::Circle3D< Scalar, PointType, QuaternionType >::Circle3D (OtherCircle3DType &&other)
 Deep move constructor.

Operators

constexpr Circle3D< value_type, point_t, orientation_t > & mundy::Circle3D< Scalar, PointType, QuaternionType >::operator= (const Circle3D< value_type, point_t, orientation_t > &other)
 Copy assignment operator.
template<typename OtherCircle3DType>
constexpr Circle3D< value_type, point_t, orientation_t > & mundy::Circle3D< Scalar, PointType, QuaternionType >::operator= (const OtherCircle3DType &other)
 Copy assignment operator.
constexpr Circle3D< value_type, point_t, orientation_t > & mundy::Circle3D< Scalar, PointType, QuaternionType >::operator= (Circle3D< value_type, point_t, orientation_t > &&other)
 Move assignment operator.
template<typename OtherCircle3DType>
constexpr Circle3D< value_type, point_t, orientation_t > & mundy::Circle3D< Scalar, PointType, QuaternionType >::operator= (OtherCircle3DType &&other)
 Move assignment operator.

Accessors

constexpr const point_tmundy::Circle3D< Scalar, PointType, QuaternionType >::center () const
constexpr point_tmundy::Circle3D< Scalar, PointType, QuaternionType >::center ()
constexpr const orientation_tmundy::Circle3D< Scalar, PointType, QuaternionType >::orientation () const
constexpr orientation_tmundy::Circle3D< Scalar, PointType, QuaternionType >::orientation ()
constexpr const value_typemundy::Circle3D< Scalar, PointType, QuaternionType >::radius () const
constexpr value_typemundy::Circle3D< Scalar, PointType, QuaternionType >::radius ()

Non-member functions for ValidCircle3DType objects

template<ValidCircle3DType Circle3DType>
std::ostream & mundy::operator<< (std::ostream &os, const Circle3DType &circle3d)
 OStream operator.

Constructors and destructor

constexpr mundy::Ellipsoid< Scalar, PointType, OrientationType >::Ellipsoid ()
 Default constructor. Default initializes center/orientation and sets axis radii to invalid values.
constexpr mundy::Ellipsoid< Scalar, PointType, OrientationType >::Ellipsoid (const point_t &center, const value_type &radius_1, const value_type &radius_2, const value_type &radius_3)
 Constructor to initialize the center and radii.
constexpr mundy::Ellipsoid< Scalar, PointType, OrientationType >::Ellipsoid (const value_type &x, const value_type &y, const value_type &z, const value_type &qw, const value_type &qx, const value_type &qy, const value_type &qz, const value_type &radius_1, const value_type &radius_2, const value_type &radius_3)
 Constructor to initialize the center and axis radii.
constexpr mundy::Ellipsoid< Scalar, PointType, OrientationType >::Ellipsoid (const point_t &center, const orientation_t &orientation, const point_t &radii)
 Constructor to initialize the center and axis radii.
constexpr mundy::Ellipsoid< Scalar, PointType, OrientationType >::Ellipsoid (const point_t &center, const orientation_t &orientation, const value_type &radius_1, const value_type &radius_2, const value_type &radius_3)
 Constructor to initialize the center and axis radii.
constexpr mundy::Ellipsoid< Scalar, PointType, OrientationType >::~Ellipsoid ()=default
 Destructor.
constexpr mundy::Ellipsoid< Scalar, PointType, OrientationType >::Ellipsoid (const Ellipsoid< value_type, point_t, orientation_t > &other)
 Deep copy constructor.
template<typename OtherEllipsoidType>
constexpr mundy::Ellipsoid< Scalar, PointType, OrientationType >::Ellipsoid (const OtherEllipsoidType &other)
 Deep copy constructor with different ellipsoid type.
constexpr mundy::Ellipsoid< Scalar, PointType, OrientationType >::Ellipsoid (Ellipsoid< value_type, point_t, orientation_t > &&other)
 Deep move constructor.
template<typename OtherEllipsoidType>
constexpr mundy::Ellipsoid< Scalar, PointType, OrientationType >::Ellipsoid (OtherEllipsoidType &&other)
 Deep move constructor with different ellipsoid type.

Operators

constexpr Ellipsoid< value_type, point_t, orientation_t > & mundy::Ellipsoid< Scalar, PointType, OrientationType >::operator= (const Ellipsoid< value_type, point_t, orientation_t > &other)
 Copy assignment operator.
template<typename OtherEllipsoidType>
constexpr Ellipsoid< value_type, point_t, orientation_t > & mundy::Ellipsoid< Scalar, PointType, OrientationType >::operator= (const OtherEllipsoidType &other)
 Copy assignment operator with different ellipsoid type.
constexpr Ellipsoid< value_type, point_t, orientation_t > & mundy::Ellipsoid< Scalar, PointType, OrientationType >::operator= (Ellipsoid< value_type, point_t, orientation_t > &&other)
 Move assignment operator.
template<typename OtherEllipsoidType>
constexpr Ellipsoid< value_type, point_t, orientation_t > & mundy::Ellipsoid< Scalar, PointType, OrientationType >::operator= (OtherEllipsoidType &&other)
 Move assignment operator with different ellipsoid type.

Accessors

constexpr const point_tmundy::Ellipsoid< Scalar, PointType, OrientationType >::center () const
 Accessor for the center.
constexpr point_tmundy::Ellipsoid< Scalar, PointType, OrientationType >::center ()
 Accessor for the center.
constexpr const orientation_tmundy::Ellipsoid< Scalar, PointType, OrientationType >::orientation () const
 Accessor for the orientation.
constexpr orientation_tmundy::Ellipsoid< Scalar, PointType, OrientationType >::orientation ()
 Accessor for the orientation.
constexpr const point_tmundy::Ellipsoid< Scalar, PointType, OrientationType >::radii () const
 Accessor for the radii.
constexpr point_tmundy::Ellipsoid< Scalar, PointType, OrientationType >::radii ()
 Accessor for the radii.
constexpr const value_typemundy::Ellipsoid< Scalar, PointType, OrientationType >::radius_1 () const
 Accessor for the first axis length.
constexpr value_typemundy::Ellipsoid< Scalar, PointType, OrientationType >::radius_1 ()
 Accessor for the first axis length.
constexpr const value_typemundy::Ellipsoid< Scalar, PointType, OrientationType >::radius_2 () const
 Accessor for the second axis length.
constexpr value_typemundy::Ellipsoid< Scalar, PointType, OrientationType >::radius_2 ()
 Accessor for the second axis length.
constexpr const value_typemundy::Ellipsoid< Scalar, PointType, OrientationType >::radius_3 () const
 Accessor for the third axis length.
constexpr value_typemundy::Ellipsoid< Scalar, PointType, OrientationType >::radius_3 ()
 Accessor for the third axis length.

Non-member functions for ValidSphereType objects

template<ValidEllipsoidType EllipsoidType>
std::ostream & mundy::operator<< (std::ostream &os, const EllipsoidType &ellipsoid)
 OStream operator.
template<ValidEllipsoidType EllipsoidType>
constexpr Point< typename EllipsoidType::value_type > mundy::map_body_frame_normal_to_ellipsoid (const Vector3< typename EllipsoidType::value_type > &body_frame_nhat, const EllipsoidType &ellipsoid)
template<typename Scalar, ValidAccessor< Scalar > Accessor1, ValidEllipsoidType EllipsoidType>
constexpr Vector3< Scalarmundy::map_surface_normal_to_foot_point_on_ellipsoid (const AVector3< Scalar, Accessor1 > &lab_frame_ellipsoid_nhat, const EllipsoidType &ellipsoid)
template<ValidSphereType SphereType>
std::ostream & mundy::operator<< (std::ostream &os, const SphereType &sphere)
 OStream operator.

Constructors and destructor

constexpr mundy::Line< Scalar, PointType >::Line ()
 Default constructor for owning Lines. Default initialize the.
constexpr mundy::Line< Scalar, PointType >::Line (const point_t &center, const vector_t &direction)
 Constructor to initialize the center and radius.
template<ValidPointType OtherPointType, ValidVectorType OtherVectorType>
constexpr mundy::Line< Scalar, PointType >::Line (const OtherPointType &center, const OtherVectorType &direction)
 Constructor to initialize the center and radius.
constexpr mundy::Line< Scalar, PointType >::~Line ()=default
 Destructor.
constexpr mundy::Line< Scalar, PointType >::Line (const Line< value_type, point_t > &other)
 Deep copy constructor.
template<typename OtherLineType>
constexpr mundy::Line< Scalar, PointType >::Line (const OtherLineType &other)
 Deep copy constructor.
constexpr mundy::Line< Scalar, PointType >::Line (Line< value_type, point_t > &&other)
 Deep move constructor.
template<typename OtherLineType>
constexpr mundy::Line< Scalar, PointType >::Line (OtherLineType &&other)
 Deep move constructor.

Operators

constexpr Line< value_type, point_t > & mundy::Line< Scalar, PointType >::operator= (const Line< value_type, point_t > &other)
 Copy assignment operator.
template<typename OtherLineType>
constexpr Line< value_type, point_t > & mundy::Line< Scalar, PointType >::operator= (const OtherLineType &other)
 Copy assignment operator.
constexpr Line< value_type, point_t > & mundy::Line< Scalar, PointType >::operator= (Line< value_type, point_t > &&other)
 Move assignment operator.
template<typename OtherLineType>
constexpr Line< value_type, point_t > & mundy::Line< Scalar, PointType >::operator= (OtherLineType &&other)
 Move assignment operator.

Accessors

constexpr const point_tmundy::Line< Scalar, PointType >::center () const
 Accessor for the center.
constexpr point_tmundy::Line< Scalar, PointType >::center ()
 Accessor for the center.
constexpr const vector_tmundy::Line< Scalar, PointType >::direction () const
 Accessor for the direction.
constexpr vector_tmundy::Line< Scalar, PointType >::direction ()
 Accessor for the direction.

Non-member functions for ValidLineType objects

template<ValidLineType LineType>
std::ostream & mundy::operator<< (std::ostream &os, const LineType &line)
 Output stream operator.

Constructors and destructor

constexpr mundy::LineSegment< Scalar, StartPointType, EndPointType >::LineSegment ()
 Default constructor for owning LineSegments. Default initialize the start and end points.
constexpr mundy::LineSegment< Scalar, StartPointType, EndPointType >::LineSegment (const start_point_t &start, const end_point_t &end)
 Constructor to initialize the start and end points.
template<ValidPointType OtherStartPointType, ValidPointType OtherEndPointType>
constexpr mundy::LineSegment< Scalar, StartPointType, EndPointType >::LineSegment (const OtherStartPointType &start, const OtherEndPointType &end)
 Constructor to initialize the start and end points.
constexpr mundy::LineSegment< Scalar, StartPointType, EndPointType >::~LineSegment ()=default
 Destructor.
constexpr mundy::LineSegment< Scalar, StartPointType, EndPointType >::LineSegment (const LineSegment< value_type, start_point_t, end_point_t > &other)
 Deep copy constructor.
template<typename OtherLineSegmentType>
constexpr mundy::LineSegment< Scalar, StartPointType, EndPointType >::LineSegment (const OtherLineSegmentType &other)
 Deep copy constructor.
constexpr mundy::LineSegment< Scalar, StartPointType, EndPointType >::LineSegment (LineSegment< value_type, start_point_t, end_point_t > &&other)
 Deep move constructor.
template<typename OtherLineSegmentType>
constexpr mundy::LineSegment< Scalar, StartPointType, EndPointType >::LineSegment (OtherLineSegmentType &&other)
 Deep move constructor.

Operators

constexpr LineSegment< value_type, start_point_t, end_point_t > & mundy::LineSegment< Scalar, StartPointType, EndPointType >::operator= (const LineSegment< value_type, start_point_t, end_point_t > &other)
 Copy assignment operator.
template<typename OtherLineSegmentType>
constexpr LineSegment< value_type, start_point_t, end_point_t > & mundy::LineSegment< Scalar, StartPointType, EndPointType >::operator= (const OtherLineSegmentType &other)
 Copy assignment operator.
constexpr LineSegment< value_type, start_point_t, end_point_t > & mundy::LineSegment< Scalar, StartPointType, EndPointType >::operator= (LineSegment< value_type, start_point_t, end_point_t > &&other)
 Move assignment operator.
template<typename OtherLineSegmentType>
constexpr LineSegment< value_type, start_point_t, end_point_t > & mundy::LineSegment< Scalar, StartPointType, EndPointType >::operator= (OtherLineSegmentType &&other)
 Move assignment operator.

Accessors

constexpr const start_point_tmundy::LineSegment< Scalar, StartPointType, EndPointType >::start () const
 Accessor for the start.
constexpr start_point_tmundy::LineSegment< Scalar, StartPointType, EndPointType >::start ()
 Accessor for the start.
constexpr const end_point_tmundy::LineSegment< Scalar, StartPointType, EndPointType >::end () const
 Accessor for the end.
constexpr end_point_tmundy::LineSegment< Scalar, StartPointType, EndPointType >::end ()
 Accessor for the end.

Setters

template<ValidPointType OtherPointType>
constexpr void mundy::LineSegment< Scalar, StartPointType, EndPointType >::set_start (const OtherPointType &start)
 Set the start point.
constexpr void mundy::LineSegment< Scalar, StartPointType, EndPointType >::set_start (const Scalar &x, const Scalar &y, const Scalar &z)
 Set the start point.
template<ValidPointType OtherPointType>
constexpr void mundy::LineSegment< Scalar, StartPointType, EndPointType >::set_end (const OtherPointType &end)
 Set the end point.
constexpr void mundy::LineSegment< Scalar, StartPointType, EndPointType >::set_end (const Scalar &x, const Scalar &y, const Scalar &z)
 Set the end point.

Non-member functions for ValidLineSegmentType objects

template<ValidLineSegmentType LineSegmentType>
std::ostream & mundy::operator<< (std::ostream &os, const LineSegmentType &line_segment)
 OStream operator.

Constructors and destructor

constexpr mundy::OBB< Scalar, PointType, QuaternionType, HalfExtentsType >::OBB ()
 Default constructor. Center and half-extents are zero-initialized; orientation is the identity quaternion; half-extents are set to the invalid sentinel -1.
constexpr mundy::OBB< Scalar, PointType, QuaternionType, HalfExtentsType >::OBB (const point_t &center, const value_type &half_extent)
 Construct from a center, identity orientation, and uniform half-extent.
constexpr mundy::OBB< Scalar, PointType, QuaternionType, HalfExtentsType >::OBB (const point_t &center, const orientation_t &orientation, const half_extents_t &half_extents)
 Construct from a center, orientation, and per-axis half-extents.
constexpr mundy::OBB< Scalar, PointType, QuaternionType, HalfExtentsType >::OBB (const point_t &center, const orientation_t &orientation, const value_type &hx, const value_type &hy, const value_type &hz)
 Construct from a center, orientation, and per-axis half-extents given as scalars.
constexpr mundy::OBB< Scalar, PointType, QuaternionType, HalfExtentsType >::~OBB ()=default
 Destructor.
constexpr mundy::OBB< Scalar, PointType, QuaternionType, HalfExtentsType >::OBB (const OBB &other)
 Copy constructor.
constexpr mundy::OBB< Scalar, PointType, QuaternionType, HalfExtentsType >::OBB (OBB &&other)
 Move constructor.

Assignment operators

constexpr OBBmundy::OBB< Scalar, PointType, QuaternionType, HalfExtentsType >::operator= (const OBB &other)
constexpr OBBmundy::OBB< Scalar, PointType, QuaternionType, HalfExtentsType >::operator= (OBB &&other)

Accessors

constexpr const point_tmundy::OBB< Scalar, PointType, QuaternionType, HalfExtentsType >::center () const
constexpr point_tmundy::OBB< Scalar, PointType, QuaternionType, HalfExtentsType >::center ()
constexpr const orientation_tmundy::OBB< Scalar, PointType, QuaternionType, HalfExtentsType >::orientation () const
constexpr orientation_tmundy::OBB< Scalar, PointType, QuaternionType, HalfExtentsType >::orientation ()
constexpr const half_extents_tmundy::OBB< Scalar, PointType, QuaternionType, HalfExtentsType >::half_extents () const
constexpr half_extents_tmundy::OBB< Scalar, PointType, QuaternionType, HalfExtentsType >::half_extents ()
constexpr const value_typemundy::OBB< Scalar, PointType, QuaternionType, HalfExtentsType >::half_extent (int i) const
constexpr value_typemundy::OBB< Scalar, PointType, QuaternionType, HalfExtentsType >::half_extent (int i)

Intersection test

template<ValidOBBType OBBType1, ValidOBBType OBBType2>
constexpr bool mundy::intersects (const OBBType1 &a, const OBBType2 &b)
 Test whether two OBBs overlap using the Separating Axis Theorem (SAT).

Stream output

template<ValidOBBType T>
std::ostream & mundy::operator<< (std::ostream &os, const T &obb)

Constructors and destructor

constexpr mundy::Ring< Scalar, PointType, QuaternionType >::Ring ()
 Default constructor for owning Rings. Default initializes the center and sets the radius to an invalid value of -1.
constexpr mundy::Ring< Scalar, PointType, QuaternionType >::Ring (const point_t &center, const orientation_t &orientation, const value_type &major_radius, const value_type &minor_radius)
 Constructor to initialize the ring.
template<ValidPointType OtherPointType, ValidQuaternionType OtherQuaternionType>
constexpr mundy::Ring< Scalar, PointType, QuaternionType >::Ring (const OtherPointType &center, const OtherQuaternionType &orientation, const value_type &major_radius, const value_type &minor_radius)
 Constructor to initialize the ring.
constexpr mundy::Ring< Scalar, PointType, QuaternionType >::~Ring ()=default
 Destructor.
constexpr mundy::Ring< Scalar, PointType, QuaternionType >::Ring (const Ring< value_type, point_t, orientation_t > &other)
 Deep copy constructor.
template<typename OtherRingType>
constexpr mundy::Ring< Scalar, PointType, QuaternionType >::Ring (const OtherRingType &other)
 Deep copy constructor with different ring type.
constexpr mundy::Ring< Scalar, PointType, QuaternionType >::Ring (Ring< value_type, point_t, orientation_t > &&other)
 Deep move constructor.
template<typename OtherRingType>
constexpr mundy::Ring< Scalar, PointType, QuaternionType >::Ring (OtherRingType &&other)
 Deep move constructor.

Operators

constexpr Ring< value_type, point_t, orientation_t > & mundy::Ring< Scalar, PointType, QuaternionType >::operator= (const Ring< value_type, point_t, orientation_t > &other)
 Copy assignment operator.
template<typename OtherRingType>
constexpr Ring< value_type, point_t, orientation_t > & mundy::Ring< Scalar, PointType, QuaternionType >::operator= (const OtherRingType &other)
 Copy assignment operator.
constexpr Ring< value_type, point_t, orientation_t > & mundy::Ring< Scalar, PointType, QuaternionType >::operator= (Ring< value_type, point_t, orientation_t > &&other)
 Move assignment operator.
template<typename OtherRingType>
constexpr Ring< value_type, point_t, orientation_t > & mundy::Ring< Scalar, PointType, QuaternionType >::operator= (OtherRingType &&other)
 Move assignment operator.

Accessors

constexpr const Circle3D< value_type, point_t, orientation_t > & mundy::Ring< Scalar, PointType, QuaternionType >::center_circle () const
 Accessor for the center line (a Circle3D).
constexpr const point_tmundy::Ring< Scalar, PointType, QuaternionType >::center () const
 Accessor for the center.
constexpr point_tmundy::Ring< Scalar, PointType, QuaternionType >::center ()
 Accessor for the center.
constexpr const orientation_tmundy::Ring< Scalar, PointType, QuaternionType >::orientation () const
 Accessor for the orientation.
constexpr orientation_tmundy::Ring< Scalar, PointType, QuaternionType >::orientation ()
 Accessor for the orientation.
constexpr const value_typemundy::Ring< Scalar, PointType, QuaternionType >::major_radius () const
 Accessor for the major radius.
constexpr value_typemundy::Ring< Scalar, PointType, QuaternionType >::major_radius ()
 Accessor for the major radius.
constexpr const value_typemundy::Ring< Scalar, PointType, QuaternionType >::minor_radius () const
 Accessor for the minor radius.
constexpr value_typemundy::Ring< Scalar, PointType, QuaternionType >::minor_radius ()
 Accessor for the minor radius.

Non-member functions for ValidRingType objects

template<ValidRingType RingType>
std::ostream & mundy::operator<< (std::ostream &os, const RingType &ring)
 OStream operator.

Constructors and destructor

constexpr mundy::Sphere< Scalar, PointType >::Sphere ()
 Default constructor for owning Spheres. Default initializes the center and sets the radius to an invalid value of -1.
constexpr mundy::Sphere< Scalar, PointType >::Sphere (const point_t &center, const value_type &radius)
 Constructor to initialize the center and radius.
template<ValidPointType OtherPointType>
constexpr mundy::Sphere< Scalar, PointType >::Sphere (const OtherPointType &center, const value_type &radius)
 Constructor to initialize the center and radius.
constexpr mundy::Sphere< Scalar, PointType >::~Sphere ()=default
 Destructor.
constexpr mundy::Sphere< Scalar, PointType >::Sphere (const Sphere< value_type, point_t > &other)
 Deep copy constructor.
template<typename OtherSphereType>
constexpr mundy::Sphere< Scalar, PointType >::Sphere (const OtherSphereType &other)
 Deep copy constructor with different sphere type.
constexpr mundy::Sphere< Scalar, PointType >::Sphere (Sphere< value_type, point_t > &&other)
 Deep move constructor.
template<typename OtherSphereType>
constexpr mundy::Sphere< Scalar, PointType >::Sphere (OtherSphereType &&other)
 Deep move constructor.

Operators

constexpr Sphere< value_type, point_t > & mundy::Sphere< Scalar, PointType >::operator= (const Sphere< value_type, point_t > &other)
 Copy assignment operator.
template<typename OtherSphereType>
constexpr Sphere< value_type, point_t > & mundy::Sphere< Scalar, PointType >::operator= (const OtherSphereType &other)
 Copy assignment operator.
constexpr Sphere< value_type, point_t > & mundy::Sphere< Scalar, PointType >::operator= (Sphere< value_type, point_t > &&other)
 Move assignment operator.
template<typename OtherSphereType>
constexpr Sphere< value_type, point_t > & mundy::Sphere< Scalar, PointType >::operator= (OtherSphereType &&other)
 Move assignment operator.

Accessors

constexpr const point_tmundy::Sphere< Scalar, PointType >::center () const
 Accessor for the center.
constexpr point_tmundy::Sphere< Scalar, PointType >::center ()
 Accessor for the center.
constexpr const value_typemundy::Sphere< Scalar, PointType >::radius () const
 Accessor for the radius.
constexpr value_typemundy::Sphere< Scalar, PointType >::radius ()
 Accessor for the radius.

Constructors and destructor

constexpr mundy::Spherocylinder< Scalar, PointType, QuaternionType >::Spherocylinder ()
 Default constructor for owning Spherocylinders. Default initializes the center and sets the radius to an invalid value of -1.
constexpr mundy::Spherocylinder< Scalar, PointType, QuaternionType >::Spherocylinder (const point_t &center, const orientation_t &orientation, const value_type &radius, const value_type &length)
 Constructor to initialize the center and radius.
template<ValidPointType OtherPointType, ValidQuaternionType OtherQuaternionType>
constexpr mundy::Spherocylinder< Scalar, PointType, QuaternionType >::Spherocylinder (const OtherPointType &center, const OtherQuaternionType &orientation, const value_type &radius, const value_type &length)
 Constructor to initialize the center and radius.
constexpr mundy::Spherocylinder< Scalar, PointType, QuaternionType >::~Spherocylinder ()=default
 Destructor.
constexpr mundy::Spherocylinder< Scalar, PointType, QuaternionType >::Spherocylinder (const Spherocylinder< value_type, point_t, orientation_t > &other)
 Deep copy constructor.
template<typename OtherSpherocylinderType>
constexpr mundy::Spherocylinder< Scalar, PointType, QuaternionType >::Spherocylinder (const OtherSpherocylinderType &other)
 Deep copy constructor with different spherocylinder type.
constexpr mundy::Spherocylinder< Scalar, PointType, QuaternionType >::Spherocylinder (Spherocylinder< value_type, point_t, orientation_t > &&other)
 Deep move constructor.
template<typename OtherSpherocylinderType>
constexpr mundy::Spherocylinder< Scalar, PointType, QuaternionType >::Spherocylinder (OtherSpherocylinderType &&other)
 Deep move constructor.

Operators

constexpr Spherocylinder< value_type, point_t, orientation_t > & mundy::Spherocylinder< Scalar, PointType, QuaternionType >::operator= (const Spherocylinder< value_type, point_t, orientation_t > &other)
 Copy assignment operator.
template<typename OtherSpherocylinderType>
constexpr Spherocylinder< value_type, point_t, orientation_t > & mundy::Spherocylinder< Scalar, PointType, QuaternionType >::operator= (const OtherSpherocylinderType &other)
 Copy assignment operator.
constexpr Spherocylinder< value_type, point_t, orientation_t > & mundy::Spherocylinder< Scalar, PointType, QuaternionType >::operator= (Spherocylinder< value_type, point_t, orientation_t > &&other)
 Move assignment operator.
template<typename OtherSpherocylinderType>
constexpr Spherocylinder< value_type, point_t, orientation_t > & mundy::Spherocylinder< Scalar, PointType, QuaternionType >::operator= (OtherSpherocylinderType &&other)
 Move assignment operator.

Accessors

constexpr const point_tmundy::Spherocylinder< Scalar, PointType, QuaternionType >::center () const
 Accessor for the center.
constexpr point_tmundy::Spherocylinder< Scalar, PointType, QuaternionType >::center ()
 Accessor for the center.
constexpr const orientation_tmundy::Spherocylinder< Scalar, PointType, QuaternionType >::orientation () const
 Accessor for the orientation.
constexpr orientation_tmundy::Spherocylinder< Scalar, PointType, QuaternionType >::orientation ()
 Accessor for the orientation.
constexpr const value_typemundy::Spherocylinder< Scalar, PointType, QuaternionType >::radius () const
 Accessor for the radius.
constexpr value_typemundy::Spherocylinder< Scalar, PointType, QuaternionType >::radius ()
 Accessor for the radius.
constexpr const value_typemundy::Spherocylinder< Scalar, PointType, QuaternionType >::length () const
 Accessor for the length.
constexpr value_typemundy::Spherocylinder< Scalar, PointType, QuaternionType >::length ()
 Accessor for the length.

Non-member functions for ValidSpherocylinderType objects

template<ValidSpherocylinderType SpherocylinderType>
std::ostream & mundy::operator<< (std::ostream &os, const SpherocylinderType &spherocylinder)
 OStream operator.

Constructors and destructor

constexpr mundy::SpherocylinderSegment< Scalar, PointType >::SpherocylinderSegment ()
 Default constructor for owning SpherocylinderSegments. Default initialize the start and end points.
constexpr mundy::SpherocylinderSegment< Scalar, PointType >::SpherocylinderSegment (const point_t &start, const point_t &end, const value_type &radius)
 Constructor to initialize the start and end points.
template<ValidPointType OtherPointType>
constexpr mundy::SpherocylinderSegment< Scalar, PointType >::SpherocylinderSegment (const OtherPointType &start, const OtherPointType &end, const value_type &radius)
 Constructor to initialize the start and end points.
constexpr mundy::SpherocylinderSegment< Scalar, PointType >::~SpherocylinderSegment ()=default
 Destructor.
constexpr mundy::SpherocylinderSegment< Scalar, PointType >::SpherocylinderSegment (const SpherocylinderSegment< value_type, point_t > &other)
 Deep copy constructor.
template<typename OtherSpherocylinderSegmentType>
constexpr mundy::SpherocylinderSegment< Scalar, PointType >::SpherocylinderSegment (const OtherSpherocylinderSegmentType &other)
 Deep copy constructor.
constexpr mundy::SpherocylinderSegment< Scalar, PointType >::SpherocylinderSegment (SpherocylinderSegment< value_type, point_t > &&other)
 Deep move constructor.
template<typename OtherSpherocylinderSegmentType>
constexpr mundy::SpherocylinderSegment< Scalar, PointType >::SpherocylinderSegment (OtherSpherocylinderSegmentType &&other)
 Deep move constructor.

Operators

constexpr SpherocylinderSegment< value_type, point_t > & mundy::SpherocylinderSegment< Scalar, PointType >::operator= (const SpherocylinderSegment< value_type, point_t > &other)
 Copy assignment operator.
template<typename OtherSpherocylinderSegmentType>
constexpr SpherocylinderSegment< value_type, point_t > & mundy::SpherocylinderSegment< Scalar, PointType >::operator= (const OtherSpherocylinderSegmentType &other)
 Copy assignment operator.
constexpr SpherocylinderSegment< value_type, point_t > & mundy::SpherocylinderSegment< Scalar, PointType >::operator= (SpherocylinderSegment< value_type, point_t > &&other)
 Move assignment operator.
template<typename OtherSpherocylinderSegmentType>
constexpr SpherocylinderSegment< value_type, point_t > & mundy::SpherocylinderSegment< Scalar, PointType >::operator= (OtherSpherocylinderSegmentType &&other)
 Move assignment operator.

Accessors

constexpr const point_tmundy::SpherocylinderSegment< Scalar, PointType >::start () const
 Accessor for the start.
constexpr point_tmundy::SpherocylinderSegment< Scalar, PointType >::start ()
 Accessor for the start.
constexpr const point_tmundy::SpherocylinderSegment< Scalar, PointType >::end () const
 Accessor for the end.
constexpr point_tmundy::SpherocylinderSegment< Scalar, PointType >::end ()
 Accessor for the end.
constexpr const value_typemundy::SpherocylinderSegment< Scalar, PointType >::radius () const
 Accessor for the radius.
constexpr value_typemundy::SpherocylinderSegment< Scalar, PointType >::radius ()
 Accessor for the radius.

Non-member functions for ValidSpherocylinderSegmentType objects

template<ValidSpherocylinderSegmentType SpherocylinderSegmentType>
std::ostream & mundy::operator<< (std::ostream &os, const SpherocylinderSegmentType &spherocylinder_segment)
 OStream operator.

Constructors and destructor

constexpr mundy::VSegment< Scalar, PointType >::VSegment ()
 Default constructor for owning VSegments. Default initialize the start, middle, and end points.
constexpr mundy::VSegment< Scalar, PointType >::VSegment (const point_t &start, const point_t &middle, const point_t &end)
 Constructor to initialize the start, middle, and end points.
template<ValidPointType OtherPointType>
constexpr mundy::VSegment< Scalar, PointType >::VSegment (const OtherPointType &start, const OtherPointType &middle, const OtherPointType &end)
 Constructor to initialize the start, middle, and end points.
constexpr mundy::VSegment< Scalar, PointType >::~VSegment ()=default
 Destructor.
constexpr mundy::VSegment< Scalar, PointType >::VSegment (const VSegment< value_type, point_t > &other)
 Deep copy constructor.
template<typename OtherVSegmentType>
constexpr mundy::VSegment< Scalar, PointType >::VSegment (const OtherVSegmentType &other)
 Deep copy constructor.
constexpr mundy::VSegment< Scalar, PointType >::VSegment (VSegment< value_type, point_t > &&other)
 Deep move constructor.
template<typename OtherVSegmentType>
constexpr mundy::VSegment< Scalar, PointType >::VSegment (OtherVSegmentType &&other)
 Deep move constructor.

Operators

constexpr VSegment< value_type, point_t > & mundy::VSegment< Scalar, PointType >::operator= (const VSegment< value_type, point_t > &other)
 Copy assignment operator.
template<typename OtherVSegmentType>
constexpr VSegment< value_type, point_t > & mundy::VSegment< Scalar, PointType >::operator= (const OtherVSegmentType &other)
 Copy assignment operator.
constexpr VSegment< value_type, point_t > & mundy::VSegment< Scalar, PointType >::operator= (VSegment< value_type, point_t > &&other)
 Move assignment operator.
template<typename OtherVSegmentType>
constexpr VSegment< value_type, point_t > & mundy::VSegment< Scalar, PointType >::operator= (OtherVSegmentType &&other)
 Move assignment operator.

Accessors

constexpr const point_tmundy::VSegment< Scalar, PointType >::start () const
 Accessor for the start.
constexpr point_tmundy::VSegment< Scalar, PointType >::start ()
 Accessor for the start.
constexpr const point_tmundy::VSegment< Scalar, PointType >::middle () const
 Accessor for the middle.
constexpr point_tmundy::VSegment< Scalar, PointType >::middle ()
 Accessor for the middle.
constexpr const point_tmundy::VSegment< Scalar, PointType >::end () const
 Accessor for the end.
constexpr point_tmundy::VSegment< Scalar, PointType >::end ()
 Accessor for the end.

Non-member functions for ValidVSegmentType objects

template<ValidVSegmentType VSegmentType>
std::ostream & mundy::operator<< (std::ostream &os, const VSegmentType &v_segment)
 OStream operator.

Detailed Description

Typedef Documentation

◆ value_type [1/11]

template<typename Scalar, ValidPointType MinPointType = Point<Scalar>, ValidPointType MaxPointType = Point<Scalar>>
using mundy::AABB< Scalar, MinPointType, MaxPointType >::value_type = Scalar

◆ min_point_t

template<typename Scalar, ValidPointType MinPointType = Point<Scalar>, ValidPointType MaxPointType = Point<Scalar>>
using mundy::AABB< Scalar, MinPointType, MaxPointType >::min_point_t = MinPointType

◆ max_point_t

template<typename Scalar, ValidPointType MinPointType = Point<Scalar>, ValidPointType MaxPointType = Point<Scalar>>
using mundy::AABB< Scalar, MinPointType, MaxPointType >::max_point_t = MaxPointType

◆ value_type [2/11]

template<typename Scalar, ValidPointType PointType = Point<Scalar>, ValidQuaternionType QuaternionType = Quaternion<Scalar>>
using mundy::Circle3D< Scalar, PointType, QuaternionType >::value_type = Scalar

◆ point_t [1/9]

template<typename Scalar, ValidPointType PointType = Point<Scalar>, ValidQuaternionType QuaternionType = Quaternion<Scalar>>
using mundy::Circle3D< Scalar, PointType, QuaternionType >::point_t = PointType

◆ orientation_t [1/5]

template<typename Scalar, ValidPointType PointType = Point<Scalar>, ValidQuaternionType QuaternionType = Quaternion<Scalar>>
using mundy::Circle3D< Scalar, PointType, QuaternionType >::orientation_t = QuaternionType

◆ value_type [3/11]

template<typename Scalar, ValidPointType PointType = Point<Scalar>, ValidQuaternionType OrientationType = Quaternion<Scalar>>
using mundy::Ellipsoid< Scalar, PointType, OrientationType >::value_type = Scalar

◆ point_t [2/9]

template<typename Scalar, ValidPointType PointType = Point<Scalar>, ValidQuaternionType OrientationType = Quaternion<Scalar>>
using mundy::Ellipsoid< Scalar, PointType, OrientationType >::point_t = PointType

◆ orientation_t [2/5]

template<typename Scalar, ValidPointType PointType = Point<Scalar>, ValidQuaternionType OrientationType = Quaternion<Scalar>>
using mundy::Ellipsoid< Scalar, PointType, OrientationType >::orientation_t = OrientationType

◆ value_type [4/11]

template<typename Scalar, ValidPointType PointType = Point<Scalar>>
using mundy::Line< Scalar, PointType >::value_type = Scalar

◆ point_t [3/9]

template<typename Scalar, ValidPointType PointType = Point<Scalar>>
using mundy::Line< Scalar, PointType >::point_t = PointType

◆ vector_t

template<typename Scalar, ValidPointType PointType = Point<Scalar>>
using mundy::Line< Scalar, PointType >::vector_t = PointType

◆ value_type [5/11]

template<typename Scalar, ValidPointType StartPointType = Point<Scalar>, ValidPointType EndPointType = Point<Scalar>>
using mundy::LineSegment< Scalar, StartPointType, EndPointType >::value_type = Scalar

◆ start_point_t

template<typename Scalar, ValidPointType StartPointType = Point<Scalar>, ValidPointType EndPointType = Point<Scalar>>
using mundy::LineSegment< Scalar, StartPointType, EndPointType >::start_point_t = StartPointType

◆ end_point_t

template<typename Scalar, ValidPointType StartPointType = Point<Scalar>, ValidPointType EndPointType = Point<Scalar>>
using mundy::LineSegment< Scalar, StartPointType, EndPointType >::end_point_t = EndPointType

◆ value_type [6/11]

template<typename Scalar, ValidPointType PointType = Point<Scalar>, ValidQuaternionType QuaternionType = Quaternion<Scalar>, ValidVector3Type HalfExtentsType = Vector3<Scalar>>
using mundy::OBB< Scalar, PointType, QuaternionType, HalfExtentsType >::value_type = Scalar

◆ point_t [4/9]

template<typename Scalar, ValidPointType PointType = Point<Scalar>, ValidQuaternionType QuaternionType = Quaternion<Scalar>, ValidVector3Type HalfExtentsType = Vector3<Scalar>>
using mundy::OBB< Scalar, PointType, QuaternionType, HalfExtentsType >::point_t = PointType

◆ orientation_t [3/5]

template<typename Scalar, ValidPointType PointType = Point<Scalar>, ValidQuaternionType QuaternionType = Quaternion<Scalar>, ValidVector3Type HalfExtentsType = Vector3<Scalar>>
using mundy::OBB< Scalar, PointType, QuaternionType, HalfExtentsType >::orientation_t = QuaternionType

◆ half_extents_t

template<typename Scalar, ValidPointType PointType = Point<Scalar>, ValidQuaternionType QuaternionType = Quaternion<Scalar>, ValidVector3Type HalfExtentsType = Vector3<Scalar>>
using mundy::OBB< Scalar, PointType, QuaternionType, HalfExtentsType >::half_extents_t = HalfExtentsType

◆ APoint

template<typename Scalar, ValidAccessor< Scalar > Accessor = Array<Scalar, 3>>
using mundy::APoint = AVector3<Scalar, Accessor>
Template Parameters
Scalar

The following is a methodological choice to use the Vector3 class as the underlying data structure for the Point class. This is done to allow points to access the same mathematical operations as vectors (dot product, cross product, etc.). Had we created our own interface, we would have hidden the mathematical operations from the user.

◆ Point

template<typename Scalar>
using mundy::Point = APoint<Scalar>

◆ value_type [7/11]

template<typename Scalar, ValidPointType PointType = Point<Scalar>, ValidQuaternionType QuaternionType = Quaternion<Scalar>>
using mundy::Ring< Scalar, PointType, QuaternionType >::value_type = Scalar

◆ point_t [5/9]

template<typename Scalar, ValidPointType PointType = Point<Scalar>, ValidQuaternionType QuaternionType = Quaternion<Scalar>>
using mundy::Ring< Scalar, PointType, QuaternionType >::point_t = PointType

◆ orientation_t [4/5]

template<typename Scalar, ValidPointType PointType = Point<Scalar>, ValidQuaternionType QuaternionType = Quaternion<Scalar>>
using mundy::Ring< Scalar, PointType, QuaternionType >::orientation_t = QuaternionType

◆ value_type [8/11]

template<typename Scalar, ValidPointType PointType = Point<Scalar>>
using mundy::Sphere< Scalar, PointType >::value_type = Scalar

◆ point_t [6/9]

template<typename Scalar, ValidPointType PointType = Point<Scalar>>
using mundy::Sphere< Scalar, PointType >::point_t = PointType

◆ value_type [9/11]

template<typename Scalar, ValidPointType PointType = Point<Scalar>, ValidQuaternionType QuaternionType = Quaternion<Scalar>>
using mundy::Spherocylinder< Scalar, PointType, QuaternionType >::value_type = Scalar

◆ point_t [7/9]

template<typename Scalar, ValidPointType PointType = Point<Scalar>, ValidQuaternionType QuaternionType = Quaternion<Scalar>>
using mundy::Spherocylinder< Scalar, PointType, QuaternionType >::point_t = PointType

◆ orientation_t [5/5]

template<typename Scalar, ValidPointType PointType = Point<Scalar>, ValidQuaternionType QuaternionType = Quaternion<Scalar>>
using mundy::Spherocylinder< Scalar, PointType, QuaternionType >::orientation_t = QuaternionType

◆ value_type [10/11]

template<typename Scalar, ValidPointType PointType = Point<Scalar>>
using mundy::SpherocylinderSegment< Scalar, PointType >::value_type = Scalar

◆ point_t [8/9]

template<typename Scalar, ValidPointType PointType = Point<Scalar>>
using mundy::SpherocylinderSegment< Scalar, PointType >::point_t = PointType

◆ value_type [11/11]

template<typename Scalar, ValidPointType PointType = Point<Scalar>>
using mundy::VSegment< Scalar, PointType >::value_type = Scalar

◆ point_t [9/9]

template<typename Scalar, ValidPointType PointType = Point<Scalar>>
using mundy::VSegment< Scalar, PointType >::point_t = PointType

Function Documentation

◆ AABB() [1/8]

template<typename Scalar, ValidPointType MinPointType = Point<Scalar>, ValidPointType MaxPointType = Point<Scalar>>
mundy::AABB< Scalar, MinPointType, MaxPointType >::AABB ( )
inlineconstexpr

◆ AABB() [2/8]

template<typename Scalar, ValidPointType MinPointType = Point<Scalar>, ValidPointType MaxPointType = Point<Scalar>>
mundy::AABB< Scalar, MinPointType, MaxPointType >::AABB ( const min_point_t & min_corner,
const max_point_t & max_corner )
inlineconstexpr
Parameters
[in]min_cornerThe minimum corner of the aabb.
[in]max_cornerThe maximum corner of the aabb.

◆ AABB() [3/8]

template<typename Scalar, ValidPointType MinPointType = Point<Scalar>, ValidPointType MaxPointType = Point<Scalar>>
template<ValidPointType OtherPointType1, ValidPointType OtherPointType2>
mundy::AABB< Scalar, MinPointType, MaxPointType >::AABB ( const OtherPointType1 & min_corner,
const OtherPointType2 & max_corner )
inlineconstexpr
Parameters
[in]min_cornerThe minimum corner of the aabb.
[in]max_cornerThe maximum corner of the aabb.

◆ AABB() [4/8]

template<typename Scalar, ValidPointType MinPointType = Point<Scalar>, ValidPointType MaxPointType = Point<Scalar>>
mundy::AABB< Scalar, MinPointType, MaxPointType >::AABB ( value_type x_min,
value_type y_min,
value_type z_min,
value_type x_max,
value_type y_max,
value_type z_max )
inlineconstexpr
Parameters
[in]x_minThe minimum x-coordinate.
[in]y_minThe minimum y-coordinate.
[in]z_minThe minimum z-coordinate.
[in]x_maxThe maximum x-coordinate.
[in]y_maxThe maximum y-coordinate.
[in]z_maxThe maximum z-coordinate.

◆ ~AABB()

template<typename Scalar, ValidPointType MinPointType = Point<Scalar>, ValidPointType MaxPointType = Point<Scalar>>
mundy::AABB< Scalar, MinPointType, MaxPointType >::~AABB ( )
constexprdefault

◆ AABB() [5/8]

template<typename Scalar, ValidPointType MinPointType = Point<Scalar>, ValidPointType MaxPointType = Point<Scalar>>
mundy::AABB< Scalar, MinPointType, MaxPointType >::AABB ( const AABB< value_type, min_point_t, max_point_t > & other)
inlineconstexpr

◆ AABB() [6/8]

template<typename Scalar, ValidPointType MinPointType = Point<Scalar>, ValidPointType MaxPointType = Point<Scalar>>
template<typename OtherAABBType>
mundy::AABB< Scalar, MinPointType, MaxPointType >::AABB ( const OtherAABBType & other)
inlineconstexpr

◆ AABB() [7/8]

template<typename Scalar, ValidPointType MinPointType = Point<Scalar>, ValidPointType MaxPointType = Point<Scalar>>
mundy::AABB< Scalar, MinPointType, MaxPointType >::AABB ( AABB< value_type, min_point_t, max_point_t > && other)
inlineconstexpr

◆ AABB() [8/8]

template<typename Scalar, ValidPointType MinPointType = Point<Scalar>, ValidPointType MaxPointType = Point<Scalar>>
template<typename OtherAABBType>
mundy::AABB< Scalar, MinPointType, MaxPointType >::AABB ( OtherAABBType && other)
inlineconstexpr

◆ operator=() [1/42]

template<typename Scalar, ValidPointType MinPointType = Point<Scalar>, ValidPointType MaxPointType = Point<Scalar>>
AABB< value_type, min_point_t, max_point_t > & mundy::AABB< Scalar, MinPointType, MaxPointType >::operator= ( const AABB< value_type, min_point_t, max_point_t > & other)
inlineconstexpr

◆ operator=() [2/42]

template<typename Scalar, ValidPointType MinPointType = Point<Scalar>, ValidPointType MaxPointType = Point<Scalar>>
template<typename OtherAABBType>
AABB< value_type, min_point_t, max_point_t > & mundy::AABB< Scalar, MinPointType, MaxPointType >::operator= ( const OtherAABBType & other)
inlineconstexpr

◆ operator=() [3/42]

template<typename Scalar, ValidPointType MinPointType = Point<Scalar>, ValidPointType MaxPointType = Point<Scalar>>
AABB< value_type, min_point_t, max_point_t > & mundy::AABB< Scalar, MinPointType, MaxPointType >::operator= ( AABB< value_type, min_point_t, max_point_t > && other)
inlineconstexpr

◆ operator=() [4/42]

template<typename Scalar, ValidPointType MinPointType = Point<Scalar>, ValidPointType MaxPointType = Point<Scalar>>
template<typename OtherAABBType>
AABB< value_type, min_point_t, max_point_t > & mundy::AABB< Scalar, MinPointType, MaxPointType >::operator= ( OtherAABBType && other)
inlineconstexpr

◆ operator[]() [1/2]

template<typename Scalar, ValidPointType MinPointType = Point<Scalar>, ValidPointType MaxPointType = Point<Scalar>>
const value_type & mundy::AABB< Scalar, MinPointType, MaxPointType >::operator[] ( const size_t & i) const
inlineconstexpr

◆ operator[]() [2/2]

template<typename Scalar, ValidPointType MinPointType = Point<Scalar>, ValidPointType MaxPointType = Point<Scalar>>
value_type & mundy::AABB< Scalar, MinPointType, MaxPointType >::operator[] ( const size_t & i)
inlineconstexpr

◆ min_corner() [1/2]

template<typename Scalar, ValidPointType MinPointType = Point<Scalar>, ValidPointType MaxPointType = Point<Scalar>>
const min_point_t & mundy::AABB< Scalar, MinPointType, MaxPointType >::min_corner ( ) const
inlineconstexpr

◆ min_corner() [2/2]

template<typename Scalar, ValidPointType MinPointType = Point<Scalar>, ValidPointType MaxPointType = Point<Scalar>>
min_point_t & mundy::AABB< Scalar, MinPointType, MaxPointType >::min_corner ( )
inlineconstexpr

◆ max_corner() [1/2]

template<typename Scalar, ValidPointType MinPointType = Point<Scalar>, ValidPointType MaxPointType = Point<Scalar>>
const max_point_t & mundy::AABB< Scalar, MinPointType, MaxPointType >::max_corner ( ) const
inlineconstexpr

◆ max_corner() [2/2]

template<typename Scalar, ValidPointType MinPointType = Point<Scalar>, ValidPointType MaxPointType = Point<Scalar>>
max_point_t & mundy::AABB< Scalar, MinPointType, MaxPointType >::max_corner ( )
inlineconstexpr

◆ x_min() [1/2]

template<typename Scalar, ValidPointType MinPointType = Point<Scalar>, ValidPointType MaxPointType = Point<Scalar>>
const value_type & mundy::AABB< Scalar, MinPointType, MaxPointType >::x_min ( ) const
inlineconstexpr

◆ x_min() [2/2]

template<typename Scalar, ValidPointType MinPointType = Point<Scalar>, ValidPointType MaxPointType = Point<Scalar>>
value_type & mundy::AABB< Scalar, MinPointType, MaxPointType >::x_min ( )
inlineconstexpr

◆ y_min() [1/2]

template<typename Scalar, ValidPointType MinPointType = Point<Scalar>, ValidPointType MaxPointType = Point<Scalar>>
const value_type & mundy::AABB< Scalar, MinPointType, MaxPointType >::y_min ( ) const
inlineconstexpr

◆ y_min() [2/2]

template<typename Scalar, ValidPointType MinPointType = Point<Scalar>, ValidPointType MaxPointType = Point<Scalar>>
value_type & mundy::AABB< Scalar, MinPointType, MaxPointType >::y_min ( )
inlineconstexpr

◆ z_min() [1/2]

template<typename Scalar, ValidPointType MinPointType = Point<Scalar>, ValidPointType MaxPointType = Point<Scalar>>
const value_type & mundy::AABB< Scalar, MinPointType, MaxPointType >::z_min ( ) const
inlineconstexpr

◆ z_min() [2/2]

template<typename Scalar, ValidPointType MinPointType = Point<Scalar>, ValidPointType MaxPointType = Point<Scalar>>
value_type & mundy::AABB< Scalar, MinPointType, MaxPointType >::z_min ( )
inlineconstexpr

◆ x_max() [1/2]

template<typename Scalar, ValidPointType MinPointType = Point<Scalar>, ValidPointType MaxPointType = Point<Scalar>>
const value_type & mundy::AABB< Scalar, MinPointType, MaxPointType >::x_max ( ) const
inlineconstexpr

◆ x_max() [2/2]

template<typename Scalar, ValidPointType MinPointType = Point<Scalar>, ValidPointType MaxPointType = Point<Scalar>>
value_type & mundy::AABB< Scalar, MinPointType, MaxPointType >::x_max ( )
inlineconstexpr

◆ y_max() [1/2]

template<typename Scalar, ValidPointType MinPointType = Point<Scalar>, ValidPointType MaxPointType = Point<Scalar>>
const value_type & mundy::AABB< Scalar, MinPointType, MaxPointType >::y_max ( ) const
inlineconstexpr

◆ y_max() [2/2]

template<typename Scalar, ValidPointType MinPointType = Point<Scalar>, ValidPointType MaxPointType = Point<Scalar>>
value_type & mundy::AABB< Scalar, MinPointType, MaxPointType >::y_max ( )
inlineconstexpr

◆ z_max() [1/2]

template<typename Scalar, ValidPointType MinPointType = Point<Scalar>, ValidPointType MaxPointType = Point<Scalar>>
const value_type & mundy::AABB< Scalar, MinPointType, MaxPointType >::z_max ( ) const
inlineconstexpr

◆ z_max() [2/2]

template<typename Scalar, ValidPointType MinPointType = Point<Scalar>, ValidPointType MaxPointType = Point<Scalar>>
value_type & mundy::AABB< Scalar, MinPointType, MaxPointType >::z_max ( )
inlineconstexpr

◆ cast()

template<typename Scalar, ValidPointType MinPointType = Point<Scalar>, ValidPointType MaxPointType = Point<Scalar>>
template<typename U>
auto mundy::AABB< Scalar, MinPointType, MaxPointType >::cast ( ) const
inlineconstexpr

Mirrors Vector/Matrix cast(): returns an owning AABB whose corners are this AABB's corners cast to U.

◆ set_min_corner() [1/2]

template<typename Scalar, ValidPointType MinPointType = Point<Scalar>, ValidPointType MaxPointType = Point<Scalar>>
template<ValidPointType OtherPointType>
void mundy::AABB< Scalar, MinPointType, MaxPointType >::set_min_corner ( const OtherPointType & min_corner)
inlineconstexpr
Parameters
[in]min_cornerThe new minimum corner.

◆ set_min_corner() [2/2]

template<typename Scalar, ValidPointType MinPointType = Point<Scalar>, ValidPointType MaxPointType = Point<Scalar>>
void mundy::AABB< Scalar, MinPointType, MaxPointType >::set_min_corner ( const value_type & x,
const value_type & y,
const value_type & z )
inlineconstexpr
Parameters
[in]xThe new x-coordinate.
[in]yThe new y-coordinate.
[in]zThe new z-coordinate.

◆ set_max_corner() [1/2]

template<typename Scalar, ValidPointType MinPointType = Point<Scalar>, ValidPointType MaxPointType = Point<Scalar>>
template<ValidPointType OtherPointType>
void mundy::AABB< Scalar, MinPointType, MaxPointType >::set_max_corner ( const OtherPointType & max_corner)
inlineconstexpr
Parameters
[in]max_cornerThe new maximum corner.

◆ set_max_corner() [2/2]

template<typename Scalar, ValidPointType MinPointType = Point<Scalar>, ValidPointType MaxPointType = Point<Scalar>>
void mundy::AABB< Scalar, MinPointType, MaxPointType >::set_max_corner ( const value_type & x,
const value_type & y,
const value_type & z )
inlineconstexpr
Parameters
[in]xThe new x-coordinate.
[in]yThe new y-coordinate.
[in]zThe new z-coordinate.

◆ is_close()

template<ValidAABBType T1, ValidAABBType T2>
bool mundy::is_close ( const T1 & a1,
const T2 & a2,
typename T1::value_type tol = get_comparison_tolerance<typename T1::value_type, typename T2::value_type>() )
constexpr

◆ is_approx_close()

template<ValidAABBType T1, ValidAABBType T2>
bool mundy::is_approx_close ( const T1 & a1,
const T2 & a2,
typename T1::value_type tol = get_relaxed_comparison_tolerance<typename T1::value_type, typename T2::value_type>() )
constexpr

◆ operator<<() [1/11]

template<ValidAABBType AABBType>
std::ostream & mundy::operator<< ( std::ostream & os,
const AABBType & aabb )

◆ intersects() [1/2]

template<ValidAABBType AABBType1, ValidAABBType AABBType2>
bool mundy::intersects ( const AABBType1 & aabb1,
const AABBType2 & aabb2 )
constexpr

◆ for_each_point() [1/2]

template<ValidAABBType T, typename Functor>
void mundy::for_each_point ( const T & aabb,
Functor && f )

◆ for_each_point_mutable() [1/2]

template<ValidAABBType T, typename Functor>
void mundy::for_each_point_mutable ( T & aabb,
Functor && f )

◆ Circle3D() [1/7]

template<typename Scalar, ValidPointType PointType = Point<Scalar>, ValidQuaternionType QuaternionType = Quaternion<Scalar>>
mundy::Circle3D< Scalar, PointType, QuaternionType >::Circle3D ( )
inlineconstexpr

◆ Circle3D() [2/7]

template<typename Scalar, ValidPointType PointType = Point<Scalar>, ValidQuaternionType QuaternionType = Quaternion<Scalar>>
mundy::Circle3D< Scalar, PointType, QuaternionType >::Circle3D ( const point_t & center,
const orientation_t & orientation,
const value_type & radius )
inlineconstexpr
Parameters
[in]centerThe center (in the lab frame) of the Circle3D.
[in]orientationThe quaternion orientation mapping a circle with normal in the z-direction to the lab frame.
[in]radiusThe radius of the circle.

◆ Circle3D() [3/7]

template<typename Scalar, ValidPointType PointType = Point<Scalar>, ValidQuaternionType QuaternionType = Quaternion<Scalar>>
template<ValidPointType OtherPointType, ValidQuaternionType OtherQuaternionType>
mundy::Circle3D< Scalar, PointType, QuaternionType >::Circle3D ( const OtherPointType & center,
const OtherQuaternionType & orientation,
const value_type & radius )
inlineconstexpr
Parameters
[in]centerThe center (in the lab frame) of the Circle3D.
[in]orientationThe quaternion orientation mapping a circle with normal in the z-direction to the lab frame.
[in]radiusThe radius of the circle.

◆ ~Circle3D()

template<typename Scalar, ValidPointType PointType = Point<Scalar>, ValidQuaternionType QuaternionType = Quaternion<Scalar>>
mundy::Circle3D< Scalar, PointType, QuaternionType >::~Circle3D ( )
default

◆ Circle3D() [4/7]

template<typename Scalar, ValidPointType PointType = Point<Scalar>, ValidQuaternionType QuaternionType = Quaternion<Scalar>>
mundy::Circle3D< Scalar, PointType, QuaternionType >::Circle3D ( const Circle3D< value_type, point_t, orientation_t > & other)
inlineconstexpr

◆ Circle3D() [5/7]

template<typename Scalar, ValidPointType PointType = Point<Scalar>, ValidQuaternionType QuaternionType = Quaternion<Scalar>>
template<typename OtherCircle3DType>
mundy::Circle3D< Scalar, PointType, QuaternionType >::Circle3D ( const OtherCircle3DType & other)
inlineconstexpr

◆ Circle3D() [6/7]

template<typename Scalar, ValidPointType PointType = Point<Scalar>, ValidQuaternionType QuaternionType = Quaternion<Scalar>>
mundy::Circle3D< Scalar, PointType, QuaternionType >::Circle3D ( Circle3D< value_type, point_t, orientation_t > && other)
inlineconstexpr

◆ Circle3D() [7/7]

template<typename Scalar, ValidPointType PointType = Point<Scalar>, ValidQuaternionType QuaternionType = Quaternion<Scalar>>
template<typename OtherCircle3DType>
mundy::Circle3D< Scalar, PointType, QuaternionType >::Circle3D ( OtherCircle3DType && other)
inlineconstexpr

◆ operator=() [5/42]

template<typename Scalar, ValidPointType PointType = Point<Scalar>, ValidQuaternionType QuaternionType = Quaternion<Scalar>>
Circle3D< value_type, point_t, orientation_t > & mundy::Circle3D< Scalar, PointType, QuaternionType >::operator= ( const Circle3D< value_type, point_t, orientation_t > & other)
inlineconstexpr

◆ operator=() [6/42]

template<typename Scalar, ValidPointType PointType = Point<Scalar>, ValidQuaternionType QuaternionType = Quaternion<Scalar>>
template<typename OtherCircle3DType>
Circle3D< value_type, point_t, orientation_t > & mundy::Circle3D< Scalar, PointType, QuaternionType >::operator= ( const OtherCircle3DType & other)
inlineconstexpr

◆ operator=() [7/42]

template<typename Scalar, ValidPointType PointType = Point<Scalar>, ValidQuaternionType QuaternionType = Quaternion<Scalar>>
Circle3D< value_type, point_t, orientation_t > & mundy::Circle3D< Scalar, PointType, QuaternionType >::operator= ( Circle3D< value_type, point_t, orientation_t > && other)
inlineconstexpr

◆ operator=() [8/42]

template<typename Scalar, ValidPointType PointType = Point<Scalar>, ValidQuaternionType QuaternionType = Quaternion<Scalar>>
template<typename OtherCircle3DType>
Circle3D< value_type, point_t, orientation_t > & mundy::Circle3D< Scalar, PointType, QuaternionType >::operator= ( OtherCircle3DType && other)
inlineconstexpr

◆ center() [1/14]

template<typename Scalar, ValidPointType PointType = Point<Scalar>, ValidQuaternionType QuaternionType = Quaternion<Scalar>>
const point_t & mundy::Circle3D< Scalar, PointType, QuaternionType >::center ( ) const
inlineconstexpr

◆ center() [2/14]

template<typename Scalar, ValidPointType PointType = Point<Scalar>, ValidQuaternionType QuaternionType = Quaternion<Scalar>>
point_t & mundy::Circle3D< Scalar, PointType, QuaternionType >::center ( )
inlineconstexpr

◆ orientation() [1/10]

template<typename Scalar, ValidPointType PointType = Point<Scalar>, ValidQuaternionType QuaternionType = Quaternion<Scalar>>
const orientation_t & mundy::Circle3D< Scalar, PointType, QuaternionType >::orientation ( ) const
inlineconstexpr

◆ orientation() [2/10]

template<typename Scalar, ValidPointType PointType = Point<Scalar>, ValidQuaternionType QuaternionType = Quaternion<Scalar>>
orientation_t & mundy::Circle3D< Scalar, PointType, QuaternionType >::orientation ( )
inlineconstexpr

◆ radius() [1/8]

template<typename Scalar, ValidPointType PointType = Point<Scalar>, ValidQuaternionType QuaternionType = Quaternion<Scalar>>
const value_type & mundy::Circle3D< Scalar, PointType, QuaternionType >::radius ( ) const
inlineconstexpr

◆ radius() [2/8]

template<typename Scalar, ValidPointType PointType = Point<Scalar>, ValidQuaternionType QuaternionType = Quaternion<Scalar>>
value_type & mundy::Circle3D< Scalar, PointType, QuaternionType >::radius ( )
inlineconstexpr

◆ set_center() [1/13]

template<typename Scalar, ValidPointType PointType = Point<Scalar>, ValidQuaternionType QuaternionType = Quaternion<Scalar>>
template<ValidPointType OtherPointType>
void mundy::Circle3D< Scalar, PointType, QuaternionType >::set_center ( const OtherPointType & center)
inlineconstexpr
Parameters
[in]centerThe new center.

◆ set_center() [2/13]

template<typename Scalar, ValidPointType PointType = Point<Scalar>, ValidQuaternionType QuaternionType = Quaternion<Scalar>>
void mundy::Circle3D< Scalar, PointType, QuaternionType >::set_center ( const value_type & x,
const value_type & y,
const value_type & z )
inlineconstexpr
Parameters
[in]xThe x-coordinate.
[in]yThe y-coordinate.
[in]zThe z-coordinate.

◆ set_orientation() [1/9]

template<typename Scalar, ValidPointType PointType = Point<Scalar>, ValidQuaternionType QuaternionType = Quaternion<Scalar>>
void mundy::Circle3D< Scalar, PointType, QuaternionType >::set_orientation ( const orientation_t & orientation)
inlineconstexpr
Parameters
[in]orientationThe new orientation.

◆ set_orientation() [2/9]

template<typename Scalar, ValidPointType PointType = Point<Scalar>, ValidQuaternionType QuaternionType = Quaternion<Scalar>>
void mundy::Circle3D< Scalar, PointType, QuaternionType >::set_orientation ( const value_type & qw,
const value_type & qx,
const value_type & qy,
const value_type & qz )
inlineconstexpr
Parameters
[in]qwThe scalar-component of the orientation quaternion.
[in]qxThe x-component of the orientation quaternion.
[in]qyThe y-component of the orientation quaternion.
[in]qzThe z-component of the orientation quaternion.

◆ set_radius() [1/4]

template<typename Scalar, ValidPointType PointType = Point<Scalar>, ValidQuaternionType QuaternionType = Quaternion<Scalar>>
void mundy::Circle3D< Scalar, PointType, QuaternionType >::set_radius ( const value_type & radius)
inlineconstexpr
Parameters
[in]radiusThe new major radius.

◆ operator<<() [2/11]

template<ValidCircle3DType Circle3DType>
std::ostream & mundy::operator<< ( std::ostream & os,
const Circle3DType & circle3d )

◆ Ellipsoid() [1/9]

template<typename Scalar, ValidPointType PointType = Point<Scalar>, ValidQuaternionType OrientationType = Quaternion<Scalar>>
mundy::Ellipsoid< Scalar, PointType, OrientationType >::Ellipsoid ( )
inlineconstexpr

◆ Ellipsoid() [2/9]

template<typename Scalar, ValidPointType PointType = Point<Scalar>, ValidQuaternionType OrientationType = Quaternion<Scalar>>
mundy::Ellipsoid< Scalar, PointType, OrientationType >::Ellipsoid ( const point_t & center,
const value_type & radius_1,
const value_type & radius_2,
const value_type & radius_3 )
inlineconstexpr
Parameters
[in]centerThe center of the Ellipsoid.
[in]radius_1The first axis radius of the Ellipsoid.
[in]radius_2The second axis radius of the Ellipsoid.
[in]radius_3The third axis radius of the Ellipsoid.

◆ Ellipsoid() [3/9]

template<typename Scalar, ValidPointType PointType = Point<Scalar>, ValidQuaternionType OrientationType = Quaternion<Scalar>>
mundy::Ellipsoid< Scalar, PointType, OrientationType >::Ellipsoid ( const value_type & x,
const value_type & y,
const value_type & z,
const value_type & qw,
const value_type & qx,
const value_type & qy,
const value_type & qz,
const value_type & radius_1,
const value_type & radius_2,
const value_type & radius_3 )
inlineconstexpr
Parameters
[in]xThe x-coordinate of the center.
[in]yThe y-coordinate of the center.
[in]zThe z-coordinate of the center.
[in]qwThe scalar-component of the orientation quaternion.
[in]qxThe x-component of the orientation quaternion.
[in]qyThe y-component of the orientation quaternion.
[in]qzThe z-component of the orientation quaternion.
[in]radius_1The first axis length of the Ellipsoid.
[in]radius_2The second axis length of the Ellipsoid.
[in]radius_3The third axis length of the Ellipsoid.

◆ Ellipsoid() [4/9]

template<typename Scalar, ValidPointType PointType = Point<Scalar>, ValidQuaternionType OrientationType = Quaternion<Scalar>>
mundy::Ellipsoid< Scalar, PointType, OrientationType >::Ellipsoid ( const point_t & center,
const orientation_t & orientation,
const point_t & radii )
inlineconstexpr
Parameters
[in]centerThe center of the Ellipsoid.
[in]radiiThe axis radii of the Ellipsoid.

◆ Ellipsoid() [5/9]

template<typename Scalar, ValidPointType PointType = Point<Scalar>, ValidQuaternionType OrientationType = Quaternion<Scalar>>
mundy::Ellipsoid< Scalar, PointType, OrientationType >::Ellipsoid ( const point_t & center,
const orientation_t & orientation,
const value_type & radius_1,
const value_type & radius_2,
const value_type & radius_3 )
inlineconstexpr
Parameters
[in]centerThe center of the Ellipsoid.
[in]radiiThe axis radii of the Ellipsoid.

◆ ~Ellipsoid()

template<typename Scalar, ValidPointType PointType = Point<Scalar>, ValidQuaternionType OrientationType = Quaternion<Scalar>>
mundy::Ellipsoid< Scalar, PointType, OrientationType >::~Ellipsoid ( )
constexprdefault

◆ Ellipsoid() [6/9]

template<typename Scalar, ValidPointType PointType = Point<Scalar>, ValidQuaternionType OrientationType = Quaternion<Scalar>>
mundy::Ellipsoid< Scalar, PointType, OrientationType >::Ellipsoid ( const Ellipsoid< value_type, point_t, orientation_t > & other)
inlineconstexpr

◆ Ellipsoid() [7/9]

template<typename Scalar, ValidPointType PointType = Point<Scalar>, ValidQuaternionType OrientationType = Quaternion<Scalar>>
template<typename OtherEllipsoidType>
mundy::Ellipsoid< Scalar, PointType, OrientationType >::Ellipsoid ( const OtherEllipsoidType & other)
inlineconstexpr

◆ Ellipsoid() [8/9]

template<typename Scalar, ValidPointType PointType = Point<Scalar>, ValidQuaternionType OrientationType = Quaternion<Scalar>>
mundy::Ellipsoid< Scalar, PointType, OrientationType >::Ellipsoid ( Ellipsoid< value_type, point_t, orientation_t > && other)
inlineconstexpr

◆ Ellipsoid() [9/9]

template<typename Scalar, ValidPointType PointType = Point<Scalar>, ValidQuaternionType OrientationType = Quaternion<Scalar>>
template<typename OtherEllipsoidType>
mundy::Ellipsoid< Scalar, PointType, OrientationType >::Ellipsoid ( OtherEllipsoidType && other)
inlineconstexpr

◆ operator=() [9/42]

template<typename Scalar, ValidPointType PointType = Point<Scalar>, ValidQuaternionType OrientationType = Quaternion<Scalar>>
Ellipsoid< value_type, point_t, orientation_t > & mundy::Ellipsoid< Scalar, PointType, OrientationType >::operator= ( const Ellipsoid< value_type, point_t, orientation_t > & other)
inlineconstexpr

◆ operator=() [10/42]

template<typename Scalar, ValidPointType PointType = Point<Scalar>, ValidQuaternionType OrientationType = Quaternion<Scalar>>
template<typename OtherEllipsoidType>
Ellipsoid< value_type, point_t, orientation_t > & mundy::Ellipsoid< Scalar, PointType, OrientationType >::operator= ( const OtherEllipsoidType & other)
inlineconstexpr

◆ operator=() [11/42]

template<typename Scalar, ValidPointType PointType = Point<Scalar>, ValidQuaternionType OrientationType = Quaternion<Scalar>>
Ellipsoid< value_type, point_t, orientation_t > & mundy::Ellipsoid< Scalar, PointType, OrientationType >::operator= ( Ellipsoid< value_type, point_t, orientation_t > && other)
inlineconstexpr

◆ operator=() [12/42]

template<typename Scalar, ValidPointType PointType = Point<Scalar>, ValidQuaternionType OrientationType = Quaternion<Scalar>>
template<typename OtherEllipsoidType>
Ellipsoid< value_type, point_t, orientation_t > & mundy::Ellipsoid< Scalar, PointType, OrientationType >::operator= ( OtherEllipsoidType && other)
inlineconstexpr

◆ center() [3/14]

template<typename Scalar, ValidPointType PointType = Point<Scalar>, ValidQuaternionType OrientationType = Quaternion<Scalar>>
const point_t & mundy::Ellipsoid< Scalar, PointType, OrientationType >::center ( ) const
inlineconstexpr

◆ center() [4/14]

template<typename Scalar, ValidPointType PointType = Point<Scalar>, ValidQuaternionType OrientationType = Quaternion<Scalar>>
point_t & mundy::Ellipsoid< Scalar, PointType, OrientationType >::center ( )
inlineconstexpr

◆ orientation() [3/10]

template<typename Scalar, ValidPointType PointType = Point<Scalar>, ValidQuaternionType OrientationType = Quaternion<Scalar>>
const orientation_t & mundy::Ellipsoid< Scalar, PointType, OrientationType >::orientation ( ) const
inlineconstexpr

◆ orientation() [4/10]

template<typename Scalar, ValidPointType PointType = Point<Scalar>, ValidQuaternionType OrientationType = Quaternion<Scalar>>
orientation_t & mundy::Ellipsoid< Scalar, PointType, OrientationType >::orientation ( )
inlineconstexpr

◆ radii() [1/2]

template<typename Scalar, ValidPointType PointType = Point<Scalar>, ValidQuaternionType OrientationType = Quaternion<Scalar>>
const point_t & mundy::Ellipsoid< Scalar, PointType, OrientationType >::radii ( ) const
inlineconstexpr

◆ radii() [2/2]

template<typename Scalar, ValidPointType PointType = Point<Scalar>, ValidQuaternionType OrientationType = Quaternion<Scalar>>
point_t & mundy::Ellipsoid< Scalar, PointType, OrientationType >::radii ( )
inlineconstexpr

◆ radius_1() [1/2]

template<typename Scalar, ValidPointType PointType = Point<Scalar>, ValidQuaternionType OrientationType = Quaternion<Scalar>>
const value_type & mundy::Ellipsoid< Scalar, PointType, OrientationType >::radius_1 ( ) const
inlineconstexpr

◆ radius_1() [2/2]

template<typename Scalar, ValidPointType PointType = Point<Scalar>, ValidQuaternionType OrientationType = Quaternion<Scalar>>
value_type & mundy::Ellipsoid< Scalar, PointType, OrientationType >::radius_1 ( )
inlineconstexpr

◆ radius_2() [1/2]

template<typename Scalar, ValidPointType PointType = Point<Scalar>, ValidQuaternionType OrientationType = Quaternion<Scalar>>
const value_type & mundy::Ellipsoid< Scalar, PointType, OrientationType >::radius_2 ( ) const
inlineconstexpr

◆ radius_2() [2/2]

template<typename Scalar, ValidPointType PointType = Point<Scalar>, ValidQuaternionType OrientationType = Quaternion<Scalar>>
value_type & mundy::Ellipsoid< Scalar, PointType, OrientationType >::radius_2 ( )
inlineconstexpr

◆ radius_3() [1/2]

template<typename Scalar, ValidPointType PointType = Point<Scalar>, ValidQuaternionType OrientationType = Quaternion<Scalar>>
const value_type & mundy::Ellipsoid< Scalar, PointType, OrientationType >::radius_3 ( ) const
inlineconstexpr

◆ radius_3() [2/2]

template<typename Scalar, ValidPointType PointType = Point<Scalar>, ValidQuaternionType OrientationType = Quaternion<Scalar>>
value_type & mundy::Ellipsoid< Scalar, PointType, OrientationType >::radius_3 ( )
inlineconstexpr

◆ set_center() [3/13]

template<typename Scalar, ValidPointType PointType = Point<Scalar>, ValidQuaternionType OrientationType = Quaternion<Scalar>>
void mundy::Ellipsoid< Scalar, PointType, OrientationType >::set_center ( const point_t & center)
inlineconstexpr
Parameters
[in]centerThe new center.

◆ set_center() [4/13]

template<typename Scalar, ValidPointType PointType = Point<Scalar>, ValidQuaternionType OrientationType = Quaternion<Scalar>>
void mundy::Ellipsoid< Scalar, PointType, OrientationType >::set_center ( const value_type & x,
const value_type & y,
const value_type & z )
inlineconstexpr
Parameters
[in]xThe x-coordinate.
[in]yThe y-coordinate.
[in]zThe z-coordinate.

◆ set_orientation() [3/9]

template<typename Scalar, ValidPointType PointType = Point<Scalar>, ValidQuaternionType OrientationType = Quaternion<Scalar>>
void mundy::Ellipsoid< Scalar, PointType, OrientationType >::set_orientation ( const orientation_t & orientation)
inlineconstexpr
Parameters
[in]orientationThe new orientation.

◆ set_orientation() [4/9]

template<typename Scalar, ValidPointType PointType = Point<Scalar>, ValidQuaternionType OrientationType = Quaternion<Scalar>>
void mundy::Ellipsoid< Scalar, PointType, OrientationType >::set_orientation ( const value_type & qw,
const value_type & qx,
const value_type & qy,
const value_type & qz )
inlineconstexpr
Parameters
[in]qwThe scalar-component of the orientation quaternion.
[in]qxThe x-component of the orientation quaternion.
[in]qyThe y-component of the orientation quaternion.
[in]qzThe z-component of the orientation quaternion.

◆ set_radii() [1/2]

template<typename Scalar, ValidPointType PointType = Point<Scalar>, ValidQuaternionType OrientationType = Quaternion<Scalar>>
void mundy::Ellipsoid< Scalar, PointType, OrientationType >::set_radii ( const point_t & radii)
inlineconstexpr
Parameters
[in]radiiThe new radii.

◆ set_radii() [2/2]

template<typename Scalar, ValidPointType PointType = Point<Scalar>, ValidQuaternionType OrientationType = Quaternion<Scalar>>
void mundy::Ellipsoid< Scalar, PointType, OrientationType >::set_radii ( const value_type & radius_1,
const value_type & radius_2,
const value_type & radius_3 )
inlineconstexpr
Parameters
[in]radius_1The new first axis radius.
[in]radius_2The new second axis radius.
[in]radius_3The new third axis radius.

◆ operator<<() [3/11]

template<ValidEllipsoidType EllipsoidType>
std::ostream & mundy::operator<< ( std::ostream & os,
const EllipsoidType & ellipsoid )

◆ map_body_frame_normal_to_ellipsoid()

template<ValidEllipsoidType EllipsoidType>
Point< typename EllipsoidType::value_type > mundy::map_body_frame_normal_to_ellipsoid ( const Vector3< typename EllipsoidType::value_type > & body_frame_nhat,
const EllipsoidType & ellipsoid )
constexpr

◆ map_surface_normal_to_foot_point_on_ellipsoid()

template<typename Scalar, ValidAccessor< Scalar > Accessor1, ValidEllipsoidType EllipsoidType>
Vector3< Scalar > mundy::map_surface_normal_to_foot_point_on_ellipsoid ( const AVector3< Scalar, Accessor1 > & lab_frame_ellipsoid_nhat,
const EllipsoidType & ellipsoid )
constexpr

◆ Line() [1/7]

template<typename Scalar, ValidPointType PointType = Point<Scalar>>
mundy::Line< Scalar, PointType >::Line ( )
inlineconstexpr

◆ Line() [2/7]

template<typename Scalar, ValidPointType PointType = Point<Scalar>>
mundy::Line< Scalar, PointType >::Line ( const point_t & center,
const vector_t & direction )
inlineconstexpr
Parameters
[in]centerThe center of the Line.
[in]directionThe direction of the Line.

◆ Line() [3/7]

template<typename Scalar, ValidPointType PointType = Point<Scalar>>
template<ValidPointType OtherPointType, ValidVectorType OtherVectorType>
mundy::Line< Scalar, PointType >::Line ( const OtherPointType & center,
const OtherVectorType & direction )
inlineconstexpr
Parameters
[in]centerThe center of the Line.
[in]directionThe direction of the Line.

◆ ~Line()

template<typename Scalar, ValidPointType PointType = Point<Scalar>>
mundy::Line< Scalar, PointType >::~Line ( )
constexprdefault

◆ Line() [4/7]

template<typename Scalar, ValidPointType PointType = Point<Scalar>>
mundy::Line< Scalar, PointType >::Line ( const Line< value_type, point_t > & other)
inlineconstexpr

◆ Line() [5/7]

template<typename Scalar, ValidPointType PointType = Point<Scalar>>
template<typename OtherLineType>
mundy::Line< Scalar, PointType >::Line ( const OtherLineType & other)
inlineconstexpr

◆ Line() [6/7]

template<typename Scalar, ValidPointType PointType = Point<Scalar>>
mundy::Line< Scalar, PointType >::Line ( Line< value_type, point_t > && other)
inlineconstexpr

◆ Line() [7/7]

template<typename Scalar, ValidPointType PointType = Point<Scalar>>
template<typename OtherLineType>
mundy::Line< Scalar, PointType >::Line ( OtherLineType && other)
inlineconstexpr

◆ operator=() [13/42]

template<typename Scalar, ValidPointType PointType = Point<Scalar>>
Line< value_type, point_t > & mundy::Line< Scalar, PointType >::operator= ( const Line< value_type, point_t > & other)
inlineconstexpr

◆ operator=() [14/42]

template<typename Scalar, ValidPointType PointType = Point<Scalar>>
template<typename OtherLineType>
Line< value_type, point_t > & mundy::Line< Scalar, PointType >::operator= ( const OtherLineType & other)
inlineconstexpr

◆ operator=() [15/42]

template<typename Scalar, ValidPointType PointType = Point<Scalar>>
Line< value_type, point_t > & mundy::Line< Scalar, PointType >::operator= ( Line< value_type, point_t > && other)
inlineconstexpr

◆ operator=() [16/42]

template<typename Scalar, ValidPointType PointType = Point<Scalar>>
template<typename OtherLineType>
Line< value_type, point_t > & mundy::Line< Scalar, PointType >::operator= ( OtherLineType && other)
inlineconstexpr

◆ center() [5/14]

template<typename Scalar, ValidPointType PointType = Point<Scalar>>
const point_t & mundy::Line< Scalar, PointType >::center ( ) const
inlineconstexpr

◆ center() [6/14]

template<typename Scalar, ValidPointType PointType = Point<Scalar>>
point_t & mundy::Line< Scalar, PointType >::center ( )
inlineconstexpr

◆ direction() [1/2]

template<typename Scalar, ValidPointType PointType = Point<Scalar>>
const vector_t & mundy::Line< Scalar, PointType >::direction ( ) const
inlineconstexpr

◆ direction() [2/2]

template<typename Scalar, ValidPointType PointType = Point<Scalar>>
vector_t & mundy::Line< Scalar, PointType >::direction ( )
inlineconstexpr

◆ set_center() [5/13]

template<typename Scalar, ValidPointType PointType = Point<Scalar>>
template<ValidPointType OtherPointType>
void mundy::Line< Scalar, PointType >::set_center ( const OtherPointType & center)
inlineconstexpr
Parameters
[in]centerThe new center.

◆ set_center() [6/13]

template<typename Scalar, ValidPointType PointType = Point<Scalar>>
void mundy::Line< Scalar, PointType >::set_center ( const Scalar & x,
const Scalar & y,
const Scalar & z )
inlineconstexpr
Parameters
[in]xThe x-coordinate.
[in]yThe y-coordinate.
[in]zThe z-coordinate.

◆ set_direction() [1/2]

template<typename Scalar, ValidPointType PointType = Point<Scalar>>
template<ValidVectorType OtherVectorType>
void mundy::Line< Scalar, PointType >::set_direction ( const OtherVectorType & direction)
inlineconstexpr
Parameters
[in]directionThe new direction.

◆ set_direction() [2/2]

template<typename Scalar, ValidPointType PointType = Point<Scalar>>
void mundy::Line< Scalar, PointType >::set_direction ( const Scalar & x,
const Scalar & y,
const Scalar & z )
inlineconstexpr
Parameters
[in]xThe x-component.
[in]yThe y-component.
[in]zThe z-component.

◆ operator<<() [4/11]

template<ValidLineType LineType>
std::ostream & mundy::operator<< ( std::ostream & os,
const LineType & line )

◆ LineSegment() [1/7]

template<typename Scalar, ValidPointType StartPointType = Point<Scalar>, ValidPointType EndPointType = Point<Scalar>>
mundy::LineSegment< Scalar, StartPointType, EndPointType >::LineSegment ( )
inlineconstexpr

◆ LineSegment() [2/7]

template<typename Scalar, ValidPointType StartPointType = Point<Scalar>, ValidPointType EndPointType = Point<Scalar>>
mundy::LineSegment< Scalar, StartPointType, EndPointType >::LineSegment ( const start_point_t & start,
const end_point_t & end )
inlineconstexpr
Parameters
[in]startThe start of the LineSegment.
[in]endThe end of the LineSegment.

◆ LineSegment() [3/7]

template<typename Scalar, ValidPointType StartPointType = Point<Scalar>, ValidPointType EndPointType = Point<Scalar>>
template<ValidPointType OtherStartPointType, ValidPointType OtherEndPointType>
mundy::LineSegment< Scalar, StartPointType, EndPointType >::LineSegment ( const OtherStartPointType & start,
const OtherEndPointType & end )
inlineconstexpr
Parameters
[in]startThe start of the LineSegment.
[in]endThe end of the LineSegment.

◆ ~LineSegment()

template<typename Scalar, ValidPointType StartPointType = Point<Scalar>, ValidPointType EndPointType = Point<Scalar>>
mundy::LineSegment< Scalar, StartPointType, EndPointType >::~LineSegment ( )
constexprdefault

◆ LineSegment() [4/7]

template<typename Scalar, ValidPointType StartPointType = Point<Scalar>, ValidPointType EndPointType = Point<Scalar>>
mundy::LineSegment< Scalar, StartPointType, EndPointType >::LineSegment ( const LineSegment< value_type, start_point_t, end_point_t > & other)
inlineconstexpr

◆ LineSegment() [5/7]

template<typename Scalar, ValidPointType StartPointType = Point<Scalar>, ValidPointType EndPointType = Point<Scalar>>
template<typename OtherLineSegmentType>
mundy::LineSegment< Scalar, StartPointType, EndPointType >::LineSegment ( const OtherLineSegmentType & other)
inlineconstexpr

◆ LineSegment() [6/7]

template<typename Scalar, ValidPointType StartPointType = Point<Scalar>, ValidPointType EndPointType = Point<Scalar>>
mundy::LineSegment< Scalar, StartPointType, EndPointType >::LineSegment ( LineSegment< value_type, start_point_t, end_point_t > && other)
inlineconstexpr

◆ LineSegment() [7/7]

template<typename Scalar, ValidPointType StartPointType = Point<Scalar>, ValidPointType EndPointType = Point<Scalar>>
template<typename OtherLineSegmentType>
mundy::LineSegment< Scalar, StartPointType, EndPointType >::LineSegment ( OtherLineSegmentType && other)
inlineconstexpr

◆ operator=() [17/42]

template<typename Scalar, ValidPointType StartPointType = Point<Scalar>, ValidPointType EndPointType = Point<Scalar>>
LineSegment< value_type, start_point_t, end_point_t > & mundy::LineSegment< Scalar, StartPointType, EndPointType >::operator= ( const LineSegment< value_type, start_point_t, end_point_t > & other)
inlineconstexpr

◆ operator=() [18/42]

template<typename Scalar, ValidPointType StartPointType = Point<Scalar>, ValidPointType EndPointType = Point<Scalar>>
template<typename OtherLineSegmentType>
LineSegment< value_type, start_point_t, end_point_t > & mundy::LineSegment< Scalar, StartPointType, EndPointType >::operator= ( const OtherLineSegmentType & other)
inlineconstexpr

◆ operator=() [19/42]

template<typename Scalar, ValidPointType StartPointType = Point<Scalar>, ValidPointType EndPointType = Point<Scalar>>
LineSegment< value_type, start_point_t, end_point_t > & mundy::LineSegment< Scalar, StartPointType, EndPointType >::operator= ( LineSegment< value_type, start_point_t, end_point_t > && other)
inlineconstexpr

◆ operator=() [20/42]

template<typename Scalar, ValidPointType StartPointType = Point<Scalar>, ValidPointType EndPointType = Point<Scalar>>
template<typename OtherLineSegmentType>
LineSegment< value_type, start_point_t, end_point_t > & mundy::LineSegment< Scalar, StartPointType, EndPointType >::operator= ( OtherLineSegmentType && other)
inlineconstexpr

◆ start() [1/6]

template<typename Scalar, ValidPointType StartPointType = Point<Scalar>, ValidPointType EndPointType = Point<Scalar>>
const start_point_t & mundy::LineSegment< Scalar, StartPointType, EndPointType >::start ( ) const
inlineconstexpr

◆ start() [2/6]

template<typename Scalar, ValidPointType StartPointType = Point<Scalar>, ValidPointType EndPointType = Point<Scalar>>
start_point_t & mundy::LineSegment< Scalar, StartPointType, EndPointType >::start ( )
inlineconstexpr

◆ end() [1/6]

template<typename Scalar, ValidPointType StartPointType = Point<Scalar>, ValidPointType EndPointType = Point<Scalar>>
const end_point_t & mundy::LineSegment< Scalar, StartPointType, EndPointType >::end ( ) const
inlineconstexpr

◆ end() [2/6]

template<typename Scalar, ValidPointType StartPointType = Point<Scalar>, ValidPointType EndPointType = Point<Scalar>>
end_point_t & mundy::LineSegment< Scalar, StartPointType, EndPointType >::end ( )
inlineconstexpr

◆ set_start() [1/6]

template<typename Scalar, ValidPointType StartPointType = Point<Scalar>, ValidPointType EndPointType = Point<Scalar>>
template<ValidPointType OtherPointType>
void mundy::LineSegment< Scalar, StartPointType, EndPointType >::set_start ( const OtherPointType & start)
inlineconstexpr
Parameters
[in]startThe new start point.

◆ set_start() [2/6]

template<typename Scalar, ValidPointType StartPointType = Point<Scalar>, ValidPointType EndPointType = Point<Scalar>>
void mundy::LineSegment< Scalar, StartPointType, EndPointType >::set_start ( const Scalar & x,
const Scalar & y,
const Scalar & z )
inlineconstexpr
Parameters
[in]xThe x-coordinate.
[in]yThe y-coordinate.
[in]zThe z-coordinate.

◆ set_end() [1/6]

template<typename Scalar, ValidPointType StartPointType = Point<Scalar>, ValidPointType EndPointType = Point<Scalar>>
template<ValidPointType OtherPointType>
void mundy::LineSegment< Scalar, StartPointType, EndPointType >::set_end ( const OtherPointType & end)
inlineconstexpr
Parameters
[in]endThe new end point.

◆ set_end() [2/6]

template<typename Scalar, ValidPointType StartPointType = Point<Scalar>, ValidPointType EndPointType = Point<Scalar>>
void mundy::LineSegment< Scalar, StartPointType, EndPointType >::set_end ( const Scalar & x,
const Scalar & y,
const Scalar & z )
inlineconstexpr
Parameters
[in]xThe x-coordinate.
[in]yThe y-coordinate.
[in]zThe z-coordinate.

◆ operator<<() [5/11]

template<ValidLineSegmentType LineSegmentType>
std::ostream & mundy::operator<< ( std::ostream & os,
const LineSegmentType & line_segment )

◆ OBB() [1/6]

template<typename Scalar, ValidPointType PointType = Point<Scalar>, ValidQuaternionType QuaternionType = Quaternion<Scalar>, ValidVector3Type HalfExtentsType = Vector3<Scalar>>
mundy::OBB< Scalar, PointType, QuaternionType, HalfExtentsType >::OBB ( )
inlineconstexpr

◆ OBB() [2/6]

template<typename Scalar, ValidPointType PointType = Point<Scalar>, ValidQuaternionType QuaternionType = Quaternion<Scalar>, ValidVector3Type HalfExtentsType = Vector3<Scalar>>
mundy::OBB< Scalar, PointType, QuaternionType, HalfExtentsType >::OBB ( const point_t & center,
const value_type & half_extent )
inlineconstexpr
Parameters
[in]centerCentroid of the box in world space.
[in]half_extentHalf-length of the box along each local axis.

◆ OBB() [3/6]

template<typename Scalar, ValidPointType PointType = Point<Scalar>, ValidQuaternionType QuaternionType = Quaternion<Scalar>, ValidVector3Type HalfExtentsType = Vector3<Scalar>>
mundy::OBB< Scalar, PointType, QuaternionType, HalfExtentsType >::OBB ( const point_t & center,
const orientation_t & orientation,
const half_extents_t & half_extents )
inlineconstexpr
Parameters
[in]centerCentroid of the box in world space.
[in]orientationUnit quaternion mapping local axes to world space.
[in]half_extentsHalf-lengths along each local axis (must be non-negative).

◆ OBB() [4/6]

template<typename Scalar, ValidPointType PointType = Point<Scalar>, ValidQuaternionType QuaternionType = Quaternion<Scalar>, ValidVector3Type HalfExtentsType = Vector3<Scalar>>
mundy::OBB< Scalar, PointType, QuaternionType, HalfExtentsType >::OBB ( const point_t & center,
const orientation_t & orientation,
const value_type & hx,
const value_type & hy,
const value_type & hz )
inlineconstexpr
Parameters
[in]centerCentroid of the box in world space.
[in]orientationUnit quaternion mapping local axes to world space.
[in]hxHalf-length along local x-axis.
[in]hyHalf-length along local y-axis.
[in]hzHalf-length along local z-axis.

◆ ~OBB()

template<typename Scalar, ValidPointType PointType = Point<Scalar>, ValidQuaternionType QuaternionType = Quaternion<Scalar>, ValidVector3Type HalfExtentsType = Vector3<Scalar>>
mundy::OBB< Scalar, PointType, QuaternionType, HalfExtentsType >::~OBB ( )
constexprdefault

◆ OBB() [5/6]

template<typename Scalar, ValidPointType PointType = Point<Scalar>, ValidQuaternionType QuaternionType = Quaternion<Scalar>, ValidVector3Type HalfExtentsType = Vector3<Scalar>>
mundy::OBB< Scalar, PointType, QuaternionType, HalfExtentsType >::OBB ( const OBB< Scalar, PointType, QuaternionType, HalfExtentsType > & other)
inlineconstexpr

◆ OBB() [6/6]

template<typename Scalar, ValidPointType PointType = Point<Scalar>, ValidQuaternionType QuaternionType = Quaternion<Scalar>, ValidVector3Type HalfExtentsType = Vector3<Scalar>>
mundy::OBB< Scalar, PointType, QuaternionType, HalfExtentsType >::OBB ( OBB< Scalar, PointType, QuaternionType, HalfExtentsType > && other)
inlineconstexpr

◆ operator=() [21/42]

template<typename Scalar, ValidPointType PointType = Point<Scalar>, ValidQuaternionType QuaternionType = Quaternion<Scalar>, ValidVector3Type HalfExtentsType = Vector3<Scalar>>
OBB & mundy::OBB< Scalar, PointType, QuaternionType, HalfExtentsType >::operator= ( const OBB< Scalar, PointType, QuaternionType, HalfExtentsType > & other)
inlineconstexpr

◆ operator=() [22/42]

template<typename Scalar, ValidPointType PointType = Point<Scalar>, ValidQuaternionType QuaternionType = Quaternion<Scalar>, ValidVector3Type HalfExtentsType = Vector3<Scalar>>
OBB & mundy::OBB< Scalar, PointType, QuaternionType, HalfExtentsType >::operator= ( OBB< Scalar, PointType, QuaternionType, HalfExtentsType > && other)
inlineconstexpr

◆ center() [7/14]

template<typename Scalar, ValidPointType PointType = Point<Scalar>, ValidQuaternionType QuaternionType = Quaternion<Scalar>, ValidVector3Type HalfExtentsType = Vector3<Scalar>>
const point_t & mundy::OBB< Scalar, PointType, QuaternionType, HalfExtentsType >::center ( ) const
inlineconstexpr

◆ center() [8/14]

template<typename Scalar, ValidPointType PointType = Point<Scalar>, ValidQuaternionType QuaternionType = Quaternion<Scalar>, ValidVector3Type HalfExtentsType = Vector3<Scalar>>
point_t & mundy::OBB< Scalar, PointType, QuaternionType, HalfExtentsType >::center ( )
inlineconstexpr

◆ orientation() [5/10]

template<typename Scalar, ValidPointType PointType = Point<Scalar>, ValidQuaternionType QuaternionType = Quaternion<Scalar>, ValidVector3Type HalfExtentsType = Vector3<Scalar>>
const orientation_t & mundy::OBB< Scalar, PointType, QuaternionType, HalfExtentsType >::orientation ( ) const
inlineconstexpr

◆ orientation() [6/10]

template<typename Scalar, ValidPointType PointType = Point<Scalar>, ValidQuaternionType QuaternionType = Quaternion<Scalar>, ValidVector3Type HalfExtentsType = Vector3<Scalar>>
orientation_t & mundy::OBB< Scalar, PointType, QuaternionType, HalfExtentsType >::orientation ( )
inlineconstexpr

◆ half_extents() [1/2]

template<typename Scalar, ValidPointType PointType = Point<Scalar>, ValidQuaternionType QuaternionType = Quaternion<Scalar>, ValidVector3Type HalfExtentsType = Vector3<Scalar>>
const half_extents_t & mundy::OBB< Scalar, PointType, QuaternionType, HalfExtentsType >::half_extents ( ) const
inlineconstexpr

◆ half_extents() [2/2]

template<typename Scalar, ValidPointType PointType = Point<Scalar>, ValidQuaternionType QuaternionType = Quaternion<Scalar>, ValidVector3Type HalfExtentsType = Vector3<Scalar>>
half_extents_t & mundy::OBB< Scalar, PointType, QuaternionType, HalfExtentsType >::half_extents ( )
inlineconstexpr

◆ half_extent() [1/2]

template<typename Scalar, ValidPointType PointType = Point<Scalar>, ValidQuaternionType QuaternionType = Quaternion<Scalar>, ValidVector3Type HalfExtentsType = Vector3<Scalar>>
const value_type & mundy::OBB< Scalar, PointType, QuaternionType, HalfExtentsType >::half_extent ( int i) const
inlineconstexpr

◆ half_extent() [2/2]

template<typename Scalar, ValidPointType PointType = Point<Scalar>, ValidQuaternionType QuaternionType = Quaternion<Scalar>, ValidVector3Type HalfExtentsType = Vector3<Scalar>>
value_type & mundy::OBB< Scalar, PointType, QuaternionType, HalfExtentsType >::half_extent ( int i)
inlineconstexpr

◆ set_center() [7/13]

template<typename Scalar, ValidPointType PointType = Point<Scalar>, ValidQuaternionType QuaternionType = Quaternion<Scalar>, ValidVector3Type HalfExtentsType = Vector3<Scalar>>
template<ValidPointType OtherPointType>
void mundy::OBB< Scalar, PointType, QuaternionType, HalfExtentsType >::set_center ( const OtherPointType & c)
inlineconstexpr

◆ set_orientation() [5/9]

template<typename Scalar, ValidPointType PointType = Point<Scalar>, ValidQuaternionType QuaternionType = Quaternion<Scalar>, ValidVector3Type HalfExtentsType = Vector3<Scalar>>
template<ValidQuaternionType OtherQuatType>
void mundy::OBB< Scalar, PointType, QuaternionType, HalfExtentsType >::set_orientation ( const OtherQuatType & q)
inlineconstexpr

◆ set_half_extents() [1/2]

template<typename Scalar, ValidPointType PointType = Point<Scalar>, ValidQuaternionType QuaternionType = Quaternion<Scalar>, ValidVector3Type HalfExtentsType = Vector3<Scalar>>
template<ValidVector3Type OtherVecType>
void mundy::OBB< Scalar, PointType, QuaternionType, HalfExtentsType >::set_half_extents ( const OtherVecType & he)
inlineconstexpr

◆ set_half_extents() [2/2]

template<typename Scalar, ValidPointType PointType = Point<Scalar>, ValidQuaternionType QuaternionType = Quaternion<Scalar>, ValidVector3Type HalfExtentsType = Vector3<Scalar>>
void mundy::OBB< Scalar, PointType, QuaternionType, HalfExtentsType >::set_half_extents ( const value_type & hx,
const value_type & hy,
const value_type & hz )
inlineconstexpr

◆ intersects() [2/2]

template<ValidOBBType OBBType1, ValidOBBType OBBType2>
bool mundy::intersects ( const OBBType1 & a,
const OBBType2 & b )
constexpr

Tests 15 candidate separating axes: 3 face normals of A, 3 face normals of B, and 9 edge cross-products A_i × B_j. Returns true if the boxes overlap on every axis (i.e. no separating axis was found).

The relative rotation is computed via mat(conj(q_A)*q_B) rather than materialising both rotation matrices — consistent with the quaternion storage choice documented in the class header.

Parameters
[in]aFirst OBB.
[in]bSecond OBB.

◆ operator<<() [6/11]

template<ValidOBBType T>
std::ostream & mundy::operator<< ( std::ostream & os,
const T & obb )

◆ Ring() [1/7]

template<typename Scalar, ValidPointType PointType = Point<Scalar>, ValidQuaternionType QuaternionType = Quaternion<Scalar>>
mundy::Ring< Scalar, PointType, QuaternionType >::Ring ( )
inlineconstexpr

◆ Ring() [2/7]

template<typename Scalar, ValidPointType PointType = Point<Scalar>, ValidQuaternionType QuaternionType = Quaternion<Scalar>>
mundy::Ring< Scalar, PointType, QuaternionType >::Ring ( const point_t & center,
const orientation_t & orientation,
const value_type & major_radius,
const value_type & minor_radius )
inlineconstexpr
Parameters
[in]centerThe center of the Ring.
[in]orientationThe orientation of the Ring (as a quaternion).
[in]major_radiusThe radius of the center circle of the Ring.
[in]minor_radiusThe radius of the tube around said circle.

◆ Ring() [3/7]

template<typename Scalar, ValidPointType PointType = Point<Scalar>, ValidQuaternionType QuaternionType = Quaternion<Scalar>>
template<ValidPointType OtherPointType, ValidQuaternionType OtherQuaternionType>
mundy::Ring< Scalar, PointType, QuaternionType >::Ring ( const OtherPointType & center,
const OtherQuaternionType & orientation,
const value_type & major_radius,
const value_type & minor_radius )
inlineconstexpr
Parameters
[in]centerThe center of the Ring.
[in]orientationThe orientation of the Ring (as a quaternion).
[in]major_radiusThe radius of the center circle of the Ring.
[in]minor_radiusThe radius of the tube around said circle.

◆ ~Ring()

template<typename Scalar, ValidPointType PointType = Point<Scalar>, ValidQuaternionType QuaternionType = Quaternion<Scalar>>
mundy::Ring< Scalar, PointType, QuaternionType >::~Ring ( )
constexprdefault

◆ Ring() [4/7]

template<typename Scalar, ValidPointType PointType = Point<Scalar>, ValidQuaternionType QuaternionType = Quaternion<Scalar>>
mundy::Ring< Scalar, PointType, QuaternionType >::Ring ( const Ring< value_type, point_t, orientation_t > & other)
inlineconstexpr

◆ Ring() [5/7]

template<typename Scalar, ValidPointType PointType = Point<Scalar>, ValidQuaternionType QuaternionType = Quaternion<Scalar>>
template<typename OtherRingType>
mundy::Ring< Scalar, PointType, QuaternionType >::Ring ( const OtherRingType & other)
inlineconstexpr

◆ Ring() [6/7]

template<typename Scalar, ValidPointType PointType = Point<Scalar>, ValidQuaternionType QuaternionType = Quaternion<Scalar>>
mundy::Ring< Scalar, PointType, QuaternionType >::Ring ( Ring< value_type, point_t, orientation_t > && other)
inlineconstexpr

◆ Ring() [7/7]

template<typename Scalar, ValidPointType PointType = Point<Scalar>, ValidQuaternionType QuaternionType = Quaternion<Scalar>>
template<typename OtherRingType>
mundy::Ring< Scalar, PointType, QuaternionType >::Ring ( OtherRingType && other)
inlineconstexpr

◆ operator=() [23/42]

template<typename Scalar, ValidPointType PointType = Point<Scalar>, ValidQuaternionType QuaternionType = Quaternion<Scalar>>
Ring< value_type, point_t, orientation_t > & mundy::Ring< Scalar, PointType, QuaternionType >::operator= ( const Ring< value_type, point_t, orientation_t > & other)
inlineconstexpr

◆ operator=() [24/42]

template<typename Scalar, ValidPointType PointType = Point<Scalar>, ValidQuaternionType QuaternionType = Quaternion<Scalar>>
template<typename OtherRingType>
Ring< value_type, point_t, orientation_t > & mundy::Ring< Scalar, PointType, QuaternionType >::operator= ( const OtherRingType & other)
inlineconstexpr

◆ operator=() [25/42]

template<typename Scalar, ValidPointType PointType = Point<Scalar>, ValidQuaternionType QuaternionType = Quaternion<Scalar>>
Ring< value_type, point_t, orientation_t > & mundy::Ring< Scalar, PointType, QuaternionType >::operator= ( Ring< value_type, point_t, orientation_t > && other)
inlineconstexpr

◆ operator=() [26/42]

template<typename Scalar, ValidPointType PointType = Point<Scalar>, ValidQuaternionType QuaternionType = Quaternion<Scalar>>
template<typename OtherRingType>
Ring< value_type, point_t, orientation_t > & mundy::Ring< Scalar, PointType, QuaternionType >::operator= ( OtherRingType && other)
inlineconstexpr

◆ center_circle()

template<typename Scalar, ValidPointType PointType = Point<Scalar>, ValidQuaternionType QuaternionType = Quaternion<Scalar>>
const Circle3D< value_type, point_t, orientation_t > & mundy::Ring< Scalar, PointType, QuaternionType >::center_circle ( ) const
inlineconstexpr

◆ center() [9/14]

template<typename Scalar, ValidPointType PointType = Point<Scalar>, ValidQuaternionType QuaternionType = Quaternion<Scalar>>
const point_t & mundy::Ring< Scalar, PointType, QuaternionType >::center ( ) const
inlineconstexpr

◆ center() [10/14]

template<typename Scalar, ValidPointType PointType = Point<Scalar>, ValidQuaternionType QuaternionType = Quaternion<Scalar>>
point_t & mundy::Ring< Scalar, PointType, QuaternionType >::center ( )
inlineconstexpr

◆ orientation() [7/10]

template<typename Scalar, ValidPointType PointType = Point<Scalar>, ValidQuaternionType QuaternionType = Quaternion<Scalar>>
const orientation_t & mundy::Ring< Scalar, PointType, QuaternionType >::orientation ( ) const
inlineconstexpr

◆ orientation() [8/10]

template<typename Scalar, ValidPointType PointType = Point<Scalar>, ValidQuaternionType QuaternionType = Quaternion<Scalar>>
orientation_t & mundy::Ring< Scalar, PointType, QuaternionType >::orientation ( )
inlineconstexpr

◆ major_radius() [1/2]

template<typename Scalar, ValidPointType PointType = Point<Scalar>, ValidQuaternionType QuaternionType = Quaternion<Scalar>>
const value_type & mundy::Ring< Scalar, PointType, QuaternionType >::major_radius ( ) const
inlineconstexpr

◆ major_radius() [2/2]

template<typename Scalar, ValidPointType PointType = Point<Scalar>, ValidQuaternionType QuaternionType = Quaternion<Scalar>>
value_type & mundy::Ring< Scalar, PointType, QuaternionType >::major_radius ( )
inlineconstexpr

◆ minor_radius() [1/2]

template<typename Scalar, ValidPointType PointType = Point<Scalar>, ValidQuaternionType QuaternionType = Quaternion<Scalar>>
const value_type & mundy::Ring< Scalar, PointType, QuaternionType >::minor_radius ( ) const
inlineconstexpr

◆ minor_radius() [2/2]

template<typename Scalar, ValidPointType PointType = Point<Scalar>, ValidQuaternionType QuaternionType = Quaternion<Scalar>>
value_type & mundy::Ring< Scalar, PointType, QuaternionType >::minor_radius ( )
inlineconstexpr

◆ set_center() [8/13]

template<typename Scalar, ValidPointType PointType = Point<Scalar>, ValidQuaternionType QuaternionType = Quaternion<Scalar>>
template<ValidPointType OtherPointType>
void mundy::Ring< Scalar, PointType, QuaternionType >::set_center ( const OtherPointType & center)
inlineconstexpr
Parameters
[in]centerThe new center.

◆ set_center() [9/13]

template<typename Scalar, ValidPointType PointType = Point<Scalar>, ValidQuaternionType QuaternionType = Quaternion<Scalar>>
void mundy::Ring< Scalar, PointType, QuaternionType >::set_center ( const value_type & x,
const value_type & y,
const value_type & z )
inlineconstexpr
Parameters
[in]xThe x-coordinate.
[in]yThe y-coordinate.
[in]zThe z-coordinate.

◆ set_orientation() [6/9]

template<typename Scalar, ValidPointType PointType = Point<Scalar>, ValidQuaternionType QuaternionType = Quaternion<Scalar>>
void mundy::Ring< Scalar, PointType, QuaternionType >::set_orientation ( const orientation_t & orientation)
inlineconstexpr
Parameters
[in]orientationThe new orientation.

◆ set_orientation() [7/9]

template<typename Scalar, ValidPointType PointType = Point<Scalar>, ValidQuaternionType QuaternionType = Quaternion<Scalar>>
void mundy::Ring< Scalar, PointType, QuaternionType >::set_orientation ( const value_type & qw,
const value_type & qx,
const value_type & qy,
const value_type & qz )
inlineconstexpr
Parameters
[in]qwThe scalar-component of the orientation quaternion.
[in]qxThe x-component of the orientation quaternion.
[in]qyThe y-component of the orientation quaternion.
[in]qzThe z-component of the orientation quaternion.

◆ set_major_radius()

template<typename Scalar, ValidPointType PointType = Point<Scalar>, ValidQuaternionType QuaternionType = Quaternion<Scalar>>
void mundy::Ring< Scalar, PointType, QuaternionType >::set_major_radius ( const value_type & major_radius)
inlineconstexpr
Parameters
[in]major_radiusThe new major radius.

◆ set_minor_radius()

template<typename Scalar, ValidPointType PointType = Point<Scalar>, ValidQuaternionType QuaternionType = Quaternion<Scalar>>
void mundy::Ring< Scalar, PointType, QuaternionType >::set_minor_radius ( const value_type & minor_radius)
inlineconstexpr
Parameters
[in]minor_radiusThe new minor radius.

◆ operator<<() [7/11]

template<ValidRingType RingType>
std::ostream & mundy::operator<< ( std::ostream & os,
const RingType & ring )

◆ Sphere() [1/7]

template<typename Scalar, ValidPointType PointType = Point<Scalar>>
mundy::Sphere< Scalar, PointType >::Sphere ( )
inlineconstexpr

◆ Sphere() [2/7]

template<typename Scalar, ValidPointType PointType = Point<Scalar>>
mundy::Sphere< Scalar, PointType >::Sphere ( const point_t & center,
const value_type & radius )
inlineconstexpr
Parameters
[in]centerThe center of the Sphere.
[in]radiusThe radius of the Sphere.

◆ Sphere() [3/7]

template<typename Scalar, ValidPointType PointType = Point<Scalar>>
template<ValidPointType OtherPointType>
mundy::Sphere< Scalar, PointType >::Sphere ( const OtherPointType & center,
const value_type & radius )
inlineconstexpr
Parameters
[in]centerThe center of the Sphere.
[in]radiusThe radius of the Sphere.

◆ ~Sphere()

template<typename Scalar, ValidPointType PointType = Point<Scalar>>
mundy::Sphere< Scalar, PointType >::~Sphere ( )
constexprdefault

◆ Sphere() [4/7]

template<typename Scalar, ValidPointType PointType = Point<Scalar>>
mundy::Sphere< Scalar, PointType >::Sphere ( const Sphere< value_type, point_t > & other)
inlineconstexpr

◆ Sphere() [5/7]

template<typename Scalar, ValidPointType PointType = Point<Scalar>>
template<typename OtherSphereType>
mundy::Sphere< Scalar, PointType >::Sphere ( const OtherSphereType & other)
inlineconstexpr

◆ Sphere() [6/7]

template<typename Scalar, ValidPointType PointType = Point<Scalar>>
mundy::Sphere< Scalar, PointType >::Sphere ( Sphere< value_type, point_t > && other)
inlineconstexpr

◆ Sphere() [7/7]

template<typename Scalar, ValidPointType PointType = Point<Scalar>>
template<typename OtherSphereType>
mundy::Sphere< Scalar, PointType >::Sphere ( OtherSphereType && other)
inlineconstexpr

◆ operator=() [27/42]

template<typename Scalar, ValidPointType PointType = Point<Scalar>>
Sphere< value_type, point_t > & mundy::Sphere< Scalar, PointType >::operator= ( const Sphere< value_type, point_t > & other)
inlineconstexpr

◆ operator=() [28/42]

template<typename Scalar, ValidPointType PointType = Point<Scalar>>
template<typename OtherSphereType>
Sphere< value_type, point_t > & mundy::Sphere< Scalar, PointType >::operator= ( const OtherSphereType & other)
inlineconstexpr

◆ operator=() [29/42]

template<typename Scalar, ValidPointType PointType = Point<Scalar>>
Sphere< value_type, point_t > & mundy::Sphere< Scalar, PointType >::operator= ( Sphere< value_type, point_t > && other)
inlineconstexpr

◆ operator=() [30/42]

template<typename Scalar, ValidPointType PointType = Point<Scalar>>
template<typename OtherSphereType>
Sphere< value_type, point_t > & mundy::Sphere< Scalar, PointType >::operator= ( OtherSphereType && other)
inlineconstexpr

◆ center() [11/14]

template<typename Scalar, ValidPointType PointType = Point<Scalar>>
const point_t & mundy::Sphere< Scalar, PointType >::center ( ) const
inlineconstexpr

◆ center() [12/14]

template<typename Scalar, ValidPointType PointType = Point<Scalar>>
point_t & mundy::Sphere< Scalar, PointType >::center ( )
inlineconstexpr

◆ radius() [3/8]

template<typename Scalar, ValidPointType PointType = Point<Scalar>>
const value_type & mundy::Sphere< Scalar, PointType >::radius ( ) const
inlineconstexpr

◆ radius() [4/8]

template<typename Scalar, ValidPointType PointType = Point<Scalar>>
value_type & mundy::Sphere< Scalar, PointType >::radius ( )
inlineconstexpr

◆ set_center() [10/13]

template<typename Scalar, ValidPointType PointType = Point<Scalar>>
template<ValidPointType OtherPointType>
void mundy::Sphere< Scalar, PointType >::set_center ( const OtherPointType & center)
inlineconstexpr
Parameters
[in]centerThe new center.

◆ set_center() [11/13]

template<typename Scalar, ValidPointType PointType = Point<Scalar>>
void mundy::Sphere< Scalar, PointType >::set_center ( const value_type & x,
const value_type & y,
const value_type & z )
inlineconstexpr
Parameters
[in]xThe x-coordinate.
[in]yThe y-coordinate.
[in]zThe z-coordinate.

◆ set_radius() [2/4]

template<typename Scalar, ValidPointType PointType = Point<Scalar>>
void mundy::Sphere< Scalar, PointType >::set_radius ( const value_type & radius)
inlineconstexpr
Parameters
[in]radiusThe new radius.

◆ operator<<() [8/11]

template<ValidSphereType SphereType>
std::ostream & mundy::operator<< ( std::ostream & os,
const SphereType & sphere )

◆ Spherocylinder() [1/7]

template<typename Scalar, ValidPointType PointType = Point<Scalar>, ValidQuaternionType QuaternionType = Quaternion<Scalar>>
mundy::Spherocylinder< Scalar, PointType, QuaternionType >::Spherocylinder ( )
inlineconstexpr

◆ Spherocylinder() [2/7]

template<typename Scalar, ValidPointType PointType = Point<Scalar>, ValidQuaternionType QuaternionType = Quaternion<Scalar>>
mundy::Spherocylinder< Scalar, PointType, QuaternionType >::Spherocylinder ( const point_t & center,
const orientation_t & orientation,
const value_type & radius,
const value_type & length )
inlineconstexpr
Parameters
[in]centerThe center of the Spherocylinder.
[in]orientationThe orientation of the Spherocylinder (as a quaternion).
[in]radiusThe radius of the Spherocylinder.
[in]lengthThe length of the Spherocylinder.

◆ Spherocylinder() [3/7]

template<typename Scalar, ValidPointType PointType = Point<Scalar>, ValidQuaternionType QuaternionType = Quaternion<Scalar>>
template<ValidPointType OtherPointType, ValidQuaternionType OtherQuaternionType>
mundy::Spherocylinder< Scalar, PointType, QuaternionType >::Spherocylinder ( const OtherPointType & center,
const OtherQuaternionType & orientation,
const value_type & radius,
const value_type & length )
inlineconstexpr
Parameters
[in]centerThe center of the Spherocylinder.
[in]orientationThe orientation of the Spherocylinder (as a quaternion).
[in]radiusThe radius of the Spherocylinder.
[in]lengthThe length of the Spherocylinder.

◆ ~Spherocylinder()

template<typename Scalar, ValidPointType PointType = Point<Scalar>, ValidQuaternionType QuaternionType = Quaternion<Scalar>>
mundy::Spherocylinder< Scalar, PointType, QuaternionType >::~Spherocylinder ( )
constexprdefault

◆ Spherocylinder() [4/7]

template<typename Scalar, ValidPointType PointType = Point<Scalar>, ValidQuaternionType QuaternionType = Quaternion<Scalar>>
mundy::Spherocylinder< Scalar, PointType, QuaternionType >::Spherocylinder ( const Spherocylinder< value_type, point_t, orientation_t > & other)
inlineconstexpr

◆ Spherocylinder() [5/7]

template<typename Scalar, ValidPointType PointType = Point<Scalar>, ValidQuaternionType QuaternionType = Quaternion<Scalar>>
template<typename OtherSpherocylinderType>
mundy::Spherocylinder< Scalar, PointType, QuaternionType >::Spherocylinder ( const OtherSpherocylinderType & other)
inlineconstexpr

◆ Spherocylinder() [6/7]

template<typename Scalar, ValidPointType PointType = Point<Scalar>, ValidQuaternionType QuaternionType = Quaternion<Scalar>>
mundy::Spherocylinder< Scalar, PointType, QuaternionType >::Spherocylinder ( Spherocylinder< value_type, point_t, orientation_t > && other)
inlineconstexpr

◆ Spherocylinder() [7/7]

template<typename Scalar, ValidPointType PointType = Point<Scalar>, ValidQuaternionType QuaternionType = Quaternion<Scalar>>
template<typename OtherSpherocylinderType>
mundy::Spherocylinder< Scalar, PointType, QuaternionType >::Spherocylinder ( OtherSpherocylinderType && other)
inlineconstexpr

◆ operator=() [31/42]

template<typename Scalar, ValidPointType PointType = Point<Scalar>, ValidQuaternionType QuaternionType = Quaternion<Scalar>>
Spherocylinder< value_type, point_t, orientation_t > & mundy::Spherocylinder< Scalar, PointType, QuaternionType >::operator= ( const Spherocylinder< value_type, point_t, orientation_t > & other)
inlineconstexpr

◆ operator=() [32/42]

template<typename Scalar, ValidPointType PointType = Point<Scalar>, ValidQuaternionType QuaternionType = Quaternion<Scalar>>
template<typename OtherSpherocylinderType>
Spherocylinder< value_type, point_t, orientation_t > & mundy::Spherocylinder< Scalar, PointType, QuaternionType >::operator= ( const OtherSpherocylinderType & other)
inlineconstexpr

◆ operator=() [33/42]

template<typename Scalar, ValidPointType PointType = Point<Scalar>, ValidQuaternionType QuaternionType = Quaternion<Scalar>>
Spherocylinder< value_type, point_t, orientation_t > & mundy::Spherocylinder< Scalar, PointType, QuaternionType >::operator= ( Spherocylinder< value_type, point_t, orientation_t > && other)
inlineconstexpr

◆ operator=() [34/42]

template<typename Scalar, ValidPointType PointType = Point<Scalar>, ValidQuaternionType QuaternionType = Quaternion<Scalar>>
template<typename OtherSpherocylinderType>
Spherocylinder< value_type, point_t, orientation_t > & mundy::Spherocylinder< Scalar, PointType, QuaternionType >::operator= ( OtherSpherocylinderType && other)
inlineconstexpr

◆ center() [13/14]

template<typename Scalar, ValidPointType PointType = Point<Scalar>, ValidQuaternionType QuaternionType = Quaternion<Scalar>>
const point_t & mundy::Spherocylinder< Scalar, PointType, QuaternionType >::center ( ) const
inlineconstexpr

◆ center() [14/14]

template<typename Scalar, ValidPointType PointType = Point<Scalar>, ValidQuaternionType QuaternionType = Quaternion<Scalar>>
point_t & mundy::Spherocylinder< Scalar, PointType, QuaternionType >::center ( )
inlineconstexpr

◆ orientation() [9/10]

template<typename Scalar, ValidPointType PointType = Point<Scalar>, ValidQuaternionType QuaternionType = Quaternion<Scalar>>
const orientation_t & mundy::Spherocylinder< Scalar, PointType, QuaternionType >::orientation ( ) const
inlineconstexpr

◆ orientation() [10/10]

template<typename Scalar, ValidPointType PointType = Point<Scalar>, ValidQuaternionType QuaternionType = Quaternion<Scalar>>
orientation_t & mundy::Spherocylinder< Scalar, PointType, QuaternionType >::orientation ( )
inlineconstexpr

◆ radius() [5/8]

template<typename Scalar, ValidPointType PointType = Point<Scalar>, ValidQuaternionType QuaternionType = Quaternion<Scalar>>
const value_type & mundy::Spherocylinder< Scalar, PointType, QuaternionType >::radius ( ) const
inlineconstexpr

◆ radius() [6/8]

template<typename Scalar, ValidPointType PointType = Point<Scalar>, ValidQuaternionType QuaternionType = Quaternion<Scalar>>
value_type & mundy::Spherocylinder< Scalar, PointType, QuaternionType >::radius ( )
inlineconstexpr

◆ length() [1/2]

template<typename Scalar, ValidPointType PointType = Point<Scalar>, ValidQuaternionType QuaternionType = Quaternion<Scalar>>
const value_type & mundy::Spherocylinder< Scalar, PointType, QuaternionType >::length ( ) const
inlineconstexpr

◆ length() [2/2]

template<typename Scalar, ValidPointType PointType = Point<Scalar>, ValidQuaternionType QuaternionType = Quaternion<Scalar>>
value_type & mundy::Spherocylinder< Scalar, PointType, QuaternionType >::length ( )
inlineconstexpr

◆ set_center() [12/13]

template<typename Scalar, ValidPointType PointType = Point<Scalar>, ValidQuaternionType QuaternionType = Quaternion<Scalar>>
template<ValidPointType OtherPointType>
void mundy::Spherocylinder< Scalar, PointType, QuaternionType >::set_center ( const OtherPointType & center)
inlineconstexpr
Parameters
[in]centerThe new center.

◆ set_center() [13/13]

template<typename Scalar, ValidPointType PointType = Point<Scalar>, ValidQuaternionType QuaternionType = Quaternion<Scalar>>
void mundy::Spherocylinder< Scalar, PointType, QuaternionType >::set_center ( const value_type & x,
const value_type & y,
const value_type & z )
inlineconstexpr
Parameters
[in]xThe x-coordinate.
[in]yThe y-coordinate.
[in]zThe z-coordinate.

◆ set_orientation() [8/9]

template<typename Scalar, ValidPointType PointType = Point<Scalar>, ValidQuaternionType QuaternionType = Quaternion<Scalar>>
void mundy::Spherocylinder< Scalar, PointType, QuaternionType >::set_orientation ( const orientation_t & orientation)
inlineconstexpr
Parameters
[in]orientationThe new orientation.

◆ set_orientation() [9/9]

template<typename Scalar, ValidPointType PointType = Point<Scalar>, ValidQuaternionType QuaternionType = Quaternion<Scalar>>
void mundy::Spherocylinder< Scalar, PointType, QuaternionType >::set_orientation ( const value_type & qw,
const value_type & qx,
const value_type & qy,
const value_type & qz )
inlineconstexpr
Parameters
[in]qwThe scalar-component of the orientation quaternion.
[in]qxThe x-component of the orientation quaternion.
[in]qyThe y-component of the orientation quaternion.
[in]qzThe z-component of the orientation quaternion.

◆ set_radius() [3/4]

template<typename Scalar, ValidPointType PointType = Point<Scalar>, ValidQuaternionType QuaternionType = Quaternion<Scalar>>
void mundy::Spherocylinder< Scalar, PointType, QuaternionType >::set_radius ( const value_type & radius)
inlineconstexpr
Parameters
[in]radiusThe new radius.

◆ set_length()

template<typename Scalar, ValidPointType PointType = Point<Scalar>, ValidQuaternionType QuaternionType = Quaternion<Scalar>>
void mundy::Spherocylinder< Scalar, PointType, QuaternionType >::set_length ( const value_type & length)
inlineconstexpr
Parameters
[in]lengthThe new length.

◆ operator<<() [9/11]

template<ValidSpherocylinderType SpherocylinderType>
std::ostream & mundy::operator<< ( std::ostream & os,
const SpherocylinderType & spherocylinder )

◆ SpherocylinderSegment() [1/7]

template<typename Scalar, ValidPointType PointType = Point<Scalar>>
mundy::SpherocylinderSegment< Scalar, PointType >::SpherocylinderSegment ( )
inlineconstexpr

◆ SpherocylinderSegment() [2/7]

template<typename Scalar, ValidPointType PointType = Point<Scalar>>
mundy::SpherocylinderSegment< Scalar, PointType >::SpherocylinderSegment ( const point_t & start,
const point_t & end,
const value_type & radius )
inlineconstexpr
Parameters
[in]startThe start of the SpherocylinderSegment.
[in]endThe end of the SpherocylinderSegment.

◆ SpherocylinderSegment() [3/7]

template<typename Scalar, ValidPointType PointType = Point<Scalar>>
template<ValidPointType OtherPointType>
mundy::SpherocylinderSegment< Scalar, PointType >::SpherocylinderSegment ( const OtherPointType & start,
const OtherPointType & end,
const value_type & radius )
inlineconstexpr
Parameters
[in]startThe start of the SpherocylinderSegment.
[in]endThe end of the SpherocylinderSegment.

◆ ~SpherocylinderSegment()

template<typename Scalar, ValidPointType PointType = Point<Scalar>>
mundy::SpherocylinderSegment< Scalar, PointType >::~SpherocylinderSegment ( )
constexprdefault

◆ SpherocylinderSegment() [4/7]

template<typename Scalar, ValidPointType PointType = Point<Scalar>>
mundy::SpherocylinderSegment< Scalar, PointType >::SpherocylinderSegment ( const SpherocylinderSegment< value_type, point_t > & other)
inlineconstexpr

◆ SpherocylinderSegment() [5/7]

template<typename Scalar, ValidPointType PointType = Point<Scalar>>
template<typename OtherSpherocylinderSegmentType>
mundy::SpherocylinderSegment< Scalar, PointType >::SpherocylinderSegment ( const OtherSpherocylinderSegmentType & other)
inlineconstexpr

◆ SpherocylinderSegment() [6/7]

template<typename Scalar, ValidPointType PointType = Point<Scalar>>
mundy::SpherocylinderSegment< Scalar, PointType >::SpherocylinderSegment ( SpherocylinderSegment< value_type, point_t > && other)
inlineconstexpr

◆ SpherocylinderSegment() [7/7]

template<typename Scalar, ValidPointType PointType = Point<Scalar>>
template<typename OtherSpherocylinderSegmentType>
mundy::SpherocylinderSegment< Scalar, PointType >::SpherocylinderSegment ( OtherSpherocylinderSegmentType && other)
inlineconstexpr

◆ operator=() [35/42]

template<typename Scalar, ValidPointType PointType = Point<Scalar>>
SpherocylinderSegment< value_type, point_t > & mundy::SpherocylinderSegment< Scalar, PointType >::operator= ( const SpherocylinderSegment< value_type, point_t > & other)
inlineconstexpr

◆ operator=() [36/42]

template<typename Scalar, ValidPointType PointType = Point<Scalar>>
template<typename OtherSpherocylinderSegmentType>
SpherocylinderSegment< value_type, point_t > & mundy::SpherocylinderSegment< Scalar, PointType >::operator= ( const OtherSpherocylinderSegmentType & other)
inlineconstexpr

◆ operator=() [37/42]

template<typename Scalar, ValidPointType PointType = Point<Scalar>>
SpherocylinderSegment< value_type, point_t > & mundy::SpherocylinderSegment< Scalar, PointType >::operator= ( SpherocylinderSegment< value_type, point_t > && other)
inlineconstexpr

◆ operator=() [38/42]

template<typename Scalar, ValidPointType PointType = Point<Scalar>>
template<typename OtherSpherocylinderSegmentType>
SpherocylinderSegment< value_type, point_t > & mundy::SpherocylinderSegment< Scalar, PointType >::operator= ( OtherSpherocylinderSegmentType && other)
inlineconstexpr

◆ start() [3/6]

template<typename Scalar, ValidPointType PointType = Point<Scalar>>
const point_t & mundy::SpherocylinderSegment< Scalar, PointType >::start ( ) const
inlineconstexpr

◆ start() [4/6]

template<typename Scalar, ValidPointType PointType = Point<Scalar>>
point_t & mundy::SpherocylinderSegment< Scalar, PointType >::start ( )
inlineconstexpr

◆ end() [3/6]

template<typename Scalar, ValidPointType PointType = Point<Scalar>>
const point_t & mundy::SpherocylinderSegment< Scalar, PointType >::end ( ) const
inlineconstexpr

◆ end() [4/6]

template<typename Scalar, ValidPointType PointType = Point<Scalar>>
point_t & mundy::SpherocylinderSegment< Scalar, PointType >::end ( )
inlineconstexpr

◆ radius() [7/8]

template<typename Scalar, ValidPointType PointType = Point<Scalar>>
const value_type & mundy::SpherocylinderSegment< Scalar, PointType >::radius ( ) const
inlineconstexpr

◆ radius() [8/8]

template<typename Scalar, ValidPointType PointType = Point<Scalar>>
value_type & mundy::SpherocylinderSegment< Scalar, PointType >::radius ( )
inlineconstexpr

◆ set_start() [3/6]

template<typename Scalar, ValidPointType PointType = Point<Scalar>>
template<ValidPointType OtherPointType>
void mundy::SpherocylinderSegment< Scalar, PointType >::set_start ( const OtherPointType & start)
inlineconstexpr
Parameters
[in]startThe new start point.

◆ set_start() [4/6]

template<typename Scalar, ValidPointType PointType = Point<Scalar>>
void mundy::SpherocylinderSegment< Scalar, PointType >::set_start ( const Scalar & x,
const Scalar & y,
const Scalar & z )
inlineconstexpr
Parameters
[in]xThe x-coordinate.
[in]yThe y-coordinate.
[in]zThe z-coordinate.

◆ set_end() [3/6]

template<typename Scalar, ValidPointType PointType = Point<Scalar>>
template<ValidPointType OtherPointType>
void mundy::SpherocylinderSegment< Scalar, PointType >::set_end ( const OtherPointType & end)
inlineconstexpr
Parameters
[in]endThe new end point.

◆ set_end() [4/6]

template<typename Scalar, ValidPointType PointType = Point<Scalar>>
void mundy::SpherocylinderSegment< Scalar, PointType >::set_end ( const Scalar & x,
const Scalar & y,
const Scalar & z )
inlineconstexpr
Parameters
[in]xThe x-coordinate.
[in]yThe y-coordinate.
[in]zThe z-coordinate.

◆ set_radius() [4/4]

template<typename Scalar, ValidPointType PointType = Point<Scalar>>
void mundy::SpherocylinderSegment< Scalar, PointType >::set_radius ( const value_type & radius)
inlineconstexpr
Parameters
[in]radiusThe new radius.

◆ operator<<() [10/11]

template<ValidSpherocylinderSegmentType SpherocylinderSegmentType>
std::ostream & mundy::operator<< ( std::ostream & os,
const SpherocylinderSegmentType & spherocylinder_segment )

◆ VSegment() [1/7]

template<typename Scalar, ValidPointType PointType = Point<Scalar>>
mundy::VSegment< Scalar, PointType >::VSegment ( )
inlineconstexpr

◆ VSegment() [2/7]

template<typename Scalar, ValidPointType PointType = Point<Scalar>>
mundy::VSegment< Scalar, PointType >::VSegment ( const point_t & start,
const point_t & middle,
const point_t & end )
inlineconstexpr
Parameters
[in]startThe start of the VSegment.
[in]middleThe middle of the VSegment.
[in]endThe end of the VSegment.

◆ VSegment() [3/7]

template<typename Scalar, ValidPointType PointType = Point<Scalar>>
template<ValidPointType OtherPointType>
mundy::VSegment< Scalar, PointType >::VSegment ( const OtherPointType & start,
const OtherPointType & middle,
const OtherPointType & end )
inlineconstexpr
Parameters
[in]startThe start of the VSegment.
[in]middleThe middle of the VSegment.
[in]endThe end of the VSegment.

◆ ~VSegment()

template<typename Scalar, ValidPointType PointType = Point<Scalar>>
mundy::VSegment< Scalar, PointType >::~VSegment ( )
constexprdefault

◆ VSegment() [4/7]

template<typename Scalar, ValidPointType PointType = Point<Scalar>>
mundy::VSegment< Scalar, PointType >::VSegment ( const VSegment< value_type, point_t > & other)
inlineconstexpr

◆ VSegment() [5/7]

template<typename Scalar, ValidPointType PointType = Point<Scalar>>
template<typename OtherVSegmentType>
mundy::VSegment< Scalar, PointType >::VSegment ( const OtherVSegmentType & other)
inlineconstexpr

◆ VSegment() [6/7]

template<typename Scalar, ValidPointType PointType = Point<Scalar>>
mundy::VSegment< Scalar, PointType >::VSegment ( VSegment< value_type, point_t > && other)
inlineconstexpr

◆ VSegment() [7/7]

template<typename Scalar, ValidPointType PointType = Point<Scalar>>
template<typename OtherVSegmentType>
mundy::VSegment< Scalar, PointType >::VSegment ( OtherVSegmentType && other)
inlineconstexpr

◆ operator=() [39/42]

template<typename Scalar, ValidPointType PointType = Point<Scalar>>
VSegment< value_type, point_t > & mundy::VSegment< Scalar, PointType >::operator= ( const VSegment< value_type, point_t > & other)
inlineconstexpr

◆ operator=() [40/42]

template<typename Scalar, ValidPointType PointType = Point<Scalar>>
template<typename OtherVSegmentType>
VSegment< value_type, point_t > & mundy::VSegment< Scalar, PointType >::operator= ( const OtherVSegmentType & other)
inlineconstexpr

◆ operator=() [41/42]

template<typename Scalar, ValidPointType PointType = Point<Scalar>>
VSegment< value_type, point_t > & mundy::VSegment< Scalar, PointType >::operator= ( VSegment< value_type, point_t > && other)
inlineconstexpr

◆ operator=() [42/42]

template<typename Scalar, ValidPointType PointType = Point<Scalar>>
template<typename OtherVSegmentType>
VSegment< value_type, point_t > & mundy::VSegment< Scalar, PointType >::operator= ( OtherVSegmentType && other)
inlineconstexpr

◆ start() [5/6]

template<typename Scalar, ValidPointType PointType = Point<Scalar>>
const point_t & mundy::VSegment< Scalar, PointType >::start ( ) const
inlineconstexpr

◆ start() [6/6]

template<typename Scalar, ValidPointType PointType = Point<Scalar>>
point_t & mundy::VSegment< Scalar, PointType >::start ( )
inlineconstexpr

◆ middle() [1/2]

template<typename Scalar, ValidPointType PointType = Point<Scalar>>
const point_t & mundy::VSegment< Scalar, PointType >::middle ( ) const
inlineconstexpr

◆ middle() [2/2]

template<typename Scalar, ValidPointType PointType = Point<Scalar>>
point_t & mundy::VSegment< Scalar, PointType >::middle ( )
inlineconstexpr

◆ end() [5/6]

template<typename Scalar, ValidPointType PointType = Point<Scalar>>
const point_t & mundy::VSegment< Scalar, PointType >::end ( ) const
inlineconstexpr

◆ end() [6/6]

template<typename Scalar, ValidPointType PointType = Point<Scalar>>
point_t & mundy::VSegment< Scalar, PointType >::end ( )
inlineconstexpr

◆ set_start() [5/6]

template<typename Scalar, ValidPointType PointType = Point<Scalar>>
template<ValidPointType OtherPointType>
void mundy::VSegment< Scalar, PointType >::set_start ( const OtherPointType & start)
inlineconstexpr
Parameters
[in]startThe new start point.

◆ set_start() [6/6]

template<typename Scalar, ValidPointType PointType = Point<Scalar>>
void mundy::VSegment< Scalar, PointType >::set_start ( const Scalar & x,
const Scalar & y,
const Scalar & z )
inlineconstexpr
Parameters
[in]xThe x-coordinate.
[in]yThe y-coordinate.
[in]zThe z-coordinate.

◆ set_middle() [1/2]

template<typename Scalar, ValidPointType PointType = Point<Scalar>>
template<ValidPointType OtherPointType>
void mundy::VSegment< Scalar, PointType >::set_middle ( const OtherPointType & middle)
inlineconstexpr
Parameters
[in]middleThe new middle point.

◆ set_middle() [2/2]

template<typename Scalar, ValidPointType PointType = Point<Scalar>>
void mundy::VSegment< Scalar, PointType >::set_middle ( const Scalar & x,
const Scalar & y,
const Scalar & z )
inlineconstexpr
Parameters
[in]xThe x-coordinate.
[in]yThe y-coordinate.
[in]zThe z-coordinate.

◆ set_end() [5/6]

template<typename Scalar, ValidPointType PointType = Point<Scalar>>
template<ValidPointType OtherPointType>
void mundy::VSegment< Scalar, PointType >::set_end ( const OtherPointType & end)
inlineconstexpr
Parameters
[in]endThe new end point.

◆ set_end() [6/6]

template<typename Scalar, ValidPointType PointType = Point<Scalar>>
void mundy::VSegment< Scalar, PointType >::set_end ( const Scalar & x,
const Scalar & y,
const Scalar & z )
inlineconstexpr
Parameters
[in]xThe x-coordinate.
[in]yThe y-coordinate.
[in]zThe z-coordinate.

◆ operator<<() [11/11]

template<ValidVSegmentType VSegmentType>
std::ostream & mundy::operator<< ( std::ostream & os,
const VSegmentType & v_segment )

◆ for_each_point() [2/2]

template<ValidPointType PointT, typename Functor>
void mundy::for_each_point ( const PointT & pt,
Functor && f )

◆ for_each_point_mutable() [2/2]

template<ValidPointType PointT, typename Functor>
void mundy::for_each_point_mutable ( PointT & pt,
Functor && f )

Variable Documentation

◆ is_finite [1/11]

template<typename Scalar, ValidPointType MinPointType = Point<Scalar>, ValidPointType MaxPointType = Point<Scalar>>
bool mundy::AABB< Scalar, MinPointType, MaxPointType >::is_finite = true
staticconstexpr

◆ is_aabb_v

template<typename T>
bool mundy::is_aabb_v = is_aabb<T>::value
constexpr

◆ is_finite [2/11]

template<typename Scalar, ValidPointType PointType = Point<Scalar>, ValidQuaternionType QuaternionType = Quaternion<Scalar>>
bool mundy::Circle3D< Scalar, PointType, QuaternionType >::is_finite = true
staticconstexpr

◆ is_circle3d_v

template<typename T>
bool mundy::is_circle3d_v = is_circle3d<T>::value
constexpr

◆ is_finite [3/11]

template<typename Scalar, ValidPointType PointType = Point<Scalar>, ValidQuaternionType OrientationType = Quaternion<Scalar>>
bool mundy::Ellipsoid< Scalar, PointType, OrientationType >::is_finite = true
staticconstexpr

◆ is_ellipsoid_v

template<typename T>
bool mundy::is_ellipsoid_v = is_ellipsoid<T>::value
inlineconstexpr

◆ is_finite [4/11]

template<typename Scalar, ValidPointType PointType = Point<Scalar>>
bool mundy::Line< Scalar, PointType >::is_finite = false
staticconstexpr

◆ is_line_v

template<typename T>
bool mundy::is_line_v = is_line<T>::value
inlineconstexpr

◆ is_finite [5/11]

template<typename Scalar, ValidPointType StartPointType = Point<Scalar>, ValidPointType EndPointType = Point<Scalar>>
bool mundy::LineSegment< Scalar, StartPointType, EndPointType >::is_finite = true
staticconstexpr

◆ is_line_segment_v

template<typename T>
bool mundy::is_line_segment_v = is_line_segment<T>::value
inlineconstexpr

◆ is_finite [6/11]

template<typename Scalar, ValidPointType PointType = Point<Scalar>, ValidQuaternionType QuaternionType = Quaternion<Scalar>, ValidVector3Type HalfExtentsType = Vector3<Scalar>>
bool mundy::OBB< Scalar, PointType, QuaternionType, HalfExtentsType >::is_finite = true
staticconstexpr

◆ is_obb_v

template<typename T>
bool mundy::is_obb_v = is_obb<T>::value
inlineconstexpr

◆ is_point_v

template<typename T>
bool mundy::is_point_v = is_point<T>::value
constexpr

◆ is_finite [7/11]

template<typename Scalar, ValidPointType PointType = Point<Scalar>, ValidQuaternionType QuaternionType = Quaternion<Scalar>>
bool mundy::Ring< Scalar, PointType, QuaternionType >::is_finite = true
staticconstexpr

◆ is_ring_v

template<typename T>
bool mundy::is_ring_v = is_ring<T>::value
constexpr

◆ is_finite [8/11]

template<typename Scalar, ValidPointType PointType = Point<Scalar>>
bool mundy::Sphere< Scalar, PointType >::is_finite = true
staticconstexpr

◆ is_sphere_v

template<typename T>
bool mundy::is_sphere_v = is_sphere<T>::value
constexpr

◆ is_finite [9/11]

template<typename Scalar, ValidPointType PointType = Point<Scalar>, ValidQuaternionType QuaternionType = Quaternion<Scalar>>
bool mundy::Spherocylinder< Scalar, PointType, QuaternionType >::is_finite = true
staticconstexpr

◆ is_spherocylinder_v

template<typename T>
bool mundy::is_spherocylinder_v = is_spherocylinder<T>::value
constexpr

◆ is_finite [10/11]

template<typename Scalar, ValidPointType PointType = Point<Scalar>>
bool mundy::SpherocylinderSegment< Scalar, PointType >::is_finite = true
staticconstexpr

◆ is_spherocylinder_segment_v

template<typename T>
bool mundy::is_spherocylinder_segment_v = is_spherocylinder_segment<T>::value
inlineconstexpr

◆ is_finite_v

template<typename T>
bool mundy::is_finite_v = is_finite<T>::value
inlineconstexpr

◆ is_finite [11/11]

template<typename Scalar, ValidPointType PointType = Point<Scalar>>
bool mundy::VSegment< Scalar, PointType >::is_finite = true
staticconstexpr

◆ is_v_segment_v

template<typename T>
bool mundy::is_v_segment_v = is_v_segment<T>::value
inlineconstexpr

Friends

◆ AABB

template<typename Scalar, ValidPointType MinPointType = Point<Scalar>, ValidPointType MaxPointType = Point<Scalar>>
template<typename, ValidPointType, ValidPointType>
friend class AABB
friend

◆ LineSegment

template<typename Scalar, ValidPointType StartPointType = Point<Scalar>, ValidPointType EndPointType = Point<Scalar>>
template<typename, ValidPointType, ValidPointType>
friend class LineSegment
friend

◆ OBB

template<typename Scalar, ValidPointType PointType = Point<Scalar>, ValidQuaternionType QuaternionType = Quaternion<Scalar>, ValidVector3Type HalfExtentsType = Vector3<Scalar>>
template<typename, ValidPointType, ValidQuaternionType, ValidVector3Type>
friend class OBB
friend