00001
00002 #ifndef MOD_SEMANTIC_MAP_MESSAGE_SEMMAPOBJECT_H
00003 #define MOD_SEMANTIC_MAP_MESSAGE_SEMMAPOBJECT_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
00018 namespace mod_semantic_map
00019 {
00020 template <class ContainerAllocator>
00021 struct SemMapObject_ {
00022 typedef SemMapObject_<ContainerAllocator> Type;
00023
00024 SemMapObject_()
00025 : id(0)
00026 , type()
00027 , width(0.0)
00028 , depth(0.0)
00029 , height(0.0)
00030 , pose()
00031 , partOf(0)
00032 {
00033 }
00034
00035 SemMapObject_(const ContainerAllocator& _alloc)
00036 : id(0)
00037 , type(_alloc)
00038 , width(0.0)
00039 , depth(0.0)
00040 , height(0.0)
00041 , pose(_alloc)
00042 , partOf(0)
00043 {
00044 }
00045
00046 typedef int32_t _id_type;
00047 int32_t id;
00048
00049 typedef std::basic_string<char, std::char_traits<char>, typename ContainerAllocator::template rebind<char>::other > _type_type;
00050 std::basic_string<char, std::char_traits<char>, typename ContainerAllocator::template rebind<char>::other > type;
00051
00052 typedef float _width_type;
00053 float width;
00054
00055 typedef float _depth_type;
00056 float depth;
00057
00058 typedef float _height_type;
00059 float height;
00060
00061 typedef std::vector<float, typename ContainerAllocator::template rebind<float>::other > _pose_type;
00062 std::vector<float, typename ContainerAllocator::template rebind<float>::other > pose;
00063
00064 typedef int32_t _partOf_type;
00065 int32_t partOf;
00066
00067
00068 typedef boost::shared_ptr< ::mod_semantic_map::SemMapObject_<ContainerAllocator> > Ptr;
00069 typedef boost::shared_ptr< ::mod_semantic_map::SemMapObject_<ContainerAllocator> const> ConstPtr;
00070 boost::shared_ptr<std::map<std::string, std::string> > __connection_header;
00071 };
00072 typedef ::mod_semantic_map::SemMapObject_<std::allocator<void> > SemMapObject;
00073
00074 typedef boost::shared_ptr< ::mod_semantic_map::SemMapObject> SemMapObjectPtr;
00075 typedef boost::shared_ptr< ::mod_semantic_map::SemMapObject const> SemMapObjectConstPtr;
00076
00077
00078 template<typename ContainerAllocator>
00079 std::ostream& operator<<(std::ostream& s, const ::mod_semantic_map::SemMapObject_<ContainerAllocator> & v)
00080 {
00081 ros::message_operations::Printer< ::mod_semantic_map::SemMapObject_<ContainerAllocator> >::stream(s, "", v);
00082 return s;}
00083
00084 }
00085
00086 namespace ros
00087 {
00088 namespace message_traits
00089 {
00090 template<class ContainerAllocator> struct IsMessage< ::mod_semantic_map::SemMapObject_<ContainerAllocator> > : public TrueType {};
00091 template<class ContainerAllocator> struct IsMessage< ::mod_semantic_map::SemMapObject_<ContainerAllocator> const> : public TrueType {};
00092 template<class ContainerAllocator>
00093 struct MD5Sum< ::mod_semantic_map::SemMapObject_<ContainerAllocator> > {
00094 static const char* value()
00095 {
00096 return "b73de59dbea14f1d9d4ffff94cfce597";
00097 }
00098
00099 static const char* value(const ::mod_semantic_map::SemMapObject_<ContainerAllocator> &) { return value(); }
00100 static const uint64_t static_value1 = 0xb73de59dbea14f1dULL;
00101 static const uint64_t static_value2 = 0x9d4ffff94cfce597ULL;
00102 };
00103
00104 template<class ContainerAllocator>
00105 struct DataType< ::mod_semantic_map::SemMapObject_<ContainerAllocator> > {
00106 static const char* value()
00107 {
00108 return "mod_semantic_map/SemMapObject";
00109 }
00110
00111 static const char* value(const ::mod_semantic_map::SemMapObject_<ContainerAllocator> &) { return value(); }
00112 };
00113
00114 template<class ContainerAllocator>
00115 struct Definition< ::mod_semantic_map::SemMapObject_<ContainerAllocator> > {
00116 static const char* value()
00117 {
00118 return "# Semantic map object message type, Moritz Tenorth, tenorth@cs.tum.edu\n\
00119 int32 id # unique object identifier\n\
00120 string type # object class: {oven, cupboard, refrigerator, table, countertop, door, hinge, handle, knob, sink}\n\
00121 float32 width # object width\n\
00122 float32 depth # object width\n\
00123 float32 height # object width\n\
00124 float32[] pose # 4x4 pose matrix, row-based\n\
00125 int32 partOf # ID of the parent object (consistent with the ID on the first line)\n\
00126 \n\
00127 ";
00128 }
00129
00130 static const char* value(const ::mod_semantic_map::SemMapObject_<ContainerAllocator> &) { return value(); }
00131 };
00132
00133 }
00134 }
00135
00136 namespace ros
00137 {
00138 namespace serialization
00139 {
00140
00141 template<class ContainerAllocator> struct Serializer< ::mod_semantic_map::SemMapObject_<ContainerAllocator> >
00142 {
00143 template<typename Stream, typename T> inline static void allInOne(Stream& stream, T m)
00144 {
00145 stream.next(m.id);
00146 stream.next(m.type);
00147 stream.next(m.width);
00148 stream.next(m.depth);
00149 stream.next(m.height);
00150 stream.next(m.pose);
00151 stream.next(m.partOf);
00152 }
00153
00154 ROS_DECLARE_ALLINONE_SERIALIZER;
00155 };
00156 }
00157 }
00158
00159 namespace ros
00160 {
00161 namespace message_operations
00162 {
00163
00164 template<class ContainerAllocator>
00165 struct Printer< ::mod_semantic_map::SemMapObject_<ContainerAllocator> >
00166 {
00167 template<typename Stream> static void stream(Stream& s, const std::string& indent, const ::mod_semantic_map::SemMapObject_<ContainerAllocator> & v)
00168 {
00169 s << indent << "id: ";
00170 Printer<int32_t>::stream(s, indent + " ", v.id);
00171 s << indent << "type: ";
00172 Printer<std::basic_string<char, std::char_traits<char>, typename ContainerAllocator::template rebind<char>::other > >::stream(s, indent + " ", v.type);
00173 s << indent << "width: ";
00174 Printer<float>::stream(s, indent + " ", v.width);
00175 s << indent << "depth: ";
00176 Printer<float>::stream(s, indent + " ", v.depth);
00177 s << indent << "height: ";
00178 Printer<float>::stream(s, indent + " ", v.height);
00179 s << indent << "pose[]" << std::endl;
00180 for (size_t i = 0; i < v.pose.size(); ++i)
00181 {
00182 s << indent << " pose[" << i << "]: ";
00183 Printer<float>::stream(s, indent + " ", v.pose[i]);
00184 }
00185 s << indent << "partOf: ";
00186 Printer<int32_t>::stream(s, indent + " ", v.partOf);
00187 }
00188 };
00189
00190
00191 }
00192 }
00193
00194 #endif // MOD_SEMANTIC_MAP_MESSAGE_SEMMAPOBJECT_H
00195