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);
 
 
  116        virtual void GetPosition(
double adP, TINOSMovePathVec& ovPos) = 0;
 
  130        virtual void GetDerivative(uint32 auLevel, 
double adP, TINOSMovePathVec& ovDir) = 0;
 
  132        virtual void GetD2max(TINOSMovePathVec& ovDir) = 0;
 
  134        virtual void GetD3max(TINOSMovePathVec& ovDir) = 0;
 
  222        virtual uint32 
Prepare(
double& adP, uint32 uIncremental, TINOSMovePathVec& ovPos, 
double adEpsilon) = 0;
 
  225        virtual void Recalc(
double& adP, TINOSMovePathVec& ovStart, uint32 auInvolved, 
double adEpsilon) = 0;
 
  263            Init(auId, auFlags|DF_INOS_MOVEPATH_FLAG_PURE_LINEAR, adTolerance, adVelocity);
 
 
  274        void Init (uint32 auId, uint32 auFlags, 
double adTolerance,
 
 
#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 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:550