Public Member Functions | Private Attributes | List of all members
SurgSim::Physics::RotationVectorRigidFem1DConstraintData Class Reference

Class for rotation vector constraint data between a rigid/fixed representation and Fem1d beam being controlled. More...

#include <SurgSim/Physics/RotationVectorConstraintData.h>

Inheritance diagram for SurgSim::Physics::RotationVectorRigidFem1DConstraintData:
SurgSim::Physics::ConstraintData

Public Member Functions

 RotationVectorRigidFem1DConstraintData ()
 Default constructor. More...
 
virtual ~RotationVectorRigidFem1DConstraintData ()
 Destructor. More...
 
void setRigidOrFixedRotation (std::shared_ptr< SurgSim::Physics::RigidRepresentationBase > rigid, const SurgSim::Math::Matrix33d &rigidRAtGrasp)
 Set the rigid/fixed object part that will control the fem1d. More...
 
void setFem1DRotation (std::shared_ptr< SurgSim::Physics::Fem1DRepresentation > beams, size_t beamId)
 Set the fem1d object part. More...
 
SurgSim::Math::Vector3d getCurrentRotationVector () const
 
- Public Member Functions inherited from SurgSim::Physics::ConstraintData
 ConstraintData ()
 Default Constructor. More...
 
virtual ~ConstraintData ()
 Destructor. More...
 

Private Attributes

std::shared_ptr< SurgSim::Physics::RigidRepresentationBasem_rigid
 Rigid/Fixed representation. More...
 
SurgSim::Math::Matrix33d m_rigidRAtGrasp
 Rigid/Fixed rotation information at the time of the constraint creation. More...
 
std::shared_ptr< SurgSim::Physics::Fem1DRepresentationm_beams
 Fem1D representation. More...
 
SurgSim::Math::Matrix33d m_beamR0
 The beam initial rotation and rotation at the time of the constraint creation. More...
 
SurgSim::Math::Matrix33d m_beamRAtGrasp
 

Detailed Description

Class for rotation vector constraint data between a rigid/fixed representation and Fem1d beam being controlled.

It considers the Fem1D rotational dof (beamRotationVector) to be the only variable to account for. The equation to verify is \( R_{rigid} * RAtGrasp_{rigid}^{-1} = R_{beam} * RAtGrasp_{beam}^{-1} \) where \(R\) denotes the current prefixed object 3x3 rotation matrix \(RAtGrasp\) is the 3x3 rotation matrix of the prefixed object at the time of the constraint creation and \(R_{beam}\) is decomposed into the initial rotation \(R0_{beam}\) and the current rotation given by the rotational dof \(R_{rigid} * RAtGrasp_{rigid}^{-1} = R(beamRotationVector) * R0_{beam} * RAtGrasp_{beam}^{-1}\) \(R_{rigid} * RAtGrasp_{rigid}^{-1} * RAtGrasp_{beam} * R0_{beam}^{-1} = R(beamRotationVector)\) \(rotationVector(R_{rigid} * RAtGrasp_{rigid}^{-1} * RAtGrasp_{beam} * R0_{beam}^{-1}) = beamRotationVector\)

Constructor & Destructor Documentation

◆ RotationVectorRigidFem1DConstraintData()

SurgSim::Physics::RotationVectorRigidFem1DConstraintData::RotationVectorRigidFem1DConstraintData ( )
inline

Default constructor.

◆ ~RotationVectorRigidFem1DConstraintData()

virtual SurgSim::Physics::RotationVectorRigidFem1DConstraintData::~RotationVectorRigidFem1DConstraintData ( )
inlinevirtual

Destructor.

Member Function Documentation

◆ getCurrentRotationVector()

SurgSim::Math::Vector3d SurgSim::Physics::RotationVectorRigidFem1DConstraintData::getCurrentRotationVector ( ) const
inline
Returns
The current rotation vector that should correspond to the beam rotation vector i.e. \( rotationVector(R_{rigid} * RAtGrasp_{rigid}^{-1} * RAtGrasp_{beam} * R0_{beam}^{-1}) \)

◆ setFem1DRotation()

void SurgSim::Physics::RotationVectorRigidFem1DConstraintData::setFem1DRotation ( std::shared_ptr< SurgSim::Physics::Fem1DRepresentation beams,
size_t  beamId 
)
inline

Set the fem1d object part.

Parameters
beamsThe Fem1DRepresentation to be controlled by the rigid/fixed representation orientation
beamIdThe beam id that is going to be controlled by the rigid/fixed representation orientation

◆ setRigidOrFixedRotation()

void SurgSim::Physics::RotationVectorRigidFem1DConstraintData::setRigidOrFixedRotation ( std::shared_ptr< SurgSim::Physics::RigidRepresentationBase rigid,
const SurgSim::Math::Matrix33d rigidRAtGrasp 
)
inline

Set the rigid/fixed object part that will control the fem1d.

Parameters
rigidThe rigid base representation (either a RigidRepresentation or FixedRepresentation)
rigidRAtGraspThe rigid rotation at the time of the constraint creation

Member Data Documentation

◆ m_beamR0

SurgSim::Math::Matrix33d SurgSim::Physics::RotationVectorRigidFem1DConstraintData::m_beamR0
private

The beam initial rotation and rotation at the time of the constraint creation.

◆ m_beamRAtGrasp

SurgSim::Math::Matrix33d SurgSim::Physics::RotationVectorRigidFem1DConstraintData::m_beamRAtGrasp
private

◆ m_beams

std::shared_ptr<SurgSim::Physics::Fem1DRepresentation> SurgSim::Physics::RotationVectorRigidFem1DConstraintData::m_beams
private

Fem1D representation.

◆ m_rigid

std::shared_ptr<SurgSim::Physics::RigidRepresentationBase> SurgSim::Physics::RotationVectorRigidFem1DConstraintData::m_rigid
private

Rigid/Fixed representation.

◆ m_rigidRAtGrasp

SurgSim::Math::Matrix33d SurgSim::Physics::RotationVectorRigidFem1DConstraintData::m_rigidRAtGrasp
private

Rigid/Fixed rotation information at the time of the constraint creation.


The documentation for this class was generated from the following file: