coal
3.0.1
Coal, The Collision Detection Library. Previously known as HPP-FCL, fork of FCL -- The Flexible Collision Library
|
Classes | |
class | coal::TriangleP |
Triangle stores the points instead of only indices of points. More... | |
class | coal::Box |
Center at zero point, axis aligned box. More... | |
class | coal::Sphere |
Center at zero point sphere. More... | |
class | coal::Ellipsoid |
Ellipsoid centered at point zero. More... | |
class | coal::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 | coal::Cone |
Cone The base of the cone is at \( z = - halfLength \) and the top is at \( z = halfLength \). More... | |
class | coal::Cylinder |
Cylinder along Z axis. The cylinder is defined at its centroid. More... | |
class | coal::ConvexBase |
Base for convex polytope. More... | |
struct | coal::ConvexBase::Neighbors |
struct | coal::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 | coal::Convex< PolygonT > |
Convex polytope. More... | |
class | coal::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 | coal::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 | |
coal::ShapeBase::ShapeBase () | |
coal::ShapeBase::ShapeBase (const ShapeBase &other) | |
More... | |
ShapeBase & | coal::ShapeBase::operator= (const ShapeBase &other)=default |
virtual | coal::ShapeBase::~ShapeBase () |
OBJECT_TYPE | coal::ShapeBase::getObjectType () const |
Get object type: a geometric shape. More... | |
void | coal::ShapeBase::setSweptSphereRadius (CoalScalar radius) |
Set radius of sphere swept around the shape. Must be >= 0. More... | |
CoalScalar | coal::ShapeBase::getSweptSphereRadius () const |
Get radius of sphere swept around the shape. This radius is always >= 0. More... | |
coal::TriangleP::TriangleP () | |
coal::TriangleP::TriangleP (const Vec3s &a_, const Vec3s &b_, const Vec3s &c_) | |
coal::TriangleP::TriangleP (const TriangleP &other) | |
virtual TriangleP * | coal::TriangleP::clone () const |
Clone *this into a new TriangleP. More... | |
void | coal::TriangleP::computeLocalAABB () |
virtual function of compute AABB in local coordinate More... | |
NODE_TYPE | coal::TriangleP::getNodeType () const |
get the node type More... | |
coal::Box::Box (CoalScalar x, CoalScalar y, CoalScalar z) | |
coal::Box::Box (const Vec3s &side_) | |
coal::Box::Box (const Box &other) | |
Box & | coal::Box::operator= (const Box &other) |
virtual Box * | coal::Box::clone () const |
Clone *this into a new Box. More... | |
coal::Box::Box () | |
Default constructor. More... | |
void | coal::Box::computeLocalAABB () |
Compute AABB. More... | |
NODE_TYPE | coal::Box::getNodeType () const |
Get node type: a box. More... | |
CoalScalar | coal::Box::computeVolume () const |
compute the volume More... | |
Matrix3s | coal::Box::computeMomentofInertia () const |
compute the inertia matrix, related to the origin More... | |
CoalScalar | coal::Box::minInflationValue () const |
std::pair< Box, Transform3s > | coal::Box::inflated (const CoalScalar value) const |
Inflate the box by an amount given by value . This value can be positive or negative but must always >= minInflationValue() . More... | |
coal::Sphere::Sphere () | |
Default constructor. More... | |
coal::Sphere::Sphere (CoalScalar radius_) | |
coal::Sphere::Sphere (const Sphere &other) | |
virtual Sphere * | coal::Sphere::clone () const |
Clone *this into a new Sphere. More... | |
void | coal::Sphere::computeLocalAABB () |
Compute AABB. More... | |
NODE_TYPE | coal::Sphere::getNodeType () const |
Get node type: a sphere. More... | |
Matrix3s | coal::Sphere::computeMomentofInertia () const |
compute the inertia matrix, related to the origin More... | |
CoalScalar | coal::Sphere::computeVolume () const |
compute the volume More... | |
CoalScalar | coal::Sphere::minInflationValue () const |
std::pair< Sphere, Transform3s > | coal::Sphere::inflated (const CoalScalar value) const |
Inflate the sphere by an amount given by value . This value can be positive or negative but must always >= minInflationValue() . More... | |
coal::Ellipsoid::Ellipsoid () | |
Default constructor. More... | |
coal::Ellipsoid::Ellipsoid (CoalScalar rx, CoalScalar ry, CoalScalar rz) | |
coal::Ellipsoid::Ellipsoid (const Vec3s &radii) | |
coal::Ellipsoid::Ellipsoid (const Ellipsoid &other) | |
virtual Ellipsoid * | coal::Ellipsoid::clone () const |
Clone *this into a new Ellipsoid. More... | |
void | coal::Ellipsoid::computeLocalAABB () |
Compute AABB. More... | |
NODE_TYPE | coal::Ellipsoid::getNodeType () const |
Get node type: an ellipsoid. More... | |
Matrix3s | coal::Ellipsoid::computeMomentofInertia () const |
compute the inertia matrix, related to the origin More... | |
CoalScalar | coal::Ellipsoid::computeVolume () const |
compute the volume More... | |
CoalScalar | coal::Ellipsoid::minInflationValue () const |
std::pair< Ellipsoid, Transform3s > | coal::Ellipsoid::inflated (const CoalScalar value) const |
Inflate the ellipsoid by an amount given by value . This value can be positive or negative but must always >= minInflationValue() . More... | |
coal::Capsule::Capsule () | |
Default constructor. More... | |
coal::Capsule::Capsule (CoalScalar radius_, CoalScalar lz_) | |
coal::Capsule::Capsule (const Capsule &other) | |
virtual Capsule * | coal::Capsule::clone () const |
Clone *this into a new Capsule. More... | |
void | coal::Capsule::computeLocalAABB () |
Compute AABB. More... | |
NODE_TYPE | coal::Capsule::getNodeType () const |
Get node type: a capsule. More... | |
CoalScalar | coal::Capsule::computeVolume () const |
compute the volume More... | |
Matrix3s | coal::Capsule::computeMomentofInertia () const |
compute the inertia matrix, related to the origin More... | |
CoalScalar | coal::Capsule::minInflationValue () const |
std::pair< Capsule, Transform3s > | coal::Capsule::inflated (const CoalScalar value) const |
Inflate the capsule by an amount given by value . This value can be positive or negative but must always >= minInflationValue() . More... | |
coal::Cone::Cone () | |
Default constructor. More... | |
coal::Cone::Cone (CoalScalar radius_, CoalScalar lz_) | |
coal::Cone::Cone (const Cone &other) | |
virtual Cone * | coal::Cone::clone () const |
Clone *this into a new Cone. More... | |
void | coal::Cone::computeLocalAABB () |
Compute AABB. More... | |
NODE_TYPE | coal::Cone::getNodeType () const |
Get node type: a cone. More... | |
CoalScalar | coal::Cone::computeVolume () const |
compute the volume More... | |
Matrix3s | coal::Cone::computeMomentofInertia () const |
compute the inertia matrix, related to the origin More... | |
Vec3s | coal::Cone::computeCOM () const |
compute center of mass More... | |
CoalScalar | coal::Cone::minInflationValue () const |
std::pair< Cone, Transform3s > | coal::Cone::inflated (const CoalScalar value) const |
Inflate the cone by an amount given by value . This value can be positive or negative but must always >= minInflationValue() . More... | |
coal::Cylinder::Cylinder () | |
Default constructor. More... | |
coal::Cylinder::Cylinder (CoalScalar radius_, CoalScalar lz_) | |
coal::Cylinder::Cylinder (const Cylinder &other) | |
Cylinder & | coal::Cylinder::operator= (const Cylinder &other) |
virtual Cylinder * | coal::Cylinder::clone () const |
Clone *this into a new Cylinder. More... | |
void | coal::Cylinder::computeLocalAABB () |
Compute AABB. More... | |
NODE_TYPE | coal::Cylinder::getNodeType () const |
Get node type: a cylinder. More... | |
CoalScalar | coal::Cylinder::computeVolume () const |
compute the volume More... | |
Matrix3s | coal::Cylinder::computeMomentofInertia () const |
compute the inertia matrix, related to the origin More... | |
CoalScalar | coal::Cylinder::minInflationValue () const |
std::pair< Cylinder, Transform3s > | coal::Cylinder::inflated (const CoalScalar value) const |
Inflate the cylinder by an amount given by value . This value can be positive or negative but must always >= minInflationValue() . More... | |
static ConvexBase * | coal::ConvexBase::convexHull (std::shared_ptr< std::vector< Vec3s >> &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 ConvexBase * | coal::ConvexBase::convexHull (const Vec3s *points, unsigned int num_points, bool keepTriangles, const char *qhullCommand=NULL) |
virtual | coal::ConvexBase::~ConvexBase () |
virtual ConvexBase * | coal::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 | coal::ConvexBase::computeLocalAABB () |
Compute AABB. More... | |
NODE_TYPE | coal::ConvexBase::getNodeType () const |
Get node type: a convex polytope. More... | |
unsigned char const & | coal::ConvexBase::Neighbors::count () const |
unsigned int & | coal::ConvexBase::Neighbors::operator[] (int i) |
unsigned int const & | coal::ConvexBase::Neighbors::operator[] (int i) const |
bool | coal::ConvexBase::Neighbors::operator== (const Neighbors &other) const |
bool | coal::ConvexBase::Neighbors::operator!= (const Neighbors &other) const |
coal::ConvexBase::ConvexBase () | |
Construct an uninitialized convex object Initialization is done with ConvexBase::initialize. More... | |
void | coal::ConvexBase::initialize (std::shared_ptr< std::vector< Vec3s >> points_, unsigned int num_points_) |
Initialize the points of the convex shape This also initializes the ConvexBase::center. More... | |
void | coal::ConvexBase::set (std::shared_ptr< std::vector< Vec3s >> points_, unsigned int num_points_) |
Set the points of the convex shape. More... | |
coal::ConvexBase::ConvexBase (const ConvexBase &other) | |
Copy constructor Only the list of neighbors is copied. More... | |
void | coal::ConvexBase::buildSupportWarmStart () |
Build the support points warm starts. More... | |
coal::Halfspace::Halfspace (const Vec3s &n_, CoalScalar d_) | |
Construct a half space with normal direction and offset. More... | |
coal::Halfspace::Halfspace (CoalScalar a, CoalScalar b, CoalScalar c, CoalScalar d_) | |
Construct a plane with normal direction and offset. More... | |
coal::Halfspace::Halfspace () | |
coal::Halfspace::Halfspace (const Halfspace &other) | |
Halfspace & | coal::Halfspace::operator= (const Halfspace &other) |
operator = More... | |
virtual Halfspace * | coal::Halfspace::clone () const |
Clone *this into a new Halfspace. More... | |
CoalScalar | coal::Halfspace::signedDistance (const Vec3s &p) const |
CoalScalar | coal::Halfspace::distance (const Vec3s &p) const |
void | coal::Halfspace::computeLocalAABB () |
Compute AABB. More... | |
NODE_TYPE | coal::Halfspace::getNodeType () const |
Get node type: a half space. More... | |
CoalScalar | coal::Halfspace::minInflationValue () const |
std::pair< Halfspace, Transform3s > | coal::Halfspace::inflated (const CoalScalar value) const |
Inflate the halfspace by an amount given by value . This value can be positive or negative but must always >= minInflationValue() . More... | |
void | coal::Halfspace::unitNormalTest () |
Turn non-unit normal into unit. More... | |
coal::Plane::Plane (const Vec3s &n_, CoalScalar d_) | |
Construct a plane with normal direction and offset. More... | |
coal::Plane::Plane (CoalScalar a, CoalScalar b, CoalScalar c, CoalScalar d_) | |
Construct a plane with normal direction and offset. More... | |
coal::Plane::Plane () | |
coal::Plane::Plane (const Plane &other) | |
Plane & | coal::Plane::operator= (const Plane &other) |
operator = More... | |
virtual Plane * | coal::Plane::clone () const |
Clone *this into a new Plane. More... | |
CoalScalar | coal::Plane::signedDistance (const Vec3s &p) const |
CoalScalar | coal::Plane::distance (const Vec3s &p) const |
void | coal::Plane::computeLocalAABB () |
Compute AABB. More... | |
NODE_TYPE | coal::Plane::getNodeType () const |
Get node type: a plane. More... | |
void | coal::Plane::unitNormalTest () |
Turn non-unit normal into unit. More... | |
Variables | |
CoalScalar | coal::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... | |
Vec3s | coal::TriangleP::a |
Vec3s | coal::TriangleP::b |
Vec3s | coal::TriangleP::c |
Vec3s | coal::Box::halfSide |
box side half-length More... | |
CoalScalar | coal::Sphere::radius |
Radius of the sphere. More... | |
Vec3s | coal::Ellipsoid::radii |
Radii of the Ellipsoid (such that on boundary: x^2/rx^2 + y^2/ry^2. More... | |
CoalScalar | coal::Capsule::radius |
Radius of capsule. More... | |
CoalScalar | coal::Capsule::halfLength |
Half Length along z axis. More... | |
CoalScalar | coal::Cone::radius |
Radius of the cone. More... | |
CoalScalar | coal::Cone::halfLength |
Half Length along z axis. More... | |
CoalScalar | coal::Cylinder::radius |
Radius of the cylinder. More... | |
CoalScalar | coal::Cylinder::halfLength |
Half Length along z axis. More... | |
unsigned char | coal::ConvexBase::Neighbors::count_ |
unsigned int * | coal::ConvexBase::Neighbors::n_ |
static constexpr size_t | coal::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< Vec3s > > | coal::ConvexBase::points |
An array of the points of the polygon. More... | |
unsigned int | coal::ConvexBase::num_points |
std::shared_ptr< std::vector< Vec3s > > | coal::ConvexBase::normals |
An array of the normals of the polygon. More... | |
std::shared_ptr< std::vector< double > > | coal::ConvexBase::offsets |
An array of the offsets to the normals of the polygon. Note: there are as many offsets as normals. More... | |
unsigned int | coal::ConvexBase::num_normals_and_offsets |
std::shared_ptr< std::vector< Neighbors > > | coal::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... | |
Vec3s | coal::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< Vec3s > | coal::ConvexBase::SupportWarmStartPolytope::points |
Array of support points to warm start the support function computation. More... | |
std::vector< int > | coal::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 | coal::ConvexBase::num_support_warm_starts = 14 |
Number of support warm starts. More... | |
SupportWarmStartPolytope | coal::ConvexBase::support_warm_starts |
Support warm start polytopes. More... | |
std::shared_ptr< std::vector< unsigned int > > | coal::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... | |
Vec3s | coal::Halfspace::n |
Plane normal. More... | |
CoalScalar | coal::Halfspace::d |
Plane offset. More... | |
Vec3s | coal::Plane::n |
Plane normal. More... | |
CoalScalar | coal::Plane::d |
Plane offset. More... | |
Classes of different types of geometric shapes.
|
inline |
Default constructor.
|
inline |
|
inline |
|
inline |
|
protected |
Build the support points warm starts.
|
inline |
Default constructor.
|
inline |
|
inline |
|
inlinevirtual |
Clone *this into a new TriangleP.
Implements coal::CollisionGeometry.
|
inlinevirtual |
Clone *this into a new Box.
Implements coal::CollisionGeometry.
|
inlinevirtual |
Clone *this into a new Sphere.
Implements coal::CollisionGeometry.
|
inlinevirtual |
Clone *this into a new Ellipsoid.
Implements coal::CollisionGeometry.
|
inlinevirtual |
Clone *this into a new Capsule.
Implements coal::CollisionGeometry.
|
inlinevirtual |
Clone *this into a new Cone.
Implements coal::CollisionGeometry.
|
inlinevirtual |
Clone *this into a new Cylinder.
Implements coal::CollisionGeometry.
|
inlinevirtual |
Clone (deep copy). This method is consistent with BVHModel clone
method. The copy constructor is called, which duplicates the data.
Implements coal::CollisionGeometry.
Reimplemented in coal::Convex< PolygonT >.
|
inlinevirtual |
Clone *this into a new Halfspace.
Implements coal::CollisionGeometry.
|
inlinevirtual |
Clone *this into a new Plane.
Implements coal::CollisionGeometry.
|
inlinevirtual |
compute center of mass
Reimplemented from coal::CollisionGeometry.
|
virtual |
virtual function of compute AABB in local coordinate
Implements coal::CollisionGeometry.
|
virtual |
Compute AABB.
Implements coal::CollisionGeometry.
|
virtual |
Compute AABB.
Implements coal::CollisionGeometry.
|
virtual |
Compute AABB.
Implements coal::CollisionGeometry.
|
virtual |
Compute AABB.
Implements coal::CollisionGeometry.
|
virtual |
Compute AABB.
Implements coal::CollisionGeometry.
|
virtual |
Compute AABB.
Implements coal::CollisionGeometry.
|
virtual |
Compute AABB.
Implements coal::CollisionGeometry.
|
virtual |
Compute AABB.
Implements coal::CollisionGeometry.
|
virtual |
Compute AABB.
Implements coal::CollisionGeometry.
|
inlinevirtual |
compute the inertia matrix, related to the origin
Reimplemented from coal::CollisionGeometry.
|
inlinevirtual |
compute the inertia matrix, related to the origin
Reimplemented from coal::CollisionGeometry.
|
inlinevirtual |
compute the inertia matrix, related to the origin
Reimplemented from coal::CollisionGeometry.
|
inlinevirtual |
compute the inertia matrix, related to the origin
Reimplemented from coal::CollisionGeometry.
|
inlinevirtual |
compute the inertia matrix, related to the origin
Reimplemented from coal::CollisionGeometry.
|
inlinevirtual |
compute the inertia matrix, related to the origin
Reimplemented from coal::CollisionGeometry.
|
inlinevirtual |
compute the volume
Reimplemented from coal::CollisionGeometry.
|
inlinevirtual |
compute the volume
Reimplemented from coal::CollisionGeometry.
|
inlinevirtual |
compute the volume
Reimplemented from coal::CollisionGeometry.
|
inlinevirtual |
compute the volume
Reimplemented from coal::CollisionGeometry.
|
inlinevirtual |
compute the volume
Reimplemented from coal::CollisionGeometry.
|
inlinevirtual |
compute the volume
Reimplemented from coal::CollisionGeometry.
|
inline |
Default constructor.
|
inline |
|
inline |
|
inlineprotected |
Construct an uninitialized convex object Initialization is done with ConvexBase::initialize.
|
protected |
Copy constructor Only the list of neighbors is copied.
|
static |
|
static |
Build a convex hull based on Qhull library and store the vertices and optionally the triangles.
points,num_points | the points whose convex hull should be computed. |
keepTriangles | if true , returns a Convex<Triangle> object which contains the triangle of the shape. |
qhullCommand | the command sent to qhull.
|
COAL_HAS_QHULL
set to ON
.
|
inline |
|
inline |
Default constructor.
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
Default constructor.
|
inline |
|
inline |
|
inlineexplicit |
|
inlinevirtual |
get the node type
Reimplemented from coal::CollisionGeometry.
|
inlinevirtual |
Get node type: a box.
Reimplemented from coal::CollisionGeometry.
|
inlinevirtual |
Get node type: a sphere.
Reimplemented from coal::CollisionGeometry.
|
inlinevirtual |
Get node type: an ellipsoid.
Reimplemented from coal::CollisionGeometry.
|
inlinevirtual |
Get node type: a capsule.
Reimplemented from coal::CollisionGeometry.
|
inlinevirtual |
Get node type: a cone.
Reimplemented from coal::CollisionGeometry.
|
inlinevirtual |
Get node type: a cylinder.
Reimplemented from coal::CollisionGeometry.
|
inlinevirtual |
Get node type: a convex polytope.
Reimplemented from coal::CollisionGeometry.
|
inlinevirtual |
Get node type: a half space.
Reimplemented from coal::CollisionGeometry.
|
inlinevirtual |
Get node type: a plane.
Reimplemented from coal::CollisionGeometry.
|
inlinevirtual |
Get object type: a geometric shape.
Reimplemented from coal::CollisionGeometry.
|
inline |
Get radius of sphere swept around the shape. This radius is always >= 0.
|
inline |
|
inline |
Construct a plane with normal direction and offset.
|
inline |
|
inline |
Construct a half space with normal direction and offset.
|
inline |
Inflate the box by an amount given by value
. This value can be positive or negative but must always >= minInflationValue()
.
[in] | value | of the shape inflation. |
|
inline |
Inflate the sphere by an amount given by value
. This value can be positive or negative but must always >= minInflationValue()
.
[in] | value | of the shape inflation. |
|
inline |
Inflate the ellipsoid by an amount given by value
. This value can be positive or negative but must always >= minInflationValue()
.
[in] | value | of the shape inflation. |
|
inline |
Inflate the capsule by an amount given by value
. This value can be positive or negative but must always >= minInflationValue()
.
[in] | value | of the shape inflation. |
|
inline |
Inflate the cone by an amount given by value
. This value can be positive or negative but must always >= minInflationValue()
.
[in] | value | of the shape inflation. |
|
inline |
Inflate the cylinder by an amount given by value
. This value can be positive or negative but must always >= minInflationValue()
.
[in] | value | of the shape inflation. |
|
inline |
Inflate the halfspace by an amount given by value
. This value can be positive or negative but must always >= minInflationValue()
.
[in] | value | of the shape inflation. |
|
protected |
Initialize the points of the convex shape This also initializes the ConvexBase::center.
ownStorage | weither the ConvexBase owns the data. |
points_ | list of 3D points /// |
num_points_ | number of 3D points |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
Construct a plane with normal direction and offset.
|
inline |
|
inline |
Construct a plane with normal direction and offset.
|
protected |
Set the points of the convex shape.
ownStorage | weither the ConvexBase owns the data. |
points_ | list of 3D points /// |
num_points_ | number of 3D points |
|
inline |
Set radius of sphere swept around the shape. Must be >= 0.
|
inline |
|
inline |
Copy constructor
|
inline |
|
inline |
|
inline |
Default constructor.
|
inlineexplicit |
|
inline |
|
inline |
|
inline |
|
protected |
Turn non-unit normal into unit.
|
protected |
Turn non-unit normal into unit.
|
virtual |
|
inlinevirtual |
Vec3s coal::TriangleP::a |
Vec3s coal::TriangleP::b |
Vec3s coal::TriangleP::c |
Vec3s coal::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)
unsigned char coal::ConvexBase::Neighbors::count_ |
CoalScalar coal::Halfspace::d |
Plane offset.
CoalScalar coal::Plane::d |
Plane offset.
CoalScalar coal::Capsule::halfLength |
Half Length along z axis.
CoalScalar coal::Cone::halfLength |
Half Length along z axis.
CoalScalar coal::Cylinder::halfLength |
Half Length along z axis.
Vec3s coal::Box::halfSide |
box side half-length
std::vector<int> coal::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.
|
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.
unsigned int* coal::ConvexBase::Neighbors::n_ |
std::shared_ptr<std::vector<Neighbors> > coal::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.
|
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.
std::shared_ptr<std::vector<Vec3s> > coal::ConvexBase::normals |
An array of the normals of the polygon.
unsigned int coal::ConvexBase::num_normals_and_offsets |
unsigned int coal::ConvexBase::num_points |
|
staticconstexpr |
Number of support warm starts.
|
staticconstexpr |
Above this threshold, the convex polytope is considered large. This influcences the way the support function is computed.
std::shared_ptr<std::vector<double> > coal::ConvexBase::offsets |
An array of the offsets to the normals of the polygon. Note: there are as many offsets as normals.
std::shared_ptr<std::vector<Vec3s> > coal::ConvexBase::points |
An array of the points of the polygon.
std::vector<Vec3s> coal::ConvexBase::SupportWarmStartPolytope::points |
Array of support points to warm start the support function computation.
Vec3s coal::Ellipsoid::radii |
Radii of the Ellipsoid (such that on boundary: x^2/rx^2 + y^2/ry^2.
CoalScalar coal::Sphere::radius |
Radius of the sphere.
CoalScalar coal::Capsule::radius |
Radius of capsule.
CoalScalar coal::Cone::radius |
Radius of the cone.
CoalScalar coal::Cylinder::radius |
Radius of the cylinder.
SupportWarmStartPolytope coal::ConvexBase::support_warm_starts |
Support warm start polytopes.