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