hpp-fcl  3.0.0
HPP fork of FCL -- The Flexible Collision Library
Geometric shapes

Classes

class  hpp::fcl::TriangleP
 Triangle stores the points instead of only indices of points. More...
 
class  hpp::fcl::Box
 Center at zero point, axis aligned box. More...
 
class  hpp::fcl::Sphere
 Center at zero point sphere. More...
 
class  hpp::fcl::Ellipsoid
 Ellipsoid centered at point zero. More...
 
class  hpp::fcl::Capsule
 Capsule It is \( { x~\in~\mathbb{R}^3, d(x, AB) \leq radius } \) where \( d(x, AB) \) is the distance between the point x and the capsule segment AB, with \( A = (0,0,-halfLength), B = (0,0,halfLength) \). More...
 
class  hpp::fcl::Cone
 Cone The base of the cone is at \( z = - halfLength \) and the top is at \( z = halfLength \). More...
 
class  hpp::fcl::Cylinder
 Cylinder along Z axis. The cylinder is defined at its centroid. More...
 
class  hpp::fcl::ConvexBase
 Base for convex polytope. More...
 
struct  hpp::fcl::ConvexBase::Neighbors
 
struct  hpp::fcl::ConvexBase::SupportWarmStartPolytope
 The support warm start polytope contains certain points of this which are support points in specific directions of space. This struct is used to warm start the support function computation for large meshes (num_points > 32). More...
 
class  hpp::fcl::Convex< PolygonT >
 Convex polytope. More...
 
class  hpp::fcl::Halfspace
 Half Space: this is equivalent to the Plane in ODE. A Half space has a priviledged direction: the direction of the normal. The separation plane is defined as n * x = d; Points in the negative side of the separation plane (i.e. {x | n * x < d}) are inside the half space and points in the positive side of the separation plane (i.e. {x | n * x > d}) are outside the half space. Note: prefer using a Halfspace instead of a Plane if possible, it has better behavior w.r.t. collision detection algorithms. More...
 
class  hpp::fcl::Plane
 Infinite plane. A plane can be viewed as two half spaces; it has no priviledged direction. Note: prefer using a Halfspace instead of a Plane if possible, it has better behavior w.r.t. collision detection algorithms. More...
 

Functions

 hpp::fcl::ShapeBase::ShapeBase ()
 
 hpp::fcl::ShapeBase::ShapeBase (const ShapeBase &other)
   More...
 
ShapeBasehpp::fcl::ShapeBase::operator= (const ShapeBase &other)=default
 
virtual hpp::fcl::ShapeBase::~ShapeBase ()
 
OBJECT_TYPE hpp::fcl::ShapeBase::getObjectType () const
 Get object type: a geometric shape. More...
 
void hpp::fcl::ShapeBase::setSweptSphereRadius (FCL_REAL radius)
 Set radius of sphere swept around the shape. Must be >= 0. More...
 
FCL_REAL hpp::fcl::ShapeBase::getSweptSphereRadius () const
 Get radius of sphere swept around the shape. This radius is always >= 0. More...
 
 hpp::fcl::TriangleP::TriangleP ()
 
 hpp::fcl::TriangleP::TriangleP (const Vec3f &a_, const Vec3f &b_, const Vec3f &c_)
 
 hpp::fcl::TriangleP::TriangleP (const TriangleP &other)
 
virtual TrianglePhpp::fcl::TriangleP::clone () const
 Clone *this into a new TriangleP. More...
 
void hpp::fcl::TriangleP::computeLocalAABB ()
 virtual function of compute AABB in local coordinate More...
 
NODE_TYPE hpp::fcl::TriangleP::getNodeType () const
 get the node type More...
 
 hpp::fcl::Box::Box (FCL_REAL x, FCL_REAL y, FCL_REAL z)
 
 hpp::fcl::Box::Box (const Vec3f &side_)
 
 hpp::fcl::Box::Box (const Box &other)
 
Boxhpp::fcl::Box::operator= (const Box &other)
 
virtual Boxhpp::fcl::Box::clone () const
 Clone *this into a new Box. More...
 
 hpp::fcl::Box::Box ()
 Default constructor. More...
 
void hpp::fcl::Box::computeLocalAABB ()
 Compute AABB. More...
 
NODE_TYPE hpp::fcl::Box::getNodeType () const
 Get node type: a box. More...
 
FCL_REAL hpp::fcl::Box::computeVolume () const
 compute the volume More...
 
Matrix3f hpp::fcl::Box::computeMomentofInertia () const
 compute the inertia matrix, related to the origin More...
 
FCL_REAL hpp::fcl::Box::minInflationValue () const
 
std::pair< Box, Transform3fhpp::fcl::Box::inflated (const FCL_REAL value) const
 Inflate the box by an amount given by value. This value can be positive or negative but must always >= minInflationValue(). More...
 
 hpp::fcl::Sphere::Sphere ()
 Default constructor. More...
 
 hpp::fcl::Sphere::Sphere (FCL_REAL radius_)
 
 hpp::fcl::Sphere::Sphere (const Sphere &other)
 
virtual Spherehpp::fcl::Sphere::clone () const
 Clone *this into a new Sphere. More...
 
void hpp::fcl::Sphere::computeLocalAABB ()
 Compute AABB. More...
 
NODE_TYPE hpp::fcl::Sphere::getNodeType () const
 Get node type: a sphere. More...
 
Matrix3f hpp::fcl::Sphere::computeMomentofInertia () const
 compute the inertia matrix, related to the origin More...
 
FCL_REAL hpp::fcl::Sphere::computeVolume () const
 compute the volume More...
 
FCL_REAL hpp::fcl::Sphere::minInflationValue () const
 
std::pair< Sphere, Transform3fhpp::fcl::Sphere::inflated (const FCL_REAL value) const
 Inflate the sphere by an amount given by value. This value can be positive or negative but must always >= minInflationValue(). More...
 
 hpp::fcl::Ellipsoid::Ellipsoid ()
 Default constructor. More...
 
 hpp::fcl::Ellipsoid::Ellipsoid (FCL_REAL rx, FCL_REAL ry, FCL_REAL rz)
 
 hpp::fcl::Ellipsoid::Ellipsoid (const Vec3f &radii)
 
 hpp::fcl::Ellipsoid::Ellipsoid (const Ellipsoid &other)
 
virtual Ellipsoidhpp::fcl::Ellipsoid::clone () const
 Clone *this into a new Ellipsoid. More...
 
void hpp::fcl::Ellipsoid::computeLocalAABB ()
 Compute AABB. More...
 
NODE_TYPE hpp::fcl::Ellipsoid::getNodeType () const
 Get node type: an ellipsoid. More...
 
Matrix3f hpp::fcl::Ellipsoid::computeMomentofInertia () const
 compute the inertia matrix, related to the origin More...
 
FCL_REAL hpp::fcl::Ellipsoid::computeVolume () const
 compute the volume More...
 
FCL_REAL hpp::fcl::Ellipsoid::minInflationValue () const
 
std::pair< Ellipsoid, Transform3fhpp::fcl::Ellipsoid::inflated (const FCL_REAL value) const
 Inflate the ellipsoid by an amount given by value. This value can be positive or negative but must always >= minInflationValue(). More...
 
 hpp::fcl::Capsule::Capsule ()
 Default constructor. More...
 
 hpp::fcl::Capsule::Capsule (FCL_REAL radius_, FCL_REAL lz_)
 
 hpp::fcl::Capsule::Capsule (const Capsule &other)
 
virtual Capsulehpp::fcl::Capsule::clone () const
 Clone *this into a new Capsule. More...
 
void hpp::fcl::Capsule::computeLocalAABB ()
 Compute AABB. More...
 
NODE_TYPE hpp::fcl::Capsule::getNodeType () const
 Get node type: a capsule. More...
 
FCL_REAL hpp::fcl::Capsule::computeVolume () const
 compute the volume More...
 
Matrix3f hpp::fcl::Capsule::computeMomentofInertia () const
 compute the inertia matrix, related to the origin More...
 
FCL_REAL hpp::fcl::Capsule::minInflationValue () const
 
std::pair< Capsule, Transform3fhpp::fcl::Capsule::inflated (const FCL_REAL value) const
 Inflate the capsule by an amount given by value. This value can be positive or negative but must always >= minInflationValue(). More...
 
 hpp::fcl::Cone::Cone ()
 Default constructor. More...
 
 hpp::fcl::Cone::Cone (FCL_REAL radius_, FCL_REAL lz_)
 
 hpp::fcl::Cone::Cone (const Cone &other)
 
virtual Conehpp::fcl::Cone::clone () const
 Clone *this into a new Cone. More...
 
void hpp::fcl::Cone::computeLocalAABB ()
 Compute AABB. More...
 
NODE_TYPE hpp::fcl::Cone::getNodeType () const
 Get node type: a cone. More...
 
FCL_REAL hpp::fcl::Cone::computeVolume () const
 compute the volume More...
 
Matrix3f hpp::fcl::Cone::computeMomentofInertia () const
 compute the inertia matrix, related to the origin More...
 
Vec3f hpp::fcl::Cone::computeCOM () const
 compute center of mass More...
 
FCL_REAL hpp::fcl::Cone::minInflationValue () const
 
std::pair< Cone, Transform3fhpp::fcl::Cone::inflated (const FCL_REAL value) const
 Inflate the cone by an amount given by value. This value can be positive or negative but must always >= minInflationValue(). More...
 
 hpp::fcl::Cylinder::Cylinder ()
 Default constructor. More...
 
 hpp::fcl::Cylinder::Cylinder (FCL_REAL radius_, FCL_REAL lz_)
 
 hpp::fcl::Cylinder::Cylinder (const Cylinder &other)
 
Cylinderhpp::fcl::Cylinder::operator= (const Cylinder &other)
 
virtual Cylinderhpp::fcl::Cylinder::clone () const
 Clone *this into a new Cylinder. More...
 
void hpp::fcl::Cylinder::computeLocalAABB ()
 Compute AABB. More...
 
NODE_TYPE hpp::fcl::Cylinder::getNodeType () const
 Get node type: a cylinder. More...
 
FCL_REAL hpp::fcl::Cylinder::computeVolume () const
 compute the volume More...
 
Matrix3f hpp::fcl::Cylinder::computeMomentofInertia () const
 compute the inertia matrix, related to the origin More...
 
FCL_REAL hpp::fcl::Cylinder::minInflationValue () const
 
std::pair< Cylinder, Transform3fhpp::fcl::Cylinder::inflated (const FCL_REAL value) const
 Inflate the cylinder by an amount given by value. This value can be positive or negative but must always >= minInflationValue(). More...
 
static ConvexBasehpp::fcl::ConvexBase::convexHull (std::shared_ptr< std::vector< Vec3f >> &points, unsigned int num_points, bool keepTriangles, const char *qhullCommand=NULL)
 Build a convex hull based on Qhull library and store the vertices and optionally the triangles. More...
 
static ConvexBasehpp::fcl::ConvexBase::convexHull (const Vec3f *points, unsigned int num_points, bool keepTriangles, const char *qhullCommand=NULL)
 
virtual hpp::fcl::ConvexBase::~ConvexBase ()
 
virtual ConvexBasehpp::fcl::ConvexBase::clone () const
 Clone (deep copy). This method is consistent with BVHModel clone method. The copy constructor is called, which duplicates the data. More...
 
void hpp::fcl::ConvexBase::computeLocalAABB ()
 Compute AABB. More...
 
NODE_TYPE hpp::fcl::ConvexBase::getNodeType () const
 Get node type: a convex polytope. More...
 
unsigned char const & hpp::fcl::ConvexBase::Neighbors::count () const
 
unsigned int & hpp::fcl::ConvexBase::Neighbors::operator[] (int i)
 
unsigned int const & hpp::fcl::ConvexBase::Neighbors::operator[] (int i) const
 
bool hpp::fcl::ConvexBase::Neighbors::operator== (const Neighbors &other) const
 
bool hpp::fcl::ConvexBase::Neighbors::operator!= (const Neighbors &other) const
 
 hpp::fcl::ConvexBase::ConvexBase ()
 Construct an uninitialized convex object Initialization is done with ConvexBase::initialize. More...
 
void hpp::fcl::ConvexBase::initialize (std::shared_ptr< std::vector< Vec3f >> points_, unsigned int num_points_)
 Initialize the points of the convex shape This also initializes the ConvexBase::center. More...
 
void hpp::fcl::ConvexBase::set (std::shared_ptr< std::vector< Vec3f >> points_, unsigned int num_points_)
 Set the points of the convex shape. More...
 
 hpp::fcl::ConvexBase::ConvexBase (const ConvexBase &other)
 Copy constructor Only the list of neighbors is copied. More...
 
void hpp::fcl::ConvexBase::buildSupportWarmStart ()
 Build the support points warm starts. More...
 
 hpp::fcl::Halfspace::Halfspace (const Vec3f &n_, FCL_REAL d_)
 Construct a half space with normal direction and offset. More...
 
 hpp::fcl::Halfspace::Halfspace (FCL_REAL a, FCL_REAL b, FCL_REAL c, FCL_REAL d_)
 Construct a plane with normal direction and offset. More...
 
 hpp::fcl::Halfspace::Halfspace ()
 
 hpp::fcl::Halfspace::Halfspace (const Halfspace &other)
 
Halfspacehpp::fcl::Halfspace::operator= (const Halfspace &other)
 operator = More...
 
virtual Halfspacehpp::fcl::Halfspace::clone () const
 Clone *this into a new Halfspace. More...
 
FCL_REAL hpp::fcl::Halfspace::signedDistance (const Vec3f &p) const
 
FCL_REAL hpp::fcl::Halfspace::distance (const Vec3f &p) const
 
void hpp::fcl::Halfspace::computeLocalAABB ()
 Compute AABB. More...
 
NODE_TYPE hpp::fcl::Halfspace::getNodeType () const
 Get node type: a half space. More...
 
FCL_REAL hpp::fcl::Halfspace::minInflationValue () const
 
std::pair< Halfspace, Transform3fhpp::fcl::Halfspace::inflated (const FCL_REAL value) const
 Inflate the halfspace by an amount given by value. This value can be positive or negative but must always >= minInflationValue(). More...
 
void hpp::fcl::Halfspace::unitNormalTest ()
 Turn non-unit normal into unit. More...
 
 hpp::fcl::Plane::Plane (const Vec3f &n_, FCL_REAL d_)
 Construct a plane with normal direction and offset. More...
 
 hpp::fcl::Plane::Plane (FCL_REAL a, FCL_REAL b, FCL_REAL c, FCL_REAL d_)
 Construct a plane with normal direction and offset. More...
 
 hpp::fcl::Plane::Plane ()
 
 hpp::fcl::Plane::Plane (const Plane &other)
 
Planehpp::fcl::Plane::operator= (const Plane &other)
 operator = More...
 
virtual Planehpp::fcl::Plane::clone () const
 Clone *this into a new Plane. More...
 
FCL_REAL hpp::fcl::Plane::signedDistance (const Vec3f &p) const
 
FCL_REAL hpp::fcl::Plane::distance (const Vec3f &p) const
 
void hpp::fcl::Plane::computeLocalAABB ()
 Compute AABB. More...
 
NODE_TYPE hpp::fcl::Plane::getNodeType () const
 Get node type: a plane. More...
 
void hpp::fcl::Plane::unitNormalTest ()
 Turn non-unit normal into unit. More...
 

Variables

FCL_REAL hpp::fcl::ShapeBase::m_swept_sphere_radius {0}
 Radius of the sphere swept around the shape. Default value is 0. Note: this property differs from inflated method of certain derived classes (e.g. Box, Sphere, Ellipsoid, Capsule, Cone, Cylinder) in the sense that inflated returns a new shape which can be inflated but also deflated. Also, an inflated shape is not rounded. It simply has a different size. Sweeping a shape with a sphere is a different operation (a Minkowski sum), which rounds the sharp corners of a shape. The swept sphere radius is a property of the shape itself and can be manually updated between collision checks. More...
 
Vec3f hpp::fcl::TriangleP::a
 
Vec3f hpp::fcl::TriangleP::b
 
Vec3f hpp::fcl::TriangleP::c
 
Vec3f hpp::fcl::Box::halfSide
 box side half-length More...
 
FCL_REAL hpp::fcl::Sphere::radius
 Radius of the sphere. More...
 
Vec3f hpp::fcl::Ellipsoid::radii
 Radii of the Ellipsoid (such that on boundary: x^2/rx^2 + y^2/ry^2. More...
 
FCL_REAL hpp::fcl::Capsule::radius
 Radius of capsule. More...
 
FCL_REAL hpp::fcl::Capsule::halfLength
 Half Length along z axis. More...
 
FCL_REAL hpp::fcl::Cone::radius
 Radius of the cone. More...
 
FCL_REAL hpp::fcl::Cone::halfLength
 Half Length along z axis. More...
 
FCL_REAL hpp::fcl::Cylinder::radius
 Radius of the cylinder. More...
 
FCL_REAL hpp::fcl::Cylinder::halfLength
 Half Length along z axis. More...
 
unsigned char hpp::fcl::ConvexBase::Neighbors::count_
 
unsigned int * hpp::fcl::ConvexBase::Neighbors::n_
 
static constexpr size_t hpp::fcl::ConvexBase::num_vertices_large_convex_threshold = 32
 Above this threshold, the convex polytope is considered large. This influcences the way the support function is computed. More...
 
std::shared_ptr< std::vector< Vec3f > > hpp::fcl::ConvexBase::points
 An array of the points of the polygon. More...
 
unsigned int hpp::fcl::ConvexBase::num_points
 
std::shared_ptr< std::vector< Vec3f > > hpp::fcl::ConvexBase::normals
 An array of the normals of the polygon. More...
 
std::shared_ptr< std::vector< double > > hpp::fcl::ConvexBase::offsets
 An array of the offsets to the normals of the polygon. Note: there are as many offsets as normals. More...
 
unsigned int hpp::fcl::ConvexBase::num_normals_and_offsets
 
std::shared_ptr< std::vector< Neighbors > > hpp::fcl::ConvexBase::neighbors
 Neighbors of each vertex. It is an array of size num_points. For each vertex, it contains the number of neighbors and a list of indices pointing to them. More...
 
Vec3f hpp::fcl::ConvexBase::center
 center of the convex polytope, this is used for collision: center is guaranteed in the internal of the polytope (as it is convex) More...
 
std::vector< Vec3fhpp::fcl::ConvexBase::SupportWarmStartPolytope::points
 Array of support points to warm start the support function computation. More...
 
std::vector< int > hpp::fcl::ConvexBase::SupportWarmStartPolytope::indices
 Indices of the support points warm starts. These are the indices of the real convex, not the indices of points in the warm start polytope. More...
 
static constexpr size_t hpp::fcl::ConvexBase::num_support_warm_starts = 14
 Number of support warm starts. More...
 
SupportWarmStartPolytope hpp::fcl::ConvexBase::support_warm_starts
 Support warm start polytopes. More...
 
std::shared_ptr< std::vector< unsigned int > > hpp::fcl::ConvexBase::nneighbors_
 Array of indices of the neighbors of each vertex. Since we don't know a priori the number of neighbors of each vertex, we store the indices of the neighbors in a single array. The neighbors attribute, an array of Neighbors, is used to point each vertex to the right indices in the nneighbors_ array. More...
 
Vec3f hpp::fcl::Halfspace::n
 Plane normal. More...
 
FCL_REAL hpp::fcl::Halfspace::d
 Plane offset. More...
 
Vec3f hpp::fcl::Plane::n
 Plane normal. More...
 
FCL_REAL hpp::fcl::Plane::d
 Plane offset. More...
 

Detailed Description

Classes of different types of geometric shapes.

Function Documentation

◆ Box() [1/4]

hpp::fcl::Box::Box ( )
inline

Default constructor.

◆ Box() [2/4]

hpp::fcl::Box::Box ( const Box other)
inline

◆ Box() [3/4]

hpp::fcl::Box::Box ( const Vec3f side_)
inline

◆ Box() [4/4]

hpp::fcl::Box::Box ( FCL_REAL  x,
FCL_REAL  y,
FCL_REAL  z 
)
inline

◆ buildSupportWarmStart()

void hpp::fcl::ConvexBase::buildSupportWarmStart ( )
protected

Build the support points warm starts.

◆ Capsule() [1/3]

hpp::fcl::Capsule::Capsule ( )
inline

Default constructor.

◆ Capsule() [2/3]

hpp::fcl::Capsule::Capsule ( const Capsule other)
inline

◆ Capsule() [3/3]

hpp::fcl::Capsule::Capsule ( FCL_REAL  radius_,
FCL_REAL  lz_ 
)
inline

◆ clone() [1/10]

virtual TriangleP* hpp::fcl::TriangleP::clone ( ) const
inlinevirtual

Clone *this into a new TriangleP.

Implements hpp::fcl::CollisionGeometry.

◆ clone() [2/10]

virtual Box* hpp::fcl::Box::clone ( ) const
inlinevirtual

Clone *this into a new Box.

Implements hpp::fcl::CollisionGeometry.

◆ clone() [3/10]

virtual Sphere* hpp::fcl::Sphere::clone ( ) const
inlinevirtual

Clone *this into a new Sphere.

Implements hpp::fcl::CollisionGeometry.

◆ clone() [4/10]

virtual Ellipsoid* hpp::fcl::Ellipsoid::clone ( ) const
inlinevirtual

Clone *this into a new Ellipsoid.

Implements hpp::fcl::CollisionGeometry.

◆ clone() [5/10]

virtual Capsule* hpp::fcl::Capsule::clone ( ) const
inlinevirtual

Clone *this into a new Capsule.

Implements hpp::fcl::CollisionGeometry.

◆ clone() [6/10]

virtual Cone* hpp::fcl::Cone::clone ( ) const
inlinevirtual

Clone *this into a new Cone.

Implements hpp::fcl::CollisionGeometry.

◆ clone() [7/10]

virtual Cylinder* hpp::fcl::Cylinder::clone ( ) const
inlinevirtual

Clone *this into a new Cylinder.

Implements hpp::fcl::CollisionGeometry.

◆ clone() [8/10]

virtual ConvexBase* hpp::fcl::ConvexBase::clone ( ) const
inlinevirtual

Clone (deep copy). This method is consistent with BVHModel clone method. The copy constructor is called, which duplicates the data.

Implements hpp::fcl::CollisionGeometry.

Reimplemented in hpp::fcl::Convex< PolygonT >.

◆ clone() [9/10]

virtual Halfspace* hpp::fcl::Halfspace::clone ( ) const
inlinevirtual

Clone *this into a new Halfspace.

Implements hpp::fcl::CollisionGeometry.

◆ clone() [10/10]

virtual Plane* hpp::fcl::Plane::clone ( ) const
inlinevirtual

Clone *this into a new Plane.

Implements hpp::fcl::CollisionGeometry.

◆ computeCOM()

Vec3f hpp::fcl::Cone::computeCOM ( ) const
inlinevirtual

compute center of mass

Reimplemented from hpp::fcl::CollisionGeometry.

◆ computeLocalAABB() [1/10]

void hpp::fcl::TriangleP::computeLocalAABB ( )
virtual

virtual function of compute AABB in local coordinate

Implements hpp::fcl::CollisionGeometry.

◆ computeLocalAABB() [2/10]

void hpp::fcl::Box::computeLocalAABB ( )
virtual

Compute AABB.

Implements hpp::fcl::CollisionGeometry.

◆ computeLocalAABB() [3/10]

void hpp::fcl::Sphere::computeLocalAABB ( )
virtual

Compute AABB.

Implements hpp::fcl::CollisionGeometry.

◆ computeLocalAABB() [4/10]

void hpp::fcl::Ellipsoid::computeLocalAABB ( )
virtual

Compute AABB.

Implements hpp::fcl::CollisionGeometry.

◆ computeLocalAABB() [5/10]

void hpp::fcl::Capsule::computeLocalAABB ( )
virtual

Compute AABB.

Implements hpp::fcl::CollisionGeometry.

◆ computeLocalAABB() [6/10]

void hpp::fcl::Cone::computeLocalAABB ( )
virtual

Compute AABB.

Implements hpp::fcl::CollisionGeometry.

◆ computeLocalAABB() [7/10]

void hpp::fcl::Cylinder::computeLocalAABB ( )
virtual

Compute AABB.

Implements hpp::fcl::CollisionGeometry.

◆ computeLocalAABB() [8/10]

void hpp::fcl::ConvexBase::computeLocalAABB ( )
virtual

Compute AABB.

Implements hpp::fcl::CollisionGeometry.

◆ computeLocalAABB() [9/10]

void hpp::fcl::Halfspace::computeLocalAABB ( )
virtual

Compute AABB.

Implements hpp::fcl::CollisionGeometry.

◆ computeLocalAABB() [10/10]

void hpp::fcl::Plane::computeLocalAABB ( )
virtual

Compute AABB.

Implements hpp::fcl::CollisionGeometry.

◆ computeMomentofInertia() [1/6]

Matrix3f hpp::fcl::Box::computeMomentofInertia ( ) const
inlinevirtual

compute the inertia matrix, related to the origin

Reimplemented from hpp::fcl::CollisionGeometry.

◆ computeMomentofInertia() [2/6]

Matrix3f hpp::fcl::Sphere::computeMomentofInertia ( ) const
inlinevirtual

compute the inertia matrix, related to the origin

Reimplemented from hpp::fcl::CollisionGeometry.

◆ computeMomentofInertia() [3/6]

Matrix3f hpp::fcl::Ellipsoid::computeMomentofInertia ( ) const
inlinevirtual

compute the inertia matrix, related to the origin

Reimplemented from hpp::fcl::CollisionGeometry.

◆ computeMomentofInertia() [4/6]

Matrix3f hpp::fcl::Capsule::computeMomentofInertia ( ) const
inlinevirtual

compute the inertia matrix, related to the origin

Reimplemented from hpp::fcl::CollisionGeometry.

◆ computeMomentofInertia() [5/6]

Matrix3f hpp::fcl::Cone::computeMomentofInertia ( ) const
inlinevirtual

compute the inertia matrix, related to the origin

Reimplemented from hpp::fcl::CollisionGeometry.

◆ computeMomentofInertia() [6/6]

Matrix3f hpp::fcl::Cylinder::computeMomentofInertia ( ) const
inlinevirtual

compute the inertia matrix, related to the origin

Reimplemented from hpp::fcl::CollisionGeometry.

◆ computeVolume() [1/6]

FCL_REAL hpp::fcl::Box::computeVolume ( ) const
inlinevirtual

compute the volume

Reimplemented from hpp::fcl::CollisionGeometry.

◆ computeVolume() [2/6]

FCL_REAL hpp::fcl::Sphere::computeVolume ( ) const
inlinevirtual

compute the volume

Reimplemented from hpp::fcl::CollisionGeometry.

◆ computeVolume() [3/6]

FCL_REAL hpp::fcl::Ellipsoid::computeVolume ( ) const
inlinevirtual

compute the volume

Reimplemented from hpp::fcl::CollisionGeometry.

◆ computeVolume() [4/6]

FCL_REAL hpp::fcl::Capsule::computeVolume ( ) const
inlinevirtual

compute the volume

Reimplemented from hpp::fcl::CollisionGeometry.

◆ computeVolume() [5/6]

FCL_REAL hpp::fcl::Cone::computeVolume ( ) const
inlinevirtual

compute the volume

Reimplemented from hpp::fcl::CollisionGeometry.

◆ computeVolume() [6/6]

FCL_REAL hpp::fcl::Cylinder::computeVolume ( ) const
inlinevirtual

compute the volume

Reimplemented from hpp::fcl::CollisionGeometry.

◆ Cone() [1/3]

hpp::fcl::Cone::Cone ( )
inline

Default constructor.

◆ Cone() [2/3]

hpp::fcl::Cone::Cone ( const Cone other)
inline

◆ Cone() [3/3]

hpp::fcl::Cone::Cone ( FCL_REAL  radius_,
FCL_REAL  lz_ 
)
inline

◆ ConvexBase() [1/2]

hpp::fcl::ConvexBase::ConvexBase ( )
inlineprotected

Construct an uninitialized convex object Initialization is done with ConvexBase::initialize.

◆ ConvexBase() [2/2]

hpp::fcl::ConvexBase::ConvexBase ( const ConvexBase other)
protected

Copy constructor Only the list of neighbors is copied.

◆ convexHull() [1/2]

static ConvexBase* hpp::fcl::ConvexBase::convexHull ( const Vec3f points,
unsigned int  num_points,
bool  keepTriangles,
const char *  qhullCommand = NULL 
)
static

◆ convexHull() [2/2]

static ConvexBase* hpp::fcl::ConvexBase::convexHull ( std::shared_ptr< std::vector< Vec3f >> &  points,
unsigned int  num_points,
bool  keepTriangles,
const char *  qhullCommand = NULL 
)
static

Build a convex hull based on Qhull library and store the vertices and optionally the triangles.

Parameters
points,num_pointsthe points whose convex hull should be computed.
keepTrianglesif true, returns a Convex<Triangle> object which contains the triangle of the shape.
qhullCommandthe command sent to qhull.
  • if keepTriangles is true, this parameter should include "Qt". If NULL, "Qt" is passed to Qhull.
  • if keepTriangles is false, an empty string is passed to Qhull.
Note
hpp-fcl must have been compiled with option HPP_FCL_HAS_QHULL set to ON.

◆ count()

unsigned char const& hpp::fcl::ConvexBase::Neighbors::count ( ) const
inline

◆ Cylinder() [1/3]

hpp::fcl::Cylinder::Cylinder ( )
inline

Default constructor.

◆ Cylinder() [2/3]

hpp::fcl::Cylinder::Cylinder ( const Cylinder other)
inline

◆ Cylinder() [3/3]

hpp::fcl::Cylinder::Cylinder ( FCL_REAL  radius_,
FCL_REAL  lz_ 
)
inline

◆ distance() [1/2]

FCL_REAL hpp::fcl::Halfspace::distance ( const Vec3f p) const
inline

◆ distance() [2/2]

FCL_REAL hpp::fcl::Plane::distance ( const Vec3f p) const
inline

◆ Ellipsoid() [1/4]

hpp::fcl::Ellipsoid::Ellipsoid ( )
inline

Default constructor.

◆ Ellipsoid() [2/4]

hpp::fcl::Ellipsoid::Ellipsoid ( const Ellipsoid other)
inline

◆ Ellipsoid() [3/4]

hpp::fcl::Ellipsoid::Ellipsoid ( const Vec3f radii)
inlineexplicit

◆ Ellipsoid() [4/4]

hpp::fcl::Ellipsoid::Ellipsoid ( FCL_REAL  rx,
FCL_REAL  ry,
FCL_REAL  rz 
)
inline

◆ getNodeType() [1/10]

NODE_TYPE hpp::fcl::TriangleP::getNodeType ( ) const
inlinevirtual

get the node type

Reimplemented from hpp::fcl::CollisionGeometry.

◆ getNodeType() [2/10]

NODE_TYPE hpp::fcl::Box::getNodeType ( ) const
inlinevirtual

Get node type: a box.

Reimplemented from hpp::fcl::CollisionGeometry.

◆ getNodeType() [3/10]

NODE_TYPE hpp::fcl::Sphere::getNodeType ( ) const
inlinevirtual

Get node type: a sphere.

Reimplemented from hpp::fcl::CollisionGeometry.

◆ getNodeType() [4/10]

NODE_TYPE hpp::fcl::Ellipsoid::getNodeType ( ) const
inlinevirtual

Get node type: an ellipsoid.

Reimplemented from hpp::fcl::CollisionGeometry.

◆ getNodeType() [5/10]

NODE_TYPE hpp::fcl::Capsule::getNodeType ( ) const
inlinevirtual

Get node type: a capsule.

Reimplemented from hpp::fcl::CollisionGeometry.

◆ getNodeType() [6/10]

NODE_TYPE hpp::fcl::Cone::getNodeType ( ) const
inlinevirtual

Get node type: a cone.

Reimplemented from hpp::fcl::CollisionGeometry.

◆ getNodeType() [7/10]

NODE_TYPE hpp::fcl::Cylinder::getNodeType ( ) const
inlinevirtual

Get node type: a cylinder.

Reimplemented from hpp::fcl::CollisionGeometry.

◆ getNodeType() [8/10]

NODE_TYPE hpp::fcl::ConvexBase::getNodeType ( ) const
inlinevirtual

Get node type: a convex polytope.

Reimplemented from hpp::fcl::CollisionGeometry.

◆ getNodeType() [9/10]

NODE_TYPE hpp::fcl::Halfspace::getNodeType ( ) const
inlinevirtual

Get node type: a half space.

Reimplemented from hpp::fcl::CollisionGeometry.

◆ getNodeType() [10/10]

NODE_TYPE hpp::fcl::Plane::getNodeType ( ) const
inlinevirtual

Get node type: a plane.

Reimplemented from hpp::fcl::CollisionGeometry.

◆ getObjectType()

OBJECT_TYPE hpp::fcl::ShapeBase::getObjectType ( ) const
inlinevirtual

Get object type: a geometric shape.

Reimplemented from hpp::fcl::CollisionGeometry.

◆ getSweptSphereRadius()

FCL_REAL hpp::fcl::ShapeBase::getSweptSphereRadius ( ) const
inline

Get radius of sphere swept around the shape. This radius is always >= 0.

◆ Halfspace() [1/4]

hpp::fcl::Halfspace::Halfspace ( )
inline

◆ Halfspace() [2/4]

hpp::fcl::Halfspace::Halfspace ( const Halfspace other)
inline

◆ Halfspace() [3/4]

hpp::fcl::Halfspace::Halfspace ( const Vec3f n_,
FCL_REAL  d_ 
)
inline

Construct a half space with normal direction and offset.

◆ Halfspace() [4/4]

hpp::fcl::Halfspace::Halfspace ( FCL_REAL  a,
FCL_REAL  b,
FCL_REAL  c,
FCL_REAL  d_ 
)
inline

Construct a plane with normal direction and offset.

◆ inflated() [1/7]

std::pair<Box, Transform3f> hpp::fcl::Box::inflated ( const FCL_REAL  value) const
inline

Inflate the box by an amount given by value. This value can be positive or negative but must always >= minInflationValue().

Parameters
[in]valueof the shape inflation.
Returns
a new inflated box and the related transform to account for the change of shape frame

◆ inflated() [2/7]

std::pair<Sphere, Transform3f> hpp::fcl::Sphere::inflated ( const FCL_REAL  value) const
inline

Inflate the sphere by an amount given by value. This value can be positive or negative but must always >= minInflationValue().

Parameters
[in]valueof the shape inflation.
Returns
a new inflated sphere and the related transform to account for the change of shape frame

◆ inflated() [3/7]

std::pair<Ellipsoid, Transform3f> hpp::fcl::Ellipsoid::inflated ( const FCL_REAL  value) const
inline

Inflate the ellipsoid by an amount given by value. This value can be positive or negative but must always >= minInflationValue().

Parameters
[in]valueof the shape inflation.
Returns
a new inflated ellipsoid and the related transform to account for the change of shape frame

◆ inflated() [4/7]

std::pair<Capsule, Transform3f> hpp::fcl::Capsule::inflated ( const FCL_REAL  value) const
inline

Inflate the capsule by an amount given by value. This value can be positive or negative but must always >= minInflationValue().

Parameters
[in]valueof the shape inflation.
Returns
a new inflated capsule and the related transform to account for the change of shape frame

◆ inflated() [5/7]

std::pair<Cone, Transform3f> hpp::fcl::Cone::inflated ( const FCL_REAL  value) const
inline

Inflate the cone by an amount given by value. This value can be positive or negative but must always >= minInflationValue().

Parameters
[in]valueof the shape inflation.
Returns
a new inflated cone and the related transform to account for the change of shape frame

◆ inflated() [6/7]

std::pair<Cylinder, Transform3f> hpp::fcl::Cylinder::inflated ( const FCL_REAL  value) const
inline

Inflate the cylinder by an amount given by value. This value can be positive or negative but must always >= minInflationValue().

Parameters
[in]valueof the shape inflation.
Returns
a new inflated cylinder and the related transform to account for the change of shape frame

◆ inflated() [7/7]

std::pair<Halfspace, Transform3f> hpp::fcl::Halfspace::inflated ( const FCL_REAL  value) const
inline

Inflate the halfspace by an amount given by value. This value can be positive or negative but must always >= minInflationValue().

Parameters
[in]valueof the shape inflation.
Returns
a new inflated halfspace and the related transform to account for the change of shape frame

◆ initialize()

void hpp::fcl::ConvexBase::initialize ( std::shared_ptr< std::vector< Vec3f >>  points_,
unsigned int  num_points_ 
)
protected

Initialize the points of the convex shape This also initializes the ConvexBase::center.

Parameters
ownStorageweither the ConvexBase owns the data.
points_list of 3D points ///
num_points_number of 3D points

◆ minInflationValue() [1/7]

FCL_REAL hpp::fcl::Box::minInflationValue ( ) const
inline

◆ minInflationValue() [2/7]

FCL_REAL hpp::fcl::Sphere::minInflationValue ( ) const
inline

◆ minInflationValue() [3/7]

FCL_REAL hpp::fcl::Ellipsoid::minInflationValue ( ) const
inline

◆ minInflationValue() [4/7]

FCL_REAL hpp::fcl::Capsule::minInflationValue ( ) const
inline

◆ minInflationValue() [5/7]

FCL_REAL hpp::fcl::Cone::minInflationValue ( ) const
inline

◆ minInflationValue() [6/7]

FCL_REAL hpp::fcl::Cylinder::minInflationValue ( ) const
inline

◆ minInflationValue() [7/7]

FCL_REAL hpp::fcl::Halfspace::minInflationValue ( ) const
inline

◆ operator!=()

bool hpp::fcl::ConvexBase::Neighbors::operator!= ( const Neighbors other) const
inline

◆ operator=() [1/5]

Box& hpp::fcl::Box::operator= ( const Box other)
inline

◆ operator=() [2/5]

Cylinder& hpp::fcl::Cylinder::operator= ( const Cylinder other)
inline

◆ operator=() [3/5]

Halfspace& hpp::fcl::Halfspace::operator= ( const Halfspace other)
inline

operator =

◆ operator=() [4/5]

Plane& hpp::fcl::Plane::operator= ( const Plane other)
inline

operator =

◆ operator=() [5/5]

ShapeBase& hpp::fcl::ShapeBase::operator= ( const ShapeBase other)
default

◆ operator==()

bool hpp::fcl::ConvexBase::Neighbors::operator== ( const Neighbors other) const
inline

◆ operator[]() [1/2]

unsigned int& hpp::fcl::ConvexBase::Neighbors::operator[] ( int  i)
inline

◆ operator[]() [2/2]

unsigned int const& hpp::fcl::ConvexBase::Neighbors::operator[] ( int  i) const
inline

◆ Plane() [1/4]

hpp::fcl::Plane::Plane ( )
inline

◆ Plane() [2/4]

hpp::fcl::Plane::Plane ( const Plane other)
inline

◆ Plane() [3/4]

hpp::fcl::Plane::Plane ( const Vec3f n_,
FCL_REAL  d_ 
)
inline

Construct a plane with normal direction and offset.

◆ Plane() [4/4]

hpp::fcl::Plane::Plane ( FCL_REAL  a,
FCL_REAL  b,
FCL_REAL  c,
FCL_REAL  d_ 
)
inline

Construct a plane with normal direction and offset.

◆ set()

void hpp::fcl::ConvexBase::set ( std::shared_ptr< std::vector< Vec3f >>  points_,
unsigned int  num_points_ 
)
protected

Set the points of the convex shape.

Parameters
ownStorageweither the ConvexBase owns the data.
points_list of 3D points ///
num_points_number of 3D points

◆ setSweptSphereRadius()

void hpp::fcl::ShapeBase::setSweptSphereRadius ( FCL_REAL  radius)
inline

Set radius of sphere swept around the shape. Must be >= 0.

◆ ShapeBase() [1/2]

hpp::fcl::ShapeBase::ShapeBase ( )
inline

◆ ShapeBase() [2/2]

hpp::fcl::ShapeBase::ShapeBase ( const ShapeBase other)
inline

 

Copy constructor

◆ signedDistance() [1/2]

FCL_REAL hpp::fcl::Halfspace::signedDistance ( const Vec3f p) const
inline

◆ signedDistance() [2/2]

FCL_REAL hpp::fcl::Plane::signedDistance ( const Vec3f p) const
inline

◆ Sphere() [1/3]

hpp::fcl::Sphere::Sphere ( )
inline

Default constructor.

◆ Sphere() [2/3]

hpp::fcl::Sphere::Sphere ( const Sphere other)
inline

◆ Sphere() [3/3]

hpp::fcl::Sphere::Sphere ( FCL_REAL  radius_)
inlineexplicit

◆ TriangleP() [1/3]

hpp::fcl::TriangleP::TriangleP ( )
inline

◆ TriangleP() [2/3]

hpp::fcl::TriangleP::TriangleP ( const TriangleP other)
inline

◆ TriangleP() [3/3]

hpp::fcl::TriangleP::TriangleP ( const Vec3f a_,
const Vec3f b_,
const Vec3f c_ 
)
inline

◆ unitNormalTest() [1/2]

void hpp::fcl::Halfspace::unitNormalTest ( )
protected

Turn non-unit normal into unit.

◆ unitNormalTest() [2/2]

void hpp::fcl::Plane::unitNormalTest ( )
protected

Turn non-unit normal into unit.

◆ ~ConvexBase()

virtual hpp::fcl::ConvexBase::~ConvexBase ( )
virtual

◆ ~ShapeBase()

virtual hpp::fcl::ShapeBase::~ShapeBase ( )
inlinevirtual

Variable Documentation

◆ a

Vec3f hpp::fcl::TriangleP::a

◆ b

Vec3f hpp::fcl::TriangleP::b

◆ c

Vec3f hpp::fcl::TriangleP::c

◆ center

Vec3f hpp::fcl::ConvexBase::center

center of the convex polytope, this is used for collision: center is guaranteed in the internal of the polytope (as it is convex)

◆ count_

unsigned char hpp::fcl::ConvexBase::Neighbors::count_

◆ d [1/2]

FCL_REAL hpp::fcl::Halfspace::d

Plane offset.

◆ d [2/2]

FCL_REAL hpp::fcl::Plane::d

Plane offset.

◆ halfLength [1/3]

FCL_REAL hpp::fcl::Capsule::halfLength

Half Length along z axis.

◆ halfLength [2/3]

FCL_REAL hpp::fcl::Cone::halfLength

Half Length along z axis.

◆ halfLength [3/3]

FCL_REAL hpp::fcl::Cylinder::halfLength

Half Length along z axis.

◆ halfSide

Vec3f hpp::fcl::Box::halfSide

box side half-length

◆ indices

std::vector<int> hpp::fcl::ConvexBase::SupportWarmStartPolytope::indices

Indices of the support points warm starts. These are the indices of the real convex, not the indices of points in the warm start polytope.

◆ m_swept_sphere_radius

FCL_REAL hpp::fcl::ShapeBase::m_swept_sphere_radius {0}
protected

Radius of the sphere swept around the shape. Default value is 0. Note: this property differs from inflated method of certain derived classes (e.g. Box, Sphere, Ellipsoid, Capsule, Cone, Cylinder) in the sense that inflated returns a new shape which can be inflated but also deflated. Also, an inflated shape is not rounded. It simply has a different size. Sweeping a shape with a sphere is a different operation (a Minkowski sum), which rounds the sharp corners of a shape. The swept sphere radius is a property of the shape itself and can be manually updated between collision checks.

◆ n [1/2]

Vec3f hpp::fcl::Halfspace::n

Plane normal.

◆ n [2/2]

Vec3f hpp::fcl::Plane::n

Plane normal.

◆ n_

unsigned int* hpp::fcl::ConvexBase::Neighbors::n_

◆ neighbors

std::shared_ptr<std::vector<Neighbors> > hpp::fcl::ConvexBase::neighbors

Neighbors of each vertex. It is an array of size num_points. For each vertex, it contains the number of neighbors and a list of indices pointing to them.

◆ nneighbors_

std::shared_ptr<std::vector<unsigned int> > hpp::fcl::ConvexBase::nneighbors_
protected

Array of indices of the neighbors of each vertex. Since we don't know a priori the number of neighbors of each vertex, we store the indices of the neighbors in a single array. The neighbors attribute, an array of Neighbors, is used to point each vertex to the right indices in the nneighbors_ array.

◆ normals

std::shared_ptr<std::vector<Vec3f> > hpp::fcl::ConvexBase::normals

An array of the normals of the polygon.

◆ num_normals_and_offsets

unsigned int hpp::fcl::ConvexBase::num_normals_and_offsets

◆ num_points

unsigned int hpp::fcl::ConvexBase::num_points

◆ num_support_warm_starts

constexpr size_t hpp::fcl::ConvexBase::num_support_warm_starts = 14
staticconstexpr

Number of support warm starts.

◆ num_vertices_large_convex_threshold

constexpr size_t hpp::fcl::ConvexBase::num_vertices_large_convex_threshold = 32
staticconstexpr

Above this threshold, the convex polytope is considered large. This influcences the way the support function is computed.

◆ offsets

std::shared_ptr<std::vector<double> > hpp::fcl::ConvexBase::offsets

An array of the offsets to the normals of the polygon. Note: there are as many offsets as normals.

◆ points [1/2]

std::shared_ptr<std::vector<Vec3f> > hpp::fcl::ConvexBase::points

An array of the points of the polygon.

◆ points [2/2]

std::vector<Vec3f> hpp::fcl::ConvexBase::SupportWarmStartPolytope::points

Array of support points to warm start the support function computation.

◆ radii

Vec3f hpp::fcl::Ellipsoid::radii

Radii of the Ellipsoid (such that on boundary: x^2/rx^2 + y^2/ry^2.

  • z^2/rz^2 = 1)

◆ radius [1/4]

FCL_REAL hpp::fcl::Sphere::radius

Radius of the sphere.

◆ radius [2/4]

FCL_REAL hpp::fcl::Capsule::radius

Radius of capsule.

◆ radius [3/4]

FCL_REAL hpp::fcl::Cone::radius

Radius of the cone.

◆ radius [4/4]

FCL_REAL hpp::fcl::Cylinder::radius

Radius of the cylinder.

◆ support_warm_starts

SupportWarmStartPolytope hpp::fcl::ConvexBase::support_warm_starts

Support warm start polytopes.