| MULTIBODY SIMULATION SOFTWARE - API documentation |
#include <CHcontactNode.h>

Public Member Functions | |
| ChContactNode (collision::ChCollisionModel *mmodA, collision::ChCollisionModel *mmodB, const ChLcpVariablesBody *varA, const ChLcpVariablesNode *varB, const ChFrame<> *frameA, const ChVector<> *posB, const ChVector<> &vpA, const ChVector<> &vpB, const ChVector<> &vN, double mdistance, float *mreaction_cache, float mfriction) | |
| virtual void | Reset (collision::ChCollisionModel *mmodA, collision::ChCollisionModel *mmodB, const ChLcpVariablesBody *varA, const ChLcpVariablesNode *varB, const ChFrame<> *frameA, const ChVector<> *posB, const ChVector<> &vpA, const ChVector<> &vpB, const ChVector<> &vN, double mdistance, float *mreaction_cache, float mfriction) |
| virtual ChCoordsys | GetContactCoords () |
| ChMatrix33< float > * | GetContactPlane () |
| virtual ChVector | GetContactP1 () |
| virtual ChVector | GetContactP2 () |
| virtual ChVector< float > | GetContactNormal () |
| virtual double | GetContactDistance () |
| virtual ChVector | GetContactForce () |
| virtual float | GetFriction () |
| virtual void | SetFriction (float mf) |
|
virtual collision::ChCollisionModel * | GetModelA () |
|
virtual collision::ChCollisionModel * | GetModelB () |
| void | InjectConstraints (ChLcpSystemDescriptor &mdescriptor) |
| void | ConstraintsBiReset () |
| void | ConstraintsBiLoad_C (double factor=1., double recovery_clamp=0.1, bool do_clamp=false) |
| void | ConstraintsFetch_react (double factor) |
| void | ConstraintsLiLoadSuggestedSpeedSolution () |
| void | ConstraintsLiLoadSuggestedPositionSolution () |
| void | ConstraintsLiFetchSuggestedSpeedSolution () |
| void | ConstraintsLiFetchSuggestedPositionSolution () |
Protected Attributes | |
| collision::ChCollisionModel * | modA |
| collision::ChCollisionModel * | modB |
| ChVector | p1 |
| ChVector | p2 |
| ChVector< float > | normal |
| ChMatrix33< float > | contact_plane |
| double | norm_dist |
| float * | reactions_cache |
| ChLcpConstraintNodeContactN | Nx |
| ChLcpConstraintNodeFrictionT | Tu |
| ChLcpConstraintNodeFrictionT | Tv |
| ChVector | react_force |
Class representing an unilateral contact constraint between a 3DOF node and a 6DOF body
| chrono::ChContactNode::ChContactNode | ( | collision::ChCollisionModel * | mmodA, |
| collision::ChCollisionModel * | mmodB, | ||
| const ChLcpVariablesBody * | varA, | ||
| const ChLcpVariablesNode * | varB, | ||
| const ChFrame<> * | frameA, | ||
| const ChVector<> * | posB, | ||
| const ChVector<> & | vpA, | ||
| const ChVector<> & | vpB, | ||
| const ChVector<> & | vN, | ||
| double | mdistance, | ||
| float * | mreaction_cache, | ||
| float | mfriction | ||
| ) |
< pass A vars
< pass B vars
< pass A frame
< pass B frame
< pass coll.point on A
< pass coll.point on B
< pass coll.normal, respect to A
< pass the distance (negative for penetration)
< pass the pointer to array of N,U,V reactions: a cache in contact manifold. If not available=0.
< friction coeff.
| mmodA | model A (body) |
| mmodB | model B (node) |
| varA | pass B vars (body) |
| varB | pass A vars (node) |
| frameA | pass A frame |
| posB | pass B position |
| vpA | pass coll.point on A, in absolute coordinates |
| vpB | pass coll.point on B, in absolute coordinates |
| vN | pass coll.normal, respect to A, in absolute coordinates |
| mdistance | pass the distance (negative for penetration) |
| mreaction_cache | pass the pointer to array of N,U,V reactions: a cache in contact manifold. If not available=0. |
| mfriction | friction coeff. |
| ChCoordsys chrono::ChContactNode::GetContactCoords | ( | ) | [virtual] |
Get the contact coordinate system, expressed in absolute frame. This represents the 'main' reference of the link: reaction forces are expressed in this coordinate system. Its origin is point P2. (It is the coordinate system of the contact plane and normal)
| ChMatrix33<float>* chrono::ChContactNode::GetContactPlane | ( | ) |
Returns the pointer to a contained 3x3 matrix representing the UV and normal directions of the contact. In detail, the X versor (the 1s column of the matrix) represents the direction of the contact normal.
| void chrono::ChContactNode::Reset | ( | collision::ChCollisionModel * | mmodA, |
| collision::ChCollisionModel * | mmodB, | ||
| const ChLcpVariablesBody * | varA, | ||
| const ChLcpVariablesNode * | varB, | ||
| const ChFrame<> * | frameA, | ||
| const ChVector<> * | posB, | ||
| const ChVector<> & | vpA, | ||
| const ChVector<> & | vpB, | ||
| const ChVector<> & | vN, | ||
| double | mdistance, | ||
| float * | mreaction_cache, | ||
| float | mfriction | ||
| ) | [virtual] |
Initialize again this constraint.
| mmodA | model A (body) |
| mmodB | model B (node) |
| varA | pass B vars (body) |
| varB | pass A vars (node) |
| frameA | pass A frame |
| posB | pass B position |
| vpA | pass coll.point on A, in absolute coordinates |
| vpB | pass coll.point on B, in absolute coordinates |
| vN | pass coll.normal, respect to A, in absolute coordinates |
| mdistance | pass the distance (negative for penetration) |
| mreaction_cache | pass the pointer to array of N,U,V reactions: a cache in contact manifold. If not available=0. |
| mfriction | friction coeff. |
ChVector<float> chrono::ChContactNode::normal [protected] |
normal, on surface of master reference (geo1)
the plane of contact (X is normal direction)
CHRONO::ENGINE