Public Member Functions | Private Member Functions | Private Attributes | Friends | List of all members
tesseract_common::CollisionMarginPairData Class Reference

#include <collision_margin_data.h>

Public Member Functions

void apply (const CollisionMarginPairData &pair_margin_data, CollisionMarginPairOverrideType override_type)
 Apply the contents of the provide CollisionMarginPairData based on the override type. More...
 
void clear ()
 Clear/Reset the data structure. More...
 
EIGEN_MAKE_ALIGNED_OPERATOR_NEW CollisionMarginPairData ()=default
 
 CollisionMarginPairData (const PairsCollisionMarginData &pair_margins)
 
bool empty () const
 Check if empty. More...
 
std::optional< double > getCollisionMargin (const std::string &obj1, const std::string &obj2) const
 Get the pairs collision margin data. More...
 
const PairsCollisionMarginDatagetCollisionMargins () const
 Get Collision Margin Data for stored pairs. More...
 
double getMaxCollisionMargin () const
 Get the largest pair collision margin. More...
 
void incrementMargins (double increment)
 Increment all margins by input amount. Useful for inflating or reducing margins. More...
 
bool operator!= (const CollisionMarginPairData &rhs) const
 
bool operator== (const CollisionMarginPairData &rhs) const
 
void scaleMargins (double scale)
 Scale all margins by input value. More...
 
void setCollisionMargin (const std::string &obj1, const std::string &obj2, double margin)
 Set the margin for a given contact pair. More...
 

Private Member Functions

template<class Archive >
void serialize (Archive &ar, const unsigned int version)
 
void updateCollisionMarginMax ()
 Recalculate the max margin. More...
 

Private Attributes

PairsCollisionMarginData lookup_table_
 A map of link pair names to contact distance. More...
 
double max_collision_margin_ { std::numeric_limits<double>::lowest() }
 Stores the largest collision margin. More...
 

Friends

class boost::serialization::access
 
struct tesseract_common::Serialization
 

Detailed Description

Definition at line 68 of file collision_margin_data.h.

Constructor & Destructor Documentation

◆ CollisionMarginPairData() [1/2]

EIGEN_MAKE_ALIGNED_OPERATOR_NEW tesseract_common::CollisionMarginPairData::CollisionMarginPairData ( )
default

◆ CollisionMarginPairData() [2/2]

tesseract_common::CollisionMarginPairData::CollisionMarginPairData ( const PairsCollisionMarginData pair_margins)

Definition at line 42 of file collision_margin_data.cpp.

Member Function Documentation

◆ apply()

void tesseract_common::CollisionMarginPairData::apply ( const CollisionMarginPairData pair_margin_data,
CollisionMarginPairOverrideType  override_type 
)

Apply the contents of the provide CollisionMarginPairData based on the override type.

Parameters
pair_margin_dataThe collision margin pair data to apply
override_typeThe type indicating how the provided data should be applied.

Definition at line 107 of file collision_margin_data.cpp.

◆ clear()

void tesseract_common::CollisionMarginPairData::clear ( )

Clear/Reset the data structure.

Definition at line 94 of file collision_margin_data.cpp.

◆ empty()

bool tesseract_common::CollisionMarginPairData::empty ( ) const

Check if empty.

Returns
True if empty otherwise false

Definition at line 92 of file collision_margin_data.cpp.

◆ getCollisionMargin()

std::optional< double > tesseract_common::CollisionMarginPairData::getCollisionMargin ( const std::string &  obj1,
const std::string &  obj2 
) const

Get the pairs collision margin data.

If a collision margin for the request pair does not exist it returns the default collision margin data.

Parameters
obj1The first object name
obj2The second object name
Returns
A link pair contact margin if exists

Definition at line 55 of file collision_margin_data.cpp.

◆ getCollisionMargins()

const PairsCollisionMarginData & tesseract_common::CollisionMarginPairData::getCollisionMargins ( ) const

Get Collision Margin Data for stored pairs.

Returns
A map of link pairs collision margin data

Definition at line 70 of file collision_margin_data.cpp.

◆ getMaxCollisionMargin()

double tesseract_common::CollisionMarginPairData::getMaxCollisionMargin ( ) const

Get the largest pair collision margin.

Returns
Max pair contact distance threshold

Definition at line 68 of file collision_margin_data.cpp.

◆ incrementMargins()

void tesseract_common::CollisionMarginPairData::incrementMargins ( double  increment)

Increment all margins by input amount. Useful for inflating or reducing margins.

Parameters
incrementAmount to increment margins

Definition at line 72 of file collision_margin_data.cpp.

◆ operator!=()

bool tesseract_common::CollisionMarginPairData::operator!= ( const CollisionMarginPairData rhs) const

Definition at line 154 of file collision_margin_data.cpp.

◆ operator==()

bool tesseract_common::CollisionMarginPairData::operator== ( const CollisionMarginPairData rhs) const

Definition at line 132 of file collision_margin_data.cpp.

◆ scaleMargins()

void tesseract_common::CollisionMarginPairData::scaleMargins ( double  scale)

Scale all margins by input value.

Parameters
scaleValue by which all margins are multiplied

Definition at line 82 of file collision_margin_data.cpp.

◆ serialize()

template<class Archive >
void tesseract_common::CollisionMarginPairData::serialize ( Archive &  ar,
const unsigned int  version 
)
private

Definition at line 157 of file collision_margin_data.cpp.

◆ setCollisionMargin()

void tesseract_common::CollisionMarginPairData::setCollisionMargin ( const std::string &  obj1,
const std::string &  obj2,
double  margin 
)

Set the margin for a given contact pair.

  • The order of the object names does not matter, that is handled internal to the class.
  • Parameters
    obj1The first object name. Order doesn't matter
    obj2The Second object name. Order doesn't matter
    margincontacts with distance < collision_margin are considered in collision

Definition at line 48 of file collision_margin_data.cpp.

◆ updateCollisionMarginMax()

void tesseract_common::CollisionMarginPairData::updateCollisionMarginMax ( )
private

Recalculate the max margin.

Definition at line 100 of file collision_margin_data.cpp.

Friends And Related Function Documentation

◆ boost::serialization::access

friend class boost::serialization::access
friend

Definition at line 152 of file collision_margin_data.h.

◆ tesseract_common::Serialization

friend struct tesseract_common::Serialization
friend

Definition at line 153 of file collision_margin_data.h.

Member Data Documentation

◆ lookup_table_

PairsCollisionMarginData tesseract_common::CollisionMarginPairData::lookup_table_
private

A map of link pair names to contact distance.

Definition at line 144 of file collision_margin_data.h.

◆ max_collision_margin_

double tesseract_common::CollisionMarginPairData::max_collision_margin_ { std::numeric_limits<double>::lowest() }
private

Stores the largest collision margin.

Definition at line 147 of file collision_margin_data.h.


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


tesseract_common
Author(s): Levi Armstrong
autogenerated on Sun May 18 2025 03:01:40