38 #ifndef HPP_FCL_GEOMETRIC_SHAPES_UTILITY_H
39 #define HPP_FCL_GEOMETRIC_SHAPES_UTILITY_H
54 const Transform3f& tf);
55 HPP_FCL_DLLAPI std::vector<Vec3f> getBoundVertices(
const Sphere& sphere,
56 const Transform3f& tf);
57 HPP_FCL_DLLAPI std::vector<Vec3f> getBoundVertices(
const Ellipsoid& ellipsoid,
58 const Transform3f& tf);
59 HPP_FCL_DLLAPI std::vector<Vec3f> getBoundVertices(
const Capsule& capsule,
60 const Transform3f& tf);
61 HPP_FCL_DLLAPI std::vector<Vec3f> getBoundVertices(
const Cone& cone,
62 const Transform3f& tf);
63 HPP_FCL_DLLAPI std::vector<Vec3f> getBoundVertices(
const Cylinder& cylinder,
64 const Transform3f& tf);
65 HPP_FCL_DLLAPI std::vector<Vec3f> getBoundVertices(
const ConvexBase& convex,
66 const Transform3f& tf);
67 HPP_FCL_DLLAPI std::vector<Vec3f> getBoundVertices(
const TriangleP& triangle,
68 const Transform3f& tf);
73 template <
typename BV,
typename S>
75 if (s.getSweptSphereRadius() > 0) {
79 std::vector<Vec3f> convex_bound_vertices = details::getBoundVertices(s, tf);
80 fit(&convex_bound_vertices[0], (
unsigned int)convex_bound_vertices.size(),
A class describing the AABB collision structure, which is a box in 3D space determined by two diagona...
Definition: AABB.h:56
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
Half Space: this is equivalent to the Plane in ODE. A Half space has a priviledged direction: the dir...
Definition: geometric_shapes.h:885
KDOP class describes the KDOP collision structures. K is set as the template parameter,...
Definition: kDOP.h:92
Infinite plane. A plane can be viewed as two half spaces; it has no priviledged direction....
Definition: geometric_shapes.h:976
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
A class describing the kIOS collision structure, which is a set of spheres.
Definition: kIOS.h:53
#define HPP_FCL_DLLAPI
Definition: config.hh:88
#define HPP_FCL_THROW_PRETTY(message, exception)
Definition: fwd.hh:64
void computeBV< OBBRSS, Halfspace >(const Halfspace &s, const Transform3f &tf, OBBRSS &bv)
void computeBV(const S &s, const Transform3f &tf, BV &bv)
calculate a bounding volume for a shape in a specific configuration
Definition: geometric_shapes_utility.h:74
void constructBox(const AABB &bv, Box &box, Transform3f &tf)
construct a box shape (with a configuration) from a given bounding volume
void computeBV< OBB, Plane >(const Plane &s, const Transform3f &tf, OBB &bv)
void computeBV< AABB, ConvexBase >(const ConvexBase &s, const Transform3f &tf, AABB &bv)
void computeBV< OBB, Capsule >(const Capsule &s, const Transform3f &tf, OBB &bv)
void computeBV< OBB, Box >(const Box &s, const Transform3f &tf, OBB &bv)
void computeBV< AABB, TriangleP >(const TriangleP &s, const Transform3f &tf, AABB &bv)
void computeBV< RSS, Halfspace >(const Halfspace &s, const Transform3f &tf, RSS &bv)
void computeBV< AABB, Cylinder >(const Cylinder &s, const Transform3f &tf, AABB &bv)
void computeBV< AABB, Box >(const Box &s, const Transform3f &tf, AABB &bv)
void computeBV< OBBRSS, Plane >(const Plane &s, const Transform3f &tf, OBBRSS &bv)
void computeBV< OBB, ConvexBase >(const ConvexBase &s, const Transform3f &tf, OBB &bv)
void computeBV< RSS, Plane >(const Plane &s, const Transform3f &tf, RSS &bv)
void fit(Vec3f *ps, unsigned int n, BV &bv)
Compute a bounding volume that fits a set of n points.
Definition: BV_fitter.h:52
void computeBV< AABB, Plane >(const Plane &s, const Transform3f &tf, AABB &bv)
void computeBV< AABB, Ellipsoid >(const Ellipsoid &e, const Transform3f &tf, AABB &bv)
void computeBV< OBB, Cone >(const Cone &s, const Transform3f &tf, OBB &bv)
std::array< Halfspace, 2 > transformToHalfspaces(const Plane &a, const Transform3f &tf)
void computeBV< OBB, Halfspace >(const Halfspace &s, const Transform3f &tf, OBB &bv)
void computeBV< AABB, Cone >(const Cone &s, const Transform3f &tf, AABB &bv)
void computeBV< AABB, Sphere >(const Sphere &s, const Transform3f &tf, AABB &bv)
void computeBV< kIOS, Plane >(const Plane &s, const Transform3f &tf, kIOS &bv)
void computeBV< OBB, Sphere >(const Sphere &s, const Transform3f &tf, OBB &bv)
Halfspace transform(const Halfspace &a, const Transform3f &tf)
void computeBV< kIOS, Halfspace >(const Halfspace &s, const Transform3f &tf, kIOS &bv)
void computeBV< OBB, Cylinder >(const Cylinder &s, const Transform3f &tf, OBB &bv)
void computeBV< AABB, Capsule >(const Capsule &s, const Transform3f &tf, AABB &bv)
void computeBV< AABB, Halfspace >(const Halfspace &s, const Transform3f &tf, AABB &bv)
Main namespace.
Definition: broadphase_bruteforce.h:44
Oriented bounding box class.
Definition: OBB.h:52