// Generated by gencpp from file robot_nav_2d_msgs/Polygon2DCollection.msg
// DO NOT EDIT!


#ifndef ROBOT_NAV_2D_MSGS_MESSAGE_POLYGON2DCOLLECTION_H
#define ROBOT_NAV_2D_MSGS_MESSAGE_POLYGON2DCOLLECTION_H


#include <string>
#include <vector>
#include <memory>

#include <robot_std_msgs/Header.h>
#include <robot_nav_2d_msgs/ComplexPolygon2D.h>
#include <robot_std_msgs/ColorRGBA.h>

namespace robot_nav_2d_msgs
{
template <class ContainerAllocator>
struct Polygon2DCollection_
{
  typedef Polygon2DCollection_<ContainerAllocator> Type;

  Polygon2DCollection_()
    : header()
    , polygons()
    , colors()  {
    }
  Polygon2DCollection_(const ContainerAllocator& _alloc)
    : header()
    , polygons(_alloc)
    , colors(_alloc)  {
  (void)_alloc;
    }



   typedef  ::robot_std_msgs::Header  _header_type;
  _header_type header;

   typedef std::vector< ::robot_nav_2d_msgs::ComplexPolygon2D_<ContainerAllocator> , typename std::allocator_traits<ContainerAllocator>::template rebind_alloc< ::robot_nav_2d_msgs::ComplexPolygon2D_<ContainerAllocator> >> _polygons_type;
  _polygons_type polygons;

   typedef std::vector< ::robot_std_msgs::ColorRGBA , typename std::allocator_traits<ContainerAllocator>::template rebind_alloc< ::robot_std_msgs::ColorRGBA >> _colors_type;
  _colors_type colors;




  typedef std::shared_ptr< ::robot_nav_2d_msgs::Polygon2DCollection_<ContainerAllocator> > Ptr;
  typedef std::shared_ptr< ::robot_nav_2d_msgs::Polygon2DCollection_<ContainerAllocator> const> ConstPtr;

}; // struct Polygon2DCollection_

typedef ::robot_nav_2d_msgs::Polygon2DCollection_<std::allocator<void> > Polygon2DCollection;

typedef std::shared_ptr< ::robot_nav_2d_msgs::Polygon2DCollection > Polygon2DCollectionPtr;
typedef std::shared_ptr< ::robot_nav_2d_msgs::Polygon2DCollection const> Polygon2DCollectionConstPtr;

// constants requiring out of line definition



template<typename ContainerAllocator1, typename ContainerAllocator2>
bool operator==(const ::robot_nav_2d_msgs::Polygon2DCollection_<ContainerAllocator1> & lhs, const ::robot_nav_2d_msgs::Polygon2DCollection_<ContainerAllocator2> & rhs)
{
  return lhs.header == rhs.header &&
    lhs.polygons == rhs.polygons &&
    lhs.colors == rhs.colors;
}

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


} // namespace robot_nav_2d_msgs

#endif // ROBOT_NAV_2D_MSGS_MESSAGE_POLYGON2DCOLLECTION_H
