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


#ifndef ROBOT_SENSOR_MSGS_MESSAGE_RANGE_H
#define ROBOT_SENSOR_MSGS_MESSAGE_RANGE_H


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

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

  Range_()
    : header()
    , radiation_type(0)
    , field_of_view(0.0)
    , min_range(0.0)
    , max_range(0.0)
    , range(0.0)  {
    }
  Range_(const ContainerAllocator& _alloc)
    : header(_alloc)
    , radiation_type(0)
    , field_of_view(0.0)
    , min_range(0.0)
    , max_range(0.0)
    , range(0.0)  {
  (void)_alloc;
    }



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

   typedef uint8_t _radiation_type_type;
  _radiation_type_type radiation_type;

   typedef float _field_of_view_type;
  _field_of_view_type field_of_view;

   typedef float _min_range_type;
  _min_range_type min_range;

   typedef float _max_range_type;
  _max_range_type max_range;

   typedef float _range_type;
  _range_type range;



// reducing the odds to have name collisions with Windows.h 
#if defined(_WIN32) && defined(ULTRASOUND)
  #undef ULTRASOUND
#endif
#if defined(_WIN32) && defined(INFRARED)
  #undef INFRARED
#endif

  enum {
    ULTRASOUND = 0u,
    INFRARED = 1u,
  };


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

}; // struct Range_

typedef ::robot_sensor_msgs::Range_<std::allocator<void> > Range;

typedef boost::shared_ptr< ::robot_sensor_msgs::Range > RangePtr;
typedef boost::shared_ptr< ::robot_sensor_msgs::Range const> RangeConstPtr;

// constants requiring out of line definition

template<typename ContainerAllocator1, typename ContainerAllocator2>
bool operator==(const ::robot_sensor_msgs::Range_<ContainerAllocator1> & lhs, const ::robot_sensor_msgs::Range_<ContainerAllocator2> & rhs)
{
  return lhs.header == rhs.header &&
    lhs.radiation_type == rhs.radiation_type &&
    lhs.field_of_view == rhs.field_of_view &&
    lhs.min_range == rhs.min_range &&
    lhs.max_range == rhs.max_range &&
    lhs.range == rhs.range;
}

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


} // namespace robot_sensor_msgs

#endif // ROBOT_SENSOR_MSGS_MESSAGE_RANGE_H
