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

#ifndef PROTOBUF_INCLUDED_wj_5flidar_5fconf_2eproto
#define PROTOBUF_INCLUDED_wj_5flidar_5fconf_2eproto

#include <string>

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

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

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

namespace protobuf_wj_5flidar_5fconf_2eproto {
// Internal implementation detail -- do not use these members.
struct TableStruct {
  static const ::google::protobuf::internal::ParseTableField entries[];
  static const ::google::protobuf::internal::AuxillaryParseTableField aux[];
  static const ::google::protobuf::internal::ParseTable schema[8];
  static const ::google::protobuf::internal::FieldMetadata field_metadata[];
  static const ::google::protobuf::internal::SerializationTable serialization_table[];
  static const ::google::protobuf::uint32 offsets[];
};
void AddDescriptors();
}  // namespace protobuf_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
namespace google {
namespace protobuf {
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*);
}  // namespace protobuf
}  // namespace google
namespace wj {

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

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

  wjManagerParams(const wjManagerParams& from);

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

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

  static const ::google::protobuf::Descriptor* descriptor();
  static const 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;

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

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

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

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

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

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

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

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

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

  // repeated .wj.wjLidarParams wj_lidar = 1;
  int wj_lidar_size() const;
  void clear_wj_lidar();
  static const int kWjLidarFieldNumber = 1;
  ::wj::wjLidarParams* mutable_wj_lidar(int index);
  ::google::protobuf::RepeatedPtrField< ::wj::wjLidarParams >*
      mutable_wj_lidar();
  const ::wj::wjLidarParams& wj_lidar(int index) const;
  ::wj::wjLidarParams* add_wj_lidar();
  const ::google::protobuf::RepeatedPtrField< ::wj::wjLidarParams >&
      wj_lidar() const;

  // repeated .wj.Region regions = 2;
  int regions_size() const;
  void clear_regions();
  static const int kRegionsFieldNumber = 2;
  ::wj::Region* mutable_regions(int index);
  ::google::protobuf::RepeatedPtrField< ::wj::Region >*
      mutable_regions();
  const ::wj::Region& regions(int index) const;
  ::wj::Region* add_regions();
  const ::google::protobuf::RepeatedPtrField< ::wj::Region >&
      regions() const;

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

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

  // optional string plc_ip_address = 5 [default = "192.168.0.1"];
  bool has_plc_ip_address() const;
  void clear_plc_ip_address();
  static const int kPlcIpAddressFieldNumber = 5;
  const ::std::string& plc_ip_address() const;
  void set_plc_ip_address(const ::std::string& value);
  #if LANG_CXX11
  void set_plc_ip_address(::std::string&& value);
  #endif
  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);

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

  // @@protoc_insertion_point(class_scope:wj.wjManagerParams)
 private:
  void set_has_fence_data_path();
  void clear_has_fence_data_path();
  void set_has_fence_log_path();
  void clear_has_fence_log_path();
  void set_has_plc_ip_address();
  void clear_has_plc_ip_address();
  void set_has_distribution_mode();
  void clear_has_distribution_mode();

  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
  ::google::protobuf::internal::HasBits<1> _has_bits_;
  mutable ::google::protobuf::internal::CachedSize _cached_size_;
  ::google::protobuf::RepeatedPtrField< ::wj::wjLidarParams > wj_lidar_;
  ::google::protobuf::RepeatedPtrField< ::wj::Region > regions_;
  ::google::protobuf::internal::ArenaStringPtr fence_data_path_;
  ::google::protobuf::internal::ArenaStringPtr fence_log_path_;
  public:
  static ::google::protobuf::internal::ExplicitlyConstructed< ::std::string> _i_give_permission_to_break_this_code_default_plc_ip_address_;
  private:
  ::google::protobuf::internal::ArenaStringPtr plc_ip_address_;
  bool distribution_mode_;
  friend struct ::protobuf_wj_5flidar_5fconf_2eproto::TableStruct;
};
// -------------------------------------------------------------------

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

  CalibParameter(const CalibParameter& from);

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  lidarExtrinsic(const lidarExtrinsic& from);

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  Region(const Region& from);

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  wjLidarParams(const wjLidarParams& from);

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

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

  static const ::google::protobuf::Descriptor* descriptor();
  static const 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;

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

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

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

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

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

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

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

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

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

  // required .wj.netConfig net_config = 7;
  bool has_net_config() const;
  void clear_net_config();
  static const int kNetConfigFieldNumber = 7;
  private:
  const ::wj::netConfig& _internal_net_config() const;
  public:
  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);

  // required .wj.Transform2d transform = 8;
  bool has_transform() const;
  void clear_transform();
  static const int kTransformFieldNumber = 8;
  private:
  const ::wj::Transform2d& _internal_transform() const;
  public:
  const ::wj::Transform2d& transform() const;
  ::wj::Transform2d* release_transform();
  ::wj::Transform2d* mutable_transform();
  void set_allocated_transform(::wj::Transform2d* transform);

  // required .wj.scanLimit scan_limit = 9;
  bool has_scan_limit() const;
  void clear_scan_limit();
  static const int kScanLimitFieldNumber = 9;
  private:
  const ::wj::scanLimit& _internal_scan_limit() const;
  public:
  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);

  // optional int32 range_min = 5 [default = 0];
  bool has_range_min() const;
  void clear_range_min();
  static const int kRangeMinFieldNumber = 5;
  ::google::protobuf::int32 range_min() const;
  void set_range_min(::google::protobuf::int32 value);

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

  // optional int32 range_max = 6 [default = 30];
  bool has_range_max() const;
  void clear_range_max();
  static const int kRangeMaxFieldNumber = 6;
  ::google::protobuf::int32 range_max() const;
  void set_range_max(::google::protobuf::int32 value);

  // optional float angle_min = 1 [default = -2.3561945];
  bool has_angle_min() const;
  void clear_angle_min();
  static const int kAngleMinFieldNumber = 1;
  float angle_min() const;
  void set_angle_min(float value);

  // optional float angle_max = 2 [default = 2.3561945];
  bool has_angle_max() const;
  void clear_angle_max();
  static const int kAngleMaxFieldNumber = 2;
  float angle_max() const;
  void set_angle_max(float value);

  // optional float angle_increment = 3 [default = 0.00582];
  bool has_angle_increment() const;
  void clear_angle_increment();
  static const int kAngleIncrementFieldNumber = 3;
  float angle_increment() const;
  void set_angle_increment(float value);

  // optional float time_increment = 4 [default = 6.2e-05];
  bool has_time_increment() const;
  void clear_time_increment();
  static const int kTimeIncrementFieldNumber = 4;
  float time_increment() const;
  void set_time_increment(float value);

  // @@protoc_insertion_point(class_scope:wj.wjLidarParams)
 private:
  void set_has_angle_min();
  void clear_has_angle_min();
  void set_has_angle_max();
  void clear_has_angle_max();
  void set_has_angle_increment();
  void clear_has_angle_increment();
  void set_has_time_increment();
  void clear_has_time_increment();
  void set_has_range_min();
  void clear_has_range_min();
  void set_has_range_max();
  void clear_has_range_max();
  void set_has_net_config();
  void clear_has_net_config();
  void set_has_transform();
  void clear_has_transform();
  void set_has_scan_limit();
  void clear_has_scan_limit();
  void set_has_lidar_id();
  void clear_has_lidar_id();

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

  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
  ::google::protobuf::internal::HasBits<1> _has_bits_;
  mutable ::google::protobuf::internal::CachedSize _cached_size_;
  ::wj::netConfig* net_config_;
  ::wj::Transform2d* transform_;
  ::wj::scanLimit* scan_limit_;
  ::google::protobuf::int32 range_min_;
  ::google::protobuf::int32 lidar_id_;
  ::google::protobuf::int32 range_max_;
  float angle_min_;
  float angle_max_;
  float angle_increment_;
  float time_increment_;
  friend struct ::protobuf_wj_5flidar_5fconf_2eproto::TableStruct;
};
// -------------------------------------------------------------------

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

  netConfig(const netConfig& from);

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

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

  static const ::google::protobuf::Descriptor* descriptor();
  static const 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;

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

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

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

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

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

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

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

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

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

  // optional string ip_address = 1 [default = ""];
  bool has_ip_address() const;
  void clear_ip_address();
  static const int kIpAddressFieldNumber = 1;
  const ::std::string& ip_address() const;
  void set_ip_address(const ::std::string& value);
  #if LANG_CXX11
  void set_ip_address(::std::string&& value);
  #endif
  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);

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

  // @@protoc_insertion_point(class_scope:wj.netConfig)
 private:
  void set_has_ip_address();
  void clear_has_ip_address();
  void set_has_port();
  void clear_has_port();

  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
  ::google::protobuf::internal::HasBits<1> _has_bits_;
  mutable ::google::protobuf::internal::CachedSize _cached_size_;
  ::google::protobuf::internal::ArenaStringPtr ip_address_;
  ::google::protobuf::int32 port_;
  friend struct ::protobuf_wj_5flidar_5fconf_2eproto::TableStruct;
};
// -------------------------------------------------------------------

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

  Transform2d(const Transform2d& from);

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

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

  static const ::google::protobuf::Descriptor* descriptor();
  static const 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;

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

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

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

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

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

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

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

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

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

  // optional float m01 = 2 [default = 0];
  bool has_m01() const;
  void clear_m01();
  static const int kM01FieldNumber = 2;
  float m01() const;
  void set_m01(float value);

  // optional float m02 = 3 [default = 0];
  bool has_m02() const;
  void clear_m02();
  static const int kM02FieldNumber = 3;
  float m02() const;
  void set_m02(float value);

  // optional float m10 = 4 [default = 0];
  bool has_m10() const;
  void clear_m10();
  static const int kM10FieldNumber = 4;
  float m10() const;
  void set_m10(float value);

  // optional float m12 = 6 [default = 0];
  bool has_m12() const;
  void clear_m12();
  static const int kM12FieldNumber = 6;
  float m12() const;
  void set_m12(float value);

  // optional float m00 = 1 [default = 1];
  bool has_m00() const;
  void clear_m00();
  static const int kM00FieldNumber = 1;
  float m00() const;
  void set_m00(float value);

  // optional float m11 = 5 [default = 1];
  bool has_m11() const;
  void clear_m11();
  static const int kM11FieldNumber = 5;
  float m11() const;
  void set_m11(float value);

  // @@protoc_insertion_point(class_scope:wj.Transform2d)
 private:
  void set_has_m00();
  void clear_has_m00();
  void set_has_m01();
  void clear_has_m01();
  void set_has_m02();
  void clear_has_m02();
  void set_has_m10();
  void clear_has_m10();
  void set_has_m11();
  void clear_has_m11();
  void set_has_m12();
  void clear_has_m12();

  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
  ::google::protobuf::internal::HasBits<1> _has_bits_;
  mutable ::google::protobuf::internal::CachedSize _cached_size_;
  float m01_;
  float m02_;
  float m10_;
  float m12_;
  float m00_;
  float m11_;
  friend struct ::protobuf_wj_5flidar_5fconf_2eproto::TableStruct;
};
// -------------------------------------------------------------------

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

  scanLimit(const scanLimit& from);

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

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

  static const ::google::protobuf::Descriptor* descriptor();
  static const 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;

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

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

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

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

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

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

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

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

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

  // optional float maxy = 5 [default = 3.5];
  bool has_maxy() const;
  void clear_maxy();
  static const int kMaxyFieldNumber = 5;
  float maxy() const;
  void set_maxy(float value);

  // optional float dist_limit = 1 [default = 8];
  bool has_dist_limit() const;
  void clear_dist_limit();
  static const int kDistLimitFieldNumber = 1;
  float dist_limit() const;
  void set_dist_limit(float value);

  // optional float minx = 2 [default = -6];
  bool has_minx() const;
  void clear_minx();
  static const int kMinxFieldNumber = 2;
  float minx() const;
  void set_minx(float value);

  // optional float maxx = 3 [default = -0.2];
  bool has_maxx() const;
  void clear_maxx();
  static const int kMaxxFieldNumber = 3;
  float maxx() const;
  void set_maxx(float value);

  // optional float miny = 4 [default = -3.5];
  bool has_miny() const;
  void clear_miny();
  static const int kMinyFieldNumber = 4;
  float miny() const;
  void set_miny(float value);

  // @@protoc_insertion_point(class_scope:wj.scanLimit)
 private:
  void set_has_dist_limit();
  void clear_has_dist_limit();
  void set_has_minx();
  void clear_has_minx();
  void set_has_maxx();
  void clear_has_maxx();
  void set_has_miny();
  void clear_has_miny();
  void set_has_maxy();
  void clear_has_maxy();

  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
  ::google::protobuf::internal::HasBits<1> _has_bits_;
  mutable ::google::protobuf::internal::CachedSize _cached_size_;
  float maxy_;
  float dist_limit_;
  float minx_;
  float maxx_;
  float miny_;
  friend struct ::protobuf_wj_5flidar_5fconf_2eproto::TableStruct;
};
// ===================================================================


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

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

// repeated .wj.wjLidarParams wj_lidar = 1;
inline int wjManagerParams::wj_lidar_size() const {
  return 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 ::google::protobuf::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::wj_lidar(int index) const {
  // @@protoc_insertion_point(field_get:wj.wjManagerParams.wj_lidar)
  return wj_lidar_.Get(index);
}
inline ::wj::wjLidarParams* wjManagerParams::add_wj_lidar() {
  // @@protoc_insertion_point(field_add:wj.wjManagerParams.wj_lidar)
  return wj_lidar_.Add();
}
inline const ::google::protobuf::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::regions_size() const {
  return 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 ::google::protobuf::RepeatedPtrField< ::wj::Region >*
wjManagerParams::mutable_regions() {
  // @@protoc_insertion_point(field_mutable_list:wj.wjManagerParams.regions)
  return &regions_;
}
inline const ::wj::Region& wjManagerParams::regions(int index) const {
  // @@protoc_insertion_point(field_get:wj.wjManagerParams.regions)
  return regions_.Get(index);
}
inline ::wj::Region* wjManagerParams::add_regions() {
  // @@protoc_insertion_point(field_add:wj.wjManagerParams.regions)
  return regions_.Add();
}
inline const ::google::protobuf::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::has_fence_data_path() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void wjManagerParams::set_has_fence_data_path() {
  _has_bits_[0] |= 0x00000001u;
}
inline void wjManagerParams::clear_has_fence_data_path() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void wjManagerParams::clear_fence_data_path() {
  fence_data_path_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  clear_has_fence_data_path();
}
inline const ::std::string& wjManagerParams::fence_data_path() const {
  // @@protoc_insertion_point(field_get:wj.wjManagerParams.fence_data_path)
  return fence_data_path_.GetNoArena();
}
inline void wjManagerParams::set_fence_data_path(const ::std::string& value) {
  set_has_fence_data_path();
  fence_data_path_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:wj.wjManagerParams.fence_data_path)
}
#if LANG_CXX11
inline void wjManagerParams::set_fence_data_path(::std::string&& value) {
  set_has_fence_data_path();
  fence_data_path_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:wj.wjManagerParams.fence_data_path)
}
#endif
inline void wjManagerParams::set_fence_data_path(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  set_has_fence_data_path();
  fence_data_path_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:wj.wjManagerParams.fence_data_path)
}
inline void wjManagerParams::set_fence_data_path(const char* value, size_t size) {
  set_has_fence_data_path();
  fence_data_path_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:wj.wjManagerParams.fence_data_path)
}
inline ::std::string* wjManagerParams::mutable_fence_data_path() {
  set_has_fence_data_path();
  // @@protoc_insertion_point(field_mutable:wj.wjManagerParams.fence_data_path)
  return fence_data_path_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline ::std::string* wjManagerParams::release_fence_data_path() {
  // @@protoc_insertion_point(field_release:wj.wjManagerParams.fence_data_path)
  if (!has_fence_data_path()) {
    return NULL;
  }
  clear_has_fence_data_path();
  return fence_data_path_.ReleaseNonDefaultNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline void wjManagerParams::set_allocated_fence_data_path(::std::string* fence_data_path) {
  if (fence_data_path != NULL) {
    set_has_fence_data_path();
  } else {
    clear_has_fence_data_path();
  }
  fence_data_path_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), fence_data_path);
  // @@protoc_insertion_point(field_set_allocated:wj.wjManagerParams.fence_data_path)
}

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

// optional string plc_ip_address = 5 [default = "192.168.0.1"];
inline bool wjManagerParams::has_plc_ip_address() const {
  return (_has_bits_[0] & 0x00000004u) != 0;
}
inline void wjManagerParams::set_has_plc_ip_address() {
  _has_bits_[0] |= 0x00000004u;
}
inline void wjManagerParams::clear_has_plc_ip_address() {
  _has_bits_[0] &= ~0x00000004u;
}
inline void wjManagerParams::clear_plc_ip_address() {
  plc_ip_address_.ClearToDefaultNoArena(&::wj::wjManagerParams::_i_give_permission_to_break_this_code_default_plc_ip_address_.get());
  clear_has_plc_ip_address();
}
inline const ::std::string& wjManagerParams::plc_ip_address() const {
  // @@protoc_insertion_point(field_get:wj.wjManagerParams.plc_ip_address)
  return plc_ip_address_.GetNoArena();
}
inline void wjManagerParams::set_plc_ip_address(const ::std::string& value) {
  set_has_plc_ip_address();
  plc_ip_address_.SetNoArena(&::wj::wjManagerParams::_i_give_permission_to_break_this_code_default_plc_ip_address_.get(), value);
  // @@protoc_insertion_point(field_set:wj.wjManagerParams.plc_ip_address)
}
#if LANG_CXX11
inline void wjManagerParams::set_plc_ip_address(::std::string&& value) {
  set_has_plc_ip_address();
  plc_ip_address_.SetNoArena(
    &::wj::wjManagerParams::_i_give_permission_to_break_this_code_default_plc_ip_address_.get(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:wj.wjManagerParams.plc_ip_address)
}
#endif
inline void wjManagerParams::set_plc_ip_address(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  set_has_plc_ip_address();
  plc_ip_address_.SetNoArena(&::wj::wjManagerParams::_i_give_permission_to_break_this_code_default_plc_ip_address_.get(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:wj.wjManagerParams.plc_ip_address)
}
inline void wjManagerParams::set_plc_ip_address(const char* value, size_t size) {
  set_has_plc_ip_address();
  plc_ip_address_.SetNoArena(&::wj::wjManagerParams::_i_give_permission_to_break_this_code_default_plc_ip_address_.get(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:wj.wjManagerParams.plc_ip_address)
}
inline ::std::string* wjManagerParams::mutable_plc_ip_address() {
  set_has_plc_ip_address();
  // @@protoc_insertion_point(field_mutable:wj.wjManagerParams.plc_ip_address)
  return plc_ip_address_.MutableNoArena(&::wj::wjManagerParams::_i_give_permission_to_break_this_code_default_plc_ip_address_.get());
}
inline ::std::string* wjManagerParams::release_plc_ip_address() {
  // @@protoc_insertion_point(field_release:wj.wjManagerParams.plc_ip_address)
  if (!has_plc_ip_address()) {
    return NULL;
  }
  clear_has_plc_ip_address();
  return plc_ip_address_.ReleaseNonDefaultNoArena(&::wj::wjManagerParams::_i_give_permission_to_break_this_code_default_plc_ip_address_.get());
}
inline void wjManagerParams::set_allocated_plc_ip_address(::std::string* plc_ip_address) {
  if (plc_ip_address != NULL) {
    set_has_plc_ip_address();
  } else {
    clear_has_plc_ip_address();
  }
  plc_ip_address_.SetAllocatedNoArena(&::wj::wjManagerParams::_i_give_permission_to_break_this_code_default_plc_ip_address_.get(), plc_ip_address);
  // @@protoc_insertion_point(field_set_allocated:wj.wjManagerParams.plc_ip_address)
}

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

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

// CalibParameter

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

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

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

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

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

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

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

// lidarExtrinsic

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

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

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

// Region

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

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

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

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

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

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

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

// repeated .wj.lidarExtrinsic lidar_exts = 8;
inline int Region::lidar_exts_size() const {
  return lidar_exts_.size();
}
inline void Region::clear_lidar_exts() {
  lidar_exts_.Clear();
}
inline ::wj::lidarExtrinsic* Region::mutable_lidar_exts(int index) {
  // @@protoc_insertion_point(field_mutable:wj.Region.lidar_exts)
  return lidar_exts_.Mutable(index);
}
inline ::google::protobuf::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::lidar_exts(int index) const {
  // @@protoc_insertion_point(field_get:wj.Region.lidar_exts)
  return lidar_exts_.Get(index);
}
inline ::wj::lidarExtrinsic* Region::add_lidar_exts() {
  // @@protoc_insertion_point(field_add:wj.Region.lidar_exts)
  return lidar_exts_.Add();
}
inline const ::google::protobuf::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::has_turnplate_cx() const {
  return (_has_bits_[0] & 0x00000080u) != 0;
}
inline void Region::set_has_turnplate_cx() {
  _has_bits_[0] |= 0x00000080u;
}
inline void Region::clear_has_turnplate_cx() {
  _has_bits_[0] &= ~0x00000080u;
}
inline void Region::clear_turnplate_cx() {
  turnplate_cx_ = 0;
  clear_has_turnplate_cx();
}
inline float Region::turnplate_cx() const {
  // @@protoc_insertion_point(field_get:wj.Region.turnplate_cx)
  return turnplate_cx_;
}
inline void Region::set_turnplate_cx(float value) {
  set_has_turnplate_cx();
  turnplate_cx_ = value;
  // @@protoc_insertion_point(field_set:wj.Region.turnplate_cx)
}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

// wjLidarParams

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

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

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

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

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

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

// required .wj.netConfig net_config = 7;
inline bool wjLidarParams::has_net_config() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void wjLidarParams::set_has_net_config() {
  _has_bits_[0] |= 0x00000001u;
}
inline void wjLidarParams::clear_has_net_config() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void wjLidarParams::clear_net_config() {
  if (net_config_ != NULL) net_config_->Clear();
  clear_has_net_config();
}
inline const ::wj::netConfig& wjLidarParams::_internal_net_config() const {
  return *net_config_;
}
inline const ::wj::netConfig& wjLidarParams::net_config() const {
  const ::wj::netConfig* p = net_config_;
  // @@protoc_insertion_point(field_get:wj.wjLidarParams.net_config)
  return p != NULL ? *p : *reinterpret_cast<const ::wj::netConfig*>(
      &::wj::_netConfig_default_instance_);
}
inline ::wj::netConfig* wjLidarParams::release_net_config() {
  // @@protoc_insertion_point(field_release:wj.wjLidarParams.net_config)
  clear_has_net_config();
  ::wj::netConfig* temp = net_config_;
  net_config_ = NULL;
  return temp;
}
inline ::wj::netConfig* wjLidarParams::mutable_net_config() {
  set_has_net_config();
  if (net_config_ == NULL) {
    auto* p = CreateMaybeMessage<::wj::netConfig>(GetArenaNoVirtual());
    net_config_ = p;
  }
  // @@protoc_insertion_point(field_mutable:wj.wjLidarParams.net_config)
  return net_config_;
}
inline void wjLidarParams::set_allocated_net_config(::wj::netConfig* net_config) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete net_config_;
  }
  if (net_config) {
    ::google::protobuf::Arena* submessage_arena = NULL;
    if (message_arena != submessage_arena) {
      net_config = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, net_config, submessage_arena);
    }
    set_has_net_config();
  } else {
    clear_has_net_config();
  }
  net_config_ = net_config;
  // @@protoc_insertion_point(field_set_allocated:wj.wjLidarParams.net_config)
}

// required .wj.Transform2d transform = 8;
inline bool wjLidarParams::has_transform() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void wjLidarParams::set_has_transform() {
  _has_bits_[0] |= 0x00000002u;
}
inline void wjLidarParams::clear_has_transform() {
  _has_bits_[0] &= ~0x00000002u;
}
inline void wjLidarParams::clear_transform() {
  if (transform_ != NULL) transform_->Clear();
  clear_has_transform();
}
inline const ::wj::Transform2d& wjLidarParams::_internal_transform() const {
  return *transform_;
}
inline const ::wj::Transform2d& wjLidarParams::transform() const {
  const ::wj::Transform2d* p = transform_;
  // @@protoc_insertion_point(field_get:wj.wjLidarParams.transform)
  return p != NULL ? *p : *reinterpret_cast<const ::wj::Transform2d*>(
      &::wj::_Transform2d_default_instance_);
}
inline ::wj::Transform2d* wjLidarParams::release_transform() {
  // @@protoc_insertion_point(field_release:wj.wjLidarParams.transform)
  clear_has_transform();
  ::wj::Transform2d* temp = transform_;
  transform_ = NULL;
  return temp;
}
inline ::wj::Transform2d* wjLidarParams::mutable_transform() {
  set_has_transform();
  if (transform_ == NULL) {
    auto* p = CreateMaybeMessage<::wj::Transform2d>(GetArenaNoVirtual());
    transform_ = p;
  }
  // @@protoc_insertion_point(field_mutable:wj.wjLidarParams.transform)
  return transform_;
}
inline void wjLidarParams::set_allocated_transform(::wj::Transform2d* transform) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete transform_;
  }
  if (transform) {
    ::google::protobuf::Arena* submessage_arena = NULL;
    if (message_arena != submessage_arena) {
      transform = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, transform, submessage_arena);
    }
    set_has_transform();
  } else {
    clear_has_transform();
  }
  transform_ = transform;
  // @@protoc_insertion_point(field_set_allocated:wj.wjLidarParams.transform)
}

// required .wj.scanLimit scan_limit = 9;
inline bool wjLidarParams::has_scan_limit() const {
  return (_has_bits_[0] & 0x00000004u) != 0;
}
inline void wjLidarParams::set_has_scan_limit() {
  _has_bits_[0] |= 0x00000004u;
}
inline void wjLidarParams::clear_has_scan_limit() {
  _has_bits_[0] &= ~0x00000004u;
}
inline void wjLidarParams::clear_scan_limit() {
  if (scan_limit_ != NULL) scan_limit_->Clear();
  clear_has_scan_limit();
}
inline const ::wj::scanLimit& wjLidarParams::_internal_scan_limit() const {
  return *scan_limit_;
}
inline const ::wj::scanLimit& wjLidarParams::scan_limit() const {
  const ::wj::scanLimit* p = scan_limit_;
  // @@protoc_insertion_point(field_get:wj.wjLidarParams.scan_limit)
  return p != NULL ? *p : *reinterpret_cast<const ::wj::scanLimit*>(
      &::wj::_scanLimit_default_instance_);
}
inline ::wj::scanLimit* wjLidarParams::release_scan_limit() {
  // @@protoc_insertion_point(field_release:wj.wjLidarParams.scan_limit)
  clear_has_scan_limit();
  ::wj::scanLimit* temp = scan_limit_;
  scan_limit_ = NULL;
  return temp;
}
inline ::wj::scanLimit* wjLidarParams::mutable_scan_limit() {
  set_has_scan_limit();
  if (scan_limit_ == NULL) {
    auto* p = CreateMaybeMessage<::wj::scanLimit>(GetArenaNoVirtual());
    scan_limit_ = p;
  }
  // @@protoc_insertion_point(field_mutable:wj.wjLidarParams.scan_limit)
  return scan_limit_;
}
inline void wjLidarParams::set_allocated_scan_limit(::wj::scanLimit* scan_limit) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete scan_limit_;
  }
  if (scan_limit) {
    ::google::protobuf::Arena* submessage_arena = NULL;
    if (message_arena != submessage_arena) {
      scan_limit = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, scan_limit, submessage_arena);
    }
    set_has_scan_limit();
  } else {
    clear_has_scan_limit();
  }
  scan_limit_ = scan_limit;
  // @@protoc_insertion_point(field_set_allocated:wj.wjLidarParams.scan_limit)
}

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

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

// netConfig

// optional string ip_address = 1 [default = ""];
inline bool netConfig::has_ip_address() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void netConfig::set_has_ip_address() {
  _has_bits_[0] |= 0x00000001u;
}
inline void netConfig::clear_has_ip_address() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void netConfig::clear_ip_address() {
  ip_address_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  clear_has_ip_address();
}
inline const ::std::string& netConfig::ip_address() const {
  // @@protoc_insertion_point(field_get:wj.netConfig.ip_address)
  return ip_address_.GetNoArena();
}
inline void netConfig::set_ip_address(const ::std::string& value) {
  set_has_ip_address();
  ip_address_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:wj.netConfig.ip_address)
}
#if LANG_CXX11
inline void netConfig::set_ip_address(::std::string&& value) {
  set_has_ip_address();
  ip_address_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:wj.netConfig.ip_address)
}
#endif
inline void netConfig::set_ip_address(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  set_has_ip_address();
  ip_address_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:wj.netConfig.ip_address)
}
inline void netConfig::set_ip_address(const char* value, size_t size) {
  set_has_ip_address();
  ip_address_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:wj.netConfig.ip_address)
}
inline ::std::string* netConfig::mutable_ip_address() {
  set_has_ip_address();
  // @@protoc_insertion_point(field_mutable:wj.netConfig.ip_address)
  return ip_address_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline ::std::string* netConfig::release_ip_address() {
  // @@protoc_insertion_point(field_release:wj.netConfig.ip_address)
  if (!has_ip_address()) {
    return NULL;
  }
  clear_has_ip_address();
  return ip_address_.ReleaseNonDefaultNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline void netConfig::set_allocated_ip_address(::std::string* ip_address) {
  if (ip_address != NULL) {
    set_has_ip_address();
  } else {
    clear_has_ip_address();
  }
  ip_address_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ip_address);
  // @@protoc_insertion_point(field_set_allocated:wj.netConfig.ip_address)
}

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

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

// Transform2d

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

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

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

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

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

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

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

// scanLimit

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

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

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

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

// optional float maxy = 5 [default = 3.5];
inline bool scanLimit::has_maxy() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void scanLimit::set_has_maxy() {
  _has_bits_[0] |= 0x00000001u;
}
inline void scanLimit::clear_has_maxy() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void scanLimit::clear_maxy() {
  maxy_ = 3.5f;
  clear_has_maxy();
}
inline float scanLimit::maxy() const {
  // @@protoc_insertion_point(field_get:wj.scanLimit.maxy)
  return maxy_;
}
inline void scanLimit::set_maxy(float value) {
  set_has_maxy();
  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)

#endif  // PROTOBUF_INCLUDED_wj_5flidar_5fconf_2eproto
