| 
|   | ConvexBaseTpl (const ConvexBaseTpl &other) | 
|   | Copy constructor. The copy constructor only shallow copies the data (it copies the shared pointers but does not deep clones the data).  
  | 
|   | 
| virtual  | ~ConvexBaseTpl () | 
|   | 
| Base &  | base () | 
|   | Cast ConvexBaseTpl to ShapeBase. This method should never be marked as virtual.  
  | 
|   | 
| const Base &  | base () const | 
|   | Const cast ConvexBaseTpl to ShapeBase. This method should never be marked as virtual.  
  | 
|   | 
| ConvexBaseTpl &  | operator= (const ConvexBaseTpl &other) | 
|   | Copy assignment operator. The copy assignment operator shallow copies the data, just as the copy constructor.  
  | 
|   | 
| virtual ConvexBaseTpl *  | clone () const | 
|   | Clone (deep copy).  
  | 
|   | 
| virtual ConvexBaseTpl *  | deepcopy () const | 
|   | Deep copy of the ConvexBaseTpl. This method deep copies every field of the class.  
  | 
|   | 
| ConvexBaseTpl< OtherIndexType >  | cast () const | 
|   | Cast this ConvexBase vertex indices to OtherIndexType. This effectively deep copies this ConvexBaseTpl into a new one.  
  | 
|   | 
| void  | computeLocalAABB () | 
|   | Compute AABB.  
  | 
|   | 
| NODE_TYPE  | getNodeType () const | 
|   | Get node type: a convex polytope.  
  | 
|   | 
| NODE_TYPE  | getNodeType () const | 
|   | get the node type  
  | 
|   | 
| NODE_TYPE  | getNodeType () const | 
|   | get the node type  
  | 
|   | 
| IndexType  | neighbor (IndexType i, IndexType j) const | 
|   | Get the index of the j-th neighbor of the i-th vertex.  
  | 
|   | 
|   | ShapeBase () | 
|   | 
|   | ShapeBase (const ShapeBase &other) | 
|   |    
  | 
|   | 
| ShapeBase &  | operator= (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.  
  | 
|   | 
|   | 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  | computeMomentofInertia () const | 
|   | compute the inertia matrix, related to the origin  
  | 
|   | 
| virtual Scalar  | computeVolume () const | 
|   | compute the volume  
  | 
|   | 
| virtual Matrix3s  | computeMomentofInertiaRelatedToCOM () const | 
|   | compute the inertia matrix, related to the com  
  | 
|   | 
| static ConvexBaseTpl *  | 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.  
  | 
|   | 
| static ConvexBaseTpl *  | convexHull (const Vec3s *points, unsigned int num_points, bool keepTriangles, const char *qhullCommand=NULL) | 
|   | 
| std::shared_ptr< std::vector< Vec3s > >  | points | 
|   | An array of the points of the polygon.  
  | 
|   | 
| unsigned int  | num_points | 
|   | 
| std::shared_ptr< std::vector< Vec3s > >  | normals | 
|   | An array of the normals of the polygon.  
  | 
|   | 
| std::shared_ptr< std::vector< Scalar > >  | offsets | 
|   | An array of the offsets to the normals of the polygon. Note: there are as many offsets as normals.  
  | 
|   | 
| unsigned int  | num_normals_and_offsets | 
|   | 
| 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.  
  | 
|   | 
| 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)  
  | 
|   | 
| SupportWarmStartPolytope  | support_warm_starts | 
|   | Support warm start polytopes.  
  | 
|   | 
| 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)  
  | 
|   | 
| static constexpr size_t  | num_vertices_large_convex_threshold | 
|   | Above this threshold, the convex polytope is considered large. This influcences the way the support function is computed.  
  | 
|   | 
| static constexpr size_t  | num_support_warm_starts | 
|   | Number of support warm starts.  
  | 
|   | 
|   | ConvexBaseTpl () | 
|   | Construct an uninitialized convex object Initialization is done with ConvexBase::initialize.  
  | 
|   | 
| 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.  
  | 
|   | 
| void  | set (std::shared_ptr< std::vector< Vec3s > > points_, unsigned int num_points_) | 
|   | Set the points of the convex shape.  
  | 
|   | 
| void  | buildSupportWarmStart () | 
|   | Build the support points warm starts.  
  | 
|   | 
| void  | computeCenter () | 
|   | 
| virtual bool  | isEqual (const CollisionGeometry &_other) const | 
|   | equal operator with another object of derived type.  
  | 
|   | 
| static void  | deepcopy (const ConvexBaseTpl< IndexType > *source, ConvexBaseTpl< OtherIndexType > *copy) | 
|   | Deep copy of a ConvexBaseTpl. This method deep copies every field of the class.  
  | 
|   | 
| std::shared_ptr< std::vector< IndexType > >  | 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.  
  | 
|   | 
| 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.  
  | 
|   |