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

#ifndef PROTOBUF_locater_5fparameter_2eproto__INCLUDED
#define PROTOBUF_locater_5fparameter_2eproto__INCLUDED

#include <string>

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

#if GOOGLE_PROTOBUF_VERSION < 3005000
#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 3005000 < 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/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)

namespace protobuf_locater_5fparameter_2eproto {
// Internal implementation detail -- do not use these members.
struct TableStruct {
  static const ::google::protobuf::internal::ParseTableField entries[];
  static const ::google::protobuf::internal::AuxillaryParseTableField aux[];
  static const ::google::protobuf::internal::ParseTable schema[5];
  static const ::google::protobuf::internal::FieldMetadata field_metadata[];
  static const ::google::protobuf::internal::SerializationTable serialization_table[];
  static const ::google::protobuf::uint32 offsets[];
};
void AddDescriptors();
void InitDefaultsArea3dImpl();
void InitDefaultsArea3d();
void InitDefaultsYoloParameterImpl();
void InitDefaultsYoloParameter();
void InitDefaultsPointSiftParameterImpl();
void InitDefaultsPointSiftParameter();
void InitDefaultscnnParameterImpl();
void InitDefaultscnnParameter();
void InitDefaultsLocateParameterImpl();
void InitDefaultsLocateParameter();
inline void InitDefaults() {
  InitDefaultsArea3d();
  InitDefaultsYoloParameter();
  InitDefaultsPointSiftParameter();
  InitDefaultscnnParameter();
  InitDefaultsLocateParameter();
}
}  // namespace protobuf_locater_5fparameter_2eproto
namespace Measure {
class Area3d;
class Area3dDefaultTypeInternal;
extern Area3dDefaultTypeInternal _Area3d_default_instance_;
class LocateParameter;
class LocateParameterDefaultTypeInternal;
extern LocateParameterDefaultTypeInternal _LocateParameter_default_instance_;
class PointSiftParameter;
class PointSiftParameterDefaultTypeInternal;
extern PointSiftParameterDefaultTypeInternal _PointSiftParameter_default_instance_;
class YoloParameter;
class YoloParameterDefaultTypeInternal;
extern YoloParameterDefaultTypeInternal _YoloParameter_default_instance_;
class cnnParameter;
class cnnParameterDefaultTypeInternal;
extern cnnParameterDefaultTypeInternal _cnnParameter_default_instance_;
}  // namespace Measure
namespace Measure {

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

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

  Area3d(const Area3d& from);

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

  inline Area3d& operator=(Area3d&& 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 Area3d& default_instance();

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

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

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

  inline Area3d* New() const PROTOBUF_FINAL { return New(NULL); }

  Area3d* New(::google::protobuf::Arena* arena) const PROTOBUF_FINAL;
  void CopyFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
  void MergeFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
  void CopyFrom(const Area3d& from);
  void MergeFrom(const Area3d& from);
  void Clear() PROTOBUF_FINAL;
  bool IsInitialized() const PROTOBUF_FINAL;

  size_t ByteSizeLong() const PROTOBUF_FINAL;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input) PROTOBUF_FINAL;
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const PROTOBUF_FINAL;
  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
      bool deterministic, ::google::protobuf::uint8* target) const PROTOBUF_FINAL;
  int GetCachedSize() const PROTOBUF_FINAL { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const PROTOBUF_FINAL;
  void InternalSwap(Area3d* other);
  private:
  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
    return NULL;
  }
  inline void* MaybeArenaPtr() const {
    return NULL;
  }
  public:

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

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

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

  // optional double x_min = 1 [default = 0];
  bool has_x_min() const;
  void clear_x_min();
  static const int kXMinFieldNumber = 1;
  double x_min() const;
  void set_x_min(double value);

  // optional double x_max = 2 [default = 12000];
  bool has_x_max() const;
  void clear_x_max();
  static const int kXMaxFieldNumber = 2;
  double x_max() const;
  void set_x_max(double value);

  // optional double y_min = 3 [default = 4500];
  bool has_y_min() const;
  void clear_y_min();
  static const int kYMinFieldNumber = 3;
  double y_min() const;
  void set_y_min(double value);

  // optional double y_max = 4 [default = 11000];
  bool has_y_max() const;
  void clear_y_max();
  static const int kYMaxFieldNumber = 4;
  double y_max() const;
  void set_y_max(double value);

  // optional double z_min = 5 [default = 60];
  bool has_z_min() const;
  void clear_z_min();
  static const int kZMinFieldNumber = 5;
  double z_min() const;
  void set_z_min(double value);

  // optional double z_max = 6 [default = 3000];
  bool has_z_max() const;
  void clear_z_max();
  static const int kZMaxFieldNumber = 6;
  double z_max() const;
  void set_z_max(double value);

  // @@protoc_insertion_point(class_scope:Measure.Area3d)
 private:
  void set_has_x_min();
  void clear_has_x_min();
  void set_has_x_max();
  void clear_has_x_max();
  void set_has_y_min();
  void clear_has_y_min();
  void set_has_y_max();
  void clear_has_y_max();
  void set_has_z_min();
  void clear_has_z_min();
  void set_has_z_max();
  void clear_has_z_max();

  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
  ::google::protobuf::internal::HasBits<1> _has_bits_;
  mutable int _cached_size_;
  double x_min_;
  double x_max_;
  double y_min_;
  double y_max_;
  double z_min_;
  double z_max_;
  friend struct ::protobuf_locater_5fparameter_2eproto::TableStruct;
  friend void ::protobuf_locater_5fparameter_2eproto::InitDefaultsArea3dImpl();
};
// -------------------------------------------------------------------

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

  YoloParameter(const YoloParameter& from);

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

  inline YoloParameter& operator=(YoloParameter&& 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 YoloParameter& default_instance();

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

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

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

  inline YoloParameter* New() const PROTOBUF_FINAL { return New(NULL); }

  YoloParameter* New(::google::protobuf::Arena* arena) const PROTOBUF_FINAL;
  void CopyFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
  void MergeFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
  void CopyFrom(const YoloParameter& from);
  void MergeFrom(const YoloParameter& from);
  void Clear() PROTOBUF_FINAL;
  bool IsInitialized() const PROTOBUF_FINAL;

  size_t ByteSizeLong() const PROTOBUF_FINAL;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input) PROTOBUF_FINAL;
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const PROTOBUF_FINAL;
  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
      bool deterministic, ::google::protobuf::uint8* target) const PROTOBUF_FINAL;
  int GetCachedSize() const PROTOBUF_FINAL { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const PROTOBUF_FINAL;
  void InternalSwap(YoloParameter* other);
  private:
  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
    return NULL;
  }
  inline void* MaybeArenaPtr() const {
    return NULL;
  }
  public:

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

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

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

  // optional string cfg = 1 [default = ""];
  bool has_cfg() const;
  void clear_cfg();
  static const int kCfgFieldNumber = 1;
  const ::std::string& cfg() const;
  void set_cfg(const ::std::string& value);
  #if LANG_CXX11
  void set_cfg(::std::string&& value);
  #endif
  void set_cfg(const char* value);
  void set_cfg(const char* value, size_t size);
  ::std::string* mutable_cfg();
  ::std::string* release_cfg();
  void set_allocated_cfg(::std::string* cfg);

  // optional string weights = 2 [default = ""];
  bool has_weights() const;
  void clear_weights();
  static const int kWeightsFieldNumber = 2;
  const ::std::string& weights() const;
  void set_weights(const ::std::string& value);
  #if LANG_CXX11
  void set_weights(::std::string&& value);
  #endif
  void set_weights(const char* value);
  void set_weights(const char* value, size_t size);
  ::std::string* mutable_weights();
  ::std::string* release_weights();
  void set_allocated_weights(::std::string* weights);

  // optional double min_x = 3 [default = 0];
  bool has_min_x() const;
  void clear_min_x();
  static const int kMinXFieldNumber = 3;
  double min_x() const;
  void set_min_x(double value);

  // optional double max_x = 4 [default = 12000];
  bool has_max_x() const;
  void clear_max_x();
  static const int kMaxXFieldNumber = 4;
  double max_x() const;
  void set_max_x(double value);

  // optional double min_y = 5 [default = 4500];
  bool has_min_y() const;
  void clear_min_y();
  static const int kMinYFieldNumber = 5;
  double min_y() const;
  void set_min_y(double value);

  // optional double max_y = 6 [default = 11000];
  bool has_max_y() const;
  void clear_max_y();
  static const int kMaxYFieldNumber = 6;
  double max_y() const;
  void set_max_y(double value);

  // optional double freq = 7 [default = 25];
  bool has_freq() const;
  void clear_freq();
  static const int kFreqFieldNumber = 7;
  double freq() const;
  void set_freq(double value);

  // @@protoc_insertion_point(class_scope:Measure.YoloParameter)
 private:
  void set_has_cfg();
  void clear_has_cfg();
  void set_has_weights();
  void clear_has_weights();
  void set_has_min_x();
  void clear_has_min_x();
  void set_has_max_x();
  void clear_has_max_x();
  void set_has_min_y();
  void clear_has_min_y();
  void set_has_max_y();
  void clear_has_max_y();
  void set_has_freq();
  void clear_has_freq();

  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
  ::google::protobuf::internal::HasBits<1> _has_bits_;
  mutable int _cached_size_;
  ::google::protobuf::internal::ArenaStringPtr cfg_;
  ::google::protobuf::internal::ArenaStringPtr weights_;
  double min_x_;
  double max_x_;
  double min_y_;
  double max_y_;
  double freq_;
  friend struct ::protobuf_locater_5fparameter_2eproto::TableStruct;
  friend void ::protobuf_locater_5fparameter_2eproto::InitDefaultsYoloParameterImpl();
};
// -------------------------------------------------------------------

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

  PointSiftParameter(const PointSiftParameter& from);

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

  inline PointSiftParameter& operator=(PointSiftParameter&& 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 PointSiftParameter& default_instance();

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

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

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

  inline PointSiftParameter* New() const PROTOBUF_FINAL { return New(NULL); }

  PointSiftParameter* New(::google::protobuf::Arena* arena) const PROTOBUF_FINAL;
  void CopyFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
  void MergeFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
  void CopyFrom(const PointSiftParameter& from);
  void MergeFrom(const PointSiftParameter& from);
  void Clear() PROTOBUF_FINAL;
  bool IsInitialized() const PROTOBUF_FINAL;

  size_t ByteSizeLong() const PROTOBUF_FINAL;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input) PROTOBUF_FINAL;
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const PROTOBUF_FINAL;
  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
      bool deterministic, ::google::protobuf::uint8* target) const PROTOBUF_FINAL;
  int GetCachedSize() const PROTOBUF_FINAL { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const PROTOBUF_FINAL;
  void InternalSwap(PointSiftParameter* other);
  private:
  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
    return NULL;
  }
  inline void* MaybeArenaPtr() const {
    return NULL;
  }
  public:

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

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

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

  // optional string graph = 5 [default = "seg_model_last.ckpt.meta"];
  bool has_graph() const;
  void clear_graph();
  static const int kGraphFieldNumber = 5;
  const ::std::string& graph() const;
  void set_graph(const ::std::string& value);
  #if LANG_CXX11
  void set_graph(::std::string&& value);
  #endif
  void set_graph(const char* value);
  void set_graph(const char* value, size_t size);
  ::std::string* mutable_graph();
  ::std::string* release_graph();
  void set_allocated_graph(::std::string* graph);

  // optional string cpkt = 6 [default = "seg_model_last.ckpt"];
  bool has_cpkt() const;
  void clear_cpkt();
  static const int kCpktFieldNumber = 6;
  const ::std::string& cpkt() const;
  void set_cpkt(const ::std::string& value);
  #if LANG_CXX11
  void set_cpkt(::std::string&& value);
  #endif
  void set_cpkt(const char* value);
  void set_cpkt(const char* value, size_t size);
  ::std::string* mutable_cpkt();
  ::std::string* release_cpkt();
  void set_allocated_cpkt(::std::string* cpkt);

  // optional .Measure.Area3d area = 4;
  bool has_area() const;
  void clear_area();
  static const int kAreaFieldNumber = 4;
  const ::Measure::Area3d& area() const;
  ::Measure::Area3d* release_area();
  ::Measure::Area3d* mutable_area();
  void set_allocated_area(::Measure::Area3d* area);

  // optional int64 point_size = 1 [default = 8192];
  bool has_point_size() const;
  void clear_point_size();
  static const int kPointSizeFieldNumber = 1;
  ::google::protobuf::int64 point_size() const;
  void set_point_size(::google::protobuf::int64 value);

  // optional int64 cls_num = 2 [default = 3];
  bool has_cls_num() const;
  void clear_cls_num();
  static const int kClsNumFieldNumber = 2;
  ::google::protobuf::int64 cls_num() const;
  void set_cls_num(::google::protobuf::int64 value);

  // optional double freq = 3 [default = 50];
  bool has_freq() const;
  void clear_freq();
  static const int kFreqFieldNumber = 3;
  double freq() const;
  void set_freq(double value);

  // @@protoc_insertion_point(class_scope:Measure.PointSiftParameter)
 private:
  void set_has_point_size();
  void clear_has_point_size();
  void set_has_cls_num();
  void clear_has_cls_num();
  void set_has_freq();
  void clear_has_freq();
  void set_has_area();
  void clear_has_area();
  void set_has_graph();
  void clear_has_graph();
  void set_has_cpkt();
  void clear_has_cpkt();

  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
  ::google::protobuf::internal::HasBits<1> _has_bits_;
  mutable int _cached_size_;
  static ::google::protobuf::internal::ExplicitlyConstructed< ::std::string> _default_graph_;
  ::google::protobuf::internal::ArenaStringPtr graph_;
  static ::google::protobuf::internal::ExplicitlyConstructed< ::std::string> _default_cpkt_;
  ::google::protobuf::internal::ArenaStringPtr cpkt_;
  ::Measure::Area3d* area_;
  ::google::protobuf::int64 point_size_;
  ::google::protobuf::int64 cls_num_;
  double freq_;
  friend struct ::protobuf_locater_5fparameter_2eproto::TableStruct;
  friend void ::protobuf_locater_5fparameter_2eproto::InitDefaultsPointSiftParameterImpl();
};
// -------------------------------------------------------------------

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

  cnnParameter(const cnnParameter& from);

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

  inline cnnParameter& operator=(cnnParameter&& 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 cnnParameter& default_instance();

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

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

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

  inline cnnParameter* New() const PROTOBUF_FINAL { return New(NULL); }

  cnnParameter* New(::google::protobuf::Arena* arena) const PROTOBUF_FINAL;
  void CopyFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
  void MergeFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
  void CopyFrom(const cnnParameter& from);
  void MergeFrom(const cnnParameter& from);
  void Clear() PROTOBUF_FINAL;
  bool IsInitialized() const PROTOBUF_FINAL;

  size_t ByteSizeLong() const PROTOBUF_FINAL;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input) PROTOBUF_FINAL;
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const PROTOBUF_FINAL;
  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
      bool deterministic, ::google::protobuf::uint8* target) const PROTOBUF_FINAL;
  int GetCachedSize() const PROTOBUF_FINAL { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const PROTOBUF_FINAL;
  void InternalSwap(cnnParameter* other);
  private:
  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
    return NULL;
  }
  inline void* MaybeArenaPtr() const {
    return NULL;
  }
  public:

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

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

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

  // optional string weights_file = 6 [default = "frozen_model.pb"];
  bool has_weights_file() const;
  void clear_weights_file();
  static const int kWeightsFileFieldNumber = 6;
  const ::std::string& weights_file() const;
  void set_weights_file(const ::std::string& value);
  #if LANG_CXX11
  void set_weights_file(::std::string&& value);
  #endif
  void set_weights_file(const char* value);
  void set_weights_file(const char* value, size_t size);
  ::std::string* mutable_weights_file();
  ::std::string* release_weights_file();
  void set_allocated_weights_file(::std::string* weights_file);

  // optional int64 length = 1 [default = 224];
  bool has_length() const;
  void clear_length();
  static const int kLengthFieldNumber = 1;
  ::google::protobuf::int64 length() const;
  void set_length(::google::protobuf::int64 value);

  // optional int64 width = 2 [default = 224];
  bool has_width() const;
  void clear_width();
  static const int kWidthFieldNumber = 2;
  ::google::protobuf::int64 width() const;
  void set_width(::google::protobuf::int64 value);

  // optional int64 height = 3 [default = 96];
  bool has_height() const;
  void clear_height();
  static const int kHeightFieldNumber = 3;
  ::google::protobuf::int64 height() const;
  void set_height(::google::protobuf::int64 value);

  // optional int64 freq = 4 [default = 25];
  bool has_freq() const;
  void clear_freq();
  static const int kFreqFieldNumber = 4;
  ::google::protobuf::int64 freq() const;
  void set_freq(::google::protobuf::int64 value);

  // optional int64 nclass = 5 [default = 3];
  bool has_nclass() const;
  void clear_nclass();
  static const int kNclassFieldNumber = 5;
  ::google::protobuf::int64 nclass() const;
  void set_nclass(::google::protobuf::int64 value);

  // @@protoc_insertion_point(class_scope:Measure.cnnParameter)
 private:
  void set_has_length();
  void clear_has_length();
  void set_has_width();
  void clear_has_width();
  void set_has_height();
  void clear_has_height();
  void set_has_freq();
  void clear_has_freq();
  void set_has_nclass();
  void clear_has_nclass();
  void set_has_weights_file();
  void clear_has_weights_file();

  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
  ::google::protobuf::internal::HasBits<1> _has_bits_;
  mutable int _cached_size_;
  static ::google::protobuf::internal::ExplicitlyConstructed< ::std::string> _default_weights_file_;
  ::google::protobuf::internal::ArenaStringPtr weights_file_;
  ::google::protobuf::int64 length_;
  ::google::protobuf::int64 width_;
  ::google::protobuf::int64 height_;
  ::google::protobuf::int64 freq_;
  ::google::protobuf::int64 nclass_;
  friend struct ::protobuf_locater_5fparameter_2eproto::TableStruct;
  friend void ::protobuf_locater_5fparameter_2eproto::InitDefaultscnnParameterImpl();
};
// -------------------------------------------------------------------

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

  LocateParameter(const LocateParameter& from);

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

  inline LocateParameter& operator=(LocateParameter&& 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 LocateParameter& default_instance();

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

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

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

  inline LocateParameter* New() const PROTOBUF_FINAL { return New(NULL); }

  LocateParameter* New(::google::protobuf::Arena* arena) const PROTOBUF_FINAL;
  void CopyFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
  void MergeFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
  void CopyFrom(const LocateParameter& from);
  void MergeFrom(const LocateParameter& from);
  void Clear() PROTOBUF_FINAL;
  bool IsInitialized() const PROTOBUF_FINAL;

  size_t ByteSizeLong() const PROTOBUF_FINAL;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input) PROTOBUF_FINAL;
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const PROTOBUF_FINAL;
  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
      bool deterministic, ::google::protobuf::uint8* target) const PROTOBUF_FINAL;
  int GetCachedSize() const PROTOBUF_FINAL { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const PROTOBUF_FINAL;
  void InternalSwap(LocateParameter* other);
  private:
  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
    return NULL;
  }
  inline void* MaybeArenaPtr() const {
    return NULL;
  }
  public:

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

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

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

  // optional .Measure.Area3d area = 1;
  bool has_area() const;
  void clear_area();
  static const int kAreaFieldNumber = 1;
  const ::Measure::Area3d& area() const;
  ::Measure::Area3d* release_area();
  ::Measure::Area3d* mutable_area();
  void set_allocated_area(::Measure::Area3d* area);

  // optional .Measure.cnnParameter net_3dcnn_parameter = 2;
  bool has_net_3dcnn_parameter() const;
  void clear_net_3dcnn_parameter();
  static const int kNet3DcnnParameterFieldNumber = 2;
  const ::Measure::cnnParameter& net_3dcnn_parameter() const;
  ::Measure::cnnParameter* release_net_3dcnn_parameter();
  ::Measure::cnnParameter* mutable_net_3dcnn_parameter();
  void set_allocated_net_3dcnn_parameter(::Measure::cnnParameter* net_3dcnn_parameter);

  // optional .Measure.PointSiftParameter seg_parameter = 3;
  bool has_seg_parameter() const;
  void clear_seg_parameter();
  static const int kSegParameterFieldNumber = 3;
  const ::Measure::PointSiftParameter& seg_parameter() const;
  ::Measure::PointSiftParameter* release_seg_parameter();
  ::Measure::PointSiftParameter* mutable_seg_parameter();
  void set_allocated_seg_parameter(::Measure::PointSiftParameter* seg_parameter);

  // optional .Measure.YoloParameter yolo_parameter = 4;
  bool has_yolo_parameter() const;
  void clear_yolo_parameter();
  static const int kYoloParameterFieldNumber = 4;
  const ::Measure::YoloParameter& yolo_parameter() const;
  ::Measure::YoloParameter* release_yolo_parameter();
  ::Measure::YoloParameter* mutable_yolo_parameter();
  void set_allocated_yolo_parameter(::Measure::YoloParameter* yolo_parameter);

  // @@protoc_insertion_point(class_scope:Measure.LocateParameter)
 private:
  void set_has_area();
  void clear_has_area();
  void set_has_net_3dcnn_parameter();
  void clear_has_net_3dcnn_parameter();
  void set_has_seg_parameter();
  void clear_has_seg_parameter();
  void set_has_yolo_parameter();
  void clear_has_yolo_parameter();

  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
  ::google::protobuf::internal::HasBits<1> _has_bits_;
  mutable int _cached_size_;
  ::Measure::Area3d* area_;
  ::Measure::cnnParameter* net_3dcnn_parameter_;
  ::Measure::PointSiftParameter* seg_parameter_;
  ::Measure::YoloParameter* yolo_parameter_;
  friend struct ::protobuf_locater_5fparameter_2eproto::TableStruct;
  friend void ::protobuf_locater_5fparameter_2eproto::InitDefaultsLocateParameterImpl();
};
// ===================================================================


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

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

// optional double x_min = 1 [default = 0];
inline bool Area3d::has_x_min() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void Area3d::set_has_x_min() {
  _has_bits_[0] |= 0x00000001u;
}
inline void Area3d::clear_has_x_min() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void Area3d::clear_x_min() {
  x_min_ = 0;
  clear_has_x_min();
}
inline double Area3d::x_min() const {
  // @@protoc_insertion_point(field_get:Measure.Area3d.x_min)
  return x_min_;
}
inline void Area3d::set_x_min(double value) {
  set_has_x_min();
  x_min_ = value;
  // @@protoc_insertion_point(field_set:Measure.Area3d.x_min)
}

// optional double x_max = 2 [default = 12000];
inline bool Area3d::has_x_max() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void Area3d::set_has_x_max() {
  _has_bits_[0] |= 0x00000002u;
}
inline void Area3d::clear_has_x_max() {
  _has_bits_[0] &= ~0x00000002u;
}
inline void Area3d::clear_x_max() {
  x_max_ = 12000;
  clear_has_x_max();
}
inline double Area3d::x_max() const {
  // @@protoc_insertion_point(field_get:Measure.Area3d.x_max)
  return x_max_;
}
inline void Area3d::set_x_max(double value) {
  set_has_x_max();
  x_max_ = value;
  // @@protoc_insertion_point(field_set:Measure.Area3d.x_max)
}

// optional double y_min = 3 [default = 4500];
inline bool Area3d::has_y_min() const {
  return (_has_bits_[0] & 0x00000004u) != 0;
}
inline void Area3d::set_has_y_min() {
  _has_bits_[0] |= 0x00000004u;
}
inline void Area3d::clear_has_y_min() {
  _has_bits_[0] &= ~0x00000004u;
}
inline void Area3d::clear_y_min() {
  y_min_ = 4500;
  clear_has_y_min();
}
inline double Area3d::y_min() const {
  // @@protoc_insertion_point(field_get:Measure.Area3d.y_min)
  return y_min_;
}
inline void Area3d::set_y_min(double value) {
  set_has_y_min();
  y_min_ = value;
  // @@protoc_insertion_point(field_set:Measure.Area3d.y_min)
}

// optional double y_max = 4 [default = 11000];
inline bool Area3d::has_y_max() const {
  return (_has_bits_[0] & 0x00000008u) != 0;
}
inline void Area3d::set_has_y_max() {
  _has_bits_[0] |= 0x00000008u;
}
inline void Area3d::clear_has_y_max() {
  _has_bits_[0] &= ~0x00000008u;
}
inline void Area3d::clear_y_max() {
  y_max_ = 11000;
  clear_has_y_max();
}
inline double Area3d::y_max() const {
  // @@protoc_insertion_point(field_get:Measure.Area3d.y_max)
  return y_max_;
}
inline void Area3d::set_y_max(double value) {
  set_has_y_max();
  y_max_ = value;
  // @@protoc_insertion_point(field_set:Measure.Area3d.y_max)
}

// optional double z_min = 5 [default = 60];
inline bool Area3d::has_z_min() const {
  return (_has_bits_[0] & 0x00000010u) != 0;
}
inline void Area3d::set_has_z_min() {
  _has_bits_[0] |= 0x00000010u;
}
inline void Area3d::clear_has_z_min() {
  _has_bits_[0] &= ~0x00000010u;
}
inline void Area3d::clear_z_min() {
  z_min_ = 60;
  clear_has_z_min();
}
inline double Area3d::z_min() const {
  // @@protoc_insertion_point(field_get:Measure.Area3d.z_min)
  return z_min_;
}
inline void Area3d::set_z_min(double value) {
  set_has_z_min();
  z_min_ = value;
  // @@protoc_insertion_point(field_set:Measure.Area3d.z_min)
}

// optional double z_max = 6 [default = 3000];
inline bool Area3d::has_z_max() const {
  return (_has_bits_[0] & 0x00000020u) != 0;
}
inline void Area3d::set_has_z_max() {
  _has_bits_[0] |= 0x00000020u;
}
inline void Area3d::clear_has_z_max() {
  _has_bits_[0] &= ~0x00000020u;
}
inline void Area3d::clear_z_max() {
  z_max_ = 3000;
  clear_has_z_max();
}
inline double Area3d::z_max() const {
  // @@protoc_insertion_point(field_get:Measure.Area3d.z_max)
  return z_max_;
}
inline void Area3d::set_z_max(double value) {
  set_has_z_max();
  z_max_ = value;
  // @@protoc_insertion_point(field_set:Measure.Area3d.z_max)
}

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

// YoloParameter

// optional string cfg = 1 [default = ""];
inline bool YoloParameter::has_cfg() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void YoloParameter::set_has_cfg() {
  _has_bits_[0] |= 0x00000001u;
}
inline void YoloParameter::clear_has_cfg() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void YoloParameter::clear_cfg() {
  cfg_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  clear_has_cfg();
}
inline const ::std::string& YoloParameter::cfg() const {
  // @@protoc_insertion_point(field_get:Measure.YoloParameter.cfg)
  return cfg_.GetNoArena();
}
inline void YoloParameter::set_cfg(const ::std::string& value) {
  set_has_cfg();
  cfg_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:Measure.YoloParameter.cfg)
}
#if LANG_CXX11
inline void YoloParameter::set_cfg(::std::string&& value) {
  set_has_cfg();
  cfg_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:Measure.YoloParameter.cfg)
}
#endif
inline void YoloParameter::set_cfg(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  set_has_cfg();
  cfg_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:Measure.YoloParameter.cfg)
}
inline void YoloParameter::set_cfg(const char* value, size_t size) {
  set_has_cfg();
  cfg_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:Measure.YoloParameter.cfg)
}
inline ::std::string* YoloParameter::mutable_cfg() {
  set_has_cfg();
  // @@protoc_insertion_point(field_mutable:Measure.YoloParameter.cfg)
  return cfg_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline ::std::string* YoloParameter::release_cfg() {
  // @@protoc_insertion_point(field_release:Measure.YoloParameter.cfg)
  clear_has_cfg();
  return cfg_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline void YoloParameter::set_allocated_cfg(::std::string* cfg) {
  if (cfg != NULL) {
    set_has_cfg();
  } else {
    clear_has_cfg();
  }
  cfg_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), cfg);
  // @@protoc_insertion_point(field_set_allocated:Measure.YoloParameter.cfg)
}

// optional string weights = 2 [default = ""];
inline bool YoloParameter::has_weights() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void YoloParameter::set_has_weights() {
  _has_bits_[0] |= 0x00000002u;
}
inline void YoloParameter::clear_has_weights() {
  _has_bits_[0] &= ~0x00000002u;
}
inline void YoloParameter::clear_weights() {
  weights_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  clear_has_weights();
}
inline const ::std::string& YoloParameter::weights() const {
  // @@protoc_insertion_point(field_get:Measure.YoloParameter.weights)
  return weights_.GetNoArena();
}
inline void YoloParameter::set_weights(const ::std::string& value) {
  set_has_weights();
  weights_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:Measure.YoloParameter.weights)
}
#if LANG_CXX11
inline void YoloParameter::set_weights(::std::string&& value) {
  set_has_weights();
  weights_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:Measure.YoloParameter.weights)
}
#endif
inline void YoloParameter::set_weights(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  set_has_weights();
  weights_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:Measure.YoloParameter.weights)
}
inline void YoloParameter::set_weights(const char* value, size_t size) {
  set_has_weights();
  weights_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:Measure.YoloParameter.weights)
}
inline ::std::string* YoloParameter::mutable_weights() {
  set_has_weights();
  // @@protoc_insertion_point(field_mutable:Measure.YoloParameter.weights)
  return weights_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline ::std::string* YoloParameter::release_weights() {
  // @@protoc_insertion_point(field_release:Measure.YoloParameter.weights)
  clear_has_weights();
  return weights_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline void YoloParameter::set_allocated_weights(::std::string* weights) {
  if (weights != NULL) {
    set_has_weights();
  } else {
    clear_has_weights();
  }
  weights_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), weights);
  // @@protoc_insertion_point(field_set_allocated:Measure.YoloParameter.weights)
}

// optional double min_x = 3 [default = 0];
inline bool YoloParameter::has_min_x() const {
  return (_has_bits_[0] & 0x00000004u) != 0;
}
inline void YoloParameter::set_has_min_x() {
  _has_bits_[0] |= 0x00000004u;
}
inline void YoloParameter::clear_has_min_x() {
  _has_bits_[0] &= ~0x00000004u;
}
inline void YoloParameter::clear_min_x() {
  min_x_ = 0;
  clear_has_min_x();
}
inline double YoloParameter::min_x() const {
  // @@protoc_insertion_point(field_get:Measure.YoloParameter.min_x)
  return min_x_;
}
inline void YoloParameter::set_min_x(double value) {
  set_has_min_x();
  min_x_ = value;
  // @@protoc_insertion_point(field_set:Measure.YoloParameter.min_x)
}

// optional double max_x = 4 [default = 12000];
inline bool YoloParameter::has_max_x() const {
  return (_has_bits_[0] & 0x00000008u) != 0;
}
inline void YoloParameter::set_has_max_x() {
  _has_bits_[0] |= 0x00000008u;
}
inline void YoloParameter::clear_has_max_x() {
  _has_bits_[0] &= ~0x00000008u;
}
inline void YoloParameter::clear_max_x() {
  max_x_ = 12000;
  clear_has_max_x();
}
inline double YoloParameter::max_x() const {
  // @@protoc_insertion_point(field_get:Measure.YoloParameter.max_x)
  return max_x_;
}
inline void YoloParameter::set_max_x(double value) {
  set_has_max_x();
  max_x_ = value;
  // @@protoc_insertion_point(field_set:Measure.YoloParameter.max_x)
}

// optional double min_y = 5 [default = 4500];
inline bool YoloParameter::has_min_y() const {
  return (_has_bits_[0] & 0x00000010u) != 0;
}
inline void YoloParameter::set_has_min_y() {
  _has_bits_[0] |= 0x00000010u;
}
inline void YoloParameter::clear_has_min_y() {
  _has_bits_[0] &= ~0x00000010u;
}
inline void YoloParameter::clear_min_y() {
  min_y_ = 4500;
  clear_has_min_y();
}
inline double YoloParameter::min_y() const {
  // @@protoc_insertion_point(field_get:Measure.YoloParameter.min_y)
  return min_y_;
}
inline void YoloParameter::set_min_y(double value) {
  set_has_min_y();
  min_y_ = value;
  // @@protoc_insertion_point(field_set:Measure.YoloParameter.min_y)
}

// optional double max_y = 6 [default = 11000];
inline bool YoloParameter::has_max_y() const {
  return (_has_bits_[0] & 0x00000020u) != 0;
}
inline void YoloParameter::set_has_max_y() {
  _has_bits_[0] |= 0x00000020u;
}
inline void YoloParameter::clear_has_max_y() {
  _has_bits_[0] &= ~0x00000020u;
}
inline void YoloParameter::clear_max_y() {
  max_y_ = 11000;
  clear_has_max_y();
}
inline double YoloParameter::max_y() const {
  // @@protoc_insertion_point(field_get:Measure.YoloParameter.max_y)
  return max_y_;
}
inline void YoloParameter::set_max_y(double value) {
  set_has_max_y();
  max_y_ = value;
  // @@protoc_insertion_point(field_set:Measure.YoloParameter.max_y)
}

// optional double freq = 7 [default = 25];
inline bool YoloParameter::has_freq() const {
  return (_has_bits_[0] & 0x00000040u) != 0;
}
inline void YoloParameter::set_has_freq() {
  _has_bits_[0] |= 0x00000040u;
}
inline void YoloParameter::clear_has_freq() {
  _has_bits_[0] &= ~0x00000040u;
}
inline void YoloParameter::clear_freq() {
  freq_ = 25;
  clear_has_freq();
}
inline double YoloParameter::freq() const {
  // @@protoc_insertion_point(field_get:Measure.YoloParameter.freq)
  return freq_;
}
inline void YoloParameter::set_freq(double value) {
  set_has_freq();
  freq_ = value;
  // @@protoc_insertion_point(field_set:Measure.YoloParameter.freq)
}

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

// PointSiftParameter

// optional int64 point_size = 1 [default = 8192];
inline bool PointSiftParameter::has_point_size() const {
  return (_has_bits_[0] & 0x00000008u) != 0;
}
inline void PointSiftParameter::set_has_point_size() {
  _has_bits_[0] |= 0x00000008u;
}
inline void PointSiftParameter::clear_has_point_size() {
  _has_bits_[0] &= ~0x00000008u;
}
inline void PointSiftParameter::clear_point_size() {
  point_size_ = GOOGLE_LONGLONG(8192);
  clear_has_point_size();
}
inline ::google::protobuf::int64 PointSiftParameter::point_size() const {
  // @@protoc_insertion_point(field_get:Measure.PointSiftParameter.point_size)
  return point_size_;
}
inline void PointSiftParameter::set_point_size(::google::protobuf::int64 value) {
  set_has_point_size();
  point_size_ = value;
  // @@protoc_insertion_point(field_set:Measure.PointSiftParameter.point_size)
}

// optional int64 cls_num = 2 [default = 3];
inline bool PointSiftParameter::has_cls_num() const {
  return (_has_bits_[0] & 0x00000010u) != 0;
}
inline void PointSiftParameter::set_has_cls_num() {
  _has_bits_[0] |= 0x00000010u;
}
inline void PointSiftParameter::clear_has_cls_num() {
  _has_bits_[0] &= ~0x00000010u;
}
inline void PointSiftParameter::clear_cls_num() {
  cls_num_ = GOOGLE_LONGLONG(3);
  clear_has_cls_num();
}
inline ::google::protobuf::int64 PointSiftParameter::cls_num() const {
  // @@protoc_insertion_point(field_get:Measure.PointSiftParameter.cls_num)
  return cls_num_;
}
inline void PointSiftParameter::set_cls_num(::google::protobuf::int64 value) {
  set_has_cls_num();
  cls_num_ = value;
  // @@protoc_insertion_point(field_set:Measure.PointSiftParameter.cls_num)
}

// optional double freq = 3 [default = 50];
inline bool PointSiftParameter::has_freq() const {
  return (_has_bits_[0] & 0x00000020u) != 0;
}
inline void PointSiftParameter::set_has_freq() {
  _has_bits_[0] |= 0x00000020u;
}
inline void PointSiftParameter::clear_has_freq() {
  _has_bits_[0] &= ~0x00000020u;
}
inline void PointSiftParameter::clear_freq() {
  freq_ = 50;
  clear_has_freq();
}
inline double PointSiftParameter::freq() const {
  // @@protoc_insertion_point(field_get:Measure.PointSiftParameter.freq)
  return freq_;
}
inline void PointSiftParameter::set_freq(double value) {
  set_has_freq();
  freq_ = value;
  // @@protoc_insertion_point(field_set:Measure.PointSiftParameter.freq)
}

// optional .Measure.Area3d area = 4;
inline bool PointSiftParameter::has_area() const {
  return (_has_bits_[0] & 0x00000004u) != 0;
}
inline void PointSiftParameter::set_has_area() {
  _has_bits_[0] |= 0x00000004u;
}
inline void PointSiftParameter::clear_has_area() {
  _has_bits_[0] &= ~0x00000004u;
}
inline void PointSiftParameter::clear_area() {
  if (area_ != NULL) area_->Clear();
  clear_has_area();
}
inline const ::Measure::Area3d& PointSiftParameter::area() const {
  const ::Measure::Area3d* p = area_;
  // @@protoc_insertion_point(field_get:Measure.PointSiftParameter.area)
  return p != NULL ? *p : *reinterpret_cast<const ::Measure::Area3d*>(
      &::Measure::_Area3d_default_instance_);
}
inline ::Measure::Area3d* PointSiftParameter::release_area() {
  // @@protoc_insertion_point(field_release:Measure.PointSiftParameter.area)
  clear_has_area();
  ::Measure::Area3d* temp = area_;
  area_ = NULL;
  return temp;
}
inline ::Measure::Area3d* PointSiftParameter::mutable_area() {
  set_has_area();
  if (area_ == NULL) {
    area_ = new ::Measure::Area3d;
  }
  // @@protoc_insertion_point(field_mutable:Measure.PointSiftParameter.area)
  return area_;
}
inline void PointSiftParameter::set_allocated_area(::Measure::Area3d* area) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete area_;
  }
  if (area) {
    ::google::protobuf::Arena* submessage_arena = NULL;
    if (message_arena != submessage_arena) {
      area = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, area, submessage_arena);
    }
    set_has_area();
  } else {
    clear_has_area();
  }
  area_ = area;
  // @@protoc_insertion_point(field_set_allocated:Measure.PointSiftParameter.area)
}

// optional string graph = 5 [default = "seg_model_last.ckpt.meta"];
inline bool PointSiftParameter::has_graph() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void PointSiftParameter::set_has_graph() {
  _has_bits_[0] |= 0x00000001u;
}
inline void PointSiftParameter::clear_has_graph() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void PointSiftParameter::clear_graph() {
  graph_.ClearToDefaultNoArena(&::Measure::PointSiftParameter::_default_graph_.get());
  clear_has_graph();
}
inline const ::std::string& PointSiftParameter::graph() const {
  // @@protoc_insertion_point(field_get:Measure.PointSiftParameter.graph)
  return graph_.GetNoArena();
}
inline void PointSiftParameter::set_graph(const ::std::string& value) {
  set_has_graph();
  graph_.SetNoArena(&::Measure::PointSiftParameter::_default_graph_.get(), value);
  // @@protoc_insertion_point(field_set:Measure.PointSiftParameter.graph)
}
#if LANG_CXX11
inline void PointSiftParameter::set_graph(::std::string&& value) {
  set_has_graph();
  graph_.SetNoArena(
    &::Measure::PointSiftParameter::_default_graph_.get(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:Measure.PointSiftParameter.graph)
}
#endif
inline void PointSiftParameter::set_graph(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  set_has_graph();
  graph_.SetNoArena(&::Measure::PointSiftParameter::_default_graph_.get(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:Measure.PointSiftParameter.graph)
}
inline void PointSiftParameter::set_graph(const char* value, size_t size) {
  set_has_graph();
  graph_.SetNoArena(&::Measure::PointSiftParameter::_default_graph_.get(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:Measure.PointSiftParameter.graph)
}
inline ::std::string* PointSiftParameter::mutable_graph() {
  set_has_graph();
  // @@protoc_insertion_point(field_mutable:Measure.PointSiftParameter.graph)
  return graph_.MutableNoArena(&::Measure::PointSiftParameter::_default_graph_.get());
}
inline ::std::string* PointSiftParameter::release_graph() {
  // @@protoc_insertion_point(field_release:Measure.PointSiftParameter.graph)
  clear_has_graph();
  return graph_.ReleaseNoArena(&::Measure::PointSiftParameter::_default_graph_.get());
}
inline void PointSiftParameter::set_allocated_graph(::std::string* graph) {
  if (graph != NULL) {
    set_has_graph();
  } else {
    clear_has_graph();
  }
  graph_.SetAllocatedNoArena(&::Measure::PointSiftParameter::_default_graph_.get(), graph);
  // @@protoc_insertion_point(field_set_allocated:Measure.PointSiftParameter.graph)
}

// optional string cpkt = 6 [default = "seg_model_last.ckpt"];
inline bool PointSiftParameter::has_cpkt() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void PointSiftParameter::set_has_cpkt() {
  _has_bits_[0] |= 0x00000002u;
}
inline void PointSiftParameter::clear_has_cpkt() {
  _has_bits_[0] &= ~0x00000002u;
}
inline void PointSiftParameter::clear_cpkt() {
  cpkt_.ClearToDefaultNoArena(&::Measure::PointSiftParameter::_default_cpkt_.get());
  clear_has_cpkt();
}
inline const ::std::string& PointSiftParameter::cpkt() const {
  // @@protoc_insertion_point(field_get:Measure.PointSiftParameter.cpkt)
  return cpkt_.GetNoArena();
}
inline void PointSiftParameter::set_cpkt(const ::std::string& value) {
  set_has_cpkt();
  cpkt_.SetNoArena(&::Measure::PointSiftParameter::_default_cpkt_.get(), value);
  // @@protoc_insertion_point(field_set:Measure.PointSiftParameter.cpkt)
}
#if LANG_CXX11
inline void PointSiftParameter::set_cpkt(::std::string&& value) {
  set_has_cpkt();
  cpkt_.SetNoArena(
    &::Measure::PointSiftParameter::_default_cpkt_.get(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:Measure.PointSiftParameter.cpkt)
}
#endif
inline void PointSiftParameter::set_cpkt(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  set_has_cpkt();
  cpkt_.SetNoArena(&::Measure::PointSiftParameter::_default_cpkt_.get(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:Measure.PointSiftParameter.cpkt)
}
inline void PointSiftParameter::set_cpkt(const char* value, size_t size) {
  set_has_cpkt();
  cpkt_.SetNoArena(&::Measure::PointSiftParameter::_default_cpkt_.get(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:Measure.PointSiftParameter.cpkt)
}
inline ::std::string* PointSiftParameter::mutable_cpkt() {
  set_has_cpkt();
  // @@protoc_insertion_point(field_mutable:Measure.PointSiftParameter.cpkt)
  return cpkt_.MutableNoArena(&::Measure::PointSiftParameter::_default_cpkt_.get());
}
inline ::std::string* PointSiftParameter::release_cpkt() {
  // @@protoc_insertion_point(field_release:Measure.PointSiftParameter.cpkt)
  clear_has_cpkt();
  return cpkt_.ReleaseNoArena(&::Measure::PointSiftParameter::_default_cpkt_.get());
}
inline void PointSiftParameter::set_allocated_cpkt(::std::string* cpkt) {
  if (cpkt != NULL) {
    set_has_cpkt();
  } else {
    clear_has_cpkt();
  }
  cpkt_.SetAllocatedNoArena(&::Measure::PointSiftParameter::_default_cpkt_.get(), cpkt);
  // @@protoc_insertion_point(field_set_allocated:Measure.PointSiftParameter.cpkt)
}

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

// cnnParameter

// optional int64 length = 1 [default = 224];
inline bool cnnParameter::has_length() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void cnnParameter::set_has_length() {
  _has_bits_[0] |= 0x00000002u;
}
inline void cnnParameter::clear_has_length() {
  _has_bits_[0] &= ~0x00000002u;
}
inline void cnnParameter::clear_length() {
  length_ = GOOGLE_LONGLONG(224);
  clear_has_length();
}
inline ::google::protobuf::int64 cnnParameter::length() const {
  // @@protoc_insertion_point(field_get:Measure.cnnParameter.length)
  return length_;
}
inline void cnnParameter::set_length(::google::protobuf::int64 value) {
  set_has_length();
  length_ = value;
  // @@protoc_insertion_point(field_set:Measure.cnnParameter.length)
}

// optional int64 width = 2 [default = 224];
inline bool cnnParameter::has_width() const {
  return (_has_bits_[0] & 0x00000004u) != 0;
}
inline void cnnParameter::set_has_width() {
  _has_bits_[0] |= 0x00000004u;
}
inline void cnnParameter::clear_has_width() {
  _has_bits_[0] &= ~0x00000004u;
}
inline void cnnParameter::clear_width() {
  width_ = GOOGLE_LONGLONG(224);
  clear_has_width();
}
inline ::google::protobuf::int64 cnnParameter::width() const {
  // @@protoc_insertion_point(field_get:Measure.cnnParameter.width)
  return width_;
}
inline void cnnParameter::set_width(::google::protobuf::int64 value) {
  set_has_width();
  width_ = value;
  // @@protoc_insertion_point(field_set:Measure.cnnParameter.width)
}

// optional int64 height = 3 [default = 96];
inline bool cnnParameter::has_height() const {
  return (_has_bits_[0] & 0x00000008u) != 0;
}
inline void cnnParameter::set_has_height() {
  _has_bits_[0] |= 0x00000008u;
}
inline void cnnParameter::clear_has_height() {
  _has_bits_[0] &= ~0x00000008u;
}
inline void cnnParameter::clear_height() {
  height_ = GOOGLE_LONGLONG(96);
  clear_has_height();
}
inline ::google::protobuf::int64 cnnParameter::height() const {
  // @@protoc_insertion_point(field_get:Measure.cnnParameter.height)
  return height_;
}
inline void cnnParameter::set_height(::google::protobuf::int64 value) {
  set_has_height();
  height_ = value;
  // @@protoc_insertion_point(field_set:Measure.cnnParameter.height)
}

// optional int64 freq = 4 [default = 25];
inline bool cnnParameter::has_freq() const {
  return (_has_bits_[0] & 0x00000010u) != 0;
}
inline void cnnParameter::set_has_freq() {
  _has_bits_[0] |= 0x00000010u;
}
inline void cnnParameter::clear_has_freq() {
  _has_bits_[0] &= ~0x00000010u;
}
inline void cnnParameter::clear_freq() {
  freq_ = GOOGLE_LONGLONG(25);
  clear_has_freq();
}
inline ::google::protobuf::int64 cnnParameter::freq() const {
  // @@protoc_insertion_point(field_get:Measure.cnnParameter.freq)
  return freq_;
}
inline void cnnParameter::set_freq(::google::protobuf::int64 value) {
  set_has_freq();
  freq_ = value;
  // @@protoc_insertion_point(field_set:Measure.cnnParameter.freq)
}

// optional int64 nclass = 5 [default = 3];
inline bool cnnParameter::has_nclass() const {
  return (_has_bits_[0] & 0x00000020u) != 0;
}
inline void cnnParameter::set_has_nclass() {
  _has_bits_[0] |= 0x00000020u;
}
inline void cnnParameter::clear_has_nclass() {
  _has_bits_[0] &= ~0x00000020u;
}
inline void cnnParameter::clear_nclass() {
  nclass_ = GOOGLE_LONGLONG(3);
  clear_has_nclass();
}
inline ::google::protobuf::int64 cnnParameter::nclass() const {
  // @@protoc_insertion_point(field_get:Measure.cnnParameter.nclass)
  return nclass_;
}
inline void cnnParameter::set_nclass(::google::protobuf::int64 value) {
  set_has_nclass();
  nclass_ = value;
  // @@protoc_insertion_point(field_set:Measure.cnnParameter.nclass)
}

// optional string weights_file = 6 [default = "frozen_model.pb"];
inline bool cnnParameter::has_weights_file() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void cnnParameter::set_has_weights_file() {
  _has_bits_[0] |= 0x00000001u;
}
inline void cnnParameter::clear_has_weights_file() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void cnnParameter::clear_weights_file() {
  weights_file_.ClearToDefaultNoArena(&::Measure::cnnParameter::_default_weights_file_.get());
  clear_has_weights_file();
}
inline const ::std::string& cnnParameter::weights_file() const {
  // @@protoc_insertion_point(field_get:Measure.cnnParameter.weights_file)
  return weights_file_.GetNoArena();
}
inline void cnnParameter::set_weights_file(const ::std::string& value) {
  set_has_weights_file();
  weights_file_.SetNoArena(&::Measure::cnnParameter::_default_weights_file_.get(), value);
  // @@protoc_insertion_point(field_set:Measure.cnnParameter.weights_file)
}
#if LANG_CXX11
inline void cnnParameter::set_weights_file(::std::string&& value) {
  set_has_weights_file();
  weights_file_.SetNoArena(
    &::Measure::cnnParameter::_default_weights_file_.get(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:Measure.cnnParameter.weights_file)
}
#endif
inline void cnnParameter::set_weights_file(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  set_has_weights_file();
  weights_file_.SetNoArena(&::Measure::cnnParameter::_default_weights_file_.get(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:Measure.cnnParameter.weights_file)
}
inline void cnnParameter::set_weights_file(const char* value, size_t size) {
  set_has_weights_file();
  weights_file_.SetNoArena(&::Measure::cnnParameter::_default_weights_file_.get(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:Measure.cnnParameter.weights_file)
}
inline ::std::string* cnnParameter::mutable_weights_file() {
  set_has_weights_file();
  // @@protoc_insertion_point(field_mutable:Measure.cnnParameter.weights_file)
  return weights_file_.MutableNoArena(&::Measure::cnnParameter::_default_weights_file_.get());
}
inline ::std::string* cnnParameter::release_weights_file() {
  // @@protoc_insertion_point(field_release:Measure.cnnParameter.weights_file)
  clear_has_weights_file();
  return weights_file_.ReleaseNoArena(&::Measure::cnnParameter::_default_weights_file_.get());
}
inline void cnnParameter::set_allocated_weights_file(::std::string* weights_file) {
  if (weights_file != NULL) {
    set_has_weights_file();
  } else {
    clear_has_weights_file();
  }
  weights_file_.SetAllocatedNoArena(&::Measure::cnnParameter::_default_weights_file_.get(), weights_file);
  // @@protoc_insertion_point(field_set_allocated:Measure.cnnParameter.weights_file)
}

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

// LocateParameter

// optional .Measure.Area3d area = 1;
inline bool LocateParameter::has_area() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void LocateParameter::set_has_area() {
  _has_bits_[0] |= 0x00000001u;
}
inline void LocateParameter::clear_has_area() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void LocateParameter::clear_area() {
  if (area_ != NULL) area_->Clear();
  clear_has_area();
}
inline const ::Measure::Area3d& LocateParameter::area() const {
  const ::Measure::Area3d* p = area_;
  // @@protoc_insertion_point(field_get:Measure.LocateParameter.area)
  return p != NULL ? *p : *reinterpret_cast<const ::Measure::Area3d*>(
      &::Measure::_Area3d_default_instance_);
}
inline ::Measure::Area3d* LocateParameter::release_area() {
  // @@protoc_insertion_point(field_release:Measure.LocateParameter.area)
  clear_has_area();
  ::Measure::Area3d* temp = area_;
  area_ = NULL;
  return temp;
}
inline ::Measure::Area3d* LocateParameter::mutable_area() {
  set_has_area();
  if (area_ == NULL) {
    area_ = new ::Measure::Area3d;
  }
  // @@protoc_insertion_point(field_mutable:Measure.LocateParameter.area)
  return area_;
}
inline void LocateParameter::set_allocated_area(::Measure::Area3d* area) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete area_;
  }
  if (area) {
    ::google::protobuf::Arena* submessage_arena = NULL;
    if (message_arena != submessage_arena) {
      area = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, area, submessage_arena);
    }
    set_has_area();
  } else {
    clear_has_area();
  }
  area_ = area;
  // @@protoc_insertion_point(field_set_allocated:Measure.LocateParameter.area)
}

// optional .Measure.cnnParameter net_3dcnn_parameter = 2;
inline bool LocateParameter::has_net_3dcnn_parameter() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void LocateParameter::set_has_net_3dcnn_parameter() {
  _has_bits_[0] |= 0x00000002u;
}
inline void LocateParameter::clear_has_net_3dcnn_parameter() {
  _has_bits_[0] &= ~0x00000002u;
}
inline void LocateParameter::clear_net_3dcnn_parameter() {
  if (net_3dcnn_parameter_ != NULL) net_3dcnn_parameter_->Clear();
  clear_has_net_3dcnn_parameter();
}
inline const ::Measure::cnnParameter& LocateParameter::net_3dcnn_parameter() const {
  const ::Measure::cnnParameter* p = net_3dcnn_parameter_;
  // @@protoc_insertion_point(field_get:Measure.LocateParameter.net_3dcnn_parameter)
  return p != NULL ? *p : *reinterpret_cast<const ::Measure::cnnParameter*>(
      &::Measure::_cnnParameter_default_instance_);
}
inline ::Measure::cnnParameter* LocateParameter::release_net_3dcnn_parameter() {
  // @@protoc_insertion_point(field_release:Measure.LocateParameter.net_3dcnn_parameter)
  clear_has_net_3dcnn_parameter();
  ::Measure::cnnParameter* temp = net_3dcnn_parameter_;
  net_3dcnn_parameter_ = NULL;
  return temp;
}
inline ::Measure::cnnParameter* LocateParameter::mutable_net_3dcnn_parameter() {
  set_has_net_3dcnn_parameter();
  if (net_3dcnn_parameter_ == NULL) {
    net_3dcnn_parameter_ = new ::Measure::cnnParameter;
  }
  // @@protoc_insertion_point(field_mutable:Measure.LocateParameter.net_3dcnn_parameter)
  return net_3dcnn_parameter_;
}
inline void LocateParameter::set_allocated_net_3dcnn_parameter(::Measure::cnnParameter* net_3dcnn_parameter) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete net_3dcnn_parameter_;
  }
  if (net_3dcnn_parameter) {
    ::google::protobuf::Arena* submessage_arena = NULL;
    if (message_arena != submessage_arena) {
      net_3dcnn_parameter = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, net_3dcnn_parameter, submessage_arena);
    }
    set_has_net_3dcnn_parameter();
  } else {
    clear_has_net_3dcnn_parameter();
  }
  net_3dcnn_parameter_ = net_3dcnn_parameter;
  // @@protoc_insertion_point(field_set_allocated:Measure.LocateParameter.net_3dcnn_parameter)
}

// optional .Measure.PointSiftParameter seg_parameter = 3;
inline bool LocateParameter::has_seg_parameter() const {
  return (_has_bits_[0] & 0x00000004u) != 0;
}
inline void LocateParameter::set_has_seg_parameter() {
  _has_bits_[0] |= 0x00000004u;
}
inline void LocateParameter::clear_has_seg_parameter() {
  _has_bits_[0] &= ~0x00000004u;
}
inline void LocateParameter::clear_seg_parameter() {
  if (seg_parameter_ != NULL) seg_parameter_->Clear();
  clear_has_seg_parameter();
}
inline const ::Measure::PointSiftParameter& LocateParameter::seg_parameter() const {
  const ::Measure::PointSiftParameter* p = seg_parameter_;
  // @@protoc_insertion_point(field_get:Measure.LocateParameter.seg_parameter)
  return p != NULL ? *p : *reinterpret_cast<const ::Measure::PointSiftParameter*>(
      &::Measure::_PointSiftParameter_default_instance_);
}
inline ::Measure::PointSiftParameter* LocateParameter::release_seg_parameter() {
  // @@protoc_insertion_point(field_release:Measure.LocateParameter.seg_parameter)
  clear_has_seg_parameter();
  ::Measure::PointSiftParameter* temp = seg_parameter_;
  seg_parameter_ = NULL;
  return temp;
}
inline ::Measure::PointSiftParameter* LocateParameter::mutable_seg_parameter() {
  set_has_seg_parameter();
  if (seg_parameter_ == NULL) {
    seg_parameter_ = new ::Measure::PointSiftParameter;
  }
  // @@protoc_insertion_point(field_mutable:Measure.LocateParameter.seg_parameter)
  return seg_parameter_;
}
inline void LocateParameter::set_allocated_seg_parameter(::Measure::PointSiftParameter* seg_parameter) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete seg_parameter_;
  }
  if (seg_parameter) {
    ::google::protobuf::Arena* submessage_arena = NULL;
    if (message_arena != submessage_arena) {
      seg_parameter = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, seg_parameter, submessage_arena);
    }
    set_has_seg_parameter();
  } else {
    clear_has_seg_parameter();
  }
  seg_parameter_ = seg_parameter;
  // @@protoc_insertion_point(field_set_allocated:Measure.LocateParameter.seg_parameter)
}

// optional .Measure.YoloParameter yolo_parameter = 4;
inline bool LocateParameter::has_yolo_parameter() const {
  return (_has_bits_[0] & 0x00000008u) != 0;
}
inline void LocateParameter::set_has_yolo_parameter() {
  _has_bits_[0] |= 0x00000008u;
}
inline void LocateParameter::clear_has_yolo_parameter() {
  _has_bits_[0] &= ~0x00000008u;
}
inline void LocateParameter::clear_yolo_parameter() {
  if (yolo_parameter_ != NULL) yolo_parameter_->Clear();
  clear_has_yolo_parameter();
}
inline const ::Measure::YoloParameter& LocateParameter::yolo_parameter() const {
  const ::Measure::YoloParameter* p = yolo_parameter_;
  // @@protoc_insertion_point(field_get:Measure.LocateParameter.yolo_parameter)
  return p != NULL ? *p : *reinterpret_cast<const ::Measure::YoloParameter*>(
      &::Measure::_YoloParameter_default_instance_);
}
inline ::Measure::YoloParameter* LocateParameter::release_yolo_parameter() {
  // @@protoc_insertion_point(field_release:Measure.LocateParameter.yolo_parameter)
  clear_has_yolo_parameter();
  ::Measure::YoloParameter* temp = yolo_parameter_;
  yolo_parameter_ = NULL;
  return temp;
}
inline ::Measure::YoloParameter* LocateParameter::mutable_yolo_parameter() {
  set_has_yolo_parameter();
  if (yolo_parameter_ == NULL) {
    yolo_parameter_ = new ::Measure::YoloParameter;
  }
  // @@protoc_insertion_point(field_mutable:Measure.LocateParameter.yolo_parameter)
  return yolo_parameter_;
}
inline void LocateParameter::set_allocated_yolo_parameter(::Measure::YoloParameter* yolo_parameter) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete yolo_parameter_;
  }
  if (yolo_parameter) {
    ::google::protobuf::Arena* submessage_arena = NULL;
    if (message_arena != submessage_arena) {
      yolo_parameter = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, yolo_parameter, submessage_arena);
    }
    set_has_yolo_parameter();
  } else {
    clear_has_yolo_parameter();
  }
  yolo_parameter_ = yolo_parameter;
  // @@protoc_insertion_point(field_set_allocated:Measure.LocateParameter.yolo_parameter)
}

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

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

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

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


// @@protoc_insertion_point(namespace_scope)

}  // namespace Measure

// @@protoc_insertion_point(global_scope)

#endif  // PROTOBUF_locater_5fparameter_2eproto__INCLUDED
