// Generated by the protocol buffer compiler.  DO NOT EDIT!
// source: velodyne_config.proto

#ifndef PROTOBUF_INCLUDED_velodyne_5fconfig_2eproto
#define PROTOBUF_INCLUDED_velodyne_5fconfig_2eproto

#include <string>

#include <google/protobuf/stubs/common.h>

#if GOOGLE_PROTOBUF_VERSION < 3006001
#error This file was generated by a newer version of protoc which is
#error incompatible with your Protocol Buffer headers.  Please update
#error your headers.
#endif
#if 3006001 < GOOGLE_PROTOBUF_MIN_PROTOC_VERSION
#error This file was generated by an older version of protoc which is
#error incompatible with your Protocol Buffer headers.  Please
#error regenerate this file with a newer version of protoc.
#endif

#include <google/protobuf/io/coded_stream.h>
#include <google/protobuf/arena.h>
#include <google/protobuf/arenastring.h>
#include <google/protobuf/generated_message_table_driven.h>
#include <google/protobuf/generated_message_util.h>
#include <google/protobuf/inlined_string_field.h>
#include <google/protobuf/metadata.h>
#include <google/protobuf/message.h>
#include <google/protobuf/repeated_field.h>  // IWYU pragma: export
#include <google/protobuf/extension_set.h>  // IWYU pragma: export
#include <google/protobuf/unknown_field_set.h>
// @@protoc_insertion_point(includes)
#define PROTOBUF_INTERNAL_EXPORT_protobuf_velodyne_5fconfig_2eproto 

namespace protobuf_velodyne_5fconfig_2eproto {
// Internal implementation detail -- do not use these members.
struct TableStruct {
  static const ::google::protobuf::internal::ParseTableField entries[];
  static const ::google::protobuf::internal::AuxillaryParseTableField aux[];
  static const ::google::protobuf::internal::ParseTable schema[5];
  static const ::google::protobuf::internal::FieldMetadata field_metadata[];
  static const ::google::protobuf::internal::SerializationTable serialization_table[];
  static const ::google::protobuf::uint32 offsets[];
};
void AddDescriptors();
}  // namespace protobuf_velodyne_5fconfig_2eproto
namespace velodyne {
class CalibParameter;
class CalibParameterDefaultTypeInternal;
extern CalibParameterDefaultTypeInternal _CalibParameter_default_instance_;
class Region;
class RegionDefaultTypeInternal;
extern RegionDefaultTypeInternal _Region_default_instance_;
class lidarExtrinsic;
class lidarExtrinsicDefaultTypeInternal;
extern lidarExtrinsicDefaultTypeInternal _lidarExtrinsic_default_instance_;
class velodyneLidarParams;
class velodyneLidarParamsDefaultTypeInternal;
extern velodyneLidarParamsDefaultTypeInternal _velodyneLidarParams_default_instance_;
class velodyneManagerParams;
class velodyneManagerParamsDefaultTypeInternal;
extern velodyneManagerParamsDefaultTypeInternal _velodyneManagerParams_default_instance_;
}  // namespace velodyne
namespace google {
namespace protobuf {
template<> ::velodyne::CalibParameter* Arena::CreateMaybeMessage<::velodyne::CalibParameter>(Arena*);
template<> ::velodyne::Region* Arena::CreateMaybeMessage<::velodyne::Region>(Arena*);
template<> ::velodyne::lidarExtrinsic* Arena::CreateMaybeMessage<::velodyne::lidarExtrinsic>(Arena*);
template<> ::velodyne::velodyneLidarParams* Arena::CreateMaybeMessage<::velodyne::velodyneLidarParams>(Arena*);
template<> ::velodyne::velodyneManagerParams* Arena::CreateMaybeMessage<::velodyne::velodyneManagerParams>(Arena*);
}  // namespace protobuf
}  // namespace google
namespace velodyne {

// ===================================================================

class velodyneManagerParams : public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:velodyne.velodyneManagerParams) */ {
 public:
  velodyneManagerParams();
  virtual ~velodyneManagerParams();

  velodyneManagerParams(const velodyneManagerParams& from);

  inline velodyneManagerParams& operator=(const velodyneManagerParams& from) {
    CopyFrom(from);
    return *this;
  }
  #if LANG_CXX11
  velodyneManagerParams(velodyneManagerParams&& from) noexcept
    : velodyneManagerParams() {
    *this = ::std::move(from);
  }

  inline velodyneManagerParams& operator=(velodyneManagerParams&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }
  #endif
  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
    return _internal_metadata_.unknown_fields();
  }
  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
    return _internal_metadata_.mutable_unknown_fields();
  }

  static const ::google::protobuf::Descriptor* descriptor();
  static const velodyneManagerParams& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const velodyneManagerParams* internal_default_instance() {
    return reinterpret_cast<const velodyneManagerParams*>(
               &_velodyneManagerParams_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    0;

  void Swap(velodyneManagerParams* other);
  friend void swap(velodyneManagerParams& a, velodyneManagerParams& b) {
    a.Swap(&b);
  }

  // implements Message ----------------------------------------------

  inline velodyneManagerParams* New() const final {
    return CreateMaybeMessage<velodyneManagerParams>(NULL);
  }

  velodyneManagerParams* New(::google::protobuf::Arena* arena) const final {
    return CreateMaybeMessage<velodyneManagerParams>(arena);
  }
  void CopyFrom(const ::google::protobuf::Message& from) final;
  void MergeFrom(const ::google::protobuf::Message& from) final;
  void CopyFrom(const velodyneManagerParams& from);
  void MergeFrom(const velodyneManagerParams& from);
  void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input) final;
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const final;
  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
      bool deterministic, ::google::protobuf::uint8* target) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(velodyneManagerParams* other);
  private:
  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
    return NULL;
  }
  inline void* MaybeArenaPtr() const {
    return NULL;
  }
  public:

  ::google::protobuf::Metadata GetMetadata() const final;

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  // repeated .velodyne.velodyneLidarParams velodyne_lidars = 1;
  int velodyne_lidars_size() const;
  void clear_velodyne_lidars();
  static const int kVelodyneLidarsFieldNumber = 1;
  ::velodyne::velodyneLidarParams* mutable_velodyne_lidars(int index);
  ::google::protobuf::RepeatedPtrField< ::velodyne::velodyneLidarParams >*
      mutable_velodyne_lidars();
  const ::velodyne::velodyneLidarParams& velodyne_lidars(int index) const;
  ::velodyne::velodyneLidarParams* add_velodyne_lidars();
  const ::google::protobuf::RepeatedPtrField< ::velodyne::velodyneLidarParams >&
      velodyne_lidars() const;

  // repeated .velodyne.Region region = 2;
  int region_size() const;
  void clear_region();
  static const int kRegionFieldNumber = 2;
  ::velodyne::Region* mutable_region(int index);
  ::google::protobuf::RepeatedPtrField< ::velodyne::Region >*
      mutable_region();
  const ::velodyne::Region& region(int index) const;
  ::velodyne::Region* add_region();
  const ::google::protobuf::RepeatedPtrField< ::velodyne::Region >&
      region() const;

  // optional string fence_data_path = 3 [default = ""];
  bool has_fence_data_path() const;
  void clear_fence_data_path();
  static const int kFenceDataPathFieldNumber = 3;
  const ::std::string& fence_data_path() const;
  void set_fence_data_path(const ::std::string& value);
  #if LANG_CXX11
  void set_fence_data_path(::std::string&& value);
  #endif
  void set_fence_data_path(const char* value);
  void set_fence_data_path(const char* value, size_t size);
  ::std::string* mutable_fence_data_path();
  ::std::string* release_fence_data_path();
  void set_allocated_fence_data_path(::std::string* fence_data_path);

  // optional string fence_log_path = 4 [default = ""];
  bool has_fence_log_path() const;
  void clear_fence_log_path();
  static const int kFenceLogPathFieldNumber = 4;
  const ::std::string& fence_log_path() const;
  void set_fence_log_path(const ::std::string& value);
  #if LANG_CXX11
  void set_fence_log_path(::std::string&& value);
  #endif
  void set_fence_log_path(const char* value);
  void set_fence_log_path(const char* value, size_t size);
  ::std::string* mutable_fence_log_path();
  ::std::string* release_fence_log_path();
  void set_allocated_fence_log_path(::std::string* fence_log_path);

  // optional string left_model_path = 5 [default = ""];
  bool has_left_model_path() const;
  void clear_left_model_path();
  static const int kLeftModelPathFieldNumber = 5;
  const ::std::string& left_model_path() const;
  void set_left_model_path(const ::std::string& value);
  #if LANG_CXX11
  void set_left_model_path(::std::string&& value);
  #endif
  void set_left_model_path(const char* value);
  void set_left_model_path(const char* value, size_t size);
  ::std::string* mutable_left_model_path();
  ::std::string* release_left_model_path();
  void set_allocated_left_model_path(::std::string* left_model_path);

  // optional string right_model_path = 6 [default = ""];
  bool has_right_model_path() const;
  void clear_right_model_path();
  static const int kRightModelPathFieldNumber = 6;
  const ::std::string& right_model_path() const;
  void set_right_model_path(const ::std::string& value);
  #if LANG_CXX11
  void set_right_model_path(::std::string&& value);
  #endif
  void set_right_model_path(const char* value);
  void set_right_model_path(const char* value, size_t size);
  ::std::string* mutable_right_model_path();
  ::std::string* release_right_model_path();
  void set_allocated_right_model_path(::std::string* right_model_path);

  // required bool distribution_mode = 7 [default = false];
  bool has_distribution_mode() const;
  void clear_distribution_mode();
  static const int kDistributionModeFieldNumber = 7;
  bool distribution_mode() const;
  void set_distribution_mode(bool value);

  // @@protoc_insertion_point(class_scope:velodyne.velodyneManagerParams)
 private:
  void set_has_fence_data_path();
  void clear_has_fence_data_path();
  void set_has_fence_log_path();
  void clear_has_fence_log_path();
  void set_has_left_model_path();
  void clear_has_left_model_path();
  void set_has_right_model_path();
  void clear_has_right_model_path();
  void set_has_distribution_mode();
  void clear_has_distribution_mode();

  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
  ::google::protobuf::internal::HasBits<1> _has_bits_;
  mutable ::google::protobuf::internal::CachedSize _cached_size_;
  ::google::protobuf::RepeatedPtrField< ::velodyne::velodyneLidarParams > velodyne_lidars_;
  ::google::protobuf::RepeatedPtrField< ::velodyne::Region > region_;
  ::google::protobuf::internal::ArenaStringPtr fence_data_path_;
  ::google::protobuf::internal::ArenaStringPtr fence_log_path_;
  ::google::protobuf::internal::ArenaStringPtr left_model_path_;
  ::google::protobuf::internal::ArenaStringPtr right_model_path_;
  bool distribution_mode_;
  friend struct ::protobuf_velodyne_5fconfig_2eproto::TableStruct;
};
// -------------------------------------------------------------------

class velodyneLidarParams : public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:velodyne.velodyneLidarParams) */ {
 public:
  velodyneLidarParams();
  virtual ~velodyneLidarParams();

  velodyneLidarParams(const velodyneLidarParams& from);

  inline velodyneLidarParams& operator=(const velodyneLidarParams& from) {
    CopyFrom(from);
    return *this;
  }
  #if LANG_CXX11
  velodyneLidarParams(velodyneLidarParams&& from) noexcept
    : velodyneLidarParams() {
    *this = ::std::move(from);
  }

  inline velodyneLidarParams& operator=(velodyneLidarParams&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }
  #endif
  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
    return _internal_metadata_.unknown_fields();
  }
  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
    return _internal_metadata_.mutable_unknown_fields();
  }

  static const ::google::protobuf::Descriptor* descriptor();
  static const velodyneLidarParams& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const velodyneLidarParams* internal_default_instance() {
    return reinterpret_cast<const velodyneLidarParams*>(
               &_velodyneLidarParams_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    1;

  void Swap(velodyneLidarParams* other);
  friend void swap(velodyneLidarParams& a, velodyneLidarParams& b) {
    a.Swap(&b);
  }

  // implements Message ----------------------------------------------

  inline velodyneLidarParams* New() const final {
    return CreateMaybeMessage<velodyneLidarParams>(NULL);
  }

  velodyneLidarParams* New(::google::protobuf::Arena* arena) const final {
    return CreateMaybeMessage<velodyneLidarParams>(arena);
  }
  void CopyFrom(const ::google::protobuf::Message& from) final;
  void MergeFrom(const ::google::protobuf::Message& from) final;
  void CopyFrom(const velodyneLidarParams& from);
  void MergeFrom(const velodyneLidarParams& from);
  void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input) final;
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const final;
  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
      bool deterministic, ::google::protobuf::uint8* target) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(velodyneLidarParams* other);
  private:
  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
    return NULL;
  }
  inline void* MaybeArenaPtr() const {
    return NULL;
  }
  public:

  ::google::protobuf::Metadata GetMetadata() const final;

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  // required string ip = 1 [default = ""];
  bool has_ip() const;
  void clear_ip();
  static const int kIpFieldNumber = 1;
  const ::std::string& ip() const;
  void set_ip(const ::std::string& value);
  #if LANG_CXX11
  void set_ip(::std::string&& value);
  #endif
  void set_ip(const char* value);
  void set_ip(const char* value, size_t size);
  ::std::string* mutable_ip();
  ::std::string* release_ip();
  void set_allocated_ip(::std::string* ip);

  // required string model = 3 [default = "VLP16"];
  bool has_model() const;
  void clear_model();
  static const int kModelFieldNumber = 3;
  const ::std::string& model() const;
  void set_model(const ::std::string& value);
  #if LANG_CXX11
  void set_model(::std::string&& value);
  #endif
  void set_model(const char* value);
  void set_model(const char* value, size_t size);
  ::std::string* mutable_model();
  ::std::string* release_model();
  void set_allocated_model(::std::string* model);

  // required string calibrationFile = 4 [default = ""];
  bool has_calibrationfile() const;
  void clear_calibrationfile();
  static const int kCalibrationFileFieldNumber = 4;
  const ::std::string& calibrationfile() const;
  void set_calibrationfile(const ::std::string& value);
  #if LANG_CXX11
  void set_calibrationfile(::std::string&& value);
  #endif
  void set_calibrationfile(const char* value);
  void set_calibrationfile(const char* value, size_t size);
  ::std::string* mutable_calibrationfile();
  ::std::string* release_calibrationfile();
  void set_allocated_calibrationfile(::std::string* calibrationfile);

  // optional .velodyne.CalibParameter calib = 11;
  bool has_calib() const;
  void clear_calib();
  static const int kCalibFieldNumber = 11;
  private:
  const ::velodyne::CalibParameter& _internal_calib() const;
  public:
  const ::velodyne::CalibParameter& calib() const;
  ::velodyne::CalibParameter* release_calib();
  ::velodyne::CalibParameter* mutable_calib();
  void set_allocated_calib(::velodyne::CalibParameter* calib);

  // required int32 lidar_id = 5 [default = 0];
  bool has_lidar_id() const;
  void clear_lidar_id();
  static const int kLidarIdFieldNumber = 5;
  ::google::protobuf::int32 lidar_id() const;
  void set_lidar_id(::google::protobuf::int32 value);

  // optional int32 min_angle = 8 [default = 0];
  bool has_min_angle() const;
  void clear_min_angle();
  static const int kMinAngleFieldNumber = 8;
  ::google::protobuf::int32 min_angle() const;
  void set_min_angle(::google::protobuf::int32 value);

  // required int32 port = 2 [default = 2368];
  bool has_port() const;
  void clear_port();
  static const int kPortFieldNumber = 2;
  ::google::protobuf::int32 port() const;
  void set_port(::google::protobuf::int32 value);

  // optional float max_range = 6 [default = 10];
  bool has_max_range() const;
  void clear_max_range();
  static const int kMaxRangeFieldNumber = 6;
  float max_range() const;
  void set_max_range(float value);

  // optional float min_range = 7 [default = 0.15];
  bool has_min_range() const;
  void clear_min_range();
  static const int kMinRangeFieldNumber = 7;
  float min_range() const;
  void set_min_range(float value);

  // optional int32 max_angle = 9 [default = 360];
  bool has_max_angle() const;
  void clear_max_angle();
  static const int kMaxAngleFieldNumber = 9;
  ::google::protobuf::int32 max_angle() const;
  void set_max_angle(::google::protobuf::int32 value);

  // optional int32 rpm = 10 [default = 600];
  bool has_rpm() const;
  void clear_rpm();
  static const int kRpmFieldNumber = 10;
  ::google::protobuf::int32 rpm() const;
  void set_rpm(::google::protobuf::int32 value);

  // optional int32 difop = 12 [default = 7788];
  bool has_difop() const;
  void clear_difop();
  static const int kDifopFieldNumber = 12;
  ::google::protobuf::int32 difop() const;
  void set_difop(::google::protobuf::int32 value);

  // @@protoc_insertion_point(class_scope:velodyne.velodyneLidarParams)
 private:
  void set_has_ip();
  void clear_has_ip();
  void set_has_port();
  void clear_has_port();
  void set_has_model();
  void clear_has_model();
  void set_has_calibrationfile();
  void clear_has_calibrationfile();
  void set_has_lidar_id();
  void clear_has_lidar_id();
  void set_has_max_range();
  void clear_has_max_range();
  void set_has_min_range();
  void clear_has_min_range();
  void set_has_min_angle();
  void clear_has_min_angle();
  void set_has_max_angle();
  void clear_has_max_angle();
  void set_has_rpm();
  void clear_has_rpm();
  void set_has_calib();
  void clear_has_calib();
  void set_has_difop();
  void clear_has_difop();

  // helper for ByteSizeLong()
  size_t RequiredFieldsByteSizeFallback() const;

  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
  ::google::protobuf::internal::HasBits<1> _has_bits_;
  mutable ::google::protobuf::internal::CachedSize _cached_size_;
  ::google::protobuf::internal::ArenaStringPtr ip_;
  public:
  static ::google::protobuf::internal::ExplicitlyConstructed< ::std::string> _i_give_permission_to_break_this_code_default_model_;
  private:
  ::google::protobuf::internal::ArenaStringPtr model_;
  ::google::protobuf::internal::ArenaStringPtr calibrationfile_;
  ::velodyne::CalibParameter* calib_;
  ::google::protobuf::int32 lidar_id_;
  ::google::protobuf::int32 min_angle_;
  ::google::protobuf::int32 port_;
  float max_range_;
  float min_range_;
  ::google::protobuf::int32 max_angle_;
  ::google::protobuf::int32 rpm_;
  ::google::protobuf::int32 difop_;
  friend struct ::protobuf_velodyne_5fconfig_2eproto::TableStruct;
};
// -------------------------------------------------------------------

class CalibParameter : public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:velodyne.CalibParameter) */ {
 public:
  CalibParameter();
  virtual ~CalibParameter();

  CalibParameter(const CalibParameter& from);

  inline CalibParameter& operator=(const CalibParameter& from) {
    CopyFrom(from);
    return *this;
  }
  #if LANG_CXX11
  CalibParameter(CalibParameter&& from) noexcept
    : CalibParameter() {
    *this = ::std::move(from);
  }

  inline CalibParameter& operator=(CalibParameter&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }
  #endif
  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
    return _internal_metadata_.unknown_fields();
  }
  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
    return _internal_metadata_.mutable_unknown_fields();
  }

  static const ::google::protobuf::Descriptor* descriptor();
  static const CalibParameter& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const CalibParameter* internal_default_instance() {
    return reinterpret_cast<const CalibParameter*>(
               &_CalibParameter_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    2;

  void Swap(CalibParameter* other);
  friend void swap(CalibParameter& a, CalibParameter& b) {
    a.Swap(&b);
  }

  // implements Message ----------------------------------------------

  inline CalibParameter* New() const final {
    return CreateMaybeMessage<CalibParameter>(NULL);
  }

  CalibParameter* New(::google::protobuf::Arena* arena) const final {
    return CreateMaybeMessage<CalibParameter>(arena);
  }
  void CopyFrom(const ::google::protobuf::Message& from) final;
  void MergeFrom(const ::google::protobuf::Message& from) final;
  void CopyFrom(const CalibParameter& from);
  void MergeFrom(const CalibParameter& from);
  void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input) final;
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const final;
  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
      bool deterministic, ::google::protobuf::uint8* target) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(CalibParameter* other);
  private:
  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
    return NULL;
  }
  inline void* MaybeArenaPtr() const {
    return NULL;
  }
  public:

  ::google::protobuf::Metadata GetMetadata() const final;

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  // optional float r = 1 [default = 0];
  bool has_r() const;
  void clear_r();
  static const int kRFieldNumber = 1;
  float r() const;
  void set_r(float value);

  // optional float p = 2 [default = 0];
  bool has_p() const;
  void clear_p();
  static const int kPFieldNumber = 2;
  float p() const;
  void set_p(float value);

  // optional float y = 3 [default = 0];
  bool has_y() const;
  void clear_y();
  static const int kYFieldNumber = 3;
  float y() const;
  void set_y(float value);

  // optional float cx = 4 [default = 0];
  bool has_cx() const;
  void clear_cx();
  static const int kCxFieldNumber = 4;
  float cx() const;
  void set_cx(float value);

  // optional float cy = 5 [default = 0];
  bool has_cy() const;
  void clear_cy();
  static const int kCyFieldNumber = 5;
  float cy() const;
  void set_cy(float value);

  // optional float cz = 6 [default = 0];
  bool has_cz() const;
  void clear_cz();
  static const int kCzFieldNumber = 6;
  float cz() const;
  void set_cz(float value);

  // @@protoc_insertion_point(class_scope:velodyne.CalibParameter)
 private:
  void set_has_r();
  void clear_has_r();
  void set_has_p();
  void clear_has_p();
  void set_has_y();
  void clear_has_y();
  void set_has_cx();
  void clear_has_cx();
  void set_has_cy();
  void clear_has_cy();
  void set_has_cz();
  void clear_has_cz();

  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
  ::google::protobuf::internal::HasBits<1> _has_bits_;
  mutable ::google::protobuf::internal::CachedSize _cached_size_;
  float r_;
  float p_;
  float y_;
  float cx_;
  float cy_;
  float cz_;
  friend struct ::protobuf_velodyne_5fconfig_2eproto::TableStruct;
};
// -------------------------------------------------------------------

class lidarExtrinsic : public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:velodyne.lidarExtrinsic) */ {
 public:
  lidarExtrinsic();
  virtual ~lidarExtrinsic();

  lidarExtrinsic(const lidarExtrinsic& from);

  inline lidarExtrinsic& operator=(const lidarExtrinsic& from) {
    CopyFrom(from);
    return *this;
  }
  #if LANG_CXX11
  lidarExtrinsic(lidarExtrinsic&& from) noexcept
    : lidarExtrinsic() {
    *this = ::std::move(from);
  }

  inline lidarExtrinsic& operator=(lidarExtrinsic&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }
  #endif
  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
    return _internal_metadata_.unknown_fields();
  }
  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
    return _internal_metadata_.mutable_unknown_fields();
  }

  static const ::google::protobuf::Descriptor* descriptor();
  static const lidarExtrinsic& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const lidarExtrinsic* internal_default_instance() {
    return reinterpret_cast<const lidarExtrinsic*>(
               &_lidarExtrinsic_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    3;

  void Swap(lidarExtrinsic* other);
  friend void swap(lidarExtrinsic& a, lidarExtrinsic& b) {
    a.Swap(&b);
  }

  // implements Message ----------------------------------------------

  inline lidarExtrinsic* New() const final {
    return CreateMaybeMessage<lidarExtrinsic>(NULL);
  }

  lidarExtrinsic* New(::google::protobuf::Arena* arena) const final {
    return CreateMaybeMessage<lidarExtrinsic>(arena);
  }
  void CopyFrom(const ::google::protobuf::Message& from) final;
  void MergeFrom(const ::google::protobuf::Message& from) final;
  void CopyFrom(const lidarExtrinsic& from);
  void MergeFrom(const lidarExtrinsic& from);
  void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input) final;
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const final;
  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
      bool deterministic, ::google::protobuf::uint8* target) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(lidarExtrinsic* other);
  private:
  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
    return NULL;
  }
  inline void* MaybeArenaPtr() const {
    return NULL;
  }
  public:

  ::google::protobuf::Metadata GetMetadata() const final;

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  // optional .velodyne.CalibParameter calib = 2;
  bool has_calib() const;
  void clear_calib();
  static const int kCalibFieldNumber = 2;
  private:
  const ::velodyne::CalibParameter& _internal_calib() const;
  public:
  const ::velodyne::CalibParameter& calib() const;
  ::velodyne::CalibParameter* release_calib();
  ::velodyne::CalibParameter* mutable_calib();
  void set_allocated_calib(::velodyne::CalibParameter* calib);

  // required int32 lidar_id = 1;
  bool has_lidar_id() const;
  void clear_lidar_id();
  static const int kLidarIdFieldNumber = 1;
  ::google::protobuf::int32 lidar_id() const;
  void set_lidar_id(::google::protobuf::int32 value);

  // @@protoc_insertion_point(class_scope:velodyne.lidarExtrinsic)
 private:
  void set_has_lidar_id();
  void clear_has_lidar_id();
  void set_has_calib();
  void clear_has_calib();

  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
  ::google::protobuf::internal::HasBits<1> _has_bits_;
  mutable ::google::protobuf::internal::CachedSize _cached_size_;
  ::velodyne::CalibParameter* calib_;
  ::google::protobuf::int32 lidar_id_;
  friend struct ::protobuf_velodyne_5fconfig_2eproto::TableStruct;
};
// -------------------------------------------------------------------

class Region : public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:velodyne.Region) */ {
 public:
  Region();
  virtual ~Region();

  Region(const Region& from);

  inline Region& operator=(const Region& from) {
    CopyFrom(from);
    return *this;
  }
  #if LANG_CXX11
  Region(Region&& from) noexcept
    : Region() {
    *this = ::std::move(from);
  }

  inline Region& operator=(Region&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }
  #endif
  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
    return _internal_metadata_.unknown_fields();
  }
  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
    return _internal_metadata_.mutable_unknown_fields();
  }

  static const ::google::protobuf::Descriptor* descriptor();
  static const Region& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const Region* internal_default_instance() {
    return reinterpret_cast<const Region*>(
               &_Region_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    4;

  void Swap(Region* other);
  friend void swap(Region& a, Region& b) {
    a.Swap(&b);
  }

  // implements Message ----------------------------------------------

  inline Region* New() const final {
    return CreateMaybeMessage<Region>(NULL);
  }

  Region* New(::google::protobuf::Arena* arena) const final {
    return CreateMaybeMessage<Region>(arena);
  }
  void CopyFrom(const ::google::protobuf::Message& from) final;
  void MergeFrom(const ::google::protobuf::Message& from) final;
  void CopyFrom(const Region& from);
  void MergeFrom(const Region& from);
  void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input) final;
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const final;
  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
      bool deterministic, ::google::protobuf::uint8* target) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(Region* other);
  private:
  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
    return NULL;
  }
  inline void* MaybeArenaPtr() const {
    return NULL;
  }
  public:

  ::google::protobuf::Metadata GetMetadata() const final;

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  // repeated .velodyne.lidarExtrinsic lidar_exts = 8;
  int lidar_exts_size() const;
  void clear_lidar_exts();
  static const int kLidarExtsFieldNumber = 8;
  ::velodyne::lidarExtrinsic* mutable_lidar_exts(int index);
  ::google::protobuf::RepeatedPtrField< ::velodyne::lidarExtrinsic >*
      mutable_lidar_exts();
  const ::velodyne::lidarExtrinsic& lidar_exts(int index) const;
  ::velodyne::lidarExtrinsic* add_lidar_exts();
  const ::google::protobuf::RepeatedPtrField< ::velodyne::lidarExtrinsic >&
      lidar_exts() const;

  // required float minx = 1;
  bool has_minx() const;
  void clear_minx();
  static const int kMinxFieldNumber = 1;
  float minx() const;
  void set_minx(float value);

  // required float maxx = 2;
  bool has_maxx() const;
  void clear_maxx();
  static const int kMaxxFieldNumber = 2;
  float maxx() const;
  void set_maxx(float value);

  // required float miny = 3;
  bool has_miny() const;
  void clear_miny();
  static const int kMinyFieldNumber = 3;
  float miny() const;
  void set_miny(float value);

  // required float maxy = 4;
  bool has_maxy() const;
  void clear_maxy();
  static const int kMaxyFieldNumber = 4;
  float maxy() const;
  void set_maxy(float value);

  // required float minz = 5;
  bool has_minz() const;
  void clear_minz();
  static const int kMinzFieldNumber = 5;
  float minz() const;
  void set_minz(float value);

  // required float maxz = 6;
  bool has_maxz() const;
  void clear_maxz();
  static const int kMaxzFieldNumber = 6;
  float maxz() const;
  void set_maxz(float value);

  // required int32 region_id = 7;
  bool has_region_id() const;
  void clear_region_id();
  static const int kRegionIdFieldNumber = 7;
  ::google::protobuf::int32 region_id() const;
  void set_region_id(::google::protobuf::int32 value);

  // required float turnplate_cx = 9;
  bool has_turnplate_cx() const;
  void clear_turnplate_cx();
  static const int kTurnplateCxFieldNumber = 9;
  float turnplate_cx() const;
  void set_turnplate_cx(float value);

  // required float turnplate_cy = 10;
  bool has_turnplate_cy() const;
  void clear_turnplate_cy();
  static const int kTurnplateCyFieldNumber = 10;
  float turnplate_cy() const;
  void set_turnplate_cy(float value);

  // required float border_minx = 11;
  bool has_border_minx() const;
  void clear_border_minx();
  static const int kBorderMinxFieldNumber = 11;
  float border_minx() const;
  void set_border_minx(float value);

  // required float border_maxx = 12;
  bool has_border_maxx() const;
  void clear_border_maxx();
  static const int kBorderMaxxFieldNumber = 12;
  float border_maxx() const;
  void set_border_maxx(float value);

  // required float plc_offsetx = 13;
  bool has_plc_offsetx() const;
  void clear_plc_offsetx();
  static const int kPlcOffsetxFieldNumber = 13;
  float plc_offsetx() const;
  void set_plc_offsetx(float value);

  // required float plc_offsety = 14;
  bool has_plc_offsety() const;
  void clear_plc_offsety();
  static const int kPlcOffsetyFieldNumber = 14;
  float plc_offsety() const;
  void set_plc_offsety(float value);

  // required float plc_offset_degree = 15;
  bool has_plc_offset_degree() const;
  void clear_plc_offset_degree();
  static const int kPlcOffsetDegreeFieldNumber = 15;
  float plc_offset_degree() const;
  void set_plc_offset_degree(float value);

  // required float plc_border_miny = 16;
  bool has_plc_border_miny() const;
  void clear_plc_border_miny();
  static const int kPlcBorderMinyFieldNumber = 16;
  float plc_border_miny() const;
  void set_plc_border_miny(float value);

  // required float plc_border_maxy = 17;
  bool has_plc_border_maxy() const;
  void clear_plc_border_maxy();
  static const int kPlcBorderMaxyFieldNumber = 17;
  float plc_border_maxy() const;
  void set_plc_border_maxy(float value);

  // required float car_min_width = 18;
  bool has_car_min_width() const;
  void clear_car_min_width();
  static const int kCarMinWidthFieldNumber = 18;
  float car_min_width() const;
  void set_car_min_width(float value);

  // required float car_max_width = 19;
  bool has_car_max_width() const;
  void clear_car_max_width();
  static const int kCarMaxWidthFieldNumber = 19;
  float car_max_width() const;
  void set_car_max_width(float value);

  // required float car_min_wheelbase = 20;
  bool has_car_min_wheelbase() const;
  void clear_car_min_wheelbase();
  static const int kCarMinWheelbaseFieldNumber = 20;
  float car_min_wheelbase() const;
  void set_car_min_wheelbase(float value);

  // required float car_max_wheelbase = 21;
  bool has_car_max_wheelbase() const;
  void clear_car_max_wheelbase();
  static const int kCarMaxWheelbaseFieldNumber = 21;
  float car_max_wheelbase() const;
  void set_car_max_wheelbase(float value);

  // required float turnplate_angle_limit_anti_clockwise = 22;
  bool has_turnplate_angle_limit_anti_clockwise() const;
  void clear_turnplate_angle_limit_anti_clockwise();
  static const int kTurnplateAngleLimitAntiClockwiseFieldNumber = 22;
  float turnplate_angle_limit_anti_clockwise() const;
  void set_turnplate_angle_limit_anti_clockwise(float value);

  // required float turnplate_angle_limit_clockwise = 23;
  bool has_turnplate_angle_limit_clockwise() const;
  void clear_turnplate_angle_limit_clockwise();
  static const int kTurnplateAngleLimitClockwiseFieldNumber = 23;
  float turnplate_angle_limit_clockwise() const;
  void set_turnplate_angle_limit_clockwise(float value);

  // @@protoc_insertion_point(class_scope:velodyne.Region)
 private:
  void set_has_minx();
  void clear_has_minx();
  void set_has_maxx();
  void clear_has_maxx();
  void set_has_miny();
  void clear_has_miny();
  void set_has_maxy();
  void clear_has_maxy();
  void set_has_minz();
  void clear_has_minz();
  void set_has_maxz();
  void clear_has_maxz();
  void set_has_region_id();
  void clear_has_region_id();
  void set_has_turnplate_cx();
  void clear_has_turnplate_cx();
  void set_has_turnplate_cy();
  void clear_has_turnplate_cy();
  void set_has_border_minx();
  void clear_has_border_minx();
  void set_has_border_maxx();
  void clear_has_border_maxx();
  void set_has_plc_offsetx();
  void clear_has_plc_offsetx();
  void set_has_plc_offsety();
  void clear_has_plc_offsety();
  void set_has_plc_offset_degree();
  void clear_has_plc_offset_degree();
  void set_has_plc_border_miny();
  void clear_has_plc_border_miny();
  void set_has_plc_border_maxy();
  void clear_has_plc_border_maxy();
  void set_has_car_min_width();
  void clear_has_car_min_width();
  void set_has_car_max_width();
  void clear_has_car_max_width();
  void set_has_car_min_wheelbase();
  void clear_has_car_min_wheelbase();
  void set_has_car_max_wheelbase();
  void clear_has_car_max_wheelbase();
  void set_has_turnplate_angle_limit_anti_clockwise();
  void clear_has_turnplate_angle_limit_anti_clockwise();
  void set_has_turnplate_angle_limit_clockwise();
  void clear_has_turnplate_angle_limit_clockwise();

  // helper for ByteSizeLong()
  size_t RequiredFieldsByteSizeFallback() const;

  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
  ::google::protobuf::internal::HasBits<1> _has_bits_;
  mutable ::google::protobuf::internal::CachedSize _cached_size_;
  ::google::protobuf::RepeatedPtrField< ::velodyne::lidarExtrinsic > lidar_exts_;
  float minx_;
  float maxx_;
  float miny_;
  float maxy_;
  float minz_;
  float maxz_;
  ::google::protobuf::int32 region_id_;
  float turnplate_cx_;
  float turnplate_cy_;
  float border_minx_;
  float border_maxx_;
  float plc_offsetx_;
  float plc_offsety_;
  float plc_offset_degree_;
  float plc_border_miny_;
  float plc_border_maxy_;
  float car_min_width_;
  float car_max_width_;
  float car_min_wheelbase_;
  float car_max_wheelbase_;
  float turnplate_angle_limit_anti_clockwise_;
  float turnplate_angle_limit_clockwise_;
  friend struct ::protobuf_velodyne_5fconfig_2eproto::TableStruct;
};
// ===================================================================


// ===================================================================

#ifdef __GNUC__
  #pragma GCC diagnostic push
  #pragma GCC diagnostic ignored "-Wstrict-aliasing"
#endif  // __GNUC__
// velodyneManagerParams

// repeated .velodyne.velodyneLidarParams velodyne_lidars = 1;
inline int velodyneManagerParams::velodyne_lidars_size() const {
  return velodyne_lidars_.size();
}
inline void velodyneManagerParams::clear_velodyne_lidars() {
  velodyne_lidars_.Clear();
}
inline ::velodyne::velodyneLidarParams* velodyneManagerParams::mutable_velodyne_lidars(int index) {
  // @@protoc_insertion_point(field_mutable:velodyne.velodyneManagerParams.velodyne_lidars)
  return velodyne_lidars_.Mutable(index);
}
inline ::google::protobuf::RepeatedPtrField< ::velodyne::velodyneLidarParams >*
velodyneManagerParams::mutable_velodyne_lidars() {
  // @@protoc_insertion_point(field_mutable_list:velodyne.velodyneManagerParams.velodyne_lidars)
  return &velodyne_lidars_;
}
inline const ::velodyne::velodyneLidarParams& velodyneManagerParams::velodyne_lidars(int index) const {
  // @@protoc_insertion_point(field_get:velodyne.velodyneManagerParams.velodyne_lidars)
  return velodyne_lidars_.Get(index);
}
inline ::velodyne::velodyneLidarParams* velodyneManagerParams::add_velodyne_lidars() {
  // @@protoc_insertion_point(field_add:velodyne.velodyneManagerParams.velodyne_lidars)
  return velodyne_lidars_.Add();
}
inline const ::google::protobuf::RepeatedPtrField< ::velodyne::velodyneLidarParams >&
velodyneManagerParams::velodyne_lidars() const {
  // @@protoc_insertion_point(field_list:velodyne.velodyneManagerParams.velodyne_lidars)
  return velodyne_lidars_;
}

// repeated .velodyne.Region region = 2;
inline int velodyneManagerParams::region_size() const {
  return region_.size();
}
inline void velodyneManagerParams::clear_region() {
  region_.Clear();
}
inline ::velodyne::Region* velodyneManagerParams::mutable_region(int index) {
  // @@protoc_insertion_point(field_mutable:velodyne.velodyneManagerParams.region)
  return region_.Mutable(index);
}
inline ::google::protobuf::RepeatedPtrField< ::velodyne::Region >*
velodyneManagerParams::mutable_region() {
  // @@protoc_insertion_point(field_mutable_list:velodyne.velodyneManagerParams.region)
  return &region_;
}
inline const ::velodyne::Region& velodyneManagerParams::region(int index) const {
  // @@protoc_insertion_point(field_get:velodyne.velodyneManagerParams.region)
  return region_.Get(index);
}
inline ::velodyne::Region* velodyneManagerParams::add_region() {
  // @@protoc_insertion_point(field_add:velodyne.velodyneManagerParams.region)
  return region_.Add();
}
inline const ::google::protobuf::RepeatedPtrField< ::velodyne::Region >&
velodyneManagerParams::region() const {
  // @@protoc_insertion_point(field_list:velodyne.velodyneManagerParams.region)
  return region_;
}

// optional string fence_data_path = 3 [default = ""];
inline bool velodyneManagerParams::has_fence_data_path() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void velodyneManagerParams::set_has_fence_data_path() {
  _has_bits_[0] |= 0x00000001u;
}
inline void velodyneManagerParams::clear_has_fence_data_path() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void velodyneManagerParams::clear_fence_data_path() {
  fence_data_path_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  clear_has_fence_data_path();
}
inline const ::std::string& velodyneManagerParams::fence_data_path() const {
  // @@protoc_insertion_point(field_get:velodyne.velodyneManagerParams.fence_data_path)
  return fence_data_path_.GetNoArena();
}
inline void velodyneManagerParams::set_fence_data_path(const ::std::string& value) {
  set_has_fence_data_path();
  fence_data_path_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:velodyne.velodyneManagerParams.fence_data_path)
}
#if LANG_CXX11
inline void velodyneManagerParams::set_fence_data_path(::std::string&& value) {
  set_has_fence_data_path();
  fence_data_path_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:velodyne.velodyneManagerParams.fence_data_path)
}
#endif
inline void velodyneManagerParams::set_fence_data_path(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  set_has_fence_data_path();
  fence_data_path_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:velodyne.velodyneManagerParams.fence_data_path)
}
inline void velodyneManagerParams::set_fence_data_path(const char* value, size_t size) {
  set_has_fence_data_path();
  fence_data_path_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:velodyne.velodyneManagerParams.fence_data_path)
}
inline ::std::string* velodyneManagerParams::mutable_fence_data_path() {
  set_has_fence_data_path();
  // @@protoc_insertion_point(field_mutable:velodyne.velodyneManagerParams.fence_data_path)
  return fence_data_path_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline ::std::string* velodyneManagerParams::release_fence_data_path() {
  // @@protoc_insertion_point(field_release:velodyne.velodyneManagerParams.fence_data_path)
  if (!has_fence_data_path()) {
    return NULL;
  }
  clear_has_fence_data_path();
  return fence_data_path_.ReleaseNonDefaultNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline void velodyneManagerParams::set_allocated_fence_data_path(::std::string* fence_data_path) {
  if (fence_data_path != NULL) {
    set_has_fence_data_path();
  } else {
    clear_has_fence_data_path();
  }
  fence_data_path_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), fence_data_path);
  // @@protoc_insertion_point(field_set_allocated:velodyne.velodyneManagerParams.fence_data_path)
}

// optional string fence_log_path = 4 [default = ""];
inline bool velodyneManagerParams::has_fence_log_path() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void velodyneManagerParams::set_has_fence_log_path() {
  _has_bits_[0] |= 0x00000002u;
}
inline void velodyneManagerParams::clear_has_fence_log_path() {
  _has_bits_[0] &= ~0x00000002u;
}
inline void velodyneManagerParams::clear_fence_log_path() {
  fence_log_path_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  clear_has_fence_log_path();
}
inline const ::std::string& velodyneManagerParams::fence_log_path() const {
  // @@protoc_insertion_point(field_get:velodyne.velodyneManagerParams.fence_log_path)
  return fence_log_path_.GetNoArena();
}
inline void velodyneManagerParams::set_fence_log_path(const ::std::string& value) {
  set_has_fence_log_path();
  fence_log_path_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:velodyne.velodyneManagerParams.fence_log_path)
}
#if LANG_CXX11
inline void velodyneManagerParams::set_fence_log_path(::std::string&& value) {
  set_has_fence_log_path();
  fence_log_path_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:velodyne.velodyneManagerParams.fence_log_path)
}
#endif
inline void velodyneManagerParams::set_fence_log_path(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  set_has_fence_log_path();
  fence_log_path_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:velodyne.velodyneManagerParams.fence_log_path)
}
inline void velodyneManagerParams::set_fence_log_path(const char* value, size_t size) {
  set_has_fence_log_path();
  fence_log_path_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:velodyne.velodyneManagerParams.fence_log_path)
}
inline ::std::string* velodyneManagerParams::mutable_fence_log_path() {
  set_has_fence_log_path();
  // @@protoc_insertion_point(field_mutable:velodyne.velodyneManagerParams.fence_log_path)
  return fence_log_path_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline ::std::string* velodyneManagerParams::release_fence_log_path() {
  // @@protoc_insertion_point(field_release:velodyne.velodyneManagerParams.fence_log_path)
  if (!has_fence_log_path()) {
    return NULL;
  }
  clear_has_fence_log_path();
  return fence_log_path_.ReleaseNonDefaultNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline void velodyneManagerParams::set_allocated_fence_log_path(::std::string* fence_log_path) {
  if (fence_log_path != NULL) {
    set_has_fence_log_path();
  } else {
    clear_has_fence_log_path();
  }
  fence_log_path_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), fence_log_path);
  // @@protoc_insertion_point(field_set_allocated:velodyne.velodyneManagerParams.fence_log_path)
}

// optional string left_model_path = 5 [default = ""];
inline bool velodyneManagerParams::has_left_model_path() const {
  return (_has_bits_[0] & 0x00000004u) != 0;
}
inline void velodyneManagerParams::set_has_left_model_path() {
  _has_bits_[0] |= 0x00000004u;
}
inline void velodyneManagerParams::clear_has_left_model_path() {
  _has_bits_[0] &= ~0x00000004u;
}
inline void velodyneManagerParams::clear_left_model_path() {
  left_model_path_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  clear_has_left_model_path();
}
inline const ::std::string& velodyneManagerParams::left_model_path() const {
  // @@protoc_insertion_point(field_get:velodyne.velodyneManagerParams.left_model_path)
  return left_model_path_.GetNoArena();
}
inline void velodyneManagerParams::set_left_model_path(const ::std::string& value) {
  set_has_left_model_path();
  left_model_path_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:velodyne.velodyneManagerParams.left_model_path)
}
#if LANG_CXX11
inline void velodyneManagerParams::set_left_model_path(::std::string&& value) {
  set_has_left_model_path();
  left_model_path_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:velodyne.velodyneManagerParams.left_model_path)
}
#endif
inline void velodyneManagerParams::set_left_model_path(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  set_has_left_model_path();
  left_model_path_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:velodyne.velodyneManagerParams.left_model_path)
}
inline void velodyneManagerParams::set_left_model_path(const char* value, size_t size) {
  set_has_left_model_path();
  left_model_path_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:velodyne.velodyneManagerParams.left_model_path)
}
inline ::std::string* velodyneManagerParams::mutable_left_model_path() {
  set_has_left_model_path();
  // @@protoc_insertion_point(field_mutable:velodyne.velodyneManagerParams.left_model_path)
  return left_model_path_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline ::std::string* velodyneManagerParams::release_left_model_path() {
  // @@protoc_insertion_point(field_release:velodyne.velodyneManagerParams.left_model_path)
  if (!has_left_model_path()) {
    return NULL;
  }
  clear_has_left_model_path();
  return left_model_path_.ReleaseNonDefaultNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline void velodyneManagerParams::set_allocated_left_model_path(::std::string* left_model_path) {
  if (left_model_path != NULL) {
    set_has_left_model_path();
  } else {
    clear_has_left_model_path();
  }
  left_model_path_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), left_model_path);
  // @@protoc_insertion_point(field_set_allocated:velodyne.velodyneManagerParams.left_model_path)
}

// optional string right_model_path = 6 [default = ""];
inline bool velodyneManagerParams::has_right_model_path() const {
  return (_has_bits_[0] & 0x00000008u) != 0;
}
inline void velodyneManagerParams::set_has_right_model_path() {
  _has_bits_[0] |= 0x00000008u;
}
inline void velodyneManagerParams::clear_has_right_model_path() {
  _has_bits_[0] &= ~0x00000008u;
}
inline void velodyneManagerParams::clear_right_model_path() {
  right_model_path_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  clear_has_right_model_path();
}
inline const ::std::string& velodyneManagerParams::right_model_path() const {
  // @@protoc_insertion_point(field_get:velodyne.velodyneManagerParams.right_model_path)
  return right_model_path_.GetNoArena();
}
inline void velodyneManagerParams::set_right_model_path(const ::std::string& value) {
  set_has_right_model_path();
  right_model_path_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:velodyne.velodyneManagerParams.right_model_path)
}
#if LANG_CXX11
inline void velodyneManagerParams::set_right_model_path(::std::string&& value) {
  set_has_right_model_path();
  right_model_path_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:velodyne.velodyneManagerParams.right_model_path)
}
#endif
inline void velodyneManagerParams::set_right_model_path(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  set_has_right_model_path();
  right_model_path_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:velodyne.velodyneManagerParams.right_model_path)
}
inline void velodyneManagerParams::set_right_model_path(const char* value, size_t size) {
  set_has_right_model_path();
  right_model_path_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:velodyne.velodyneManagerParams.right_model_path)
}
inline ::std::string* velodyneManagerParams::mutable_right_model_path() {
  set_has_right_model_path();
  // @@protoc_insertion_point(field_mutable:velodyne.velodyneManagerParams.right_model_path)
  return right_model_path_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline ::std::string* velodyneManagerParams::release_right_model_path() {
  // @@protoc_insertion_point(field_release:velodyne.velodyneManagerParams.right_model_path)
  if (!has_right_model_path()) {
    return NULL;
  }
  clear_has_right_model_path();
  return right_model_path_.ReleaseNonDefaultNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline void velodyneManagerParams::set_allocated_right_model_path(::std::string* right_model_path) {
  if (right_model_path != NULL) {
    set_has_right_model_path();
  } else {
    clear_has_right_model_path();
  }
  right_model_path_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), right_model_path);
  // @@protoc_insertion_point(field_set_allocated:velodyne.velodyneManagerParams.right_model_path)
}

// required bool distribution_mode = 7 [default = false];
inline bool velodyneManagerParams::has_distribution_mode() const {
  return (_has_bits_[0] & 0x00000010u) != 0;
}
inline void velodyneManagerParams::set_has_distribution_mode() {
  _has_bits_[0] |= 0x00000010u;
}
inline void velodyneManagerParams::clear_has_distribution_mode() {
  _has_bits_[0] &= ~0x00000010u;
}
inline void velodyneManagerParams::clear_distribution_mode() {
  distribution_mode_ = false;
  clear_has_distribution_mode();
}
inline bool velodyneManagerParams::distribution_mode() const {
  // @@protoc_insertion_point(field_get:velodyne.velodyneManagerParams.distribution_mode)
  return distribution_mode_;
}
inline void velodyneManagerParams::set_distribution_mode(bool value) {
  set_has_distribution_mode();
  distribution_mode_ = value;
  // @@protoc_insertion_point(field_set:velodyne.velodyneManagerParams.distribution_mode)
}

// -------------------------------------------------------------------

// velodyneLidarParams

// required string ip = 1 [default = ""];
inline bool velodyneLidarParams::has_ip() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void velodyneLidarParams::set_has_ip() {
  _has_bits_[0] |= 0x00000001u;
}
inline void velodyneLidarParams::clear_has_ip() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void velodyneLidarParams::clear_ip() {
  ip_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  clear_has_ip();
}
inline const ::std::string& velodyneLidarParams::ip() const {
  // @@protoc_insertion_point(field_get:velodyne.velodyneLidarParams.ip)
  return ip_.GetNoArena();
}
inline void velodyneLidarParams::set_ip(const ::std::string& value) {
  set_has_ip();
  ip_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:velodyne.velodyneLidarParams.ip)
}
#if LANG_CXX11
inline void velodyneLidarParams::set_ip(::std::string&& value) {
  set_has_ip();
  ip_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:velodyne.velodyneLidarParams.ip)
}
#endif
inline void velodyneLidarParams::set_ip(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  set_has_ip();
  ip_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:velodyne.velodyneLidarParams.ip)
}
inline void velodyneLidarParams::set_ip(const char* value, size_t size) {
  set_has_ip();
  ip_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:velodyne.velodyneLidarParams.ip)
}
inline ::std::string* velodyneLidarParams::mutable_ip() {
  set_has_ip();
  // @@protoc_insertion_point(field_mutable:velodyne.velodyneLidarParams.ip)
  return ip_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline ::std::string* velodyneLidarParams::release_ip() {
  // @@protoc_insertion_point(field_release:velodyne.velodyneLidarParams.ip)
  if (!has_ip()) {
    return NULL;
  }
  clear_has_ip();
  return ip_.ReleaseNonDefaultNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline void velodyneLidarParams::set_allocated_ip(::std::string* ip) {
  if (ip != NULL) {
    set_has_ip();
  } else {
    clear_has_ip();
  }
  ip_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ip);
  // @@protoc_insertion_point(field_set_allocated:velodyne.velodyneLidarParams.ip)
}

// required int32 port = 2 [default = 2368];
inline bool velodyneLidarParams::has_port() const {
  return (_has_bits_[0] & 0x00000040u) != 0;
}
inline void velodyneLidarParams::set_has_port() {
  _has_bits_[0] |= 0x00000040u;
}
inline void velodyneLidarParams::clear_has_port() {
  _has_bits_[0] &= ~0x00000040u;
}
inline void velodyneLidarParams::clear_port() {
  port_ = 2368;
  clear_has_port();
}
inline ::google::protobuf::int32 velodyneLidarParams::port() const {
  // @@protoc_insertion_point(field_get:velodyne.velodyneLidarParams.port)
  return port_;
}
inline void velodyneLidarParams::set_port(::google::protobuf::int32 value) {
  set_has_port();
  port_ = value;
  // @@protoc_insertion_point(field_set:velodyne.velodyneLidarParams.port)
}

// required string model = 3 [default = "VLP16"];
inline bool velodyneLidarParams::has_model() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void velodyneLidarParams::set_has_model() {
  _has_bits_[0] |= 0x00000002u;
}
inline void velodyneLidarParams::clear_has_model() {
  _has_bits_[0] &= ~0x00000002u;
}
inline void velodyneLidarParams::clear_model() {
  model_.ClearToDefaultNoArena(&::velodyne::velodyneLidarParams::_i_give_permission_to_break_this_code_default_model_.get());
  clear_has_model();
}
inline const ::std::string& velodyneLidarParams::model() const {
  // @@protoc_insertion_point(field_get:velodyne.velodyneLidarParams.model)
  return model_.GetNoArena();
}
inline void velodyneLidarParams::set_model(const ::std::string& value) {
  set_has_model();
  model_.SetNoArena(&::velodyne::velodyneLidarParams::_i_give_permission_to_break_this_code_default_model_.get(), value);
  // @@protoc_insertion_point(field_set:velodyne.velodyneLidarParams.model)
}
#if LANG_CXX11
inline void velodyneLidarParams::set_model(::std::string&& value) {
  set_has_model();
  model_.SetNoArena(
    &::velodyne::velodyneLidarParams::_i_give_permission_to_break_this_code_default_model_.get(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:velodyne.velodyneLidarParams.model)
}
#endif
inline void velodyneLidarParams::set_model(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  set_has_model();
  model_.SetNoArena(&::velodyne::velodyneLidarParams::_i_give_permission_to_break_this_code_default_model_.get(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:velodyne.velodyneLidarParams.model)
}
inline void velodyneLidarParams::set_model(const char* value, size_t size) {
  set_has_model();
  model_.SetNoArena(&::velodyne::velodyneLidarParams::_i_give_permission_to_break_this_code_default_model_.get(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:velodyne.velodyneLidarParams.model)
}
inline ::std::string* velodyneLidarParams::mutable_model() {
  set_has_model();
  // @@protoc_insertion_point(field_mutable:velodyne.velodyneLidarParams.model)
  return model_.MutableNoArena(&::velodyne::velodyneLidarParams::_i_give_permission_to_break_this_code_default_model_.get());
}
inline ::std::string* velodyneLidarParams::release_model() {
  // @@protoc_insertion_point(field_release:velodyne.velodyneLidarParams.model)
  if (!has_model()) {
    return NULL;
  }
  clear_has_model();
  return model_.ReleaseNonDefaultNoArena(&::velodyne::velodyneLidarParams::_i_give_permission_to_break_this_code_default_model_.get());
}
inline void velodyneLidarParams::set_allocated_model(::std::string* model) {
  if (model != NULL) {
    set_has_model();
  } else {
    clear_has_model();
  }
  model_.SetAllocatedNoArena(&::velodyne::velodyneLidarParams::_i_give_permission_to_break_this_code_default_model_.get(), model);
  // @@protoc_insertion_point(field_set_allocated:velodyne.velodyneLidarParams.model)
}

// required string calibrationFile = 4 [default = ""];
inline bool velodyneLidarParams::has_calibrationfile() const {
  return (_has_bits_[0] & 0x00000004u) != 0;
}
inline void velodyneLidarParams::set_has_calibrationfile() {
  _has_bits_[0] |= 0x00000004u;
}
inline void velodyneLidarParams::clear_has_calibrationfile() {
  _has_bits_[0] &= ~0x00000004u;
}
inline void velodyneLidarParams::clear_calibrationfile() {
  calibrationfile_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  clear_has_calibrationfile();
}
inline const ::std::string& velodyneLidarParams::calibrationfile() const {
  // @@protoc_insertion_point(field_get:velodyne.velodyneLidarParams.calibrationFile)
  return calibrationfile_.GetNoArena();
}
inline void velodyneLidarParams::set_calibrationfile(const ::std::string& value) {
  set_has_calibrationfile();
  calibrationfile_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:velodyne.velodyneLidarParams.calibrationFile)
}
#if LANG_CXX11
inline void velodyneLidarParams::set_calibrationfile(::std::string&& value) {
  set_has_calibrationfile();
  calibrationfile_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:velodyne.velodyneLidarParams.calibrationFile)
}
#endif
inline void velodyneLidarParams::set_calibrationfile(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  set_has_calibrationfile();
  calibrationfile_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:velodyne.velodyneLidarParams.calibrationFile)
}
inline void velodyneLidarParams::set_calibrationfile(const char* value, size_t size) {
  set_has_calibrationfile();
  calibrationfile_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:velodyne.velodyneLidarParams.calibrationFile)
}
inline ::std::string* velodyneLidarParams::mutable_calibrationfile() {
  set_has_calibrationfile();
  // @@protoc_insertion_point(field_mutable:velodyne.velodyneLidarParams.calibrationFile)
  return calibrationfile_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline ::std::string* velodyneLidarParams::release_calibrationfile() {
  // @@protoc_insertion_point(field_release:velodyne.velodyneLidarParams.calibrationFile)
  if (!has_calibrationfile()) {
    return NULL;
  }
  clear_has_calibrationfile();
  return calibrationfile_.ReleaseNonDefaultNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline void velodyneLidarParams::set_allocated_calibrationfile(::std::string* calibrationfile) {
  if (calibrationfile != NULL) {
    set_has_calibrationfile();
  } else {
    clear_has_calibrationfile();
  }
  calibrationfile_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), calibrationfile);
  // @@protoc_insertion_point(field_set_allocated:velodyne.velodyneLidarParams.calibrationFile)
}

// required int32 lidar_id = 5 [default = 0];
inline bool velodyneLidarParams::has_lidar_id() const {
  return (_has_bits_[0] & 0x00000010u) != 0;
}
inline void velodyneLidarParams::set_has_lidar_id() {
  _has_bits_[0] |= 0x00000010u;
}
inline void velodyneLidarParams::clear_has_lidar_id() {
  _has_bits_[0] &= ~0x00000010u;
}
inline void velodyneLidarParams::clear_lidar_id() {
  lidar_id_ = 0;
  clear_has_lidar_id();
}
inline ::google::protobuf::int32 velodyneLidarParams::lidar_id() const {
  // @@protoc_insertion_point(field_get:velodyne.velodyneLidarParams.lidar_id)
  return lidar_id_;
}
inline void velodyneLidarParams::set_lidar_id(::google::protobuf::int32 value) {
  set_has_lidar_id();
  lidar_id_ = value;
  // @@protoc_insertion_point(field_set:velodyne.velodyneLidarParams.lidar_id)
}

// optional float max_range = 6 [default = 10];
inline bool velodyneLidarParams::has_max_range() const {
  return (_has_bits_[0] & 0x00000080u) != 0;
}
inline void velodyneLidarParams::set_has_max_range() {
  _has_bits_[0] |= 0x00000080u;
}
inline void velodyneLidarParams::clear_has_max_range() {
  _has_bits_[0] &= ~0x00000080u;
}
inline void velodyneLidarParams::clear_max_range() {
  max_range_ = 10;
  clear_has_max_range();
}
inline float velodyneLidarParams::max_range() const {
  // @@protoc_insertion_point(field_get:velodyne.velodyneLidarParams.max_range)
  return max_range_;
}
inline void velodyneLidarParams::set_max_range(float value) {
  set_has_max_range();
  max_range_ = value;
  // @@protoc_insertion_point(field_set:velodyne.velodyneLidarParams.max_range)
}

// optional float min_range = 7 [default = 0.15];
inline bool velodyneLidarParams::has_min_range() const {
  return (_has_bits_[0] & 0x00000100u) != 0;
}
inline void velodyneLidarParams::set_has_min_range() {
  _has_bits_[0] |= 0x00000100u;
}
inline void velodyneLidarParams::clear_has_min_range() {
  _has_bits_[0] &= ~0x00000100u;
}
inline void velodyneLidarParams::clear_min_range() {
  min_range_ = 0.15f;
  clear_has_min_range();
}
inline float velodyneLidarParams::min_range() const {
  // @@protoc_insertion_point(field_get:velodyne.velodyneLidarParams.min_range)
  return min_range_;
}
inline void velodyneLidarParams::set_min_range(float value) {
  set_has_min_range();
  min_range_ = value;
  // @@protoc_insertion_point(field_set:velodyne.velodyneLidarParams.min_range)
}

// optional int32 min_angle = 8 [default = 0];
inline bool velodyneLidarParams::has_min_angle() const {
  return (_has_bits_[0] & 0x00000020u) != 0;
}
inline void velodyneLidarParams::set_has_min_angle() {
  _has_bits_[0] |= 0x00000020u;
}
inline void velodyneLidarParams::clear_has_min_angle() {
  _has_bits_[0] &= ~0x00000020u;
}
inline void velodyneLidarParams::clear_min_angle() {
  min_angle_ = 0;
  clear_has_min_angle();
}
inline ::google::protobuf::int32 velodyneLidarParams::min_angle() const {
  // @@protoc_insertion_point(field_get:velodyne.velodyneLidarParams.min_angle)
  return min_angle_;
}
inline void velodyneLidarParams::set_min_angle(::google::protobuf::int32 value) {
  set_has_min_angle();
  min_angle_ = value;
  // @@protoc_insertion_point(field_set:velodyne.velodyneLidarParams.min_angle)
}

// optional int32 max_angle = 9 [default = 360];
inline bool velodyneLidarParams::has_max_angle() const {
  return (_has_bits_[0] & 0x00000200u) != 0;
}
inline void velodyneLidarParams::set_has_max_angle() {
  _has_bits_[0] |= 0x00000200u;
}
inline void velodyneLidarParams::clear_has_max_angle() {
  _has_bits_[0] &= ~0x00000200u;
}
inline void velodyneLidarParams::clear_max_angle() {
  max_angle_ = 360;
  clear_has_max_angle();
}
inline ::google::protobuf::int32 velodyneLidarParams::max_angle() const {
  // @@protoc_insertion_point(field_get:velodyne.velodyneLidarParams.max_angle)
  return max_angle_;
}
inline void velodyneLidarParams::set_max_angle(::google::protobuf::int32 value) {
  set_has_max_angle();
  max_angle_ = value;
  // @@protoc_insertion_point(field_set:velodyne.velodyneLidarParams.max_angle)
}

// optional int32 rpm = 10 [default = 600];
inline bool velodyneLidarParams::has_rpm() const {
  return (_has_bits_[0] & 0x00000400u) != 0;
}
inline void velodyneLidarParams::set_has_rpm() {
  _has_bits_[0] |= 0x00000400u;
}
inline void velodyneLidarParams::clear_has_rpm() {
  _has_bits_[0] &= ~0x00000400u;
}
inline void velodyneLidarParams::clear_rpm() {
  rpm_ = 600;
  clear_has_rpm();
}
inline ::google::protobuf::int32 velodyneLidarParams::rpm() const {
  // @@protoc_insertion_point(field_get:velodyne.velodyneLidarParams.rpm)
  return rpm_;
}
inline void velodyneLidarParams::set_rpm(::google::protobuf::int32 value) {
  set_has_rpm();
  rpm_ = value;
  // @@protoc_insertion_point(field_set:velodyne.velodyneLidarParams.rpm)
}

// optional .velodyne.CalibParameter calib = 11;
inline bool velodyneLidarParams::has_calib() const {
  return (_has_bits_[0] & 0x00000008u) != 0;
}
inline void velodyneLidarParams::set_has_calib() {
  _has_bits_[0] |= 0x00000008u;
}
inline void velodyneLidarParams::clear_has_calib() {
  _has_bits_[0] &= ~0x00000008u;
}
inline void velodyneLidarParams::clear_calib() {
  if (calib_ != NULL) calib_->Clear();
  clear_has_calib();
}
inline const ::velodyne::CalibParameter& velodyneLidarParams::_internal_calib() const {
  return *calib_;
}
inline const ::velodyne::CalibParameter& velodyneLidarParams::calib() const {
  const ::velodyne::CalibParameter* p = calib_;
  // @@protoc_insertion_point(field_get:velodyne.velodyneLidarParams.calib)
  return p != NULL ? *p : *reinterpret_cast<const ::velodyne::CalibParameter*>(
      &::velodyne::_CalibParameter_default_instance_);
}
inline ::velodyne::CalibParameter* velodyneLidarParams::release_calib() {
  // @@protoc_insertion_point(field_release:velodyne.velodyneLidarParams.calib)
  clear_has_calib();
  ::velodyne::CalibParameter* temp = calib_;
  calib_ = NULL;
  return temp;
}
inline ::velodyne::CalibParameter* velodyneLidarParams::mutable_calib() {
  set_has_calib();
  if (calib_ == NULL) {
    auto* p = CreateMaybeMessage<::velodyne::CalibParameter>(GetArenaNoVirtual());
    calib_ = p;
  }
  // @@protoc_insertion_point(field_mutable:velodyne.velodyneLidarParams.calib)
  return calib_;
}
inline void velodyneLidarParams::set_allocated_calib(::velodyne::CalibParameter* calib) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete calib_;
  }
  if (calib) {
    ::google::protobuf::Arena* submessage_arena = NULL;
    if (message_arena != submessage_arena) {
      calib = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, calib, submessage_arena);
    }
    set_has_calib();
  } else {
    clear_has_calib();
  }
  calib_ = calib;
  // @@protoc_insertion_point(field_set_allocated:velodyne.velodyneLidarParams.calib)
}

// optional int32 difop = 12 [default = 7788];
inline bool velodyneLidarParams::has_difop() const {
  return (_has_bits_[0] & 0x00000800u) != 0;
}
inline void velodyneLidarParams::set_has_difop() {
  _has_bits_[0] |= 0x00000800u;
}
inline void velodyneLidarParams::clear_has_difop() {
  _has_bits_[0] &= ~0x00000800u;
}
inline void velodyneLidarParams::clear_difop() {
  difop_ = 7788;
  clear_has_difop();
}
inline ::google::protobuf::int32 velodyneLidarParams::difop() const {
  // @@protoc_insertion_point(field_get:velodyne.velodyneLidarParams.difop)
  return difop_;
}
inline void velodyneLidarParams::set_difop(::google::protobuf::int32 value) {
  set_has_difop();
  difop_ = value;
  // @@protoc_insertion_point(field_set:velodyne.velodyneLidarParams.difop)
}

// -------------------------------------------------------------------

// CalibParameter

// optional float r = 1 [default = 0];
inline bool CalibParameter::has_r() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void CalibParameter::set_has_r() {
  _has_bits_[0] |= 0x00000001u;
}
inline void CalibParameter::clear_has_r() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void CalibParameter::clear_r() {
  r_ = 0;
  clear_has_r();
}
inline float CalibParameter::r() const {
  // @@protoc_insertion_point(field_get:velodyne.CalibParameter.r)
  return r_;
}
inline void CalibParameter::set_r(float value) {
  set_has_r();
  r_ = value;
  // @@protoc_insertion_point(field_set:velodyne.CalibParameter.r)
}

// optional float p = 2 [default = 0];
inline bool CalibParameter::has_p() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void CalibParameter::set_has_p() {
  _has_bits_[0] |= 0x00000002u;
}
inline void CalibParameter::clear_has_p() {
  _has_bits_[0] &= ~0x00000002u;
}
inline void CalibParameter::clear_p() {
  p_ = 0;
  clear_has_p();
}
inline float CalibParameter::p() const {
  // @@protoc_insertion_point(field_get:velodyne.CalibParameter.p)
  return p_;
}
inline void CalibParameter::set_p(float value) {
  set_has_p();
  p_ = value;
  // @@protoc_insertion_point(field_set:velodyne.CalibParameter.p)
}

// optional float y = 3 [default = 0];
inline bool CalibParameter::has_y() const {
  return (_has_bits_[0] & 0x00000004u) != 0;
}
inline void CalibParameter::set_has_y() {
  _has_bits_[0] |= 0x00000004u;
}
inline void CalibParameter::clear_has_y() {
  _has_bits_[0] &= ~0x00000004u;
}
inline void CalibParameter::clear_y() {
  y_ = 0;
  clear_has_y();
}
inline float CalibParameter::y() const {
  // @@protoc_insertion_point(field_get:velodyne.CalibParameter.y)
  return y_;
}
inline void CalibParameter::set_y(float value) {
  set_has_y();
  y_ = value;
  // @@protoc_insertion_point(field_set:velodyne.CalibParameter.y)
}

// optional float cx = 4 [default = 0];
inline bool CalibParameter::has_cx() const {
  return (_has_bits_[0] & 0x00000008u) != 0;
}
inline void CalibParameter::set_has_cx() {
  _has_bits_[0] |= 0x00000008u;
}
inline void CalibParameter::clear_has_cx() {
  _has_bits_[0] &= ~0x00000008u;
}
inline void CalibParameter::clear_cx() {
  cx_ = 0;
  clear_has_cx();
}
inline float CalibParameter::cx() const {
  // @@protoc_insertion_point(field_get:velodyne.CalibParameter.cx)
  return cx_;
}
inline void CalibParameter::set_cx(float value) {
  set_has_cx();
  cx_ = value;
  // @@protoc_insertion_point(field_set:velodyne.CalibParameter.cx)
}

// optional float cy = 5 [default = 0];
inline bool CalibParameter::has_cy() const {
  return (_has_bits_[0] & 0x00000010u) != 0;
}
inline void CalibParameter::set_has_cy() {
  _has_bits_[0] |= 0x00000010u;
}
inline void CalibParameter::clear_has_cy() {
  _has_bits_[0] &= ~0x00000010u;
}
inline void CalibParameter::clear_cy() {
  cy_ = 0;
  clear_has_cy();
}
inline float CalibParameter::cy() const {
  // @@protoc_insertion_point(field_get:velodyne.CalibParameter.cy)
  return cy_;
}
inline void CalibParameter::set_cy(float value) {
  set_has_cy();
  cy_ = value;
  // @@protoc_insertion_point(field_set:velodyne.CalibParameter.cy)
}

// optional float cz = 6 [default = 0];
inline bool CalibParameter::has_cz() const {
  return (_has_bits_[0] & 0x00000020u) != 0;
}
inline void CalibParameter::set_has_cz() {
  _has_bits_[0] |= 0x00000020u;
}
inline void CalibParameter::clear_has_cz() {
  _has_bits_[0] &= ~0x00000020u;
}
inline void CalibParameter::clear_cz() {
  cz_ = 0;
  clear_has_cz();
}
inline float CalibParameter::cz() const {
  // @@protoc_insertion_point(field_get:velodyne.CalibParameter.cz)
  return cz_;
}
inline void CalibParameter::set_cz(float value) {
  set_has_cz();
  cz_ = value;
  // @@protoc_insertion_point(field_set:velodyne.CalibParameter.cz)
}

// -------------------------------------------------------------------

// lidarExtrinsic

// required int32 lidar_id = 1;
inline bool lidarExtrinsic::has_lidar_id() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void lidarExtrinsic::set_has_lidar_id() {
  _has_bits_[0] |= 0x00000002u;
}
inline void lidarExtrinsic::clear_has_lidar_id() {
  _has_bits_[0] &= ~0x00000002u;
}
inline void lidarExtrinsic::clear_lidar_id() {
  lidar_id_ = 0;
  clear_has_lidar_id();
}
inline ::google::protobuf::int32 lidarExtrinsic::lidar_id() const {
  // @@protoc_insertion_point(field_get:velodyne.lidarExtrinsic.lidar_id)
  return lidar_id_;
}
inline void lidarExtrinsic::set_lidar_id(::google::protobuf::int32 value) {
  set_has_lidar_id();
  lidar_id_ = value;
  // @@protoc_insertion_point(field_set:velodyne.lidarExtrinsic.lidar_id)
}

// optional .velodyne.CalibParameter calib = 2;
inline bool lidarExtrinsic::has_calib() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void lidarExtrinsic::set_has_calib() {
  _has_bits_[0] |= 0x00000001u;
}
inline void lidarExtrinsic::clear_has_calib() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void lidarExtrinsic::clear_calib() {
  if (calib_ != NULL) calib_->Clear();
  clear_has_calib();
}
inline const ::velodyne::CalibParameter& lidarExtrinsic::_internal_calib() const {
  return *calib_;
}
inline const ::velodyne::CalibParameter& lidarExtrinsic::calib() const {
  const ::velodyne::CalibParameter* p = calib_;
  // @@protoc_insertion_point(field_get:velodyne.lidarExtrinsic.calib)
  return p != NULL ? *p : *reinterpret_cast<const ::velodyne::CalibParameter*>(
      &::velodyne::_CalibParameter_default_instance_);
}
inline ::velodyne::CalibParameter* lidarExtrinsic::release_calib() {
  // @@protoc_insertion_point(field_release:velodyne.lidarExtrinsic.calib)
  clear_has_calib();
  ::velodyne::CalibParameter* temp = calib_;
  calib_ = NULL;
  return temp;
}
inline ::velodyne::CalibParameter* lidarExtrinsic::mutable_calib() {
  set_has_calib();
  if (calib_ == NULL) {
    auto* p = CreateMaybeMessage<::velodyne::CalibParameter>(GetArenaNoVirtual());
    calib_ = p;
  }
  // @@protoc_insertion_point(field_mutable:velodyne.lidarExtrinsic.calib)
  return calib_;
}
inline void lidarExtrinsic::set_allocated_calib(::velodyne::CalibParameter* calib) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete calib_;
  }
  if (calib) {
    ::google::protobuf::Arena* submessage_arena = NULL;
    if (message_arena != submessage_arena) {
      calib = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, calib, submessage_arena);
    }
    set_has_calib();
  } else {
    clear_has_calib();
  }
  calib_ = calib;
  // @@protoc_insertion_point(field_set_allocated:velodyne.lidarExtrinsic.calib)
}

// -------------------------------------------------------------------

// Region

// required float minx = 1;
inline bool Region::has_minx() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void Region::set_has_minx() {
  _has_bits_[0] |= 0x00000001u;
}
inline void Region::clear_has_minx() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void Region::clear_minx() {
  minx_ = 0;
  clear_has_minx();
}
inline float Region::minx() const {
  // @@protoc_insertion_point(field_get:velodyne.Region.minx)
  return minx_;
}
inline void Region::set_minx(float value) {
  set_has_minx();
  minx_ = value;
  // @@protoc_insertion_point(field_set:velodyne.Region.minx)
}

// required float maxx = 2;
inline bool Region::has_maxx() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void Region::set_has_maxx() {
  _has_bits_[0] |= 0x00000002u;
}
inline void Region::clear_has_maxx() {
  _has_bits_[0] &= ~0x00000002u;
}
inline void Region::clear_maxx() {
  maxx_ = 0;
  clear_has_maxx();
}
inline float Region::maxx() const {
  // @@protoc_insertion_point(field_get:velodyne.Region.maxx)
  return maxx_;
}
inline void Region::set_maxx(float value) {
  set_has_maxx();
  maxx_ = value;
  // @@protoc_insertion_point(field_set:velodyne.Region.maxx)
}

// required float miny = 3;
inline bool Region::has_miny() const {
  return (_has_bits_[0] & 0x00000004u) != 0;
}
inline void Region::set_has_miny() {
  _has_bits_[0] |= 0x00000004u;
}
inline void Region::clear_has_miny() {
  _has_bits_[0] &= ~0x00000004u;
}
inline void Region::clear_miny() {
  miny_ = 0;
  clear_has_miny();
}
inline float Region::miny() const {
  // @@protoc_insertion_point(field_get:velodyne.Region.miny)
  return miny_;
}
inline void Region::set_miny(float value) {
  set_has_miny();
  miny_ = value;
  // @@protoc_insertion_point(field_set:velodyne.Region.miny)
}

// required float maxy = 4;
inline bool Region::has_maxy() const {
  return (_has_bits_[0] & 0x00000008u) != 0;
}
inline void Region::set_has_maxy() {
  _has_bits_[0] |= 0x00000008u;
}
inline void Region::clear_has_maxy() {
  _has_bits_[0] &= ~0x00000008u;
}
inline void Region::clear_maxy() {
  maxy_ = 0;
  clear_has_maxy();
}
inline float Region::maxy() const {
  // @@protoc_insertion_point(field_get:velodyne.Region.maxy)
  return maxy_;
}
inline void Region::set_maxy(float value) {
  set_has_maxy();
  maxy_ = value;
  // @@protoc_insertion_point(field_set:velodyne.Region.maxy)
}

// required float minz = 5;
inline bool Region::has_minz() const {
  return (_has_bits_[0] & 0x00000010u) != 0;
}
inline void Region::set_has_minz() {
  _has_bits_[0] |= 0x00000010u;
}
inline void Region::clear_has_minz() {
  _has_bits_[0] &= ~0x00000010u;
}
inline void Region::clear_minz() {
  minz_ = 0;
  clear_has_minz();
}
inline float Region::minz() const {
  // @@protoc_insertion_point(field_get:velodyne.Region.minz)
  return minz_;
}
inline void Region::set_minz(float value) {
  set_has_minz();
  minz_ = value;
  // @@protoc_insertion_point(field_set:velodyne.Region.minz)
}

// required float maxz = 6;
inline bool Region::has_maxz() const {
  return (_has_bits_[0] & 0x00000020u) != 0;
}
inline void Region::set_has_maxz() {
  _has_bits_[0] |= 0x00000020u;
}
inline void Region::clear_has_maxz() {
  _has_bits_[0] &= ~0x00000020u;
}
inline void Region::clear_maxz() {
  maxz_ = 0;
  clear_has_maxz();
}
inline float Region::maxz() const {
  // @@protoc_insertion_point(field_get:velodyne.Region.maxz)
  return maxz_;
}
inline void Region::set_maxz(float value) {
  set_has_maxz();
  maxz_ = value;
  // @@protoc_insertion_point(field_set:velodyne.Region.maxz)
}

// required int32 region_id = 7;
inline bool Region::has_region_id() const {
  return (_has_bits_[0] & 0x00000040u) != 0;
}
inline void Region::set_has_region_id() {
  _has_bits_[0] |= 0x00000040u;
}
inline void Region::clear_has_region_id() {
  _has_bits_[0] &= ~0x00000040u;
}
inline void Region::clear_region_id() {
  region_id_ = 0;
  clear_has_region_id();
}
inline ::google::protobuf::int32 Region::region_id() const {
  // @@protoc_insertion_point(field_get:velodyne.Region.region_id)
  return region_id_;
}
inline void Region::set_region_id(::google::protobuf::int32 value) {
  set_has_region_id();
  region_id_ = value;
  // @@protoc_insertion_point(field_set:velodyne.Region.region_id)
}

// repeated .velodyne.lidarExtrinsic lidar_exts = 8;
inline int Region::lidar_exts_size() const {
  return lidar_exts_.size();
}
inline void Region::clear_lidar_exts() {
  lidar_exts_.Clear();
}
inline ::velodyne::lidarExtrinsic* Region::mutable_lidar_exts(int index) {
  // @@protoc_insertion_point(field_mutable:velodyne.Region.lidar_exts)
  return lidar_exts_.Mutable(index);
}
inline ::google::protobuf::RepeatedPtrField< ::velodyne::lidarExtrinsic >*
Region::mutable_lidar_exts() {
  // @@protoc_insertion_point(field_mutable_list:velodyne.Region.lidar_exts)
  return &lidar_exts_;
}
inline const ::velodyne::lidarExtrinsic& Region::lidar_exts(int index) const {
  // @@protoc_insertion_point(field_get:velodyne.Region.lidar_exts)
  return lidar_exts_.Get(index);
}
inline ::velodyne::lidarExtrinsic* Region::add_lidar_exts() {
  // @@protoc_insertion_point(field_add:velodyne.Region.lidar_exts)
  return lidar_exts_.Add();
}
inline const ::google::protobuf::RepeatedPtrField< ::velodyne::lidarExtrinsic >&
Region::lidar_exts() const {
  // @@protoc_insertion_point(field_list:velodyne.Region.lidar_exts)
  return lidar_exts_;
}

// required float turnplate_cx = 9;
inline bool Region::has_turnplate_cx() const {
  return (_has_bits_[0] & 0x00000080u) != 0;
}
inline void Region::set_has_turnplate_cx() {
  _has_bits_[0] |= 0x00000080u;
}
inline void Region::clear_has_turnplate_cx() {
  _has_bits_[0] &= ~0x00000080u;
}
inline void Region::clear_turnplate_cx() {
  turnplate_cx_ = 0;
  clear_has_turnplate_cx();
}
inline float Region::turnplate_cx() const {
  // @@protoc_insertion_point(field_get:velodyne.Region.turnplate_cx)
  return turnplate_cx_;
}
inline void Region::set_turnplate_cx(float value) {
  set_has_turnplate_cx();
  turnplate_cx_ = value;
  // @@protoc_insertion_point(field_set:velodyne.Region.turnplate_cx)
}

// required float turnplate_cy = 10;
inline bool Region::has_turnplate_cy() const {
  return (_has_bits_[0] & 0x00000100u) != 0;
}
inline void Region::set_has_turnplate_cy() {
  _has_bits_[0] |= 0x00000100u;
}
inline void Region::clear_has_turnplate_cy() {
  _has_bits_[0] &= ~0x00000100u;
}
inline void Region::clear_turnplate_cy() {
  turnplate_cy_ = 0;
  clear_has_turnplate_cy();
}
inline float Region::turnplate_cy() const {
  // @@protoc_insertion_point(field_get:velodyne.Region.turnplate_cy)
  return turnplate_cy_;
}
inline void Region::set_turnplate_cy(float value) {
  set_has_turnplate_cy();
  turnplate_cy_ = value;
  // @@protoc_insertion_point(field_set:velodyne.Region.turnplate_cy)
}

// required float border_minx = 11;
inline bool Region::has_border_minx() const {
  return (_has_bits_[0] & 0x00000200u) != 0;
}
inline void Region::set_has_border_minx() {
  _has_bits_[0] |= 0x00000200u;
}
inline void Region::clear_has_border_minx() {
  _has_bits_[0] &= ~0x00000200u;
}
inline void Region::clear_border_minx() {
  border_minx_ = 0;
  clear_has_border_minx();
}
inline float Region::border_minx() const {
  // @@protoc_insertion_point(field_get:velodyne.Region.border_minx)
  return border_minx_;
}
inline void Region::set_border_minx(float value) {
  set_has_border_minx();
  border_minx_ = value;
  // @@protoc_insertion_point(field_set:velodyne.Region.border_minx)
}

// required float border_maxx = 12;
inline bool Region::has_border_maxx() const {
  return (_has_bits_[0] & 0x00000400u) != 0;
}
inline void Region::set_has_border_maxx() {
  _has_bits_[0] |= 0x00000400u;
}
inline void Region::clear_has_border_maxx() {
  _has_bits_[0] &= ~0x00000400u;
}
inline void Region::clear_border_maxx() {
  border_maxx_ = 0;
  clear_has_border_maxx();
}
inline float Region::border_maxx() const {
  // @@protoc_insertion_point(field_get:velodyne.Region.border_maxx)
  return border_maxx_;
}
inline void Region::set_border_maxx(float value) {
  set_has_border_maxx();
  border_maxx_ = value;
  // @@protoc_insertion_point(field_set:velodyne.Region.border_maxx)
}

// required float plc_offsetx = 13;
inline bool Region::has_plc_offsetx() const {
  return (_has_bits_[0] & 0x00000800u) != 0;
}
inline void Region::set_has_plc_offsetx() {
  _has_bits_[0] |= 0x00000800u;
}
inline void Region::clear_has_plc_offsetx() {
  _has_bits_[0] &= ~0x00000800u;
}
inline void Region::clear_plc_offsetx() {
  plc_offsetx_ = 0;
  clear_has_plc_offsetx();
}
inline float Region::plc_offsetx() const {
  // @@protoc_insertion_point(field_get:velodyne.Region.plc_offsetx)
  return plc_offsetx_;
}
inline void Region::set_plc_offsetx(float value) {
  set_has_plc_offsetx();
  plc_offsetx_ = value;
  // @@protoc_insertion_point(field_set:velodyne.Region.plc_offsetx)
}

// required float plc_offsety = 14;
inline bool Region::has_plc_offsety() const {
  return (_has_bits_[0] & 0x00001000u) != 0;
}
inline void Region::set_has_plc_offsety() {
  _has_bits_[0] |= 0x00001000u;
}
inline void Region::clear_has_plc_offsety() {
  _has_bits_[0] &= ~0x00001000u;
}
inline void Region::clear_plc_offsety() {
  plc_offsety_ = 0;
  clear_has_plc_offsety();
}
inline float Region::plc_offsety() const {
  // @@protoc_insertion_point(field_get:velodyne.Region.plc_offsety)
  return plc_offsety_;
}
inline void Region::set_plc_offsety(float value) {
  set_has_plc_offsety();
  plc_offsety_ = value;
  // @@protoc_insertion_point(field_set:velodyne.Region.plc_offsety)
}

// required float plc_offset_degree = 15;
inline bool Region::has_plc_offset_degree() const {
  return (_has_bits_[0] & 0x00002000u) != 0;
}
inline void Region::set_has_plc_offset_degree() {
  _has_bits_[0] |= 0x00002000u;
}
inline void Region::clear_has_plc_offset_degree() {
  _has_bits_[0] &= ~0x00002000u;
}
inline void Region::clear_plc_offset_degree() {
  plc_offset_degree_ = 0;
  clear_has_plc_offset_degree();
}
inline float Region::plc_offset_degree() const {
  // @@protoc_insertion_point(field_get:velodyne.Region.plc_offset_degree)
  return plc_offset_degree_;
}
inline void Region::set_plc_offset_degree(float value) {
  set_has_plc_offset_degree();
  plc_offset_degree_ = value;
  // @@protoc_insertion_point(field_set:velodyne.Region.plc_offset_degree)
}

// required float plc_border_miny = 16;
inline bool Region::has_plc_border_miny() const {
  return (_has_bits_[0] & 0x00004000u) != 0;
}
inline void Region::set_has_plc_border_miny() {
  _has_bits_[0] |= 0x00004000u;
}
inline void Region::clear_has_plc_border_miny() {
  _has_bits_[0] &= ~0x00004000u;
}
inline void Region::clear_plc_border_miny() {
  plc_border_miny_ = 0;
  clear_has_plc_border_miny();
}
inline float Region::plc_border_miny() const {
  // @@protoc_insertion_point(field_get:velodyne.Region.plc_border_miny)
  return plc_border_miny_;
}
inline void Region::set_plc_border_miny(float value) {
  set_has_plc_border_miny();
  plc_border_miny_ = value;
  // @@protoc_insertion_point(field_set:velodyne.Region.plc_border_miny)
}

// required float plc_border_maxy = 17;
inline bool Region::has_plc_border_maxy() const {
  return (_has_bits_[0] & 0x00008000u) != 0;
}
inline void Region::set_has_plc_border_maxy() {
  _has_bits_[0] |= 0x00008000u;
}
inline void Region::clear_has_plc_border_maxy() {
  _has_bits_[0] &= ~0x00008000u;
}
inline void Region::clear_plc_border_maxy() {
  plc_border_maxy_ = 0;
  clear_has_plc_border_maxy();
}
inline float Region::plc_border_maxy() const {
  // @@protoc_insertion_point(field_get:velodyne.Region.plc_border_maxy)
  return plc_border_maxy_;
}
inline void Region::set_plc_border_maxy(float value) {
  set_has_plc_border_maxy();
  plc_border_maxy_ = value;
  // @@protoc_insertion_point(field_set:velodyne.Region.plc_border_maxy)
}

// required float car_min_width = 18;
inline bool Region::has_car_min_width() const {
  return (_has_bits_[0] & 0x00010000u) != 0;
}
inline void Region::set_has_car_min_width() {
  _has_bits_[0] |= 0x00010000u;
}
inline void Region::clear_has_car_min_width() {
  _has_bits_[0] &= ~0x00010000u;
}
inline void Region::clear_car_min_width() {
  car_min_width_ = 0;
  clear_has_car_min_width();
}
inline float Region::car_min_width() const {
  // @@protoc_insertion_point(field_get:velodyne.Region.car_min_width)
  return car_min_width_;
}
inline void Region::set_car_min_width(float value) {
  set_has_car_min_width();
  car_min_width_ = value;
  // @@protoc_insertion_point(field_set:velodyne.Region.car_min_width)
}

// required float car_max_width = 19;
inline bool Region::has_car_max_width() const {
  return (_has_bits_[0] & 0x00020000u) != 0;
}
inline void Region::set_has_car_max_width() {
  _has_bits_[0] |= 0x00020000u;
}
inline void Region::clear_has_car_max_width() {
  _has_bits_[0] &= ~0x00020000u;
}
inline void Region::clear_car_max_width() {
  car_max_width_ = 0;
  clear_has_car_max_width();
}
inline float Region::car_max_width() const {
  // @@protoc_insertion_point(field_get:velodyne.Region.car_max_width)
  return car_max_width_;
}
inline void Region::set_car_max_width(float value) {
  set_has_car_max_width();
  car_max_width_ = value;
  // @@protoc_insertion_point(field_set:velodyne.Region.car_max_width)
}

// required float car_min_wheelbase = 20;
inline bool Region::has_car_min_wheelbase() const {
  return (_has_bits_[0] & 0x00040000u) != 0;
}
inline void Region::set_has_car_min_wheelbase() {
  _has_bits_[0] |= 0x00040000u;
}
inline void Region::clear_has_car_min_wheelbase() {
  _has_bits_[0] &= ~0x00040000u;
}
inline void Region::clear_car_min_wheelbase() {
  car_min_wheelbase_ = 0;
  clear_has_car_min_wheelbase();
}
inline float Region::car_min_wheelbase() const {
  // @@protoc_insertion_point(field_get:velodyne.Region.car_min_wheelbase)
  return car_min_wheelbase_;
}
inline void Region::set_car_min_wheelbase(float value) {
  set_has_car_min_wheelbase();
  car_min_wheelbase_ = value;
  // @@protoc_insertion_point(field_set:velodyne.Region.car_min_wheelbase)
}

// required float car_max_wheelbase = 21;
inline bool Region::has_car_max_wheelbase() const {
  return (_has_bits_[0] & 0x00080000u) != 0;
}
inline void Region::set_has_car_max_wheelbase() {
  _has_bits_[0] |= 0x00080000u;
}
inline void Region::clear_has_car_max_wheelbase() {
  _has_bits_[0] &= ~0x00080000u;
}
inline void Region::clear_car_max_wheelbase() {
  car_max_wheelbase_ = 0;
  clear_has_car_max_wheelbase();
}
inline float Region::car_max_wheelbase() const {
  // @@protoc_insertion_point(field_get:velodyne.Region.car_max_wheelbase)
  return car_max_wheelbase_;
}
inline void Region::set_car_max_wheelbase(float value) {
  set_has_car_max_wheelbase();
  car_max_wheelbase_ = value;
  // @@protoc_insertion_point(field_set:velodyne.Region.car_max_wheelbase)
}

// required float turnplate_angle_limit_anti_clockwise = 22;
inline bool Region::has_turnplate_angle_limit_anti_clockwise() const {
  return (_has_bits_[0] & 0x00100000u) != 0;
}
inline void Region::set_has_turnplate_angle_limit_anti_clockwise() {
  _has_bits_[0] |= 0x00100000u;
}
inline void Region::clear_has_turnplate_angle_limit_anti_clockwise() {
  _has_bits_[0] &= ~0x00100000u;
}
inline void Region::clear_turnplate_angle_limit_anti_clockwise() {
  turnplate_angle_limit_anti_clockwise_ = 0;
  clear_has_turnplate_angle_limit_anti_clockwise();
}
inline float Region::turnplate_angle_limit_anti_clockwise() const {
  // @@protoc_insertion_point(field_get:velodyne.Region.turnplate_angle_limit_anti_clockwise)
  return turnplate_angle_limit_anti_clockwise_;
}
inline void Region::set_turnplate_angle_limit_anti_clockwise(float value) {
  set_has_turnplate_angle_limit_anti_clockwise();
  turnplate_angle_limit_anti_clockwise_ = value;
  // @@protoc_insertion_point(field_set:velodyne.Region.turnplate_angle_limit_anti_clockwise)
}

// required float turnplate_angle_limit_clockwise = 23;
inline bool Region::has_turnplate_angle_limit_clockwise() const {
  return (_has_bits_[0] & 0x00200000u) != 0;
}
inline void Region::set_has_turnplate_angle_limit_clockwise() {
  _has_bits_[0] |= 0x00200000u;
}
inline void Region::clear_has_turnplate_angle_limit_clockwise() {
  _has_bits_[0] &= ~0x00200000u;
}
inline void Region::clear_turnplate_angle_limit_clockwise() {
  turnplate_angle_limit_clockwise_ = 0;
  clear_has_turnplate_angle_limit_clockwise();
}
inline float Region::turnplate_angle_limit_clockwise() const {
  // @@protoc_insertion_point(field_get:velodyne.Region.turnplate_angle_limit_clockwise)
  return turnplate_angle_limit_clockwise_;
}
inline void Region::set_turnplate_angle_limit_clockwise(float value) {
  set_has_turnplate_angle_limit_clockwise();
  turnplate_angle_limit_clockwise_ = value;
  // @@protoc_insertion_point(field_set:velodyne.Region.turnplate_angle_limit_clockwise)
}

#ifdef __GNUC__
  #pragma GCC diagnostic pop
#endif  // __GNUC__
// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------


// @@protoc_insertion_point(namespace_scope)

}  // namespace velodyne

// @@protoc_insertion_point(global_scope)

#endif  // PROTOBUF_INCLUDED_velodyne_5fconfig_2eproto
