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
 
CINOSMovePathInterpolatorSegment * GetFirstSegment ()
 
CINOSMovePathInterpolatorSegment * GetLastSegment ()
 
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 CINOSMovePathInterpolatorSegment * m_pFirstSegment = nullptr
 array of interpolator segments
 
class CINOSMovePathInterpolatorSegment * m_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()

virtual uint32 CINOSMovePathInterpolator::Prepare ( )
virtual

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