27#ifndef INC_CINOSMOVEPATHCURVE_H
28#define INC_CINOSMOVEPATHCURVE_H
205 void ClearFlags(uint32
auFlags)
247 return (
m_uFlags & DF_INOS_MOVEPATH_FLAG_PURE_LINEAR);
250 virtual bool IsIncomplete()
255 virtual bool IsContinuation()
340 virtual void DestroySegments();
#define DF_INOS_MOVEPATH_VELOCITY_DEFAULT
Definition cinosmovepath.h:51
#define DF_INOS_MOVEPATH_FLAG_RELOCATABLE
Definition cinosmovepath.h:105
#define DF_INOS_MOVEPATH_FLAG_INCOMPLETE
Definition cinosmovepath.h:94
#define DF_INOS_MOVEPATH_FLAG_INC
Definition cinosmovepath.h:63
#define DF_INOS_MOVEPATH_FLAG_CONTINUATION
Definition cinosmovepath.h:90
#define DF_INOS_MOVEPATH_TOLERANCE_DEFAULT
Definition cinosmovepath.h:43
#define DF_INOS_MOVEPATH_FLAG_OFFSET_ZERO
Definition cinosmovepath.h:100
The CINOSMovePathInterpolator class.
#define DECLARE_DYNAMIC(aClass)
Definition cinospartitionmemory.h:328
Definition cinosmcmodule.h:1900
Definition cinosmovepathcurve.h:56
void RemSegment(CINOSMovePathSegment *apSegment, bool abDelete=true)
remove segment from curve
uint32 m_uRegisterCnt
inco tree registration counter
Definition cinosmovepathcurve.h:390
double GetTolerance()
get curve tolerance
Definition cinosmovepathcurve.h:269
void GetStart(TINOSMovePathVec &ovPos)
get start position vector
Definition cinosmovepathcurve.h:164
uint32 m_uFlags
flags
Definition cinosmovepathcurve.h:362
void GetDirectionLast(TINOSMovePathVec &ovDir)
get last position vector
uint32 GetSegmentId(double adP)
get id of segment at 'adP'
virtual bool IsPureLinear()
return true if curve is pure linear
Definition cinosmovepathcurve.h:245
CINOSMovePathSegment * GetSegmentFirst()
get pointer to first segment
Definition cinosmovepathcurve.h:89
void InsSegment(CINOSMovePathSegment *apStart, CINOSMovePathSegment *apSegment)
insert segment in curve after apStart or at the beginning if apStart == 0
void GetPositionLast(TINOSMovePathVec &ovPos)
get last position vector
double m_dVelocity
curve velocity
Definition cinosmovepathcurve.h:372
virtual uint32 Prepare(TINOSMovePathVec &ivAct, double &adActP, double adTolerance, double adEpsilon)
do precalculation with actual position vector
bool GetD2max(double adP, TINOSMovePathVec &ovDir)
get D2 max of segment containing 'adP'
uint32 m_uLstIndex
last search index
Definition cinosmovepathcurve.h:376
virtual bool IsRelocatable()
return true if curve is relocatable
Definition cinosmovepathcurve.h:233
double m_dLstP
last search P
Definition cinosmovepathcurve.h:379
CINOSMovePathInterpolator * m_pInterpolator
pointer to interpolator
Definition cinosmovepathcurve.h:360
CINCOObject * m_pRegister
pointer to inco registration
Definition cinosmovepathcurve.h:392
void SetStart(TINOSMovePathVec &ivPos)
set start position vector
Definition cinosmovepathcurve.h:143
TINOSMovePathVec m_vActual
actual position vector (used at prepare)
Definition cinosmovepathcurve.h:387
virtual bool IsZeroBased()
return true if curve is zero based
Definition cinosmovepathcurve.h:239
void ReleaseRegister()
release inco registration
uint32 m_uSegments
number of segments
Definition cinosmovepathcurve.h:364
uint32 GetInvolved()
get involved axes
Definition cinosmovepathcurve.h:226
uint32 AddSegment(CINOSMovePathSegment *apSegment)
add segment to curve
double m_dLength
curve length
Definition cinosmovepathcurve.h:368
double GetVelocity(double adP)
get commanded curve velocity at given position
uint32 m_uInvolved
involved axes
Definition cinosmovepathcurve.h:366
bool GetDirection(double adP, TINOSMovePathVec &ovDir)
get direction vector at 'adP'
CINOSMovePathCurve()
constructor
Definition cinosmovepathcurve.h:304
double GetVelocity(CINOSMovePathSegment *apSegment, double adDefaultVelocity=DF_INOS_MOVEPATH_VELOCITY_DEFAULT)
get segment velocity
double GetVelocity()
get commanded curve velocity
Definition cinosmovepathcurve.h:280
virtual double GetLength()
get curve length
Definition cinosmovepathcurve.h:171
virtual uint32 GetSegments()
get number of segments
Definition cinosmovepathcurve.h:185
virtual bool IsContinuous(uint32 auLevel)
return true if curve is requested level continuous
CINOSMovePathSegment * m_pFstSegment
pointer to head of curve segments
Definition cinosmovepathcurve.h:395
void RemSegment(CINOSMovePathSegment *apFirst, CINOSMovePathSegment *apLast)
remove segments from curve (excluding apFirst and apLast)
virtual ~CINOSMovePathCurve()
destructor
Definition cinosmovepathcurve.h:322
CINCOObject * GetRegister()
get pointer to inco registration (if any)
Definition cinosmovepathcurve.h:352
virtual uint32 Recalc(CINOSMovePathSegment *apSegment, double adEpsilon)
recalculate curve starting at end of segment apSegment
void GetPositionFirst(TINOSMovePathVec &ovPos)
get start position vector
CINOSMovePathSegment * GetSegment(uint32 auIndex)
get pointer to segment auIndex
bool GetPosition(double adP, TINOSMovePathVec &ovPos)
get position vector at 'adP'
CINOSMovePathSegment * m_pLstSegment
pointer to tail of curve segments
Definition cinosmovepathcurve.h:397
void GetPositionLast(CINOSMovePathSegment *&opSegment, TINOSMovePathVec &ovPos)
get last position vector
CINOSMovePathSegment * GetSegment(double adP)
get pointer to segment at 'adP'
bool GetPosition(double &adP, CINOSMovePathSegment *&opSegment, TINOSMovePathVec &ovPos)
get position vector at 'adP'
bool GetPosition(uint32 auIndex, TINOSMovePathVec &ovPos)
get position vector auIndex
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
virtual void SetLength(double dLength)
get curve length
Definition cinosmovepathcurve.h:178
double GetTolerance(CINOSMovePathSegment *apSegment, double adDefaultTolerance=DF_INOS_MOVEPATH_TOLERANCE_DEFAULT)
get segment tolerance
uint32 GetFlags()
get flags
Definition cinosmovepathcurve.h:192
bool GetD3max(double adP, TINOSMovePathVec &ovDir)
get D3 max of segment containing 'adP'
void SetFlags(uint32 auFlags)
set flags
Definition cinosmovepathcurve.h:199
CINOSMovePathSegment * GetSegmentLast()
get pointer to last segment
Definition cinosmovepathcurve.h:96
double m_dTolerance
curve tolerance
Definition cinosmovepathcurve.h:370
TINOSMovePathVec m_vStart
start position vector
Definition cinosmovepathcurve.h:385
virtual CINCOObject * RequestRegister()
return pointer to inco registration
void SetStart(uint8 auIndex, double adPosition)
set start position of axis auIndex
Definition cinosmovepathcurve.h:152
virtual bool IsContinuous(CINOSMovePathSegment *apSeg1, CINOSMovePathSegment *apSeg2, uint32 auLevel)
return true if curve is requested level continuous
void GetDerivative(uint32 auLevel, double adP, TINOSMovePathVec &ovDer)
get auLevel derivative at 'adP'
uint32 m_uStartValid
pattern of valid startpos indexes
Definition cinosmovepathcurve.h:383
Definition cinosmovepathinterpolator.h:82
Definition cinosmovepathsegment.h:45
Definition cinosmovepath.h:566
#define DF_INOS_MOVEPATH_MAX_AXES
Definition inosdefault.h:144