kitt_platform
 All Classes Namespaces Files Functions Variables Typedefs Enumerator Macros
InteractiveMarkerControl.h
Go to the documentation of this file.
1 #ifndef _ROS_visualization_msgs_InteractiveMarkerControl_h
2 #define _ROS_visualization_msgs_InteractiveMarkerControl_h
3 
4 #include <stdint.h>
5 #include <string.h>
6 #include <stdlib.h>
7 #include "ros/msg.h"
10 
11 namespace visualization_msgs
12 {
13 
15  {
16  public:
17  const char* name;
22  uint8_t markers_length;
26  const char* description;
27  enum { INHERIT = 0 };
28  enum { FIXED = 1 };
29  enum { VIEW_FACING = 2 };
30  enum { NONE = 0 };
31  enum { MENU = 1 };
32  enum { BUTTON = 2 };
33  enum { MOVE_AXIS = 3 };
34  enum { MOVE_PLANE = 4 };
35  enum { ROTATE_AXIS = 5 };
36  enum { MOVE_ROTATE = 6 };
37  enum { MOVE_3D = 7 };
38  enum { ROTATE_3D = 8 };
39  enum { MOVE_ROTATE_3D = 9 };
40 
42  name(""),
43  orientation(),
46  always_visible(0),
47  markers_length(0), markers(NULL),
49  description("")
50  {
51  }
52 
53  virtual int serialize(unsigned char *outbuffer) const
54  {
55  int offset = 0;
56  uint32_t length_name = strlen(this->name);
57  memcpy(outbuffer + offset, &length_name, sizeof(uint32_t));
58  offset += 4;
59  memcpy(outbuffer + offset, this->name, length_name);
60  offset += length_name;
61  offset += this->orientation.serialize(outbuffer + offset);
62  *(outbuffer + offset + 0) = (this->orientation_mode >> (8 * 0)) & 0xFF;
63  offset += sizeof(this->orientation_mode);
64  *(outbuffer + offset + 0) = (this->interaction_mode >> (8 * 0)) & 0xFF;
65  offset += sizeof(this->interaction_mode);
66  union {
67  bool real;
68  uint8_t base;
69  } u_always_visible;
70  u_always_visible.real = this->always_visible;
71  *(outbuffer + offset + 0) = (u_always_visible.base >> (8 * 0)) & 0xFF;
72  offset += sizeof(this->always_visible);
73  *(outbuffer + offset++) = markers_length;
74  *(outbuffer + offset++) = 0;
75  *(outbuffer + offset++) = 0;
76  *(outbuffer + offset++) = 0;
77  for( uint8_t i = 0; i < markers_length; i++){
78  offset += this->markers[i].serialize(outbuffer + offset);
79  }
80  union {
81  bool real;
82  uint8_t base;
83  } u_independent_marker_orientation;
84  u_independent_marker_orientation.real = this->independent_marker_orientation;
85  *(outbuffer + offset + 0) = (u_independent_marker_orientation.base >> (8 * 0)) & 0xFF;
86  offset += sizeof(this->independent_marker_orientation);
87  uint32_t length_description = strlen(this->description);
88  memcpy(outbuffer + offset, &length_description, sizeof(uint32_t));
89  offset += 4;
90  memcpy(outbuffer + offset, this->description, length_description);
91  offset += length_description;
92  return offset;
93  }
94 
95  virtual int deserialize(unsigned char *inbuffer)
96  {
97  int offset = 0;
98  uint32_t length_name;
99  memcpy(&length_name, (inbuffer + offset), sizeof(uint32_t));
100  offset += 4;
101  for(unsigned int k= offset; k< offset+length_name; ++k){
102  inbuffer[k-1]=inbuffer[k];
103  }
104  inbuffer[offset+length_name-1]=0;
105  this->name = (char *)(inbuffer + offset-1);
106  offset += length_name;
107  offset += this->orientation.deserialize(inbuffer + offset);
108  this->orientation_mode = ((uint8_t) (*(inbuffer + offset)));
109  offset += sizeof(this->orientation_mode);
110  this->interaction_mode = ((uint8_t) (*(inbuffer + offset)));
111  offset += sizeof(this->interaction_mode);
112  union {
113  bool real;
114  uint8_t base;
115  } u_always_visible;
116  u_always_visible.base = 0;
117  u_always_visible.base |= ((uint8_t) (*(inbuffer + offset + 0))) << (8 * 0);
118  this->always_visible = u_always_visible.real;
119  offset += sizeof(this->always_visible);
120  uint8_t markers_lengthT = *(inbuffer + offset++);
121  if(markers_lengthT > markers_length)
122  this->markers = (visualization_msgs::Marker*)realloc(this->markers, markers_lengthT * sizeof(visualization_msgs::Marker));
123  offset += 3;
124  markers_length = markers_lengthT;
125  for( uint8_t i = 0; i < markers_length; i++){
126  offset += this->st_markers.deserialize(inbuffer + offset);
127  memcpy( &(this->markers[i]), &(this->st_markers), sizeof(visualization_msgs::Marker));
128  }
129  union {
130  bool real;
131  uint8_t base;
132  } u_independent_marker_orientation;
133  u_independent_marker_orientation.base = 0;
134  u_independent_marker_orientation.base |= ((uint8_t) (*(inbuffer + offset + 0))) << (8 * 0);
135  this->independent_marker_orientation = u_independent_marker_orientation.real;
136  offset += sizeof(this->independent_marker_orientation);
137  uint32_t length_description;
138  memcpy(&length_description, (inbuffer + offset), sizeof(uint32_t));
139  offset += 4;
140  for(unsigned int k= offset; k< offset+length_description; ++k){
141  inbuffer[k-1]=inbuffer[k];
142  }
143  inbuffer[offset+length_description-1]=0;
144  this->description = (char *)(inbuffer + offset-1);
145  offset += length_description;
146  return offset;
147  }
148 
149  const char * getType(){ return "visualization_msgs/InteractiveMarkerControl"; };
150  const char * getMD5(){ return "e3a939c98cdd4f709d8e1dec2a9c3f37"; };
151 
152  };
153 
154 }
155 #endif
virtual int deserialize(unsigned char *inbuffer)
Definition: Marker.h:168
Definition: InteractiveMarkerControl.h:35
Definition: Marker.h:18
InteractiveMarkerControl()
Definition: InteractiveMarkerControl.h:41
Definition: InteractiveMarkerControl.h:30
virtual int serialize(unsigned char *outbuffer) const
Definition: Quaternion.h:28
Definition: InteractiveMarkerControl.h:38
uint8_t markers_length
Definition: InteractiveMarkerControl.h:22
virtual int serialize(unsigned char *outbuffer) const
Definition: InteractiveMarkerControl.h:53
const char * name
Definition: InteractiveMarkerControl.h:17
Definition: InteractiveMarkerControl.h:34
const char * getType()
Definition: InteractiveMarkerControl.h:149
Definition: InteractiveMarkerControl.h:36
Definition: InteractiveMarkerControl.h:27
const char * description
Definition: InteractiveMarkerControl.h:26
Definition: InteractiveMarkerControl.h:37
const char * getMD5()
Definition: InteractiveMarkerControl.h:150
virtual int deserialize(unsigned char *inbuffer)
Definition: InteractiveMarkerControl.h:95
virtual int deserialize(unsigned char *inbuffer)
Definition: Quaternion.h:38
bool independent_marker_orientation
Definition: InteractiveMarkerControl.h:25
virtual int serialize(unsigned char *outbuffer) const
Definition: Marker.h:75
visualization_msgs::Marker st_markers
Definition: InteractiveMarkerControl.h:23
Definition: Quaternion.h:12
Definition: InteractiveMarkerControl.h:29
bool always_visible
Definition: InteractiveMarkerControl.h:21
Definition: InteractiveMarkerControl.h:32
uint8_t orientation_mode
Definition: InteractiveMarkerControl.h:19
Definition: InteractiveMarkerControl.h:33
geometry_msgs::Quaternion orientation
Definition: InteractiveMarkerControl.h:18
Definition: InteractiveMarkerControl.h:28
Definition: InteractiveMarkerControl.h:14
Definition: msg.h:43
visualization_msgs::Marker * markers
Definition: InteractiveMarkerControl.h:24
Definition: InteractiveMarkerControl.h:31
Definition: InteractiveMarkerControl.h:39
uint8_t interaction_mode
Definition: InteractiveMarkerControl.h:20