MULTIBODY SIMULATION SOFTWARE - API documentation

chrono::collision::ChCollisionPair Class Reference

#include <CHcCollisionPair.h>

Collaboration diagram for chrono::collision::ChCollisionPair:

Collaboration graph
[legend]

List of all members.

Public Member Functions

 ChCollisionPair ()
 ChCollisionPair (chrono::geometry::ChGeometry *mgeo1, chrono::geometry::ChGeometry *mgeo2, const ChVector<> &mp1, const ChVector<> &mp2, const ChVector< float > &mnormal, float *mreaction_cache=0)
 ChCollisionPair (chrono::geometry::ChGeometry *mgeo1, chrono::geometry::ChGeometry *mgeo2)
void Set (chrono::geometry::ChGeometry *mgeo1, chrono::geometry::ChGeometry *mgeo2, const ChVector<> &mp1, const ChVector<> &mp2, const ChVector< float > &mnormal, float *mreaction_cache=0)
void SwapGeometries ()
void CacheFetchSpeedSolutionFromManifold (float &mN, float &mU, float &mV)
void CacheFetchPositionSolutionFromManifold (float &mN, float &mU, float &mV)
void CacheStoreSpeedSolutionIntoManifold (const float mN, const float mU, const float mV)
void CacheStorePositionSolutionIntoManifold (const float mN, const float mU, const float mV)

Public Attributes

chrono::geometry::ChGeometrygeo1
chrono::geometry::ChGeometrygeo2
ChVector p1
ChVector p2
ChVector< float > normal
double norm_dist
bool just_intersection
float * reactions_cache


Detailed Description

Class for storing information about a collision point.

Constructor & Destructor Documentation

chrono::collision::ChCollisionPair::ChCollisionPair (  ) 

Basic constructor.

chrono::collision::ChCollisionPair::ChCollisionPair ( chrono::geometry::ChGeometry mgeo1,
chrono::geometry::ChGeometry mgeo2,
const ChVector<> &  mp1,
const ChVector<> &  mp2,
const ChVector< float > &  mnormal,
float *  mreaction_cache = 0 
)

Constructor for case of contact point correctly estimated.

chrono::collision::ChCollisionPair::ChCollisionPair ( chrono::geometry::ChGeometry mgeo1,
chrono::geometry::ChGeometry mgeo2 
)

Constructor for case of just intersection.


Member Function Documentation

void chrono::collision::ChCollisionPair::Set ( chrono::geometry::ChGeometry mgeo1,
chrono::geometry::ChGeometry mgeo2,
const ChVector<> &  mp1,
const ChVector<> &  mp2,
const ChVector< float > &  mnormal,
float *  mreaction_cache = 0 
)

Set all data at once (better: use the custom constructor).

void chrono::collision::ChCollisionPair::SwapGeometries (  ) 

Swap geometries, that is geo1 becomes geo2 and viceversa; normal and so on are updates as well.

void chrono::collision::ChCollisionPair::CacheFetchSpeedSolutionFromManifold ( float &  mN,
float &  mU,
float &  mV 
)

Fetches normal and U,V impulsive reactions, as previously stored in a persistent contact manifold maintained by the collision engine. If no cache, set as 0,0,0

void chrono::collision::ChCollisionPair::CacheFetchPositionSolutionFromManifold ( float &  mN,
float &  mU,
float &  mV 
)

Fetches normal and U,V 'positional' reactions, as previously stored in a persistent contact manifold maintained by the collision engine. If no cache, set as 0,0,0

void chrono::collision::ChCollisionPair::CacheStoreSpeedSolutionIntoManifold ( const float  mN,
const float  mU,
const float  mV 
)

Stores normal and U,V reactions into a persistent contact manifold maintained by the collision engine (if any)

void chrono::collision::ChCollisionPair::CacheStorePositionSolutionIntoManifold ( const float  mN,
const float  mU,
const float  mV 
)

Stores normal and U,V 'positional' reactions into a persistent contact manifold maintained by the collision engine (if any)


Member Data Documentation

chrono::geometry::ChGeometry* chrono::collision::ChCollisionPair::geo1

pointer to 1st geometry which generated this collision pair

chrono::geometry::ChGeometry* chrono::collision::ChCollisionPair::geo2

pointer to 2nd geometry which generated this collision pair

ChVector chrono::collision::ChCollisionPair::p1

max penetration point on geo1, after refining, in abs space

ChVector chrono::collision::ChCollisionPair::p2

max penetration point on geo2, after refining, in abs space

ChVector<float> chrono::collision::ChCollisionPair::normal

normal, on surface of master reference (geo1)

double chrono::collision::ChCollisionPair::norm_dist

penetration distance (negative if going inside) after refining

bool chrono::collision::ChCollisionPair::just_intersection

if true, only reports that two geometries are intersection, but no info is reliable about normal, p1 or p2.

float* chrono::collision::ChCollisionPair::reactions_cache

points to an array[3] of N,U,V reactions which might be stored in a persistent contact manifold in the collision engine


CHRONO::ENGINE
C++ library for multibody simulation, (C) Alessandro Tasora
This API documentation has been generated on 17 Jul 2009 by Doxygen