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

#include "locater_parameter.pb.h"

#include <algorithm>

#include <google/protobuf/stubs/common.h>
#include <google/protobuf/stubs/port.h>
#include <google/protobuf/stubs/once.h>
#include <google/protobuf/io/coded_stream.h>
#include <google/protobuf/wire_format_lite_inl.h>
#include <google/protobuf/descriptor.h>
#include <google/protobuf/generated_message_reflection.h>
#include <google/protobuf/reflection_ops.h>
#include <google/protobuf/wire_format.h>
// This is a temporary google only hack
#ifdef GOOGLE_PROTOBUF_ENFORCE_UNIQUENESS
#include "third_party/protobuf/version.h"
#endif
// @@protoc_insertion_point(includes)
namespace Measure {
class Area3dDefaultTypeInternal {
 public:
  ::google::protobuf::internal::ExplicitlyConstructed<Area3d>
      _instance;
} _Area3d_default_instance_;
class YoloParameterDefaultTypeInternal {
 public:
  ::google::protobuf::internal::ExplicitlyConstructed<YoloParameter>
      _instance;
} _YoloParameter_default_instance_;
class PointSiftParameterDefaultTypeInternal {
 public:
  ::google::protobuf::internal::ExplicitlyConstructed<PointSiftParameter>
      _instance;
} _PointSiftParameter_default_instance_;
class cnnParameterDefaultTypeInternal {
 public:
  ::google::protobuf::internal::ExplicitlyConstructed<cnnParameter>
      _instance;
} _cnnParameter_default_instance_;
class LocateParameterDefaultTypeInternal {
 public:
  ::google::protobuf::internal::ExplicitlyConstructed<LocateParameter>
      _instance;
} _LocateParameter_default_instance_;
}  // namespace Measure
namespace protobuf_locater_5fparameter_2eproto {
void InitDefaultsArea3dImpl() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

#ifdef GOOGLE_PROTOBUF_ENFORCE_UNIQUENESS
  ::google::protobuf::internal::InitProtobufDefaultsForceUnique();
#else
  ::google::protobuf::internal::InitProtobufDefaults();
#endif  // GOOGLE_PROTOBUF_ENFORCE_UNIQUENESS
  {
    void* ptr = &::Measure::_Area3d_default_instance_;
    new (ptr) ::Measure::Area3d();
    ::google::protobuf::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Measure::Area3d::InitAsDefaultInstance();
}

void InitDefaultsArea3d() {
  static GOOGLE_PROTOBUF_DECLARE_ONCE(once);
  ::google::protobuf::GoogleOnceInit(&once, &InitDefaultsArea3dImpl);
}

void InitDefaultsYoloParameterImpl() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

#ifdef GOOGLE_PROTOBUF_ENFORCE_UNIQUENESS
  ::google::protobuf::internal::InitProtobufDefaultsForceUnique();
#else
  ::google::protobuf::internal::InitProtobufDefaults();
#endif  // GOOGLE_PROTOBUF_ENFORCE_UNIQUENESS
  {
    void* ptr = &::Measure::_YoloParameter_default_instance_;
    new (ptr) ::Measure::YoloParameter();
    ::google::protobuf::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Measure::YoloParameter::InitAsDefaultInstance();
}

void InitDefaultsYoloParameter() {
  static GOOGLE_PROTOBUF_DECLARE_ONCE(once);
  ::google::protobuf::GoogleOnceInit(&once, &InitDefaultsYoloParameterImpl);
}

void InitDefaultsPointSiftParameterImpl() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

#ifdef GOOGLE_PROTOBUF_ENFORCE_UNIQUENESS
  ::google::protobuf::internal::InitProtobufDefaultsForceUnique();
#else
  ::google::protobuf::internal::InitProtobufDefaults();
#endif  // GOOGLE_PROTOBUF_ENFORCE_UNIQUENESS
  protobuf_locater_5fparameter_2eproto::InitDefaultsArea3d();
  ::Measure::PointSiftParameter::_default_graph_.DefaultConstruct();
  *::Measure::PointSiftParameter::_default_graph_.get_mutable() = ::std::string("seg_model_last.ckpt.meta", 24);
  ::google::protobuf::internal::OnShutdownDestroyString(
      ::Measure::PointSiftParameter::_default_graph_.get_mutable());
  ::Measure::PointSiftParameter::_default_cpkt_.DefaultConstruct();
  *::Measure::PointSiftParameter::_default_cpkt_.get_mutable() = ::std::string("seg_model_last.ckpt", 19);
  ::google::protobuf::internal::OnShutdownDestroyString(
      ::Measure::PointSiftParameter::_default_cpkt_.get_mutable());
  {
    void* ptr = &::Measure::_PointSiftParameter_default_instance_;
    new (ptr) ::Measure::PointSiftParameter();
    ::google::protobuf::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Measure::PointSiftParameter::InitAsDefaultInstance();
}

void InitDefaultsPointSiftParameter() {
  static GOOGLE_PROTOBUF_DECLARE_ONCE(once);
  ::google::protobuf::GoogleOnceInit(&once, &InitDefaultsPointSiftParameterImpl);
}

void InitDefaultscnnParameterImpl() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

#ifdef GOOGLE_PROTOBUF_ENFORCE_UNIQUENESS
  ::google::protobuf::internal::InitProtobufDefaultsForceUnique();
#else
  ::google::protobuf::internal::InitProtobufDefaults();
#endif  // GOOGLE_PROTOBUF_ENFORCE_UNIQUENESS
  ::Measure::cnnParameter::_default_weights_file_.DefaultConstruct();
  *::Measure::cnnParameter::_default_weights_file_.get_mutable() = ::std::string("frozen_model.pb", 15);
  ::google::protobuf::internal::OnShutdownDestroyString(
      ::Measure::cnnParameter::_default_weights_file_.get_mutable());
  {
    void* ptr = &::Measure::_cnnParameter_default_instance_;
    new (ptr) ::Measure::cnnParameter();
    ::google::protobuf::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Measure::cnnParameter::InitAsDefaultInstance();
}

void InitDefaultscnnParameter() {
  static GOOGLE_PROTOBUF_DECLARE_ONCE(once);
  ::google::protobuf::GoogleOnceInit(&once, &InitDefaultscnnParameterImpl);
}

void InitDefaultsLocateParameterImpl() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

#ifdef GOOGLE_PROTOBUF_ENFORCE_UNIQUENESS
  ::google::protobuf::internal::InitProtobufDefaultsForceUnique();
#else
  ::google::protobuf::internal::InitProtobufDefaults();
#endif  // GOOGLE_PROTOBUF_ENFORCE_UNIQUENESS
  protobuf_locater_5fparameter_2eproto::InitDefaultsArea3d();
  protobuf_locater_5fparameter_2eproto::InitDefaultscnnParameter();
  protobuf_locater_5fparameter_2eproto::InitDefaultsPointSiftParameter();
  protobuf_locater_5fparameter_2eproto::InitDefaultsYoloParameter();
  {
    void* ptr = &::Measure::_LocateParameter_default_instance_;
    new (ptr) ::Measure::LocateParameter();
    ::google::protobuf::internal::OnShutdownDestroyMessage(ptr);
  }
  ::Measure::LocateParameter::InitAsDefaultInstance();
}

void InitDefaultsLocateParameter() {
  static GOOGLE_PROTOBUF_DECLARE_ONCE(once);
  ::google::protobuf::GoogleOnceInit(&once, &InitDefaultsLocateParameterImpl);
}

::google::protobuf::Metadata file_level_metadata[5];

const ::google::protobuf::uint32 TableStruct::offsets[] GOOGLE_PROTOBUF_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::Measure::Area3d, _has_bits_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::Measure::Area3d, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::Measure::Area3d, x_min_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::Measure::Area3d, x_max_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::Measure::Area3d, y_min_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::Measure::Area3d, y_max_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::Measure::Area3d, z_min_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::Measure::Area3d, z_max_),
  0,
  1,
  2,
  3,
  4,
  5,
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::Measure::YoloParameter, _has_bits_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::Measure::YoloParameter, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::Measure::YoloParameter, cfg_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::Measure::YoloParameter, weights_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::Measure::YoloParameter, min_x_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::Measure::YoloParameter, max_x_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::Measure::YoloParameter, min_y_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::Measure::YoloParameter, max_y_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::Measure::YoloParameter, freq_),
  0,
  1,
  2,
  3,
  4,
  5,
  6,
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::Measure::PointSiftParameter, _has_bits_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::Measure::PointSiftParameter, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::Measure::PointSiftParameter, point_size_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::Measure::PointSiftParameter, cls_num_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::Measure::PointSiftParameter, freq_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::Measure::PointSiftParameter, area_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::Measure::PointSiftParameter, graph_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::Measure::PointSiftParameter, cpkt_),
  3,
  4,
  5,
  2,
  0,
  1,
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::Measure::cnnParameter, _has_bits_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::Measure::cnnParameter, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::Measure::cnnParameter, length_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::Measure::cnnParameter, width_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::Measure::cnnParameter, height_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::Measure::cnnParameter, freq_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::Measure::cnnParameter, nclass_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::Measure::cnnParameter, weights_file_),
  1,
  2,
  3,
  4,
  5,
  0,
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::Measure::LocateParameter, _has_bits_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::Measure::LocateParameter, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::Measure::LocateParameter, area_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::Measure::LocateParameter, net_3dcnn_parameter_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::Measure::LocateParameter, seg_parameter_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::Measure::LocateParameter, yolo_parameter_),
  0,
  1,
  2,
  3,
};
static const ::google::protobuf::internal::MigrationSchema schemas[] GOOGLE_PROTOBUF_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
  { 0, 11, sizeof(::Measure::Area3d)},
  { 17, 29, sizeof(::Measure::YoloParameter)},
  { 36, 47, sizeof(::Measure::PointSiftParameter)},
  { 53, 64, sizeof(::Measure::cnnParameter)},
  { 70, 79, sizeof(::Measure::LocateParameter)},
};

static ::google::protobuf::Message const * const file_default_instances[] = {
  reinterpret_cast<const ::google::protobuf::Message*>(&::Measure::_Area3d_default_instance_),
  reinterpret_cast<const ::google::protobuf::Message*>(&::Measure::_YoloParameter_default_instance_),
  reinterpret_cast<const ::google::protobuf::Message*>(&::Measure::_PointSiftParameter_default_instance_),
  reinterpret_cast<const ::google::protobuf::Message*>(&::Measure::_cnnParameter_default_instance_),
  reinterpret_cast<const ::google::protobuf::Message*>(&::Measure::_LocateParameter_default_instance_),
};

void protobuf_AssignDescriptors() {
  AddDescriptors();
  ::google::protobuf::MessageFactory* factory = NULL;
  AssignDescriptors(
      "locater_parameter.proto", schemas, file_default_instances, TableStruct::offsets, factory,
      file_level_metadata, NULL, NULL);
}

void protobuf_AssignDescriptorsOnce() {
  static GOOGLE_PROTOBUF_DECLARE_ONCE(once);
  ::google::protobuf::GoogleOnceInit(&once, &protobuf_AssignDescriptors);
}

void protobuf_RegisterTypes(const ::std::string&) GOOGLE_PROTOBUF_ATTRIBUTE_COLD;
void protobuf_RegisterTypes(const ::std::string&) {
  protobuf_AssignDescriptorsOnce();
  ::google::protobuf::internal::RegisterAllTypes(file_level_metadata, 5);
}

void AddDescriptorsImpl() {
  InitDefaults();
  static const char descriptor[] GOOGLE_PROTOBUF_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
      "\n\027locater_parameter.proto\022\007Measure\"\203\001\n\006A"
      "rea3d\022\020\n\005x_min\030\001 \001(\001:\0010\022\024\n\005x_max\030\002 \001(\001:\005"
      "12000\022\023\n\005y_min\030\003 \001(\001:\0044500\022\024\n\005y_max\030\004 \001("
      "\001:\00511000\022\021\n\005z_min\030\005 \001(\001:\00260\022\023\n\005z_max\030\006 \001"
      "(\001:\0043000\"\226\001\n\rYoloParameter\022\r\n\003cfg\030\001 \001(\t:"
      "\000\022\021\n\007weights\030\002 \001(\t:\000\022\020\n\005min_x\030\003 \001(\001:\0010\022\024"
      "\n\005max_x\030\004 \001(\001:\00512000\022\023\n\005min_y\030\005 \001(\001:\004450"
      "0\022\024\n\005max_y\030\006 \001(\001:\00511000\022\020\n\004freq\030\007 \001(\001:\0022"
      "5\"\277\001\n\022PointSiftParameter\022\030\n\npoint_size\030\001"
      " \001(\003:\0048192\022\022\n\007cls_num\030\002 \001(\003:\0013\022\020\n\004freq\030\003"
      " \001(\001:\00250\022\035\n\004area\030\004 \001(\0132\017.Measure.Area3d\022"
      "\'\n\005graph\030\005 \001(\t:\030seg_model_last.ckpt.meta"
      "\022!\n\004cpkt\030\006 \001(\t:\023seg_model_last.ckpt\"\227\001\n\014"
      "cnnParameter\022\023\n\006length\030\001 \001(\003:\003224\022\022\n\005wid"
      "th\030\002 \001(\003:\003224\022\022\n\006height\030\003 \001(\003:\00296\022\020\n\004fre"
      "q\030\004 \001(\003:\00225\022\021\n\006nclass\030\005 \001(\003:\0013\022%\n\014weight"
      "s_file\030\006 \001(\t:\017frozen_model.pb\"\310\001\n\017Locate"
      "Parameter\022\035\n\004area\030\001 \001(\0132\017.Measure.Area3d"
      "\0222\n\023net_3dcnn_parameter\030\002 \001(\0132\025.Measure."
      "cnnParameter\0222\n\rseg_parameter\030\003 \001(\0132\033.Me"
      "asure.PointSiftParameter\022.\n\016yolo_paramet"
      "er\030\004 \001(\0132\026.Measure.YoloParameter"
  };
  ::google::protobuf::DescriptorPool::InternalAddGeneratedFile(
      descriptor, 872);
  ::google::protobuf::MessageFactory::InternalRegisterGeneratedFile(
    "locater_parameter.proto", &protobuf_RegisterTypes);
}

void AddDescriptors() {
  static GOOGLE_PROTOBUF_DECLARE_ONCE(once);
  ::google::protobuf::GoogleOnceInit(&once, &AddDescriptorsImpl);
}
// Force AddDescriptors() to be called at dynamic initialization time.
struct StaticDescriptorInitializer {
  StaticDescriptorInitializer() {
    AddDescriptors();
  }
} static_descriptor_initializer;
}  // namespace protobuf_locater_5fparameter_2eproto
namespace Measure {

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

void Area3d::InitAsDefaultInstance() {
}
#if !defined(_MSC_VER) || _MSC_VER >= 1900
const int Area3d::kXMinFieldNumber;
const int Area3d::kXMaxFieldNumber;
const int Area3d::kYMinFieldNumber;
const int Area3d::kYMaxFieldNumber;
const int Area3d::kZMinFieldNumber;
const int Area3d::kZMaxFieldNumber;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900

Area3d::Area3d()
  : ::google::protobuf::Message(), _internal_metadata_(NULL) {
  if (GOOGLE_PREDICT_TRUE(this != internal_default_instance())) {
    ::protobuf_locater_5fparameter_2eproto::InitDefaultsArea3d();
  }
  SharedCtor();
  // @@protoc_insertion_point(constructor:Measure.Area3d)
}
Area3d::Area3d(const Area3d& from)
  : ::google::protobuf::Message(),
      _internal_metadata_(NULL),
      _has_bits_(from._has_bits_),
      _cached_size_(0) {
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  ::memcpy(&x_min_, &from.x_min_,
    static_cast<size_t>(reinterpret_cast<char*>(&z_max_) -
    reinterpret_cast<char*>(&x_min_)) + sizeof(z_max_));
  // @@protoc_insertion_point(copy_constructor:Measure.Area3d)
}

void Area3d::SharedCtor() {
  _cached_size_ = 0;
  x_min_ = 0;
  x_max_ = 12000;
  y_min_ = 4500;
  y_max_ = 11000;
  z_min_ = 60;
  z_max_ = 3000;
}

Area3d::~Area3d() {
  // @@protoc_insertion_point(destructor:Measure.Area3d)
  SharedDtor();
}

void Area3d::SharedDtor() {
}

void Area3d::SetCachedSize(int size) const {
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
}
const ::google::protobuf::Descriptor* Area3d::descriptor() {
  ::protobuf_locater_5fparameter_2eproto::protobuf_AssignDescriptorsOnce();
  return ::protobuf_locater_5fparameter_2eproto::file_level_metadata[kIndexInFileMessages].descriptor;
}

const Area3d& Area3d::default_instance() {
  ::protobuf_locater_5fparameter_2eproto::InitDefaultsArea3d();
  return *internal_default_instance();
}

Area3d* Area3d::New(::google::protobuf::Arena* arena) const {
  Area3d* n = new Area3d;
  if (arena != NULL) {
    arena->Own(n);
  }
  return n;
}

void Area3d::Clear() {
// @@protoc_insertion_point(message_clear_start:Measure.Area3d)
  ::google::protobuf::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _has_bits_[0];
  if (cached_has_bits & 63u) {
    x_min_ = 0;
    x_max_ = 12000;
    y_min_ = 4500;
    y_max_ = 11000;
    z_min_ = 60;
    z_max_ = 3000;
  }
  _has_bits_.Clear();
  _internal_metadata_.Clear();
}

bool Area3d::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!GOOGLE_PREDICT_TRUE(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  // @@protoc_insertion_point(parse_start:Measure.Area3d)
  for (;;) {
    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // optional double x_min = 1 [default = 0];
      case 1: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(9u /* 9 & 0xFF */)) {
          set_has_x_min();
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   double, ::google::protobuf::internal::WireFormatLite::TYPE_DOUBLE>(
                 input, &x_min_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // optional double x_max = 2 [default = 12000];
      case 2: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(17u /* 17 & 0xFF */)) {
          set_has_x_max();
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   double, ::google::protobuf::internal::WireFormatLite::TYPE_DOUBLE>(
                 input, &x_max_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // optional double y_min = 3 [default = 4500];
      case 3: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(25u /* 25 & 0xFF */)) {
          set_has_y_min();
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   double, ::google::protobuf::internal::WireFormatLite::TYPE_DOUBLE>(
                 input, &y_min_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // optional double y_max = 4 [default = 11000];
      case 4: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(33u /* 33 & 0xFF */)) {
          set_has_y_max();
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   double, ::google::protobuf::internal::WireFormatLite::TYPE_DOUBLE>(
                 input, &y_max_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // optional double z_min = 5 [default = 60];
      case 5: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(41u /* 41 & 0xFF */)) {
          set_has_z_min();
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   double, ::google::protobuf::internal::WireFormatLite::TYPE_DOUBLE>(
                 input, &z_min_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // optional double z_max = 6 [default = 3000];
      case 6: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(49u /* 49 & 0xFF */)) {
          set_has_z_max();
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   double, ::google::protobuf::internal::WireFormatLite::TYPE_DOUBLE>(
                 input, &z_max_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormat::SkipField(
              input, tag, _internal_metadata_.mutable_unknown_fields()));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:Measure.Area3d)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:Measure.Area3d)
  return false;
#undef DO_
}

void Area3d::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:Measure.Area3d)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = _has_bits_[0];
  // optional double x_min = 1 [default = 0];
  if (cached_has_bits & 0x00000001u) {
    ::google::protobuf::internal::WireFormatLite::WriteDouble(1, this->x_min(), output);
  }

  // optional double x_max = 2 [default = 12000];
  if (cached_has_bits & 0x00000002u) {
    ::google::protobuf::internal::WireFormatLite::WriteDouble(2, this->x_max(), output);
  }

  // optional double y_min = 3 [default = 4500];
  if (cached_has_bits & 0x00000004u) {
    ::google::protobuf::internal::WireFormatLite::WriteDouble(3, this->y_min(), output);
  }

  // optional double y_max = 4 [default = 11000];
  if (cached_has_bits & 0x00000008u) {
    ::google::protobuf::internal::WireFormatLite::WriteDouble(4, this->y_max(), output);
  }

  // optional double z_min = 5 [default = 60];
  if (cached_has_bits & 0x00000010u) {
    ::google::protobuf::internal::WireFormatLite::WriteDouble(5, this->z_min(), output);
  }

  // optional double z_max = 6 [default = 3000];
  if (cached_has_bits & 0x00000020u) {
    ::google::protobuf::internal::WireFormatLite::WriteDouble(6, this->z_max(), output);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
        _internal_metadata_.unknown_fields(), output);
  }
  // @@protoc_insertion_point(serialize_end:Measure.Area3d)
}

::google::protobuf::uint8* Area3d::InternalSerializeWithCachedSizesToArray(
    bool deterministic, ::google::protobuf::uint8* target) const {
  (void)deterministic; // Unused
  // @@protoc_insertion_point(serialize_to_array_start:Measure.Area3d)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = _has_bits_[0];
  // optional double x_min = 1 [default = 0];
  if (cached_has_bits & 0x00000001u) {
    target = ::google::protobuf::internal::WireFormatLite::WriteDoubleToArray(1, this->x_min(), target);
  }

  // optional double x_max = 2 [default = 12000];
  if (cached_has_bits & 0x00000002u) {
    target = ::google::protobuf::internal::WireFormatLite::WriteDoubleToArray(2, this->x_max(), target);
  }

  // optional double y_min = 3 [default = 4500];
  if (cached_has_bits & 0x00000004u) {
    target = ::google::protobuf::internal::WireFormatLite::WriteDoubleToArray(3, this->y_min(), target);
  }

  // optional double y_max = 4 [default = 11000];
  if (cached_has_bits & 0x00000008u) {
    target = ::google::protobuf::internal::WireFormatLite::WriteDoubleToArray(4, this->y_max(), target);
  }

  // optional double z_min = 5 [default = 60];
  if (cached_has_bits & 0x00000010u) {
    target = ::google::protobuf::internal::WireFormatLite::WriteDoubleToArray(5, this->z_min(), target);
  }

  // optional double z_max = 6 [default = 3000];
  if (cached_has_bits & 0x00000020u) {
    target = ::google::protobuf::internal::WireFormatLite::WriteDoubleToArray(6, this->z_max(), target);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields(), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:Measure.Area3d)
  return target;
}

size_t Area3d::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Measure.Area3d)
  size_t total_size = 0;

  if (_internal_metadata_.have_unknown_fields()) {
    total_size +=
      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
        _internal_metadata_.unknown_fields());
  }
  if (_has_bits_[0 / 32] & 63u) {
    // optional double x_min = 1 [default = 0];
    if (has_x_min()) {
      total_size += 1 + 8;
    }

    // optional double x_max = 2 [default = 12000];
    if (has_x_max()) {
      total_size += 1 + 8;
    }

    // optional double y_min = 3 [default = 4500];
    if (has_y_min()) {
      total_size += 1 + 8;
    }

    // optional double y_max = 4 [default = 11000];
    if (has_y_max()) {
      total_size += 1 + 8;
    }

    // optional double z_min = 5 [default = 60];
    if (has_z_min()) {
      total_size += 1 + 8;
    }

    // optional double z_max = 6 [default = 3000];
    if (has_z_max()) {
      total_size += 1 + 8;
    }

  }
  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = cached_size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
  return total_size;
}

void Area3d::MergeFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:Measure.Area3d)
  GOOGLE_DCHECK_NE(&from, this);
  const Area3d* source =
      ::google::protobuf::internal::DynamicCastToGenerated<const Area3d>(
          &from);
  if (source == NULL) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:Measure.Area3d)
    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:Measure.Area3d)
    MergeFrom(*source);
  }
}

void Area3d::MergeFrom(const Area3d& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:Measure.Area3d)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = from._has_bits_[0];
  if (cached_has_bits & 63u) {
    if (cached_has_bits & 0x00000001u) {
      x_min_ = from.x_min_;
    }
    if (cached_has_bits & 0x00000002u) {
      x_max_ = from.x_max_;
    }
    if (cached_has_bits & 0x00000004u) {
      y_min_ = from.y_min_;
    }
    if (cached_has_bits & 0x00000008u) {
      y_max_ = from.y_max_;
    }
    if (cached_has_bits & 0x00000010u) {
      z_min_ = from.z_min_;
    }
    if (cached_has_bits & 0x00000020u) {
      z_max_ = from.z_max_;
    }
    _has_bits_[0] |= cached_has_bits;
  }
}

void Area3d::CopyFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:Measure.Area3d)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void Area3d::CopyFrom(const Area3d& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Measure.Area3d)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool Area3d::IsInitialized() const {
  return true;
}

void Area3d::Swap(Area3d* other) {
  if (other == this) return;
  InternalSwap(other);
}
void Area3d::InternalSwap(Area3d* other) {
  using std::swap;
  swap(x_min_, other->x_min_);
  swap(x_max_, other->x_max_);
  swap(y_min_, other->y_min_);
  swap(y_max_, other->y_max_);
  swap(z_min_, other->z_min_);
  swap(z_max_, other->z_max_);
  swap(_has_bits_[0], other->_has_bits_[0]);
  _internal_metadata_.Swap(&other->_internal_metadata_);
  swap(_cached_size_, other->_cached_size_);
}

::google::protobuf::Metadata Area3d::GetMetadata() const {
  protobuf_locater_5fparameter_2eproto::protobuf_AssignDescriptorsOnce();
  return ::protobuf_locater_5fparameter_2eproto::file_level_metadata[kIndexInFileMessages];
}


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

void YoloParameter::InitAsDefaultInstance() {
}
#if !defined(_MSC_VER) || _MSC_VER >= 1900
const int YoloParameter::kCfgFieldNumber;
const int YoloParameter::kWeightsFieldNumber;
const int YoloParameter::kMinXFieldNumber;
const int YoloParameter::kMaxXFieldNumber;
const int YoloParameter::kMinYFieldNumber;
const int YoloParameter::kMaxYFieldNumber;
const int YoloParameter::kFreqFieldNumber;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900

YoloParameter::YoloParameter()
  : ::google::protobuf::Message(), _internal_metadata_(NULL) {
  if (GOOGLE_PREDICT_TRUE(this != internal_default_instance())) {
    ::protobuf_locater_5fparameter_2eproto::InitDefaultsYoloParameter();
  }
  SharedCtor();
  // @@protoc_insertion_point(constructor:Measure.YoloParameter)
}
YoloParameter::YoloParameter(const YoloParameter& from)
  : ::google::protobuf::Message(),
      _internal_metadata_(NULL),
      _has_bits_(from._has_bits_),
      _cached_size_(0) {
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  cfg_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.has_cfg()) {
    cfg_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.cfg_);
  }
  weights_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.has_weights()) {
    weights_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.weights_);
  }
  ::memcpy(&min_x_, &from.min_x_,
    static_cast<size_t>(reinterpret_cast<char*>(&freq_) -
    reinterpret_cast<char*>(&min_x_)) + sizeof(freq_));
  // @@protoc_insertion_point(copy_constructor:Measure.YoloParameter)
}

void YoloParameter::SharedCtor() {
  _cached_size_ = 0;
  cfg_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  weights_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  min_x_ = 0;
  max_x_ = 12000;
  min_y_ = 4500;
  max_y_ = 11000;
  freq_ = 25;
}

YoloParameter::~YoloParameter() {
  // @@protoc_insertion_point(destructor:Measure.YoloParameter)
  SharedDtor();
}

void YoloParameter::SharedDtor() {
  cfg_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  weights_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}

void YoloParameter::SetCachedSize(int size) const {
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
}
const ::google::protobuf::Descriptor* YoloParameter::descriptor() {
  ::protobuf_locater_5fparameter_2eproto::protobuf_AssignDescriptorsOnce();
  return ::protobuf_locater_5fparameter_2eproto::file_level_metadata[kIndexInFileMessages].descriptor;
}

const YoloParameter& YoloParameter::default_instance() {
  ::protobuf_locater_5fparameter_2eproto::InitDefaultsYoloParameter();
  return *internal_default_instance();
}

YoloParameter* YoloParameter::New(::google::protobuf::Arena* arena) const {
  YoloParameter* n = new YoloParameter;
  if (arena != NULL) {
    arena->Own(n);
  }
  return n;
}

void YoloParameter::Clear() {
// @@protoc_insertion_point(message_clear_start:Measure.YoloParameter)
  ::google::protobuf::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _has_bits_[0];
  if (cached_has_bits & 3u) {
    if (cached_has_bits & 0x00000001u) {
      GOOGLE_DCHECK(!cfg_.IsDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()));
      (*cfg_.UnsafeRawStringPointer())->clear();
    }
    if (cached_has_bits & 0x00000002u) {
      GOOGLE_DCHECK(!weights_.IsDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()));
      (*weights_.UnsafeRawStringPointer())->clear();
    }
  }
  if (cached_has_bits & 124u) {
    min_x_ = 0;
    max_x_ = 12000;
    min_y_ = 4500;
    max_y_ = 11000;
    freq_ = 25;
  }
  _has_bits_.Clear();
  _internal_metadata_.Clear();
}

bool YoloParameter::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!GOOGLE_PREDICT_TRUE(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  // @@protoc_insertion_point(parse_start:Measure.YoloParameter)
  for (;;) {
    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // optional string cfg = 1 [default = ""];
      case 1: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(10u /* 10 & 0xFF */)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_cfg()));
          ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
            this->cfg().data(), static_cast<int>(this->cfg().length()),
            ::google::protobuf::internal::WireFormat::PARSE,
            "Measure.YoloParameter.cfg");
        } else {
          goto handle_unusual;
        }
        break;
      }

      // optional string weights = 2 [default = ""];
      case 2: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(18u /* 18 & 0xFF */)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_weights()));
          ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
            this->weights().data(), static_cast<int>(this->weights().length()),
            ::google::protobuf::internal::WireFormat::PARSE,
            "Measure.YoloParameter.weights");
        } else {
          goto handle_unusual;
        }
        break;
      }

      // optional double min_x = 3 [default = 0];
      case 3: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(25u /* 25 & 0xFF */)) {
          set_has_min_x();
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   double, ::google::protobuf::internal::WireFormatLite::TYPE_DOUBLE>(
                 input, &min_x_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // optional double max_x = 4 [default = 12000];
      case 4: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(33u /* 33 & 0xFF */)) {
          set_has_max_x();
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   double, ::google::protobuf::internal::WireFormatLite::TYPE_DOUBLE>(
                 input, &max_x_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // optional double min_y = 5 [default = 4500];
      case 5: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(41u /* 41 & 0xFF */)) {
          set_has_min_y();
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   double, ::google::protobuf::internal::WireFormatLite::TYPE_DOUBLE>(
                 input, &min_y_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // optional double max_y = 6 [default = 11000];
      case 6: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(49u /* 49 & 0xFF */)) {
          set_has_max_y();
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   double, ::google::protobuf::internal::WireFormatLite::TYPE_DOUBLE>(
                 input, &max_y_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // optional double freq = 7 [default = 25];
      case 7: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(57u /* 57 & 0xFF */)) {
          set_has_freq();
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   double, ::google::protobuf::internal::WireFormatLite::TYPE_DOUBLE>(
                 input, &freq_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormat::SkipField(
              input, tag, _internal_metadata_.mutable_unknown_fields()));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:Measure.YoloParameter)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:Measure.YoloParameter)
  return false;
#undef DO_
}

void YoloParameter::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:Measure.YoloParameter)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = _has_bits_[0];
  // optional string cfg = 1 [default = ""];
  if (cached_has_bits & 0x00000001u) {
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
      this->cfg().data(), static_cast<int>(this->cfg().length()),
      ::google::protobuf::internal::WireFormat::SERIALIZE,
      "Measure.YoloParameter.cfg");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      1, this->cfg(), output);
  }

  // optional string weights = 2 [default = ""];
  if (cached_has_bits & 0x00000002u) {
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
      this->weights().data(), static_cast<int>(this->weights().length()),
      ::google::protobuf::internal::WireFormat::SERIALIZE,
      "Measure.YoloParameter.weights");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      2, this->weights(), output);
  }

  // optional double min_x = 3 [default = 0];
  if (cached_has_bits & 0x00000004u) {
    ::google::protobuf::internal::WireFormatLite::WriteDouble(3, this->min_x(), output);
  }

  // optional double max_x = 4 [default = 12000];
  if (cached_has_bits & 0x00000008u) {
    ::google::protobuf::internal::WireFormatLite::WriteDouble(4, this->max_x(), output);
  }

  // optional double min_y = 5 [default = 4500];
  if (cached_has_bits & 0x00000010u) {
    ::google::protobuf::internal::WireFormatLite::WriteDouble(5, this->min_y(), output);
  }

  // optional double max_y = 6 [default = 11000];
  if (cached_has_bits & 0x00000020u) {
    ::google::protobuf::internal::WireFormatLite::WriteDouble(6, this->max_y(), output);
  }

  // optional double freq = 7 [default = 25];
  if (cached_has_bits & 0x00000040u) {
    ::google::protobuf::internal::WireFormatLite::WriteDouble(7, this->freq(), output);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
        _internal_metadata_.unknown_fields(), output);
  }
  // @@protoc_insertion_point(serialize_end:Measure.YoloParameter)
}

::google::protobuf::uint8* YoloParameter::InternalSerializeWithCachedSizesToArray(
    bool deterministic, ::google::protobuf::uint8* target) const {
  (void)deterministic; // Unused
  // @@protoc_insertion_point(serialize_to_array_start:Measure.YoloParameter)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = _has_bits_[0];
  // optional string cfg = 1 [default = ""];
  if (cached_has_bits & 0x00000001u) {
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
      this->cfg().data(), static_cast<int>(this->cfg().length()),
      ::google::protobuf::internal::WireFormat::SERIALIZE,
      "Measure.YoloParameter.cfg");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        1, this->cfg(), target);
  }

  // optional string weights = 2 [default = ""];
  if (cached_has_bits & 0x00000002u) {
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
      this->weights().data(), static_cast<int>(this->weights().length()),
      ::google::protobuf::internal::WireFormat::SERIALIZE,
      "Measure.YoloParameter.weights");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        2, this->weights(), target);
  }

  // optional double min_x = 3 [default = 0];
  if (cached_has_bits & 0x00000004u) {
    target = ::google::protobuf::internal::WireFormatLite::WriteDoubleToArray(3, this->min_x(), target);
  }

  // optional double max_x = 4 [default = 12000];
  if (cached_has_bits & 0x00000008u) {
    target = ::google::protobuf::internal::WireFormatLite::WriteDoubleToArray(4, this->max_x(), target);
  }

  // optional double min_y = 5 [default = 4500];
  if (cached_has_bits & 0x00000010u) {
    target = ::google::protobuf::internal::WireFormatLite::WriteDoubleToArray(5, this->min_y(), target);
  }

  // optional double max_y = 6 [default = 11000];
  if (cached_has_bits & 0x00000020u) {
    target = ::google::protobuf::internal::WireFormatLite::WriteDoubleToArray(6, this->max_y(), target);
  }

  // optional double freq = 7 [default = 25];
  if (cached_has_bits & 0x00000040u) {
    target = ::google::protobuf::internal::WireFormatLite::WriteDoubleToArray(7, this->freq(), target);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields(), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:Measure.YoloParameter)
  return target;
}

size_t YoloParameter::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Measure.YoloParameter)
  size_t total_size = 0;

  if (_internal_metadata_.have_unknown_fields()) {
    total_size +=
      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
        _internal_metadata_.unknown_fields());
  }
  if (_has_bits_[0 / 32] & 127u) {
    // optional string cfg = 1 [default = ""];
    if (has_cfg()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::StringSize(
          this->cfg());
    }

    // optional string weights = 2 [default = ""];
    if (has_weights()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::StringSize(
          this->weights());
    }

    // optional double min_x = 3 [default = 0];
    if (has_min_x()) {
      total_size += 1 + 8;
    }

    // optional double max_x = 4 [default = 12000];
    if (has_max_x()) {
      total_size += 1 + 8;
    }

    // optional double min_y = 5 [default = 4500];
    if (has_min_y()) {
      total_size += 1 + 8;
    }

    // optional double max_y = 6 [default = 11000];
    if (has_max_y()) {
      total_size += 1 + 8;
    }

    // optional double freq = 7 [default = 25];
    if (has_freq()) {
      total_size += 1 + 8;
    }

  }
  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = cached_size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
  return total_size;
}

void YoloParameter::MergeFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:Measure.YoloParameter)
  GOOGLE_DCHECK_NE(&from, this);
  const YoloParameter* source =
      ::google::protobuf::internal::DynamicCastToGenerated<const YoloParameter>(
          &from);
  if (source == NULL) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:Measure.YoloParameter)
    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:Measure.YoloParameter)
    MergeFrom(*source);
  }
}

void YoloParameter::MergeFrom(const YoloParameter& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:Measure.YoloParameter)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = from._has_bits_[0];
  if (cached_has_bits & 127u) {
    if (cached_has_bits & 0x00000001u) {
      set_has_cfg();
      cfg_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.cfg_);
    }
    if (cached_has_bits & 0x00000002u) {
      set_has_weights();
      weights_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.weights_);
    }
    if (cached_has_bits & 0x00000004u) {
      min_x_ = from.min_x_;
    }
    if (cached_has_bits & 0x00000008u) {
      max_x_ = from.max_x_;
    }
    if (cached_has_bits & 0x00000010u) {
      min_y_ = from.min_y_;
    }
    if (cached_has_bits & 0x00000020u) {
      max_y_ = from.max_y_;
    }
    if (cached_has_bits & 0x00000040u) {
      freq_ = from.freq_;
    }
    _has_bits_[0] |= cached_has_bits;
  }
}

void YoloParameter::CopyFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:Measure.YoloParameter)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void YoloParameter::CopyFrom(const YoloParameter& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Measure.YoloParameter)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool YoloParameter::IsInitialized() const {
  return true;
}

void YoloParameter::Swap(YoloParameter* other) {
  if (other == this) return;
  InternalSwap(other);
}
void YoloParameter::InternalSwap(YoloParameter* other) {
  using std::swap;
  cfg_.Swap(&other->cfg_);
  weights_.Swap(&other->weights_);
  swap(min_x_, other->min_x_);
  swap(max_x_, other->max_x_);
  swap(min_y_, other->min_y_);
  swap(max_y_, other->max_y_);
  swap(freq_, other->freq_);
  swap(_has_bits_[0], other->_has_bits_[0]);
  _internal_metadata_.Swap(&other->_internal_metadata_);
  swap(_cached_size_, other->_cached_size_);
}

::google::protobuf::Metadata YoloParameter::GetMetadata() const {
  protobuf_locater_5fparameter_2eproto::protobuf_AssignDescriptorsOnce();
  return ::protobuf_locater_5fparameter_2eproto::file_level_metadata[kIndexInFileMessages];
}


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

void PointSiftParameter::InitAsDefaultInstance() {
  ::Measure::_PointSiftParameter_default_instance_._instance.get_mutable()->area_ = const_cast< ::Measure::Area3d*>(
      ::Measure::Area3d::internal_default_instance());
}
::google::protobuf::internal::ExplicitlyConstructed< ::std::string> PointSiftParameter::_default_graph_;
::google::protobuf::internal::ExplicitlyConstructed< ::std::string> PointSiftParameter::_default_cpkt_;
#if !defined(_MSC_VER) || _MSC_VER >= 1900
const int PointSiftParameter::kPointSizeFieldNumber;
const int PointSiftParameter::kClsNumFieldNumber;
const int PointSiftParameter::kFreqFieldNumber;
const int PointSiftParameter::kAreaFieldNumber;
const int PointSiftParameter::kGraphFieldNumber;
const int PointSiftParameter::kCpktFieldNumber;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900

PointSiftParameter::PointSiftParameter()
  : ::google::protobuf::Message(), _internal_metadata_(NULL) {
  if (GOOGLE_PREDICT_TRUE(this != internal_default_instance())) {
    ::protobuf_locater_5fparameter_2eproto::InitDefaultsPointSiftParameter();
  }
  SharedCtor();
  // @@protoc_insertion_point(constructor:Measure.PointSiftParameter)
}
PointSiftParameter::PointSiftParameter(const PointSiftParameter& from)
  : ::google::protobuf::Message(),
      _internal_metadata_(NULL),
      _has_bits_(from._has_bits_),
      _cached_size_(0) {
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  graph_.UnsafeSetDefault(&::Measure::PointSiftParameter::_default_graph_.get());
  if (from.has_graph()) {
    graph_.AssignWithDefault(&::Measure::PointSiftParameter::_default_graph_.get(), from.graph_);
  }
  cpkt_.UnsafeSetDefault(&::Measure::PointSiftParameter::_default_cpkt_.get());
  if (from.has_cpkt()) {
    cpkt_.AssignWithDefault(&::Measure::PointSiftParameter::_default_cpkt_.get(), from.cpkt_);
  }
  if (from.has_area()) {
    area_ = new ::Measure::Area3d(*from.area_);
  } else {
    area_ = NULL;
  }
  ::memcpy(&point_size_, &from.point_size_,
    static_cast<size_t>(reinterpret_cast<char*>(&freq_) -
    reinterpret_cast<char*>(&point_size_)) + sizeof(freq_));
  // @@protoc_insertion_point(copy_constructor:Measure.PointSiftParameter)
}

void PointSiftParameter::SharedCtor() {
  _cached_size_ = 0;
  graph_.UnsafeSetDefault(&::Measure::PointSiftParameter::_default_graph_.get());
  cpkt_.UnsafeSetDefault(&::Measure::PointSiftParameter::_default_cpkt_.get());
  area_ = NULL;
  point_size_ = GOOGLE_LONGLONG(8192);
  cls_num_ = GOOGLE_LONGLONG(3);
  freq_ = 50;
}

PointSiftParameter::~PointSiftParameter() {
  // @@protoc_insertion_point(destructor:Measure.PointSiftParameter)
  SharedDtor();
}

void PointSiftParameter::SharedDtor() {
  graph_.DestroyNoArena(&::Measure::PointSiftParameter::_default_graph_.get());
  cpkt_.DestroyNoArena(&::Measure::PointSiftParameter::_default_cpkt_.get());
  if (this != internal_default_instance()) delete area_;
}

void PointSiftParameter::SetCachedSize(int size) const {
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
}
const ::google::protobuf::Descriptor* PointSiftParameter::descriptor() {
  ::protobuf_locater_5fparameter_2eproto::protobuf_AssignDescriptorsOnce();
  return ::protobuf_locater_5fparameter_2eproto::file_level_metadata[kIndexInFileMessages].descriptor;
}

const PointSiftParameter& PointSiftParameter::default_instance() {
  ::protobuf_locater_5fparameter_2eproto::InitDefaultsPointSiftParameter();
  return *internal_default_instance();
}

PointSiftParameter* PointSiftParameter::New(::google::protobuf::Arena* arena) const {
  PointSiftParameter* n = new PointSiftParameter;
  if (arena != NULL) {
    arena->Own(n);
  }
  return n;
}

void PointSiftParameter::Clear() {
// @@protoc_insertion_point(message_clear_start:Measure.PointSiftParameter)
  ::google::protobuf::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _has_bits_[0];
  if (cached_has_bits & 63u) {
    if (cached_has_bits & 0x00000001u) {
      GOOGLE_DCHECK(!graph_.IsDefault(&::Measure::PointSiftParameter::_default_graph_.get()));
      (*graph_.UnsafeRawStringPointer())->assign(*&::Measure::PointSiftParameter::_default_graph_.get());
    }
    if (cached_has_bits & 0x00000002u) {
      GOOGLE_DCHECK(!cpkt_.IsDefault(&::Measure::PointSiftParameter::_default_cpkt_.get()));
      (*cpkt_.UnsafeRawStringPointer())->assign(*&::Measure::PointSiftParameter::_default_cpkt_.get());
    }
    if (cached_has_bits & 0x00000004u) {
      GOOGLE_DCHECK(area_ != NULL);
      area_->Clear();
    }
    point_size_ = GOOGLE_LONGLONG(8192);
    cls_num_ = GOOGLE_LONGLONG(3);
    freq_ = 50;
  }
  _has_bits_.Clear();
  _internal_metadata_.Clear();
}

bool PointSiftParameter::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!GOOGLE_PREDICT_TRUE(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  // @@protoc_insertion_point(parse_start:Measure.PointSiftParameter)
  for (;;) {
    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // optional int64 point_size = 1 [default = 8192];
      case 1: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(8u /* 8 & 0xFF */)) {
          set_has_point_size();
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::int64, ::google::protobuf::internal::WireFormatLite::TYPE_INT64>(
                 input, &point_size_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // optional int64 cls_num = 2 [default = 3];
      case 2: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(16u /* 16 & 0xFF */)) {
          set_has_cls_num();
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::int64, ::google::protobuf::internal::WireFormatLite::TYPE_INT64>(
                 input, &cls_num_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // optional double freq = 3 [default = 50];
      case 3: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(25u /* 25 & 0xFF */)) {
          set_has_freq();
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   double, ::google::protobuf::internal::WireFormatLite::TYPE_DOUBLE>(
                 input, &freq_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // optional .Measure.Area3d area = 4;
      case 4: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(34u /* 34 & 0xFF */)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
               input, mutable_area()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // optional string graph = 5 [default = "seg_model_last.ckpt.meta"];
      case 5: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(42u /* 42 & 0xFF */)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_graph()));
          ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
            this->graph().data(), static_cast<int>(this->graph().length()),
            ::google::protobuf::internal::WireFormat::PARSE,
            "Measure.PointSiftParameter.graph");
        } else {
          goto handle_unusual;
        }
        break;
      }

      // optional string cpkt = 6 [default = "seg_model_last.ckpt"];
      case 6: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(50u /* 50 & 0xFF */)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_cpkt()));
          ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
            this->cpkt().data(), static_cast<int>(this->cpkt().length()),
            ::google::protobuf::internal::WireFormat::PARSE,
            "Measure.PointSiftParameter.cpkt");
        } else {
          goto handle_unusual;
        }
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormat::SkipField(
              input, tag, _internal_metadata_.mutable_unknown_fields()));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:Measure.PointSiftParameter)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:Measure.PointSiftParameter)
  return false;
#undef DO_
}

void PointSiftParameter::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:Measure.PointSiftParameter)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = _has_bits_[0];
  // optional int64 point_size = 1 [default = 8192];
  if (cached_has_bits & 0x00000008u) {
    ::google::protobuf::internal::WireFormatLite::WriteInt64(1, this->point_size(), output);
  }

  // optional int64 cls_num = 2 [default = 3];
  if (cached_has_bits & 0x00000010u) {
    ::google::protobuf::internal::WireFormatLite::WriteInt64(2, this->cls_num(), output);
  }

  // optional double freq = 3 [default = 50];
  if (cached_has_bits & 0x00000020u) {
    ::google::protobuf::internal::WireFormatLite::WriteDouble(3, this->freq(), output);
  }

  // optional .Measure.Area3d area = 4;
  if (cached_has_bits & 0x00000004u) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      4, *this->area_, output);
  }

  // optional string graph = 5 [default = "seg_model_last.ckpt.meta"];
  if (cached_has_bits & 0x00000001u) {
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
      this->graph().data(), static_cast<int>(this->graph().length()),
      ::google::protobuf::internal::WireFormat::SERIALIZE,
      "Measure.PointSiftParameter.graph");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      5, this->graph(), output);
  }

  // optional string cpkt = 6 [default = "seg_model_last.ckpt"];
  if (cached_has_bits & 0x00000002u) {
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
      this->cpkt().data(), static_cast<int>(this->cpkt().length()),
      ::google::protobuf::internal::WireFormat::SERIALIZE,
      "Measure.PointSiftParameter.cpkt");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      6, this->cpkt(), output);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
        _internal_metadata_.unknown_fields(), output);
  }
  // @@protoc_insertion_point(serialize_end:Measure.PointSiftParameter)
}

::google::protobuf::uint8* PointSiftParameter::InternalSerializeWithCachedSizesToArray(
    bool deterministic, ::google::protobuf::uint8* target) const {
  (void)deterministic; // Unused
  // @@protoc_insertion_point(serialize_to_array_start:Measure.PointSiftParameter)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = _has_bits_[0];
  // optional int64 point_size = 1 [default = 8192];
  if (cached_has_bits & 0x00000008u) {
    target = ::google::protobuf::internal::WireFormatLite::WriteInt64ToArray(1, this->point_size(), target);
  }

  // optional int64 cls_num = 2 [default = 3];
  if (cached_has_bits & 0x00000010u) {
    target = ::google::protobuf::internal::WireFormatLite::WriteInt64ToArray(2, this->cls_num(), target);
  }

  // optional double freq = 3 [default = 50];
  if (cached_has_bits & 0x00000020u) {
    target = ::google::protobuf::internal::WireFormatLite::WriteDoubleToArray(3, this->freq(), target);
  }

  // optional .Measure.Area3d area = 4;
  if (cached_has_bits & 0x00000004u) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageToArray(
        4, *this->area_, deterministic, target);
  }

  // optional string graph = 5 [default = "seg_model_last.ckpt.meta"];
  if (cached_has_bits & 0x00000001u) {
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
      this->graph().data(), static_cast<int>(this->graph().length()),
      ::google::protobuf::internal::WireFormat::SERIALIZE,
      "Measure.PointSiftParameter.graph");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        5, this->graph(), target);
  }

  // optional string cpkt = 6 [default = "seg_model_last.ckpt"];
  if (cached_has_bits & 0x00000002u) {
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
      this->cpkt().data(), static_cast<int>(this->cpkt().length()),
      ::google::protobuf::internal::WireFormat::SERIALIZE,
      "Measure.PointSiftParameter.cpkt");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        6, this->cpkt(), target);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields(), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:Measure.PointSiftParameter)
  return target;
}

size_t PointSiftParameter::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Measure.PointSiftParameter)
  size_t total_size = 0;

  if (_internal_metadata_.have_unknown_fields()) {
    total_size +=
      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
        _internal_metadata_.unknown_fields());
  }
  if (_has_bits_[0 / 32] & 63u) {
    // optional string graph = 5 [default = "seg_model_last.ckpt.meta"];
    if (has_graph()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::StringSize(
          this->graph());
    }

    // optional string cpkt = 6 [default = "seg_model_last.ckpt"];
    if (has_cpkt()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::StringSize(
          this->cpkt());
    }

    // optional .Measure.Area3d area = 4;
    if (has_area()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::MessageSize(
          *this->area_);
    }

    // optional int64 point_size = 1 [default = 8192];
    if (has_point_size()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::Int64Size(
          this->point_size());
    }

    // optional int64 cls_num = 2 [default = 3];
    if (has_cls_num()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::Int64Size(
          this->cls_num());
    }

    // optional double freq = 3 [default = 50];
    if (has_freq()) {
      total_size += 1 + 8;
    }

  }
  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = cached_size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
  return total_size;
}

void PointSiftParameter::MergeFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:Measure.PointSiftParameter)
  GOOGLE_DCHECK_NE(&from, this);
  const PointSiftParameter* source =
      ::google::protobuf::internal::DynamicCastToGenerated<const PointSiftParameter>(
          &from);
  if (source == NULL) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:Measure.PointSiftParameter)
    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:Measure.PointSiftParameter)
    MergeFrom(*source);
  }
}

void PointSiftParameter::MergeFrom(const PointSiftParameter& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:Measure.PointSiftParameter)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = from._has_bits_[0];
  if (cached_has_bits & 63u) {
    if (cached_has_bits & 0x00000001u) {
      set_has_graph();
      graph_.AssignWithDefault(&::Measure::PointSiftParameter::_default_graph_.get(), from.graph_);
    }
    if (cached_has_bits & 0x00000002u) {
      set_has_cpkt();
      cpkt_.AssignWithDefault(&::Measure::PointSiftParameter::_default_cpkt_.get(), from.cpkt_);
    }
    if (cached_has_bits & 0x00000004u) {
      mutable_area()->::Measure::Area3d::MergeFrom(from.area());
    }
    if (cached_has_bits & 0x00000008u) {
      point_size_ = from.point_size_;
    }
    if (cached_has_bits & 0x00000010u) {
      cls_num_ = from.cls_num_;
    }
    if (cached_has_bits & 0x00000020u) {
      freq_ = from.freq_;
    }
    _has_bits_[0] |= cached_has_bits;
  }
}

void PointSiftParameter::CopyFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:Measure.PointSiftParameter)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void PointSiftParameter::CopyFrom(const PointSiftParameter& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Measure.PointSiftParameter)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool PointSiftParameter::IsInitialized() const {
  return true;
}

void PointSiftParameter::Swap(PointSiftParameter* other) {
  if (other == this) return;
  InternalSwap(other);
}
void PointSiftParameter::InternalSwap(PointSiftParameter* other) {
  using std::swap;
  graph_.Swap(&other->graph_);
  cpkt_.Swap(&other->cpkt_);
  swap(area_, other->area_);
  swap(point_size_, other->point_size_);
  swap(cls_num_, other->cls_num_);
  swap(freq_, other->freq_);
  swap(_has_bits_[0], other->_has_bits_[0]);
  _internal_metadata_.Swap(&other->_internal_metadata_);
  swap(_cached_size_, other->_cached_size_);
}

::google::protobuf::Metadata PointSiftParameter::GetMetadata() const {
  protobuf_locater_5fparameter_2eproto::protobuf_AssignDescriptorsOnce();
  return ::protobuf_locater_5fparameter_2eproto::file_level_metadata[kIndexInFileMessages];
}


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

void cnnParameter::InitAsDefaultInstance() {
}
::google::protobuf::internal::ExplicitlyConstructed< ::std::string> cnnParameter::_default_weights_file_;
#if !defined(_MSC_VER) || _MSC_VER >= 1900
const int cnnParameter::kLengthFieldNumber;
const int cnnParameter::kWidthFieldNumber;
const int cnnParameter::kHeightFieldNumber;
const int cnnParameter::kFreqFieldNumber;
const int cnnParameter::kNclassFieldNumber;
const int cnnParameter::kWeightsFileFieldNumber;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900

cnnParameter::cnnParameter()
  : ::google::protobuf::Message(), _internal_metadata_(NULL) {
  if (GOOGLE_PREDICT_TRUE(this != internal_default_instance())) {
    ::protobuf_locater_5fparameter_2eproto::InitDefaultscnnParameter();
  }
  SharedCtor();
  // @@protoc_insertion_point(constructor:Measure.cnnParameter)
}
cnnParameter::cnnParameter(const cnnParameter& from)
  : ::google::protobuf::Message(),
      _internal_metadata_(NULL),
      _has_bits_(from._has_bits_),
      _cached_size_(0) {
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  weights_file_.UnsafeSetDefault(&::Measure::cnnParameter::_default_weights_file_.get());
  if (from.has_weights_file()) {
    weights_file_.AssignWithDefault(&::Measure::cnnParameter::_default_weights_file_.get(), from.weights_file_);
  }
  ::memcpy(&length_, &from.length_,
    static_cast<size_t>(reinterpret_cast<char*>(&nclass_) -
    reinterpret_cast<char*>(&length_)) + sizeof(nclass_));
  // @@protoc_insertion_point(copy_constructor:Measure.cnnParameter)
}

void cnnParameter::SharedCtor() {
  _cached_size_ = 0;
  weights_file_.UnsafeSetDefault(&::Measure::cnnParameter::_default_weights_file_.get());
  length_ = GOOGLE_LONGLONG(224);
  width_ = GOOGLE_LONGLONG(224);
  height_ = GOOGLE_LONGLONG(96);
  freq_ = GOOGLE_LONGLONG(25);
  nclass_ = GOOGLE_LONGLONG(3);
}

cnnParameter::~cnnParameter() {
  // @@protoc_insertion_point(destructor:Measure.cnnParameter)
  SharedDtor();
}

void cnnParameter::SharedDtor() {
  weights_file_.DestroyNoArena(&::Measure::cnnParameter::_default_weights_file_.get());
}

void cnnParameter::SetCachedSize(int size) const {
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
}
const ::google::protobuf::Descriptor* cnnParameter::descriptor() {
  ::protobuf_locater_5fparameter_2eproto::protobuf_AssignDescriptorsOnce();
  return ::protobuf_locater_5fparameter_2eproto::file_level_metadata[kIndexInFileMessages].descriptor;
}

const cnnParameter& cnnParameter::default_instance() {
  ::protobuf_locater_5fparameter_2eproto::InitDefaultscnnParameter();
  return *internal_default_instance();
}

cnnParameter* cnnParameter::New(::google::protobuf::Arena* arena) const {
  cnnParameter* n = new cnnParameter;
  if (arena != NULL) {
    arena->Own(n);
  }
  return n;
}

void cnnParameter::Clear() {
// @@protoc_insertion_point(message_clear_start:Measure.cnnParameter)
  ::google::protobuf::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _has_bits_[0];
  if (cached_has_bits & 63u) {
    if (cached_has_bits & 0x00000001u) {
      GOOGLE_DCHECK(!weights_file_.IsDefault(&::Measure::cnnParameter::_default_weights_file_.get()));
      (*weights_file_.UnsafeRawStringPointer())->assign(*&::Measure::cnnParameter::_default_weights_file_.get());
    }
    length_ = GOOGLE_LONGLONG(224);
    width_ = GOOGLE_LONGLONG(224);
    height_ = GOOGLE_LONGLONG(96);
    freq_ = GOOGLE_LONGLONG(25);
    nclass_ = GOOGLE_LONGLONG(3);
  }
  _has_bits_.Clear();
  _internal_metadata_.Clear();
}

bool cnnParameter::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!GOOGLE_PREDICT_TRUE(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  // @@protoc_insertion_point(parse_start:Measure.cnnParameter)
  for (;;) {
    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // optional int64 length = 1 [default = 224];
      case 1: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(8u /* 8 & 0xFF */)) {
          set_has_length();
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::int64, ::google::protobuf::internal::WireFormatLite::TYPE_INT64>(
                 input, &length_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // optional int64 width = 2 [default = 224];
      case 2: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(16u /* 16 & 0xFF */)) {
          set_has_width();
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::int64, ::google::protobuf::internal::WireFormatLite::TYPE_INT64>(
                 input, &width_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // optional int64 height = 3 [default = 96];
      case 3: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(24u /* 24 & 0xFF */)) {
          set_has_height();
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::int64, ::google::protobuf::internal::WireFormatLite::TYPE_INT64>(
                 input, &height_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // optional int64 freq = 4 [default = 25];
      case 4: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(32u /* 32 & 0xFF */)) {
          set_has_freq();
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::int64, ::google::protobuf::internal::WireFormatLite::TYPE_INT64>(
                 input, &freq_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // optional int64 nclass = 5 [default = 3];
      case 5: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(40u /* 40 & 0xFF */)) {
          set_has_nclass();
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::int64, ::google::protobuf::internal::WireFormatLite::TYPE_INT64>(
                 input, &nclass_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // optional string weights_file = 6 [default = "frozen_model.pb"];
      case 6: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(50u /* 50 & 0xFF */)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_weights_file()));
          ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
            this->weights_file().data(), static_cast<int>(this->weights_file().length()),
            ::google::protobuf::internal::WireFormat::PARSE,
            "Measure.cnnParameter.weights_file");
        } else {
          goto handle_unusual;
        }
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormat::SkipField(
              input, tag, _internal_metadata_.mutable_unknown_fields()));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:Measure.cnnParameter)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:Measure.cnnParameter)
  return false;
#undef DO_
}

void cnnParameter::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:Measure.cnnParameter)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = _has_bits_[0];
  // optional int64 length = 1 [default = 224];
  if (cached_has_bits & 0x00000002u) {
    ::google::protobuf::internal::WireFormatLite::WriteInt64(1, this->length(), output);
  }

  // optional int64 width = 2 [default = 224];
  if (cached_has_bits & 0x00000004u) {
    ::google::protobuf::internal::WireFormatLite::WriteInt64(2, this->width(), output);
  }

  // optional int64 height = 3 [default = 96];
  if (cached_has_bits & 0x00000008u) {
    ::google::protobuf::internal::WireFormatLite::WriteInt64(3, this->height(), output);
  }

  // optional int64 freq = 4 [default = 25];
  if (cached_has_bits & 0x00000010u) {
    ::google::protobuf::internal::WireFormatLite::WriteInt64(4, this->freq(), output);
  }

  // optional int64 nclass = 5 [default = 3];
  if (cached_has_bits & 0x00000020u) {
    ::google::protobuf::internal::WireFormatLite::WriteInt64(5, this->nclass(), output);
  }

  // optional string weights_file = 6 [default = "frozen_model.pb"];
  if (cached_has_bits & 0x00000001u) {
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
      this->weights_file().data(), static_cast<int>(this->weights_file().length()),
      ::google::protobuf::internal::WireFormat::SERIALIZE,
      "Measure.cnnParameter.weights_file");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      6, this->weights_file(), output);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
        _internal_metadata_.unknown_fields(), output);
  }
  // @@protoc_insertion_point(serialize_end:Measure.cnnParameter)
}

::google::protobuf::uint8* cnnParameter::InternalSerializeWithCachedSizesToArray(
    bool deterministic, ::google::protobuf::uint8* target) const {
  (void)deterministic; // Unused
  // @@protoc_insertion_point(serialize_to_array_start:Measure.cnnParameter)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = _has_bits_[0];
  // optional int64 length = 1 [default = 224];
  if (cached_has_bits & 0x00000002u) {
    target = ::google::protobuf::internal::WireFormatLite::WriteInt64ToArray(1, this->length(), target);
  }

  // optional int64 width = 2 [default = 224];
  if (cached_has_bits & 0x00000004u) {
    target = ::google::protobuf::internal::WireFormatLite::WriteInt64ToArray(2, this->width(), target);
  }

  // optional int64 height = 3 [default = 96];
  if (cached_has_bits & 0x00000008u) {
    target = ::google::protobuf::internal::WireFormatLite::WriteInt64ToArray(3, this->height(), target);
  }

  // optional int64 freq = 4 [default = 25];
  if (cached_has_bits & 0x00000010u) {
    target = ::google::protobuf::internal::WireFormatLite::WriteInt64ToArray(4, this->freq(), target);
  }

  // optional int64 nclass = 5 [default = 3];
  if (cached_has_bits & 0x00000020u) {
    target = ::google::protobuf::internal::WireFormatLite::WriteInt64ToArray(5, this->nclass(), target);
  }

  // optional string weights_file = 6 [default = "frozen_model.pb"];
  if (cached_has_bits & 0x00000001u) {
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
      this->weights_file().data(), static_cast<int>(this->weights_file().length()),
      ::google::protobuf::internal::WireFormat::SERIALIZE,
      "Measure.cnnParameter.weights_file");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        6, this->weights_file(), target);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields(), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:Measure.cnnParameter)
  return target;
}

size_t cnnParameter::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Measure.cnnParameter)
  size_t total_size = 0;

  if (_internal_metadata_.have_unknown_fields()) {
    total_size +=
      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
        _internal_metadata_.unknown_fields());
  }
  if (_has_bits_[0 / 32] & 63u) {
    // optional string weights_file = 6 [default = "frozen_model.pb"];
    if (has_weights_file()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::StringSize(
          this->weights_file());
    }

    // optional int64 length = 1 [default = 224];
    if (has_length()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::Int64Size(
          this->length());
    }

    // optional int64 width = 2 [default = 224];
    if (has_width()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::Int64Size(
          this->width());
    }

    // optional int64 height = 3 [default = 96];
    if (has_height()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::Int64Size(
          this->height());
    }

    // optional int64 freq = 4 [default = 25];
    if (has_freq()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::Int64Size(
          this->freq());
    }

    // optional int64 nclass = 5 [default = 3];
    if (has_nclass()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::Int64Size(
          this->nclass());
    }

  }
  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = cached_size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
  return total_size;
}

void cnnParameter::MergeFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:Measure.cnnParameter)
  GOOGLE_DCHECK_NE(&from, this);
  const cnnParameter* source =
      ::google::protobuf::internal::DynamicCastToGenerated<const cnnParameter>(
          &from);
  if (source == NULL) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:Measure.cnnParameter)
    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:Measure.cnnParameter)
    MergeFrom(*source);
  }
}

void cnnParameter::MergeFrom(const cnnParameter& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:Measure.cnnParameter)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = from._has_bits_[0];
  if (cached_has_bits & 63u) {
    if (cached_has_bits & 0x00000001u) {
      set_has_weights_file();
      weights_file_.AssignWithDefault(&::Measure::cnnParameter::_default_weights_file_.get(), from.weights_file_);
    }
    if (cached_has_bits & 0x00000002u) {
      length_ = from.length_;
    }
    if (cached_has_bits & 0x00000004u) {
      width_ = from.width_;
    }
    if (cached_has_bits & 0x00000008u) {
      height_ = from.height_;
    }
    if (cached_has_bits & 0x00000010u) {
      freq_ = from.freq_;
    }
    if (cached_has_bits & 0x00000020u) {
      nclass_ = from.nclass_;
    }
    _has_bits_[0] |= cached_has_bits;
  }
}

void cnnParameter::CopyFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:Measure.cnnParameter)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void cnnParameter::CopyFrom(const cnnParameter& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Measure.cnnParameter)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool cnnParameter::IsInitialized() const {
  return true;
}

void cnnParameter::Swap(cnnParameter* other) {
  if (other == this) return;
  InternalSwap(other);
}
void cnnParameter::InternalSwap(cnnParameter* other) {
  using std::swap;
  weights_file_.Swap(&other->weights_file_);
  swap(length_, other->length_);
  swap(width_, other->width_);
  swap(height_, other->height_);
  swap(freq_, other->freq_);
  swap(nclass_, other->nclass_);
  swap(_has_bits_[0], other->_has_bits_[0]);
  _internal_metadata_.Swap(&other->_internal_metadata_);
  swap(_cached_size_, other->_cached_size_);
}

::google::protobuf::Metadata cnnParameter::GetMetadata() const {
  protobuf_locater_5fparameter_2eproto::protobuf_AssignDescriptorsOnce();
  return ::protobuf_locater_5fparameter_2eproto::file_level_metadata[kIndexInFileMessages];
}


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

void LocateParameter::InitAsDefaultInstance() {
  ::Measure::_LocateParameter_default_instance_._instance.get_mutable()->area_ = const_cast< ::Measure::Area3d*>(
      ::Measure::Area3d::internal_default_instance());
  ::Measure::_LocateParameter_default_instance_._instance.get_mutable()->net_3dcnn_parameter_ = const_cast< ::Measure::cnnParameter*>(
      ::Measure::cnnParameter::internal_default_instance());
  ::Measure::_LocateParameter_default_instance_._instance.get_mutable()->seg_parameter_ = const_cast< ::Measure::PointSiftParameter*>(
      ::Measure::PointSiftParameter::internal_default_instance());
  ::Measure::_LocateParameter_default_instance_._instance.get_mutable()->yolo_parameter_ = const_cast< ::Measure::YoloParameter*>(
      ::Measure::YoloParameter::internal_default_instance());
}
#if !defined(_MSC_VER) || _MSC_VER >= 1900
const int LocateParameter::kAreaFieldNumber;
const int LocateParameter::kNet3DcnnParameterFieldNumber;
const int LocateParameter::kSegParameterFieldNumber;
const int LocateParameter::kYoloParameterFieldNumber;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900

LocateParameter::LocateParameter()
  : ::google::protobuf::Message(), _internal_metadata_(NULL) {
  if (GOOGLE_PREDICT_TRUE(this != internal_default_instance())) {
    ::protobuf_locater_5fparameter_2eproto::InitDefaultsLocateParameter();
  }
  SharedCtor();
  // @@protoc_insertion_point(constructor:Measure.LocateParameter)
}
LocateParameter::LocateParameter(const LocateParameter& from)
  : ::google::protobuf::Message(),
      _internal_metadata_(NULL),
      _has_bits_(from._has_bits_),
      _cached_size_(0) {
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  if (from.has_area()) {
    area_ = new ::Measure::Area3d(*from.area_);
  } else {
    area_ = NULL;
  }
  if (from.has_net_3dcnn_parameter()) {
    net_3dcnn_parameter_ = new ::Measure::cnnParameter(*from.net_3dcnn_parameter_);
  } else {
    net_3dcnn_parameter_ = NULL;
  }
  if (from.has_seg_parameter()) {
    seg_parameter_ = new ::Measure::PointSiftParameter(*from.seg_parameter_);
  } else {
    seg_parameter_ = NULL;
  }
  if (from.has_yolo_parameter()) {
    yolo_parameter_ = new ::Measure::YoloParameter(*from.yolo_parameter_);
  } else {
    yolo_parameter_ = NULL;
  }
  // @@protoc_insertion_point(copy_constructor:Measure.LocateParameter)
}

void LocateParameter::SharedCtor() {
  _cached_size_ = 0;
  ::memset(&area_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&yolo_parameter_) -
      reinterpret_cast<char*>(&area_)) + sizeof(yolo_parameter_));
}

LocateParameter::~LocateParameter() {
  // @@protoc_insertion_point(destructor:Measure.LocateParameter)
  SharedDtor();
}

void LocateParameter::SharedDtor() {
  if (this != internal_default_instance()) delete area_;
  if (this != internal_default_instance()) delete net_3dcnn_parameter_;
  if (this != internal_default_instance()) delete seg_parameter_;
  if (this != internal_default_instance()) delete yolo_parameter_;
}

void LocateParameter::SetCachedSize(int size) const {
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
}
const ::google::protobuf::Descriptor* LocateParameter::descriptor() {
  ::protobuf_locater_5fparameter_2eproto::protobuf_AssignDescriptorsOnce();
  return ::protobuf_locater_5fparameter_2eproto::file_level_metadata[kIndexInFileMessages].descriptor;
}

const LocateParameter& LocateParameter::default_instance() {
  ::protobuf_locater_5fparameter_2eproto::InitDefaultsLocateParameter();
  return *internal_default_instance();
}

LocateParameter* LocateParameter::New(::google::protobuf::Arena* arena) const {
  LocateParameter* n = new LocateParameter;
  if (arena != NULL) {
    arena->Own(n);
  }
  return n;
}

void LocateParameter::Clear() {
// @@protoc_insertion_point(message_clear_start:Measure.LocateParameter)
  ::google::protobuf::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _has_bits_[0];
  if (cached_has_bits & 15u) {
    if (cached_has_bits & 0x00000001u) {
      GOOGLE_DCHECK(area_ != NULL);
      area_->Clear();
    }
    if (cached_has_bits & 0x00000002u) {
      GOOGLE_DCHECK(net_3dcnn_parameter_ != NULL);
      net_3dcnn_parameter_->Clear();
    }
    if (cached_has_bits & 0x00000004u) {
      GOOGLE_DCHECK(seg_parameter_ != NULL);
      seg_parameter_->Clear();
    }
    if (cached_has_bits & 0x00000008u) {
      GOOGLE_DCHECK(yolo_parameter_ != NULL);
      yolo_parameter_->Clear();
    }
  }
  _has_bits_.Clear();
  _internal_metadata_.Clear();
}

bool LocateParameter::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!GOOGLE_PREDICT_TRUE(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  // @@protoc_insertion_point(parse_start:Measure.LocateParameter)
  for (;;) {
    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // optional .Measure.Area3d area = 1;
      case 1: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(10u /* 10 & 0xFF */)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
               input, mutable_area()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // optional .Measure.cnnParameter net_3dcnn_parameter = 2;
      case 2: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(18u /* 18 & 0xFF */)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
               input, mutable_net_3dcnn_parameter()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // optional .Measure.PointSiftParameter seg_parameter = 3;
      case 3: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(26u /* 26 & 0xFF */)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
               input, mutable_seg_parameter()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // optional .Measure.YoloParameter yolo_parameter = 4;
      case 4: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(34u /* 34 & 0xFF */)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
               input, mutable_yolo_parameter()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormat::SkipField(
              input, tag, _internal_metadata_.mutable_unknown_fields()));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:Measure.LocateParameter)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:Measure.LocateParameter)
  return false;
#undef DO_
}

void LocateParameter::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:Measure.LocateParameter)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = _has_bits_[0];
  // optional .Measure.Area3d area = 1;
  if (cached_has_bits & 0x00000001u) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      1, *this->area_, output);
  }

  // optional .Measure.cnnParameter net_3dcnn_parameter = 2;
  if (cached_has_bits & 0x00000002u) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      2, *this->net_3dcnn_parameter_, output);
  }

  // optional .Measure.PointSiftParameter seg_parameter = 3;
  if (cached_has_bits & 0x00000004u) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      3, *this->seg_parameter_, output);
  }

  // optional .Measure.YoloParameter yolo_parameter = 4;
  if (cached_has_bits & 0x00000008u) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      4, *this->yolo_parameter_, output);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
        _internal_metadata_.unknown_fields(), output);
  }
  // @@protoc_insertion_point(serialize_end:Measure.LocateParameter)
}

::google::protobuf::uint8* LocateParameter::InternalSerializeWithCachedSizesToArray(
    bool deterministic, ::google::protobuf::uint8* target) const {
  (void)deterministic; // Unused
  // @@protoc_insertion_point(serialize_to_array_start:Measure.LocateParameter)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = _has_bits_[0];
  // optional .Measure.Area3d area = 1;
  if (cached_has_bits & 0x00000001u) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageToArray(
        1, *this->area_, deterministic, target);
  }

  // optional .Measure.cnnParameter net_3dcnn_parameter = 2;
  if (cached_has_bits & 0x00000002u) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageToArray(
        2, *this->net_3dcnn_parameter_, deterministic, target);
  }

  // optional .Measure.PointSiftParameter seg_parameter = 3;
  if (cached_has_bits & 0x00000004u) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageToArray(
        3, *this->seg_parameter_, deterministic, target);
  }

  // optional .Measure.YoloParameter yolo_parameter = 4;
  if (cached_has_bits & 0x00000008u) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageToArray(
        4, *this->yolo_parameter_, deterministic, target);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields(), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:Measure.LocateParameter)
  return target;
}

size_t LocateParameter::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Measure.LocateParameter)
  size_t total_size = 0;

  if (_internal_metadata_.have_unknown_fields()) {
    total_size +=
      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
        _internal_metadata_.unknown_fields());
  }
  if (_has_bits_[0 / 32] & 15u) {
    // optional .Measure.Area3d area = 1;
    if (has_area()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::MessageSize(
          *this->area_);
    }

    // optional .Measure.cnnParameter net_3dcnn_parameter = 2;
    if (has_net_3dcnn_parameter()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::MessageSize(
          *this->net_3dcnn_parameter_);
    }

    // optional .Measure.PointSiftParameter seg_parameter = 3;
    if (has_seg_parameter()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::MessageSize(
          *this->seg_parameter_);
    }

    // optional .Measure.YoloParameter yolo_parameter = 4;
    if (has_yolo_parameter()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::MessageSize(
          *this->yolo_parameter_);
    }

  }
  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = cached_size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
  return total_size;
}

void LocateParameter::MergeFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:Measure.LocateParameter)
  GOOGLE_DCHECK_NE(&from, this);
  const LocateParameter* source =
      ::google::protobuf::internal::DynamicCastToGenerated<const LocateParameter>(
          &from);
  if (source == NULL) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:Measure.LocateParameter)
    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:Measure.LocateParameter)
    MergeFrom(*source);
  }
}

void LocateParameter::MergeFrom(const LocateParameter& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:Measure.LocateParameter)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = from._has_bits_[0];
  if (cached_has_bits & 15u) {
    if (cached_has_bits & 0x00000001u) {
      mutable_area()->::Measure::Area3d::MergeFrom(from.area());
    }
    if (cached_has_bits & 0x00000002u) {
      mutable_net_3dcnn_parameter()->::Measure::cnnParameter::MergeFrom(from.net_3dcnn_parameter());
    }
    if (cached_has_bits & 0x00000004u) {
      mutable_seg_parameter()->::Measure::PointSiftParameter::MergeFrom(from.seg_parameter());
    }
    if (cached_has_bits & 0x00000008u) {
      mutable_yolo_parameter()->::Measure::YoloParameter::MergeFrom(from.yolo_parameter());
    }
  }
}

void LocateParameter::CopyFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:Measure.LocateParameter)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void LocateParameter::CopyFrom(const LocateParameter& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Measure.LocateParameter)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool LocateParameter::IsInitialized() const {
  return true;
}

void LocateParameter::Swap(LocateParameter* other) {
  if (other == this) return;
  InternalSwap(other);
}
void LocateParameter::InternalSwap(LocateParameter* other) {
  using std::swap;
  swap(area_, other->area_);
  swap(net_3dcnn_parameter_, other->net_3dcnn_parameter_);
  swap(seg_parameter_, other->seg_parameter_);
  swap(yolo_parameter_, other->yolo_parameter_);
  swap(_has_bits_[0], other->_has_bits_[0]);
  _internal_metadata_.Swap(&other->_internal_metadata_);
  swap(_cached_size_, other->_cached_size_);
}

::google::protobuf::Metadata LocateParameter::GetMetadata() const {
  protobuf_locater_5fparameter_2eproto::protobuf_AssignDescriptorsOnce();
  return ::protobuf_locater_5fparameter_2eproto::file_level_metadata[kIndexInFileMessages];
}


// @@protoc_insertion_point(namespace_scope)
}  // namespace Measure

// @@protoc_insertion_point(global_scope)
