Mundy: Multibody Nonlocal Dynamics Version of the Day
Loading...
Searching...
No Matches
compute_obb.hpp File Reference

compute_obb overloads for the standard MundyGeom primitive types. More...

Namespaces

namespace  mundy

Functions

template<ValidPointType PointType>
OBB< typename PointType::value_type > mundy::compute_obb (const PointType &point)
 OBB of a point: identity orientation, zero half-extents.
template<ValidPointType PointType, typename Metric>
OBB< typename PointType::value_type > mundy::compute_obb (const PointType &point, const Metric &)
template<ValidSphereType SphereType>
OBB< typename SphereType::value_type > mundy::compute_obb (const SphereType &sphere)
 OBB of a sphere: identity orientation, uniform half-extents equal to the radius.
template<ValidSphereType SphereType, typename Metric>
OBB< typename SphereType::value_type > mundy::compute_obb (const SphereType &sphere, const Metric &)
template<ValidAABBType AABBType>
OBB< typename AABBType::value_type > mundy::compute_obb (const AABBType &aabb)
 OBB of an AABB: identity orientation, half-extents = (max - min) / 2.
template<ValidAABBType AABBType, typename Metric>
OBB< typename AABBType::value_type > mundy::compute_obb (const AABBType &aabb, const Metric &)
template<ValidEllipsoidType EllipsoidType>
OBB< typename EllipsoidType::value_type > mundy::compute_obb (const EllipsoidType &ellipsoid)
 OBB of an ellipsoid: orientation from the stored quaternion, half-extents from the radii.
template<ValidEllipsoidType EllipsoidType, typename Metric>
OBB< typename EllipsoidType::value_type > mundy::compute_obb (const EllipsoidType &ellipsoid, const Metric &)
template<ValidSpherocylinderType SpherocylinderType>
OBB< typename SpherocylinderType::value_type > mundy::compute_obb (const SpherocylinderType &sc)
 OBB of a spherocylinder (capsule).
template<ValidSpherocylinderType SpherocylinderType, typename Metric>
OBB< typename SpherocylinderType::value_type > mundy::compute_obb (const SpherocylinderType &sc, const Metric &)
template<ValidSpherocylinderSegmentType SegmentType>
OBB< typename SegmentType::value_type > mundy::compute_obb (const SegmentType &seg)
 OBB of a spherocylinder segment.
template<ValidSpherocylinderSegmentType SegmentType, typename Metric>
OBB< typename SegmentType::value_type > mundy::compute_obb (const SegmentType &seg, const Metric &metric)
template<ValidLineSegmentType LineSegmentType>
OBB< typename LineSegmentType::value_type > mundy::compute_obb (const LineSegmentType &ls)
 OBB of a line segment (zero radius): oriented along the segment with zero radial extents.
template<ValidLineSegmentType LineSegmentType, typename Metric>
OBB< typename LineSegmentType::value_type > mundy::compute_obb (const LineSegmentType &ls, const Metric &metric)

Detailed Description

Each overload returns the tightest OBB (as defined by the OBB primitive) for the given input shape. The OBB orientation is expressed as a unit quaternion that maps local box axes to world space; the half-extents are the half-lengths of the box along those axes.

Where an explicit metric argument is accepted it is used to wrap the shape into the primary periodic cell before computing the OBB — the same semantics as compute_aabb.