coal 3.0.1
Coal, The Collision Detection Library. Previously known as HPP-FCL, fork of FCL -- The Flexible Collision Library
Loading...
Searching...
No Matches
coal::Capsule Class Reference

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...

#include <coal/shape/geometric_shapes.h>

Inheritance diagram for coal::Capsule:
Collaboration diagram for coal::Capsule:

Public Member Functions

 Capsule ()
 Default constructor.
 
 Capsule (Scalar radius_, Scalar lz_)
 
 Capsule (const Capsule &other)
 
virtual Capsuleclone () const
 Clone *this into a new Capsule.
 
void computeLocalAABB ()
 Compute AABB.
 
NODE_TYPE getNodeType () const
 Get node type: a capsule.
 
Scalar computeVolume () const
 compute the volume
 
Matrix3s computeMomentofInertia () const
 compute the inertia matrix, related to the origin
 
Scalar minInflationValue () const
 
std::pair< Capsule, Transform3sinflated (const Scalar value) const
 Inflate the capsule by an amount given by value. This value can be positive or negative but must always >= minInflationValue().
 
- Public Member Functions inherited from coal::ShapeBase
 ShapeBase ()
 
 ShapeBase (const ShapeBase &other)
  
 
ShapeBaseoperator= (const ShapeBase &other)=default
 
virtual ~ShapeBase ()
 
OBJECT_TYPE getObjectType () const
 Get object type: a geometric shape.
 
void setSweptSphereRadius (Scalar radius)
 Set radius of sphere swept around the shape. Must be >= 0.
 
Scalar getSweptSphereRadius () const
 Get radius of sphere swept around the shape. This radius is always >= 0.
 
- Public Member Functions inherited from coal::CollisionGeometry
 CollisionGeometry ()
 
 CollisionGeometry (const CollisionGeometry &other)=default
 Copy constructor.
 
virtual ~CollisionGeometry ()
 
bool operator== (const CollisionGeometry &other) const
 Equality operator.
 
bool operator!= (const CollisionGeometry &other) const
 Difference operator.
 
void * getUserData () const
 get user data in geometry
 
void setUserData (void *data)
 set user data in geometry
 
bool isOccupied () const
 whether the object is completely occupied
 
bool isFree () const
 whether the object is completely free
 
bool isUncertain () const
 whether the object has some uncertainty
 
virtual Vec3s computeCOM () const
 compute center of mass
 
virtual Matrix3s computeMomentofInertiaRelatedToCOM () const
 compute the inertia matrix, related to the com
 

Public Attributes

Scalar radius
 Radius of capsule.
 
Scalar halfLength
 Half Length along z axis.
 
- Public Attributes inherited from coal::CollisionGeometry
Vec3s aabb_center
 AABB center in local coordinate.
 
Scalar aabb_radius
 AABB radius.
 
AABB aabb_local
 AABB in local coordinate, used for tight AABB when only translation transform.
 
void * user_data
 pointer to user defined data specific to this object
 
Scalar cost_density
 collision cost for unit volume
 
Scalar threshold_occupied
 threshold for occupied ( >= is occupied)
 
Scalar threshold_free
 threshold for free (<= is free)
 

Additional Inherited Members

- Protected Attributes inherited from coal::ShapeBase
Scalar 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.
 

Detailed Description

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) \).

Constructor & Destructor Documentation

◆ Capsule() [1/3]

coal::Capsule::Capsule ( )
inline

Default constructor.

◆ Capsule() [2/3]

coal::Capsule::Capsule ( Scalar  radius_,
Scalar  lz_ 
)
inline

◆ Capsule() [3/3]

coal::Capsule::Capsule ( const Capsule other)
inline

Member Function Documentation

◆ clone()

virtual Capsule * coal::Capsule::clone ( ) const
inlinevirtual

Clone *this into a new Capsule.

Implements coal::CollisionGeometry.

◆ computeLocalAABB()

void coal::Capsule::computeLocalAABB ( )
virtual

Compute AABB.

Implements coal::CollisionGeometry.

◆ computeMomentofInertia()

Matrix3s coal::Capsule::computeMomentofInertia ( ) const
inlinevirtual

compute the inertia matrix, related to the origin

Reimplemented from coal::CollisionGeometry.

◆ computeVolume()

Scalar coal::Capsule::computeVolume ( ) const
inlinevirtual

compute the volume

Reimplemented from coal::CollisionGeometry.

◆ getNodeType()

NODE_TYPE coal::Capsule::getNodeType ( ) const
inlinevirtual

Get node type: a capsule.

Reimplemented from coal::CollisionGeometry.

◆ inflated()

std::pair< Capsule, Transform3s > coal::Capsule::inflated ( const Scalar  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

◆ minInflationValue()

Scalar coal::Capsule::minInflationValue ( ) const
inline

Member Data Documentation

◆ halfLength

Scalar coal::Capsule::halfLength

Half Length along z axis.

◆ radius

Scalar coal::Capsule::radius

Radius of capsule.


The documentation for this class was generated from the following file: