Classes | Public Member Functions | Static Public Member Functions | Public Attributes | Static Public Attributes | Protected Member Functions | Protected Attributes | Private Member Functions | List of all members
coal::ConvexBase Class Reference

Base for convex polytope. More...

#include <geometric_shapes.h>

Inheritance diagram for coal::ConvexBase:
Inheritance graph
[legend]

Classes

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

Public Member Functions

virtual ConvexBaseclone () const
 Clone (deep copy). This method is consistent with BVHModel clone method. The copy constructor is called, which duplicates the data. More...
 
void computeLocalAABB ()
 Compute AABB. More...
 
NODE_TYPE getNodeType () const
 Get node type: a convex polytope. More...
 
virtual ~ConvexBase ()
 
- Public Member Functions inherited from coal::ShapeBase
OBJECT_TYPE getObjectType () const
 Get object type: a geometric shape. More...
 
CoalScalar getSweptSphereRadius () const
 Get radius of sphere swept around the shape. This radius is always >= 0. More...
 
ShapeBaseoperator= (const ShapeBase &other)=default
 
void setSweptSphereRadius (CoalScalar radius)
 Set radius of sphere swept around the shape. Must be >= 0. More...
 
 ShapeBase ()
 
 ShapeBase (const ShapeBase &other)
   More...
 
virtual ~ShapeBase ()
 
- Public Member Functions inherited from coal::CollisionGeometry
 CollisionGeometry ()
 
 CollisionGeometry (const CollisionGeometry &other)=default
 Copy constructor. More...
 
virtual Vec3s computeCOM () const
 compute center of mass More...
 
virtual Matrix3s computeMomentofInertia () const
 compute the inertia matrix, related to the origin More...
 
virtual Matrix3s computeMomentofInertiaRelatedToCOM () const
 compute the inertia matrix, related to the com More...
 
virtual CoalScalar computeVolume () const
 compute the volume More...
 
void * getUserData () const
 get user data in geometry More...
 
bool isFree () const
 whether the object is completely free More...
 
bool isOccupied () const
 whether the object is completely occupied More...
 
bool isUncertain () const
 whether the object has some uncertainty More...
 
bool operator!= (const CollisionGeometry &other) const
 Difference operator. More...
 
bool operator== (const CollisionGeometry &other) const
 Equality operator. More...
 
void setUserData (void *data)
 set user data in geometry More...
 
virtual ~CollisionGeometry ()
 

Static Public Member Functions

static COAL_DEPRECATED ConvexBaseconvexHull (const Vec3s *points, unsigned int num_points, bool keepTriangles, const char *qhullCommand=NULL)
 
static ConvexBaseconvexHull (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...
 

Public Attributes

Vec3s 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::shared_ptr< std::vector< Neighbors > > 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...
 
std::shared_ptr< std::vector< Vec3s > > normals
 An array of the normals of the polygon. More...
 
unsigned int num_normals_and_offsets
 
unsigned int num_points
 
std::shared_ptr< std::vector< double > > offsets
 An array of the offsets to the normals of the polygon. Note: there are as many offsets as normals. More...
 
std::shared_ptr< std::vector< Vec3s > > points
 An array of the points of the polygon. More...
 
SupportWarmStartPolytope support_warm_starts
 Support warm start polytopes. More...
 
- Public Attributes inherited from coal::CollisionGeometry
Vec3s aabb_center
 AABB center in local coordinate. More...
 
AABB aabb_local
 AABB in local coordinate, used for tight AABB when only translation transform. More...
 
CoalScalar aabb_radius
 AABB radius. More...
 
CoalScalar cost_density
 collision cost for unit volume More...
 
CoalScalar threshold_free
 threshold for free (<= is free) More...
 
CoalScalar threshold_occupied
 threshold for occupied ( >= is occupied) More...
 
void * user_data
 pointer to user defined data specific to this object More...
 

Static Public Attributes

static constexpr size_t num_support_warm_starts = 14
 Number of support warm starts. More...
 
static constexpr size_t 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...
 

Protected Member Functions

void buildSupportWarmStart ()
 Build the support points warm starts. More...
 
 ConvexBase ()
 Construct an uninitialized convex object Initialization is done with ConvexBase::initialize. More...
 
 ConvexBase (const ConvexBase &other)
 Copy constructor Only the list of neighbors is copied. More...
 
void 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 set (std::shared_ptr< std::vector< Vec3s >> points_, unsigned int num_points_)
 Set the points of the convex shape. More...
 

Protected Attributes

std::shared_ptr< std::vector< unsigned int > > 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...
 
- Protected Attributes inherited from coal::ShapeBase
CoalScalar 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...
 

Private Member Functions

void computeCenter ()
 
virtual bool isEqual (const CollisionGeometry &_other) const
 equal operator with another object of derived type. More...
 

Detailed Description

Base for convex polytope.

Note
Inherited classes are responsible for filling ConvexBase::neighbors;

Definition at line 645 of file coal/shape/geometric_shapes.h.


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


hpp-fcl
Author(s):
autogenerated on Sat Nov 23 2024 03:45:00