INOS
CINOSMovePathCurve Class Reference

Public Member Functions

uint32 AddSegment (CINOSMovePathSegment *apSegment)
 add segment to curve
 
void RemSegment (CINOSMovePathSegment *apSegment, bool abDelete=true)
 remove segment from curve
 
void RemSegment (CINOSMovePathSegment *apFirst, CINOSMovePathSegment *apLast)
 remove segments from curve (excluding apFirst and apLast)
 
void InsSegment (CINOSMovePathSegment *apStart, CINOSMovePathSegment *apSegment)
 insert segment in curve after apStart or at the beginning if apStart == 0
 
uint32 AppendCurve (CINOSMovePathCurve *apOtherCurve)
 
CINOSMovePathSegmentGetSegment (uint32 auIndex)
 get pointer to segment auIndex
 
CINOSMovePathSegmentGetSegment (double adP)
 get pointer to segment at 'adP'
 
uint32 GetSegmentId (double adP)
 get id of segment at 'adP'
 
CINOSMovePathSegmentGetSegmentFirst ()
 get pointer to first segment
 
CINOSMovePathSegmentGetSegmentLast ()
 get pointer to last segment
 
bool GetPosition (uint32 auIndex, TINOSMovePathVec &ovPos)
 get position vector auIndex
 
bool GetPosition (double adP, TINOSMovePathVec &ovPos)
 get position vector at 'adP'
 
bool GetPosition (double &adP, CINOSMovePathSegment *&opSegment, TINOSMovePathVec &ovPos)
 get position vector at 'adP'
 
bool GetDirection (double adP, TINOSMovePathVec &ovDir)
 get direction vector at 'adP'
 
void GetDirectionLast (TINOSMovePathVec &ovDir)
 get last position vector
 
void GetDerivative (uint32 auLevel, double adP, TINOSMovePathVec &ovDer)
 get auLevel derivative at 'adP'
 
bool GetD2max (double adP, TINOSMovePathVec &ovDir)
 get D2 max of segment containing 'adP'
 
bool GetD3max (double adP, TINOSMovePathVec &ovDir)
 get D3 max of segment containing 'adP'
 
void GetPositionFirst (TINOSMovePathVec &ovPos)
 get start position vector
 
void GetPositionLast (TINOSMovePathVec &ovPos)
 get last position vector
 
void GetPositionLast (CINOSMovePathSegment *&opSegment, TINOSMovePathVec &ovPos)
 get last position vector
 
void SetStart (TINOSMovePathVec &ivPos)
 set start position vector
 
void SetStart (uint8 auIndex, double adPosition)
 set start position of axis auIndex
 
void GetStart (TINOSMovePathVec &ovPos)
 get start position vector
 
virtual double GetLength ()
 get curve length
 
virtual void SetLength (double dLength)
 get curve length
 
virtual uint32 GetSegments ()
 get number of segments
 
uint32 GetFlags ()
 get flags
 
void SetFlags (uint32 auFlags)
 set flags
 
void ClearFlags (uint32 auFlags)
 
virtual uint32 Recalc (CINOSMovePathSegment *apSegment, double adEpsilon)
 recalculate curve starting at end of segment apSegment
 
virtual uint32 Prepare (TINOSMovePathVec &ivAct, double &adActP, double adTolerance, double adEpsilon)
 do precalculation with actual position vector
 
virtual void Reset (uint32 auFlags=DF_INOS_MOVEPATH_FLAG_INC|DF_INOS_MOVEPATH_FLAG_RELOCATABLE|DF_INOS_MOVEPATH_FLAG_PURE_LINEAR, double adTolerance=DF_INOS_MOVEPATH_TOLERANCE_DEFAULT, double adVelocity=DF_INOS_MOVEPATH_VELOCITY_DEFAULT)
 reset curve
 
uint32 GetInvolved ()
 get involved axes
 
virtual bool IsRelocatable ()
 return true if curve is relocatable
 
virtual bool IsZeroBased ()
 return true if curve is zero based
 
virtual bool IsPureLinear ()
 return true if curve is pure linear
 
virtual bool IsIncomplete ()
 
virtual bool IsContinuation ()
 
virtual bool IsContinuous (uint32 auLevel)
 return true if curve is requested level continuous
 
virtual bool IsContinuous (CINOSMovePathSegment *apSeg1, CINOSMovePathSegment *apSeg2, uint32 auLevel)
 return true if curve is requested level continuous
 
double GetTolerance ()
 get curve tolerance
 
double GetTolerance (CINOSMovePathSegment *apSegment, double adDefaultTolerance=DF_INOS_MOVEPATH_TOLERANCE_DEFAULT)
 get segment tolerance
 
double GetVelocity ()
 get commanded curve velocity
 
double GetVelocity (double adP)
 get commanded curve velocity at given position
 
double GetVelocity (CINOSMovePathSegment *apSegment, double adDefaultVelocity=DF_INOS_MOVEPATH_VELOCITY_DEFAULT)
 get segment velocity
 
CINOSMovePathInterpolatorGetInterpolator ()
 
 CINOSMovePathCurve ()
 constructor
 
virtual ~CINOSMovePathCurve ()
 destructor
 
virtual uint32 SetInterpolator (CINOSMovePathInterpolator *apInterpolator)
 
virtual void DestroySegments ()
 
virtual CINCOObject * RequestRegister ()
 return pointer to inco registration
 
void ReleaseRegister ()
 release inco registration
 

Protected Member Functions

CINCOObject * GetRegister ()
 get pointer to inco registration (if any)
 
 DECLARE_DYNAMIC (CINOSMovePathCurve)
 

Protected Attributes

CINOSMovePathInterpolatorm_pInterpolator
 pointer to interpolator
 
uint32 m_uFlags
 flags
 
uint32 m_uSegments
 number of segments
 
uint32 m_uInvolved
 involved axes
 
double m_dLength
 curve length
 
double m_dTolerance
 curve tolerance
 
double m_dVelocity
 curve velocity
 
uint32 m_uLstIndex
 last search index
 
CINOSMovePathSegmentm_pLstIndex
 
double m_dLstP
 last search P
 
CINOSMovePathSegmentm_pLstP
 
uint32 m_uStartValid
 pattern of valid startpos indexes
 
TINOSMovePathVec m_vStart
 start position vector
 
TINOSMovePathVec m_vActual
 actual position vector (used at prepare)
 
uint32 m_uRegisterCnt = 0
 inco tree registration counter
 
CINCOObject * m_pRegister = nullptr
 pointer to inco registration
 
CINOSMovePathSegmentm_pFstSegment
 pointer to head of curve segments
 
CINOSMovePathSegmentm_pLstSegment
 pointer to tail of curve segments
 

Friends

class CINOSMovePath
 

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