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