UsTK : Ultrasound ToolKit  version 2.0.1 under development (2023-12-07)
usNeedleInsertionModelRayleighRitzSpline Class Reference

#include <visp3/ustk_needle_modeling/usNeedleInsertionModelRayleighRitzSpline.h>

+ Inheritance diagram for usNeedleInsertionModelRayleighRitzSpline:

Public Types

enum class  ModelPreset : int {
  BiopsyNeedle , BiopsyCannula , Symmetric , AbayazidRRM13 ,
  MisraRSRO10_PlastisolA , RoesthuisAM12 , SteelSoftTissue , SRL_ActuatedFBG ,
  SRL_BiopsySimple , SRL_BiopsyNID , NDI_Pink_Stylet
}
 
enum class  PathUpdateType : int { NoUpdate , WithTipPosition , WithTipDirection , WithTipMix }
 
enum class  NeedleTipType : int { SymmetricTip , BeveledTip , PrebentTip , ActuatedTip }
 
enum class  SolvingMethod : int { Classic , FixedBeamLength , NoBevel }
 

Public Member Functions

 usNeedleInsertionModelRayleighRitzSpline ()
 
 usNeedleInsertionModelRayleighRitzSpline (const usNeedleInsertionModelRayleighRitzSpline &model)
 
virtual ~usNeedleInsertionModelRayleighRitzSpline ()
 
const usNeedleInsertionModelRayleighRitzSplineoperator= (const usNeedleInsertionModelRayleighRitzSpline &model)
 
virtual usNeedleInsertionModelRayleighRitzSplineclone () const
 
void loadPreset (const ModelPreset preset)
 
const usNeedleModelSplineaccessNeedle () const
 
usNeedleModelSplineaccessNeedle ()
 
usNeedleTip const & accessNeedleTip () const
 
usNeedleTipaccessNeedleTip ()
 
void setNeedleTipType (NeedleTipType type)
 
NeedleTipType getNeedleTipType () const
 
const usTissueModelSplineaccessTissue () const
 
usTissueModelSplineaccessTissue ()
 
bool addTissueLayer (double K, double l)
 
bool setStiffnessPerUnitLength (int i, double K)
 
bool setStiffnessPerUnitLength (double K)
 
double getStiffnessPerUnitLength (int i=0) const
 
bool setLayerLength (int i, double l)
 
double getLayerLength (int i) const
 
int getNbLayers () const
 
int getNbCurrentLayers () const
 
void setPathUpdateType (PathUpdateType type)
 
void setPathUpdateLengthThreshold (double length)
 
void setPathUpdateMixCoefficient (double coef)
 
void setSolvingMethod (SolvingMethod method)
 
bool IsNeedleInserted () const
 
double getNeedleFreeLength (int *seg=nullptr, double *param=nullptr) const
 
double getInsertionDepth () const
 
vpColVector getNeedleInsertionPoint () const
 
vpColVector getTissueInsertionPoint () const
 
bool getCorrespondingPathPoint (double l, int &correspondingRestIndex, double &correspondingRestParam) const
 
double getTissueDeformationEnergy () const
 
double getSurfaceTissueStretch () const
 
double getMaxTissueStretch (double *lmax=nullptr) const
 
double getMeanTissueStretch () const
 
double getCurvatureFromKinematics () const
 
bool setBasePose (const vpPoseVector &p)
 
vpPoseVector getBasePose () const
 
void setSurfaceAtTip ()
 
bool cutPathToPoint (const vpColVector &P)
 
void solveSegmentsParametersSparseEigen ()
 
void solveSegmentsParametersFullSparseEigen ()
 
void solveSegmentsParametersFullSparseEigenFixedLength ()
 
void solveSegmentsParametersDense ()
 
void fitLength ()
 
void updateTipPose ()
 
void solveSegmentsParameters ()
 
virtual bool updateState ()
 
bool updatePath ()
 
virtual bool setBasePose (const vpPoseVector &pose)=0
 
bool setBasePose (double tx, double ty, double tz, double thetax, double thetay, double thetaz)
 
bool setBasePose (const vpHomogeneousMatrix &Hpose)
 
bool setBasePose (double tx, double ty, double tz, double thetax, double thetay, double thetaz)
 
bool setBasePose (const vpHomogeneousMatrix &Hpose)
 
vpHomogeneousMatrix getWorldMbase () const
 
vpColVector getBasePosition () const
 
bool moveBase (const vpColVector &v, double time)
 
bool moveBase (double tx, double ty, double tz, double thetax, double thetay, double thetaz)
 
bool moveBase (const vpPoseVector &pose)
 
bool moveBase (const vpColVector &v)
 
bool moveBase (const vpHomogeneousMatrix &Hmotion)
 
bool moveBaseWorldFrame (const vpColVector &command, double time)
 
bool moveBaseWorldFrame (double tx, double ty, double tz, double thetax, double thetay, double thetaz)
 
bool moveBaseWorldFrame (const vpPoseVector &pose)
 
bool moveBaseWorldFrame (const vpColVector &v)
 
bool moveBaseWorldFrame (const vpHomogeneousMatrix &Hmotion)
 

Public Attributes

usNeedleModelSpline m_needle
 
usNeedleTipm_needleTip
 
NeedleTipType m_needleTipType
 
usTissueModelSpline m_tissue
 
std::vector< double > m_stiffnessPerUnitLength
 
std::vector< double > m_layerLength
 
PathUpdateType m_pathUpdateType
 
double m_pathUpdateLengthThreshold
 
double m_pathUpdateMixCoefficient
 
SolvingMethod m_solvingMethod
 
std::vector< double > m_restDilatationFactor
 

Friends

VISP_EXPORT std::ostream & operator<< (std::ostream &s, const usNeedleInsertionModelRayleighRitzSpline &model)
 
VISP_EXPORT std::istream & operator>> (std::istream &s, usNeedleInsertionModelRayleighRitzSpline &model)
 
VISP_EXPORT std::ostream & operator<<= (std::ostream &s, const usNeedleInsertionModelRayleighRitzSpline &model)
 
VISP_EXPORT std::istream & operator>>= (std::istream &s, usNeedleInsertionModelRayleighRitzSpline &model)
 

Detailed Description

Member Enumeration Documentation

◆ ModelPreset

Enumerator
BiopsyNeedle 
BiopsyCannula 
Symmetric 
AbayazidRRM13 
MisraRSRO10_PlastisolA 
RoesthuisAM12 
SteelSoftTissue 
SRL_ActuatedFBG 
SRL_BiopsySimple 
SRL_BiopsyNID 
NDI_Pink_Stylet 

Definition at line 56 of file usNeedleInsertionModelRayleighRitzSpline.h.

◆ NeedleTipType

Enumerator
SymmetricTip 
BeveledTip 
PrebentTip 
ActuatedTip 

Definition at line 70 of file usNeedleInsertionModelRayleighRitzSpline.h.

◆ PathUpdateType

Enumerator
NoUpdate 
WithTipPosition 
WithTipDirection 
WithTipMix 

Definition at line 69 of file usNeedleInsertionModelRayleighRitzSpline.h.

◆ SolvingMethod

Enumerator
Classic 
FixedBeamLength 
NoBevel 

Definition at line 71 of file usNeedleInsertionModelRayleighRitzSpline.h.

Constructor & Destructor Documentation

◆ usNeedleInsertionModelRayleighRitzSpline() [1/2]

usNeedleInsertionModelRayleighRitzSpline::usNeedleInsertionModelRayleighRitzSpline ( )

Constructors, destructor.

Definition at line 52 of file usNeedleInsertionModelRayleighRitzSpline.cpp.

References m_layerLength, m_stiffnessPerUnitLength, and updateState().

Referenced by clone().

◆ usNeedleInsertionModelRayleighRitzSpline() [2/2]

usNeedleInsertionModelRayleighRitzSpline::usNeedleInsertionModelRayleighRitzSpline ( const usNeedleInsertionModelRayleighRitzSpline model)

Definition at line 62 of file usNeedleInsertionModelRayleighRitzSpline.cpp.

◆ ~usNeedleInsertionModelRayleighRitzSpline()

usNeedleInsertionModelRayleighRitzSpline::~usNeedleInsertionModelRayleighRitzSpline ( )
virtual

Definition at line 75 of file usNeedleInsertionModelRayleighRitzSpline.cpp.

References m_needleTip.

Member Function Documentation

◆ accessNeedle() [1/2]

usNeedleModelSpline & usNeedleInsertionModelRayleighRitzSpline::accessNeedle ( )

Definition at line 238 of file usNeedleInsertionModelRayleighRitzSpline.cpp.

References m_needle.

◆ accessNeedle() [2/2]

◆ accessNeedleTip() [1/2]

usNeedleTip & usNeedleInsertionModelRayleighRitzSpline::accessNeedleTip ( )

Definition at line 242 of file usNeedleInsertionModelRayleighRitzSpline.cpp.

References m_needleTip.

◆ accessNeedleTip() [2/2]

usNeedleTip const & usNeedleInsertionModelRayleighRitzSpline::accessNeedleTip ( ) const

◆ accessTissue() [1/2]

usTissueModelSpline & usNeedleInsertionModelRayleighRitzSpline::accessTissue ( )

Definition at line 246 of file usNeedleInsertionModelRayleighRitzSpline.cpp.

References m_tissue.

◆ accessTissue() [2/2]

◆ addTissueLayer()

bool usNeedleInsertionModelRayleighRitzSpline::addTissueLayer ( double  K,
double  l 
)

◆ clone()

usNeedleInsertionModelRayleighRitzSpline * usNeedleInsertionModelRayleighRitzSpline::clone ( ) const
virtual

◆ cutPathToPoint()

◆ fitLength()

◆ getBasePose()

vpPoseVector usNeedleInsertionModelRayleighRitzSpline::getBasePose ( ) const
virtual

◆ getBasePosition()

vpColVector usNeedleInsertionModelInterface::getBasePosition ( ) const
inherited

◆ getCorrespondingPathPoint()

bool usNeedleInsertionModelRayleighRitzSpline::getCorrespondingPathPoint ( double  l,
int &  correspondingRestIndex,
double &  correspondingRestParam 
) const

◆ getCurvatureFromKinematics()

double usNeedleInsertionModelRayleighRitzSpline::getCurvatureFromKinematics ( ) const

Curvature.

◆ getInsertionDepth()

double usNeedleInsertionModelRayleighRitzSpline::getInsertionDepth ( ) const

◆ getLayerLength()

double usNeedleInsertionModelRayleighRitzSpline::getLayerLength ( int  i) const

◆ getMaxTissueStretch()

◆ getMeanTissueStretch()

◆ getNbCurrentLayers()

int usNeedleInsertionModelRayleighRitzSpline::getNbCurrentLayers ( ) const

◆ getNbLayers()

int usNeedleInsertionModelRayleighRitzSpline::getNbLayers ( ) const

◆ getNeedleFreeLength()

◆ getNeedleInsertionPoint()

vpColVector usNeedleInsertionModelRayleighRitzSpline::getNeedleInsertionPoint ( ) const

◆ getNeedleTipType()

usNeedleInsertionModelRayleighRitzSpline::NeedleTipType usNeedleInsertionModelRayleighRitzSpline::getNeedleTipType ( ) const

◆ getStiffnessPerUnitLength()

double usNeedleInsertionModelRayleighRitzSpline::getStiffnessPerUnitLength ( int  i = 0) const

◆ getSurfaceTissueStretch()

double usNeedleInsertionModelRayleighRitzSpline::getSurfaceTissueStretch ( ) const

◆ getTissueDeformationEnergy()

double usNeedleInsertionModelRayleighRitzSpline::getTissueDeformationEnergy ( ) const

◆ getTissueInsertionPoint()

vpColVector usNeedleInsertionModelRayleighRitzSpline::getTissueInsertionPoint ( ) const

◆ getWorldMbase()

vpHomogeneousMatrix usNeedleInsertionModelInterface::getWorldMbase ( ) const
inherited

◆ IsNeedleInserted()

◆ loadPreset()

◆ moveBase() [1/5]

bool usNeedleInsertionModelInterface::moveBase ( const vpColVector &  v)
inherited

◆ moveBase() [2/5]

◆ moveBase() [3/5]

bool usNeedleInsertionModelInterface::moveBase ( const vpHomogeneousMatrix &  Hmotion)
inherited

◆ moveBase() [4/5]

bool usNeedleInsertionModelInterface::moveBase ( const vpPoseVector &  pose)
inherited

◆ moveBase() [5/5]

bool usNeedleInsertionModelInterface::moveBase ( double  tx,
double  ty,
double  tz,
double  thetax,
double  thetay,
double  thetaz 
)
inherited

◆ moveBaseWorldFrame() [1/5]

bool usNeedleInsertionModelInterface::moveBaseWorldFrame ( const vpColVector &  command,
double  time 
)
inherited

◆ moveBaseWorldFrame() [2/5]

bool usNeedleInsertionModelInterface::moveBaseWorldFrame ( const vpColVector &  v)
inherited

◆ moveBaseWorldFrame() [3/5]

bool usNeedleInsertionModelInterface::moveBaseWorldFrame ( const vpHomogeneousMatrix &  Hmotion)
inherited

◆ moveBaseWorldFrame() [4/5]

bool usNeedleInsertionModelInterface::moveBaseWorldFrame ( const vpPoseVector &  pose)
inherited

◆ moveBaseWorldFrame() [5/5]

bool usNeedleInsertionModelInterface::moveBaseWorldFrame ( double  tx,
double  ty,
double  tz,
double  thetax,
double  thetay,
double  thetaz 
)
inherited

◆ operator=()

◆ setBasePose() [1/6]

bool usNeedleInsertionModelInterface::setBasePose ( const vpHomogeneousMatrix &  Hpose)
inherited

◆ setBasePose() [2/6]

bool usNeedleInsertionModelInterface::setBasePose

Control of the needle.

Definition at line 51 of file usNeedleInsertionModelInterface.cpp.

◆ setBasePose() [3/6]

bool usNeedleInsertionModelRayleighRitzSpline::setBasePose ( const vpPoseVector &  pose)
virtual

◆ setBasePose() [4/6]

virtual bool usNeedleInsertionModelInterface::setBasePose

Control of the needle.

◆ setBasePose() [5/6]

bool usNeedleInsertionModelInterface::setBasePose ( double  tx,
double  ty,
double  tz,
double  thetax,
double  thetay,
double  thetaz 
)
inherited

These function simply overload the previous ones.

Definition at line 40 of file usNeedleInsertionModelInterface.cpp.

References usNeedleInsertionModelInterface::setBasePose().

◆ setBasePose() [6/6]

bool usNeedleInsertionModelInterface::setBasePose

Control of the needle.

Definition at line 50 of file usNeedleInsertionModelInterface.cpp.

◆ setLayerLength()

bool usNeedleInsertionModelRayleighRitzSpline::setLayerLength ( int  i,
double  l 
)

Definition at line 321 of file usNeedleInsertionModelRayleighRitzSpline.cpp.

References m_layerLength.

◆ setNeedleTipType()

void usNeedleInsertionModelRayleighRitzSpline::setNeedleTipType ( NeedleTipType  type)

◆ setPathUpdateLengthThreshold()

void usNeedleInsertionModelRayleighRitzSpline::setPathUpdateLengthThreshold ( double  length)

◆ setPathUpdateMixCoefficient()

void usNeedleInsertionModelRayleighRitzSpline::setPathUpdateMixCoefficient ( double  coef)

◆ setPathUpdateType()

void usNeedleInsertionModelRayleighRitzSpline::setPathUpdateType ( PathUpdateType  type)

◆ setSolvingMethod()

void usNeedleInsertionModelRayleighRitzSpline::setSolvingMethod ( SolvingMethod  method)

◆ setStiffnessPerUnitLength() [1/2]

bool usNeedleInsertionModelRayleighRitzSpline::setStiffnessPerUnitLength ( double  K)

◆ setStiffnessPerUnitLength() [2/2]

bool usNeedleInsertionModelRayleighRitzSpline::setStiffnessPerUnitLength ( int  i,
double  K 
)

◆ setSurfaceAtTip()

void usNeedleInsertionModelRayleighRitzSpline::setSurfaceAtTip ( )

◆ solveSegmentsParameters()

◆ solveSegmentsParametersDense()

◆ solveSegmentsParametersFullSparseEigen()

◆ solveSegmentsParametersFullSparseEigenFixedLength()

◆ solveSegmentsParametersSparseEigen()

◆ updatePath()

◆ updateState()

◆ updateTipPose()

Friends And Related Function Documentation

◆ operator<<

VISP_EXPORT std::ostream& operator<< ( std::ostream &  s,
const usNeedleInsertionModelRayleighRitzSpline model 
)
friend

Data saving.

Text

Definition at line 2557 of file usNeedleInsertionModelRayleighRitzSpline.cpp.

◆ operator<<=

VISP_EXPORT std::ostream& operator<<= ( std::ostream &  s,
const usNeedleInsertionModelRayleighRitzSpline model 
)
friend

Binary.

Definition at line 2659 of file usNeedleInsertionModelRayleighRitzSpline.cpp.

◆ operator>>

VISP_EXPORT std::istream& operator>> ( std::istream &  s,
usNeedleInsertionModelRayleighRitzSpline model 
)
friend

◆ operator>>=

VISP_EXPORT std::istream& operator>>= ( std::istream &  s,
usNeedleInsertionModelRayleighRitzSpline model 
)
friend

Member Data Documentation

◆ m_layerLength

◆ m_needle

◆ m_needleTip

◆ m_needleTipType

NeedleTipType usNeedleInsertionModelRayleighRitzSpline::m_needleTipType

◆ m_pathUpdateLengthThreshold

double usNeedleInsertionModelRayleighRitzSpline::m_pathUpdateLengthThreshold

◆ m_pathUpdateMixCoefficient

double usNeedleInsertionModelRayleighRitzSpline::m_pathUpdateMixCoefficient

◆ m_pathUpdateType

PathUpdateType usNeedleInsertionModelRayleighRitzSpline::m_pathUpdateType

Path update.

Definition at line 91 of file usNeedleInsertionModelRayleighRitzSpline.h.

Referenced by operator=(), setPathUpdateType(), and updatePath().

◆ m_restDilatationFactor

◆ m_solvingMethod

SolvingMethod usNeedleInsertionModelRayleighRitzSpline::m_solvingMethod

Internal.

Linear system solving

Definition at line 101 of file usNeedleInsertionModelRayleighRitzSpline.h.

Referenced by operator=(), setSolvingMethod(), and solveSegmentsParameters().

◆ m_stiffnessPerUnitLength

◆ m_tissue