INOS
CINOSMovePathInterpolator Class Reference
Inheritance diagram for CINOSMovePathInterpolator:

Public Types

typedef std::function< CINOSMovePathInterpolator *(CINOSMovePathCurve *, CINOSMovePath *)> TINOSInterpolatorConstructor
 

Public Member Functions

virtual void GetPosition (double adP, CINOSMovePathSegment *&opSegment, TINOSMovePathVec &ovPos)
 get position vector at 'adP'
 
virtual void GetDirection (double adP, TINOSMovePathVec &ovDir)
 get direction vector at 'adP'
 
virtual void GetDirectionLast (TINOSMovePathVec &ovDir)
 get direction vector at the end
 
virtual void GetDerivative (uint32 auLevel, double adP, TINOSMovePathVec &ovDer)
 get auLevel derivative vector at 'adP'
 
virtual void GetD2max (double adBgn, double adEnd, TINOSMovePathVec &aD2max)
 get max D2 vector of given range
 
virtual void GetD3max (double adBgn, double adEnd, TINOSMovePathVec &aD3max)
 get max D3 vector of given range
 
virtual double GetCurveLength ()
 get curve length
 
virtual bool IsCurveContinuous (uint32 auLevel)
 check if curve continuous
 
virtual uint32 Prepare ()
 do precalculation
 
CINOSMovePathInterpolatorSegmentGetFirstSegment ()
 
CINOSMovePathInterpolatorSegmentGetLastSegment ()
 
void AddSegment (CINOSMovePathInterpolatorSegment *apSegment)
 
virtual uint32 ConnectSegments (CINOSMovePathInterpolator *apOther)
 
virtual ~CINOSMovePathInterpolator ()
 destructor
 

Static Public Member Functions

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

typedef std::map< std::string, TINOSInterpolatorConstructor > TINOSInterpolatorMap
 

Protected Member Functions

 CINOSMovePathInterpolator (CINOSMovePathCurve *apCurve, class CINOSMovePath *apPath=NULL)
 constructor
 
virtual void Cleanup ()
 cleanup
 
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)
 

Static Protected Member Functions

static TINOSInterpolatorMap & GetInterpolatorsMap ()
 get interpolatos map, to avoid inserting before initialization
 

Protected Attributes

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
 

Friends

class CINOSMovePath
 

Member Function Documentation

◆ Cleanup()

virtual void CINOSMovePathInterpolator::Cleanup ( )
protectedvirtual

◆ GetCurveLength()

virtual double CINOSMovePathInterpolator::GetCurveLength ( )
virtual

get curve length

Reimplemented in CINOSMovePathInterpolatorNurbs, and CINOSMovePathInterpolatorShape.

◆ GetD2max()

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

get max D2 vector of given range

Reimplemented in CINOSMovePathInterpolatorNurbs.

◆ GetD3max()

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

get max D3 vector of given range

Reimplemented in CINOSMovePathInterpolatorNurbs.

◆ GetDerivative()

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

get auLevel derivative vector at 'adP'

Reimplemented in CINOSMovePathInterpolatorNurbs.

◆ GetDirection()

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

get direction vector at 'adP'

Reimplemented in CINOSMovePathInterpolatorNurbs.

◆ GetDirectionLast()

virtual void CINOSMovePathInterpolator::GetDirectionLast ( TINOSMovePathVec &  ovDir)
virtual

get direction vector at the end

Reimplemented in CINOSMovePathInterpolatorNurbs.

◆ GetPosition()

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

◆ IsCurveContinuous()

virtual bool CINOSMovePathInterpolator::IsCurveContinuous ( uint32  auLevel)
inlinevirtual

◆ Prepare()


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