RobWorkProject
Classes | Public Member Functions | List of all members
RWPEContactResolver Class Referenceabstract

The contact resolver is responsible for determining which contacts that are leaving, sliding or rolling. To determine this it uses a RWPEConstraintSolver to try to solve for different choices of contact types. More...

#include <RWPEContactResolver.hpp>

Inherited by RWPEContactResolverFull, RWPEContactResolverHeuristic, and RWPEContactResolverNonPenetration.

Classes

class  Factory
 A factory for a RWPEContactResolver. This factory also defines an extension point for RWPEContactResolver. More...
 

Public Member Functions

virtual ~RWPEContactResolver ()
 Destructor.
 
virtual const RWPEContactResolvercreateResolver (const RWPEConstraintSolver *solver) const =0
 Create a new resolver. More...
 
virtual void solve (const std::vector< RWPEContact *> &persistentContacts, double h, bool discontinuity, const RWPEMaterialMap &map, const rw::kinematics::State &rwstate, const RWPEIslandState &islandState0, RWPEIslandState &islandStateH, const rw::common::PropertyMap &pmap, class RWPELogUtil *log=NULL) const =0
 Solve for the constraint forces and torques while resolving the contact types. More...
 
virtual void addDefaultProperties (rw::common::PropertyMap &map) const
 Add the default properties to the given map. More...
 

Detailed Description

The contact resolver is responsible for determining which contacts that are leaving, sliding or rolling. To determine this it uses a RWPEConstraintSolver to try to solve for different choices of contact types.

Member Function Documentation

◆ addDefaultProperties()

virtual void addDefaultProperties ( rw::common::PropertyMap map) const
virtual

Add the default properties to the given map.

Please look at the documentation for the specific implementations of this function to get information about the required properties for these implementations.

Parameters
map[in/out] the map to add the default properties to.

Reimplemented in RWPEContactResolverHeuristic, RWPEContactResolverNonPenetration, and RWPEContactResolverFull.

◆ createResolver()

virtual const RWPEContactResolver* createResolver ( const RWPEConstraintSolver solver) const
pure virtual

Create a new resolver.

Parameters
solver[in] the solver to use.
Returns
a pointer to a new RWPEContactResolver - owned by the caller.

Implemented in RWPEContactResolverHeuristic, RWPEContactResolverNonPenetration, and RWPEContactResolverFull.

◆ solve()

virtual void solve ( const std::vector< RWPEContact *> &  persistentContacts,
double  h,
bool  discontinuity,
const RWPEMaterialMap map,
const rw::kinematics::State rwstate,
const RWPEIslandState islandState0,
RWPEIslandState islandStateH,
const rw::common::PropertyMap pmap,
class RWPELogUtil log = NULL 
) const
pure virtual

Solve for the constraint forces and torques while resolving the contact types.

Parameters
persistentContacts[in] contacts that should never be removed.
h[in] the stepsize.
discontinuity[in] solve differently if it is the first step after a discontinuity.
map[in] the material map to use to resolve friction models.
rwstate[in] the current state.
islandState0[in] the initial RWPEIslandState.
islandStateH[in/out] the new RWPEIslandState to calculate forces for.
pmap[in] parameters that adjusts the behaviour of the resolver - see addDefaultProperties
log[in] (optional) do logging.

Implemented in RWPEContactResolverHeuristic, RWPEContactResolverNonPenetration, and RWPEContactResolverFull.


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