INOS
cinosmovepathpartlinear.h
Go to the documentation of this file.
1//******************************************************************************
26//******************************************************************************
27#ifndef INC_CINOSMOVEPATHPARTLINEAR_H
28#define INC_CINOSMOVEPATHPARTLINEAR_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
52 virtual uint8 GetMainAxisIndex() override
53 {
54 // return our index
55 return m_uIndex;
56 }
57
59 virtual uint32 GetInvolved() override
60 {
61 return (uint32)(1ul<<m_uIndex);
62 }
63
65 virtual double Prepare(uint32 auIncremental, double* apPosition) override;
66
67
69 virtual void GetPosition(double adP, double* apPosition) override
70 {
71 // return result
73 }
74
76 virtual void GetDerivative(uint32 auLevel, double adP, double* apDerivative) override
77 {
78 // check level
79 if (auLevel == 1) {
80 // return result
81 apDerivative[m_uIndex] = m_dLength*m_pSegment->GetLength_1();
82 }
83 else {
84 // not available
86 }
87 }
88
90 virtual void GetD2max(double* apD2max) override
91 {
92 // 2nd derivative is zero
93 apD2max[m_uIndex] = 0.0;
94 }
95
97 virtual void GetD3max(double* apD3max) override
98 {
99 // 3rd derivative is zero
100 apD3max[m_uIndex] = 0.0;
101 }
102
104 virtual bool IsStartBlendingAllowed() override
105 {
106 // yes
107 return true;
108 }
109
111 virtual bool IsEndBlendingAllowed() override
112 {
113 // yes
114 return true;
115 }
116
117 //--- internals --------------------------------------------------------
118
119 friend class CINOSMovePath;
120
121 // constructor / destructor
122 public :
131 {
132 }
133
134 // protected members
135 protected :
139 double m_dValue;
141 double m_dLength;
142
143 // dynamic object handling
145};
146
147//------------------------------------------------------------------------------
148// end of file
149//------------------------------------------------------------------------------
150
151#endif // INC_CINOSMOVEPATHPART_H
#define DECLARE_DYNAMIC(aClass)
Definition cinospartitionmemory.h:328
Definition cinosmcmodule.h:1900
Definition cinosmovepathpartlinear.h:45
virtual uint8 GetMainAxisIndex() override
get main axis index (relevant for abs/inc/nlg)
Definition cinosmovepathpartlinear.h:52
double m_dValue
part value
Definition cinosmovepathpartlinear.h:139
virtual void GetD3max(double *apD3max) override
get max 3. derivative of part
Definition cinosmovepathpartlinear.h:97
virtual uint32 GetInvolved() override
get mask of involved axes
Definition cinosmovepathpartlinear.h:59
virtual void GetD2max(double *apD2max) override
get max 2. derivative of part
Definition cinosmovepathpartlinear.h:90
virtual void GetDerivative(uint32 auLevel, double adP, double *apDerivative) override
get auLevel derivative at P
Definition cinosmovepathpartlinear.h:76
CINOSMovePathPartLinear(uint8 auIndex, double adValue)
constructor
Definition cinosmovepathpartlinear.h:124
virtual double Prepare(uint32 auIncremental, double *apPosition) override
prepare part
double m_dLength
part length
Definition cinosmovepathpartlinear.h:141
virtual bool IsStartBlendingAllowed() override
return true if start blending allowed
Definition cinosmovepathpartlinear.h:104
uint8 m_uIndex
axis index
Definition cinosmovepathpartlinear.h:137
virtual void GetPosition(double adP, double *apPosition) override
get position at P
Definition cinosmovepathpartlinear.h:69
virtual ~CINOSMovePathPartLinear()
destructor
Definition cinosmovepathpartlinear.h:130
virtual bool IsEndBlendingAllowed() override
return true if end blending allowed
Definition cinosmovepathpartlinear.h:111
Definition cinosmovepathpart.h:45
class CINOSMovePathSegment * m_pSegment
pointer to my segment
Definition cinosmovepathpart.h:142
Definition cinosmovepath.h:566