Classes | Namespaces | Enumerations | Functions
coal/narrowphase/support_functions.h File Reference
#include "coal/shape/geometric_shapes.h"
#include "coal/math/transform.h"
#include "coal/collision_data.h"
Include dependency graph for coal/narrowphase/support_functions.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  coal::details::LargeConvex
 Cast a ConvexBase to a LargeConvex to use the log version of getShapeSupport. This is much faster than the linear version of getShapeSupport when a ConvexBase has more than a few dozen of vertices. More...
 
struct  coal::details::ShapeSupportData
 Stores temporary data for the computation of support points. More...
 
struct  coal::details::SmallConvex
 See LargeConvex. More...
 

Namespaces

 coal
 Main namespace.
 
 coal::details
 

Enumerations

enum  coal::details::SupportOptions { coal::details::NoSweptSphere = 0, coal::details::WithSweptSphere = 0x1 }
 Options for the computation of support points. NoSweptSphere option is used when the support function is called by GJK or EPA. In this case, the swept sphere radius is not taken into account in the support function. It is used by GJK and EPA after they have converged to correct the solution. WithSweptSphere option is used when the support function is called directly by the user. In this case, the swept sphere radius is taken into account in the support function. More...
 

Functions

COAL_DLLAPI void coal::details::computeSupportSetConvexHull (SupportSet::Polygon &cloud, SupportSet::Polygon &cvx_hull)
 Computes the convex-hull of support_set. For now, this function is only needed for Box and ConvexBase. More...
 
template<int _SupportOptions = SupportOptions::NoSweptSphere>
void coal::details::getShapeSupport (const Box *box, const Vec3s &dir, Vec3s &support, int &, ShapeSupportData &)
 Box support function. More...
 
template<int _SupportOptions = SupportOptions::NoSweptSphere>
void coal::details::getShapeSupport (const Capsule *capsule, const Vec3s &dir, Vec3s &support, int &, ShapeSupportData &)
 Capsule support function. More...
 
template<int _SupportOptions = SupportOptions::NoSweptSphere>
void coal::details::getShapeSupport (const Cone *cone, const Vec3s &dir, Vec3s &support, int &, ShapeSupportData &)
 Cone support function. More...
 
template<int _SupportOptions = SupportOptions::NoSweptSphere>
void coal::details::getShapeSupport (const ConvexBase *convex, const Vec3s &dir, Vec3s &support, int &hint, ShapeSupportData &)
 ConvexBase support function. More...
 
template<int _SupportOptions = SupportOptions::NoSweptSphere>
void coal::details::getShapeSupport (const Cylinder *cylinder, const Vec3s &dir, Vec3s &support, int &, ShapeSupportData &)
 Cylinder support function. More...
 
template<int _SupportOptions = SupportOptions::NoSweptSphere>
void coal::details::getShapeSupport (const Ellipsoid *ellipsoid, const Vec3s &dir, Vec3s &support, int &, ShapeSupportData &)
 Ellipsoid support function. More...
 
template<int _SupportOptions = SupportOptions::NoSweptSphere>
void coal::details::getShapeSupport (const LargeConvex *convex, const Vec3s &dir, Vec3s &support, int &hint, ShapeSupportData &support_data)
 Support function for small ConvexBase (<32 vertices). More...
 
template<int _SupportOptions = SupportOptions::NoSweptSphere>
void coal::details::getShapeSupport (const SmallConvex *convex, const Vec3s &dir, Vec3s &support, int &hint, ShapeSupportData &data)
 Support function for large ConvexBase (>32 vertices). More...
 
template<int _SupportOptions = SupportOptions::NoSweptSphere>
void coal::details::getShapeSupport (const Sphere *sphere, const Vec3s &dir, Vec3s &support, int &, ShapeSupportData &)
 Sphere support function. More...
 
template<int _SupportOptions = SupportOptions::NoSweptSphere>
void coal::details::getShapeSupport (const TriangleP *triangle, const Vec3s &dir, Vec3s &support, int &, ShapeSupportData &)
 Triangle support function. More...
 
template<int _SupportOptions = SupportOptions::NoSweptSphere>
void coal::details::getShapeSupportSet (const Box *box, SupportSet &support_set, int &, ShapeSupportData &support_data, size_t num_sampled_supports=6, CoalScalar tol=1e-3)
 Box support set function. Assumes the support set frame has already been computed. More...
 
template<int _SupportOptions = SupportOptions::NoSweptSphere>
void coal::details::getShapeSupportSet (const Capsule *capsule, SupportSet &support_set, int &, ShapeSupportData &, size_t num_sampled_supports=6, CoalScalar tol=1e-3)
 Capsule support set function. Assumes the support set frame has already been computed. More...
 
template<int _SupportOptions = SupportOptions::NoSweptSphere>
void coal::details::getShapeSupportSet (const Cone *cone, SupportSet &support_set, int &, ShapeSupportData &, size_t num_sampled_supports=6, CoalScalar tol=1e-3)
 Cone support set function. Assumes the support set frame has already been computed. More...
 
template<int _SupportOptions = SupportOptions::NoSweptSphere>
void coal::details::getShapeSupportSet (const ConvexBase *convex, SupportSet &support_set, int &hint, ShapeSupportData &support_data, size_t num_sampled_supports=6, CoalScalar tol=1e-3)
 ConvexBase support set function. Assumes the support set frame has already been computed. More...
 
template<int _SupportOptions = SupportOptions::NoSweptSphere>
void coal::details::getShapeSupportSet (const Cylinder *cylinder, SupportSet &support_set, int &, ShapeSupportData &, size_t num_sampled_supports=6, CoalScalar tol=1e-3)
 Cylinder support set function. Assumes the support set frame has already been computed. More...
 
template<int _SupportOptions = SupportOptions::NoSweptSphere>
void coal::details::getShapeSupportSet (const Ellipsoid *ellipsoid, SupportSet &support_set, int &, ShapeSupportData &, size_t num_sampled_supports=6, CoalScalar tol=1e-3)
 Ellipsoid support set function. Assumes the support set frame has already been computed. More...
 
template<int _SupportOptions = SupportOptions::NoSweptSphere>
void coal::details::getShapeSupportSet (const LargeConvex *convex, SupportSet &support_set, int &hint, ShapeSupportData &support_data, size_t num_sampled_supports=6, CoalScalar tol=1e-3)
 Support set function for small ConvexBase (<32 vertices). Assumes the support set frame has already been computed. More...
 
template<int _SupportOptions = SupportOptions::NoSweptSphere>
void coal::details::getShapeSupportSet (const SmallConvex *convex, SupportSet &support_set, int &, ShapeSupportData &, size_t num_sampled_supports=6, CoalScalar tol=1e-3)
 Support set function for large ConvexBase (>32 vertices). Assumes the support set frame has already been computed. More...
 
template<int _SupportOptions = SupportOptions::NoSweptSphere>
void coal::details::getShapeSupportSet (const Sphere *sphere, SupportSet &support_set, int &, ShapeSupportData &, size_t num_sampled_supports=6, CoalScalar tol=1e-3)
 Sphere support set function. Assumes the support set frame has already been computed. More...
 
template<int _SupportOptions = SupportOptions::NoSweptSphere>
void coal::details::getShapeSupportSet (const TriangleP *triangle, SupportSet &support_set, int &, ShapeSupportData &, size_t num_sampled_supports=6, CoalScalar tol=1e-3)
 Triangle support set function. Assumes the support set frame has already been computed. More...
 
template<int _SupportOptions = SupportOptions::NoSweptSphere>
Vec3s coal::details::getSupport (const ShapeBase *shape, const Vec3s &dir, int &hint)
 the support function for shape. The output support point is expressed in the local frame of the shape. More...
 
template<int _SupportOptions = SupportOptions::NoSweptSphere>
void coal::details::getSupportSet (const ShapeBase *shape, const Vec3s &dir, SupportSet &support_set, int &hint, size_t num_sampled_supports=6, CoalScalar tol=1e-3)
 Same as getSupportSet(const ShapeBase*, const CoalScalar, SupportSet&, const int) but also constructs the support set frame from dir. More...
 
template<int _SupportOptions = SupportOptions::NoSweptSphere>
void coal::details::getSupportSet (const ShapeBase *shape, SupportSet &support_set, int &hint, size_t num_sampled_supports=6, CoalScalar tol=1e-3)
 Computes the support set for shape. This function assumes the frame of the support set has already been computed and that this frame is expressed w.r.t the local frame of the shape (i.e. the local frame of the shape is the WORLD frame of the support set). The support direction used to compute the support set is the positive z-axis if the support set has the DEFAULT direction; negative z-axis if it has the INVERTED direction. (In short, a shape's support set is has the DEFAULT direction if the shape is the first shape in a collision pair. It has the INVERTED direction if the shape is the second one in the collision pair). More...
 


hpp-fcl
Author(s):
autogenerated on Sat Nov 23 2024 03:44:59