// Generated by gencpp from file robot_sensor_msgs/PointCloud2.msg
// DO NOT EDIT!


#ifndef ROBOT_SENSOR_MSGS_MESSAGE_POINTCLOUD2_H
#define ROBOT_SENSOR_MSGS_MESSAGE_POINTCLOUD2_H


#include <string>
#include <vector>
#include <memory>
#include <boost/shared_ptr.hpp>
#include <robot_std_msgs/Header.h>
#include <robot_sensor_msgs/PointField.h>

namespace robot_sensor_msgs
{
template <class ContainerAllocator>
struct PointCloud2_
{
  typedef PointCloud2_<ContainerAllocator> Type;

  PointCloud2_()
    : header()
    , height(0)
    , width(0)
    , fields()
    , is_bigendian(false)
    , point_step(0)
    , row_step(0)
    , data()
    , is_dense(false)  {
    }
  PointCloud2_(const ContainerAllocator& _alloc)
    : header(_alloc)
    , height(0)
    , width(0)
    , fields(_alloc)
    , is_bigendian(false)
    , point_step(0)
    , row_step(0)
    , data(_alloc)
    , is_dense(false)  {
  (void)_alloc;
    }



   typedef  ::robot_std_msgs::Header_<ContainerAllocator>  _header_type;
  _header_type header;

   typedef uint32_t _height_type;
  _height_type height;

   typedef uint32_t _width_type;
  _width_type width;

   typedef std::vector< ::robot_sensor_msgs::PointField_<ContainerAllocator> , typename std::allocator_traits<ContainerAllocator>::template rebind_alloc< ::robot_sensor_msgs::PointField_<ContainerAllocator> >> _fields_type;
  _fields_type fields;

   typedef uint8_t _is_bigendian_type;
  _is_bigendian_type is_bigendian;

   typedef uint32_t _point_step_type;
  _point_step_type point_step;

   typedef uint32_t _row_step_type;
  _row_step_type row_step;

   typedef std::vector<uint8_t, typename std::allocator_traits<ContainerAllocator>::template rebind_alloc<uint8_t>> _data_type;
  _data_type data;

   typedef uint8_t _is_dense_type;
  _is_dense_type is_dense;





  typedef boost::shared_ptr< ::robot_sensor_msgs::PointCloud2_<ContainerAllocator> > Ptr;
  typedef boost::shared_ptr< ::robot_sensor_msgs::PointCloud2_<ContainerAllocator> const> ConstPtr;

}; // struct PointCloud2_

typedef ::robot_sensor_msgs::PointCloud2_<std::allocator<void> > PointCloud2;

typedef boost::shared_ptr< ::robot_sensor_msgs::PointCloud2 > PointCloud2Ptr;
typedef boost::shared_ptr< ::robot_sensor_msgs::PointCloud2 const> PointCloud2ConstPtr;

// constants requiring out of line definition


template<typename ContainerAllocator1, typename ContainerAllocator2>
bool operator==(const ::robot_sensor_msgs::PointCloud2_<ContainerAllocator1> & lhs, const ::robot_sensor_msgs::PointCloud2_<ContainerAllocator2> & rhs)
{
  return lhs.header == rhs.header &&
    lhs.height == rhs.height &&
    lhs.width == rhs.width &&
    lhs.fields == rhs.fields &&
    lhs.is_bigendian == rhs.is_bigendian &&
    lhs.point_step == rhs.point_step &&
    lhs.row_step == rhs.row_step &&
    lhs.data == rhs.data &&
    lhs.is_dense == rhs.is_dense;
}

template<typename ContainerAllocator1, typename ContainerAllocator2>
bool operator!=(const ::robot_sensor_msgs::PointCloud2_<ContainerAllocator1> & lhs, const ::robot_sensor_msgs::PointCloud2_<ContainerAllocator2> & rhs)
{
  return !(lhs == rhs);
}


} // namespace robot_sensor_msgs



#endif // ROBOT_SENSOR_MSGS_MESSAGE_POINTCLOUD2_H
