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

Public Types

enum  { Options = 0 }
 
typedef std::vector< GeomIndex > GeomIndexList
 
typedef double Scalar
 
typedef SE3Tpl< Scalar, Options > SE3
 

Public Member Functions

 GeometryData (const GeometryModel &geomModel)
 
 GeometryData (const GeometryData &other)
 
void activateCollisionPair (const PairIndex pairId)
 
void deactivateCollisionPair (const PairIndex pairId)
 
void fillInnerOuterObjectMaps (const GeometryModel &geomModel)
 
 PINOCCHIO_ALIGNED_STD_VECTOR (SE3) oMg
 Vector gathering the SE3 placements of the geometry objects relative to the world. See updateGeometryPlacements to update the placements. More...
 

Public Attributes

std::vector< bool > activeCollisionPairs
 Vector of collision pairs.
 
PairIndex collisionPairIndex
 Index of the collision pair. More...
 
std::vector< fcl::CollisionRequest > collisionRequests
 Defines what information should be computed by collision test. There is one request per pair of geometries.
 
std::vector< fcl::CollisionResult > collisionResults
 Vector gathering the result of the collision computation for all the collision pairs.
 
std::vector< fcl::DistanceRequest > distanceRequests
 Defines what information should be computed by distance computation. There is one request per pair of geometries.
 
std::vector< fcl::DistanceResult > distanceResults
 Vector gathering the result of the distance computation for all the collision pairs.
 
std::map< JointIndex, GeomIndexList > innerObjects
 Map over vector GeomModel::geometryObjects, indexed by joints. More...
 
std::map< JointIndex, GeomIndexList > outerObjects
 A list of associated collision GeometryObjects to a given joint Id. More...
 
std::vector< fcl::CollisionObject > collisionObjects PINOCCHIO_DEPRECATED
 Collision objects (ie a fcl placed geometry). More...
 
fcl::DistanceRequest distanceRequest PINOCCHIO_DEPRECATED
 Defines what information should be computed by distance computation. More...
 
fcl::CollisionRequest collisionRequest PINOCCHIO_DEPRECATED
 Defines what information should be computed by collision test. More...
 
std::vector< double > radius
 Radius of the bodies, i.e. distance of the further point of the geometry model attached to the body from the joint center.
 

Friends

std::ostream & operator<< (std::ostream &os, const GeometryData &geomData)
 

Detailed Description

Definition at line 167 of file geometry.hpp.

Member Function Documentation

◆ activateCollisionPair()

void activateCollisionPair ( const PairIndex  pairId)

Activate a collision pair, for which collisions and distances would now be computed.

A collision (resp distance) between to geometries of GeomModel::geometryObjects is computed iff the corresponding pair has been added in GeomModel::collisionPairs AND it is active, i.e. the corresponding boolean in GeomData::activePairs is true. The second condition can be used to temporarily remove a pair without touching the model, in a versatile manner.

Parameters
[in]pairIdthe index of the pair in GeomModel::collisionPairs vector.

 

See also
GeomData

◆ deactivateCollisionPair()

void deactivateCollisionPair ( const PairIndex  pairId)

Deactivate a collision pair.

Calls indeed GeomData::activateCollisionPair(pairId)

Parameters
[in]pairIdthe index of the pair in GeomModel::collisionPairs vector.
See also
GeomData::activateCollisionPair

◆ fillInnerOuterObjectMaps()

void fillInnerOuterObjectMaps ( const GeometryModel geomModel)

Fill both innerObjects and outerObjects maps, from vectors collisionObjects and collisionPairs.

This simply corresponds to storing in a re-arranged manner the information stored in geomModel.geometryObjects and geomModel.collisionPairs.

Parameters
[in]geomModelthe geometry model (const)
Warning
Outer objects are not duplicated (i.e. if a is in outerObjects[b], then b is not in outerObjects[a]).

◆ PINOCCHIO_ALIGNED_STD_VECTOR()

PINOCCHIO_ALIGNED_STD_VECTOR ( SE3  )

Vector gathering the SE3 placements of the geometry objects relative to the world. See updateGeometryPlacements to update the placements.

oMg is used for pinocchio (kinematics) computation but is translated to fcl type for fcl (collision) computation. The copy is done in collisionObjects[i]->setTransform(.)

Member Data Documentation

◆ collisionPairIndex

PairIndex collisionPairIndex

Index of the collision pair.

It is used by some method to return additional information. For instance, the algo computeCollisions() sets it to the first colliding pair.

Definition at line 244 of file geometry.hpp.

◆ innerObjects

std::map<JointIndex,GeomIndexList> innerObjects

Map over vector GeomModel::geometryObjects, indexed by joints.

The map lists the collision GeometryObjects associated to a given joint Id. Inner objects can be seen as geometry objects that directly move when the associated joint moves

Definition at line 251 of file geometry.hpp.

◆ outerObjects

std::map<JointIndex,GeomIndexList> outerObjects

A list of associated collision GeometryObjects to a given joint Id.

Outer objects can be seen as geometry objects that may often be obstacles to the Inner objects of given joint

Definition at line 257 of file geometry.hpp.

◆ PINOCCHIO_DEPRECATED [1/3]

std::vector<fcl::CollisionObject> collisionObjects PINOCCHIO_DEPRECATED

Collision objects (ie a fcl placed geometry).

The object contains a pointer on the collision geometries contained in geomModel.geometryObjects.

See also
GeometryModel::geometryObjects and GeometryObjects

Definition at line 198 of file geometry.hpp.

◆ PINOCCHIO_DEPRECATED [2/3]

fcl::DistanceRequest distanceRequest PINOCCHIO_DEPRECATED

Defines what information should be computed by distance computation.

Deprecated:
use distanceRequests instead

Definition at line 204 of file geometry.hpp.

◆ PINOCCHIO_DEPRECATED [3/3]

fcl::CollisionRequest collisionRequest PINOCCHIO_DEPRECATED

Defines what information should be computed by collision test.

Deprecated:
use collisionRequests instead

Definition at line 220 of file geometry.hpp.


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