00001
00002 #ifndef PR2_LASER_SNAPSHOTTER_MESSAGE_TILTLASERSNAPSHOTRESULT_H
00003 #define PR2_LASER_SNAPSHOTTER_MESSAGE_TILTLASERSNAPSHOTRESULT_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 "sensor_msgs/PointCloud.h"
00014
00015 namespace pr2_laser_snapshotter
00016 {
00017 template <class ContainerAllocator>
00018 struct TiltLaserSnapshotResult_ : public ros::Message
00019 {
00020 typedef TiltLaserSnapshotResult_<ContainerAllocator> Type;
00021
00022 TiltLaserSnapshotResult_()
00023 : cloud()
00024 {
00025 }
00026
00027 TiltLaserSnapshotResult_(const ContainerAllocator& _alloc)
00028 : cloud(_alloc)
00029 {
00030 }
00031
00032 typedef ::sensor_msgs::PointCloud_<ContainerAllocator> _cloud_type;
00033 ::sensor_msgs::PointCloud_<ContainerAllocator> cloud;
00034
00035
00036 private:
00037 static const char* __s_getDataType_() { return "pr2_laser_snapshotter/TiltLaserSnapshotResult"; }
00038 public:
00039 ROS_DEPRECATED static const std::string __s_getDataType() { return __s_getDataType_(); }
00040
00041 ROS_DEPRECATED const std::string __getDataType() const { return __s_getDataType_(); }
00042
00043 private:
00044 static const char* __s_getMD5Sum_() { return "4217b28a903e4ad7869a83b3653110ff"; }
00045 public:
00046 ROS_DEPRECATED static const std::string __s_getMD5Sum() { return __s_getMD5Sum_(); }
00047
00048 ROS_DEPRECATED const std::string __getMD5Sum() const { return __s_getMD5Sum_(); }
00049
00050 private:
00051 static const char* __s_getMessageDefinition_() { return "# ====== DO NOT MODIFY! AUTOGENERATED FROM AN ACTION DEFINITION ======\n\
00052 sensor_msgs/PointCloud cloud\n\
00053 \n\
00054 ================================================================================\n\
00055 MSG: sensor_msgs/PointCloud\n\
00056 # This message holds a collection of 3d points, plus optional additional\n\
00057 # information about each point.\n\
00058 \n\
00059 # Time of sensor data acquisition, coordinate frame ID.\n\
00060 Header header\n\
00061 \n\
00062 # Array of 3d points. Each Point32 should be interpreted as a 3d point\n\
00063 # in the frame given in the header.\n\
00064 geometry_msgs/Point32[] points\n\
00065 \n\
00066 # Each channel should have the same number of elements as points array,\n\
00067 # and the data in each channel should correspond 1:1 with each point.\n\
00068 # Channel names in common practice are listed in ChannelFloat32.msg.\n\
00069 ChannelFloat32[] channels\n\
00070 \n\
00071 ================================================================================\n\
00072 MSG: std_msgs/Header\n\
00073 # Standard metadata for higher-level stamped data types.\n\
00074 # This is generally used to communicate timestamped data \n\
00075 # in a particular coordinate frame.\n\
00076 # \n\
00077 # sequence ID: consecutively increasing ID \n\
00078 uint32 seq\n\
00079 #Two-integer timestamp that is expressed as:\n\
00080 # * stamp.secs: seconds (stamp_secs) since epoch\n\
00081 # * stamp.nsecs: nanoseconds since stamp_secs\n\
00082 # time-handling sugar is provided by the client library\n\
00083 time stamp\n\
00084 #Frame this data is associated with\n\
00085 # 0: no frame\n\
00086 # 1: global frame\n\
00087 string frame_id\n\
00088 \n\
00089 ================================================================================\n\
00090 MSG: geometry_msgs/Point32\n\
00091 # This contains the position of a point in free space(with 32 bits of precision).\n\
00092 # It is recommeded to use Point wherever possible instead of Point32. \n\
00093 # \n\
00094 # This recommendation is to promote interoperability. \n\
00095 #\n\
00096 # This message is designed to take up less space when sending\n\
00097 # lots of points at once, as in the case of a PointCloud. \n\
00098 \n\
00099 float32 x\n\
00100 float32 y\n\
00101 float32 z\n\
00102 ================================================================================\n\
00103 MSG: sensor_msgs/ChannelFloat32\n\
00104 # This message is used by the PointCloud message to hold optional data\n\
00105 # associated with each point in the cloud. The length of the values\n\
00106 # array should be the same as the length of the points array in the\n\
00107 # PointCloud, and each value should be associated with the corresponding\n\
00108 # point.\n\
00109 \n\
00110 # Channel names in existing practice include:\n\
00111 # \"u\", \"v\" - row and column (respectively) in the left stereo image.\n\
00112 # This is opposite to usual conventions but remains for\n\
00113 # historical reasons. The newer PointCloud2 message has no\n\
00114 # such problem.\n\
00115 # \"rgb\" - For point clouds produced by color stereo cameras. uint8\n\
00116 # (R,G,B) values packed into the least significant 24 bits,\n\
00117 # in order.\n\
00118 # \"intensity\" - laser or pixel intensity.\n\
00119 # \"distance\"\n\
00120 \n\
00121 # The channel name should give semantics of the channel (e.g.\n\
00122 # \"intensity\" instead of \"value\").\n\
00123 string name\n\
00124 \n\
00125 # The values array should be 1-1 with the elements of the associated\n\
00126 # PointCloud.\n\
00127 float32[] values\n\
00128 \n\
00129 "; }
00130 public:
00131 ROS_DEPRECATED static const std::string __s_getMessageDefinition() { return __s_getMessageDefinition_(); }
00132
00133 ROS_DEPRECATED const std::string __getMessageDefinition() const { return __s_getMessageDefinition_(); }
00134
00135 ROS_DEPRECATED virtual uint8_t *serialize(uint8_t *write_ptr, uint32_t seq) const
00136 {
00137 ros::serialization::OStream stream(write_ptr, 1000000000);
00138 ros::serialization::serialize(stream, cloud);
00139 return stream.getData();
00140 }
00141
00142 ROS_DEPRECATED virtual uint8_t *deserialize(uint8_t *read_ptr)
00143 {
00144 ros::serialization::IStream stream(read_ptr, 1000000000);
00145 ros::serialization::deserialize(stream, cloud);
00146 return stream.getData();
00147 }
00148
00149 ROS_DEPRECATED virtual uint32_t serializationLength() const
00150 {
00151 uint32_t size = 0;
00152 size += ros::serialization::serializationLength(cloud);
00153 return size;
00154 }
00155
00156 typedef boost::shared_ptr< ::pr2_laser_snapshotter::TiltLaserSnapshotResult_<ContainerAllocator> > Ptr;
00157 typedef boost::shared_ptr< ::pr2_laser_snapshotter::TiltLaserSnapshotResult_<ContainerAllocator> const> ConstPtr;
00158 };
00159 typedef ::pr2_laser_snapshotter::TiltLaserSnapshotResult_<std::allocator<void> > TiltLaserSnapshotResult;
00160
00161 typedef boost::shared_ptr< ::pr2_laser_snapshotter::TiltLaserSnapshotResult> TiltLaserSnapshotResultPtr;
00162 typedef boost::shared_ptr< ::pr2_laser_snapshotter::TiltLaserSnapshotResult const> TiltLaserSnapshotResultConstPtr;
00163
00164
00165 template<typename ContainerAllocator>
00166 std::ostream& operator<<(std::ostream& s, const ::pr2_laser_snapshotter::TiltLaserSnapshotResult_<ContainerAllocator> & v)
00167 {
00168 ros::message_operations::Printer< ::pr2_laser_snapshotter::TiltLaserSnapshotResult_<ContainerAllocator> >::stream(s, "", v);
00169 return s;}
00170
00171 }
00172
00173 namespace ros
00174 {
00175 namespace message_traits
00176 {
00177 template<class ContainerAllocator>
00178 struct MD5Sum< ::pr2_laser_snapshotter::TiltLaserSnapshotResult_<ContainerAllocator> > {
00179 static const char* value()
00180 {
00181 return "4217b28a903e4ad7869a83b3653110ff";
00182 }
00183
00184 static const char* value(const ::pr2_laser_snapshotter::TiltLaserSnapshotResult_<ContainerAllocator> &) { return value(); }
00185 static const uint64_t static_value1 = 0x4217b28a903e4ad7ULL;
00186 static const uint64_t static_value2 = 0x869a83b3653110ffULL;
00187 };
00188
00189 template<class ContainerAllocator>
00190 struct DataType< ::pr2_laser_snapshotter::TiltLaserSnapshotResult_<ContainerAllocator> > {
00191 static const char* value()
00192 {
00193 return "pr2_laser_snapshotter/TiltLaserSnapshotResult";
00194 }
00195
00196 static const char* value(const ::pr2_laser_snapshotter::TiltLaserSnapshotResult_<ContainerAllocator> &) { return value(); }
00197 };
00198
00199 template<class ContainerAllocator>
00200 struct Definition< ::pr2_laser_snapshotter::TiltLaserSnapshotResult_<ContainerAllocator> > {
00201 static const char* value()
00202 {
00203 return "# ====== DO NOT MODIFY! AUTOGENERATED FROM AN ACTION DEFINITION ======\n\
00204 sensor_msgs/PointCloud cloud\n\
00205 \n\
00206 ================================================================================\n\
00207 MSG: sensor_msgs/PointCloud\n\
00208 # This message holds a collection of 3d points, plus optional additional\n\
00209 # information about each point.\n\
00210 \n\
00211 # Time of sensor data acquisition, coordinate frame ID.\n\
00212 Header header\n\
00213 \n\
00214 # Array of 3d points. Each Point32 should be interpreted as a 3d point\n\
00215 # in the frame given in the header.\n\
00216 geometry_msgs/Point32[] points\n\
00217 \n\
00218 # Each channel should have the same number of elements as points array,\n\
00219 # and the data in each channel should correspond 1:1 with each point.\n\
00220 # Channel names in common practice are listed in ChannelFloat32.msg.\n\
00221 ChannelFloat32[] channels\n\
00222 \n\
00223 ================================================================================\n\
00224 MSG: std_msgs/Header\n\
00225 # Standard metadata for higher-level stamped data types.\n\
00226 # This is generally used to communicate timestamped data \n\
00227 # in a particular coordinate frame.\n\
00228 # \n\
00229 # sequence ID: consecutively increasing ID \n\
00230 uint32 seq\n\
00231 #Two-integer timestamp that is expressed as:\n\
00232 # * stamp.secs: seconds (stamp_secs) since epoch\n\
00233 # * stamp.nsecs: nanoseconds since stamp_secs\n\
00234 # time-handling sugar is provided by the client library\n\
00235 time stamp\n\
00236 #Frame this data is associated with\n\
00237 # 0: no frame\n\
00238 # 1: global frame\n\
00239 string frame_id\n\
00240 \n\
00241 ================================================================================\n\
00242 MSG: geometry_msgs/Point32\n\
00243 # This contains the position of a point in free space(with 32 bits of precision).\n\
00244 # It is recommeded to use Point wherever possible instead of Point32. \n\
00245 # \n\
00246 # This recommendation is to promote interoperability. \n\
00247 #\n\
00248 # This message is designed to take up less space when sending\n\
00249 # lots of points at once, as in the case of a PointCloud. \n\
00250 \n\
00251 float32 x\n\
00252 float32 y\n\
00253 float32 z\n\
00254 ================================================================================\n\
00255 MSG: sensor_msgs/ChannelFloat32\n\
00256 # This message is used by the PointCloud message to hold optional data\n\
00257 # associated with each point in the cloud. The length of the values\n\
00258 # array should be the same as the length of the points array in the\n\
00259 # PointCloud, and each value should be associated with the corresponding\n\
00260 # point.\n\
00261 \n\
00262 # Channel names in existing practice include:\n\
00263 # \"u\", \"v\" - row and column (respectively) in the left stereo image.\n\
00264 # This is opposite to usual conventions but remains for\n\
00265 # historical reasons. The newer PointCloud2 message has no\n\
00266 # such problem.\n\
00267 # \"rgb\" - For point clouds produced by color stereo cameras. uint8\n\
00268 # (R,G,B) values packed into the least significant 24 bits,\n\
00269 # in order.\n\
00270 # \"intensity\" - laser or pixel intensity.\n\
00271 # \"distance\"\n\
00272 \n\
00273 # The channel name should give semantics of the channel (e.g.\n\
00274 # \"intensity\" instead of \"value\").\n\
00275 string name\n\
00276 \n\
00277 # The values array should be 1-1 with the elements of the associated\n\
00278 # PointCloud.\n\
00279 float32[] values\n\
00280 \n\
00281 ";
00282 }
00283
00284 static const char* value(const ::pr2_laser_snapshotter::TiltLaserSnapshotResult_<ContainerAllocator> &) { return value(); }
00285 };
00286
00287 }
00288 }
00289
00290 namespace ros
00291 {
00292 namespace serialization
00293 {
00294
00295 template<class ContainerAllocator> struct Serializer< ::pr2_laser_snapshotter::TiltLaserSnapshotResult_<ContainerAllocator> >
00296 {
00297 template<typename Stream, typename T> inline static void allInOne(Stream& stream, T m)
00298 {
00299 stream.next(m.cloud);
00300 }
00301
00302 ROS_DECLARE_ALLINONE_SERIALIZER;
00303 };
00304 }
00305 }
00306
00307 namespace ros
00308 {
00309 namespace message_operations
00310 {
00311
00312 template<class ContainerAllocator>
00313 struct Printer< ::pr2_laser_snapshotter::TiltLaserSnapshotResult_<ContainerAllocator> >
00314 {
00315 template<typename Stream> static void stream(Stream& s, const std::string& indent, const ::pr2_laser_snapshotter::TiltLaserSnapshotResult_<ContainerAllocator> & v)
00316 {
00317 s << indent << "cloud: ";
00318 s << std::endl;
00319 Printer< ::sensor_msgs::PointCloud_<ContainerAllocator> >::stream(s, indent + " ", v.cloud);
00320 }
00321 };
00322
00323
00324 }
00325 }
00326
00327 #endif // PR2_LASER_SNAPSHOTTER_MESSAGE_TILTLASERSNAPSHOTRESULT_H
00328