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

Stores information about how the margins allowed between collision objects. More...

#include <collision_margin_data.h>

Public Types

using ConstPtr = std::shared_ptr< const CollisionMarginData >
 
using Ptr = std::shared_ptr< CollisionMarginData >
 

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...
 
 CollisionMarginData (CollisionMarginPairData pair_collision_margins)
 
 CollisionMarginData (double default_collision_margin, CollisionMarginPairData pair_collision_margins)
 
 CollisionMarginData (double default_collision_margin=0)
 
double getCollisionMargin (const std::string &obj1, const std::string &obj2) const
 Get the pairs collision margin data. More...
 
const CollisionMarginPairDatagetCollisionMarginPairData () const
 Get Collision Margin Data for stored pairs. More...
 
double getDefaultCollisionMargin () const
 Get the default collision margin. More...
 
double getMaxCollisionMargin () const
 Get the largest collision margin. More...
 
void incrementMargins (double increment)
 Increment all margins by input amount. Useful for inflating or reducing margins. More...
 
bool operator!= (const CollisionMarginData &rhs) const
 
bool operator== (const CollisionMarginData &rhs) const
 
void scaleMargins (double scale)
 Scale all margins by input value. More...
 
void setCollisionMargin (const std::string &obj1, const std::string &obj2, double collision_margin)
 Set the margin for a given contact pair. More...
 
void setDefaultCollisionMargin (double default_collision_margin)
 Set the default collision margin. More...
 

Private Member Functions

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

Private Attributes

double default_collision_margin_ { 0 }
 Stores the collision margin used if no pair-specific one is set. More...
 
CollisionMarginPairData pair_margins_
 A map of link pair names to contact distance. More...
 

Friends

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

Detailed Description

Stores information about how the margins allowed between collision objects.

Definition at line 159 of file collision_margin_data.h.

Member Typedef Documentation

◆ ConstPtr

Definition at line 165 of file collision_margin_data.h.

◆ Ptr

Definition at line 164 of file collision_margin_data.h.

Constructor & Destructor Documentation

◆ CollisionMarginData() [1/3]

tesseract_common::CollisionMarginData::CollisionMarginData ( double  default_collision_margin = 0)

Definition at line 163 of file collision_margin_data.cpp.

◆ CollisionMarginData() [2/3]

tesseract_common::CollisionMarginData::CollisionMarginData ( double  default_collision_margin,
CollisionMarginPairData  pair_collision_margins 
)

Definition at line 168 of file collision_margin_data.cpp.

◆ CollisionMarginData() [3/3]

tesseract_common::CollisionMarginData::CollisionMarginData ( CollisionMarginPairData  pair_collision_margins)

Definition at line 174 of file collision_margin_data.cpp.

Member Function Documentation

◆ apply()

void tesseract_common::CollisionMarginData::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 222 of file collision_margin_data.cpp.

◆ getCollisionMargin()

double tesseract_common::CollisionMarginData::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 Vector2d[Contact Distance Threshold, Coefficient]

Definition at line 191 of file collision_margin_data.cpp.

◆ getCollisionMarginPairData()

const CollisionMarginPairData & tesseract_common::CollisionMarginData::getCollisionMarginPairData ( ) const

Get Collision Margin Data for stored pairs.

Returns
A map of link pairs collision margin data

Definition at line 200 of file collision_margin_data.cpp.

◆ getDefaultCollisionMargin()

double tesseract_common::CollisionMarginData::getDefaultCollisionMargin ( ) const

Get the default collision margin.

Returns
default collision margin

Definition at line 184 of file collision_margin_data.cpp.

◆ getMaxCollisionMargin()

double tesseract_common::CollisionMarginData::getMaxCollisionMargin ( ) const

Get the largest collision margin.

This used when setting the contact distance in the contact manager.

Returns
Max contact distance threshold

Definition at line 202 of file collision_margin_data.cpp.

◆ incrementMargins()

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

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

Parameters
incrementAmount to increment margins

Definition at line 210 of file collision_margin_data.cpp.

◆ operator!=()

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

Definition at line 237 of file collision_margin_data.cpp.

◆ operator==()

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

Definition at line 228 of file collision_margin_data.cpp.

◆ scaleMargins()

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

Scale all margins by input value.

Parameters
scaleValue by which all margins are multiplied

Definition at line 216 of file collision_margin_data.cpp.

◆ serialize()

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

Definition at line 240 of file collision_margin_data.cpp.

◆ setCollisionMargin()

void tesseract_common::CollisionMarginData::setCollisionMargin ( const std::string &  obj1,
const std::string &  obj2,
double  collision_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
collision_margincontacts with distance < collision_margin are considered in collision

Definition at line 186 of file collision_margin_data.cpp.

◆ setDefaultCollisionMargin()

void tesseract_common::CollisionMarginData::setDefaultCollisionMargin ( double  default_collision_margin)

Set the default collision margin.

Parameters
default_collision_marginNew default collision margin

Definition at line 179 of file collision_margin_data.cpp.

Friends And Related Function Documentation

◆ boost::serialization::access

friend class boost::serialization::access
friend

Definition at line 250 of file collision_margin_data.h.

◆ tesseract_common::Serialization

friend struct tesseract_common::Serialization
friend

Definition at line 251 of file collision_margin_data.h.

Member Data Documentation

◆ default_collision_margin_

double tesseract_common::CollisionMarginData::default_collision_margin_ { 0 }
private

Stores the collision margin used if no pair-specific one is set.

Definition at line 245 of file collision_margin_data.h.

◆ pair_margins_

CollisionMarginPairData tesseract_common::CollisionMarginData::pair_margins_
private

A map of link pair names to contact distance.

Definition at line 248 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