pinocchio  2.7.0
A fast and flexible implementation of Rigid Body Dynamics algorithms and their analytical derivatives
GeometryModel Struct Reference

Public Types

enum  { Options = 0 }
 
typedef std::vector< CollisionPairCollisionPairVector
 
typedef ::pinocchio::GeometryObject GeometryObject
 
typedef pinocchio::GeomIndex GeomIndex
 
typedef Eigen::Matrix< bool, Eigen::Dynamic, Eigen::Dynamic, Options > MatrixXb
 
typedef double Scalar
 
typedef SE3Tpl< Scalar, Options > SE3
 

Public Member Functions

void addAllCollisionPairs ()
 Add all possible collision pairs. More...
 
void addCollisionPair (const CollisionPair &pair)
 Add a collision pair into the vector of collision_pairs. The method check before if the given CollisionPair is already included. More...
 
GeomIndex addGeometryObject (const GeometryObject &object)
 Add a geometry object to a GeometryModel. More...
 
template<typename S2 , int O2, template< typename, int > class _JointCollectionTpl>
GeomIndex addGeometryObject (const GeometryObject &object, const ModelTpl< S2, O2, _JointCollectionTpl > &model)
 Add a geometry object to a GeometryModel and set its parent joint. More...
 
bool existCollisionPair (const CollisionPair &pair) const
 Check if a collision pair exists in collisionPairs. See also findCollisitionPair(const CollisionPair & pair). More...
 
bool existGeometryName (const std::string &name) const
 Check if a GeometryObject given by its name exists. More...
 
PairIndex findCollisionPair (const CollisionPair &pair) const
 Return the index of a given collision pair in collisionPairs. More...
 
GeomIndex getGeometryId (const std::string &name) const
 Return the index of a GeometryObject given by its name. More...
 
bool operator!= (const GeometryModel &other) const
 Returns true if *this and other are not equal.
 
bool operator== (const GeometryModel &other) const
 Returns true if *this and other are equal.
 
typedef PINOCCHIO_ALIGNED_STD_VECTOR (GeometryObject) GeometryObjectVector
 
void removeAllCollisionPairs ()
 Remove all collision pairs from collisionPairs. Same as collisionPairs.clear().
 
void removeCollisionPair (const CollisionPair &pair)
 Remove if exists the CollisionPair from the vector collision_pairs. More...
 
void removeGeometryObject (const std::string &name)
 Remove a GeometryObject. More...
 
void setCollisionPairs (const MatrixXb &collision_map, const bool upper=true)
 Set the collision pairs from a given input array. Each entry of the input matrix defines the activation of a given collision pair (map[i,j] == true means that the pair (i,j) is active). More...
 

Public Attributes

CollisionPairVector collisionPairs
 Vector of collision pairs.
 
GeometryObjectVector geometryObjects
 Vector of GeometryObjects used for collision computations.
 
Index ngeoms
 The number of GeometryObjects.
 

Friends

std::ostream & operator<< (std::ostream &os, const GeometryModel &model_geom)
 

Detailed Description

Definition at line 22 of file geometry.hpp.

Member Function Documentation

◆ addAllCollisionPairs()

void addAllCollisionPairs ( )

Add all possible collision pairs.

Note
Collision pairs between geometries having the same parent joint are not added.

◆ addCollisionPair()

void addCollisionPair ( const CollisionPair pair)

Add a collision pair into the vector of collision_pairs. The method check before if the given CollisionPair is already included.

Parameters
[in]pairThe CollisionPair to add.

◆ addGeometryObject() [1/2]

GeomIndex addGeometryObject ( const GeometryObject object)

Add a geometry object to a GeometryModel.

Parameters
[in]objectObject
Returns
The index of the new added GeometryObject in geometryObjects.

◆ addGeometryObject() [2/2]

GeomIndex addGeometryObject ( const GeometryObject object,
const ModelTpl< S2, O2, _JointCollectionTpl > &  model 
)

Add a geometry object to a GeometryModel and set its parent joint.

Parameters
[in]objectObject
[in]modelCorresponding model, used to assert the attributes of object.
Returns
The index of the new added GeometryObject in geometryObjects
Note
object is a nonconst copy to ease the insertion code.

◆ existCollisionPair()

bool existCollisionPair ( const CollisionPair pair) const

Check if a collision pair exists in collisionPairs. See also findCollisitionPair(const CollisionPair & pair).

Parameters
[in]pairThe CollisionPair.
Returns
True if the CollisionPair exists, false otherwise.

◆ existGeometryName()

bool existGeometryName ( const std::string &  name) const

Check if a GeometryObject given by its name exists.

Parameters
[in]nameName of the GeometryObject
Returns
True if the GeometryObject exists in the geometryObjects.

◆ findCollisionPair()

PairIndex findCollisionPair ( const CollisionPair pair) const

Return the index of a given collision pair in collisionPairs.

Parameters
[in]pairThe CollisionPair.
Returns
The index of the CollisionPair in collisionPairs.

◆ getGeometryId()

GeomIndex getGeometryId ( const std::string &  name) const

Return the index of a GeometryObject given by its name.

Parameters
[in]nameName of the GeometryObject
Returns
Index of the corresponding GeometryObject

◆ removeCollisionPair()

void removeCollisionPair ( const CollisionPair pair)

Remove if exists the CollisionPair from the vector collision_pairs.

Parameters
[in]pairThe CollisionPair to remove.

◆ removeGeometryObject()

void removeGeometryObject ( const std::string &  name)

Remove a GeometryObject.

Parameters
[in]nameName of the GeometryObject

@node Remove also the collision pairs that contain the object.

◆ setCollisionPairs()

void setCollisionPairs ( const MatrixXb &  collision_map,
const bool  upper = true 
)

Set the collision pairs from a given input array. Each entry of the input matrix defines the activation of a given collision pair (map[i,j] == true means that the pair (i,j) is active).

Parameters
[in]collision_mapAssociative array.
[in]upperWheter the collision_map is an upper or lower triangular filled array.

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