// Generated by gencpp from file std_msgs/MultiArrayLayout.msg // DO NOT EDIT! #ifndef STD_MSGS_MESSAGE_MULTIARRAYLAYOUT_H #define STD_MSGS_MESSAGE_MULTIARRAYLAYOUT_H #include #include #include #include #include #include #include #include namespace std_msgs { template struct MultiArrayLayout_ { typedef MultiArrayLayout_ Type; MultiArrayLayout_() : dim() , data_offset(0) { } MultiArrayLayout_(const ContainerAllocator& _alloc) : dim(_alloc) , data_offset(0) { (void)_alloc; } typedef std::vector< ::std_msgs::MultiArrayDimension_ , typename std::allocator_traits::template rebind_alloc< ::std_msgs::MultiArrayDimension_ >> _dim_type; _dim_type dim; typedef uint32_t _data_offset_type; _data_offset_type data_offset; typedef boost::shared_ptr< ::std_msgs::MultiArrayLayout_ > Ptr; typedef boost::shared_ptr< ::std_msgs::MultiArrayLayout_ const> ConstPtr; }; // struct MultiArrayLayout_ typedef ::std_msgs::MultiArrayLayout_ > MultiArrayLayout; typedef boost::shared_ptr< ::std_msgs::MultiArrayLayout > MultiArrayLayoutPtr; typedef boost::shared_ptr< ::std_msgs::MultiArrayLayout const> MultiArrayLayoutConstPtr; // constants requiring out of line definition template std::ostream& operator<<(std::ostream& s, const ::std_msgs::MultiArrayLayout_ & v) { ros::message_operations::Printer< ::std_msgs::MultiArrayLayout_ >::stream(s, "", v); return s; } template bool operator==(const ::std_msgs::MultiArrayLayout_ & lhs, const ::std_msgs::MultiArrayLayout_ & rhs) { return lhs.dim == rhs.dim && lhs.data_offset == rhs.data_offset; } template bool operator!=(const ::std_msgs::MultiArrayLayout_ & lhs, const ::std_msgs::MultiArrayLayout_ & rhs) { return !(lhs == rhs); } } // namespace std_msgs namespace ros { namespace message_traits { template struct IsMessage< ::std_msgs::MultiArrayLayout_ > : TrueType { }; template struct IsMessage< ::std_msgs::MultiArrayLayout_ const> : TrueType { }; template struct IsFixedSize< ::std_msgs::MultiArrayLayout_ > : FalseType { }; template struct IsFixedSize< ::std_msgs::MultiArrayLayout_ const> : FalseType { }; template struct HasHeader< ::std_msgs::MultiArrayLayout_ > : FalseType { }; template struct HasHeader< ::std_msgs::MultiArrayLayout_ const> : FalseType { }; template struct MD5Sum< ::std_msgs::MultiArrayLayout_ > { static const char* value() { return "0fed2a11c13e11c5571b4e2a995a91a3"; } static const char* value(const ::std_msgs::MultiArrayLayout_&) { return value(); } static const uint64_t static_value1 = 0x0fed2a11c13e11c5ULL; static const uint64_t static_value2 = 0x571b4e2a995a91a3ULL; }; template struct DataType< ::std_msgs::MultiArrayLayout_ > { static const char* value() { return "std_msgs/MultiArrayLayout"; } static const char* value(const ::std_msgs::MultiArrayLayout_&) { return value(); } }; template struct Definition< ::std_msgs::MultiArrayLayout_ > { static const char* value() { return "# The multiarray declares a generic multi-dimensional array of a\n" "# particular data type. Dimensions are ordered from outer most\n" "# to inner most.\n" "\n" "MultiArrayDimension[] dim # Array of dimension properties\n" "uint32 data_offset # padding elements at front of data\n" "\n" "# Accessors should ALWAYS be written in terms of dimension stride\n" "# and specified outer-most dimension first.\n" "# \n" "# multiarray(i,j,k) = data[data_offset + dim_stride[1]*i + dim_stride[2]*j + k]\n" "#\n" "# A standard, 3-channel 640x480 image with interleaved color channels\n" "# would be specified as:\n" "#\n" "# dim[0].label = \"height\"\n" "# dim[0].size = 480\n" "# dim[0].stride = 3*640*480 = 921600 (note dim[0] stride is just size of image)\n" "# dim[1].label = \"width\"\n" "# dim[1].size = 640\n" "# dim[1].stride = 3*640 = 1920\n" "# dim[2].label = \"channel\"\n" "# dim[2].size = 3\n" "# dim[2].stride = 3\n" "#\n" "# multiarray(i,j,k) refers to the ith row, jth column, and kth channel.\n" "\n" "================================================================================\n" "MSG: std_msgs/MultiArrayDimension\n" "string label # label of given dimension\n" "uint32 size # size of given dimension (in type units)\n" "uint32 stride # stride of given dimension\n" ; } static const char* value(const ::std_msgs::MultiArrayLayout_&) { return value(); } }; } // namespace message_traits } // namespace ros namespace ros { namespace serialization { template struct Serializer< ::std_msgs::MultiArrayLayout_ > { template inline static void allInOne(Stream& stream, T m) { stream.next(m.dim); stream.next(m.data_offset); } ROS_DECLARE_ALLINONE_SERIALIZER }; // struct MultiArrayLayout_ } // namespace serialization } // namespace ros namespace ros { namespace message_operations { template struct Printer< ::std_msgs::MultiArrayLayout_ > { template static void stream(Stream& s, const std::string& indent, const ::std_msgs::MultiArrayLayout_& v) { s << indent << "dim[]" << std::endl; for (size_t i = 0; i < v.dim.size(); ++i) { s << indent << " dim[" << i << "]: "; s << std::endl; s << indent; Printer< ::std_msgs::MultiArrayDimension_ >::stream(s, indent + " ", v.dim[i]); } s << indent << "data_offset: "; Printer::stream(s, indent + " ", v.data_offset); } }; } // namespace message_operations } // namespace ros #endif // STD_MSGS_MESSAGE_MULTIARRAYLAYOUT_H