RobWorkProject  24.6.21-
Public Member Functions | Static Public Member Functions | List of all members
ContactManifold Class Reference

A contact manifold is an area of contact between two objects, that exists for several timesteps in a simulated environment. For each timestep the manifold is updated with new contact points such that the manifold is dynamic. More...

#include <ContactManifold.hpp>

Public Member Functions

 ContactManifold ()
 default constructor More...
 
virtual ~ContactManifold ()
 destructor More...
 
void update ()
 update the manifold, which means removing contact points that no longer are valid.
 
bool isInManifold (ContactPoint &point)
 test if the contactpoint point is close enough to the manifold to be part of it. More...
 
void addContact (ContactPoint &point)
 add a contact point to this contact manifold. More...
 

Static Public Member Functions

static void generateContactManifolds (std::vector< ContactPoint * > &points, std::vector< ContactManifold * > &manifolds)
 updates the manifolds with the new contact points. if some contact points does not fit in one of the manifolds then new manifolds are added. More...
 
static void genThresContactManifolds (std::vector< ContactPoint > &points, std::vector< ContactManifold * > &manifolds, double thres)
 updates the manifolds with the new contact points. if some contact points does not fit in one of the manifolds then new manifolds are added. The clustering method for this contact generator is based on a simple max distance from deepest penetrating point. More...
 

Detailed Description

A contact manifold is an area of contact between two objects, that exists for several timesteps in a simulated environment. For each timestep the manifold is updated with new contact points such that the manifold is dynamic.

for each timestep do the following:

manifold.reset();

Constructor & Destructor Documentation

◆ ContactManifold()

ContactManifold ( )
inline

default constructor

Returns

◆ ~ContactManifold()

virtual ~ContactManifold ( )
inlinevirtual

destructor

Returns

Member Function Documentation

◆ addContact()

void addContact ( ContactPoint point)
inline

add a contact point to this contact manifold.

Parameters
point[in] the

◆ generateContactManifolds()

static void generateContactManifolds ( std::vector< ContactPoint * > &  points,
std::vector< ContactManifold * > &  manifolds 
)
static

updates the manifolds with the new contact points. if some contact points does not fit in one of the manifolds then new manifolds are added.

Parameters
points
manifolds

◆ genThresContactManifolds()

static void genThresContactManifolds ( std::vector< ContactPoint > &  points,
std::vector< ContactManifold * > &  manifolds,
double  thres 
)
static

updates the manifolds with the new contact points. if some contact points does not fit in one of the manifolds then new manifolds are added. The clustering method for this contact generator is based on a simple max distance from deepest penetrating point.

Parameters
points
manifolds
thres[in] maximum distance from deepest penetrating point.

◆ isInManifold()

bool isInManifold ( ContactPoint point)
inline

test if the contactpoint point is close enough to the manifold to be part of it.

Parameters
point[in]
Returns
true if point is close enough to manifold, false otherwise

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