INOS
cinosmovepathpart.h
Go to the documentation of this file.
1//******************************************************************************
26//******************************************************************************
27#ifndef INC_CINOSMOVEPATHPART_H
28#define INC_CINOSMOVEPATHPART_H
29//------------------------------------------------------------------------------
30// includes
31//------------------------------------------------------------------------------
32//
33// system
34#include <inos.h>
35//
36// C++
37//
38// project
39//
40//------------------------------------------------------------------------------
41// class definition
42//------------------------------------------------------------------------------
43//
45{
46 //--- user interface ---------------------------------------------------
47
48 // public member functions
49 public :
50
51 // official supported part types
52 enum {
53 eTypeUnknown,
54 eTypeLinear,
55 eTypeLinearBay,
56 eTypeCircle,
57 eTypeRapid
58 };
59
62 {
63 // return type
64 return m_uType;
65 }
66
68 virtual uint8 GetMainAxisIndex() = 0;
70 virtual uint32 GetInvolved() = 0;
71
73 virtual double Prepare(uint32 auIncremental, double* apPosition) = 0;
74
76 virtual void GetPosition(double adP, double* apPosition) = 0;
78 virtual void GetDerivative(uint32 auLevel, double adP, double* apDirection) = 0;
80 virtual void GetD2max(double* apD2max) = 0;
82 virtual void GetD3max(double* apD2max) = 0;
84 virtual double GetMaxVectorLength(double adError)
85 {
86 // not available
87 return 0.0;
88 }
89
92 {
93 // default is no
94 return false;
95 }
96
98 virtual bool IsEndBlendingAllowed()
99 {
100 // default is no
101 return false;
102 }
103
105 virtual bool IsContinuous(uint32 auLevel)
106 {
107 // default is yes
108 return true;
109 }
110 //--- internals --------------------------------------------------------
111
112 friend class CINOSMovePath;
113
114 // constructor / destructor
115 public :
117 CINOSMovePathPart () : m_uType(eTypeUnknown), m_pSegment(0)
118 {
119 }
126 {
127 }
128
131 {
132 // set pointer
134 }
135
136
137 // protected members
138 protected :
143
144 // dynamic object handling
146};
147
148//------------------------------------------------------------------------------
149// end of file
150//------------------------------------------------------------------------------
151
152#endif // INC_CINOSMOVEPATHPART_H
#define DECLARE_DYNAMIC(aClass)
Definition cinospartitionmemory.h:328
Definition cinosmcmodule.h:1900
Definition cinosmovepathpart.h:45
virtual void GetPosition(double adP, double *apPosition)=0
get position at P
virtual bool IsEndBlendingAllowed()
return true if end blending allowed
Definition cinosmovepathpart.h:98
virtual ~CINOSMovePathPart()
destructor
Definition cinosmovepathpart.h:125
virtual uint8 GetMainAxisIndex()=0
get main axis index (relevant for abs/inc/nlg)
CINOSMovePathPart(uint8 auType)
constructor
Definition cinosmovepathpart.h:121
uint8 m_uType
part type
Definition cinosmovepathpart.h:140
uint8 GetType()
get part type
Definition cinosmovepathpart.h:61
virtual uint32 GetInvolved()=0
get mask of involved axes
virtual void GetD3max(double *apD2max)=0
get max 3. derivative of part
class CINOSMovePathSegment * m_pSegment
pointer to my segment
Definition cinosmovepathpart.h:142
virtual void GetD2max(double *apD2max)=0
get max 2. derivative of part
CINOSMovePathPart()
constructor
Definition cinosmovepathpart.h:117
void SetSegment(class CINOSMovePathSegment *apSegment)
set pointer to my segment
Definition cinosmovepathpart.h:130
virtual void GetDerivative(uint32 auLevel, double adP, double *apDirection)=0
get auLevel derivative at P
virtual bool IsContinuous(uint32 auLevel)
return true if part is auLevel continuous
Definition cinosmovepathpart.h:105
virtual double Prepare(uint32 auIncremental, double *apPosition)=0
prepare part
virtual bool IsStartBlendingAllowed()
return true if start blending allowed
Definition cinosmovepathpart.h:91
virtual double GetMaxVectorLength(double adError)
get max vector length for given error
Definition cinosmovepathpart.h:84
Definition cinosmovepathsegment.h:45
Definition cinosmovepath.h:566