|
Mundy: Multibody Nonlocal Dynamics Version of the Day
|
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) |
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.