33 #ifndef __usNeedleModelSpline_h_
34 #define __usNeedleModelSpline_h_
38 #include <visp3/core/vpColVector.h>
40 #include <visp3/ustk_core/usBSpline3D.h>
41 #include <visp3/ustk_needle_modeling/usNeedleModelBaseTip.h>
51 MisraRSRO10_PlastisolA,
80 void loadPreset(
const NeedlePreset preset);
86 void setFullLength(
double length);
87 double getFullLength()
const;
89 void setOuterDiameter(
double diameter);
90 double getOuterDiameter()
const;
92 void setInsideDiameter(
double diameter);
93 double getInsideDiameter()
const;
95 void setNeedleYoungModulus(
double E);
96 double getNeedleYoungModulus()
const;
108 vpColVector getNeedlePoint(
double l)
const;
109 vpColVector getNeedleDirection(
double l)
const;
111 double getDistanceFromPoint(
const vpColVector &P,
double start = 0,
double stop = -1,
double threshold = 1e-5)
const;
115 double getBendingEnergy()
const;
119 vpColVector getBaseStaticTorsor()
const;
123 double getCurvatureFromNeedleShape(
double start,
double end, vpColVector ¢er3D, vpColVector &direction3D)
const;
127 void showNeedlePoints()
const;
128 void showNeedleDirections()
const;
129 void showNeedleSegmentCoef()
const;
130 void showNeedleSegmentLength()
const;
friend VISP_EXPORT std::istream & operator>>(std::istream &s, usBSpline3D &spline)
friend VISP_EXPORT std::ostream & operator<<(std::ostream &s, const usBSpline3D &spline)
Data saving.
friend VISP_EXPORT std::ostream & operator<<=(std::ostream &s, const usBSpline3D &spline)
Binary.
double getDistanceFromPoint(const vpColVector &point, double start=0, double stop=-1, double threshold=1e-5) const
const usBSpline3D & operator=(const usBSpline3D &spline)
friend VISP_EXPORT std::istream & operator>>=(std::istream &s, usBSpline3D &spline)
virtual usNeedleModelSpline * clone() const
double m_length
Needle parameters.
double m_needleYoungModulus