Aruna
movementTypes.h
Go to the documentation of this file.
1 //
2 // Created by noeel on 6-7-19.
3 //
4 
5 #ifndef ARUNA_MOVEMENTTYPES_H
6 #define ARUNA_MOVEMENTTYPES_H
7 
8 #include <stdint.h>
9 #include "stddef.h"
10 
11 namespace aruna { namespace movement {
12 
13  enum class axis_mask_t: uint8_t {
14  X = (1 << 0),
15  Y = (1 << 1),
16  Z = (1 << 2),
17  ROLL = (1 << 3),
18  YAW = (1 << 4),
19  PITCH = (1 << 5),
20 
21  DIRECTION_PLUS = (1 << 6),
22  DIRECTION_MIN = (1 << 7),
23 
24  DIRECTION_BOTH = 192,
25  ALL_AXIS = 63,
26  MAX = 6,
27  NONE = 0,
28  };
29 
30  enum class damping_t {
31  DISABLE = 0,
32  KEEP_VELOCITY = 0x01,
33  KEEP_DEGREE = 0x02,
34  };
35 
36  // status of movement
37  enum class status_t {
38  RUNNING = 0,
39  STOPPED = 1,
40  };
41 
42 
43  template<typename T>
44  struct axis_t {
45  T x;
46  T y;
47  T z;
48  T roll;
49  T yaw;
50  T pitch;
51 
52  T &operator[](size_t i) {
53 // TODO moet dit geen pointer returnen?
54  switch (i) {
55  default:
56  case (uint8_t) axis_mask_t::X:
57  return x;
58  break;
59  case (uint8_t) axis_mask_t::Y:
60  return y;
61  break;
62  case (uint8_t) axis_mask_t::Z:
63  return z;
64  break;
65  case (uint8_t) axis_mask_t::ROLL:
66  return roll;
67  break;
68  case (uint8_t) axis_mask_t::YAW:
69  return yaw;
70  break;
71  case (uint8_t) axis_mask_t::PITCH:
72  return pitch;
73  break;
74  }
75  }
76  };
77  }
78 }
79 #endif //ARUNA_MOVEMENTTYPES_H
Definition: comm.cpp:14
T & operator[](size_t i)
Definition: movementTypes.h:52