00001
00002 #ifndef VISUALIZATION_MSGS_MESSAGE_INTERACTIVEMARKERINIT_H
00003 #define VISUALIZATION_MSGS_MESSAGE_INTERACTIVEMARKERINIT_H
00004 #include <string>
00005 #include <vector>
00006 #include <map>
00007 #include <ostream>
00008 #include "ros/serialization.h"
00009 #include "ros/builtin_message_traits.h"
00010 #include "ros/message_operations.h"
00011 #include "ros/time.h"
00012
00013 #include "ros/macros.h"
00014
00015 #include "ros/assert.h"
00016
00017 #include "visualization_msgs/InteractiveMarker.h"
00018
00019 namespace visualization_msgs
00020 {
00021 template <class ContainerAllocator>
00022 struct InteractiveMarkerInit_ {
00023 typedef InteractiveMarkerInit_<ContainerAllocator> Type;
00024
00025 InteractiveMarkerInit_()
00026 : server_id()
00027 , seq_num(0)
00028 , markers()
00029 {
00030 }
00031
00032 InteractiveMarkerInit_(const ContainerAllocator& _alloc)
00033 : server_id(_alloc)
00034 , seq_num(0)
00035 , markers(_alloc)
00036 {
00037 }
00038
00039 typedef std::basic_string<char, std::char_traits<char>, typename ContainerAllocator::template rebind<char>::other > _server_id_type;
00040 std::basic_string<char, std::char_traits<char>, typename ContainerAllocator::template rebind<char>::other > server_id;
00041
00042 typedef uint64_t _seq_num_type;
00043 uint64_t seq_num;
00044
00045 typedef std::vector< ::visualization_msgs::InteractiveMarker_<ContainerAllocator> , typename ContainerAllocator::template rebind< ::visualization_msgs::InteractiveMarker_<ContainerAllocator> >::other > _markers_type;
00046 std::vector< ::visualization_msgs::InteractiveMarker_<ContainerAllocator> , typename ContainerAllocator::template rebind< ::visualization_msgs::InteractiveMarker_<ContainerAllocator> >::other > markers;
00047
00048
00049 ROS_DEPRECATED uint32_t get_markers_size() const { return (uint32_t)markers.size(); }
00050 ROS_DEPRECATED void set_markers_size(uint32_t size) { markers.resize((size_t)size); }
00051 ROS_DEPRECATED void get_markers_vec(std::vector< ::visualization_msgs::InteractiveMarker_<ContainerAllocator> , typename ContainerAllocator::template rebind< ::visualization_msgs::InteractiveMarker_<ContainerAllocator> >::other > & vec) const { vec = this->markers; }
00052 ROS_DEPRECATED void set_markers_vec(const std::vector< ::visualization_msgs::InteractiveMarker_<ContainerAllocator> , typename ContainerAllocator::template rebind< ::visualization_msgs::InteractiveMarker_<ContainerAllocator> >::other > & vec) { this->markers = vec; }
00053 private:
00054 static const char* __s_getDataType_() { return "visualization_msgs/InteractiveMarkerInit"; }
00055 public:
00056 ROS_DEPRECATED static const std::string __s_getDataType() { return __s_getDataType_(); }
00057
00058 ROS_DEPRECATED const std::string __getDataType() const { return __s_getDataType_(); }
00059
00060 private:
00061 static const char* __s_getMD5Sum_() { return "467a93e72a544fd966aafe47c72160b7"; }
00062 public:
00063 ROS_DEPRECATED static const std::string __s_getMD5Sum() { return __s_getMD5Sum_(); }
00064
00065 ROS_DEPRECATED const std::string __getMD5Sum() const { return __s_getMD5Sum_(); }
00066
00067 private:
00068 static const char* __s_getMessageDefinition_() { return "# Identifying string. Must be unique in the topic namespace\n\
00069 # that this server works on.\n\
00070 string server_id\n\
00071 \n\
00072 # Sequence number.\n\
00073 # The client will use this to detect if it has missed a subsequent\n\
00074 # update. Every update message will have the same sequence number as\n\
00075 # an init message. Clients will likely want to unsubscribe from the\n\
00076 # init topic after a successful initialization to avoid receiving\n\
00077 # duplicate data.\n\
00078 uint64 seq_num\n\
00079 \n\
00080 # All markers.\n\
00081 InteractiveMarker[] markers\n\
00082 \n\
00083 ================================================================================\n\
00084 MSG: visualization_msgs/InteractiveMarker\n\
00085 # Time/frame info.\n\
00086 # If header.time is set to 0, the marker will be retransformed into\n\
00087 # its frame on each timestep. You will receive the pose feedback\n\
00088 # in the same frame.\n\
00089 # Otherwise, you might receive feedback in a different frame.\n\
00090 # For rviz, this will be the current 'fixed frame' set by the user.\n\
00091 Header header\n\
00092 \n\
00093 # Initial pose. Also, defines the pivot point for rotations.\n\
00094 geometry_msgs/Pose pose\n\
00095 \n\
00096 # Identifying string. Must be globally unique in\n\
00097 # the topic that this message is sent through.\n\
00098 string name\n\
00099 \n\
00100 # Short description (< 40 characters).\n\
00101 string description\n\
00102 \n\
00103 # Scale to be used for default controls (default=1).\n\
00104 float32 scale\n\
00105 \n\
00106 # All menu and submenu entries associated with this marker.\n\
00107 MenuEntry[] menu_entries\n\
00108 \n\
00109 # List of controls displayed for this marker.\n\
00110 InteractiveMarkerControl[] controls\n\
00111 \n\
00112 ================================================================================\n\
00113 MSG: std_msgs/Header\n\
00114 # Standard metadata for higher-level stamped data types.\n\
00115 # This is generally used to communicate timestamped data \n\
00116 # in a particular coordinate frame.\n\
00117 # \n\
00118 # sequence ID: consecutively increasing ID \n\
00119 uint32 seq\n\
00120 #Two-integer timestamp that is expressed as:\n\
00121 # * stamp.secs: seconds (stamp_secs) since epoch\n\
00122 # * stamp.nsecs: nanoseconds since stamp_secs\n\
00123 # time-handling sugar is provided by the client library\n\
00124 time stamp\n\
00125 #Frame this data is associated with\n\
00126 # 0: no frame\n\
00127 # 1: global frame\n\
00128 string frame_id\n\
00129 \n\
00130 ================================================================================\n\
00131 MSG: geometry_msgs/Pose\n\
00132 # A representation of pose in free space, composed of postion and orientation. \n\
00133 Point position\n\
00134 Quaternion orientation\n\
00135 \n\
00136 ================================================================================\n\
00137 MSG: geometry_msgs/Point\n\
00138 # This contains the position of a point in free space\n\
00139 float64 x\n\
00140 float64 y\n\
00141 float64 z\n\
00142 \n\
00143 ================================================================================\n\
00144 MSG: geometry_msgs/Quaternion\n\
00145 # This represents an orientation in free space in quaternion form.\n\
00146 \n\
00147 float64 x\n\
00148 float64 y\n\
00149 float64 z\n\
00150 float64 w\n\
00151 \n\
00152 ================================================================================\n\
00153 MSG: visualization_msgs/MenuEntry\n\
00154 # MenuEntry message.\n\
00155 \n\
00156 # Each InteractiveMarker message has an array of MenuEntry messages.\n\
00157 # A collection of MenuEntries together describe a\n\
00158 # menu/submenu/subsubmenu/etc tree, though they are stored in a flat\n\
00159 # array. The tree structure is represented by giving each menu entry\n\
00160 # an ID number and a \"parent_id\" field. Top-level entries are the\n\
00161 # ones with parent_id = 0. Menu entries are ordered within their\n\
00162 # level the same way they are ordered in the containing array. Parent\n\
00163 # entries must appear before their children.\n\
00164 \n\
00165 # Example:\n\
00166 # - id = 3\n\
00167 # parent_id = 0\n\
00168 # title = \"fun\"\n\
00169 # - id = 2\n\
00170 # parent_id = 0\n\
00171 # title = \"robot\"\n\
00172 # - id = 4\n\
00173 # parent_id = 2\n\
00174 # title = \"pr2\"\n\
00175 # - id = 5\n\
00176 # parent_id = 2\n\
00177 # title = \"turtle\"\n\
00178 #\n\
00179 # Gives a menu tree like this:\n\
00180 # - fun\n\
00181 # - robot\n\
00182 # - pr2\n\
00183 # - turtle\n\
00184 \n\
00185 # ID is a number for each menu entry. Must be unique within the\n\
00186 # control, and should never be 0.\n\
00187 uint32 id\n\
00188 \n\
00189 # ID of the parent of this menu entry, if it is a submenu. If this\n\
00190 # menu entry is a top-level entry, set parent_id to 0.\n\
00191 uint32 parent_id\n\
00192 \n\
00193 # menu / entry title\n\
00194 string title\n\
00195 \n\
00196 # Arguments to command indicated by command_type (below)\n\
00197 string command\n\
00198 \n\
00199 # Command_type stores the type of response desired when this menu\n\
00200 # entry is clicked.\n\
00201 # FEEDBACK: send an InteractiveMarkerFeedback message with menu_entry_id set to this entry's id.\n\
00202 # ROSRUN: execute \"rosrun\" with arguments given in the command field (above).\n\
00203 # ROSLAUNCH: execute \"roslaunch\" with arguments given in the command field (above).\n\
00204 uint8 FEEDBACK=0\n\
00205 uint8 ROSRUN=1\n\
00206 uint8 ROSLAUNCH=2\n\
00207 uint8 command_type\n\
00208 \n\
00209 ================================================================================\n\
00210 MSG: visualization_msgs/InteractiveMarkerControl\n\
00211 # Represents a control that is to be displayed together with an interactive marker\n\
00212 \n\
00213 # Identifying string for this control.\n\
00214 # You need to assign a unique value to this to receive feedback from the GUI\n\
00215 # on what actions the user performs on this control (e.g. a button click).\n\
00216 string name\n\
00217 \n\
00218 \n\
00219 # Defines the local coordinate frame (relative to the pose of the parent\n\
00220 # interactive marker) in which is being rotated and translated.\n\
00221 # Default: Identity\n\
00222 geometry_msgs/Quaternion orientation\n\
00223 \n\
00224 \n\
00225 # Orientation mode: controls how orientation changes.\n\
00226 # INHERIT: Follow orientation of interactive marker\n\
00227 # FIXED: Keep orientation fixed at initial state\n\
00228 # VIEW_FACING: Align y-z plane with screen (x: forward, y:left, z:up).\n\
00229 uint8 INHERIT = 0 \n\
00230 uint8 FIXED = 1\n\
00231 uint8 VIEW_FACING = 2\n\
00232 \n\
00233 uint8 orientation_mode\n\
00234 \n\
00235 # Interaction mode for this control\n\
00236 # \n\
00237 # NONE: This control is only meant for visualization; no context menu.\n\
00238 # MENU: Like NONE, but right-click menu is active.\n\
00239 # BUTTON: Element can be left-clicked.\n\
00240 # MOVE_AXIS: Translate along local x-axis.\n\
00241 # MOVE_PLANE: Translate in local y-z plane.\n\
00242 # ROTATE_AXIS: Rotate around local x-axis.\n\
00243 # MOVE_ROTATE: Combines MOVE_PLANE and ROTATE_AXIS.\n\
00244 uint8 NONE = 0 \n\
00245 uint8 MENU = 1\n\
00246 uint8 BUTTON = 2\n\
00247 uint8 MOVE_AXIS = 3 \n\
00248 uint8 MOVE_PLANE = 4\n\
00249 uint8 ROTATE_AXIS = 5\n\
00250 uint8 MOVE_ROTATE = 6\n\
00251 \n\
00252 uint8 interaction_mode\n\
00253 \n\
00254 \n\
00255 # If true, the contained markers will also be visible\n\
00256 # when the gui is not in interactive mode.\n\
00257 bool always_visible\n\
00258 \n\
00259 \n\
00260 # Markers to be displayed as custom visual representation.\n\
00261 # Leave this empty to use the default control handles.\n\
00262 #\n\
00263 # Note: \n\
00264 # - The markers can be defined in an arbitrary coordinate frame,\n\
00265 # but will be transformed into the local frame of the interactive marker.\n\
00266 # - If the header of a marker is empty, its pose will be interpreted as \n\
00267 # relative to the pose of the parent interactive marker.\n\
00268 Marker[] markers\n\
00269 \n\
00270 \n\
00271 # In VIEW_FACING mode, set this to true if you don't want the markers\n\
00272 # to be aligned with the camera view point. The markers will show up\n\
00273 # as in INHERIT mode.\n\
00274 bool independent_marker_orientation\n\
00275 \n\
00276 \n\
00277 # Short description (< 40 characters) of what this control does,\n\
00278 # e.g. \"Move the robot\". \n\
00279 # Default: A generic description based on the interaction mode\n\
00280 string description\n\
00281 \n\
00282 ================================================================================\n\
00283 MSG: visualization_msgs/Marker\n\
00284 # See http://www.ros.org/wiki/rviz/DisplayTypes/Marker and http://www.ros.org/wiki/rviz/Tutorials/Markers%3A%20Basic%20Shapes for more information on using this message with rviz\n\
00285 \n\
00286 uint8 ARROW=0\n\
00287 uint8 CUBE=1\n\
00288 uint8 SPHERE=2\n\
00289 uint8 CYLINDER=3\n\
00290 uint8 LINE_STRIP=4\n\
00291 uint8 LINE_LIST=5\n\
00292 uint8 CUBE_LIST=6\n\
00293 uint8 SPHERE_LIST=7\n\
00294 uint8 POINTS=8\n\
00295 uint8 TEXT_VIEW_FACING=9\n\
00296 uint8 MESH_RESOURCE=10\n\
00297 uint8 TRIANGLE_LIST=11\n\
00298 \n\
00299 uint8 ADD=0\n\
00300 uint8 MODIFY=0\n\
00301 uint8 DELETE=2\n\
00302 \n\
00303 Header header # header for time/frame information\n\
00304 string ns # Namespace to place this object in... used in conjunction with id to create a unique name for the object\n\
00305 int32 id # object ID useful in conjunction with the namespace for manipulating and deleting the object later\n\
00306 int32 type # Type of object\n\
00307 int32 action # 0 add/modify an object, 1 (deprecated), 2 deletes an object\n\
00308 geometry_msgs/Pose pose # Pose of the object\n\
00309 geometry_msgs/Vector3 scale # Scale of the object 1,1,1 means default (usually 1 meter square)\n\
00310 std_msgs/ColorRGBA color # Color [0.0-1.0]\n\
00311 duration lifetime # How long the object should last before being automatically deleted. 0 means forever\n\
00312 bool frame_locked # If this marker should be frame-locked, i.e. retransformed into its frame every timestep\n\
00313 \n\
00314 #Only used if the type specified has some use for them (eg. POINTS, LINE_STRIP, ...)\n\
00315 geometry_msgs/Point[] points\n\
00316 #Only used if the type specified has some use for them (eg. POINTS, LINE_STRIP, ...)\n\
00317 #number of colors must either be 0 or equal to the number of points\n\
00318 #NOTE: alpha is not yet used\n\
00319 std_msgs/ColorRGBA[] colors\n\
00320 \n\
00321 # NOTE: only used for text markers\n\
00322 string text\n\
00323 \n\
00324 # NOTE: only used for MESH_RESOURCE markers\n\
00325 string mesh_resource\n\
00326 bool mesh_use_embedded_materials\n\
00327 \n\
00328 ================================================================================\n\
00329 MSG: geometry_msgs/Vector3\n\
00330 # This represents a vector in free space. \n\
00331 \n\
00332 float64 x\n\
00333 float64 y\n\
00334 float64 z\n\
00335 ================================================================================\n\
00336 MSG: std_msgs/ColorRGBA\n\
00337 float32 r\n\
00338 float32 g\n\
00339 float32 b\n\
00340 float32 a\n\
00341 \n\
00342 "; }
00343 public:
00344 ROS_DEPRECATED static const std::string __s_getMessageDefinition() { return __s_getMessageDefinition_(); }
00345
00346 ROS_DEPRECATED const std::string __getMessageDefinition() const { return __s_getMessageDefinition_(); }
00347
00348 ROS_DEPRECATED virtual uint8_t *serialize(uint8_t *write_ptr, uint32_t seq) const
00349 {
00350 ros::serialization::OStream stream(write_ptr, 1000000000);
00351 ros::serialization::serialize(stream, server_id);
00352 ros::serialization::serialize(stream, seq_num);
00353 ros::serialization::serialize(stream, markers);
00354 return stream.getData();
00355 }
00356
00357 ROS_DEPRECATED virtual uint8_t *deserialize(uint8_t *read_ptr)
00358 {
00359 ros::serialization::IStream stream(read_ptr, 1000000000);
00360 ros::serialization::deserialize(stream, server_id);
00361 ros::serialization::deserialize(stream, seq_num);
00362 ros::serialization::deserialize(stream, markers);
00363 return stream.getData();
00364 }
00365
00366 ROS_DEPRECATED virtual uint32_t serializationLength() const
00367 {
00368 uint32_t size = 0;
00369 size += ros::serialization::serializationLength(server_id);
00370 size += ros::serialization::serializationLength(seq_num);
00371 size += ros::serialization::serializationLength(markers);
00372 return size;
00373 }
00374
00375 typedef boost::shared_ptr< ::visualization_msgs::InteractiveMarkerInit_<ContainerAllocator> > Ptr;
00376 typedef boost::shared_ptr< ::visualization_msgs::InteractiveMarkerInit_<ContainerAllocator> const> ConstPtr;
00377 boost::shared_ptr<std::map<std::string, std::string> > __connection_header;
00378 };
00379 typedef ::visualization_msgs::InteractiveMarkerInit_<std::allocator<void> > InteractiveMarkerInit;
00380
00381 typedef boost::shared_ptr< ::visualization_msgs::InteractiveMarkerInit> InteractiveMarkerInitPtr;
00382 typedef boost::shared_ptr< ::visualization_msgs::InteractiveMarkerInit const> InteractiveMarkerInitConstPtr;
00383
00384
00385 template<typename ContainerAllocator>
00386 std::ostream& operator<<(std::ostream& s, const ::visualization_msgs::InteractiveMarkerInit_<ContainerAllocator> & v)
00387 {
00388 ros::message_operations::Printer< ::visualization_msgs::InteractiveMarkerInit_<ContainerAllocator> >::stream(s, "", v);
00389 return s;}
00390
00391 }
00392
00393 namespace ros
00394 {
00395 namespace message_traits
00396 {
00397 template<class ContainerAllocator> struct IsMessage< ::visualization_msgs::InteractiveMarkerInit_<ContainerAllocator> > : public TrueType {};
00398 template<class ContainerAllocator> struct IsMessage< ::visualization_msgs::InteractiveMarkerInit_<ContainerAllocator> const> : public TrueType {};
00399 template<class ContainerAllocator>
00400 struct MD5Sum< ::visualization_msgs::InteractiveMarkerInit_<ContainerAllocator> > {
00401 static const char* value()
00402 {
00403 return "467a93e72a544fd966aafe47c72160b7";
00404 }
00405
00406 static const char* value(const ::visualization_msgs::InteractiveMarkerInit_<ContainerAllocator> &) { return value(); }
00407 static const uint64_t static_value1 = 0x467a93e72a544fd9ULL;
00408 static const uint64_t static_value2 = 0x66aafe47c72160b7ULL;
00409 };
00410
00411 template<class ContainerAllocator>
00412 struct DataType< ::visualization_msgs::InteractiveMarkerInit_<ContainerAllocator> > {
00413 static const char* value()
00414 {
00415 return "visualization_msgs/InteractiveMarkerInit";
00416 }
00417
00418 static const char* value(const ::visualization_msgs::InteractiveMarkerInit_<ContainerAllocator> &) { return value(); }
00419 };
00420
00421 template<class ContainerAllocator>
00422 struct Definition< ::visualization_msgs::InteractiveMarkerInit_<ContainerAllocator> > {
00423 static const char* value()
00424 {
00425 return "# Identifying string. Must be unique in the topic namespace\n\
00426 # that this server works on.\n\
00427 string server_id\n\
00428 \n\
00429 # Sequence number.\n\
00430 # The client will use this to detect if it has missed a subsequent\n\
00431 # update. Every update message will have the same sequence number as\n\
00432 # an init message. Clients will likely want to unsubscribe from the\n\
00433 # init topic after a successful initialization to avoid receiving\n\
00434 # duplicate data.\n\
00435 uint64 seq_num\n\
00436 \n\
00437 # All markers.\n\
00438 InteractiveMarker[] markers\n\
00439 \n\
00440 ================================================================================\n\
00441 MSG: visualization_msgs/InteractiveMarker\n\
00442 # Time/frame info.\n\
00443 # If header.time is set to 0, the marker will be retransformed into\n\
00444 # its frame on each timestep. You will receive the pose feedback\n\
00445 # in the same frame.\n\
00446 # Otherwise, you might receive feedback in a different frame.\n\
00447 # For rviz, this will be the current 'fixed frame' set by the user.\n\
00448 Header header\n\
00449 \n\
00450 # Initial pose. Also, defines the pivot point for rotations.\n\
00451 geometry_msgs/Pose pose\n\
00452 \n\
00453 # Identifying string. Must be globally unique in\n\
00454 # the topic that this message is sent through.\n\
00455 string name\n\
00456 \n\
00457 # Short description (< 40 characters).\n\
00458 string description\n\
00459 \n\
00460 # Scale to be used for default controls (default=1).\n\
00461 float32 scale\n\
00462 \n\
00463 # All menu and submenu entries associated with this marker.\n\
00464 MenuEntry[] menu_entries\n\
00465 \n\
00466 # List of controls displayed for this marker.\n\
00467 InteractiveMarkerControl[] controls\n\
00468 \n\
00469 ================================================================================\n\
00470 MSG: std_msgs/Header\n\
00471 # Standard metadata for higher-level stamped data types.\n\
00472 # This is generally used to communicate timestamped data \n\
00473 # in a particular coordinate frame.\n\
00474 # \n\
00475 # sequence ID: consecutively increasing ID \n\
00476 uint32 seq\n\
00477 #Two-integer timestamp that is expressed as:\n\
00478 # * stamp.secs: seconds (stamp_secs) since epoch\n\
00479 # * stamp.nsecs: nanoseconds since stamp_secs\n\
00480 # time-handling sugar is provided by the client library\n\
00481 time stamp\n\
00482 #Frame this data is associated with\n\
00483 # 0: no frame\n\
00484 # 1: global frame\n\
00485 string frame_id\n\
00486 \n\
00487 ================================================================================\n\
00488 MSG: geometry_msgs/Pose\n\
00489 # A representation of pose in free space, composed of postion and orientation. \n\
00490 Point position\n\
00491 Quaternion orientation\n\
00492 \n\
00493 ================================================================================\n\
00494 MSG: geometry_msgs/Point\n\
00495 # This contains the position of a point in free space\n\
00496 float64 x\n\
00497 float64 y\n\
00498 float64 z\n\
00499 \n\
00500 ================================================================================\n\
00501 MSG: geometry_msgs/Quaternion\n\
00502 # This represents an orientation in free space in quaternion form.\n\
00503 \n\
00504 float64 x\n\
00505 float64 y\n\
00506 float64 z\n\
00507 float64 w\n\
00508 \n\
00509 ================================================================================\n\
00510 MSG: visualization_msgs/MenuEntry\n\
00511 # MenuEntry message.\n\
00512 \n\
00513 # Each InteractiveMarker message has an array of MenuEntry messages.\n\
00514 # A collection of MenuEntries together describe a\n\
00515 # menu/submenu/subsubmenu/etc tree, though they are stored in a flat\n\
00516 # array. The tree structure is represented by giving each menu entry\n\
00517 # an ID number and a \"parent_id\" field. Top-level entries are the\n\
00518 # ones with parent_id = 0. Menu entries are ordered within their\n\
00519 # level the same way they are ordered in the containing array. Parent\n\
00520 # entries must appear before their children.\n\
00521 \n\
00522 # Example:\n\
00523 # - id = 3\n\
00524 # parent_id = 0\n\
00525 # title = \"fun\"\n\
00526 # - id = 2\n\
00527 # parent_id = 0\n\
00528 # title = \"robot\"\n\
00529 # - id = 4\n\
00530 # parent_id = 2\n\
00531 # title = \"pr2\"\n\
00532 # - id = 5\n\
00533 # parent_id = 2\n\
00534 # title = \"turtle\"\n\
00535 #\n\
00536 # Gives a menu tree like this:\n\
00537 # - fun\n\
00538 # - robot\n\
00539 # - pr2\n\
00540 # - turtle\n\
00541 \n\
00542 # ID is a number for each menu entry. Must be unique within the\n\
00543 # control, and should never be 0.\n\
00544 uint32 id\n\
00545 \n\
00546 # ID of the parent of this menu entry, if it is a submenu. If this\n\
00547 # menu entry is a top-level entry, set parent_id to 0.\n\
00548 uint32 parent_id\n\
00549 \n\
00550 # menu / entry title\n\
00551 string title\n\
00552 \n\
00553 # Arguments to command indicated by command_type (below)\n\
00554 string command\n\
00555 \n\
00556 # Command_type stores the type of response desired when this menu\n\
00557 # entry is clicked.\n\
00558 # FEEDBACK: send an InteractiveMarkerFeedback message with menu_entry_id set to this entry's id.\n\
00559 # ROSRUN: execute \"rosrun\" with arguments given in the command field (above).\n\
00560 # ROSLAUNCH: execute \"roslaunch\" with arguments given in the command field (above).\n\
00561 uint8 FEEDBACK=0\n\
00562 uint8 ROSRUN=1\n\
00563 uint8 ROSLAUNCH=2\n\
00564 uint8 command_type\n\
00565 \n\
00566 ================================================================================\n\
00567 MSG: visualization_msgs/InteractiveMarkerControl\n\
00568 # Represents a control that is to be displayed together with an interactive marker\n\
00569 \n\
00570 # Identifying string for this control.\n\
00571 # You need to assign a unique value to this to receive feedback from the GUI\n\
00572 # on what actions the user performs on this control (e.g. a button click).\n\
00573 string name\n\
00574 \n\
00575 \n\
00576 # Defines the local coordinate frame (relative to the pose of the parent\n\
00577 # interactive marker) in which is being rotated and translated.\n\
00578 # Default: Identity\n\
00579 geometry_msgs/Quaternion orientation\n\
00580 \n\
00581 \n\
00582 # Orientation mode: controls how orientation changes.\n\
00583 # INHERIT: Follow orientation of interactive marker\n\
00584 # FIXED: Keep orientation fixed at initial state\n\
00585 # VIEW_FACING: Align y-z plane with screen (x: forward, y:left, z:up).\n\
00586 uint8 INHERIT = 0 \n\
00587 uint8 FIXED = 1\n\
00588 uint8 VIEW_FACING = 2\n\
00589 \n\
00590 uint8 orientation_mode\n\
00591 \n\
00592 # Interaction mode for this control\n\
00593 # \n\
00594 # NONE: This control is only meant for visualization; no context menu.\n\
00595 # MENU: Like NONE, but right-click menu is active.\n\
00596 # BUTTON: Element can be left-clicked.\n\
00597 # MOVE_AXIS: Translate along local x-axis.\n\
00598 # MOVE_PLANE: Translate in local y-z plane.\n\
00599 # ROTATE_AXIS: Rotate around local x-axis.\n\
00600 # MOVE_ROTATE: Combines MOVE_PLANE and ROTATE_AXIS.\n\
00601 uint8 NONE = 0 \n\
00602 uint8 MENU = 1\n\
00603 uint8 BUTTON = 2\n\
00604 uint8 MOVE_AXIS = 3 \n\
00605 uint8 MOVE_PLANE = 4\n\
00606 uint8 ROTATE_AXIS = 5\n\
00607 uint8 MOVE_ROTATE = 6\n\
00608 \n\
00609 uint8 interaction_mode\n\
00610 \n\
00611 \n\
00612 # If true, the contained markers will also be visible\n\
00613 # when the gui is not in interactive mode.\n\
00614 bool always_visible\n\
00615 \n\
00616 \n\
00617 # Markers to be displayed as custom visual representation.\n\
00618 # Leave this empty to use the default control handles.\n\
00619 #\n\
00620 # Note: \n\
00621 # - The markers can be defined in an arbitrary coordinate frame,\n\
00622 # but will be transformed into the local frame of the interactive marker.\n\
00623 # - If the header of a marker is empty, its pose will be interpreted as \n\
00624 # relative to the pose of the parent interactive marker.\n\
00625 Marker[] markers\n\
00626 \n\
00627 \n\
00628 # In VIEW_FACING mode, set this to true if you don't want the markers\n\
00629 # to be aligned with the camera view point. The markers will show up\n\
00630 # as in INHERIT mode.\n\
00631 bool independent_marker_orientation\n\
00632 \n\
00633 \n\
00634 # Short description (< 40 characters) of what this control does,\n\
00635 # e.g. \"Move the robot\". \n\
00636 # Default: A generic description based on the interaction mode\n\
00637 string description\n\
00638 \n\
00639 ================================================================================\n\
00640 MSG: visualization_msgs/Marker\n\
00641 # See http://www.ros.org/wiki/rviz/DisplayTypes/Marker and http://www.ros.org/wiki/rviz/Tutorials/Markers%3A%20Basic%20Shapes for more information on using this message with rviz\n\
00642 \n\
00643 uint8 ARROW=0\n\
00644 uint8 CUBE=1\n\
00645 uint8 SPHERE=2\n\
00646 uint8 CYLINDER=3\n\
00647 uint8 LINE_STRIP=4\n\
00648 uint8 LINE_LIST=5\n\
00649 uint8 CUBE_LIST=6\n\
00650 uint8 SPHERE_LIST=7\n\
00651 uint8 POINTS=8\n\
00652 uint8 TEXT_VIEW_FACING=9\n\
00653 uint8 MESH_RESOURCE=10\n\
00654 uint8 TRIANGLE_LIST=11\n\
00655 \n\
00656 uint8 ADD=0\n\
00657 uint8 MODIFY=0\n\
00658 uint8 DELETE=2\n\
00659 \n\
00660 Header header # header for time/frame information\n\
00661 string ns # Namespace to place this object in... used in conjunction with id to create a unique name for the object\n\
00662 int32 id # object ID useful in conjunction with the namespace for manipulating and deleting the object later\n\
00663 int32 type # Type of object\n\
00664 int32 action # 0 add/modify an object, 1 (deprecated), 2 deletes an object\n\
00665 geometry_msgs/Pose pose # Pose of the object\n\
00666 geometry_msgs/Vector3 scale # Scale of the object 1,1,1 means default (usually 1 meter square)\n\
00667 std_msgs/ColorRGBA color # Color [0.0-1.0]\n\
00668 duration lifetime # How long the object should last before being automatically deleted. 0 means forever\n\
00669 bool frame_locked # If this marker should be frame-locked, i.e. retransformed into its frame every timestep\n\
00670 \n\
00671 #Only used if the type specified has some use for them (eg. POINTS, LINE_STRIP, ...)\n\
00672 geometry_msgs/Point[] points\n\
00673 #Only used if the type specified has some use for them (eg. POINTS, LINE_STRIP, ...)\n\
00674 #number of colors must either be 0 or equal to the number of points\n\
00675 #NOTE: alpha is not yet used\n\
00676 std_msgs/ColorRGBA[] colors\n\
00677 \n\
00678 # NOTE: only used for text markers\n\
00679 string text\n\
00680 \n\
00681 # NOTE: only used for MESH_RESOURCE markers\n\
00682 string mesh_resource\n\
00683 bool mesh_use_embedded_materials\n\
00684 \n\
00685 ================================================================================\n\
00686 MSG: geometry_msgs/Vector3\n\
00687 # This represents a vector in free space. \n\
00688 \n\
00689 float64 x\n\
00690 float64 y\n\
00691 float64 z\n\
00692 ================================================================================\n\
00693 MSG: std_msgs/ColorRGBA\n\
00694 float32 r\n\
00695 float32 g\n\
00696 float32 b\n\
00697 float32 a\n\
00698 \n\
00699 ";
00700 }
00701
00702 static const char* value(const ::visualization_msgs::InteractiveMarkerInit_<ContainerAllocator> &) { return value(); }
00703 };
00704
00705 }
00706 }
00707
00708 namespace ros
00709 {
00710 namespace serialization
00711 {
00712
00713 template<class ContainerAllocator> struct Serializer< ::visualization_msgs::InteractiveMarkerInit_<ContainerAllocator> >
00714 {
00715 template<typename Stream, typename T> inline static void allInOne(Stream& stream, T m)
00716 {
00717 stream.next(m.server_id);
00718 stream.next(m.seq_num);
00719 stream.next(m.markers);
00720 }
00721
00722 ROS_DECLARE_ALLINONE_SERIALIZER;
00723 };
00724 }
00725 }
00726
00727 namespace ros
00728 {
00729 namespace message_operations
00730 {
00731
00732 template<class ContainerAllocator>
00733 struct Printer< ::visualization_msgs::InteractiveMarkerInit_<ContainerAllocator> >
00734 {
00735 template<typename Stream> static void stream(Stream& s, const std::string& indent, const ::visualization_msgs::InteractiveMarkerInit_<ContainerAllocator> & v)
00736 {
00737 s << indent << "server_id: ";
00738 Printer<std::basic_string<char, std::char_traits<char>, typename ContainerAllocator::template rebind<char>::other > >::stream(s, indent + " ", v.server_id);
00739 s << indent << "seq_num: ";
00740 Printer<uint64_t>::stream(s, indent + " ", v.seq_num);
00741 s << indent << "markers[]" << std::endl;
00742 for (size_t i = 0; i < v.markers.size(); ++i)
00743 {
00744 s << indent << " markers[" << i << "]: ";
00745 s << std::endl;
00746 s << indent;
00747 Printer< ::visualization_msgs::InteractiveMarker_<ContainerAllocator> >::stream(s, indent + " ", v.markers[i]);
00748 }
00749 }
00750 };
00751
00752
00753 }
00754 }
00755
00756 #endif // VISUALIZATION_MSGS_MESSAGE_INTERACTIVEMARKERINIT_H
00757