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

#ifndef GOOGLE_PROTOBUF_INCLUDED_wj_5flidar_5fconf_2eproto
#define GOOGLE_PROTOBUF_INCLUDED_wj_5flidar_5fconf_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_wj_5flidar_5fconf_2eproto
PROTOBUF_NAMESPACE_OPEN
namespace internal {
class AnyMetadata;
}  // namespace internal
PROTOBUF_NAMESPACE_CLOSE

// Internal implementation detail -- do not use these members.
struct TableStruct_wj_5flidar_5fconf_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[8]
    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_wj_5flidar_5fconf_2eproto;
namespace wj {
class CalibParameter;
class CalibParameterDefaultTypeInternal;
extern CalibParameterDefaultTypeInternal _CalibParameter_default_instance_;
class Region;
class RegionDefaultTypeInternal;
extern RegionDefaultTypeInternal _Region_default_instance_;
class Transform2d;
class Transform2dDefaultTypeInternal;
extern Transform2dDefaultTypeInternal _Transform2d_default_instance_;
class lidarExtrinsic;
class lidarExtrinsicDefaultTypeInternal;
extern lidarExtrinsicDefaultTypeInternal _lidarExtrinsic_default_instance_;
class netConfig;
class netConfigDefaultTypeInternal;
extern netConfigDefaultTypeInternal _netConfig_default_instance_;
class scanLimit;
class scanLimitDefaultTypeInternal;
extern scanLimitDefaultTypeInternal _scanLimit_default_instance_;
class wjLidarParams;
class wjLidarParamsDefaultTypeInternal;
extern wjLidarParamsDefaultTypeInternal _wjLidarParams_default_instance_;
class wjManagerParams;
class wjManagerParamsDefaultTypeInternal;
extern wjManagerParamsDefaultTypeInternal _wjManagerParams_default_instance_;
}  // namespace wj
PROTOBUF_NAMESPACE_OPEN
template<> ::wj::CalibParameter* Arena::CreateMaybeMessage<::wj::CalibParameter>(Arena*);
template<> ::wj::Region* Arena::CreateMaybeMessage<::wj::Region>(Arena*);
template<> ::wj::Transform2d* Arena::CreateMaybeMessage<::wj::Transform2d>(Arena*);
template<> ::wj::lidarExtrinsic* Arena::CreateMaybeMessage<::wj::lidarExtrinsic>(Arena*);
template<> ::wj::netConfig* Arena::CreateMaybeMessage<::wj::netConfig>(Arena*);
template<> ::wj::scanLimit* Arena::CreateMaybeMessage<::wj::scanLimit>(Arena*);
template<> ::wj::wjLidarParams* Arena::CreateMaybeMessage<::wj::wjLidarParams>(Arena*);
template<> ::wj::wjManagerParams* Arena::CreateMaybeMessage<::wj::wjManagerParams>(Arena*);
PROTOBUF_NAMESPACE_CLOSE
namespace wj {

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

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

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

  inline wjManagerParams& operator=(const wjManagerParams& from) {
    CopyFrom(from);
    return *this;
  }
  inline wjManagerParams& operator=(wjManagerParams&& 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 wjManagerParams& default_instance();

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

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

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

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

  wjManagerParams* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<wjManagerParams>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const wjManagerParams& from);
  void MergeFrom(const wjManagerParams& 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(wjManagerParams* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "wj.wjManagerParams";
  }
  protected:
  explicit wjManagerParams(::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_wj_5flidar_5fconf_2eproto);
    return ::descriptor_table_wj_5flidar_5fconf_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

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

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

  enum : int {
    kWjLidarFieldNumber = 1,
    kRegionsFieldNumber = 2,
    kFenceDataPathFieldNumber = 3,
    kFenceLogPathFieldNumber = 4,
    kPlcIpAddressFieldNumber = 5,
    kDistributionModeFieldNumber = 6,
  };
  // repeated .wj.wjLidarParams wj_lidar = 1;
  int wj_lidar_size() const;
  private:
  int _internal_wj_lidar_size() const;
  public:
  void clear_wj_lidar();
  ::wj::wjLidarParams* mutable_wj_lidar(int index);
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::wj::wjLidarParams >*
      mutable_wj_lidar();
  private:
  const ::wj::wjLidarParams& _internal_wj_lidar(int index) const;
  ::wj::wjLidarParams* _internal_add_wj_lidar();
  public:
  const ::wj::wjLidarParams& wj_lidar(int index) const;
  ::wj::wjLidarParams* add_wj_lidar();
  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::wj::wjLidarParams >&
      wj_lidar() const;

  // repeated .wj.Region regions = 2;
  int regions_size() const;
  private:
  int _internal_regions_size() const;
  public:
  void clear_regions();
  ::wj::Region* mutable_regions(int index);
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::wj::Region >*
      mutable_regions();
  private:
  const ::wj::Region& _internal_regions(int index) const;
  ::wj::Region* _internal_add_regions();
  public:
  const ::wj::Region& regions(int index) const;
  ::wj::Region* add_regions();
  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::wj::Region >&
      regions() 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 plc_ip_address = 5 [default = "192.168.0.1"];
  bool has_plc_ip_address() const;
  private:
  bool _internal_has_plc_ip_address() const;
  public:
  void clear_plc_ip_address();
  const std::string& plc_ip_address() const;
  void set_plc_ip_address(const std::string& value);
  void set_plc_ip_address(std::string&& value);
  void set_plc_ip_address(const char* value);
  void set_plc_ip_address(const char* value, size_t size);
  std::string* mutable_plc_ip_address();
  std::string* release_plc_ip_address();
  void set_allocated_plc_ip_address(std::string* plc_ip_address);
  private:
  const std::string& _internal_plc_ip_address() const;
  void _internal_set_plc_ip_address(const std::string& value);
  std::string* _internal_mutable_plc_ip_address();
  public:

  // required bool distribution_mode = 6 [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:wj.wjManagerParams)
 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< ::wj::wjLidarParams > wj_lidar_;
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::wj::Region > regions_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr fence_data_path_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr fence_log_path_;
  public:
  static ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<std::string> _i_give_permission_to_break_this_code_default_plc_ip_address_;
  private:
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr plc_ip_address_;
  bool distribution_mode_;
  friend struct ::TableStruct_wj_5flidar_5fconf_2eproto;
};
// -------------------------------------------------------------------

class CalibParameter PROTOBUF_FINAL :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:wj.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 =
    1;

  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 "wj.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_wj_5flidar_5fconf_2eproto);
    return ::descriptor_table_wj_5flidar_5fconf_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:wj.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_wj_5flidar_5fconf_2eproto;
};
// -------------------------------------------------------------------

class lidarExtrinsic PROTOBUF_FINAL :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:wj.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 =
    2;

  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 "wj.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_wj_5flidar_5fconf_2eproto);
    return ::descriptor_table_wj_5flidar_5fconf_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

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

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

  enum : int {
    kCalibFieldNumber = 2,
    kLidarIdFieldNumber = 1,
  };
  // optional .wj.CalibParameter calib = 2;
  bool has_calib() const;
  private:
  bool _internal_has_calib() const;
  public:
  void clear_calib();
  const ::wj::CalibParameter& calib() const;
  ::wj::CalibParameter* release_calib();
  ::wj::CalibParameter* mutable_calib();
  void set_allocated_calib(::wj::CalibParameter* calib);
  private:
  const ::wj::CalibParameter& _internal_calib() const;
  ::wj::CalibParameter* _internal_mutable_calib();
  public:
  void unsafe_arena_set_allocated_calib(
      ::wj::CalibParameter* calib);
  ::wj::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:wj.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_;
  ::wj::CalibParameter* calib_;
  ::PROTOBUF_NAMESPACE_ID::int32 lidar_id_;
  friend struct ::TableStruct_wj_5flidar_5fconf_2eproto;
};
// -------------------------------------------------------------------

class Region PROTOBUF_FINAL :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:wj.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 =
    3;

  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 "wj.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_wj_5flidar_5fconf_2eproto);
    return ::descriptor_table_wj_5flidar_5fconf_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,
    kCarMinWidthFieldNumber = 17,
    kCarMaxWidthFieldNumber = 18,
    kCarMinWheelbaseFieldNumber = 19,
    kCarMaxWheelbaseFieldNumber = 20,
    kTurnplateAngleLimitAntiClockwiseFieldNumber = 21,
    kTurnplateAngleLimitClockwiseFieldNumber = 22,
  };
  // repeated .wj.lidarExtrinsic lidar_exts = 8;
  int lidar_exts_size() const;
  private:
  int _internal_lidar_exts_size() const;
  public:
  void clear_lidar_exts();
  ::wj::lidarExtrinsic* mutable_lidar_exts(int index);
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::wj::lidarExtrinsic >*
      mutable_lidar_exts();
  private:
  const ::wj::lidarExtrinsic& _internal_lidar_exts(int index) const;
  ::wj::lidarExtrinsic* _internal_add_lidar_exts();
  public:
  const ::wj::lidarExtrinsic& lidar_exts(int index) const;
  ::wj::lidarExtrinsic* add_lidar_exts();
  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::wj::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 car_min_width = 17;
  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 = 18;
  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 = 19;
  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 = 20;
  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 = 21;
  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 = 22;
  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:wj.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< ::wj::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 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_wj_5flidar_5fconf_2eproto;
};
// -------------------------------------------------------------------

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

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

  inline wjLidarParams& operator=(const wjLidarParams& from) {
    CopyFrom(from);
    return *this;
  }
  inline wjLidarParams& operator=(wjLidarParams&& 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 wjLidarParams& default_instance();

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

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

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

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

  wjLidarParams* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<wjLidarParams>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const wjLidarParams& from);
  void MergeFrom(const wjLidarParams& 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(wjLidarParams* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "wj.wjLidarParams";
  }
  protected:
  explicit wjLidarParams(::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_wj_5flidar_5fconf_2eproto);
    return ::descriptor_table_wj_5flidar_5fconf_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

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

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

  enum : int {
    kNetConfigFieldNumber = 7,
    kTransformFieldNumber = 8,
    kScanLimitFieldNumber = 9,
    kRangeMinFieldNumber = 5,
    kLidarIdFieldNumber = 10,
    kRangeMaxFieldNumber = 6,
    kAngleMinFieldNumber = 1,
    kAngleMaxFieldNumber = 2,
    kAngleIncrementFieldNumber = 3,
    kTimeIncrementFieldNumber = 4,
  };
  // required .wj.netConfig net_config = 7;
  bool has_net_config() const;
  private:
  bool _internal_has_net_config() const;
  public:
  void clear_net_config();
  const ::wj::netConfig& net_config() const;
  ::wj::netConfig* release_net_config();
  ::wj::netConfig* mutable_net_config();
  void set_allocated_net_config(::wj::netConfig* net_config);
  private:
  const ::wj::netConfig& _internal_net_config() const;
  ::wj::netConfig* _internal_mutable_net_config();
  public:
  void unsafe_arena_set_allocated_net_config(
      ::wj::netConfig* net_config);
  ::wj::netConfig* unsafe_arena_release_net_config();

  // required .wj.Transform2d transform = 8;
  bool has_transform() const;
  private:
  bool _internal_has_transform() const;
  public:
  void clear_transform();
  const ::wj::Transform2d& transform() const;
  ::wj::Transform2d* release_transform();
  ::wj::Transform2d* mutable_transform();
  void set_allocated_transform(::wj::Transform2d* transform);
  private:
  const ::wj::Transform2d& _internal_transform() const;
  ::wj::Transform2d* _internal_mutable_transform();
  public:
  void unsafe_arena_set_allocated_transform(
      ::wj::Transform2d* transform);
  ::wj::Transform2d* unsafe_arena_release_transform();

  // required .wj.scanLimit scan_limit = 9;
  bool has_scan_limit() const;
  private:
  bool _internal_has_scan_limit() const;
  public:
  void clear_scan_limit();
  const ::wj::scanLimit& scan_limit() const;
  ::wj::scanLimit* release_scan_limit();
  ::wj::scanLimit* mutable_scan_limit();
  void set_allocated_scan_limit(::wj::scanLimit* scan_limit);
  private:
  const ::wj::scanLimit& _internal_scan_limit() const;
  ::wj::scanLimit* _internal_mutable_scan_limit();
  public:
  void unsafe_arena_set_allocated_scan_limit(
      ::wj::scanLimit* scan_limit);
  ::wj::scanLimit* unsafe_arena_release_scan_limit();

  // optional int32 range_min = 5 [default = 0];
  bool has_range_min() const;
  private:
  bool _internal_has_range_min() const;
  public:
  void clear_range_min();
  ::PROTOBUF_NAMESPACE_ID::int32 range_min() const;
  void set_range_min(::PROTOBUF_NAMESPACE_ID::int32 value);
  private:
  ::PROTOBUF_NAMESPACE_ID::int32 _internal_range_min() const;
  void _internal_set_range_min(::PROTOBUF_NAMESPACE_ID::int32 value);
  public:

  // required int32 lidar_id = 10 [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 range_max = 6 [default = 30];
  bool has_range_max() const;
  private:
  bool _internal_has_range_max() const;
  public:
  void clear_range_max();
  ::PROTOBUF_NAMESPACE_ID::int32 range_max() const;
  void set_range_max(::PROTOBUF_NAMESPACE_ID::int32 value);
  private:
  ::PROTOBUF_NAMESPACE_ID::int32 _internal_range_max() const;
  void _internal_set_range_max(::PROTOBUF_NAMESPACE_ID::int32 value);
  public:

  // optional float angle_min = 1 [default = -2.3561945];
  bool has_angle_min() const;
  private:
  bool _internal_has_angle_min() const;
  public:
  void clear_angle_min();
  float angle_min() const;
  void set_angle_min(float value);
  private:
  float _internal_angle_min() const;
  void _internal_set_angle_min(float value);
  public:

  // optional float angle_max = 2 [default = 2.3561945];
  bool has_angle_max() const;
  private:
  bool _internal_has_angle_max() const;
  public:
  void clear_angle_max();
  float angle_max() const;
  void set_angle_max(float value);
  private:
  float _internal_angle_max() const;
  void _internal_set_angle_max(float value);
  public:

  // optional float angle_increment = 3 [default = 0.00582];
  bool has_angle_increment() const;
  private:
  bool _internal_has_angle_increment() const;
  public:
  void clear_angle_increment();
  float angle_increment() const;
  void set_angle_increment(float value);
  private:
  float _internal_angle_increment() const;
  void _internal_set_angle_increment(float value);
  public:

  // optional float time_increment = 4 [default = 6.2e-05];
  bool has_time_increment() const;
  private:
  bool _internal_has_time_increment() const;
  public:
  void clear_time_increment();
  float time_increment() const;
  void set_time_increment(float value);
  private:
  float _internal_time_increment() const;
  void _internal_set_time_increment(float value);
  public:

  // @@protoc_insertion_point(class_scope:wj.wjLidarParams)
 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_;
  ::wj::netConfig* net_config_;
  ::wj::Transform2d* transform_;
  ::wj::scanLimit* scan_limit_;
  ::PROTOBUF_NAMESPACE_ID::int32 range_min_;
  ::PROTOBUF_NAMESPACE_ID::int32 lidar_id_;
  ::PROTOBUF_NAMESPACE_ID::int32 range_max_;
  float angle_min_;
  float angle_max_;
  float angle_increment_;
  float time_increment_;
  friend struct ::TableStruct_wj_5flidar_5fconf_2eproto;
};
// -------------------------------------------------------------------

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

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

  inline netConfig& operator=(const netConfig& from) {
    CopyFrom(from);
    return *this;
  }
  inline netConfig& operator=(netConfig&& 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 netConfig& default_instance();

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

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

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

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

  netConfig* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<netConfig>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const netConfig& from);
  void MergeFrom(const netConfig& 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(netConfig* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "wj.netConfig";
  }
  protected:
  explicit netConfig(::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_wj_5flidar_5fconf_2eproto);
    return ::descriptor_table_wj_5flidar_5fconf_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

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

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

  enum : int {
    kIpAddressFieldNumber = 1,
    kPortFieldNumber = 2,
  };
  // optional string ip_address = 1 [default = ""];
  bool has_ip_address() const;
  private:
  bool _internal_has_ip_address() const;
  public:
  void clear_ip_address();
  const std::string& ip_address() const;
  void set_ip_address(const std::string& value);
  void set_ip_address(std::string&& value);
  void set_ip_address(const char* value);
  void set_ip_address(const char* value, size_t size);
  std::string* mutable_ip_address();
  std::string* release_ip_address();
  void set_allocated_ip_address(std::string* ip_address);
  private:
  const std::string& _internal_ip_address() const;
  void _internal_set_ip_address(const std::string& value);
  std::string* _internal_mutable_ip_address();
  public:

  // optional int32 port = 2 [default = 8000];
  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:

  // @@protoc_insertion_point(class_scope:wj.netConfig)
 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::internal::ArenaStringPtr ip_address_;
  ::PROTOBUF_NAMESPACE_ID::int32 port_;
  friend struct ::TableStruct_wj_5flidar_5fconf_2eproto;
};
// -------------------------------------------------------------------

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

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

  inline Transform2d& operator=(const Transform2d& from) {
    CopyFrom(from);
    return *this;
  }
  inline Transform2d& operator=(Transform2d&& 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 Transform2d& default_instance();

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

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

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

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

  Transform2d* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<Transform2d>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const Transform2d& from);
  void MergeFrom(const Transform2d& 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(Transform2d* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "wj.Transform2d";
  }
  protected:
  explicit Transform2d(::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_wj_5flidar_5fconf_2eproto);
    return ::descriptor_table_wj_5flidar_5fconf_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

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

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

  enum : int {
    kM01FieldNumber = 2,
    kM02FieldNumber = 3,
    kM10FieldNumber = 4,
    kM12FieldNumber = 6,
    kM00FieldNumber = 1,
    kM11FieldNumber = 5,
  };
  // optional float m01 = 2 [default = 0];
  bool has_m01() const;
  private:
  bool _internal_has_m01() const;
  public:
  void clear_m01();
  float m01() const;
  void set_m01(float value);
  private:
  float _internal_m01() const;
  void _internal_set_m01(float value);
  public:

  // optional float m02 = 3 [default = 0];
  bool has_m02() const;
  private:
  bool _internal_has_m02() const;
  public:
  void clear_m02();
  float m02() const;
  void set_m02(float value);
  private:
  float _internal_m02() const;
  void _internal_set_m02(float value);
  public:

  // optional float m10 = 4 [default = 0];
  bool has_m10() const;
  private:
  bool _internal_has_m10() const;
  public:
  void clear_m10();
  float m10() const;
  void set_m10(float value);
  private:
  float _internal_m10() const;
  void _internal_set_m10(float value);
  public:

  // optional float m12 = 6 [default = 0];
  bool has_m12() const;
  private:
  bool _internal_has_m12() const;
  public:
  void clear_m12();
  float m12() const;
  void set_m12(float value);
  private:
  float _internal_m12() const;
  void _internal_set_m12(float value);
  public:

  // optional float m00 = 1 [default = 1];
  bool has_m00() const;
  private:
  bool _internal_has_m00() const;
  public:
  void clear_m00();
  float m00() const;
  void set_m00(float value);
  private:
  float _internal_m00() const;
  void _internal_set_m00(float value);
  public:

  // optional float m11 = 5 [default = 1];
  bool has_m11() const;
  private:
  bool _internal_has_m11() const;
  public:
  void clear_m11();
  float m11() const;
  void set_m11(float value);
  private:
  float _internal_m11() const;
  void _internal_set_m11(float value);
  public:

  // @@protoc_insertion_point(class_scope:wj.Transform2d)
 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 m01_;
  float m02_;
  float m10_;
  float m12_;
  float m00_;
  float m11_;
  friend struct ::TableStruct_wj_5flidar_5fconf_2eproto;
};
// -------------------------------------------------------------------

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

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

  inline scanLimit& operator=(const scanLimit& from) {
    CopyFrom(from);
    return *this;
  }
  inline scanLimit& operator=(scanLimit&& 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 scanLimit& default_instance();

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

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

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

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

  scanLimit* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
    return CreateMaybeMessage<scanLimit>(arena);
  }
  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
  void CopyFrom(const scanLimit& from);
  void MergeFrom(const scanLimit& 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(scanLimit* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "wj.scanLimit";
  }
  protected:
  explicit scanLimit(::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_wj_5flidar_5fconf_2eproto);
    return ::descriptor_table_wj_5flidar_5fconf_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

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

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

  enum : int {
    kMaxyFieldNumber = 5,
    kDistLimitFieldNumber = 1,
    kMinxFieldNumber = 2,
    kMaxxFieldNumber = 3,
    kMinyFieldNumber = 4,
  };
  // optional float maxy = 5 [default = 3.5];
  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:

  // optional float dist_limit = 1 [default = 8];
  bool has_dist_limit() const;
  private:
  bool _internal_has_dist_limit() const;
  public:
  void clear_dist_limit();
  float dist_limit() const;
  void set_dist_limit(float value);
  private:
  float _internal_dist_limit() const;
  void _internal_set_dist_limit(float value);
  public:

  // optional float minx = 2 [default = -6];
  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:

  // optional float maxx = 3 [default = -0.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:

  // optional float miny = 4 [default = -3.5];
  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:

  // @@protoc_insertion_point(class_scope:wj.scanLimit)
 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 maxy_;
  float dist_limit_;
  float minx_;
  float maxx_;
  float miny_;
  friend struct ::TableStruct_wj_5flidar_5fconf_2eproto;
};
// ===================================================================


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

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

// repeated .wj.wjLidarParams wj_lidar = 1;
inline int wjManagerParams::_internal_wj_lidar_size() const {
  return wj_lidar_.size();
}
inline int wjManagerParams::wj_lidar_size() const {
  return _internal_wj_lidar_size();
}
inline void wjManagerParams::clear_wj_lidar() {
  wj_lidar_.Clear();
}
inline ::wj::wjLidarParams* wjManagerParams::mutable_wj_lidar(int index) {
  // @@protoc_insertion_point(field_mutable:wj.wjManagerParams.wj_lidar)
  return wj_lidar_.Mutable(index);
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::wj::wjLidarParams >*
wjManagerParams::mutable_wj_lidar() {
  // @@protoc_insertion_point(field_mutable_list:wj.wjManagerParams.wj_lidar)
  return &wj_lidar_;
}
inline const ::wj::wjLidarParams& wjManagerParams::_internal_wj_lidar(int index) const {
  return wj_lidar_.Get(index);
}
inline const ::wj::wjLidarParams& wjManagerParams::wj_lidar(int index) const {
  // @@protoc_insertion_point(field_get:wj.wjManagerParams.wj_lidar)
  return _internal_wj_lidar(index);
}
inline ::wj::wjLidarParams* wjManagerParams::_internal_add_wj_lidar() {
  return wj_lidar_.Add();
}
inline ::wj::wjLidarParams* wjManagerParams::add_wj_lidar() {
  // @@protoc_insertion_point(field_add:wj.wjManagerParams.wj_lidar)
  return _internal_add_wj_lidar();
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::wj::wjLidarParams >&
wjManagerParams::wj_lidar() const {
  // @@protoc_insertion_point(field_list:wj.wjManagerParams.wj_lidar)
  return wj_lidar_;
}

// repeated .wj.Region regions = 2;
inline int wjManagerParams::_internal_regions_size() const {
  return regions_.size();
}
inline int wjManagerParams::regions_size() const {
  return _internal_regions_size();
}
inline void wjManagerParams::clear_regions() {
  regions_.Clear();
}
inline ::wj::Region* wjManagerParams::mutable_regions(int index) {
  // @@protoc_insertion_point(field_mutable:wj.wjManagerParams.regions)
  return regions_.Mutable(index);
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::wj::Region >*
wjManagerParams::mutable_regions() {
  // @@protoc_insertion_point(field_mutable_list:wj.wjManagerParams.regions)
  return &regions_;
}
inline const ::wj::Region& wjManagerParams::_internal_regions(int index) const {
  return regions_.Get(index);
}
inline const ::wj::Region& wjManagerParams::regions(int index) const {
  // @@protoc_insertion_point(field_get:wj.wjManagerParams.regions)
  return _internal_regions(index);
}
inline ::wj::Region* wjManagerParams::_internal_add_regions() {
  return regions_.Add();
}
inline ::wj::Region* wjManagerParams::add_regions() {
  // @@protoc_insertion_point(field_add:wj.wjManagerParams.regions)
  return _internal_add_regions();
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::wj::Region >&
wjManagerParams::regions() const {
  // @@protoc_insertion_point(field_list:wj.wjManagerParams.regions)
  return regions_;
}

// optional string fence_data_path = 3 [default = ""];
inline bool wjManagerParams::_internal_has_fence_data_path() const {
  bool value = (_has_bits_[0] & 0x00000001u) != 0;
  return value;
}
inline bool wjManagerParams::has_fence_data_path() const {
  return _internal_has_fence_data_path();
}
inline void wjManagerParams::clear_fence_data_path() {
  fence_data_path_.ClearToEmpty(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
  _has_bits_[0] &= ~0x00000001u;
}
inline const std::string& wjManagerParams::fence_data_path() const {
  // @@protoc_insertion_point(field_get:wj.wjManagerParams.fence_data_path)
  return _internal_fence_data_path();
}
inline void wjManagerParams::set_fence_data_path(const std::string& value) {
  _internal_set_fence_data_path(value);
  // @@protoc_insertion_point(field_set:wj.wjManagerParams.fence_data_path)
}
inline std::string* wjManagerParams::mutable_fence_data_path() {
  // @@protoc_insertion_point(field_mutable:wj.wjManagerParams.fence_data_path)
  return _internal_mutable_fence_data_path();
}
inline const std::string& wjManagerParams::_internal_fence_data_path() const {
  return fence_data_path_.Get();
}
inline void wjManagerParams::_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 wjManagerParams::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:wj.wjManagerParams.fence_data_path)
}
inline void wjManagerParams::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:wj.wjManagerParams.fence_data_path)
}
inline void wjManagerParams::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:wj.wjManagerParams.fence_data_path)
}
inline std::string* wjManagerParams::_internal_mutable_fence_data_path() {
  _has_bits_[0] |= 0x00000001u;
  return fence_data_path_.Mutable(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline std::string* wjManagerParams::release_fence_data_path() {
  // @@protoc_insertion_point(field_release:wj.wjManagerParams.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 wjManagerParams::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:wj.wjManagerParams.fence_data_path)
}

// optional string fence_log_path = 4 [default = ""];
inline bool wjManagerParams::_internal_has_fence_log_path() const {
  bool value = (_has_bits_[0] & 0x00000002u) != 0;
  return value;
}
inline bool wjManagerParams::has_fence_log_path() const {
  return _internal_has_fence_log_path();
}
inline void wjManagerParams::clear_fence_log_path() {
  fence_log_path_.ClearToEmpty(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
  _has_bits_[0] &= ~0x00000002u;
}
inline const std::string& wjManagerParams::fence_log_path() const {
  // @@protoc_insertion_point(field_get:wj.wjManagerParams.fence_log_path)
  return _internal_fence_log_path();
}
inline void wjManagerParams::set_fence_log_path(const std::string& value) {
  _internal_set_fence_log_path(value);
  // @@protoc_insertion_point(field_set:wj.wjManagerParams.fence_log_path)
}
inline std::string* wjManagerParams::mutable_fence_log_path() {
  // @@protoc_insertion_point(field_mutable:wj.wjManagerParams.fence_log_path)
  return _internal_mutable_fence_log_path();
}
inline const std::string& wjManagerParams::_internal_fence_log_path() const {
  return fence_log_path_.Get();
}
inline void wjManagerParams::_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 wjManagerParams::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:wj.wjManagerParams.fence_log_path)
}
inline void wjManagerParams::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:wj.wjManagerParams.fence_log_path)
}
inline void wjManagerParams::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:wj.wjManagerParams.fence_log_path)
}
inline std::string* wjManagerParams::_internal_mutable_fence_log_path() {
  _has_bits_[0] |= 0x00000002u;
  return fence_log_path_.Mutable(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline std::string* wjManagerParams::release_fence_log_path() {
  // @@protoc_insertion_point(field_release:wj.wjManagerParams.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 wjManagerParams::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:wj.wjManagerParams.fence_log_path)
}

// optional string plc_ip_address = 5 [default = "192.168.0.1"];
inline bool wjManagerParams::_internal_has_plc_ip_address() const {
  bool value = (_has_bits_[0] & 0x00000004u) != 0;
  return value;
}
inline bool wjManagerParams::has_plc_ip_address() const {
  return _internal_has_plc_ip_address();
}
inline void wjManagerParams::clear_plc_ip_address() {
  plc_ip_address_.ClearToDefault(&::wj::wjManagerParams::_i_give_permission_to_break_this_code_default_plc_ip_address_.get(), GetArena());
  _has_bits_[0] &= ~0x00000004u;
}
inline const std::string& wjManagerParams::plc_ip_address() const {
  // @@protoc_insertion_point(field_get:wj.wjManagerParams.plc_ip_address)
  return _internal_plc_ip_address();
}
inline void wjManagerParams::set_plc_ip_address(const std::string& value) {
  _internal_set_plc_ip_address(value);
  // @@protoc_insertion_point(field_set:wj.wjManagerParams.plc_ip_address)
}
inline std::string* wjManagerParams::mutable_plc_ip_address() {
  // @@protoc_insertion_point(field_mutable:wj.wjManagerParams.plc_ip_address)
  return _internal_mutable_plc_ip_address();
}
inline const std::string& wjManagerParams::_internal_plc_ip_address() const {
  return plc_ip_address_.Get();
}
inline void wjManagerParams::_internal_set_plc_ip_address(const std::string& value) {
  _has_bits_[0] |= 0x00000004u;
  plc_ip_address_.Set(&::wj::wjManagerParams::_i_give_permission_to_break_this_code_default_plc_ip_address_.get(), value, GetArena());
}
inline void wjManagerParams::set_plc_ip_address(std::string&& value) {
  _has_bits_[0] |= 0x00000004u;
  plc_ip_address_.Set(
    &::wj::wjManagerParams::_i_give_permission_to_break_this_code_default_plc_ip_address_.get(), ::std::move(value), GetArena());
  // @@protoc_insertion_point(field_set_rvalue:wj.wjManagerParams.plc_ip_address)
}
inline void wjManagerParams::set_plc_ip_address(const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  _has_bits_[0] |= 0x00000004u;
  plc_ip_address_.Set(&::wj::wjManagerParams::_i_give_permission_to_break_this_code_default_plc_ip_address_.get(), ::std::string(value),
              GetArena());
  // @@protoc_insertion_point(field_set_char:wj.wjManagerParams.plc_ip_address)
}
inline void wjManagerParams::set_plc_ip_address(const char* value,
    size_t size) {
  _has_bits_[0] |= 0x00000004u;
  plc_ip_address_.Set(&::wj::wjManagerParams::_i_give_permission_to_break_this_code_default_plc_ip_address_.get(), ::std::string(
      reinterpret_cast<const char*>(value), size), GetArena());
  // @@protoc_insertion_point(field_set_pointer:wj.wjManagerParams.plc_ip_address)
}
inline std::string* wjManagerParams::_internal_mutable_plc_ip_address() {
  _has_bits_[0] |= 0x00000004u;
  return plc_ip_address_.Mutable(&::wj::wjManagerParams::_i_give_permission_to_break_this_code_default_plc_ip_address_.get(), GetArena());
}
inline std::string* wjManagerParams::release_plc_ip_address() {
  // @@protoc_insertion_point(field_release:wj.wjManagerParams.plc_ip_address)
  if (!_internal_has_plc_ip_address()) {
    return nullptr;
  }
  _has_bits_[0] &= ~0x00000004u;
  return plc_ip_address_.ReleaseNonDefault(&::wj::wjManagerParams::_i_give_permission_to_break_this_code_default_plc_ip_address_.get(), GetArena());
}
inline void wjManagerParams::set_allocated_plc_ip_address(std::string* plc_ip_address) {
  if (plc_ip_address != nullptr) {
    _has_bits_[0] |= 0x00000004u;
  } else {
    _has_bits_[0] &= ~0x00000004u;
  }
  plc_ip_address_.SetAllocated(&::wj::wjManagerParams::_i_give_permission_to_break_this_code_default_plc_ip_address_.get(), plc_ip_address,
      GetArena());
  // @@protoc_insertion_point(field_set_allocated:wj.wjManagerParams.plc_ip_address)
}

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

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

// 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:wj.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:wj.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:wj.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:wj.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:wj.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:wj.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:wj.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:wj.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:wj.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:wj.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:wj.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:wj.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:wj.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:wj.lidarExtrinsic.lidar_id)
}

// optional .wj.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 ::wj::CalibParameter& lidarExtrinsic::_internal_calib() const {
  const ::wj::CalibParameter* p = calib_;
  return p != nullptr ? *p : *reinterpret_cast<const ::wj::CalibParameter*>(
      &::wj::_CalibParameter_default_instance_);
}
inline const ::wj::CalibParameter& lidarExtrinsic::calib() const {
  // @@protoc_insertion_point(field_get:wj.lidarExtrinsic.calib)
  return _internal_calib();
}
inline void lidarExtrinsic::unsafe_arena_set_allocated_calib(
    ::wj::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:wj.lidarExtrinsic.calib)
}
inline ::wj::CalibParameter* lidarExtrinsic::release_calib() {
  _has_bits_[0] &= ~0x00000001u;
  ::wj::CalibParameter* temp = calib_;
  calib_ = nullptr;
  if (GetArena() != nullptr) {
    temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  }
  return temp;
}
inline ::wj::CalibParameter* lidarExtrinsic::unsafe_arena_release_calib() {
  // @@protoc_insertion_point(field_release:wj.lidarExtrinsic.calib)
  _has_bits_[0] &= ~0x00000001u;
  ::wj::CalibParameter* temp = calib_;
  calib_ = nullptr;
  return temp;
}
inline ::wj::CalibParameter* lidarExtrinsic::_internal_mutable_calib() {
  _has_bits_[0] |= 0x00000001u;
  if (calib_ == nullptr) {
    auto* p = CreateMaybeMessage<::wj::CalibParameter>(GetArena());
    calib_ = p;
  }
  return calib_;
}
inline ::wj::CalibParameter* lidarExtrinsic::mutable_calib() {
  // @@protoc_insertion_point(field_mutable:wj.lidarExtrinsic.calib)
  return _internal_mutable_calib();
}
inline void lidarExtrinsic::set_allocated_calib(::wj::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:wj.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:wj.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:wj.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:wj.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:wj.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:wj.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:wj.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:wj.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:wj.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:wj.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:wj.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:wj.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:wj.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:wj.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:wj.Region.region_id)
}

// repeated .wj.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 ::wj::lidarExtrinsic* Region::mutable_lidar_exts(int index) {
  // @@protoc_insertion_point(field_mutable:wj.Region.lidar_exts)
  return lidar_exts_.Mutable(index);
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::wj::lidarExtrinsic >*
Region::mutable_lidar_exts() {
  // @@protoc_insertion_point(field_mutable_list:wj.Region.lidar_exts)
  return &lidar_exts_;
}
inline const ::wj::lidarExtrinsic& Region::_internal_lidar_exts(int index) const {
  return lidar_exts_.Get(index);
}
inline const ::wj::lidarExtrinsic& Region::lidar_exts(int index) const {
  // @@protoc_insertion_point(field_get:wj.Region.lidar_exts)
  return _internal_lidar_exts(index);
}
inline ::wj::lidarExtrinsic* Region::_internal_add_lidar_exts() {
  return lidar_exts_.Add();
}
inline ::wj::lidarExtrinsic* Region::add_lidar_exts() {
  // @@protoc_insertion_point(field_add:wj.Region.lidar_exts)
  return _internal_add_lidar_exts();
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::wj::lidarExtrinsic >&
Region::lidar_exts() const {
  // @@protoc_insertion_point(field_list:wj.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:wj.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:wj.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:wj.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:wj.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:wj.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:wj.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:wj.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:wj.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:wj.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:wj.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:wj.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:wj.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:wj.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:wj.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:wj.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:wj.Region.plc_border_miny)
}

// required float car_min_width = 17;
inline bool Region::_internal_has_car_min_width() const {
  bool value = (_has_bits_[0] & 0x00008000u) != 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] &= ~0x00008000u;
}
inline float Region::_internal_car_min_width() const {
  return car_min_width_;
}
inline float Region::car_min_width() const {
  // @@protoc_insertion_point(field_get:wj.Region.car_min_width)
  return _internal_car_min_width();
}
inline void Region::_internal_set_car_min_width(float value) {
  _has_bits_[0] |= 0x00008000u;
  car_min_width_ = value;
}
inline void Region::set_car_min_width(float value) {
  _internal_set_car_min_width(value);
  // @@protoc_insertion_point(field_set:wj.Region.car_min_width)
}

// required float car_max_width = 18;
inline bool Region::_internal_has_car_max_width() const {
  bool value = (_has_bits_[0] & 0x00010000u) != 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] &= ~0x00010000u;
}
inline float Region::_internal_car_max_width() const {
  return car_max_width_;
}
inline float Region::car_max_width() const {
  // @@protoc_insertion_point(field_get:wj.Region.car_max_width)
  return _internal_car_max_width();
}
inline void Region::_internal_set_car_max_width(float value) {
  _has_bits_[0] |= 0x00010000u;
  car_max_width_ = value;
}
inline void Region::set_car_max_width(float value) {
  _internal_set_car_max_width(value);
  // @@protoc_insertion_point(field_set:wj.Region.car_max_width)
}

// required float car_min_wheelbase = 19;
inline bool Region::_internal_has_car_min_wheelbase() const {
  bool value = (_has_bits_[0] & 0x00020000u) != 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] &= ~0x00020000u;
}
inline float Region::_internal_car_min_wheelbase() const {
  return car_min_wheelbase_;
}
inline float Region::car_min_wheelbase() const {
  // @@protoc_insertion_point(field_get:wj.Region.car_min_wheelbase)
  return _internal_car_min_wheelbase();
}
inline void Region::_internal_set_car_min_wheelbase(float value) {
  _has_bits_[0] |= 0x00020000u;
  car_min_wheelbase_ = value;
}
inline void Region::set_car_min_wheelbase(float value) {
  _internal_set_car_min_wheelbase(value);
  // @@protoc_insertion_point(field_set:wj.Region.car_min_wheelbase)
}

// required float car_max_wheelbase = 20;
inline bool Region::_internal_has_car_max_wheelbase() const {
  bool value = (_has_bits_[0] & 0x00040000u) != 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] &= ~0x00040000u;
}
inline float Region::_internal_car_max_wheelbase() const {
  return car_max_wheelbase_;
}
inline float Region::car_max_wheelbase() const {
  // @@protoc_insertion_point(field_get:wj.Region.car_max_wheelbase)
  return _internal_car_max_wheelbase();
}
inline void Region::_internal_set_car_max_wheelbase(float value) {
  _has_bits_[0] |= 0x00040000u;
  car_max_wheelbase_ = value;
}
inline void Region::set_car_max_wheelbase(float value) {
  _internal_set_car_max_wheelbase(value);
  // @@protoc_insertion_point(field_set:wj.Region.car_max_wheelbase)
}

// required float turnplate_angle_limit_anti_clockwise = 21;
inline bool Region::_internal_has_turnplate_angle_limit_anti_clockwise() const {
  bool value = (_has_bits_[0] & 0x00080000u) != 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] &= ~0x00080000u;
}
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:wj.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] |= 0x00080000u;
  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:wj.Region.turnplate_angle_limit_anti_clockwise)
}

// required float turnplate_angle_limit_clockwise = 22;
inline bool Region::_internal_has_turnplate_angle_limit_clockwise() const {
  bool value = (_has_bits_[0] & 0x00100000u) != 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] &= ~0x00100000u;
}
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:wj.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] |= 0x00100000u;
  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:wj.Region.turnplate_angle_limit_clockwise)
}

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

// wjLidarParams

// optional float angle_min = 1 [default = -2.3561945];
inline bool wjLidarParams::_internal_has_angle_min() const {
  bool value = (_has_bits_[0] & 0x00000040u) != 0;
  return value;
}
inline bool wjLidarParams::has_angle_min() const {
  return _internal_has_angle_min();
}
inline void wjLidarParams::clear_angle_min() {
  angle_min_ = -2.3561945f;
  _has_bits_[0] &= ~0x00000040u;
}
inline float wjLidarParams::_internal_angle_min() const {
  return angle_min_;
}
inline float wjLidarParams::angle_min() const {
  // @@protoc_insertion_point(field_get:wj.wjLidarParams.angle_min)
  return _internal_angle_min();
}
inline void wjLidarParams::_internal_set_angle_min(float value) {
  _has_bits_[0] |= 0x00000040u;
  angle_min_ = value;
}
inline void wjLidarParams::set_angle_min(float value) {
  _internal_set_angle_min(value);
  // @@protoc_insertion_point(field_set:wj.wjLidarParams.angle_min)
}

// optional float angle_max = 2 [default = 2.3561945];
inline bool wjLidarParams::_internal_has_angle_max() const {
  bool value = (_has_bits_[0] & 0x00000080u) != 0;
  return value;
}
inline bool wjLidarParams::has_angle_max() const {
  return _internal_has_angle_max();
}
inline void wjLidarParams::clear_angle_max() {
  angle_max_ = 2.3561945f;
  _has_bits_[0] &= ~0x00000080u;
}
inline float wjLidarParams::_internal_angle_max() const {
  return angle_max_;
}
inline float wjLidarParams::angle_max() const {
  // @@protoc_insertion_point(field_get:wj.wjLidarParams.angle_max)
  return _internal_angle_max();
}
inline void wjLidarParams::_internal_set_angle_max(float value) {
  _has_bits_[0] |= 0x00000080u;
  angle_max_ = value;
}
inline void wjLidarParams::set_angle_max(float value) {
  _internal_set_angle_max(value);
  // @@protoc_insertion_point(field_set:wj.wjLidarParams.angle_max)
}

// optional float angle_increment = 3 [default = 0.00582];
inline bool wjLidarParams::_internal_has_angle_increment() const {
  bool value = (_has_bits_[0] & 0x00000100u) != 0;
  return value;
}
inline bool wjLidarParams::has_angle_increment() const {
  return _internal_has_angle_increment();
}
inline void wjLidarParams::clear_angle_increment() {
  angle_increment_ = 0.00582f;
  _has_bits_[0] &= ~0x00000100u;
}
inline float wjLidarParams::_internal_angle_increment() const {
  return angle_increment_;
}
inline float wjLidarParams::angle_increment() const {
  // @@protoc_insertion_point(field_get:wj.wjLidarParams.angle_increment)
  return _internal_angle_increment();
}
inline void wjLidarParams::_internal_set_angle_increment(float value) {
  _has_bits_[0] |= 0x00000100u;
  angle_increment_ = value;
}
inline void wjLidarParams::set_angle_increment(float value) {
  _internal_set_angle_increment(value);
  // @@protoc_insertion_point(field_set:wj.wjLidarParams.angle_increment)
}

// optional float time_increment = 4 [default = 6.2e-05];
inline bool wjLidarParams::_internal_has_time_increment() const {
  bool value = (_has_bits_[0] & 0x00000200u) != 0;
  return value;
}
inline bool wjLidarParams::has_time_increment() const {
  return _internal_has_time_increment();
}
inline void wjLidarParams::clear_time_increment() {
  time_increment_ = 6.2e-05f;
  _has_bits_[0] &= ~0x00000200u;
}
inline float wjLidarParams::_internal_time_increment() const {
  return time_increment_;
}
inline float wjLidarParams::time_increment() const {
  // @@protoc_insertion_point(field_get:wj.wjLidarParams.time_increment)
  return _internal_time_increment();
}
inline void wjLidarParams::_internal_set_time_increment(float value) {
  _has_bits_[0] |= 0x00000200u;
  time_increment_ = value;
}
inline void wjLidarParams::set_time_increment(float value) {
  _internal_set_time_increment(value);
  // @@protoc_insertion_point(field_set:wj.wjLidarParams.time_increment)
}

// optional int32 range_min = 5 [default = 0];
inline bool wjLidarParams::_internal_has_range_min() const {
  bool value = (_has_bits_[0] & 0x00000008u) != 0;
  return value;
}
inline bool wjLidarParams::has_range_min() const {
  return _internal_has_range_min();
}
inline void wjLidarParams::clear_range_min() {
  range_min_ = 0;
  _has_bits_[0] &= ~0x00000008u;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 wjLidarParams::_internal_range_min() const {
  return range_min_;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 wjLidarParams::range_min() const {
  // @@protoc_insertion_point(field_get:wj.wjLidarParams.range_min)
  return _internal_range_min();
}
inline void wjLidarParams::_internal_set_range_min(::PROTOBUF_NAMESPACE_ID::int32 value) {
  _has_bits_[0] |= 0x00000008u;
  range_min_ = value;
}
inline void wjLidarParams::set_range_min(::PROTOBUF_NAMESPACE_ID::int32 value) {
  _internal_set_range_min(value);
  // @@protoc_insertion_point(field_set:wj.wjLidarParams.range_min)
}

// optional int32 range_max = 6 [default = 30];
inline bool wjLidarParams::_internal_has_range_max() const {
  bool value = (_has_bits_[0] & 0x00000020u) != 0;
  return value;
}
inline bool wjLidarParams::has_range_max() const {
  return _internal_has_range_max();
}
inline void wjLidarParams::clear_range_max() {
  range_max_ = 30;
  _has_bits_[0] &= ~0x00000020u;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 wjLidarParams::_internal_range_max() const {
  return range_max_;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 wjLidarParams::range_max() const {
  // @@protoc_insertion_point(field_get:wj.wjLidarParams.range_max)
  return _internal_range_max();
}
inline void wjLidarParams::_internal_set_range_max(::PROTOBUF_NAMESPACE_ID::int32 value) {
  _has_bits_[0] |= 0x00000020u;
  range_max_ = value;
}
inline void wjLidarParams::set_range_max(::PROTOBUF_NAMESPACE_ID::int32 value) {
  _internal_set_range_max(value);
  // @@protoc_insertion_point(field_set:wj.wjLidarParams.range_max)
}

// required .wj.netConfig net_config = 7;
inline bool wjLidarParams::_internal_has_net_config() const {
  bool value = (_has_bits_[0] & 0x00000001u) != 0;
  PROTOBUF_ASSUME(!value || net_config_ != nullptr);
  return value;
}
inline bool wjLidarParams::has_net_config() const {
  return _internal_has_net_config();
}
inline void wjLidarParams::clear_net_config() {
  if (net_config_ != nullptr) net_config_->Clear();
  _has_bits_[0] &= ~0x00000001u;
}
inline const ::wj::netConfig& wjLidarParams::_internal_net_config() const {
  const ::wj::netConfig* p = net_config_;
  return p != nullptr ? *p : *reinterpret_cast<const ::wj::netConfig*>(
      &::wj::_netConfig_default_instance_);
}
inline const ::wj::netConfig& wjLidarParams::net_config() const {
  // @@protoc_insertion_point(field_get:wj.wjLidarParams.net_config)
  return _internal_net_config();
}
inline void wjLidarParams::unsafe_arena_set_allocated_net_config(
    ::wj::netConfig* net_config) {
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(net_config_);
  }
  net_config_ = net_config;
  if (net_config) {
    _has_bits_[0] |= 0x00000001u;
  } else {
    _has_bits_[0] &= ~0x00000001u;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:wj.wjLidarParams.net_config)
}
inline ::wj::netConfig* wjLidarParams::release_net_config() {
  _has_bits_[0] &= ~0x00000001u;
  ::wj::netConfig* temp = net_config_;
  net_config_ = nullptr;
  if (GetArena() != nullptr) {
    temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  }
  return temp;
}
inline ::wj::netConfig* wjLidarParams::unsafe_arena_release_net_config() {
  // @@protoc_insertion_point(field_release:wj.wjLidarParams.net_config)
  _has_bits_[0] &= ~0x00000001u;
  ::wj::netConfig* temp = net_config_;
  net_config_ = nullptr;
  return temp;
}
inline ::wj::netConfig* wjLidarParams::_internal_mutable_net_config() {
  _has_bits_[0] |= 0x00000001u;
  if (net_config_ == nullptr) {
    auto* p = CreateMaybeMessage<::wj::netConfig>(GetArena());
    net_config_ = p;
  }
  return net_config_;
}
inline ::wj::netConfig* wjLidarParams::mutable_net_config() {
  // @@protoc_insertion_point(field_mutable:wj.wjLidarParams.net_config)
  return _internal_mutable_net_config();
}
inline void wjLidarParams::set_allocated_net_config(::wj::netConfig* net_config) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  if (message_arena == nullptr) {
    delete net_config_;
  }
  if (net_config) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(net_config);
    if (message_arena != submessage_arena) {
      net_config = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, net_config, submessage_arena);
    }
    _has_bits_[0] |= 0x00000001u;
  } else {
    _has_bits_[0] &= ~0x00000001u;
  }
  net_config_ = net_config;
  // @@protoc_insertion_point(field_set_allocated:wj.wjLidarParams.net_config)
}

// required .wj.Transform2d transform = 8;
inline bool wjLidarParams::_internal_has_transform() const {
  bool value = (_has_bits_[0] & 0x00000002u) != 0;
  PROTOBUF_ASSUME(!value || transform_ != nullptr);
  return value;
}
inline bool wjLidarParams::has_transform() const {
  return _internal_has_transform();
}
inline void wjLidarParams::clear_transform() {
  if (transform_ != nullptr) transform_->Clear();
  _has_bits_[0] &= ~0x00000002u;
}
inline const ::wj::Transform2d& wjLidarParams::_internal_transform() const {
  const ::wj::Transform2d* p = transform_;
  return p != nullptr ? *p : *reinterpret_cast<const ::wj::Transform2d*>(
      &::wj::_Transform2d_default_instance_);
}
inline const ::wj::Transform2d& wjLidarParams::transform() const {
  // @@protoc_insertion_point(field_get:wj.wjLidarParams.transform)
  return _internal_transform();
}
inline void wjLidarParams::unsafe_arena_set_allocated_transform(
    ::wj::Transform2d* transform) {
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(transform_);
  }
  transform_ = transform;
  if (transform) {
    _has_bits_[0] |= 0x00000002u;
  } else {
    _has_bits_[0] &= ~0x00000002u;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:wj.wjLidarParams.transform)
}
inline ::wj::Transform2d* wjLidarParams::release_transform() {
  _has_bits_[0] &= ~0x00000002u;
  ::wj::Transform2d* temp = transform_;
  transform_ = nullptr;
  if (GetArena() != nullptr) {
    temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  }
  return temp;
}
inline ::wj::Transform2d* wjLidarParams::unsafe_arena_release_transform() {
  // @@protoc_insertion_point(field_release:wj.wjLidarParams.transform)
  _has_bits_[0] &= ~0x00000002u;
  ::wj::Transform2d* temp = transform_;
  transform_ = nullptr;
  return temp;
}
inline ::wj::Transform2d* wjLidarParams::_internal_mutable_transform() {
  _has_bits_[0] |= 0x00000002u;
  if (transform_ == nullptr) {
    auto* p = CreateMaybeMessage<::wj::Transform2d>(GetArena());
    transform_ = p;
  }
  return transform_;
}
inline ::wj::Transform2d* wjLidarParams::mutable_transform() {
  // @@protoc_insertion_point(field_mutable:wj.wjLidarParams.transform)
  return _internal_mutable_transform();
}
inline void wjLidarParams::set_allocated_transform(::wj::Transform2d* transform) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  if (message_arena == nullptr) {
    delete transform_;
  }
  if (transform) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(transform);
    if (message_arena != submessage_arena) {
      transform = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, transform, submessage_arena);
    }
    _has_bits_[0] |= 0x00000002u;
  } else {
    _has_bits_[0] &= ~0x00000002u;
  }
  transform_ = transform;
  // @@protoc_insertion_point(field_set_allocated:wj.wjLidarParams.transform)
}

// required .wj.scanLimit scan_limit = 9;
inline bool wjLidarParams::_internal_has_scan_limit() const {
  bool value = (_has_bits_[0] & 0x00000004u) != 0;
  PROTOBUF_ASSUME(!value || scan_limit_ != nullptr);
  return value;
}
inline bool wjLidarParams::has_scan_limit() const {
  return _internal_has_scan_limit();
}
inline void wjLidarParams::clear_scan_limit() {
  if (scan_limit_ != nullptr) scan_limit_->Clear();
  _has_bits_[0] &= ~0x00000004u;
}
inline const ::wj::scanLimit& wjLidarParams::_internal_scan_limit() const {
  const ::wj::scanLimit* p = scan_limit_;
  return p != nullptr ? *p : *reinterpret_cast<const ::wj::scanLimit*>(
      &::wj::_scanLimit_default_instance_);
}
inline const ::wj::scanLimit& wjLidarParams::scan_limit() const {
  // @@protoc_insertion_point(field_get:wj.wjLidarParams.scan_limit)
  return _internal_scan_limit();
}
inline void wjLidarParams::unsafe_arena_set_allocated_scan_limit(
    ::wj::scanLimit* scan_limit) {
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(scan_limit_);
  }
  scan_limit_ = scan_limit;
  if (scan_limit) {
    _has_bits_[0] |= 0x00000004u;
  } else {
    _has_bits_[0] &= ~0x00000004u;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:wj.wjLidarParams.scan_limit)
}
inline ::wj::scanLimit* wjLidarParams::release_scan_limit() {
  _has_bits_[0] &= ~0x00000004u;
  ::wj::scanLimit* temp = scan_limit_;
  scan_limit_ = nullptr;
  if (GetArena() != nullptr) {
    temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  }
  return temp;
}
inline ::wj::scanLimit* wjLidarParams::unsafe_arena_release_scan_limit() {
  // @@protoc_insertion_point(field_release:wj.wjLidarParams.scan_limit)
  _has_bits_[0] &= ~0x00000004u;
  ::wj::scanLimit* temp = scan_limit_;
  scan_limit_ = nullptr;
  return temp;
}
inline ::wj::scanLimit* wjLidarParams::_internal_mutable_scan_limit() {
  _has_bits_[0] |= 0x00000004u;
  if (scan_limit_ == nullptr) {
    auto* p = CreateMaybeMessage<::wj::scanLimit>(GetArena());
    scan_limit_ = p;
  }
  return scan_limit_;
}
inline ::wj::scanLimit* wjLidarParams::mutable_scan_limit() {
  // @@protoc_insertion_point(field_mutable:wj.wjLidarParams.scan_limit)
  return _internal_mutable_scan_limit();
}
inline void wjLidarParams::set_allocated_scan_limit(::wj::scanLimit* scan_limit) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  if (message_arena == nullptr) {
    delete scan_limit_;
  }
  if (scan_limit) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(scan_limit);
    if (message_arena != submessage_arena) {
      scan_limit = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, scan_limit, submessage_arena);
    }
    _has_bits_[0] |= 0x00000004u;
  } else {
    _has_bits_[0] &= ~0x00000004u;
  }
  scan_limit_ = scan_limit;
  // @@protoc_insertion_point(field_set_allocated:wj.wjLidarParams.scan_limit)
}

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

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

// netConfig

// optional string ip_address = 1 [default = ""];
inline bool netConfig::_internal_has_ip_address() const {
  bool value = (_has_bits_[0] & 0x00000001u) != 0;
  return value;
}
inline bool netConfig::has_ip_address() const {
  return _internal_has_ip_address();
}
inline void netConfig::clear_ip_address() {
  ip_address_.ClearToEmpty(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
  _has_bits_[0] &= ~0x00000001u;
}
inline const std::string& netConfig::ip_address() const {
  // @@protoc_insertion_point(field_get:wj.netConfig.ip_address)
  return _internal_ip_address();
}
inline void netConfig::set_ip_address(const std::string& value) {
  _internal_set_ip_address(value);
  // @@protoc_insertion_point(field_set:wj.netConfig.ip_address)
}
inline std::string* netConfig::mutable_ip_address() {
  // @@protoc_insertion_point(field_mutable:wj.netConfig.ip_address)
  return _internal_mutable_ip_address();
}
inline const std::string& netConfig::_internal_ip_address() const {
  return ip_address_.Get();
}
inline void netConfig::_internal_set_ip_address(const std::string& value) {
  _has_bits_[0] |= 0x00000001u;
  ip_address_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value, GetArena());
}
inline void netConfig::set_ip_address(std::string&& value) {
  _has_bits_[0] |= 0x00000001u;
  ip_address_.Set(
    &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value), GetArena());
  // @@protoc_insertion_point(field_set_rvalue:wj.netConfig.ip_address)
}
inline void netConfig::set_ip_address(const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  _has_bits_[0] |= 0x00000001u;
  ip_address_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(value),
              GetArena());
  // @@protoc_insertion_point(field_set_char:wj.netConfig.ip_address)
}
inline void netConfig::set_ip_address(const char* value,
    size_t size) {
  _has_bits_[0] |= 0x00000001u;
  ip_address_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(
      reinterpret_cast<const char*>(value), size), GetArena());
  // @@protoc_insertion_point(field_set_pointer:wj.netConfig.ip_address)
}
inline std::string* netConfig::_internal_mutable_ip_address() {
  _has_bits_[0] |= 0x00000001u;
  return ip_address_.Mutable(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline std::string* netConfig::release_ip_address() {
  // @@protoc_insertion_point(field_release:wj.netConfig.ip_address)
  if (!_internal_has_ip_address()) {
    return nullptr;
  }
  _has_bits_[0] &= ~0x00000001u;
  return ip_address_.ReleaseNonDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline void netConfig::set_allocated_ip_address(std::string* ip_address) {
  if (ip_address != nullptr) {
    _has_bits_[0] |= 0x00000001u;
  } else {
    _has_bits_[0] &= ~0x00000001u;
  }
  ip_address_.SetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ip_address,
      GetArena());
  // @@protoc_insertion_point(field_set_allocated:wj.netConfig.ip_address)
}

// optional int32 port = 2 [default = 8000];
inline bool netConfig::_internal_has_port() const {
  bool value = (_has_bits_[0] & 0x00000002u) != 0;
  return value;
}
inline bool netConfig::has_port() const {
  return _internal_has_port();
}
inline void netConfig::clear_port() {
  port_ = 8000;
  _has_bits_[0] &= ~0x00000002u;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 netConfig::_internal_port() const {
  return port_;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 netConfig::port() const {
  // @@protoc_insertion_point(field_get:wj.netConfig.port)
  return _internal_port();
}
inline void netConfig::_internal_set_port(::PROTOBUF_NAMESPACE_ID::int32 value) {
  _has_bits_[0] |= 0x00000002u;
  port_ = value;
}
inline void netConfig::set_port(::PROTOBUF_NAMESPACE_ID::int32 value) {
  _internal_set_port(value);
  // @@protoc_insertion_point(field_set:wj.netConfig.port)
}

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

// Transform2d

// optional float m00 = 1 [default = 1];
inline bool Transform2d::_internal_has_m00() const {
  bool value = (_has_bits_[0] & 0x00000010u) != 0;
  return value;
}
inline bool Transform2d::has_m00() const {
  return _internal_has_m00();
}
inline void Transform2d::clear_m00() {
  m00_ = 1;
  _has_bits_[0] &= ~0x00000010u;
}
inline float Transform2d::_internal_m00() const {
  return m00_;
}
inline float Transform2d::m00() const {
  // @@protoc_insertion_point(field_get:wj.Transform2d.m00)
  return _internal_m00();
}
inline void Transform2d::_internal_set_m00(float value) {
  _has_bits_[0] |= 0x00000010u;
  m00_ = value;
}
inline void Transform2d::set_m00(float value) {
  _internal_set_m00(value);
  // @@protoc_insertion_point(field_set:wj.Transform2d.m00)
}

// optional float m01 = 2 [default = 0];
inline bool Transform2d::_internal_has_m01() const {
  bool value = (_has_bits_[0] & 0x00000001u) != 0;
  return value;
}
inline bool Transform2d::has_m01() const {
  return _internal_has_m01();
}
inline void Transform2d::clear_m01() {
  m01_ = 0;
  _has_bits_[0] &= ~0x00000001u;
}
inline float Transform2d::_internal_m01() const {
  return m01_;
}
inline float Transform2d::m01() const {
  // @@protoc_insertion_point(field_get:wj.Transform2d.m01)
  return _internal_m01();
}
inline void Transform2d::_internal_set_m01(float value) {
  _has_bits_[0] |= 0x00000001u;
  m01_ = value;
}
inline void Transform2d::set_m01(float value) {
  _internal_set_m01(value);
  // @@protoc_insertion_point(field_set:wj.Transform2d.m01)
}

// optional float m02 = 3 [default = 0];
inline bool Transform2d::_internal_has_m02() const {
  bool value = (_has_bits_[0] & 0x00000002u) != 0;
  return value;
}
inline bool Transform2d::has_m02() const {
  return _internal_has_m02();
}
inline void Transform2d::clear_m02() {
  m02_ = 0;
  _has_bits_[0] &= ~0x00000002u;
}
inline float Transform2d::_internal_m02() const {
  return m02_;
}
inline float Transform2d::m02() const {
  // @@protoc_insertion_point(field_get:wj.Transform2d.m02)
  return _internal_m02();
}
inline void Transform2d::_internal_set_m02(float value) {
  _has_bits_[0] |= 0x00000002u;
  m02_ = value;
}
inline void Transform2d::set_m02(float value) {
  _internal_set_m02(value);
  // @@protoc_insertion_point(field_set:wj.Transform2d.m02)
}

// optional float m10 = 4 [default = 0];
inline bool Transform2d::_internal_has_m10() const {
  bool value = (_has_bits_[0] & 0x00000004u) != 0;
  return value;
}
inline bool Transform2d::has_m10() const {
  return _internal_has_m10();
}
inline void Transform2d::clear_m10() {
  m10_ = 0;
  _has_bits_[0] &= ~0x00000004u;
}
inline float Transform2d::_internal_m10() const {
  return m10_;
}
inline float Transform2d::m10() const {
  // @@protoc_insertion_point(field_get:wj.Transform2d.m10)
  return _internal_m10();
}
inline void Transform2d::_internal_set_m10(float value) {
  _has_bits_[0] |= 0x00000004u;
  m10_ = value;
}
inline void Transform2d::set_m10(float value) {
  _internal_set_m10(value);
  // @@protoc_insertion_point(field_set:wj.Transform2d.m10)
}

// optional float m11 = 5 [default = 1];
inline bool Transform2d::_internal_has_m11() const {
  bool value = (_has_bits_[0] & 0x00000020u) != 0;
  return value;
}
inline bool Transform2d::has_m11() const {
  return _internal_has_m11();
}
inline void Transform2d::clear_m11() {
  m11_ = 1;
  _has_bits_[0] &= ~0x00000020u;
}
inline float Transform2d::_internal_m11() const {
  return m11_;
}
inline float Transform2d::m11() const {
  // @@protoc_insertion_point(field_get:wj.Transform2d.m11)
  return _internal_m11();
}
inline void Transform2d::_internal_set_m11(float value) {
  _has_bits_[0] |= 0x00000020u;
  m11_ = value;
}
inline void Transform2d::set_m11(float value) {
  _internal_set_m11(value);
  // @@protoc_insertion_point(field_set:wj.Transform2d.m11)
}

// optional float m12 = 6 [default = 0];
inline bool Transform2d::_internal_has_m12() const {
  bool value = (_has_bits_[0] & 0x00000008u) != 0;
  return value;
}
inline bool Transform2d::has_m12() const {
  return _internal_has_m12();
}
inline void Transform2d::clear_m12() {
  m12_ = 0;
  _has_bits_[0] &= ~0x00000008u;
}
inline float Transform2d::_internal_m12() const {
  return m12_;
}
inline float Transform2d::m12() const {
  // @@protoc_insertion_point(field_get:wj.Transform2d.m12)
  return _internal_m12();
}
inline void Transform2d::_internal_set_m12(float value) {
  _has_bits_[0] |= 0x00000008u;
  m12_ = value;
}
inline void Transform2d::set_m12(float value) {
  _internal_set_m12(value);
  // @@protoc_insertion_point(field_set:wj.Transform2d.m12)
}

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

// scanLimit

// optional float dist_limit = 1 [default = 8];
inline bool scanLimit::_internal_has_dist_limit() const {
  bool value = (_has_bits_[0] & 0x00000002u) != 0;
  return value;
}
inline bool scanLimit::has_dist_limit() const {
  return _internal_has_dist_limit();
}
inline void scanLimit::clear_dist_limit() {
  dist_limit_ = 8;
  _has_bits_[0] &= ~0x00000002u;
}
inline float scanLimit::_internal_dist_limit() const {
  return dist_limit_;
}
inline float scanLimit::dist_limit() const {
  // @@protoc_insertion_point(field_get:wj.scanLimit.dist_limit)
  return _internal_dist_limit();
}
inline void scanLimit::_internal_set_dist_limit(float value) {
  _has_bits_[0] |= 0x00000002u;
  dist_limit_ = value;
}
inline void scanLimit::set_dist_limit(float value) {
  _internal_set_dist_limit(value);
  // @@protoc_insertion_point(field_set:wj.scanLimit.dist_limit)
}

// optional float minx = 2 [default = -6];
inline bool scanLimit::_internal_has_minx() const {
  bool value = (_has_bits_[0] & 0x00000004u) != 0;
  return value;
}
inline bool scanLimit::has_minx() const {
  return _internal_has_minx();
}
inline void scanLimit::clear_minx() {
  minx_ = -6;
  _has_bits_[0] &= ~0x00000004u;
}
inline float scanLimit::_internal_minx() const {
  return minx_;
}
inline float scanLimit::minx() const {
  // @@protoc_insertion_point(field_get:wj.scanLimit.minx)
  return _internal_minx();
}
inline void scanLimit::_internal_set_minx(float value) {
  _has_bits_[0] |= 0x00000004u;
  minx_ = value;
}
inline void scanLimit::set_minx(float value) {
  _internal_set_minx(value);
  // @@protoc_insertion_point(field_set:wj.scanLimit.minx)
}

// optional float maxx = 3 [default = -0.2];
inline bool scanLimit::_internal_has_maxx() const {
  bool value = (_has_bits_[0] & 0x00000008u) != 0;
  return value;
}
inline bool scanLimit::has_maxx() const {
  return _internal_has_maxx();
}
inline void scanLimit::clear_maxx() {
  maxx_ = -0.2f;
  _has_bits_[0] &= ~0x00000008u;
}
inline float scanLimit::_internal_maxx() const {
  return maxx_;
}
inline float scanLimit::maxx() const {
  // @@protoc_insertion_point(field_get:wj.scanLimit.maxx)
  return _internal_maxx();
}
inline void scanLimit::_internal_set_maxx(float value) {
  _has_bits_[0] |= 0x00000008u;
  maxx_ = value;
}
inline void scanLimit::set_maxx(float value) {
  _internal_set_maxx(value);
  // @@protoc_insertion_point(field_set:wj.scanLimit.maxx)
}

// optional float miny = 4 [default = -3.5];
inline bool scanLimit::_internal_has_miny() const {
  bool value = (_has_bits_[0] & 0x00000010u) != 0;
  return value;
}
inline bool scanLimit::has_miny() const {
  return _internal_has_miny();
}
inline void scanLimit::clear_miny() {
  miny_ = -3.5f;
  _has_bits_[0] &= ~0x00000010u;
}
inline float scanLimit::_internal_miny() const {
  return miny_;
}
inline float scanLimit::miny() const {
  // @@protoc_insertion_point(field_get:wj.scanLimit.miny)
  return _internal_miny();
}
inline void scanLimit::_internal_set_miny(float value) {
  _has_bits_[0] |= 0x00000010u;
  miny_ = value;
}
inline void scanLimit::set_miny(float value) {
  _internal_set_miny(value);
  // @@protoc_insertion_point(field_set:wj.scanLimit.miny)
}

// optional float maxy = 5 [default = 3.5];
inline bool scanLimit::_internal_has_maxy() const {
  bool value = (_has_bits_[0] & 0x00000001u) != 0;
  return value;
}
inline bool scanLimit::has_maxy() const {
  return _internal_has_maxy();
}
inline void scanLimit::clear_maxy() {
  maxy_ = 3.5f;
  _has_bits_[0] &= ~0x00000001u;
}
inline float scanLimit::_internal_maxy() const {
  return maxy_;
}
inline float scanLimit::maxy() const {
  // @@protoc_insertion_point(field_get:wj.scanLimit.maxy)
  return _internal_maxy();
}
inline void scanLimit::_internal_set_maxy(float value) {
  _has_bits_[0] |= 0x00000001u;
  maxy_ = value;
}
inline void scanLimit::set_maxy(float value) {
  _internal_set_maxy(value);
  // @@protoc_insertion_point(field_set:wj.scanLimit.maxy)
}

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

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

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

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

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

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

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


// @@protoc_insertion_point(namespace_scope)

}  // namespace wj

// @@protoc_insertion_point(global_scope)

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