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


#ifndef ROBOT_SENSOR_MSGS_MESSAGE_CAMERAINFO_H
#define ROBOT_SENSOR_MSGS_MESSAGE_CAMERAINFO_H


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

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

  CameraInfo_()
    : header()
    , height(0)
    , width(0)
    , distortion_model()
    , D()
    , K()
    , R()
    , P()
    , binning_x(0)
    , binning_y(0)
    , roi()  {
      K.assign(0.0);

      R.assign(0.0);

      P.assign(0.0);
  }
  CameraInfo_(const ContainerAllocator& _alloc)
    : header(_alloc)
    , height(0)
    , width(0)
    , distortion_model(_alloc)
    , D(_alloc)
    , K()
    , R()
    , P()
    , binning_x(0)
    , binning_y(0)
    , roi(_alloc)  {
  (void)_alloc;
      K.assign(0.0);

      R.assign(0.0);

      P.assign(0.0);
  }



   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::basic_string<char, std::char_traits<char>, typename std::allocator_traits<ContainerAllocator>::template rebind_alloc<char>> _distortion_model_type;
  _distortion_model_type distortion_model;

   typedef std::vector<double, typename std::allocator_traits<ContainerAllocator>::template rebind_alloc<double>> _D_type;
  _D_type D;

   typedef boost::array<double, 9>  _K_type;
  _K_type K;

   typedef boost::array<double, 9>  _R_type;
  _R_type R;

   typedef boost::array<double, 12>  _P_type;
  _P_type P;

   typedef uint32_t _binning_x_type;
  _binning_x_type binning_x;

   typedef uint32_t _binning_y_type;
  _binning_y_type binning_y;

   typedef  ::robot_sensor_msgs::RegionOfInterest_<ContainerAllocator>  _roi_type;
  _roi_type roi;





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

}; // struct CameraInfo_

typedef ::robot_sensor_msgs::CameraInfo_<std::allocator<void> > CameraInfo;

typedef boost::shared_ptr< ::robot_sensor_msgs::CameraInfo > CameraInfoPtr;
typedef boost::shared_ptr< ::robot_sensor_msgs::CameraInfo const> CameraInfoConstPtr;

// constants requiring out of line definition



template<typename ContainerAllocator1, typename ContainerAllocator2>
bool operator==(const ::robot_sensor_msgs::CameraInfo_<ContainerAllocator1> & lhs, const ::robot_sensor_msgs::CameraInfo_<ContainerAllocator2> & rhs)
{
  return lhs.header == rhs.header &&
    lhs.height == rhs.height &&
    lhs.width == rhs.width &&
    lhs.distortion_model == rhs.distortion_model &&
    lhs.D == rhs.D &&
    lhs.K == rhs.K &&
    lhs.R == rhs.R &&
    lhs.P == rhs.P &&
    lhs.binning_x == rhs.binning_x &&
    lhs.binning_y == rhs.binning_y &&
    lhs.roi == rhs.roi;
}

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


} // namespace robot_sensor_msgs
#endif // ROBOT_SENSOR_MSGS_MESSAGE_CAMERAINFO_H
