SoftContactConstraint represents a contact constraint between two bodies.
More...
#include <SoftContactConstraint.hpp>
SoftContactConstraint represents a contact constraint between two bodies.
◆ SoftContactConstraint()
dart::constraint::SoftContactConstraint::SoftContactConstraint |
( |
collision::Contact & |
_contact, |
|
|
double |
_timeStep |
|
) |
| |
◆ ~SoftContactConstraint()
dart::constraint::SoftContactConstraint::~SoftContactConstraint |
( |
| ) |
|
|
virtual |
◆ applyImpulse()
void dart::constraint::SoftContactConstraint::applyImpulse |
( |
double * |
lambda | ) |
|
|
overrideprotectedvirtual |
◆ applyUnitImpulse()
void dart::constraint::SoftContactConstraint::applyUnitImpulse |
( |
std::size_t |
index | ) |
|
|
overrideprotectedvirtual |
◆ compressPath()
◆ computeFrictionCoefficient()
double dart::constraint::SoftContactConstraint::computeFrictionCoefficient |
( |
const dynamics::ShapeNode * |
shapeNode | ) |
|
|
staticprotected |
◆ computeRestitutionCoefficient()
double dart::constraint::SoftContactConstraint::computeRestitutionCoefficient |
( |
const dynamics::ShapeNode * |
shapeNode | ) |
|
|
staticprotected |
◆ excite()
void dart::constraint::SoftContactConstraint::excite |
( |
| ) |
|
|
overrideprotectedvirtual |
◆ getConstraintForceMixing()
double dart::constraint::SoftContactConstraint::getConstraintForceMixing |
( |
| ) |
|
|
static |
Get global constraint force mixing parameter.
◆ getDimension()
std::size_t dart::constraint::ConstraintBase::getDimension |
( |
| ) |
const |
|
inherited |
Return dimesion of this constranit.
◆ getErrorAllowance()
double dart::constraint::SoftContactConstraint::getErrorAllowance |
( |
| ) |
|
|
static |
Get global error reduction parameter.
◆ getErrorReductionParameter()
double dart::constraint::SoftContactConstraint::getErrorReductionParameter |
( |
| ) |
|
|
static |
Get global error reduction parameter.
◆ getFrictionDirection1()
const Eigen::Vector3d & dart::constraint::SoftContactConstraint::getFrictionDirection1 |
( |
| ) |
const |
Get first frictional direction.
◆ getInformation()
void dart::constraint::SoftContactConstraint::getInformation |
( |
ConstraintInfo * |
info | ) |
|
|
overrideprotectedvirtual |
◆ getMaxErrorReductionVelocity()
double dart::constraint::SoftContactConstraint::getMaxErrorReductionVelocity |
( |
| ) |
|
|
static |
Get global error reduction parameter.
◆ getRelVelocity()
void dart::constraint::SoftContactConstraint::getRelVelocity |
( |
double * |
_vel | ) |
|
|
private |
Get change in relative velocity at contact point due to external impulse.
- Parameters
-
[out] | _vel | Change in relative velocity at contact point of the two colliding bodies |
◆ getRootSkeleton() [1/2]
◆ getRootSkeleton() [2/2]
◆ getStaticType()
const std::string & dart::constraint::SoftContactConstraint::getStaticType |
( |
| ) |
|
|
static |
Returns constraint type for this class.
◆ getTangentBasisMatrixODE()
Eigen::MatrixXd dart::constraint::SoftContactConstraint::getTangentBasisMatrixODE |
( |
const Eigen::Vector3d & |
_n | ) |
|
|
private |
◆ getType()
const std::string & dart::constraint::SoftContactConstraint::getType |
( |
| ) |
const |
|
overridevirtual |
◆ getVelocityChange()
void dart::constraint::SoftContactConstraint::getVelocityChange |
( |
double * |
vel, |
|
|
bool |
withCfm |
|
) |
| |
|
overrideprotectedvirtual |
◆ isActive()
bool dart::constraint::SoftContactConstraint::isActive |
( |
| ) |
const |
|
overrideprotectedvirtual |
◆ selectCollidingPointMass() [1/2]
Find the nearest point mass from _point in a face, of which id is _faceId in _softBodyNode.
Returns a pointer to a const, and is usable with a const SoftBodyNode.
◆ selectCollidingPointMass() [2/2]
Find the nearest point mass from _point in a face, of which id is _faceId in _softBodyNode.
◆ setConstraintForceMixing()
void dart::constraint::SoftContactConstraint::setConstraintForceMixing |
( |
double |
_cfm | ) |
|
|
static |
Set global constraint force mixing parameter.
◆ setErrorAllowance()
void dart::constraint::SoftContactConstraint::setErrorAllowance |
( |
double |
_allowance | ) |
|
|
static |
Set global error reduction parameter.
◆ setErrorReductionParameter()
void dart::constraint::SoftContactConstraint::setErrorReductionParameter |
( |
double |
_erp | ) |
|
|
static |
Set global error reduction parameter.
◆ setFrictionDirection()
void dart::constraint::SoftContactConstraint::setFrictionDirection |
( |
const Eigen::Vector3d & |
_dir | ) |
|
Set first frictional direction.
◆ setMaxErrorReductionVelocity()
void dart::constraint::SoftContactConstraint::setMaxErrorReductionVelocity |
( |
double |
_erv | ) |
|
|
static |
Set global error reduction parameter.
◆ unexcite()
void dart::constraint::SoftContactConstraint::unexcite |
( |
| ) |
|
|
overrideprotectedvirtual |
◆ uniteSkeletons()
void dart::constraint::SoftContactConstraint::uniteSkeletons |
( |
| ) |
|
|
overrideprotectedvirtual |
◆ update()
void dart::constraint::SoftContactConstraint::update |
( |
| ) |
|
|
overrideprotectedvirtual |
◆ updateFirstFrictionalDirection()
void dart::constraint::SoftContactConstraint::updateFirstFrictionalDirection |
( |
| ) |
|
|
private |
◆ ConstrainedGroup
◆ ConstraintSolver
◆ mActive
bool dart::constraint::SoftContactConstraint::mActive |
|
private |
◆ mAppliedImpulseIndex
std::size_t dart::constraint::SoftContactConstraint::mAppliedImpulseIndex |
|
private |
Index of applied impulse.
◆ mBodyDirection1
Eigen::Vector3d dart::constraint::SoftContactConstraint::mBodyDirection1 |
|
private |
Contact normal expressed in body frame of the first body node.
◆ mBodyDirection2
Eigen::Vector3d dart::constraint::SoftContactConstraint::mBodyDirection2 |
|
private |
Contact normal expressed in body frame of the second body node.
◆ mBodyNode1
◆ mBodyNode2
◆ mConstraintForceMixing
double dart::constraint::SoftContactConstraint::mConstraintForceMixing = 1e-5 |
|
staticprivate |
◆ mContacts
Contacts between mBodyNode1 and mBodyNode2.
◆ mDim
std::size_t dart::constraint::ConstraintBase::mDim |
|
protectedinherited |
◆ mErrorAllowance
double dart::constraint::SoftContactConstraint::mErrorAllowance = 0.0 |
|
staticprivate |
Global constraint error allowance.
◆ mErrorReductionParameter
double dart::constraint::SoftContactConstraint::mErrorReductionParameter = 0.01 |
|
staticprivate |
Global constraint error redection parameter in the range of [0, 1].
The default is 0.01.
◆ mFirstFrictionalDirection
Eigen::Vector3d dart::constraint::SoftContactConstraint::mFirstFrictionalDirection |
|
private |
First frictional direction.
◆ mFrictionCoeff
double dart::constraint::SoftContactConstraint::mFrictionCoeff |
|
private |
◆ mIsBounceOn
bool dart::constraint::SoftContactConstraint::mIsBounceOn |
|
private |
◆ mIsFrictionOn
bool dart::constraint::SoftContactConstraint::mIsFrictionOn |
|
private |
◆ mJacobians1
Local body jacobians for mBodyNode1.
◆ mJacobians2
Local body jacobians for mBodyNode2.
◆ mMaxErrorReductionVelocity
double dart::constraint::SoftContactConstraint::mMaxErrorReductionVelocity = 1e+1 |
|
staticprivate |
Maximum error reduction velocity.
◆ mPointMass1
◆ mPointMass2
◆ mRestitutionCoeff
double dart::constraint::SoftContactConstraint::mRestitutionCoeff |
|
private |
Coefficient of restitution.
◆ mSoftBodyNode1
◆ mSoftBodyNode2
◆ mSoftCollInfo
collision::SoftCollisionInfo* dart::constraint::SoftContactConstraint::mSoftCollInfo |
|
private |
Soft collision information.
◆ mTimeStep
double dart::constraint::SoftContactConstraint::mTimeStep |
|
private |