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

#ifndef GOOGLE_PROTOBUF_INCLUDED_velodyne_5fconfig_2eproto
#define GOOGLE_PROTOBUF_INCLUDED_velodyne_5fconfig_2eproto

#include <limits>
#include <string>

#include <google/protobuf/port_def.inc>
#if PROTOBUF_VERSION < 4000000
#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 4000000 < 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/port_undef.inc>
#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_lite.h>
#include <google/protobuf/generated_message_reflection.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)
#include <google/protobuf/port_def.inc>
#define PROTOBUF_INTERNAL_EXPORT_velodyne_5fconfig_2eproto
PROTOBUF_NAMESPACE_OPEN
namespace internal {
class AnyMetadata;
}  // namespace internal
PROTOBUF_NAMESPACE_CLOSE

// Internal implementation detail -- do not use these members.
struct TableStruct_velodyne_5fconfig_2eproto {
  static const ::PROTOBUF_NAMESPACE_ID::internal::ParseTableField entries[]
    PROTOBUF_SECTION_VARIABLE(protodesc_cold);
  static const ::PROTOBUF_NAMESPACE_ID::internal::AuxiliaryParseTableField aux[]
    PROTOBUF_SECTION_VARIABLE(protodesc_cold);
  static const ::PROTOBUF_NAMESPACE_ID::internal::ParseTable schema[5]
    PROTOBUF_SECTION_VARIABLE(protodesc_cold);
  static const ::PROTOBUF_NAMESPACE_ID::internal::FieldMetadata field_metadata[];
  static const ::PROTOBUF_NAMESPACE_ID::internal::SerializationTable serialization_table[];
  static const ::PROTOBUF_NAMESPACE_ID::uint32 offsets[];
};
extern const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable descriptor_table_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
PROTOBUF_NAMESPACE_OPEN
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*);
PROTOBUF_NAMESPACE_CLOSE
namespace velodyne {

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

class velodyneManagerParams PROTOBUF_FINAL :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:velodyne.velodyneManagerParams) */ {
 public:
  inline velodyneManagerParams() : velodyneManagerParams(nullptr) {}
  virtual ~velodyneManagerParams();

  velodyneManagerParams(const velodyneManagerParams& from);
  velodyneManagerParams(velodyneManagerParams&& from) noexcept
    : velodyneManagerParams() {
    *this = ::std::move(from);
  }

  inline velodyneManagerParams& operator=(const velodyneManagerParams& from) {
    CopyFrom(from);
    return *this;
  }
  inline velodyneManagerParams& operator=(velodyneManagerParams&& from) noexcept {
    if (GetArena() == from.GetArena()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  inline const ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet& unknown_fields() const {
    return _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance);
  }
  inline ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet* mutable_unknown_fields() {
    return _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return GetMetadataStatic().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return GetMetadataStatic().reflection;
  }
  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;

  friend void swap(velodyneManagerParams& a, velodyneManagerParams& b) {
    a.Swap(&b);
  }
  inline void Swap(velodyneManagerParams* other) {
    if (other == this) return;
    if (GetArena() == other->GetArena()) {
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(velodyneManagerParams* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

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

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

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize(
      ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  inline void SharedCtor();
  inline void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(velodyneManagerParams* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "velodyne.velodyneManagerParams";
  }
  protected:
  explicit velodyneManagerParams(::PROTOBUF_NAMESPACE_ID::Arena* arena);
  private:
  static void ArenaDtor(void* object);
  inline void RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena* arena);
  public:

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
  private:
  static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() {
    ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_velodyne_5fconfig_2eproto);
    return ::descriptor_table_velodyne_5fconfig_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

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

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

  enum : int {
    kVelodyneLidarsFieldNumber = 1,
    kRegionFieldNumber = 2,
    kFenceDataPathFieldNumber = 3,
    kFenceLogPathFieldNumber = 4,
    kLeftModelPathFieldNumber = 5,
    kRightModelPathFieldNumber = 6,
    kDistributionModeFieldNumber = 7,
  };
  // repeated .velodyne.velodyneLidarParams velodyne_lidars = 1;
  int velodyne_lidars_size() const;
  private:
  int _internal_velodyne_lidars_size() const;
  public:
  void clear_velodyne_lidars();
  ::velodyne::velodyneLidarParams* mutable_velodyne_lidars(int index);
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::velodyne::velodyneLidarParams >*
      mutable_velodyne_lidars();
  private:
  const ::velodyne::velodyneLidarParams& _internal_velodyne_lidars(int index) const;
  ::velodyne::velodyneLidarParams* _internal_add_velodyne_lidars();
  public:
  const ::velodyne::velodyneLidarParams& velodyne_lidars(int index) const;
  ::velodyne::velodyneLidarParams* add_velodyne_lidars();
  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::velodyne::velodyneLidarParams >&
      velodyne_lidars() const;

  // repeated .velodyne.Region region = 2;
  int region_size() const;
  private:
  int _internal_region_size() const;
  public:
  void clear_region();
  ::velodyne::Region* mutable_region(int index);
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::velodyne::Region >*
      mutable_region();
  private:
  const ::velodyne::Region& _internal_region(int index) const;
  ::velodyne::Region* _internal_add_region();
  public:
  const ::velodyne::Region& region(int index) const;
  ::velodyne::Region* add_region();
  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::velodyne::Region >&
      region() const;

  // optional string fence_data_path = 3 [default = ""];
  bool has_fence_data_path() const;
  private:
  bool _internal_has_fence_data_path() const;
  public:
  void clear_fence_data_path();
  const std::string& fence_data_path() const;
  void set_fence_data_path(const std::string& value);
  void set_fence_data_path(std::string&& value);
  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);
  private:
  const std::string& _internal_fence_data_path() const;
  void _internal_set_fence_data_path(const std::string& value);
  std::string* _internal_mutable_fence_data_path();
  public:

  // optional string fence_log_path = 4 [default = ""];
  bool has_fence_log_path() const;
  private:
  bool _internal_has_fence_log_path() const;
  public:
  void clear_fence_log_path();
  const std::string& fence_log_path() const;
  void set_fence_log_path(const std::string& value);
  void set_fence_log_path(std::string&& value);
  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);
  private:
  const std::string& _internal_fence_log_path() const;
  void _internal_set_fence_log_path(const std::string& value);
  std::string* _internal_mutable_fence_log_path();
  public:

  // optional string left_model_path = 5 [default = ""];
  bool has_left_model_path() const;
  private:
  bool _internal_has_left_model_path() const;
  public:
  void clear_left_model_path();
  const std::string& left_model_path() const;
  void set_left_model_path(const std::string& value);
  void set_left_model_path(std::string&& value);
  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);
  private:
  const std::string& _internal_left_model_path() const;
  void _internal_set_left_model_path(const std::string& value);
  std::string* _internal_mutable_left_model_path();
  public:

  // optional string right_model_path = 6 [default = ""];
  bool has_right_model_path() const;
  private:
  bool _internal_has_right_model_path() const;
  public:
  void clear_right_model_path();
  const std::string& right_model_path() const;
  void set_right_model_path(const std::string& value);
  void set_right_model_path(std::string&& value);
  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);
  private:
  const std::string& _internal_right_model_path() const;
  void _internal_set_right_model_path(const std::string& value);
  std::string* _internal_mutable_right_model_path();
  public:

  // required bool distribution_mode = 7 [default = false];
  bool has_distribution_mode() const;
  private:
  bool _internal_has_distribution_mode() const;
  public:
  void clear_distribution_mode();
  bool distribution_mode() const;
  void set_distribution_mode(bool value);
  private:
  bool _internal_distribution_mode() const;
  void _internal_set_distribution_mode(bool value);
  public:

  // @@protoc_insertion_point(class_scope:velodyne.velodyneManagerParams)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::PROTOBUF_NAMESPACE_ID::internal::HasBits<1> _has_bits_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::velodyne::velodyneLidarParams > velodyne_lidars_;
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::velodyne::Region > region_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr fence_data_path_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr fence_log_path_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr left_model_path_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr right_model_path_;
  bool distribution_mode_;
  friend struct ::TableStruct_velodyne_5fconfig_2eproto;
};
// -------------------------------------------------------------------

class velodyneLidarParams PROTOBUF_FINAL :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:velodyne.velodyneLidarParams) */ {
 public:
  inline velodyneLidarParams() : velodyneLidarParams(nullptr) {}
  virtual ~velodyneLidarParams();

  velodyneLidarParams(const velodyneLidarParams& from);
  velodyneLidarParams(velodyneLidarParams&& from) noexcept
    : velodyneLidarParams() {
    *this = ::std::move(from);
  }

  inline velodyneLidarParams& operator=(const velodyneLidarParams& from) {
    CopyFrom(from);
    return *this;
  }
  inline velodyneLidarParams& operator=(velodyneLidarParams&& from) noexcept {
    if (GetArena() == from.GetArena()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  inline const ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet& unknown_fields() const {
    return _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance);
  }
  inline ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet* mutable_unknown_fields() {
    return _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return GetMetadataStatic().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return GetMetadataStatic().reflection;
  }
  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;

  friend void swap(velodyneLidarParams& a, velodyneLidarParams& b) {
    a.Swap(&b);
  }
  inline void Swap(velodyneLidarParams* other) {
    if (other == this) return;
    if (GetArena() == other->GetArena()) {
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(velodyneLidarParams* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

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

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

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize(
      ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  inline void SharedCtor();
  inline void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(velodyneLidarParams* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "velodyne.velodyneLidarParams";
  }
  protected:
  explicit velodyneLidarParams(::PROTOBUF_NAMESPACE_ID::Arena* arena);
  private:
  static void ArenaDtor(void* object);
  inline void RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena* arena);
  public:

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
  private:
  static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() {
    ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_velodyne_5fconfig_2eproto);
    return ::descriptor_table_velodyne_5fconfig_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

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

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

  enum : int {
    kIpFieldNumber = 1,
    kModelFieldNumber = 3,
    kCalibrationFileFieldNumber = 4,
    kCalibFieldNumber = 11,
    kLidarIdFieldNumber = 5,
    kMinAngleFieldNumber = 8,
    kPortFieldNumber = 2,
    kMaxRangeFieldNumber = 6,
    kMinRangeFieldNumber = 7,
    kMaxAngleFieldNumber = 9,
    kRpmFieldNumber = 10,
    kDifopFieldNumber = 12,
  };
  // required string ip = 1 [default = ""];
  bool has_ip() const;
  private:
  bool _internal_has_ip() const;
  public:
  void clear_ip();
  const std::string& ip() const;
  void set_ip(const std::string& value);
  void set_ip(std::string&& value);
  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);
  private:
  const std::string& _internal_ip() const;
  void _internal_set_ip(const std::string& value);
  std::string* _internal_mutable_ip();
  public:

  // required string model = 3 [default = "VLP16"];
  bool has_model() const;
  private:
  bool _internal_has_model() const;
  public:
  void clear_model();
  const std::string& model() const;
  void set_model(const std::string& value);
  void set_model(std::string&& value);
  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);
  private:
  const std::string& _internal_model() const;
  void _internal_set_model(const std::string& value);
  std::string* _internal_mutable_model();
  public:

  // required string calibrationFile = 4 [default = ""];
  bool has_calibrationfile() const;
  private:
  bool _internal_has_calibrationfile() const;
  public:
  void clear_calibrationfile();
  const std::string& calibrationfile() const;
  void set_calibrationfile(const std::string& value);
  void set_calibrationfile(std::string&& value);
  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);
  private:
  const std::string& _internal_calibrationfile() const;
  void _internal_set_calibrationfile(const std::string& value);
  std::string* _internal_mutable_calibrationfile();
  public:

  // optional .velodyne.CalibParameter calib = 11;
  bool has_calib() const;
  private:
  bool _internal_has_calib() const;
  public:
  void clear_calib();
  const ::velodyne::CalibParameter& calib() const;
  ::velodyne::CalibParameter* release_calib();
  ::velodyne::CalibParameter* mutable_calib();
  void set_allocated_calib(::velodyne::CalibParameter* calib);
  private:
  const ::velodyne::CalibParameter& _internal_calib() const;
  ::velodyne::CalibParameter* _internal_mutable_calib();
  public:
  void unsafe_arena_set_allocated_calib(
      ::velodyne::CalibParameter* calib);
  ::velodyne::CalibParameter* unsafe_arena_release_calib();

  // required int32 lidar_id = 5 [default = 0];
  bool has_lidar_id() const;
  private:
  bool _internal_has_lidar_id() const;
  public:
  void clear_lidar_id();
  ::PROTOBUF_NAMESPACE_ID::int32 lidar_id() const;
  void set_lidar_id(::PROTOBUF_NAMESPACE_ID::int32 value);
  private:
  ::PROTOBUF_NAMESPACE_ID::int32 _internal_lidar_id() const;
  void _internal_set_lidar_id(::PROTOBUF_NAMESPACE_ID::int32 value);
  public:

  // optional int32 min_angle = 8 [default = 0];
  bool has_min_angle() const;
  private:
  bool _internal_has_min_angle() const;
  public:
  void clear_min_angle();
  ::PROTOBUF_NAMESPACE_ID::int32 min_angle() const;
  void set_min_angle(::PROTOBUF_NAMESPACE_ID::int32 value);
  private:
  ::PROTOBUF_NAMESPACE_ID::int32 _internal_min_angle() const;
  void _internal_set_min_angle(::PROTOBUF_NAMESPACE_ID::int32 value);
  public:

  // required int32 port = 2 [default = 2368];
  bool has_port() const;
  private:
  bool _internal_has_port() const;
  public:
  void clear_port();
  ::PROTOBUF_NAMESPACE_ID::int32 port() const;
  void set_port(::PROTOBUF_NAMESPACE_ID::int32 value);
  private:
  ::PROTOBUF_NAMESPACE_ID::int32 _internal_port() const;
  void _internal_set_port(::PROTOBUF_NAMESPACE_ID::int32 value);
  public:

  // optional float max_range = 6 [default = 10];
  bool has_max_range() const;
  private:
  bool _internal_has_max_range() const;
  public:
  void clear_max_range();
  float max_range() const;
  void set_max_range(float value);
  private:
  float _internal_max_range() const;
  void _internal_set_max_range(float value);
  public:

  // optional float min_range = 7 [default = 0.15];
  bool has_min_range() const;
  private:
  bool _internal_has_min_range() const;
  public:
  void clear_min_range();
  float min_range() const;
  void set_min_range(float value);
  private:
  float _internal_min_range() const;
  void _internal_set_min_range(float value);
  public:

  // optional int32 max_angle = 9 [default = 360];
  bool has_max_angle() const;
  private:
  bool _internal_has_max_angle() const;
  public:
  void clear_max_angle();
  ::PROTOBUF_NAMESPACE_ID::int32 max_angle() const;
  void set_max_angle(::PROTOBUF_NAMESPACE_ID::int32 value);
  private:
  ::PROTOBUF_NAMESPACE_ID::int32 _internal_max_angle() const;
  void _internal_set_max_angle(::PROTOBUF_NAMESPACE_ID::int32 value);
  public:

  // optional int32 rpm = 10 [default = 600];
  bool has_rpm() const;
  private:
  bool _internal_has_rpm() const;
  public:
  void clear_rpm();
  ::PROTOBUF_NAMESPACE_ID::int32 rpm() const;
  void set_rpm(::PROTOBUF_NAMESPACE_ID::int32 value);
  private:
  ::PROTOBUF_NAMESPACE_ID::int32 _internal_rpm() const;
  void _internal_set_rpm(::PROTOBUF_NAMESPACE_ID::int32 value);
  public:

  // optional int32 difop = 12 [default = 7788];
  bool has_difop() const;
  private:
  bool _internal_has_difop() const;
  public:
  void clear_difop();
  ::PROTOBUF_NAMESPACE_ID::int32 difop() const;
  void set_difop(::PROTOBUF_NAMESPACE_ID::int32 value);
  private:
  ::PROTOBUF_NAMESPACE_ID::int32 _internal_difop() const;
  void _internal_set_difop(::PROTOBUF_NAMESPACE_ID::int32 value);
  public:

  // @@protoc_insertion_point(class_scope:velodyne.velodyneLidarParams)
 private:
  class _Internal;

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

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::PROTOBUF_NAMESPACE_ID::internal::HasBits<1> _has_bits_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr ip_;
  public:
  static ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<std::string> _i_give_permission_to_break_this_code_default_model_;
  private:
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr model_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr calibrationfile_;
  ::velodyne::CalibParameter* calib_;
  ::PROTOBUF_NAMESPACE_ID::int32 lidar_id_;
  ::PROTOBUF_NAMESPACE_ID::int32 min_angle_;
  ::PROTOBUF_NAMESPACE_ID::int32 port_;
  float max_range_;
  float min_range_;
  ::PROTOBUF_NAMESPACE_ID::int32 max_angle_;
  ::PROTOBUF_NAMESPACE_ID::int32 rpm_;
  ::PROTOBUF_NAMESPACE_ID::int32 difop_;
  friend struct ::TableStruct_velodyne_5fconfig_2eproto;
};
// -------------------------------------------------------------------

class CalibParameter PROTOBUF_FINAL :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:velodyne.CalibParameter) */ {
 public:
  inline CalibParameter() : CalibParameter(nullptr) {}
  virtual ~CalibParameter();

  CalibParameter(const CalibParameter& from);
  CalibParameter(CalibParameter&& from) noexcept
    : CalibParameter() {
    *this = ::std::move(from);
  }

  inline CalibParameter& operator=(const CalibParameter& from) {
    CopyFrom(from);
    return *this;
  }
  inline CalibParameter& operator=(CalibParameter&& from) noexcept {
    if (GetArena() == from.GetArena()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  inline const ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet& unknown_fields() const {
    return _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance);
  }
  inline ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet* mutable_unknown_fields() {
    return _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return GetMetadataStatic().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return GetMetadataStatic().reflection;
  }
  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;

  friend void swap(CalibParameter& a, CalibParameter& b) {
    a.Swap(&b);
  }
  inline void Swap(CalibParameter* other) {
    if (other == this) return;
    if (GetArena() == other->GetArena()) {
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(CalibParameter* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

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

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

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize(
      ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  inline void SharedCtor();
  inline void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(CalibParameter* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "velodyne.CalibParameter";
  }
  protected:
  explicit CalibParameter(::PROTOBUF_NAMESPACE_ID::Arena* arena);
  private:
  static void ArenaDtor(void* object);
  inline void RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena* arena);
  public:

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
  private:
  static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() {
    ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_velodyne_5fconfig_2eproto);
    return ::descriptor_table_velodyne_5fconfig_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

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

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

  enum : int {
    kRFieldNumber = 1,
    kPFieldNumber = 2,
    kYFieldNumber = 3,
    kCxFieldNumber = 4,
    kCyFieldNumber = 5,
    kCzFieldNumber = 6,
  };
  // optional float r = 1 [default = 0];
  bool has_r() const;
  private:
  bool _internal_has_r() const;
  public:
  void clear_r();
  float r() const;
  void set_r(float value);
  private:
  float _internal_r() const;
  void _internal_set_r(float value);
  public:

  // optional float p = 2 [default = 0];
  bool has_p() const;
  private:
  bool _internal_has_p() const;
  public:
  void clear_p();
  float p() const;
  void set_p(float value);
  private:
  float _internal_p() const;
  void _internal_set_p(float value);
  public:

  // optional float y = 3 [default = 0];
  bool has_y() const;
  private:
  bool _internal_has_y() const;
  public:
  void clear_y();
  float y() const;
  void set_y(float value);
  private:
  float _internal_y() const;
  void _internal_set_y(float value);
  public:

  // optional float cx = 4 [default = 0];
  bool has_cx() const;
  private:
  bool _internal_has_cx() const;
  public:
  void clear_cx();
  float cx() const;
  void set_cx(float value);
  private:
  float _internal_cx() const;
  void _internal_set_cx(float value);
  public:

  // optional float cy = 5 [default = 0];
  bool has_cy() const;
  private:
  bool _internal_has_cy() const;
  public:
  void clear_cy();
  float cy() const;
  void set_cy(float value);
  private:
  float _internal_cy() const;
  void _internal_set_cy(float value);
  public:

  // optional float cz = 6 [default = 0];
  bool has_cz() const;
  private:
  bool _internal_has_cz() const;
  public:
  void clear_cz();
  float cz() const;
  void set_cz(float value);
  private:
  float _internal_cz() const;
  void _internal_set_cz(float value);
  public:

  // @@protoc_insertion_point(class_scope:velodyne.CalibParameter)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::PROTOBUF_NAMESPACE_ID::internal::HasBits<1> _has_bits_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  float r_;
  float p_;
  float y_;
  float cx_;
  float cy_;
  float cz_;
  friend struct ::TableStruct_velodyne_5fconfig_2eproto;
};
// -------------------------------------------------------------------

class lidarExtrinsic PROTOBUF_FINAL :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:velodyne.lidarExtrinsic) */ {
 public:
  inline lidarExtrinsic() : lidarExtrinsic(nullptr) {}
  virtual ~lidarExtrinsic();

  lidarExtrinsic(const lidarExtrinsic& from);
  lidarExtrinsic(lidarExtrinsic&& from) noexcept
    : lidarExtrinsic() {
    *this = ::std::move(from);
  }

  inline lidarExtrinsic& operator=(const lidarExtrinsic& from) {
    CopyFrom(from);
    return *this;
  }
  inline lidarExtrinsic& operator=(lidarExtrinsic&& from) noexcept {
    if (GetArena() == from.GetArena()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  inline const ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet& unknown_fields() const {
    return _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance);
  }
  inline ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet* mutable_unknown_fields() {
    return _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return GetMetadataStatic().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return GetMetadataStatic().reflection;
  }
  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;

  friend void swap(lidarExtrinsic& a, lidarExtrinsic& b) {
    a.Swap(&b);
  }
  inline void Swap(lidarExtrinsic* other) {
    if (other == this) return;
    if (GetArena() == other->GetArena()) {
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(lidarExtrinsic* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

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

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

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize(
      ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  inline void SharedCtor();
  inline void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(lidarExtrinsic* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "velodyne.lidarExtrinsic";
  }
  protected:
  explicit lidarExtrinsic(::PROTOBUF_NAMESPACE_ID::Arena* arena);
  private:
  static void ArenaDtor(void* object);
  inline void RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena* arena);
  public:

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
  private:
  static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() {
    ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_velodyne_5fconfig_2eproto);
    return ::descriptor_table_velodyne_5fconfig_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

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

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

  enum : int {
    kCalibFieldNumber = 2,
    kLidarIdFieldNumber = 1,
  };
  // optional .velodyne.CalibParameter calib = 2;
  bool has_calib() const;
  private:
  bool _internal_has_calib() const;
  public:
  void clear_calib();
  const ::velodyne::CalibParameter& calib() const;
  ::velodyne::CalibParameter* release_calib();
  ::velodyne::CalibParameter* mutable_calib();
  void set_allocated_calib(::velodyne::CalibParameter* calib);
  private:
  const ::velodyne::CalibParameter& _internal_calib() const;
  ::velodyne::CalibParameter* _internal_mutable_calib();
  public:
  void unsafe_arena_set_allocated_calib(
      ::velodyne::CalibParameter* calib);
  ::velodyne::CalibParameter* unsafe_arena_release_calib();

  // required int32 lidar_id = 1;
  bool has_lidar_id() const;
  private:
  bool _internal_has_lidar_id() const;
  public:
  void clear_lidar_id();
  ::PROTOBUF_NAMESPACE_ID::int32 lidar_id() const;
  void set_lidar_id(::PROTOBUF_NAMESPACE_ID::int32 value);
  private:
  ::PROTOBUF_NAMESPACE_ID::int32 _internal_lidar_id() const;
  void _internal_set_lidar_id(::PROTOBUF_NAMESPACE_ID::int32 value);
  public:

  // @@protoc_insertion_point(class_scope:velodyne.lidarExtrinsic)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::PROTOBUF_NAMESPACE_ID::internal::HasBits<1> _has_bits_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  ::velodyne::CalibParameter* calib_;
  ::PROTOBUF_NAMESPACE_ID::int32 lidar_id_;
  friend struct ::TableStruct_velodyne_5fconfig_2eproto;
};
// -------------------------------------------------------------------

class Region PROTOBUF_FINAL :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:velodyne.Region) */ {
 public:
  inline Region() : Region(nullptr) {}
  virtual ~Region();

  Region(const Region& from);
  Region(Region&& from) noexcept
    : Region() {
    *this = ::std::move(from);
  }

  inline Region& operator=(const Region& from) {
    CopyFrom(from);
    return *this;
  }
  inline Region& operator=(Region&& from) noexcept {
    if (GetArena() == from.GetArena()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  inline const ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet& unknown_fields() const {
    return _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance);
  }
  inline ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet* mutable_unknown_fields() {
    return _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return GetMetadataStatic().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return GetMetadataStatic().reflection;
  }
  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;

  friend void swap(Region& a, Region& b) {
    a.Swap(&b);
  }
  inline void Swap(Region* other) {
    if (other == this) return;
    if (GetArena() == other->GetArena()) {
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(Region* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

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

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

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize(
      ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  inline void SharedCtor();
  inline void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(Region* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "velodyne.Region";
  }
  protected:
  explicit Region(::PROTOBUF_NAMESPACE_ID::Arena* arena);
  private:
  static void ArenaDtor(void* object);
  inline void RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena* arena);
  public:

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
  private:
  static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() {
    ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_velodyne_5fconfig_2eproto);
    return ::descriptor_table_velodyne_5fconfig_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

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

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

  enum : int {
    kLidarExtsFieldNumber = 8,
    kMinxFieldNumber = 1,
    kMaxxFieldNumber = 2,
    kMinyFieldNumber = 3,
    kMaxyFieldNumber = 4,
    kMinzFieldNumber = 5,
    kMaxzFieldNumber = 6,
    kRegionIdFieldNumber = 7,
    kTurnplateCxFieldNumber = 9,
    kTurnplateCyFieldNumber = 10,
    kBorderMinxFieldNumber = 11,
    kBorderMaxxFieldNumber = 12,
    kPlcOffsetxFieldNumber = 13,
    kPlcOffsetyFieldNumber = 14,
    kPlcOffsetDegreeFieldNumber = 15,
    kPlcBorderMinyFieldNumber = 16,
    kPlcBorderMaxyFieldNumber = 17,
    kCarMinWidthFieldNumber = 18,
    kCarMaxWidthFieldNumber = 19,
    kCarMinWheelbaseFieldNumber = 20,
    kCarMaxWheelbaseFieldNumber = 21,
    kTurnplateAngleLimitAntiClockwiseFieldNumber = 22,
    kTurnplateAngleLimitClockwiseFieldNumber = 23,
  };
  // repeated .velodyne.lidarExtrinsic lidar_exts = 8;
  int lidar_exts_size() const;
  private:
  int _internal_lidar_exts_size() const;
  public:
  void clear_lidar_exts();
  ::velodyne::lidarExtrinsic* mutable_lidar_exts(int index);
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::velodyne::lidarExtrinsic >*
      mutable_lidar_exts();
  private:
  const ::velodyne::lidarExtrinsic& _internal_lidar_exts(int index) const;
  ::velodyne::lidarExtrinsic* _internal_add_lidar_exts();
  public:
  const ::velodyne::lidarExtrinsic& lidar_exts(int index) const;
  ::velodyne::lidarExtrinsic* add_lidar_exts();
  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::velodyne::lidarExtrinsic >&
      lidar_exts() const;

  // required float minx = 1;
  bool has_minx() const;
  private:
  bool _internal_has_minx() const;
  public:
  void clear_minx();
  float minx() const;
  void set_minx(float value);
  private:
  float _internal_minx() const;
  void _internal_set_minx(float value);
  public:

  // required float maxx = 2;
  bool has_maxx() const;
  private:
  bool _internal_has_maxx() const;
  public:
  void clear_maxx();
  float maxx() const;
  void set_maxx(float value);
  private:
  float _internal_maxx() const;
  void _internal_set_maxx(float value);
  public:

  // required float miny = 3;
  bool has_miny() const;
  private:
  bool _internal_has_miny() const;
  public:
  void clear_miny();
  float miny() const;
  void set_miny(float value);
  private:
  float _internal_miny() const;
  void _internal_set_miny(float value);
  public:

  // required float maxy = 4;
  bool has_maxy() const;
  private:
  bool _internal_has_maxy() const;
  public:
  void clear_maxy();
  float maxy() const;
  void set_maxy(float value);
  private:
  float _internal_maxy() const;
  void _internal_set_maxy(float value);
  public:

  // required float minz = 5;
  bool has_minz() const;
  private:
  bool _internal_has_minz() const;
  public:
  void clear_minz();
  float minz() const;
  void set_minz(float value);
  private:
  float _internal_minz() const;
  void _internal_set_minz(float value);
  public:

  // required float maxz = 6;
  bool has_maxz() const;
  private:
  bool _internal_has_maxz() const;
  public:
  void clear_maxz();
  float maxz() const;
  void set_maxz(float value);
  private:
  float _internal_maxz() const;
  void _internal_set_maxz(float value);
  public:

  // required int32 region_id = 7;
  bool has_region_id() const;
  private:
  bool _internal_has_region_id() const;
  public:
  void clear_region_id();
  ::PROTOBUF_NAMESPACE_ID::int32 region_id() const;
  void set_region_id(::PROTOBUF_NAMESPACE_ID::int32 value);
  private:
  ::PROTOBUF_NAMESPACE_ID::int32 _internal_region_id() const;
  void _internal_set_region_id(::PROTOBUF_NAMESPACE_ID::int32 value);
  public:

  // required float turnplate_cx = 9;
  bool has_turnplate_cx() const;
  private:
  bool _internal_has_turnplate_cx() const;
  public:
  void clear_turnplate_cx();
  float turnplate_cx() const;
  void set_turnplate_cx(float value);
  private:
  float _internal_turnplate_cx() const;
  void _internal_set_turnplate_cx(float value);
  public:

  // required float turnplate_cy = 10;
  bool has_turnplate_cy() const;
  private:
  bool _internal_has_turnplate_cy() const;
  public:
  void clear_turnplate_cy();
  float turnplate_cy() const;
  void set_turnplate_cy(float value);
  private:
  float _internal_turnplate_cy() const;
  void _internal_set_turnplate_cy(float value);
  public:

  // required float border_minx = 11;
  bool has_border_minx() const;
  private:
  bool _internal_has_border_minx() const;
  public:
  void clear_border_minx();
  float border_minx() const;
  void set_border_minx(float value);
  private:
  float _internal_border_minx() const;
  void _internal_set_border_minx(float value);
  public:

  // required float border_maxx = 12;
  bool has_border_maxx() const;
  private:
  bool _internal_has_border_maxx() const;
  public:
  void clear_border_maxx();
  float border_maxx() const;
  void set_border_maxx(float value);
  private:
  float _internal_border_maxx() const;
  void _internal_set_border_maxx(float value);
  public:

  // required float plc_offsetx = 13;
  bool has_plc_offsetx() const;
  private:
  bool _internal_has_plc_offsetx() const;
  public:
  void clear_plc_offsetx();
  float plc_offsetx() const;
  void set_plc_offsetx(float value);
  private:
  float _internal_plc_offsetx() const;
  void _internal_set_plc_offsetx(float value);
  public:

  // required float plc_offsety = 14;
  bool has_plc_offsety() const;
  private:
  bool _internal_has_plc_offsety() const;
  public:
  void clear_plc_offsety();
  float plc_offsety() const;
  void set_plc_offsety(float value);
  private:
  float _internal_plc_offsety() const;
  void _internal_set_plc_offsety(float value);
  public:

  // required float plc_offset_degree = 15;
  bool has_plc_offset_degree() const;
  private:
  bool _internal_has_plc_offset_degree() const;
  public:
  void clear_plc_offset_degree();
  float plc_offset_degree() const;
  void set_plc_offset_degree(float value);
  private:
  float _internal_plc_offset_degree() const;
  void _internal_set_plc_offset_degree(float value);
  public:

  // required float plc_border_miny = 16;
  bool has_plc_border_miny() const;
  private:
  bool _internal_has_plc_border_miny() const;
  public:
  void clear_plc_border_miny();
  float plc_border_miny() const;
  void set_plc_border_miny(float value);
  private:
  float _internal_plc_border_miny() const;
  void _internal_set_plc_border_miny(float value);
  public:

  // required float plc_border_maxy = 17;
  bool has_plc_border_maxy() const;
  private:
  bool _internal_has_plc_border_maxy() const;
  public:
  void clear_plc_border_maxy();
  float plc_border_maxy() const;
  void set_plc_border_maxy(float value);
  private:
  float _internal_plc_border_maxy() const;
  void _internal_set_plc_border_maxy(float value);
  public:

  // required float car_min_width = 18;
  bool has_car_min_width() const;
  private:
  bool _internal_has_car_min_width() const;
  public:
  void clear_car_min_width();
  float car_min_width() const;
  void set_car_min_width(float value);
  private:
  float _internal_car_min_width() const;
  void _internal_set_car_min_width(float value);
  public:

  // required float car_max_width = 19;
  bool has_car_max_width() const;
  private:
  bool _internal_has_car_max_width() const;
  public:
  void clear_car_max_width();
  float car_max_width() const;
  void set_car_max_width(float value);
  private:
  float _internal_car_max_width() const;
  void _internal_set_car_max_width(float value);
  public:

  // required float car_min_wheelbase = 20;
  bool has_car_min_wheelbase() const;
  private:
  bool _internal_has_car_min_wheelbase() const;
  public:
  void clear_car_min_wheelbase();
  float car_min_wheelbase() const;
  void set_car_min_wheelbase(float value);
  private:
  float _internal_car_min_wheelbase() const;
  void _internal_set_car_min_wheelbase(float value);
  public:

  // required float car_max_wheelbase = 21;
  bool has_car_max_wheelbase() const;
  private:
  bool _internal_has_car_max_wheelbase() const;
  public:
  void clear_car_max_wheelbase();
  float car_max_wheelbase() const;
  void set_car_max_wheelbase(float value);
  private:
  float _internal_car_max_wheelbase() const;
  void _internal_set_car_max_wheelbase(float value);
  public:

  // required float turnplate_angle_limit_anti_clockwise = 22;
  bool has_turnplate_angle_limit_anti_clockwise() const;
  private:
  bool _internal_has_turnplate_angle_limit_anti_clockwise() const;
  public:
  void clear_turnplate_angle_limit_anti_clockwise();
  float turnplate_angle_limit_anti_clockwise() const;
  void set_turnplate_angle_limit_anti_clockwise(float value);
  private:
  float _internal_turnplate_angle_limit_anti_clockwise() const;
  void _internal_set_turnplate_angle_limit_anti_clockwise(float value);
  public:

  // required float turnplate_angle_limit_clockwise = 23;
  bool has_turnplate_angle_limit_clockwise() const;
  private:
  bool _internal_has_turnplate_angle_limit_clockwise() const;
  public:
  void clear_turnplate_angle_limit_clockwise();
  float turnplate_angle_limit_clockwise() const;
  void set_turnplate_angle_limit_clockwise(float value);
  private:
  float _internal_turnplate_angle_limit_clockwise() const;
  void _internal_set_turnplate_angle_limit_clockwise(float value);
  public:

  // @@protoc_insertion_point(class_scope:velodyne.Region)
 private:
  class _Internal;

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

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::PROTOBUF_NAMESPACE_ID::internal::HasBits<1> _has_bits_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::velodyne::lidarExtrinsic > lidar_exts_;
  float minx_;
  float maxx_;
  float miny_;
  float maxy_;
  float minz_;
  float maxz_;
  ::PROTOBUF_NAMESPACE_ID::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 ::TableStruct_velodyne_5fconfig_2eproto;
};
// ===================================================================


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

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

// repeated .velodyne.velodyneLidarParams velodyne_lidars = 1;
inline int velodyneManagerParams::_internal_velodyne_lidars_size() const {
  return velodyne_lidars_.size();
}
inline int velodyneManagerParams::velodyne_lidars_size() const {
  return _internal_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 ::PROTOBUF_NAMESPACE_ID::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::_internal_velodyne_lidars(int index) const {
  return velodyne_lidars_.Get(index);
}
inline const ::velodyne::velodyneLidarParams& velodyneManagerParams::velodyne_lidars(int index) const {
  // @@protoc_insertion_point(field_get:velodyne.velodyneManagerParams.velodyne_lidars)
  return _internal_velodyne_lidars(index);
}
inline ::velodyne::velodyneLidarParams* velodyneManagerParams::_internal_add_velodyne_lidars() {
  return velodyne_lidars_.Add();
}
inline ::velodyne::velodyneLidarParams* velodyneManagerParams::add_velodyne_lidars() {
  // @@protoc_insertion_point(field_add:velodyne.velodyneManagerParams.velodyne_lidars)
  return _internal_add_velodyne_lidars();
}
inline const ::PROTOBUF_NAMESPACE_ID::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::_internal_region_size() const {
  return region_.size();
}
inline int velodyneManagerParams::region_size() const {
  return _internal_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 ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::velodyne::Region >*
velodyneManagerParams::mutable_region() {
  // @@protoc_insertion_point(field_mutable_list:velodyne.velodyneManagerParams.region)
  return &region_;
}
inline const ::velodyne::Region& velodyneManagerParams::_internal_region(int index) const {
  return region_.Get(index);
}
inline const ::velodyne::Region& velodyneManagerParams::region(int index) const {
  // @@protoc_insertion_point(field_get:velodyne.velodyneManagerParams.region)
  return _internal_region(index);
}
inline ::velodyne::Region* velodyneManagerParams::_internal_add_region() {
  return region_.Add();
}
inline ::velodyne::Region* velodyneManagerParams::add_region() {
  // @@protoc_insertion_point(field_add:velodyne.velodyneManagerParams.region)
  return _internal_add_region();
}
inline const ::PROTOBUF_NAMESPACE_ID::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::_internal_has_fence_data_path() const {
  bool value = (_has_bits_[0] & 0x00000001u) != 0;
  return value;
}
inline bool velodyneManagerParams::has_fence_data_path() const {
  return _internal_has_fence_data_path();
}
inline void velodyneManagerParams::clear_fence_data_path() {
  fence_data_path_.ClearToEmpty(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
  _has_bits_[0] &= ~0x00000001u;
}
inline const std::string& velodyneManagerParams::fence_data_path() const {
  // @@protoc_insertion_point(field_get:velodyne.velodyneManagerParams.fence_data_path)
  return _internal_fence_data_path();
}
inline void velodyneManagerParams::set_fence_data_path(const std::string& value) {
  _internal_set_fence_data_path(value);
  // @@protoc_insertion_point(field_set:velodyne.velodyneManagerParams.fence_data_path)
}
inline std::string* velodyneManagerParams::mutable_fence_data_path() {
  // @@protoc_insertion_point(field_mutable:velodyne.velodyneManagerParams.fence_data_path)
  return _internal_mutable_fence_data_path();
}
inline const std::string& velodyneManagerParams::_internal_fence_data_path() const {
  return fence_data_path_.Get();
}
inline void velodyneManagerParams::_internal_set_fence_data_path(const std::string& value) {
  _has_bits_[0] |= 0x00000001u;
  fence_data_path_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value, GetArena());
}
inline void velodyneManagerParams::set_fence_data_path(std::string&& value) {
  _has_bits_[0] |= 0x00000001u;
  fence_data_path_.Set(
    &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value), GetArena());
  // @@protoc_insertion_point(field_set_rvalue:velodyne.velodyneManagerParams.fence_data_path)
}
inline void velodyneManagerParams::set_fence_data_path(const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  _has_bits_[0] |= 0x00000001u;
  fence_data_path_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(value),
              GetArena());
  // @@protoc_insertion_point(field_set_char:velodyne.velodyneManagerParams.fence_data_path)
}
inline void velodyneManagerParams::set_fence_data_path(const char* value,
    size_t size) {
  _has_bits_[0] |= 0x00000001u;
  fence_data_path_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(
      reinterpret_cast<const char*>(value), size), GetArena());
  // @@protoc_insertion_point(field_set_pointer:velodyne.velodyneManagerParams.fence_data_path)
}
inline std::string* velodyneManagerParams::_internal_mutable_fence_data_path() {
  _has_bits_[0] |= 0x00000001u;
  return fence_data_path_.Mutable(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline std::string* velodyneManagerParams::release_fence_data_path() {
  // @@protoc_insertion_point(field_release:velodyne.velodyneManagerParams.fence_data_path)
  if (!_internal_has_fence_data_path()) {
    return nullptr;
  }
  _has_bits_[0] &= ~0x00000001u;
  return fence_data_path_.ReleaseNonDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline void velodyneManagerParams::set_allocated_fence_data_path(std::string* fence_data_path) {
  if (fence_data_path != nullptr) {
    _has_bits_[0] |= 0x00000001u;
  } else {
    _has_bits_[0] &= ~0x00000001u;
  }
  fence_data_path_.SetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), fence_data_path,
      GetArena());
  // @@protoc_insertion_point(field_set_allocated:velodyne.velodyneManagerParams.fence_data_path)
}

// optional string fence_log_path = 4 [default = ""];
inline bool velodyneManagerParams::_internal_has_fence_log_path() const {
  bool value = (_has_bits_[0] & 0x00000002u) != 0;
  return value;
}
inline bool velodyneManagerParams::has_fence_log_path() const {
  return _internal_has_fence_log_path();
}
inline void velodyneManagerParams::clear_fence_log_path() {
  fence_log_path_.ClearToEmpty(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
  _has_bits_[0] &= ~0x00000002u;
}
inline const std::string& velodyneManagerParams::fence_log_path() const {
  // @@protoc_insertion_point(field_get:velodyne.velodyneManagerParams.fence_log_path)
  return _internal_fence_log_path();
}
inline void velodyneManagerParams::set_fence_log_path(const std::string& value) {
  _internal_set_fence_log_path(value);
  // @@protoc_insertion_point(field_set:velodyne.velodyneManagerParams.fence_log_path)
}
inline std::string* velodyneManagerParams::mutable_fence_log_path() {
  // @@protoc_insertion_point(field_mutable:velodyne.velodyneManagerParams.fence_log_path)
  return _internal_mutable_fence_log_path();
}
inline const std::string& velodyneManagerParams::_internal_fence_log_path() const {
  return fence_log_path_.Get();
}
inline void velodyneManagerParams::_internal_set_fence_log_path(const std::string& value) {
  _has_bits_[0] |= 0x00000002u;
  fence_log_path_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value, GetArena());
}
inline void velodyneManagerParams::set_fence_log_path(std::string&& value) {
  _has_bits_[0] |= 0x00000002u;
  fence_log_path_.Set(
    &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value), GetArena());
  // @@protoc_insertion_point(field_set_rvalue:velodyne.velodyneManagerParams.fence_log_path)
}
inline void velodyneManagerParams::set_fence_log_path(const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  _has_bits_[0] |= 0x00000002u;
  fence_log_path_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(value),
              GetArena());
  // @@protoc_insertion_point(field_set_char:velodyne.velodyneManagerParams.fence_log_path)
}
inline void velodyneManagerParams::set_fence_log_path(const char* value,
    size_t size) {
  _has_bits_[0] |= 0x00000002u;
  fence_log_path_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(
      reinterpret_cast<const char*>(value), size), GetArena());
  // @@protoc_insertion_point(field_set_pointer:velodyne.velodyneManagerParams.fence_log_path)
}
inline std::string* velodyneManagerParams::_internal_mutable_fence_log_path() {
  _has_bits_[0] |= 0x00000002u;
  return fence_log_path_.Mutable(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline std::string* velodyneManagerParams::release_fence_log_path() {
  // @@protoc_insertion_point(field_release:velodyne.velodyneManagerParams.fence_log_path)
  if (!_internal_has_fence_log_path()) {
    return nullptr;
  }
  _has_bits_[0] &= ~0x00000002u;
  return fence_log_path_.ReleaseNonDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline void velodyneManagerParams::set_allocated_fence_log_path(std::string* fence_log_path) {
  if (fence_log_path != nullptr) {
    _has_bits_[0] |= 0x00000002u;
  } else {
    _has_bits_[0] &= ~0x00000002u;
  }
  fence_log_path_.SetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), fence_log_path,
      GetArena());
  // @@protoc_insertion_point(field_set_allocated:velodyne.velodyneManagerParams.fence_log_path)
}

// optional string left_model_path = 5 [default = ""];
inline bool velodyneManagerParams::_internal_has_left_model_path() const {
  bool value = (_has_bits_[0] & 0x00000004u) != 0;
  return value;
}
inline bool velodyneManagerParams::has_left_model_path() const {
  return _internal_has_left_model_path();
}
inline void velodyneManagerParams::clear_left_model_path() {
  left_model_path_.ClearToEmpty(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
  _has_bits_[0] &= ~0x00000004u;
}
inline const std::string& velodyneManagerParams::left_model_path() const {
  // @@protoc_insertion_point(field_get:velodyne.velodyneManagerParams.left_model_path)
  return _internal_left_model_path();
}
inline void velodyneManagerParams::set_left_model_path(const std::string& value) {
  _internal_set_left_model_path(value);
  // @@protoc_insertion_point(field_set:velodyne.velodyneManagerParams.left_model_path)
}
inline std::string* velodyneManagerParams::mutable_left_model_path() {
  // @@protoc_insertion_point(field_mutable:velodyne.velodyneManagerParams.left_model_path)
  return _internal_mutable_left_model_path();
}
inline const std::string& velodyneManagerParams::_internal_left_model_path() const {
  return left_model_path_.Get();
}
inline void velodyneManagerParams::_internal_set_left_model_path(const std::string& value) {
  _has_bits_[0] |= 0x00000004u;
  left_model_path_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value, GetArena());
}
inline void velodyneManagerParams::set_left_model_path(std::string&& value) {
  _has_bits_[0] |= 0x00000004u;
  left_model_path_.Set(
    &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value), GetArena());
  // @@protoc_insertion_point(field_set_rvalue:velodyne.velodyneManagerParams.left_model_path)
}
inline void velodyneManagerParams::set_left_model_path(const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  _has_bits_[0] |= 0x00000004u;
  left_model_path_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(value),
              GetArena());
  // @@protoc_insertion_point(field_set_char:velodyne.velodyneManagerParams.left_model_path)
}
inline void velodyneManagerParams::set_left_model_path(const char* value,
    size_t size) {
  _has_bits_[0] |= 0x00000004u;
  left_model_path_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(
      reinterpret_cast<const char*>(value), size), GetArena());
  // @@protoc_insertion_point(field_set_pointer:velodyne.velodyneManagerParams.left_model_path)
}
inline std::string* velodyneManagerParams::_internal_mutable_left_model_path() {
  _has_bits_[0] |= 0x00000004u;
  return left_model_path_.Mutable(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline std::string* velodyneManagerParams::release_left_model_path() {
  // @@protoc_insertion_point(field_release:velodyne.velodyneManagerParams.left_model_path)
  if (!_internal_has_left_model_path()) {
    return nullptr;
  }
  _has_bits_[0] &= ~0x00000004u;
  return left_model_path_.ReleaseNonDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline void velodyneManagerParams::set_allocated_left_model_path(std::string* left_model_path) {
  if (left_model_path != nullptr) {
    _has_bits_[0] |= 0x00000004u;
  } else {
    _has_bits_[0] &= ~0x00000004u;
  }
  left_model_path_.SetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), left_model_path,
      GetArena());
  // @@protoc_insertion_point(field_set_allocated:velodyne.velodyneManagerParams.left_model_path)
}

// optional string right_model_path = 6 [default = ""];
inline bool velodyneManagerParams::_internal_has_right_model_path() const {
  bool value = (_has_bits_[0] & 0x00000008u) != 0;
  return value;
}
inline bool velodyneManagerParams::has_right_model_path() const {
  return _internal_has_right_model_path();
}
inline void velodyneManagerParams::clear_right_model_path() {
  right_model_path_.ClearToEmpty(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
  _has_bits_[0] &= ~0x00000008u;
}
inline const std::string& velodyneManagerParams::right_model_path() const {
  // @@protoc_insertion_point(field_get:velodyne.velodyneManagerParams.right_model_path)
  return _internal_right_model_path();
}
inline void velodyneManagerParams::set_right_model_path(const std::string& value) {
  _internal_set_right_model_path(value);
  // @@protoc_insertion_point(field_set:velodyne.velodyneManagerParams.right_model_path)
}
inline std::string* velodyneManagerParams::mutable_right_model_path() {
  // @@protoc_insertion_point(field_mutable:velodyne.velodyneManagerParams.right_model_path)
  return _internal_mutable_right_model_path();
}
inline const std::string& velodyneManagerParams::_internal_right_model_path() const {
  return right_model_path_.Get();
}
inline void velodyneManagerParams::_internal_set_right_model_path(const std::string& value) {
  _has_bits_[0] |= 0x00000008u;
  right_model_path_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value, GetArena());
}
inline void velodyneManagerParams::set_right_model_path(std::string&& value) {
  _has_bits_[0] |= 0x00000008u;
  right_model_path_.Set(
    &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value), GetArena());
  // @@protoc_insertion_point(field_set_rvalue:velodyne.velodyneManagerParams.right_model_path)
}
inline void velodyneManagerParams::set_right_model_path(const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  _has_bits_[0] |= 0x00000008u;
  right_model_path_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(value),
              GetArena());
  // @@protoc_insertion_point(field_set_char:velodyne.velodyneManagerParams.right_model_path)
}
inline void velodyneManagerParams::set_right_model_path(const char* value,
    size_t size) {
  _has_bits_[0] |= 0x00000008u;
  right_model_path_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(
      reinterpret_cast<const char*>(value), size), GetArena());
  // @@protoc_insertion_point(field_set_pointer:velodyne.velodyneManagerParams.right_model_path)
}
inline std::string* velodyneManagerParams::_internal_mutable_right_model_path() {
  _has_bits_[0] |= 0x00000008u;
  return right_model_path_.Mutable(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline std::string* velodyneManagerParams::release_right_model_path() {
  // @@protoc_insertion_point(field_release:velodyne.velodyneManagerParams.right_model_path)
  if (!_internal_has_right_model_path()) {
    return nullptr;
  }
  _has_bits_[0] &= ~0x00000008u;
  return right_model_path_.ReleaseNonDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline void velodyneManagerParams::set_allocated_right_model_path(std::string* right_model_path) {
  if (right_model_path != nullptr) {
    _has_bits_[0] |= 0x00000008u;
  } else {
    _has_bits_[0] &= ~0x00000008u;
  }
  right_model_path_.SetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), right_model_path,
      GetArena());
  // @@protoc_insertion_point(field_set_allocated:velodyne.velodyneManagerParams.right_model_path)
}

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

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

// velodyneLidarParams

// required string ip = 1 [default = ""];
inline bool velodyneLidarParams::_internal_has_ip() const {
  bool value = (_has_bits_[0] & 0x00000001u) != 0;
  return value;
}
inline bool velodyneLidarParams::has_ip() const {
  return _internal_has_ip();
}
inline void velodyneLidarParams::clear_ip() {
  ip_.ClearToEmpty(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
  _has_bits_[0] &= ~0x00000001u;
}
inline const std::string& velodyneLidarParams::ip() const {
  // @@protoc_insertion_point(field_get:velodyne.velodyneLidarParams.ip)
  return _internal_ip();
}
inline void velodyneLidarParams::set_ip(const std::string& value) {
  _internal_set_ip(value);
  // @@protoc_insertion_point(field_set:velodyne.velodyneLidarParams.ip)
}
inline std::string* velodyneLidarParams::mutable_ip() {
  // @@protoc_insertion_point(field_mutable:velodyne.velodyneLidarParams.ip)
  return _internal_mutable_ip();
}
inline const std::string& velodyneLidarParams::_internal_ip() const {
  return ip_.Get();
}
inline void velodyneLidarParams::_internal_set_ip(const std::string& value) {
  _has_bits_[0] |= 0x00000001u;
  ip_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value, GetArena());
}
inline void velodyneLidarParams::set_ip(std::string&& value) {
  _has_bits_[0] |= 0x00000001u;
  ip_.Set(
    &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value), GetArena());
  // @@protoc_insertion_point(field_set_rvalue:velodyne.velodyneLidarParams.ip)
}
inline void velodyneLidarParams::set_ip(const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  _has_bits_[0] |= 0x00000001u;
  ip_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(value),
              GetArena());
  // @@protoc_insertion_point(field_set_char:velodyne.velodyneLidarParams.ip)
}
inline void velodyneLidarParams::set_ip(const char* value,
    size_t size) {
  _has_bits_[0] |= 0x00000001u;
  ip_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(
      reinterpret_cast<const char*>(value), size), GetArena());
  // @@protoc_insertion_point(field_set_pointer:velodyne.velodyneLidarParams.ip)
}
inline std::string* velodyneLidarParams::_internal_mutable_ip() {
  _has_bits_[0] |= 0x00000001u;
  return ip_.Mutable(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline std::string* velodyneLidarParams::release_ip() {
  // @@protoc_insertion_point(field_release:velodyne.velodyneLidarParams.ip)
  if (!_internal_has_ip()) {
    return nullptr;
  }
  _has_bits_[0] &= ~0x00000001u;
  return ip_.ReleaseNonDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline void velodyneLidarParams::set_allocated_ip(std::string* ip) {
  if (ip != nullptr) {
    _has_bits_[0] |= 0x00000001u;
  } else {
    _has_bits_[0] &= ~0x00000001u;
  }
  ip_.SetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ip,
      GetArena());
  // @@protoc_insertion_point(field_set_allocated:velodyne.velodyneLidarParams.ip)
}

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

// required string model = 3 [default = "VLP16"];
inline bool velodyneLidarParams::_internal_has_model() const {
  bool value = (_has_bits_[0] & 0x00000002u) != 0;
  return value;
}
inline bool velodyneLidarParams::has_model() const {
  return _internal_has_model();
}
inline void velodyneLidarParams::clear_model() {
  model_.ClearToDefault(&::velodyne::velodyneLidarParams::_i_give_permission_to_break_this_code_default_model_.get(), GetArena());
  _has_bits_[0] &= ~0x00000002u;
}
inline const std::string& velodyneLidarParams::model() const {
  // @@protoc_insertion_point(field_get:velodyne.velodyneLidarParams.model)
  return _internal_model();
}
inline void velodyneLidarParams::set_model(const std::string& value) {
  _internal_set_model(value);
  // @@protoc_insertion_point(field_set:velodyne.velodyneLidarParams.model)
}
inline std::string* velodyneLidarParams::mutable_model() {
  // @@protoc_insertion_point(field_mutable:velodyne.velodyneLidarParams.model)
  return _internal_mutable_model();
}
inline const std::string& velodyneLidarParams::_internal_model() const {
  return model_.Get();
}
inline void velodyneLidarParams::_internal_set_model(const std::string& value) {
  _has_bits_[0] |= 0x00000002u;
  model_.Set(&::velodyne::velodyneLidarParams::_i_give_permission_to_break_this_code_default_model_.get(), value, GetArena());
}
inline void velodyneLidarParams::set_model(std::string&& value) {
  _has_bits_[0] |= 0x00000002u;
  model_.Set(
    &::velodyne::velodyneLidarParams::_i_give_permission_to_break_this_code_default_model_.get(), ::std::move(value), GetArena());
  // @@protoc_insertion_point(field_set_rvalue:velodyne.velodyneLidarParams.model)
}
inline void velodyneLidarParams::set_model(const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  _has_bits_[0] |= 0x00000002u;
  model_.Set(&::velodyne::velodyneLidarParams::_i_give_permission_to_break_this_code_default_model_.get(), ::std::string(value),
              GetArena());
  // @@protoc_insertion_point(field_set_char:velodyne.velodyneLidarParams.model)
}
inline void velodyneLidarParams::set_model(const char* value,
    size_t size) {
  _has_bits_[0] |= 0x00000002u;
  model_.Set(&::velodyne::velodyneLidarParams::_i_give_permission_to_break_this_code_default_model_.get(), ::std::string(
      reinterpret_cast<const char*>(value), size), GetArena());
  // @@protoc_insertion_point(field_set_pointer:velodyne.velodyneLidarParams.model)
}
inline std::string* velodyneLidarParams::_internal_mutable_model() {
  _has_bits_[0] |= 0x00000002u;
  return model_.Mutable(&::velodyne::velodyneLidarParams::_i_give_permission_to_break_this_code_default_model_.get(), GetArena());
}
inline std::string* velodyneLidarParams::release_model() {
  // @@protoc_insertion_point(field_release:velodyne.velodyneLidarParams.model)
  if (!_internal_has_model()) {
    return nullptr;
  }
  _has_bits_[0] &= ~0x00000002u;
  return model_.ReleaseNonDefault(&::velodyne::velodyneLidarParams::_i_give_permission_to_break_this_code_default_model_.get(), GetArena());
}
inline void velodyneLidarParams::set_allocated_model(std::string* model) {
  if (model != nullptr) {
    _has_bits_[0] |= 0x00000002u;
  } else {
    _has_bits_[0] &= ~0x00000002u;
  }
  model_.SetAllocated(&::velodyne::velodyneLidarParams::_i_give_permission_to_break_this_code_default_model_.get(), model,
      GetArena());
  // @@protoc_insertion_point(field_set_allocated:velodyne.velodyneLidarParams.model)
}

// required string calibrationFile = 4 [default = ""];
inline bool velodyneLidarParams::_internal_has_calibrationfile() const {
  bool value = (_has_bits_[0] & 0x00000004u) != 0;
  return value;
}
inline bool velodyneLidarParams::has_calibrationfile() const {
  return _internal_has_calibrationfile();
}
inline void velodyneLidarParams::clear_calibrationfile() {
  calibrationfile_.ClearToEmpty(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
  _has_bits_[0] &= ~0x00000004u;
}
inline const std::string& velodyneLidarParams::calibrationfile() const {
  // @@protoc_insertion_point(field_get:velodyne.velodyneLidarParams.calibrationFile)
  return _internal_calibrationfile();
}
inline void velodyneLidarParams::set_calibrationfile(const std::string& value) {
  _internal_set_calibrationfile(value);
  // @@protoc_insertion_point(field_set:velodyne.velodyneLidarParams.calibrationFile)
}
inline std::string* velodyneLidarParams::mutable_calibrationfile() {
  // @@protoc_insertion_point(field_mutable:velodyne.velodyneLidarParams.calibrationFile)
  return _internal_mutable_calibrationfile();
}
inline const std::string& velodyneLidarParams::_internal_calibrationfile() const {
  return calibrationfile_.Get();
}
inline void velodyneLidarParams::_internal_set_calibrationfile(const std::string& value) {
  _has_bits_[0] |= 0x00000004u;
  calibrationfile_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value, GetArena());
}
inline void velodyneLidarParams::set_calibrationfile(std::string&& value) {
  _has_bits_[0] |= 0x00000004u;
  calibrationfile_.Set(
    &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value), GetArena());
  // @@protoc_insertion_point(field_set_rvalue:velodyne.velodyneLidarParams.calibrationFile)
}
inline void velodyneLidarParams::set_calibrationfile(const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  _has_bits_[0] |= 0x00000004u;
  calibrationfile_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(value),
              GetArena());
  // @@protoc_insertion_point(field_set_char:velodyne.velodyneLidarParams.calibrationFile)
}
inline void velodyneLidarParams::set_calibrationfile(const char* value,
    size_t size) {
  _has_bits_[0] |= 0x00000004u;
  calibrationfile_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(
      reinterpret_cast<const char*>(value), size), GetArena());
  // @@protoc_insertion_point(field_set_pointer:velodyne.velodyneLidarParams.calibrationFile)
}
inline std::string* velodyneLidarParams::_internal_mutable_calibrationfile() {
  _has_bits_[0] |= 0x00000004u;
  return calibrationfile_.Mutable(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline std::string* velodyneLidarParams::release_calibrationfile() {
  // @@protoc_insertion_point(field_release:velodyne.velodyneLidarParams.calibrationFile)
  if (!_internal_has_calibrationfile()) {
    return nullptr;
  }
  _has_bits_[0] &= ~0x00000004u;
  return calibrationfile_.ReleaseNonDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline void velodyneLidarParams::set_allocated_calibrationfile(std::string* calibrationfile) {
  if (calibrationfile != nullptr) {
    _has_bits_[0] |= 0x00000004u;
  } else {
    _has_bits_[0] &= ~0x00000004u;
  }
  calibrationfile_.SetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), calibrationfile,
      GetArena());
  // @@protoc_insertion_point(field_set_allocated:velodyne.velodyneLidarParams.calibrationFile)
}

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

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

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

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

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

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

// optional .velodyne.CalibParameter calib = 11;
inline bool velodyneLidarParams::_internal_has_calib() const {
  bool value = (_has_bits_[0] & 0x00000008u) != 0;
  PROTOBUF_ASSUME(!value || calib_ != nullptr);
  return value;
}
inline bool velodyneLidarParams::has_calib() const {
  return _internal_has_calib();
}
inline void velodyneLidarParams::clear_calib() {
  if (calib_ != nullptr) calib_->Clear();
  _has_bits_[0] &= ~0x00000008u;
}
inline const ::velodyne::CalibParameter& velodyneLidarParams::_internal_calib() const {
  const ::velodyne::CalibParameter* p = calib_;
  return p != nullptr ? *p : *reinterpret_cast<const ::velodyne::CalibParameter*>(
      &::velodyne::_CalibParameter_default_instance_);
}
inline const ::velodyne::CalibParameter& velodyneLidarParams::calib() const {
  // @@protoc_insertion_point(field_get:velodyne.velodyneLidarParams.calib)
  return _internal_calib();
}
inline void velodyneLidarParams::unsafe_arena_set_allocated_calib(
    ::velodyne::CalibParameter* calib) {
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(calib_);
  }
  calib_ = calib;
  if (calib) {
    _has_bits_[0] |= 0x00000008u;
  } else {
    _has_bits_[0] &= ~0x00000008u;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:velodyne.velodyneLidarParams.calib)
}
inline ::velodyne::CalibParameter* velodyneLidarParams::release_calib() {
  _has_bits_[0] &= ~0x00000008u;
  ::velodyne::CalibParameter* temp = calib_;
  calib_ = nullptr;
  if (GetArena() != nullptr) {
    temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  }
  return temp;
}
inline ::velodyne::CalibParameter* velodyneLidarParams::unsafe_arena_release_calib() {
  // @@protoc_insertion_point(field_release:velodyne.velodyneLidarParams.calib)
  _has_bits_[0] &= ~0x00000008u;
  ::velodyne::CalibParameter* temp = calib_;
  calib_ = nullptr;
  return temp;
}
inline ::velodyne::CalibParameter* velodyneLidarParams::_internal_mutable_calib() {
  _has_bits_[0] |= 0x00000008u;
  if (calib_ == nullptr) {
    auto* p = CreateMaybeMessage<::velodyne::CalibParameter>(GetArena());
    calib_ = p;
  }
  return calib_;
}
inline ::velodyne::CalibParameter* velodyneLidarParams::mutable_calib() {
  // @@protoc_insertion_point(field_mutable:velodyne.velodyneLidarParams.calib)
  return _internal_mutable_calib();
}
inline void velodyneLidarParams::set_allocated_calib(::velodyne::CalibParameter* calib) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  if (message_arena == nullptr) {
    delete calib_;
  }
  if (calib) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(calib);
    if (message_arena != submessage_arena) {
      calib = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, calib, submessage_arena);
    }
    _has_bits_[0] |= 0x00000008u;
  } else {
    _has_bits_[0] &= ~0x00000008u;
  }
  calib_ = calib;
  // @@protoc_insertion_point(field_set_allocated:velodyne.velodyneLidarParams.calib)
}

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

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

// CalibParameter

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

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

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

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

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

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

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

// lidarExtrinsic

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

// optional .velodyne.CalibParameter calib = 2;
inline bool lidarExtrinsic::_internal_has_calib() const {
  bool value = (_has_bits_[0] & 0x00000001u) != 0;
  PROTOBUF_ASSUME(!value || calib_ != nullptr);
  return value;
}
inline bool lidarExtrinsic::has_calib() const {
  return _internal_has_calib();
}
inline void lidarExtrinsic::clear_calib() {
  if (calib_ != nullptr) calib_->Clear();
  _has_bits_[0] &= ~0x00000001u;
}
inline const ::velodyne::CalibParameter& lidarExtrinsic::_internal_calib() const {
  const ::velodyne::CalibParameter* p = calib_;
  return p != nullptr ? *p : *reinterpret_cast<const ::velodyne::CalibParameter*>(
      &::velodyne::_CalibParameter_default_instance_);
}
inline const ::velodyne::CalibParameter& lidarExtrinsic::calib() const {
  // @@protoc_insertion_point(field_get:velodyne.lidarExtrinsic.calib)
  return _internal_calib();
}
inline void lidarExtrinsic::unsafe_arena_set_allocated_calib(
    ::velodyne::CalibParameter* calib) {
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(calib_);
  }
  calib_ = calib;
  if (calib) {
    _has_bits_[0] |= 0x00000001u;
  } else {
    _has_bits_[0] &= ~0x00000001u;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:velodyne.lidarExtrinsic.calib)
}
inline ::velodyne::CalibParameter* lidarExtrinsic::release_calib() {
  _has_bits_[0] &= ~0x00000001u;
  ::velodyne::CalibParameter* temp = calib_;
  calib_ = nullptr;
  if (GetArena() != nullptr) {
    temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  }
  return temp;
}
inline ::velodyne::CalibParameter* lidarExtrinsic::unsafe_arena_release_calib() {
  // @@protoc_insertion_point(field_release:velodyne.lidarExtrinsic.calib)
  _has_bits_[0] &= ~0x00000001u;
  ::velodyne::CalibParameter* temp = calib_;
  calib_ = nullptr;
  return temp;
}
inline ::velodyne::CalibParameter* lidarExtrinsic::_internal_mutable_calib() {
  _has_bits_[0] |= 0x00000001u;
  if (calib_ == nullptr) {
    auto* p = CreateMaybeMessage<::velodyne::CalibParameter>(GetArena());
    calib_ = p;
  }
  return calib_;
}
inline ::velodyne::CalibParameter* lidarExtrinsic::mutable_calib() {
  // @@protoc_insertion_point(field_mutable:velodyne.lidarExtrinsic.calib)
  return _internal_mutable_calib();
}
inline void lidarExtrinsic::set_allocated_calib(::velodyne::CalibParameter* calib) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  if (message_arena == nullptr) {
    delete calib_;
  }
  if (calib) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(calib);
    if (message_arena != submessage_arena) {
      calib = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, calib, submessage_arena);
    }
    _has_bits_[0] |= 0x00000001u;
  } else {
    _has_bits_[0] &= ~0x00000001u;
  }
  calib_ = calib;
  // @@protoc_insertion_point(field_set_allocated:velodyne.lidarExtrinsic.calib)
}

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

// Region

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

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

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

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

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

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

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

// repeated .velodyne.lidarExtrinsic lidar_exts = 8;
inline int Region::_internal_lidar_exts_size() const {
  return lidar_exts_.size();
}
inline int Region::lidar_exts_size() const {
  return _internal_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 ::PROTOBUF_NAMESPACE_ID::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::_internal_lidar_exts(int index) const {
  return lidar_exts_.Get(index);
}
inline const ::velodyne::lidarExtrinsic& Region::lidar_exts(int index) const {
  // @@protoc_insertion_point(field_get:velodyne.Region.lidar_exts)
  return _internal_lidar_exts(index);
}
inline ::velodyne::lidarExtrinsic* Region::_internal_add_lidar_exts() {
  return lidar_exts_.Add();
}
inline ::velodyne::lidarExtrinsic* Region::add_lidar_exts() {
  // @@protoc_insertion_point(field_add:velodyne.Region.lidar_exts)
  return _internal_add_lidar_exts();
}
inline const ::PROTOBUF_NAMESPACE_ID::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::_internal_has_turnplate_cx() const {
  bool value = (_has_bits_[0] & 0x00000080u) != 0;
  return value;
}
inline bool Region::has_turnplate_cx() const {
  return _internal_has_turnplate_cx();
}
inline void Region::clear_turnplate_cx() {
  turnplate_cx_ = 0;
  _has_bits_[0] &= ~0x00000080u;
}
inline float Region::_internal_turnplate_cx() const {
  return turnplate_cx_;
}
inline float Region::turnplate_cx() const {
  // @@protoc_insertion_point(field_get:velodyne.Region.turnplate_cx)
  return _internal_turnplate_cx();
}
inline void Region::_internal_set_turnplate_cx(float value) {
  _has_bits_[0] |= 0x00000080u;
  turnplate_cx_ = value;
}
inline void Region::set_turnplate_cx(float value) {
  _internal_set_turnplate_cx(value);
  // @@protoc_insertion_point(field_set:velodyne.Region.turnplate_cx)
}

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

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

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

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

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

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

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

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

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

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

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

// required float car_max_wheelbase = 21;
inline bool Region::_internal_has_car_max_wheelbase() const {
  bool value = (_has_bits_[0] & 0x00080000u) != 0;
  return value;
}
inline bool Region::has_car_max_wheelbase() const {
  return _internal_has_car_max_wheelbase();
}
inline void Region::clear_car_max_wheelbase() {
  car_max_wheelbase_ = 0;
  _has_bits_[0] &= ~0x00080000u;
}
inline float Region::_internal_car_max_wheelbase() const {
  return car_max_wheelbase_;
}
inline float Region::car_max_wheelbase() const {
  // @@protoc_insertion_point(field_get:velodyne.Region.car_max_wheelbase)
  return _internal_car_max_wheelbase();
}
inline void Region::_internal_set_car_max_wheelbase(float value) {
  _has_bits_[0] |= 0x00080000u;
  car_max_wheelbase_ = value;
}
inline void Region::set_car_max_wheelbase(float value) {
  _internal_set_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::_internal_has_turnplate_angle_limit_anti_clockwise() const {
  bool value = (_has_bits_[0] & 0x00100000u) != 0;
  return value;
}
inline bool Region::has_turnplate_angle_limit_anti_clockwise() const {
  return _internal_has_turnplate_angle_limit_anti_clockwise();
}
inline void Region::clear_turnplate_angle_limit_anti_clockwise() {
  turnplate_angle_limit_anti_clockwise_ = 0;
  _has_bits_[0] &= ~0x00100000u;
}
inline float Region::_internal_turnplate_angle_limit_anti_clockwise() const {
  return 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 _internal_turnplate_angle_limit_anti_clockwise();
}
inline void Region::_internal_set_turnplate_angle_limit_anti_clockwise(float value) {
  _has_bits_[0] |= 0x00100000u;
  turnplate_angle_limit_anti_clockwise_ = value;
}
inline void Region::set_turnplate_angle_limit_anti_clockwise(float value) {
  _internal_set_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::_internal_has_turnplate_angle_limit_clockwise() const {
  bool value = (_has_bits_[0] & 0x00200000u) != 0;
  return value;
}
inline bool Region::has_turnplate_angle_limit_clockwise() const {
  return _internal_has_turnplate_angle_limit_clockwise();
}
inline void Region::clear_turnplate_angle_limit_clockwise() {
  turnplate_angle_limit_clockwise_ = 0;
  _has_bits_[0] &= ~0x00200000u;
}
inline float Region::_internal_turnplate_angle_limit_clockwise() const {
  return turnplate_angle_limit_clockwise_;
}
inline float Region::turnplate_angle_limit_clockwise() const {
  // @@protoc_insertion_point(field_get:velodyne.Region.turnplate_angle_limit_clockwise)
  return _internal_turnplate_angle_limit_clockwise();
}
inline void Region::_internal_set_turnplate_angle_limit_clockwise(float value) {
  _has_bits_[0] |= 0x00200000u;
  turnplate_angle_limit_clockwise_ = value;
}
inline void Region::set_turnplate_angle_limit_clockwise(float value) {
  _internal_set_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)

#include <google/protobuf/port_undef.inc>
#endif  // GOOGLE_PROTOBUF_INCLUDED_GOOGLE_PROTOBUF_INCLUDED_velodyne_5fconfig_2eproto
