![]() |
Sliding constraint between two physics representations. More...
#include <SurgSim/Physics/SlidingConstraint.h>
Public Member Functions | |
SlidingConstraint (ConstraintType constraintType, std::shared_ptr< ConstraintData > data, std::shared_ptr< Representation > representation0, const SurgSim::DataStructures::Location &location0, std::shared_ptr< Representation > representation1, const SurgSim::DataStructures::Location &location1, const Math::Vector3d &slidingDirection) | |
Sets all the values for this constraints, does validation on the parameters and will throw if something is wrong with the constraint. More... | |
virtual | ~SlidingConstraint () |
Destructor. More... | |
![]() | |
Constraint (ConstraintType constraintType, std::shared_ptr< ConstraintData > data, std::shared_ptr< Representation > representation0, const SurgSim::DataStructures::Location &location0, std::shared_ptr< Representation > representation1, const SurgSim::DataStructures::Location &location1) | |
Sets all the values for this constraints, does validation on the parameters and will throw if something is wrong with the constraint. More... | |
virtual | ~Constraint () |
Destructor. More... | |
void | setInformation (ConstraintType constraintType, std::shared_ptr< ConstraintData > data, std::shared_ptr< Representation > representation0, const SurgSim::DataStructures::Location &location0, std::shared_ptr< Representation > representation1, const SurgSim::DataStructures::Location &location1) |
Sets all the values for this constraints, does validation on the parameters and will throw if something is wrong with the constraint. More... | |
const std::pair< std::shared_ptr< ConstraintImplementation >, std::shared_ptr< ConstraintImplementation > > & | getImplementations () const |
Gets both sides implementation as a pair. More... | |
const std::pair< std::shared_ptr< Localization >, std::shared_ptr< Localization > > & | getLocalizations () const |
Gets both sides Localization as a pair. More... | |
std::shared_ptr< ConstraintData > | getData () const |
Gets the data associated to this constraint. More... | |
size_t | getNumDof () const |
Gets the number of degree of freedom for this constraint. More... | |
ConstraintType | getType () |
Gets the ConstraintType. More... | |
void | build (double dt, MlcpPhysicsProblem *mlcpPhysicsProblem, size_t indexOfRepresentation0, size_t indexOfRepresentation1, size_t indexOfConstraint) |
Builds subset of an Mlcp physics problem associated to this constraint. More... | |
bool | isActive () |
void | setActive (bool flag) |
Private Member Functions | |
void | doBuild (double dt, const ConstraintData &data, MlcpPhysicsProblem *mlcpPhysicsProblem, size_t indexOfRepresentation0, size_t indexOfRepresentation1, size_t indexOfConstraint) override |
Builds subset of an Mlcp physics problem associated to this constraint user-defined call for extra treatment. More... | |
Private Attributes | |
std::shared_ptr< SlidingConstraintData > | m_slidingConstraintData |
The sliding constraint data. More... | |
Math::Vector3d | m_directionEnd |
The end of the sliding direction, local to the representation1. More... | |
Additional Inherited Members | |
![]() | |
std::array< Math::MlcpConstraintType, NUM_CONSTRAINT_TYPES > | m_mlcpMap |
Constraint-MLCP mapping. More... | |
std::shared_ptr< ConstraintData > | m_data |
Specific data associated to this constraint. More... | |
std::pair< std::shared_ptr< ConstraintImplementation >, std::shared_ptr< ConstraintImplementation > > | m_implementations |
Pair of implementations defining the 2 sides of the constraint. More... | |
std::pair< std::shared_ptr< Localization >, std::shared_ptr< Localization > > | m_localizations |
size_t | m_numDof |
The degrees of freedom that this constraint has. More... | |
ConstraintType | m_constraintType |
The type of this constraint. More... | |
bool | m_active |
Flag to indicate whether this constraint is active or not. More... | |
Sliding constraint between two physics representations.
The sliding direction vector (direction + origin) needs to be updated each physics time step. This is done by transforming the direction and origin into the local coordinates of the physics representations and recalculating them every time step. representation0 is the one that can 'slide' against Representation1, for example Representation0 could be a suture Representation1 tissue.
SurgSim::Physics::SlidingConstraint::SlidingConstraint | ( | ConstraintType | constraintType, |
std::shared_ptr< ConstraintData > | data, | ||
std::shared_ptr< Representation > | representation0, | ||
const SurgSim::DataStructures::Location & | location0, | ||
std::shared_ptr< Representation > | representation1, | ||
const SurgSim::DataStructures::Location & | location1, | ||
const Math::Vector3d & | slidingDirection | ||
) |
Sets all the values for this constraints, does validation on the parameters and will throw if something is wrong with the constraint.
constraintType | The constraint type. |
data | The data for this constraint. |
representation0 | The moving representation e.g. suture. |
representation1 | The non-moving representation e.g. tissue. |
location0,location1 | Both locations of the representations involved in this constraint. |
slidingDirection | The direction of sliding. |
|
virtual |
Destructor.
|
overrideprivatevirtual |
Builds subset of an Mlcp physics problem associated to this constraint user-defined call for extra treatment.
dt | The time step | |
data | The data specific to this constraint | |
[in,out] | mlcpPhysicsProblem | The Mlcp physics problem to be filled up |
indexOfRepresentation0 | The index of the 1st representation in the Mlcp | |
indexOfRepresentation1 | The index of the 2nd representation in the Mlcp | |
indexOfConstraint | The index of this constraint in the Mlcp |
Reimplemented from SurgSim::Physics::Constraint.
|
private |
The end of the sliding direction, local to the representation1.
|
private |
The sliding constraint data.