00001
00002 #ifndef TRIANGLE_MESH_MSGS_MESSAGE_TRIANGLEMESH_H
00003 #define TRIANGLE_MESH_MSGS_MESSAGE_TRIANGLEMESH_H
00004 #include <string>
00005 #include <vector>
00006 #include <map>
00007 #include <ostream>
00008 #include "ros/serialization.h"
00009 #include "ros/builtin_message_traits.h"
00010 #include "ros/message_operations.h"
00011 #include "ros/time.h"
00012
00013 #include "ros/macros.h"
00014
00015 #include "ros/assert.h"
00016
00017 #include "std_msgs/Header.h"
00018 #include "geometry_msgs/Point32.h"
00019 #include "geometry_msgs/Point32.h"
00020 #include "triangle_mesh_msgs/Triangle.h"
00021
00022 namespace triangle_mesh_msgs
00023 {
00024 template <class ContainerAllocator>
00025 struct TriangleMesh_ {
00026 typedef TriangleMesh_<ContainerAllocator> Type;
00027
00028 TriangleMesh_()
00029 : header()
00030 , points()
00031 , normals()
00032 , intensities()
00033 , triangles()
00034 , sending_node()
00035 {
00036 }
00037
00038 TriangleMesh_(const ContainerAllocator& _alloc)
00039 : header(_alloc)
00040 , points(_alloc)
00041 , normals(_alloc)
00042 , intensities(_alloc)
00043 , triangles(_alloc)
00044 , sending_node(_alloc)
00045 {
00046 }
00047
00048 typedef ::std_msgs::Header_<ContainerAllocator> _header_type;
00049 ::std_msgs::Header_<ContainerAllocator> header;
00050
00051 typedef std::vector< ::geometry_msgs::Point32_<ContainerAllocator> , typename ContainerAllocator::template rebind< ::geometry_msgs::Point32_<ContainerAllocator> >::other > _points_type;
00052 std::vector< ::geometry_msgs::Point32_<ContainerAllocator> , typename ContainerAllocator::template rebind< ::geometry_msgs::Point32_<ContainerAllocator> >::other > points;
00053
00054 typedef std::vector< ::geometry_msgs::Point32_<ContainerAllocator> , typename ContainerAllocator::template rebind< ::geometry_msgs::Point32_<ContainerAllocator> >::other > _normals_type;
00055 std::vector< ::geometry_msgs::Point32_<ContainerAllocator> , typename ContainerAllocator::template rebind< ::geometry_msgs::Point32_<ContainerAllocator> >::other > normals;
00056
00057 typedef std::vector<float, typename ContainerAllocator::template rebind<float>::other > _intensities_type;
00058 std::vector<float, typename ContainerAllocator::template rebind<float>::other > intensities;
00059
00060 typedef std::vector< ::triangle_mesh_msgs::Triangle_<ContainerAllocator> , typename ContainerAllocator::template rebind< ::triangle_mesh_msgs::Triangle_<ContainerAllocator> >::other > _triangles_type;
00061 std::vector< ::triangle_mesh_msgs::Triangle_<ContainerAllocator> , typename ContainerAllocator::template rebind< ::triangle_mesh_msgs::Triangle_<ContainerAllocator> >::other > triangles;
00062
00063 typedef std::basic_string<char, std::char_traits<char>, typename ContainerAllocator::template rebind<char>::other > _sending_node_type;
00064 std::basic_string<char, std::char_traits<char>, typename ContainerAllocator::template rebind<char>::other > sending_node;
00065
00066
00067 typedef boost::shared_ptr< ::triangle_mesh_msgs::TriangleMesh_<ContainerAllocator> > Ptr;
00068 typedef boost::shared_ptr< ::triangle_mesh_msgs::TriangleMesh_<ContainerAllocator> const> ConstPtr;
00069 boost::shared_ptr<std::map<std::string, std::string> > __connection_header;
00070 };
00071 typedef ::triangle_mesh_msgs::TriangleMesh_<std::allocator<void> > TriangleMesh;
00072
00073 typedef boost::shared_ptr< ::triangle_mesh_msgs::TriangleMesh> TriangleMeshPtr;
00074 typedef boost::shared_ptr< ::triangle_mesh_msgs::TriangleMesh const> TriangleMeshConstPtr;
00075
00076
00077 template<typename ContainerAllocator>
00078 std::ostream& operator<<(std::ostream& s, const ::triangle_mesh_msgs::TriangleMesh_<ContainerAllocator> & v)
00079 {
00080 ros::message_operations::Printer< ::triangle_mesh_msgs::TriangleMesh_<ContainerAllocator> >::stream(s, "", v);
00081 return s;}
00082
00083 }
00084
00085 namespace ros
00086 {
00087 namespace message_traits
00088 {
00089 template<class ContainerAllocator> struct IsMessage< ::triangle_mesh_msgs::TriangleMesh_<ContainerAllocator> > : public TrueType {};
00090 template<class ContainerAllocator> struct IsMessage< ::triangle_mesh_msgs::TriangleMesh_<ContainerAllocator> const> : public TrueType {};
00091 template<class ContainerAllocator>
00092 struct MD5Sum< ::triangle_mesh_msgs::TriangleMesh_<ContainerAllocator> > {
00093 static const char* value()
00094 {
00095 return "2cd8125b80abf942af5656b65994fe56";
00096 }
00097
00098 static const char* value(const ::triangle_mesh_msgs::TriangleMesh_<ContainerAllocator> &) { return value(); }
00099 static const uint64_t static_value1 = 0x2cd8125b80abf942ULL;
00100 static const uint64_t static_value2 = 0xaf5656b65994fe56ULL;
00101 };
00102
00103 template<class ContainerAllocator>
00104 struct DataType< ::triangle_mesh_msgs::TriangleMesh_<ContainerAllocator> > {
00105 static const char* value()
00106 {
00107 return "triangle_mesh_msgs/TriangleMesh";
00108 }
00109
00110 static const char* value(const ::triangle_mesh_msgs::TriangleMesh_<ContainerAllocator> &) { return value(); }
00111 };
00112
00113 template<class ContainerAllocator>
00114 struct Definition< ::triangle_mesh_msgs::TriangleMesh_<ContainerAllocator> > {
00115 static const char* value()
00116 {
00117 return "Header header\n\
00118 geometry_msgs/Point32[] points\n\
00119 geometry_msgs/Point32[] normals\n\
00120 float32[] intensities\n\
00121 triangle_mesh_msgs/Triangle[] triangles\n\
00122 string sending_node\n\
00123 \n\
00124 ================================================================================\n\
00125 MSG: std_msgs/Header\n\
00126 # Standard metadata for higher-level stamped data types.\n\
00127 # This is generally used to communicate timestamped data \n\
00128 # in a particular coordinate frame.\n\
00129 # \n\
00130 # sequence ID: consecutively increasing ID \n\
00131 uint32 seq\n\
00132 #Two-integer timestamp that is expressed as:\n\
00133 # * stamp.secs: seconds (stamp_secs) since epoch\n\
00134 # * stamp.nsecs: nanoseconds since stamp_secs\n\
00135 # time-handling sugar is provided by the client library\n\
00136 time stamp\n\
00137 #Frame this data is associated with\n\
00138 # 0: no frame\n\
00139 # 1: global frame\n\
00140 string frame_id\n\
00141 \n\
00142 ================================================================================\n\
00143 MSG: geometry_msgs/Point32\n\
00144 # This contains the position of a point in free space(with 32 bits of precision).\n\
00145 # It is recommeded to use Point wherever possible instead of Point32. \n\
00146 # \n\
00147 # This recommendation is to promote interoperability. \n\
00148 #\n\
00149 # This message is designed to take up less space when sending\n\
00150 # lots of points at once, as in the case of a PointCloud. \n\
00151 \n\
00152 float32 x\n\
00153 float32 y\n\
00154 float32 z\n\
00155 ================================================================================\n\
00156 MSG: triangle_mesh_msgs/Triangle\n\
00157 int32 i\n\
00158 int32 j\n\
00159 int32 k\n\
00160 \n\
00161 \n\
00162 \n\
00163 ";
00164 }
00165
00166 static const char* value(const ::triangle_mesh_msgs::TriangleMesh_<ContainerAllocator> &) { return value(); }
00167 };
00168
00169 template<class ContainerAllocator> struct HasHeader< ::triangle_mesh_msgs::TriangleMesh_<ContainerAllocator> > : public TrueType {};
00170 template<class ContainerAllocator> struct HasHeader< const ::triangle_mesh_msgs::TriangleMesh_<ContainerAllocator> > : public TrueType {};
00171 }
00172 }
00173
00174 namespace ros
00175 {
00176 namespace serialization
00177 {
00178
00179 template<class ContainerAllocator> struct Serializer< ::triangle_mesh_msgs::TriangleMesh_<ContainerAllocator> >
00180 {
00181 template<typename Stream, typename T> inline static void allInOne(Stream& stream, T m)
00182 {
00183 stream.next(m.header);
00184 stream.next(m.points);
00185 stream.next(m.normals);
00186 stream.next(m.intensities);
00187 stream.next(m.triangles);
00188 stream.next(m.sending_node);
00189 }
00190
00191 ROS_DECLARE_ALLINONE_SERIALIZER;
00192 };
00193 }
00194 }
00195
00196 namespace ros
00197 {
00198 namespace message_operations
00199 {
00200
00201 template<class ContainerAllocator>
00202 struct Printer< ::triangle_mesh_msgs::TriangleMesh_<ContainerAllocator> >
00203 {
00204 template<typename Stream> static void stream(Stream& s, const std::string& indent, const ::triangle_mesh_msgs::TriangleMesh_<ContainerAllocator> & v)
00205 {
00206 s << indent << "header: ";
00207 s << std::endl;
00208 Printer< ::std_msgs::Header_<ContainerAllocator> >::stream(s, indent + " ", v.header);
00209 s << indent << "points[]" << std::endl;
00210 for (size_t i = 0; i < v.points.size(); ++i)
00211 {
00212 s << indent << " points[" << i << "]: ";
00213 s << std::endl;
00214 s << indent;
00215 Printer< ::geometry_msgs::Point32_<ContainerAllocator> >::stream(s, indent + " ", v.points[i]);
00216 }
00217 s << indent << "normals[]" << std::endl;
00218 for (size_t i = 0; i < v.normals.size(); ++i)
00219 {
00220 s << indent << " normals[" << i << "]: ";
00221 s << std::endl;
00222 s << indent;
00223 Printer< ::geometry_msgs::Point32_<ContainerAllocator> >::stream(s, indent + " ", v.normals[i]);
00224 }
00225 s << indent << "intensities[]" << std::endl;
00226 for (size_t i = 0; i < v.intensities.size(); ++i)
00227 {
00228 s << indent << " intensities[" << i << "]: ";
00229 Printer<float>::stream(s, indent + " ", v.intensities[i]);
00230 }
00231 s << indent << "triangles[]" << std::endl;
00232 for (size_t i = 0; i < v.triangles.size(); ++i)
00233 {
00234 s << indent << " triangles[" << i << "]: ";
00235 s << std::endl;
00236 s << indent;
00237 Printer< ::triangle_mesh_msgs::Triangle_<ContainerAllocator> >::stream(s, indent + " ", v.triangles[i]);
00238 }
00239 s << indent << "sending_node: ";
00240 Printer<std::basic_string<char, std::char_traits<char>, typename ContainerAllocator::template rebind<char>::other > >::stream(s, indent + " ", v.sending_node);
00241 }
00242 };
00243
00244
00245 }
00246 }
00247
00248 #endif // TRIANGLE_MESH_MSGS_MESSAGE_TRIANGLEMESH_H
00249