INOS
CINOSMovePathInterpolatorNurbs Class Reference
Inheritance diagram for CINOSMovePathInterpolatorNurbs:

Public Member Functions

virtual double GetCurveLength () override
 get curve length
 
virtual void GetPosition (double adP, CINOSMovePathSegment *&opSegment, TINOSMovePathVec &ovPos) override
 get position vector at 'adP'
 
virtual void GetDirection (double adP, TINOSMovePathVec &ovDir) override
 get direction vector at 'adP'
 
virtual void GetDirectionLast (TINOSMovePathVec &ovDir) override
 get direction vector at the end
 
virtual void GetDerivative (uint32 auLevel, double adP, TINOSMovePathVec &ovDer) override
 get auLevel derivative vector at 'adP'
 
virtual void GetD2max (double adBgn, double adEnd, TINOSMovePathVec &aD2max) override
 get max D2 vector of given range
 
virtual void GetD3max (double adBgn, double adEnd, TINOSMovePathVec &aD3max) override
 get max D3 vector of given range
 
virtual uint32 Prepare () override
 do precalculation
 
 CINOSMovePathInterpolatorNurbs (CINOSMovePathCurve *apCurve, CINOSMovePath *apPath=NULL)
 constructor
 
virtual ~CINOSMovePathInterpolatorNurbs ()
 destructor
 
virtual uint32 PreparePart (CINOSMovePathSegmentBase *apBgn, CINOSMovePathSegmentBase *apEnd, CINOSMovePathSegmentBase *apNxt, double adTolerance, double adShorten=0.0, double adExtend=0.0)
 prepare part
 
virtual SINOSNurbsPartGetPart (double adP)
 get part
 
virtual double CalcAngle (CINOSMovePathSegment *apSeg1, CINOSMovePathSegment *apSeg2)
 calc angle between segments
 
uint32 GetPartPoints (CINOSMovePathSegmentBase *apBgn, CINOSMovePathSegmentBase *apEnd, double adTolerance)
 get number of part points
 
- Public Member Functions inherited from CINOSMovePathInterpolator
virtual bool IsCurveContinuous (uint32 auLevel)
 check if curve continuous
 
CINOSMovePathInterpolatorSegmentGetFirstSegment ()
 
CINOSMovePathInterpolatorSegmentGetLastSegment ()
 
void AddSegment (CINOSMovePathInterpolatorSegment *apSegment)
 
virtual uint32 ConnectSegments (CINOSMovePathInterpolator *apOther)
 
virtual ~CINOSMovePathInterpolator ()
 destructor
 

Protected Member Functions

virtual void Cleanup () override
 cleanup
 
 DECLARE_DYNAMIC (CINOSMovePathInterpolatorNurbs)
 
- Protected Member Functions inherited from CINOSMovePathInterpolator
 CINOSMovePathInterpolator (CINOSMovePathCurve *apCurve, class CINOSMovePath *apPath=NULL)
 constructor
 
class CINOSMovePathGetPath ()
 get pointer to my path
 
void SetPath (class CINOSMovePath *apPath)
 set pointer to my path
 
class CINOSMovePathCurveGetCurve ()
 get pointer to my curve
 
bool IsContinuous (CINOSMovePathSegment *apSegment1, CINOSMovePathSegment *apSegment2, uint32 auLevel)
 return true if segment 1 and 2 are auLevel continuous
 
bool IsBlendingRequired (CINOSMovePathSegment *apSegment1, CINOSMovePathSegment *apSegment2)
 return true if blending between segment 1 and 2 required
 
bool IsBlendingAllowed (CINOSMovePathSegment *apSegment1, CINOSMovePathSegment *apSegment2)
 return true if blending between segment 1 and 2 allowed
 
virtual CINCOObject * RequestRegister ()
 return pointer to inco registration
 
void ReleaseRegister ()
 release inco registration
 
CINCOObject * GetRegister ()
 get pointer to inco registration (if any)
 
 DECLARE_DYNAMIC (CINOSMovePathInterpolator)
 

Protected Attributes

double m_dLength
 curve length
 
uint32 m_uParts
 number of parts
 
uint32 m_uLastPart
 last part index
 
SINOSNurbsPartm_pPart [DF_INOS_MOVEPATH_MAX_POINTS]
 array of parts
 
double m_dVectorLength [DF_INOS_MOVEPATH_MAX_POINTS > >1]
 sub parts vector lengths
 
double m_dVectorize
 vectorize factor
 
uint32 m_uInterpolationPoints = DF_INOS_NURBSCURVE_INTERPOLATION_POINTS
 nurbs interpolation points
 
bool m_bOverlapPos {}
 overlap position valid
 
TINOSMovePathVec m_OverlapPos {}
 overlap position
 
double m_dOverlapExtend {}
 overlap reduce length
 
- Protected Attributes inherited from CINOSMovePathInterpolator
inosName32 m_cType
 interpolator type
 
class CINOSMovePathm_pPath
 pointer to my path
 
char m_cSpeedSet [64]
 speedset name
 
SINOSRampParam m_sSpeedSet
 speedset
 
double m_dTolerance
 requested tolerance
 
double m_dCycleTime
 cycle time
 
double m_dCycleTime_1
 inverse cycle time
 
uint32 m_uRegisterCnt = 0
 inco tree registration counter
 
CINCOObject * m_pRegister = nullptr
 pointer to inco registration
 
CINOSMovePathCurvem_pCurve
 
class CINOSMovePathInterpolatorSegmentm_pFirstSegment = nullptr
 array of interpolator segments
 
class CINOSMovePathInterpolatorSegmentm_pLastSegment = nullptr
 

Additional Inherited Members

- Public Types inherited from CINOSMovePathInterpolator
typedef std::function< CINOSMovePathInterpolator *(CINOSMovePathCurve *, CINOSMovePath *)> TINOSInterpolatorConstructor
 
- Static Public Member Functions inherited from CINOSMovePathInterpolator
static CINOSMovePathInterpolatorCreateInterpolator (const char *apInterpolatorType, CINOSMovePathCurve *apCurve, CINOSMovePath *apMovePath)
 
static int AddInterpolator (const char *apInterpolatorType, const TINOSInterpolatorConstructor &constructor_call)
 add new interpolator constructor to the interplators map
 
static bool CheckInterpolatorType (const char *apInterpolatorType)
 check if an interpolator with the given name is in the interpolators map
 
- Protected Types inherited from CINOSMovePathInterpolator
typedef std::map< std::string, TINOSInterpolatorConstructor > TINOSInterpolatorMap
 
- Static Protected Member Functions inherited from CINOSMovePathInterpolator
static TINOSInterpolatorMap & GetInterpolatorsMap ()
 get interpolatos map, to avoid inserting before initialization
 

Member Function Documentation

◆ Cleanup()

virtual void CINOSMovePathInterpolatorNurbs::Cleanup ( )
overrideprotectedvirtual

cleanup

Reimplemented from CINOSMovePathInterpolator.

◆ GetCurveLength()

virtual double CINOSMovePathInterpolatorNurbs::GetCurveLength ( )
overridevirtual

get curve length

Reimplemented from CINOSMovePathInterpolator.

◆ GetD2max()

virtual void CINOSMovePathInterpolatorNurbs::GetD2max ( double  adBgn,
double  adEnd,
TINOSMovePathVec &  aD2max 
)
overridevirtual

get max D2 vector of given range

Reimplemented from CINOSMovePathInterpolator.

◆ GetD3max()

virtual void CINOSMovePathInterpolatorNurbs::GetD3max ( double  adBgn,
double  adEnd,
TINOSMovePathVec &  aD3max 
)
overridevirtual

get max D3 vector of given range

Reimplemented from CINOSMovePathInterpolator.

◆ GetDerivative()

virtual void CINOSMovePathInterpolatorNurbs::GetDerivative ( uint32  auLevel,
double  adP,
TINOSMovePathVec &  ovDer 
)
overridevirtual

get auLevel derivative vector at 'adP'

Reimplemented from CINOSMovePathInterpolator.

◆ GetDirection()

virtual void CINOSMovePathInterpolatorNurbs::GetDirection ( double  adP,
TINOSMovePathVec &  ovDir 
)
overridevirtual

get direction vector at 'adP'

Reimplemented from CINOSMovePathInterpolator.

◆ GetDirectionLast()

virtual void CINOSMovePathInterpolatorNurbs::GetDirectionLast ( TINOSMovePathVec &  ovDir)
overridevirtual

get direction vector at the end

Reimplemented from CINOSMovePathInterpolator.

◆ GetPosition()

virtual void CINOSMovePathInterpolatorNurbs::GetPosition ( double  adP,
CINOSMovePathSegment *&  opSegment,
TINOSMovePathVec &  ovPos 
)
overridevirtual

get position vector at 'adP'

Reimplemented from CINOSMovePathInterpolator.

◆ Prepare()

virtual uint32 CINOSMovePathInterpolatorNurbs::Prepare ( )
overridevirtual

do precalculation

Reimplemented from CINOSMovePathInterpolator.


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