INOS
cinosmovepathpartlinearbay.h
Go to the documentation of this file.
1 //******************************************************************************
26 //******************************************************************************
27 #ifndef INC_CINOSMOVEPATHPARTLINEARBAY_H
28 #define INC_CINOSMOVEPATHPARTLINEARBAY_H
29 //------------------------------------------------------------------------------
30 // includes
31 //------------------------------------------------------------------------------
32 //
33 // system
34 #include <inos.h>
35 //
36 // C++
37 #include <math.h>
38 //
39 // project
40 //
41 //------------------------------------------------------------------------------
42 // class definition
43 //------------------------------------------------------------------------------
44 //
46 {
47  //--- user interface ---------------------------------------------------
48 
49  // public member functions
50  public :
51 
53  virtual uint8 GetMainAxisIndex() override
54  {
55  // axis R is our main one
56  return m_uIndexR;
57  }
58 
60  virtual uint32 GetInvolved() override
61  {
62  return (1<<m_uIndexR)|(1<<m_uIndexX);
63  }
64 
66  virtual double Prepare(uint32 auIncremental, double* apPosition) override;
67 
69  virtual void GetPosition(double adP, double* apPosition) override;
71  virtual void GetDerivative(uint32 auLevel, double adP, double* apDerivative) override;
73  virtual void GetD2max(double* apD2max) override;
75  virtual void GetD3max(double* apD3max) override;
76 
77  //--- internals --------------------------------------------------------
78 
79  friend class CINOSMovePath;
80 
81  // constructor / destructor
82  protected :
84  CINOSMovePathPartLinearBay(uint8 auIndexR, uint8 auIndexX,
85  double adValueR, double adValueX, double adGripperLength);
88 
90  double rad(double a)
91  {
92  return a*M_PI/180.0;
93  }
94 
96  double deg(double a)
97  {
98  return a*180.0/M_PI;
99  }
100 
101  // protected members
102  protected :
104  uint8 m_uIndexR;
106  uint8 m_uIndexX;
107 
109  double m_dLength;
111  double m_dPosR0;
113  double m_dOfsX0;
114 
116  double m_dValueR;
118  double m_dValueX;
123 
124  // dynamic object handling
125  DECLARE_DYNAMIC(CINOSMovePathPartLinearBay);
126 };
127 
128 //------------------------------------------------------------------------------
129 // end of file
130 //------------------------------------------------------------------------------
131 
132 #endif // INC_CINOSMOVEPATHPARTBAYLINEAR_H
CINOSMovePathPartLinearBay::GetD2max
virtual void GetD2max(double *apD2max) override
get max 2. derivative of part
CINOSMovePathPartLinearBay::m_dPosR0
double m_dPosR0
R0.
Definition: cinosmovepathpartlinearbay.h:111
CINOSMovePathPartLinearBay
Definition: cinosmovepathpartlinearbay.h:45
CINOSMovePathPartLinearBay::Prepare
virtual double Prepare(uint32 auIncremental, double *apPosition) override
prepare part
CINOSMovePathPartLinearBay::GetPosition
virtual void GetPosition(double adP, double *apPosition) override
get position at P
CINOSMovePathPartLinearBay::m_dLength
double m_dLength
part length
Definition: cinosmovepathpartlinearbay.h:109
CINOSMovePathPartLinearBay::~CINOSMovePathPartLinearBay
virtual ~CINOSMovePathPartLinearBay()
destructor
CINOSMovePathPartLinearBay::deg
double deg(double a)
convert rad -> deg
Definition: cinosmovepathpartlinearbay.h:96
CINOSMovePathPartLinearBay::rad
double rad(double a)
convert deg -> rad
Definition: cinosmovepathpartlinearbay.h:90
CINOSMovePathPartLinearBay::m_dValueX
double m_dValueX
requested X value
Definition: cinosmovepathpartlinearbay.h:118
CINOSMovePathPartLinearBay::m_uIndexR
uint8 m_uIndexR
index axis R
Definition: cinosmovepathpartlinearbay.h:104
CINOSMovePathPartLinearBay::GetInvolved
virtual uint32 GetInvolved() override
get mask of involved axes
Definition: cinosmovepathpartlinearbay.h:60
CINOSMovePathPartLinearBay::CINOSMovePathPartLinearBay
CINOSMovePathPartLinearBay(uint8 auIndexR, uint8 auIndexX, double adValueR, double adValueX, double adGripperLength)
constructor
CINOSMovePathPartLinearBay::m_dGripperLength_1
double m_dGripperLength_1
1 / gripper length
Definition: cinosmovepathpartlinearbay.h:122
CINOSMovePath
Definition: cinosmovepath.h:549
CINOSMovePathPart
Definition: cinosmovepathpart.h:44
CINOSMovePathPartLinearBay::GetMainAxisIndex
virtual uint8 GetMainAxisIndex() override
get main axis index (relevant for abs/inc/nlg)
Definition: cinosmovepathpartlinearbay.h:53
CINOSMovePathPartLinearBay::GetDerivative
virtual void GetDerivative(uint32 auLevel, double adP, double *apDerivative) override
get auLevel derivative at P
CINOSMovePathPartLinearBay::m_uIndexX
uint8 m_uIndexX
index axis X
Definition: cinosmovepathpartlinearbay.h:106
CINOSMovePathPartLinearBay::m_dOfsX0
double m_dOfsX0
X0 offset.
Definition: cinosmovepathpartlinearbay.h:113
CINOSMovePathPartLinearBay::GetD3max
virtual void GetD3max(double *apD3max) override
get max 3. derivative of part
CINOSMovePathPartLinearBay::m_dGripperLength
double m_dGripperLength
gripper length
Definition: cinosmovepathpartlinearbay.h:120
CINOSMovePathPartLinearBay::m_dValueR
double m_dValueR
requested R value
Definition: cinosmovepathpartlinearbay.h:116