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


#ifndef ROBOT_SENSOR_MSGS_MESSAGE_POINTCLOUD_H
#define ROBOT_SENSOR_MSGS_MESSAGE_POINTCLOUD_H


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

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

  PointCloud_()
    : header()
    , points()
    , channels()  {
    }
  PointCloud_(const ContainerAllocator& _alloc)
    : header(_alloc)
    , points(_alloc)
    , channels(_alloc)  {
  (void)_alloc;
    }



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

   typedef std::vector< ::robot_geometry_msgs::Point32_<ContainerAllocator> , typename std::allocator_traits<ContainerAllocator>::template rebind_alloc< ::robot_geometry_msgs::Point32_<ContainerAllocator> >> _points_type;
  _points_type points;

   typedef std::vector< ::robot_sensor_msgs::ChannelFloat32_<ContainerAllocator> , typename std::allocator_traits<ContainerAllocator>::template rebind_alloc< ::robot_sensor_msgs::ChannelFloat32_<ContainerAllocator> >> _channels_type;
  _channels_type channels;





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

}; // struct PointCloud_

typedef ::robot_sensor_msgs::PointCloud_<std::allocator<void> > PointCloud;

typedef boost::shared_ptr< ::robot_sensor_msgs::PointCloud > PointCloudPtr;
typedef boost::shared_ptr< ::robot_sensor_msgs::PointCloud const> PointCloudConstPtr;

// constants requiring out of line definition


template<typename ContainerAllocator1, typename ContainerAllocator2>
bool operator==(const ::robot_sensor_msgs::PointCloud_<ContainerAllocator1> & lhs, const ::robot_sensor_msgs::PointCloud_<ContainerAllocator2> & rhs)
{
  return lhs.header == rhs.header &&
    lhs.points == rhs.points &&
    lhs.channels == rhs.channels;
}

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


} // namespace robot_sensor_msgs

#endif // ROBOT_SENSOR_MSGS_MESSAGE_POINTCLOUD_H
