39 #ifndef HPP_FCL_SUPPORT_FUNCTIONS_H
40 #define HPP_FCL_SUPPORT_FUNCTIONS_H
77 template <
int _SupportOptions = SupportOptions::NoSweptSphere>
95 template <
int _SupportOptions = SupportOptions::NoSweptSphere>
97 Vec3f& support,
int& ,
101 template <
int _SupportOptions = SupportOptions::NoSweptSphere>
106 template <
int _SupportOptions = SupportOptions::NoSweptSphere>
111 template <
int _SupportOptions = SupportOptions::NoSweptSphere>
113 Vec3f& support,
int& ,
117 template <
int _SupportOptions = SupportOptions::NoSweptSphere>
122 template <
int _SupportOptions = SupportOptions::NoSweptSphere>
127 template <
int _SupportOptions = SupportOptions::NoSweptSphere>
134 template <
int _SupportOptions = SupportOptions::NoSweptSphere>
148 template <
int _SupportOptions = SupportOptions::NoSweptSphere>
153 template <
int _SupportOptions = SupportOptions::NoSweptSphere>
195 template <
int _SupportOptions = SupportOptions::NoSweptSphere>
197 size_t num_sampled_supports = 6,
FCL_REAL tol = 1e-3);
206 template <
int _SupportOptions = SupportOptions::NoSweptSphere>
209 size_t num_sampled_supports = 6,
FCL_REAL tol = 1e-3) {
212 const Vec3f support = getSupport<_SupportOptions>(shape, support_dir, hint);
213 getSupportSet<_SupportOptions>(shape, support_set, hint, num_sampled_supports,
219 template <
int _SupportOptions = SupportOptions::NoSweptSphere>
222 size_t num_sampled_supports = 6,
227 template <
int _SupportOptions = SupportOptions::NoSweptSphere>
230 size_t num_sampled_supports = 6,
235 template <
int _SupportOptions = SupportOptions::NoSweptSphere>
238 size_t num_sampled_supports = 6,
243 template <
int _SupportOptions = SupportOptions::NoSweptSphere>
246 size_t num_sampled_supports = 6,
251 template <
int _SupportOptions = SupportOptions::NoSweptSphere>
254 size_t num_sampled_supports = 6,
259 template <
int _SupportOptions = SupportOptions::NoSweptSphere>
262 size_t num_sampled_supports = 6,
FCL_REAL tol = 1e-3);
266 template <
int _SupportOptions = SupportOptions::NoSweptSphere>
269 size_t num_sampled_supports = 6,
FCL_REAL tol = 1e-3);
275 template <
int _SupportOptions = SupportOptions::NoSweptSphere>
278 size_t num_sampled_supports = 6,
283 template <
int _SupportOptions = SupportOptions::NoSweptSphere>
286 size_t num_sampled_supports = 6,
291 template <
int _SupportOptions = SupportOptions::NoSweptSphere>
294 size_t num_sampled_supports = 6,
Center at zero point, axis aligned box.
Definition: geometric_shapes.h:164
Capsule It is where is the distance between the point x and the capsule segment AB,...
Definition: geometric_shapes.h:381
Cone The base of the cone is at and the top is at .
Definition: geometric_shapes.h:465
Base for convex polytope.
Definition: geometric_shapes.h:638
Cylinder along Z axis. The cylinder is defined at its centroid.
Definition: geometric_shapes.h:555
Ellipsoid centered at point zero.
Definition: geometric_shapes.h:303
Base class for all basic geometric shapes.
Definition: geometric_shapes.h:59
Center at zero point sphere.
Definition: geometric_shapes.h:238
Triangle stores the points instead of only indices of points.
Definition: geometric_shapes.h:109
#define HPP_FCL_DLLAPI
Definition: config.hh:88
void getSupportSet(const ShapeBase *shape, SupportSet &support_set, int &hint, size_t num_sampled_supports=6, FCL_REAL tol=1e-3)
Computes the support set for shape. This function assumes the frame of the support set has already be...
void getShapeSupportSet(const TriangleP *triangle, SupportSet &support_set, int &, ShapeSupportData &, size_t num_sampled_supports=6, FCL_REAL tol=1e-3)
Triangle support set function. Assumes the support set frame has already been computed.
void getShapeSupport(const TriangleP *triangle, const Vec3f &dir, Vec3f &support, int &, ShapeSupportData &)
Triangle support function.
SupportOptions
Options for the computation of support points. NoSweptSphere option is used when the support function...
Definition: support_functions.h:59
@ NoSweptSphere
Definition: support_functions.h:60
@ WithSweptSphere
Definition: support_functions.h:61
void 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...
Vec3f getSupport(const ShapeBase *shape, const Vec3f &dir, int &hint)
the support function for shape. The output support point is expressed in the local frame of the shape...
Matrix3f constructOrthonormalBasisFromVector(const Vec3f &vec)
Construct othonormal basis from vector. The z-axis is the normalized input vector.
Definition: transform.h:261
Eigen::Matrix< FCL_REAL, 3, 1 > Vec3f
Definition: data_types.h:67
double FCL_REAL
Definition: data_types.h:66
Main namespace.
Definition: broadphase_bruteforce.h:44
Cast a ConvexBase to a LargeConvex to use the log version of getShapeSupport. This is much faster tha...
Definition: support_functions.h:143
Stores temporary data for the computation of support points.
Definition: support_functions.h:81
SupportSet::Polygon polygon
Definition: support_functions.h:91
std::vector< int8_t > visited
Definition: support_functions.h:83
See LargeConvex.
Definition: support_functions.h:145