$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/InteractiveMarkerInit.msg */ 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 }; // struct InteractiveMarkerInit 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 } // namespace visualization_msgs 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 } // namespace message_traits 00706 } // namespace ros 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 }; // struct InteractiveMarkerInit_ 00724 } // namespace serialization 00725 } // namespace ros 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 } // namespace message_operations 00754 } // namespace ros 00755 00756 #endif // VISUALIZATION_MSGS_MESSAGE_INTERACTIVEMARKERINIT_H 00757