00001
00002 #ifndef GRAPH_MAPPING_MSGS_MESSAGE_CONSTRAINTGRAPHDIFF_H
00003 #define GRAPH_MAPPING_MSGS_MESSAGE_CONSTRAINTGRAPHDIFF_H
00004 #include <string>
00005 #include <vector>
00006 #include <ostream>
00007 #include "ros/serialization.h"
00008 #include "ros/builtin_message_traits.h"
00009 #include "ros/message_operations.h"
00010 #include "ros/message.h"
00011 #include "ros/time.h"
00012
00013 #include "graph_mapping_msgs/Node.h"
00014 #include "graph_mapping_msgs/Edge.h"
00015
00016 namespace graph_mapping_msgs
00017 {
00018 template <class ContainerAllocator>
00019 struct ConstraintGraphDiff_ : public ros::Message
00020 {
00021 typedef ConstraintGraphDiff_<ContainerAllocator> Type;
00022
00023 ConstraintGraphDiff_()
00024 : id(0)
00025 , new_node_timestamps()
00026 , new_nodes()
00027 , new_edges()
00028 {
00029 }
00030
00031 ConstraintGraphDiff_(const ContainerAllocator& _alloc)
00032 : id(0)
00033 , new_node_timestamps(_alloc)
00034 , new_nodes(_alloc)
00035 , new_edges(_alloc)
00036 {
00037 }
00038
00039 typedef uint64_t _id_type;
00040 uint64_t id;
00041
00042 typedef std::vector<ros::Time, typename ContainerAllocator::template rebind<ros::Time>::other > _new_node_timestamps_type;
00043 std::vector<ros::Time, typename ContainerAllocator::template rebind<ros::Time>::other > new_node_timestamps;
00044
00045 typedef std::vector< ::graph_mapping_msgs::Node_<ContainerAllocator> , typename ContainerAllocator::template rebind< ::graph_mapping_msgs::Node_<ContainerAllocator> >::other > _new_nodes_type;
00046 std::vector< ::graph_mapping_msgs::Node_<ContainerAllocator> , typename ContainerAllocator::template rebind< ::graph_mapping_msgs::Node_<ContainerAllocator> >::other > new_nodes;
00047
00048 typedef std::vector< ::graph_mapping_msgs::Edge_<ContainerAllocator> , typename ContainerAllocator::template rebind< ::graph_mapping_msgs::Edge_<ContainerAllocator> >::other > _new_edges_type;
00049 std::vector< ::graph_mapping_msgs::Edge_<ContainerAllocator> , typename ContainerAllocator::template rebind< ::graph_mapping_msgs::Edge_<ContainerAllocator> >::other > new_edges;
00050
00051
00052 ROS_DEPRECATED uint32_t get_new_node_timestamps_size() const { return (uint32_t)new_node_timestamps.size(); }
00053 ROS_DEPRECATED void set_new_node_timestamps_size(uint32_t size) { new_node_timestamps.resize((size_t)size); }
00054 ROS_DEPRECATED void get_new_node_timestamps_vec(std::vector<ros::Time, typename ContainerAllocator::template rebind<ros::Time>::other > & vec) const { vec = this->new_node_timestamps; }
00055 ROS_DEPRECATED void set_new_node_timestamps_vec(const std::vector<ros::Time, typename ContainerAllocator::template rebind<ros::Time>::other > & vec) { this->new_node_timestamps = vec; }
00056 ROS_DEPRECATED uint32_t get_new_nodes_size() const { return (uint32_t)new_nodes.size(); }
00057 ROS_DEPRECATED void set_new_nodes_size(uint32_t size) { new_nodes.resize((size_t)size); }
00058 ROS_DEPRECATED void get_new_nodes_vec(std::vector< ::graph_mapping_msgs::Node_<ContainerAllocator> , typename ContainerAllocator::template rebind< ::graph_mapping_msgs::Node_<ContainerAllocator> >::other > & vec) const { vec = this->new_nodes; }
00059 ROS_DEPRECATED void set_new_nodes_vec(const std::vector< ::graph_mapping_msgs::Node_<ContainerAllocator> , typename ContainerAllocator::template rebind< ::graph_mapping_msgs::Node_<ContainerAllocator> >::other > & vec) { this->new_nodes = vec; }
00060 ROS_DEPRECATED uint32_t get_new_edges_size() const { return (uint32_t)new_edges.size(); }
00061 ROS_DEPRECATED void set_new_edges_size(uint32_t size) { new_edges.resize((size_t)size); }
00062 ROS_DEPRECATED void get_new_edges_vec(std::vector< ::graph_mapping_msgs::Edge_<ContainerAllocator> , typename ContainerAllocator::template rebind< ::graph_mapping_msgs::Edge_<ContainerAllocator> >::other > & vec) const { vec = this->new_edges; }
00063 ROS_DEPRECATED void set_new_edges_vec(const std::vector< ::graph_mapping_msgs::Edge_<ContainerAllocator> , typename ContainerAllocator::template rebind< ::graph_mapping_msgs::Edge_<ContainerAllocator> >::other > & vec) { this->new_edges = vec; }
00064 private:
00065 static const char* __s_getDataType_() { return "graph_mapping_msgs/ConstraintGraphDiff"; }
00066 public:
00067 ROS_DEPRECATED static const std::string __s_getDataType() { return __s_getDataType_(); }
00068
00069 ROS_DEPRECATED const std::string __getDataType() const { return __s_getDataType_(); }
00070
00071 private:
00072 static const char* __s_getMD5Sum_() { return "41fe5af4a764149d81007b53c054a7fe"; }
00073 public:
00074 ROS_DEPRECATED static const std::string __s_getMD5Sum() { return __s_getMD5Sum_(); }
00075
00076 ROS_DEPRECATED const std::string __getMD5Sum() const { return __s_getMD5Sum_(); }
00077
00078 private:
00079 static const char* __s_getMessageDefinition_() { return "# The id of the graph or diff that this one refers to, or 0 if this is the first one\n\
00080 uint64 id\n\
00081 \n\
00082 time[] new_node_timestamps\n\
00083 Node[] new_nodes\n\
00084 Edge[] new_edges\n\
00085 \n\
00086 ================================================================================\n\
00087 MSG: graph_mapping_msgs/Node\n\
00088 uint32 id\n\
00089 \n\
00090 # This array has length 1 if the node has an optimized pose; 0 otherwise\n\
00091 geometry_msgs/Pose[] optimized_pose\n\
00092 \n\
00093 \n\
00094 ================================================================================\n\
00095 MSG: geometry_msgs/Pose\n\
00096 # A representation of pose in free space, composed of postion and orientation. \n\
00097 Point position\n\
00098 Quaternion orientation\n\
00099 \n\
00100 ================================================================================\n\
00101 MSG: geometry_msgs/Point\n\
00102 # This contains the position of a point in free space\n\
00103 float64 x\n\
00104 float64 y\n\
00105 float64 z\n\
00106 \n\
00107 ================================================================================\n\
00108 MSG: geometry_msgs/Quaternion\n\
00109 # This represents an orientation in free space in quaternion form.\n\
00110 \n\
00111 float64 x\n\
00112 float64 y\n\
00113 float64 z\n\
00114 float64 w\n\
00115 \n\
00116 ================================================================================\n\
00117 MSG: graph_mapping_msgs/Edge\n\
00118 uint32 id\n\
00119 GraphConstraint constraint\n\
00120 \n\
00121 ================================================================================\n\
00122 MSG: graph_mapping_msgs/GraphConstraint\n\
00123 uint32 src\n\
00124 uint32 dest\n\
00125 PoseWithPrecision constraint\n\
00126 ================================================================================\n\
00127 MSG: graph_mapping_msgs/PoseWithPrecision\n\
00128 geometry_msgs/Pose pose\n\
00129 float64[36] precision\n\
00130 "; }
00131 public:
00132 ROS_DEPRECATED static const std::string __s_getMessageDefinition() { return __s_getMessageDefinition_(); }
00133
00134 ROS_DEPRECATED const std::string __getMessageDefinition() const { return __s_getMessageDefinition_(); }
00135
00136 ROS_DEPRECATED virtual uint8_t *serialize(uint8_t *write_ptr, uint32_t seq) const
00137 {
00138 ros::serialization::OStream stream(write_ptr, 1000000000);
00139 ros::serialization::serialize(stream, id);
00140 ros::serialization::serialize(stream, new_node_timestamps);
00141 ros::serialization::serialize(stream, new_nodes);
00142 ros::serialization::serialize(stream, new_edges);
00143 return stream.getData();
00144 }
00145
00146 ROS_DEPRECATED virtual uint8_t *deserialize(uint8_t *read_ptr)
00147 {
00148 ros::serialization::IStream stream(read_ptr, 1000000000);
00149 ros::serialization::deserialize(stream, id);
00150 ros::serialization::deserialize(stream, new_node_timestamps);
00151 ros::serialization::deserialize(stream, new_nodes);
00152 ros::serialization::deserialize(stream, new_edges);
00153 return stream.getData();
00154 }
00155
00156 ROS_DEPRECATED virtual uint32_t serializationLength() const
00157 {
00158 uint32_t size = 0;
00159 size += ros::serialization::serializationLength(id);
00160 size += ros::serialization::serializationLength(new_node_timestamps);
00161 size += ros::serialization::serializationLength(new_nodes);
00162 size += ros::serialization::serializationLength(new_edges);
00163 return size;
00164 }
00165
00166 typedef boost::shared_ptr< ::graph_mapping_msgs::ConstraintGraphDiff_<ContainerAllocator> > Ptr;
00167 typedef boost::shared_ptr< ::graph_mapping_msgs::ConstraintGraphDiff_<ContainerAllocator> const> ConstPtr;
00168 };
00169 typedef ::graph_mapping_msgs::ConstraintGraphDiff_<std::allocator<void> > ConstraintGraphDiff;
00170
00171 typedef boost::shared_ptr< ::graph_mapping_msgs::ConstraintGraphDiff> ConstraintGraphDiffPtr;
00172 typedef boost::shared_ptr< ::graph_mapping_msgs::ConstraintGraphDiff const> ConstraintGraphDiffConstPtr;
00173
00174
00175 template<typename ContainerAllocator>
00176 std::ostream& operator<<(std::ostream& s, const ::graph_mapping_msgs::ConstraintGraphDiff_<ContainerAllocator> & v)
00177 {
00178 ros::message_operations::Printer< ::graph_mapping_msgs::ConstraintGraphDiff_<ContainerAllocator> >::stream(s, "", v);
00179 return s;}
00180
00181 }
00182
00183 namespace ros
00184 {
00185 namespace message_traits
00186 {
00187 template<class ContainerAllocator>
00188 struct MD5Sum< ::graph_mapping_msgs::ConstraintGraphDiff_<ContainerAllocator> > {
00189 static const char* value()
00190 {
00191 return "41fe5af4a764149d81007b53c054a7fe";
00192 }
00193
00194 static const char* value(const ::graph_mapping_msgs::ConstraintGraphDiff_<ContainerAllocator> &) { return value(); }
00195 static const uint64_t static_value1 = 0x41fe5af4a764149dULL;
00196 static const uint64_t static_value2 = 0x81007b53c054a7feULL;
00197 };
00198
00199 template<class ContainerAllocator>
00200 struct DataType< ::graph_mapping_msgs::ConstraintGraphDiff_<ContainerAllocator> > {
00201 static const char* value()
00202 {
00203 return "graph_mapping_msgs/ConstraintGraphDiff";
00204 }
00205
00206 static const char* value(const ::graph_mapping_msgs::ConstraintGraphDiff_<ContainerAllocator> &) { return value(); }
00207 };
00208
00209 template<class ContainerAllocator>
00210 struct Definition< ::graph_mapping_msgs::ConstraintGraphDiff_<ContainerAllocator> > {
00211 static const char* value()
00212 {
00213 return "# The id of the graph or diff that this one refers to, or 0 if this is the first one\n\
00214 uint64 id\n\
00215 \n\
00216 time[] new_node_timestamps\n\
00217 Node[] new_nodes\n\
00218 Edge[] new_edges\n\
00219 \n\
00220 ================================================================================\n\
00221 MSG: graph_mapping_msgs/Node\n\
00222 uint32 id\n\
00223 \n\
00224 # This array has length 1 if the node has an optimized pose; 0 otherwise\n\
00225 geometry_msgs/Pose[] optimized_pose\n\
00226 \n\
00227 \n\
00228 ================================================================================\n\
00229 MSG: geometry_msgs/Pose\n\
00230 # A representation of pose in free space, composed of postion and orientation. \n\
00231 Point position\n\
00232 Quaternion orientation\n\
00233 \n\
00234 ================================================================================\n\
00235 MSG: geometry_msgs/Point\n\
00236 # This contains the position of a point in free space\n\
00237 float64 x\n\
00238 float64 y\n\
00239 float64 z\n\
00240 \n\
00241 ================================================================================\n\
00242 MSG: geometry_msgs/Quaternion\n\
00243 # This represents an orientation in free space in quaternion form.\n\
00244 \n\
00245 float64 x\n\
00246 float64 y\n\
00247 float64 z\n\
00248 float64 w\n\
00249 \n\
00250 ================================================================================\n\
00251 MSG: graph_mapping_msgs/Edge\n\
00252 uint32 id\n\
00253 GraphConstraint constraint\n\
00254 \n\
00255 ================================================================================\n\
00256 MSG: graph_mapping_msgs/GraphConstraint\n\
00257 uint32 src\n\
00258 uint32 dest\n\
00259 PoseWithPrecision constraint\n\
00260 ================================================================================\n\
00261 MSG: graph_mapping_msgs/PoseWithPrecision\n\
00262 geometry_msgs/Pose pose\n\
00263 float64[36] precision\n\
00264 ";
00265 }
00266
00267 static const char* value(const ::graph_mapping_msgs::ConstraintGraphDiff_<ContainerAllocator> &) { return value(); }
00268 };
00269
00270 }
00271 }
00272
00273 namespace ros
00274 {
00275 namespace serialization
00276 {
00277
00278 template<class ContainerAllocator> struct Serializer< ::graph_mapping_msgs::ConstraintGraphDiff_<ContainerAllocator> >
00279 {
00280 template<typename Stream, typename T> inline static void allInOne(Stream& stream, T m)
00281 {
00282 stream.next(m.id);
00283 stream.next(m.new_node_timestamps);
00284 stream.next(m.new_nodes);
00285 stream.next(m.new_edges);
00286 }
00287
00288 ROS_DECLARE_ALLINONE_SERIALIZER;
00289 };
00290 }
00291 }
00292
00293 namespace ros
00294 {
00295 namespace message_operations
00296 {
00297
00298 template<class ContainerAllocator>
00299 struct Printer< ::graph_mapping_msgs::ConstraintGraphDiff_<ContainerAllocator> >
00300 {
00301 template<typename Stream> static void stream(Stream& s, const std::string& indent, const ::graph_mapping_msgs::ConstraintGraphDiff_<ContainerAllocator> & v)
00302 {
00303 s << indent << "id: ";
00304 Printer<uint64_t>::stream(s, indent + " ", v.id);
00305 s << indent << "new_node_timestamps[]" << std::endl;
00306 for (size_t i = 0; i < v.new_node_timestamps.size(); ++i)
00307 {
00308 s << indent << " new_node_timestamps[" << i << "]: ";
00309 Printer<ros::Time>::stream(s, indent + " ", v.new_node_timestamps[i]);
00310 }
00311 s << indent << "new_nodes[]" << std::endl;
00312 for (size_t i = 0; i < v.new_nodes.size(); ++i)
00313 {
00314 s << indent << " new_nodes[" << i << "]: ";
00315 s << std::endl;
00316 s << indent;
00317 Printer< ::graph_mapping_msgs::Node_<ContainerAllocator> >::stream(s, indent + " ", v.new_nodes[i]);
00318 }
00319 s << indent << "new_edges[]" << std::endl;
00320 for (size_t i = 0; i < v.new_edges.size(); ++i)
00321 {
00322 s << indent << " new_edges[" << i << "]: ";
00323 s << std::endl;
00324 s << indent;
00325 Printer< ::graph_mapping_msgs::Edge_<ContainerAllocator> >::stream(s, indent + " ", v.new_edges[i]);
00326 }
00327 }
00328 };
00329
00330
00331 }
00332 }
00333
00334 #endif // GRAPH_MAPPING_MSGS_MESSAGE_CONSTRAINTGRAPHDIFF_H
00335