27#ifndef INC_CINOSMOVEPATHSEGMENT_H
28#define INC_CINOSMOVEPATHSEGMENT_H
89 return (
m_uFlags & DF_INOS_MOVEPATH_FLAG_PURE_LINEAR);
96 return (
m_uFlags & DF_INOS_MOVEPATH_FLAG_PURE_RAPID);
#define DF_INOS_MOVEPATH_VELOCITY_DEFAULT
Definition cinosmovepath.h:51
#define DF_INOS_MOVEPATH_TOLERANCE_DEFAULT
Definition cinosmovepath.h:43
#define DECLARE_DYNAMIC(aClass)
Definition cinospartitionmemory.h:328
Definition cinosmcmodule.h:1900
Definition cinosmovepathcurve.h:56
Definition cinosmovepathsegment.h:45
double GetLength()
get segment length
Definition cinosmovepathsegment.h:52
TINOSMovePathVec m_vStart
segment start position vector
Definition cinosmovepathsegment.h:296
virtual bool IsContinuous(uint32 auLevel)=0
return true if segment is auLevel continuous
virtual void GetPosition(double adP, TINOSMovePathVec &ovPos)=0
get position at 'adP'
uint32 m_uFlags
segment flags
Definition cinosmovepathsegment.h:103
bool IsPureLinear()
return true if segment is pure linear
Definition cinosmovepathsegment.h:86
double GetLength_1()
get segment 1/length
Definition cinosmovepathsegment.h:58
virtual uint32 Prepare(double &adP, uint32 uIncremental, TINOSMovePathVec &ovPos, double adEpsilon)=0
prepare segment
void SetPrevious(CINOSMovePathSegment *apSegment)
set pointer to previous segment in chain
Definition cinosmovepathsegment.h:162
double GetStart()
get segment start
Definition cinosmovepathsegment.h:177
CINOSMovePathSegment * GetPrevious()
get pointer to previous segment in chain
Definition cinosmovepathsegment.h:155
double GetTolerance()
get segment tolerance
Definition cinosmovepathsegment.h:199
void SetFlags(uint32 auFlags)
set flags
Definition cinosmovepathsegment.h:79
uint32 GetInvolved()
get involved axes
Definition cinosmovepathsegment.h:170
double m_dTolerance
tolerance
Definition cinosmovepathsegment.h:287
uint32 m_uInvolved
involved axes
Definition cinosmovepathsegment.h:279
virtual void GetD3max(TINOSMovePathVec &ovDir)=0
get max 3rd derivative of segment
uint32 m_uId
segment id
Definition cinosmovepathsegment.h:109
virtual void SetStart(double &adP)
set segment start, adjusts segment end accordingly and sets adP to new end.
Definition cinosmovepathsegment.h:184
virtual void GetDerivative(uint32 auLevel, double adP, TINOSMovePathVec &ovDir)=0
get auLevel derivative at 'adP'
virtual ~CINOSMovePathSegment()
destructor
Definition cinosmovepathsegment.h:266
virtual void GetPositionFirst(TINOSMovePathVec &ovPos)
get start position
Definition cinosmovepathsegment.h:118
virtual bool IsEndBlendingAllowed()
return true if end blending allowed
Definition cinosmovepathsegment.h:235
uint32 GetId()
get segment id
Definition cinosmovepathsegment.h:65
CINOSMovePathSegment * m_pPrvSegment
pointer to previous segment in chain
Definition cinosmovepathsegment.h:303
uint32 m_uIncremental
incremental mask (bit = 1 -> corresponding part is incremental)
Definition cinosmovepathsegment.h:283
bool IsPureRapid()
return true if segment is pure linear
Definition cinosmovepathsegment.h:93
uint32 m_uAbsolute
absolute mask (bit = 1 -> corresponding part is absolute)
Definition cinosmovepathsegment.h:281
double m_dEnd
segment end position
Definition cinosmovepathsegment.h:294
double m_dLength_1
segment 1/length
Definition cinosmovepathsegment.h:107
CINOSMovePathSegment * GetNext()
get pointer to next segment in chain
Definition cinosmovepathsegment.h:141
virtual uint32 Check()=0
check segment integrity (called before added to curve)
virtual void GetDerivativeBgn(uint32 auLevel, TINOSMovePathVec &ovDir)=0
get auLevel derivative at segment begin
virtual void GetD2max(TINOSMovePathVec &ovDir)=0
get max 2nd derivative of segment
void SetNext(CINOSMovePathSegment *apSegment)
set pointer to next segment in chain
Definition cinosmovepathsegment.h:148
double m_dLength
segment length
Definition cinosmovepathsegment.h:105
double GetVelocity()
get segment velocity
Definition cinosmovepathsegment.h:206
TINOSMovePathVec m_vEnd
segment end position vector
Definition cinosmovepathsegment.h:298
double m_dVelocity
velocity
Definition cinosmovepathsegment.h:289
virtual void GetPositionLast(TINOSMovePathVec &ovPos)
get end position
Definition cinosmovepathsegment.h:124
CINOSMovePathSegment()
constructor
Definition cinosmovepathsegment.h:252
CINOSMovePathSegment(uint32 auId, uint32 auFlags, double adTolerance, double adVelocity)
constructor
Definition cinosmovepathsegment.h:259
virtual bool IsStartBlendingAllowed()
return true if start blending allowed
Definition cinosmovepathsegment.h:228
uint32 GetLengthMask()
get segment length mask
Definition cinosmovepathsegment.h:213
virtual void Recalc(double &adP, TINOSMovePathVec &ovStart, uint32 auInvolved, double adEpsilon)=0
recalc segment
double m_dStart
segment start position
Definition cinosmovepathsegment.h:292
uint32 m_uLengthMask
length mask (bit = 1 -> corresponding part is NOT length relevant)
Definition cinosmovepathsegment.h:285
double GetEnd()
get segment end
Definition cinosmovepathsegment.h:192
CINOSMovePathSegment * m_pNxtSegment
pointer to next segment in chain
Definition cinosmovepathsegment.h:301
virtual void GetDerivativeEnd(uint32 auLevel, TINOSMovePathVec &ovDir)=0
get auLevel derivative at segment end
uint32 GetFlags()
get flags
Definition cinosmovepathsegment.h:72
Definition cinosmovepath.h:566