|
|
void | setNeedleForceThreshold (double needleForceThreshold) |
| |
|
double | getNeedleForceThrehsold () const |
| |
|
void | setInputRigidObjectA (std::shared_ptr< RigidObject2 > rbdObjA) |
| |
|
void | setInputRigidObjectB (std::shared_ptr< RigidObject2 > rbdObjB) |
| | Second input rigid object is optional.
|
| |
|
void | setInputCollidingObjectB (std::shared_ptr< CollidingObject > colObjB) |
| | Second input colliding object is optional.
|
| |
|
std::shared_ptr< RigidObject2 > | getRigidObjA () |
| |
|
std::shared_ptr< RigidObject2 > | getRigidObjB () |
| |
|
void | setBaumgarteStabilization (double beta) |
| | Baumgarte stabilization term, scales the constraint scalars The higher it is, the faster constraint violations are dealt with (bigger steps), but could introduce erroneous velocity.
|
| |
|
const double | getBeta () const |
| |
|
void | setFriction (double frictionalCoefficient) |
| |
|
const double | getFriction () const |
| |
|
void | setUseFriction (bool useFriction) |
| |
|
const double | getUseFriction () const |
| |
|
virtual const std::string | getTypeName () const =0 |
| |
|
void | setInputObjectA (std::shared_ptr< CollidingObject > objectA) |
| | Set the input objects.
|
| |
|
void | setInputObjectB (std::shared_ptr< CollidingObject > objectB) |
| |
|
std::shared_ptr< CollidingObject > | getInputObjectA () const |
| | Get the input objects.
|
| |
|
std::shared_ptr< CollidingObject > | getInputObjectB () const |
| |
|
virtual std::shared_ptr< Geometry > | getHandlingGeometryA () |
| | Get the geometry used for handling defaults to the collision geometry.
|
| |
|
virtual std::shared_ptr< Geometry > | getHandlingGeometryB () |
| |
|
void | setInputCollisionData (std::shared_ptr< CollisionData > collisionData) |
| | Set/Get the input collision data used for handling.
|
| |
|
void | setInputCollisionData (std::shared_ptr< std::vector< std::shared_ptr< CollisionData >>> collisionVectorData) |
| | Set/Get the input collision data used for handling This supports collating information from multiple collision detect algorithms.
|
| |
|
std::shared_ptr< const CollisionData > | getInputCollisionData () const |
| |
|
void | update () |
| | Handle the input collision data.
|
| |
|
|
void | handle (const std::vector< CollisionElement > &elementsA, const std::vector< CollisionElement > &elementsB) override |
| | Handle the collision/contact data.
|
| |
|
void | addConstraint (std::shared_ptr< RigidObject2 > rbdObj, const Vec3d &contactPt, const Vec3d &contactNormal, const double contactDepth) override |
| | Add constraint for the rigid body given contact.
|
| |
|
void | handle (const std::vector< CollisionElement > &elementsA, const std::vector< CollisionElement > &elementsB) override |
| | Handle the collision/contact data.
|
| |
|
void | addConstraint (std::shared_ptr< RigidObject2 > rbdObj, const Vec3d &contactPt, const Vec3d &contactNormal, const double contactDepth) override |
| | Add constraint for the rigid body given contact.
|
| |
|
virtual void | handle (const std::vector< CollisionElement > &elementsA, const std::vector< CollisionElement > &elementsB) override |
| | Handle the collision/contact data.
|
| |
|
void | addConstraint (std::shared_ptr< RigidObject2 > rbdObj, const Vec3d &contactPt, const Vec3d &contactNormal, const double contactDepth) override |
| | Add constraint for the rigid body given contact.
|
| |
|
void | handleRbdRbdTwoWay (std::shared_ptr< RigidObject2 > rbdObjA, std::shared_ptr< RigidObject2 > rbdObjB, const std::vector< CollisionElement > &elementsA, const std::vector< CollisionElement > &elementsB) |
| | Handle rigid vs rigid two-way edge-edge, vertex-triangle, etc.
|
| |
|
void | handleRbdStaticOneWay (std::shared_ptr< RigidObject2 > rbdObj, std::shared_ptr< CollidingObject > colObj, const std::vector< CollisionElement > &elementsA, const std::vector< CollisionElement > &elementsB) |
| | Handle rigid vs static one-way edge-edge, vertex-triangle, etc.
|
| |
|
virtual void | addConstraint (std::shared_ptr< RigidObject2 > rbdObjA, std::shared_ptr< RigidObject2 > rbdObjB, const Vec3d &contactPt, const Vec3d &contactNormal, const double contactDepth) |
| | Add two-way constraint for the rigid bodies given contact.
|
| |
|
void | updateCollisionData (std::shared_ptr< const CollisionData > data) |
| |
|
|
Vec3d | m_initContactPt = Vec3d::Zero() |
| |
|
Vec3d | m_initAxes = Vec3d::Zero() |
| |
|
Quatd | m_initOrientation = Quatd::Identity() |
| |
|
double | m_forceThreshold = 2.0 |
| |
|
double | m_needleForceThreshold = 250.0 |
| | When needle body exceeds this it inserts.
|
| |
|
std::shared_ptr< Needle > | m_needle |
| |
|
std::shared_ptr< Puncturable > | m_puncturable |
| |
|
Vec3d | m_initNeedleAxes = Vec3d::Zero() |
| |
|
Quatd | m_initNeedleOrientation = Quatd::Identity() |
| |
|
double | m_beta = 0.0 |
| |
|
double | m_frictionalCoefficient = 2.0 |
| |
|
bool | m_useFriction = false |
| |
|
std::shared_ptr< CollidingObject > | m_inputObjectA |
| |
|
std::shared_ptr< CollidingObject > | m_inputObjectB |
| |
|
std::shared_ptr< const CollisionData > | m_colData |
| | Collision data.
|
| |
|
std::shared_ptr< std::vector< std::shared_ptr< CollisionData > > > | m_colVectorData |
| | Expansion to allow collision detection to return multiple types of collision data.
|
| |
|
std::function< void()> | m_updateFunction = []() {} |
| |
|
bool | m_clearData = true |
| |
|
bool | m_processConstraints = true |
| |
Definition at line 14 of file NeedleRigidBodyCH.h.