hpp-core  4.13.0
Implement basic classes for canonical path planning for kinematic chains.
hpp::core::ObstacleUserVector< Derived > Class Template Reference

#include <hpp/core/obstacle-user.hh>

Inheritance diagram for hpp::core::ObstacleUserVector< Derived >:
Collaboration diagram for hpp::core::ObstacleUserVector< Derived >:

Public Member Functions

virtual ~ObstacleUserVector ()=default
 
void addObstacle (const CollisionObjectConstPtr_t &object)
 
void removeObstacleFromJoint (const JointPtr_t &joint, const CollisionObjectConstPtr_t &object)
 
void filterCollisionPairs (const RelativeMotion::matrix_type &relMotion)
 
void setSecurityMargins (const matrix_t &securityMatrix)
 
void setSecurityMarginBetweenBodies (const std::string &body_a, const std::string &body_b, const value_type &margin)
 
void clear ()
 
- Public Member Functions inherited from hpp::core::ObstacleUserInterface
virtual ~ObstacleUserInterface ()=default
 

Protected Types

typedef Derived value_t
 
typedef std::vector< value_tvalues_t
 

Protected Member Functions

 ObstacleUserVector ()=default
 
 ObstacleUserVector (std::initializer_list< value_t > validations)
 

Protected Attributes

values_t validations_
 

Detailed Description

template<typename Derived>
class hpp::core::ObstacleUserVector< Derived >

Vector of validation class instances.

Template Parameters
Derivedmust be a shared point to some validation class. For instance ConfigValidationPtr_t or PathValidationPtr_t .

This class implements the abstract interface defined by ObstacleUserInterface and stores a vector of path or config validation class instances. Methods addObstacle , removeObstacleFromJoint, and filterCollisionPairs iteratively dynamic cast each instance into Obstacle user interface and calls the derived implementation in case of success.

Member Typedef Documentation

◆ value_t

template<typename Derived>
typedef Derived hpp::core::ObstacleUserVector< Derived >::value_t
protected

◆ values_t

template<typename Derived>
typedef std::vector<value_t> hpp::core::ObstacleUserVector< Derived >::values_t
protected

Constructor & Destructor Documentation

◆ ~ObstacleUserVector()

template<typename Derived>
virtual hpp::core::ObstacleUserVector< Derived >::~ObstacleUserVector ( )
virtualdefault

◆ ObstacleUserVector() [1/2]

template<typename Derived>
hpp::core::ObstacleUserVector< Derived >::ObstacleUserVector ( )
protecteddefault

◆ ObstacleUserVector() [2/2]

template<typename Derived>
hpp::core::ObstacleUserVector< Derived >::ObstacleUserVector ( std::initializer_list< value_t validations)
inlineprotected

Member Function Documentation

◆ addObstacle()

template<typename Derived>
void hpp::core::ObstacleUserVector< Derived >::addObstacle ( const CollisionObjectConstPtr_t object)
inlinevirtual

Add obstacle to each element

Dynamic cast into ObstacleUserInterface each element of validations_ and call method addObstacle of element.

Implements hpp::core::ObstacleUserInterface.

◆ clear()

template<typename Derived>
void hpp::core::ObstacleUserVector< Derived >::clear ( )
inline

◆ filterCollisionPairs()

template<typename Derived>
void hpp::core::ObstacleUserVector< Derived >::filterCollisionPairs ( const RelativeMotion::matrix_type relMotion)
inlinevirtual

Filter collision pairs to each element

Dynamic cast into ObstacleUserInterface each element of validations_ and call method filterCollisionPairs of element.

Implements hpp::core::ObstacleUserInterface.

◆ removeObstacleFromJoint()

template<typename Derived>
void hpp::core::ObstacleUserVector< Derived >::removeObstacleFromJoint ( const JointPtr_t joint,
const CollisionObjectConstPtr_t object 
)
inlinevirtual

Remove obstacle from joint to each element

Dynamic cast into ObstacleUserInterface each element of validations_ and call method removeObstacleFromJoint of element.

Implements hpp::core::ObstacleUserInterface.

◆ setSecurityMarginBetweenBodies()

template<typename Derived>
void hpp::core::ObstacleUserVector< Derived >::setSecurityMarginBetweenBodies ( const std::string &  body_a,
const std::string &  body_b,
const value_type margin 
)
inlinevirtual

Set security margin for collision pair between the two bodies.

See also
hpp::fcl::CollisionRequest::security_margin.

Implements hpp::core::ObstacleUserInterface.

◆ setSecurityMargins()

template<typename Derived>
void hpp::core::ObstacleUserVector< Derived >::setSecurityMargins ( const matrix_t securityMatrix)
inlinevirtual

Set different security margins for collision pairs

This function works joint-wise. If you need a finer control, use setSecurityMarginBetweenBodies

This method enables users to choose different security margins for each pair of robot joint or each pair robot joint - obstacle.

See also
hpp::fcl::CollisionRequest::security_margin.

Implements hpp::core::ObstacleUserInterface.

Member Data Documentation

◆ validations_

template<typename Derived>
values_t hpp::core::ObstacleUserVector< Derived >::validations_
protected

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