Skip to content

File location_data.pb.cc

File List > formats > location_data.pb.cc

Go to the documentation of this file

// Generated by the protocol buffer compiler.  DO NOT EDIT!
// source: mediapipe/framework/formats/location_data.proto

#include "mediapipe/framework/formats/location_data.pb.h"

#include <algorithm>

#include <google/protobuf/io/coded_stream.h>
#include <google/protobuf/extension_set.h>
#include <google/protobuf/wire_format_lite.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>
// @@protoc_insertion_point(includes)
#include <google/protobuf/port_def.inc>

PROTOBUF_PRAGMA_INIT_SEG
namespace mediapipe {
constexpr LocationData_BoundingBox::LocationData_BoundingBox(
  ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized)
  : xmin_(0)
  , ymin_(0)
  , width_(0)
  , height_(0){}
struct LocationData_BoundingBoxDefaultTypeInternal {
  constexpr LocationData_BoundingBoxDefaultTypeInternal()
    : _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {}
  ~LocationData_BoundingBoxDefaultTypeInternal() {}
  union {
    LocationData_BoundingBox _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT LocationData_BoundingBoxDefaultTypeInternal _LocationData_BoundingBox_default_instance_;
constexpr LocationData_RelativeBoundingBox::LocationData_RelativeBoundingBox(
  ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized)
  : xmin_(0)
  , ymin_(0)
  , width_(0)
  , height_(0){}
struct LocationData_RelativeBoundingBoxDefaultTypeInternal {
  constexpr LocationData_RelativeBoundingBoxDefaultTypeInternal()
    : _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {}
  ~LocationData_RelativeBoundingBoxDefaultTypeInternal() {}
  union {
    LocationData_RelativeBoundingBox _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT LocationData_RelativeBoundingBoxDefaultTypeInternal _LocationData_RelativeBoundingBox_default_instance_;
constexpr LocationData_BinaryMask::LocationData_BinaryMask(
  ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized)
  : rasterization_(nullptr)
  , width_(0)
  , height_(0){}
struct LocationData_BinaryMaskDefaultTypeInternal {
  constexpr LocationData_BinaryMaskDefaultTypeInternal()
    : _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {}
  ~LocationData_BinaryMaskDefaultTypeInternal() {}
  union {
    LocationData_BinaryMask _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT LocationData_BinaryMaskDefaultTypeInternal _LocationData_BinaryMask_default_instance_;
constexpr LocationData_RelativeKeypoint::LocationData_RelativeKeypoint(
  ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized)
  : keypoint_label_(&::PROTOBUF_NAMESPACE_ID::internal::fixed_address_empty_string)
  , x_(0)
  , y_(0)
  , score_(0){}
struct LocationData_RelativeKeypointDefaultTypeInternal {
  constexpr LocationData_RelativeKeypointDefaultTypeInternal()
    : _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {}
  ~LocationData_RelativeKeypointDefaultTypeInternal() {}
  union {
    LocationData_RelativeKeypoint _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT LocationData_RelativeKeypointDefaultTypeInternal _LocationData_RelativeKeypoint_default_instance_;
constexpr LocationData::LocationData(
  ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized)
  : relative_keypoints_()
  , bounding_box_(nullptr)
  , relative_bounding_box_(nullptr)
  , mask_(nullptr)
  , format_(0)
{}
struct LocationDataDefaultTypeInternal {
  constexpr LocationDataDefaultTypeInternal()
    : _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {}
  ~LocationDataDefaultTypeInternal() {}
  union {
    LocationData _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT LocationDataDefaultTypeInternal _LocationData_default_instance_;
}  // namespace mediapipe
static ::PROTOBUF_NAMESPACE_ID::Metadata file_level_metadata_mediapipe_2fframework_2fformats_2flocation_5fdata_2eproto[5];
static const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* file_level_enum_descriptors_mediapipe_2fframework_2fformats_2flocation_5fdata_2eproto[1];
static constexpr ::PROTOBUF_NAMESPACE_ID::ServiceDescriptor const** file_level_service_descriptors_mediapipe_2fframework_2fformats_2flocation_5fdata_2eproto = nullptr;

const uint32_t TableStruct_mediapipe_2fframework_2fformats_2flocation_5fdata_2eproto::offsets[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = {
  PROTOBUF_FIELD_OFFSET(::mediapipe::LocationData_BoundingBox, _has_bits_),
  PROTOBUF_FIELD_OFFSET(::mediapipe::LocationData_BoundingBox, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::mediapipe::LocationData_BoundingBox, xmin_),
  PROTOBUF_FIELD_OFFSET(::mediapipe::LocationData_BoundingBox, ymin_),
  PROTOBUF_FIELD_OFFSET(::mediapipe::LocationData_BoundingBox, width_),
  PROTOBUF_FIELD_OFFSET(::mediapipe::LocationData_BoundingBox, height_),
  0,
  1,
  2,
  3,
  PROTOBUF_FIELD_OFFSET(::mediapipe::LocationData_RelativeBoundingBox, _has_bits_),
  PROTOBUF_FIELD_OFFSET(::mediapipe::LocationData_RelativeBoundingBox, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::mediapipe::LocationData_RelativeBoundingBox, xmin_),
  PROTOBUF_FIELD_OFFSET(::mediapipe::LocationData_RelativeBoundingBox, ymin_),
  PROTOBUF_FIELD_OFFSET(::mediapipe::LocationData_RelativeBoundingBox, width_),
  PROTOBUF_FIELD_OFFSET(::mediapipe::LocationData_RelativeBoundingBox, height_),
  0,
  1,
  2,
  3,
  PROTOBUF_FIELD_OFFSET(::mediapipe::LocationData_BinaryMask, _has_bits_),
  PROTOBUF_FIELD_OFFSET(::mediapipe::LocationData_BinaryMask, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::mediapipe::LocationData_BinaryMask, width_),
  PROTOBUF_FIELD_OFFSET(::mediapipe::LocationData_BinaryMask, height_),
  PROTOBUF_FIELD_OFFSET(::mediapipe::LocationData_BinaryMask, rasterization_),
  1,
  2,
  0,
  PROTOBUF_FIELD_OFFSET(::mediapipe::LocationData_RelativeKeypoint, _has_bits_),
  PROTOBUF_FIELD_OFFSET(::mediapipe::LocationData_RelativeKeypoint, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::mediapipe::LocationData_RelativeKeypoint, x_),
  PROTOBUF_FIELD_OFFSET(::mediapipe::LocationData_RelativeKeypoint, y_),
  PROTOBUF_FIELD_OFFSET(::mediapipe::LocationData_RelativeKeypoint, keypoint_label_),
  PROTOBUF_FIELD_OFFSET(::mediapipe::LocationData_RelativeKeypoint, score_),
  1,
  2,
  0,
  3,
  PROTOBUF_FIELD_OFFSET(::mediapipe::LocationData, _has_bits_),
  PROTOBUF_FIELD_OFFSET(::mediapipe::LocationData, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::mediapipe::LocationData, format_),
  PROTOBUF_FIELD_OFFSET(::mediapipe::LocationData, bounding_box_),
  PROTOBUF_FIELD_OFFSET(::mediapipe::LocationData, relative_bounding_box_),
  PROTOBUF_FIELD_OFFSET(::mediapipe::LocationData, mask_),
  PROTOBUF_FIELD_OFFSET(::mediapipe::LocationData, relative_keypoints_),
  3,
  0,
  1,
  2,
  ~0u,
};
static const ::PROTOBUF_NAMESPACE_ID::internal::MigrationSchema schemas[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = {
  { 0, 10, -1, sizeof(::mediapipe::LocationData_BoundingBox)},
  { 14, 24, -1, sizeof(::mediapipe::LocationData_RelativeBoundingBox)},
  { 28, 37, -1, sizeof(::mediapipe::LocationData_BinaryMask)},
  { 40, 50, -1, sizeof(::mediapipe::LocationData_RelativeKeypoint)},
  { 54, 65, -1, sizeof(::mediapipe::LocationData)},
};

static ::PROTOBUF_NAMESPACE_ID::Message const * const file_default_instances[] = {
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::mediapipe::_LocationData_BoundingBox_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::mediapipe::_LocationData_RelativeBoundingBox_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::mediapipe::_LocationData_BinaryMask_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::mediapipe::_LocationData_RelativeKeypoint_default_instance_),
  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::mediapipe::_LocationData_default_instance_),
};

const char descriptor_table_protodef_mediapipe_2fframework_2fformats_2flocation_5fdata_2eproto[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) =
  "\n/mediapipe/framework/formats/location_d"
  "ata.proto\022\tmediapipe\032:mediapipe/framewor"
  "k/formats/annotation/rasterization.proto"
  "\"\325\005\n\014LocationData\022.\n\006format\030\001 \001(\0162\036.medi"
  "apipe.LocationData.Format\0229\n\014bounding_bo"
  "x\030\002 \001(\0132#.mediapipe.LocationData.Boundin"
  "gBox\022J\n\025relative_bounding_box\030\003 \001(\0132+.me"
  "diapipe.LocationData.RelativeBoundingBox"
  "\0220\n\004mask\030\004 \001(\0132\".mediapipe.LocationData."
  "BinaryMask\022D\n\022relative_keypoints\030\005 \003(\0132("
  ".mediapipe.LocationData.RelativeKeypoint"
  "\032H\n\013BoundingBox\022\014\n\004xmin\030\001 \001(\005\022\014\n\004ymin\030\002 "
  "\001(\005\022\r\n\005width\030\003 \001(\005\022\016\n\006height\030\004 \001(\005\032P\n\023Re"
  "lativeBoundingBox\022\014\n\004xmin\030\001 \001(\002\022\014\n\004ymin\030"
  "\002 \001(\002\022\r\n\005width\030\003 \001(\002\022\016\n\006height\030\004 \001(\002\032\\\n\n"
  "BinaryMask\022\r\n\005width\030\001 \001(\005\022\016\n\006height\030\002 \001("
  "\005\022/\n\rrasterization\030\003 \001(\0132\030.mediapipe.Ras"
  "terization\032O\n\020RelativeKeypoint\022\t\n\001x\030\001 \001("
  "\002\022\t\n\001y\030\002 \001(\002\022\026\n\016keypoint_label\030\003 \001(\t\022\r\n\005"
  "score\030\004 \001(\002\"K\n\006Format\022\n\n\006GLOBAL\020\000\022\020\n\014BOU"
  "NDING_BOX\020\001\022\031\n\025RELATIVE_BOUNDING_BOX\020\002\022\010"
  "\n\004MASK\020\003B7\n\"com.google.mediapipe.formats"
  ".protoB\021LocationDataProto"
  ;
static const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable*const descriptor_table_mediapipe_2fframework_2fformats_2flocation_5fdata_2eproto_deps[1] = {
  &::descriptor_table_mediapipe_2fframework_2fformats_2fannotation_2frasterization_2eproto,
};
static ::PROTOBUF_NAMESPACE_ID::internal::once_flag descriptor_table_mediapipe_2fframework_2fformats_2flocation_5fdata_2eproto_once;
const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable descriptor_table_mediapipe_2fframework_2fformats_2flocation_5fdata_2eproto = {
  false, false, 905, descriptor_table_protodef_mediapipe_2fframework_2fformats_2flocation_5fdata_2eproto, "mediapipe/framework/formats/location_data.proto", 
  &descriptor_table_mediapipe_2fframework_2fformats_2flocation_5fdata_2eproto_once, descriptor_table_mediapipe_2fframework_2fformats_2flocation_5fdata_2eproto_deps, 1, 5,
  schemas, file_default_instances, TableStruct_mediapipe_2fframework_2fformats_2flocation_5fdata_2eproto::offsets,
  file_level_metadata_mediapipe_2fframework_2fformats_2flocation_5fdata_2eproto, file_level_enum_descriptors_mediapipe_2fframework_2fformats_2flocation_5fdata_2eproto, file_level_service_descriptors_mediapipe_2fframework_2fformats_2flocation_5fdata_2eproto,
};
PROTOBUF_ATTRIBUTE_WEAK const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable* descriptor_table_mediapipe_2fframework_2fformats_2flocation_5fdata_2eproto_getter() {
  return &descriptor_table_mediapipe_2fframework_2fformats_2flocation_5fdata_2eproto;
}

// Force running AddDescriptors() at dynamic initialization time.
PROTOBUF_ATTRIBUTE_INIT_PRIORITY static ::PROTOBUF_NAMESPACE_ID::internal::AddDescriptorsRunner dynamic_init_dummy_mediapipe_2fframework_2fformats_2flocation_5fdata_2eproto(&descriptor_table_mediapipe_2fframework_2fformats_2flocation_5fdata_2eproto);
namespace mediapipe {
const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* LocationData_Format_descriptor() {
  ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&descriptor_table_mediapipe_2fframework_2fformats_2flocation_5fdata_2eproto);
  return file_level_enum_descriptors_mediapipe_2fframework_2fformats_2flocation_5fdata_2eproto[0];
}
bool LocationData_Format_IsValid(int value) {
  switch (value) {
    case 0:
    case 1:
    case 2:
    case 3:
      return true;
    default:
      return false;
  }
}

#if (__cplusplus < 201703) && (!defined(_MSC_VER) || (_MSC_VER >= 1900 && _MSC_VER < 1912))
constexpr LocationData_Format LocationData::GLOBAL;
constexpr LocationData_Format LocationData::BOUNDING_BOX;
constexpr LocationData_Format LocationData::RELATIVE_BOUNDING_BOX;
constexpr LocationData_Format LocationData::MASK;
constexpr LocationData_Format LocationData::Format_MIN;
constexpr LocationData_Format LocationData::Format_MAX;
constexpr int LocationData::Format_ARRAYSIZE;
#endif  // (__cplusplus < 201703) && (!defined(_MSC_VER) || (_MSC_VER >= 1900 && _MSC_VER < 1912))

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

class LocationData_BoundingBox::_Internal {
 public:
  using HasBits = decltype(std::declval<LocationData_BoundingBox>()._has_bits_);
  static void set_has_xmin(HasBits* has_bits) {
    (*has_bits)[0] |= 1u;
  }
  static void set_has_ymin(HasBits* has_bits) {
    (*has_bits)[0] |= 2u;
  }
  static void set_has_width(HasBits* has_bits) {
    (*has_bits)[0] |= 4u;
  }
  static void set_has_height(HasBits* has_bits) {
    (*has_bits)[0] |= 8u;
  }
};

LocationData_BoundingBox::LocationData_BoundingBox(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor();
  if (!is_message_owned) {
    RegisterArenaDtor(arena);
  }
  // @@protoc_insertion_point(arena_constructor:mediapipe.LocationData.BoundingBox)
}
LocationData_BoundingBox::LocationData_BoundingBox(const LocationData_BoundingBox& from)
  : ::PROTOBUF_NAMESPACE_ID::Message(),
      _has_bits_(from._has_bits_) {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  ::memcpy(&xmin_, &from.xmin_,
    static_cast<size_t>(reinterpret_cast<char*>(&height_) -
    reinterpret_cast<char*>(&xmin_)) + sizeof(height_));
  // @@protoc_insertion_point(copy_constructor:mediapipe.LocationData.BoundingBox)
}

inline void LocationData_BoundingBox::SharedCtor() {
::memset(reinterpret_cast<char*>(this) + static_cast<size_t>(
    reinterpret_cast<char*>(&xmin_) - reinterpret_cast<char*>(this)),
    0, static_cast<size_t>(reinterpret_cast<char*>(&height_) -
    reinterpret_cast<char*>(&xmin_)) + sizeof(height_));
}

LocationData_BoundingBox::~LocationData_BoundingBox() {
  // @@protoc_insertion_point(destructor:mediapipe.LocationData.BoundingBox)
  if (GetArenaForAllocation() != nullptr) return;
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

inline void LocationData_BoundingBox::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
}

void LocationData_BoundingBox::ArenaDtor(void* object) {
  LocationData_BoundingBox* _this = reinterpret_cast< LocationData_BoundingBox* >(object);
  (void)_this;
}
void LocationData_BoundingBox::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void LocationData_BoundingBox::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}

void LocationData_BoundingBox::Clear() {
// @@protoc_insertion_point(message_clear_start:mediapipe.LocationData.BoundingBox)
  uint32_t 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 & 0x0000000fu) {
    ::memset(&xmin_, 0, static_cast<size_t>(
        reinterpret_cast<char*>(&height_) -
        reinterpret_cast<char*>(&xmin_)) + sizeof(height_));
  }
  _has_bits_.Clear();
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* LocationData_BoundingBox::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  _Internal::HasBits has_bits{};
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // optional int32 xmin = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 8)) {
          _Internal::set_has_xmin(&has_bits);
          xmin_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // optional int32 ymin = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 16)) {
          _Internal::set_has_ymin(&has_bits);
          ymin_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // optional int32 width = 3;
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 24)) {
          _Internal::set_has_width(&has_bits);
          width_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // optional int32 height = 4;
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 32)) {
          _Internal::set_has_height(&has_bits);
          height_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  _has_bits_.Or(has_bits);
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* LocationData_BoundingBox::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:mediapipe.LocationData.BoundingBox)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = _has_bits_[0];
  // optional int32 xmin = 1;
  if (cached_has_bits & 0x00000001u) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(1, this->_internal_xmin(), target);
  }

  // optional int32 ymin = 2;
  if (cached_has_bits & 0x00000002u) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(2, this->_internal_ymin(), target);
  }

  // optional int32 width = 3;
  if (cached_has_bits & 0x00000004u) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(3, this->_internal_width(), target);
  }

  // optional int32 height = 4;
  if (cached_has_bits & 0x00000008u) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(4, this->_internal_height(), target);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:mediapipe.LocationData.BoundingBox)
  return target;
}

size_t LocationData_BoundingBox::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:mediapipe.LocationData.BoundingBox)
  size_t total_size = 0;

  uint32_t 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 & 0x0000000fu) {
    // optional int32 xmin = 1;
    if (cached_has_bits & 0x00000001u) {
      total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32SizePlusOne(this->_internal_xmin());
    }

    // optional int32 ymin = 2;
    if (cached_has_bits & 0x00000002u) {
      total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32SizePlusOne(this->_internal_ymin());
    }

    // optional int32 width = 3;
    if (cached_has_bits & 0x00000004u) {
      total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32SizePlusOne(this->_internal_width());
    }

    // optional int32 height = 4;
    if (cached_has_bits & 0x00000008u) {
      total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32SizePlusOne(this->_internal_height());
    }

  }
  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData LocationData_BoundingBox::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
    LocationData_BoundingBox::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*LocationData_BoundingBox::GetClassData() const { return &_class_data_; }

void LocationData_BoundingBox::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
                      const ::PROTOBUF_NAMESPACE_ID::Message& from) {
  static_cast<LocationData_BoundingBox *>(to)->MergeFrom(
      static_cast<const LocationData_BoundingBox &>(from));
}


void LocationData_BoundingBox::MergeFrom(const LocationData_BoundingBox& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:mediapipe.LocationData.BoundingBox)
  GOOGLE_DCHECK_NE(&from, this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = from._has_bits_[0];
  if (cached_has_bits & 0x0000000fu) {
    if (cached_has_bits & 0x00000001u) {
      xmin_ = from.xmin_;
    }
    if (cached_has_bits & 0x00000002u) {
      ymin_ = from.ymin_;
    }
    if (cached_has_bits & 0x00000004u) {
      width_ = from.width_;
    }
    if (cached_has_bits & 0x00000008u) {
      height_ = from.height_;
    }
    _has_bits_[0] |= cached_has_bits;
  }
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void LocationData_BoundingBox::CopyFrom(const LocationData_BoundingBox& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:mediapipe.LocationData.BoundingBox)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

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

void LocationData_BoundingBox::InternalSwap(LocationData_BoundingBox* other) {
  using std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_has_bits_[0], other->_has_bits_[0]);
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(LocationData_BoundingBox, height_)
      + sizeof(LocationData_BoundingBox::height_)
      - PROTOBUF_FIELD_OFFSET(LocationData_BoundingBox, xmin_)>(
          reinterpret_cast<char*>(&xmin_),
          reinterpret_cast<char*>(&other->xmin_));
}

::PROTOBUF_NAMESPACE_ID::Metadata LocationData_BoundingBox::GetMetadata() const {
  return ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(
      &descriptor_table_mediapipe_2fframework_2fformats_2flocation_5fdata_2eproto_getter, &descriptor_table_mediapipe_2fframework_2fformats_2flocation_5fdata_2eproto_once,
      file_level_metadata_mediapipe_2fframework_2fformats_2flocation_5fdata_2eproto[0]);
}

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

class LocationData_RelativeBoundingBox::_Internal {
 public:
  using HasBits = decltype(std::declval<LocationData_RelativeBoundingBox>()._has_bits_);
  static void set_has_xmin(HasBits* has_bits) {
    (*has_bits)[0] |= 1u;
  }
  static void set_has_ymin(HasBits* has_bits) {
    (*has_bits)[0] |= 2u;
  }
  static void set_has_width(HasBits* has_bits) {
    (*has_bits)[0] |= 4u;
  }
  static void set_has_height(HasBits* has_bits) {
    (*has_bits)[0] |= 8u;
  }
};

LocationData_RelativeBoundingBox::LocationData_RelativeBoundingBox(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor();
  if (!is_message_owned) {
    RegisterArenaDtor(arena);
  }
  // @@protoc_insertion_point(arena_constructor:mediapipe.LocationData.RelativeBoundingBox)
}
LocationData_RelativeBoundingBox::LocationData_RelativeBoundingBox(const LocationData_RelativeBoundingBox& from)
  : ::PROTOBUF_NAMESPACE_ID::Message(),
      _has_bits_(from._has_bits_) {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  ::memcpy(&xmin_, &from.xmin_,
    static_cast<size_t>(reinterpret_cast<char*>(&height_) -
    reinterpret_cast<char*>(&xmin_)) + sizeof(height_));
  // @@protoc_insertion_point(copy_constructor:mediapipe.LocationData.RelativeBoundingBox)
}

inline void LocationData_RelativeBoundingBox::SharedCtor() {
::memset(reinterpret_cast<char*>(this) + static_cast<size_t>(
    reinterpret_cast<char*>(&xmin_) - reinterpret_cast<char*>(this)),
    0, static_cast<size_t>(reinterpret_cast<char*>(&height_) -
    reinterpret_cast<char*>(&xmin_)) + sizeof(height_));
}

LocationData_RelativeBoundingBox::~LocationData_RelativeBoundingBox() {
  // @@protoc_insertion_point(destructor:mediapipe.LocationData.RelativeBoundingBox)
  if (GetArenaForAllocation() != nullptr) return;
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

inline void LocationData_RelativeBoundingBox::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
}

void LocationData_RelativeBoundingBox::ArenaDtor(void* object) {
  LocationData_RelativeBoundingBox* _this = reinterpret_cast< LocationData_RelativeBoundingBox* >(object);
  (void)_this;
}
void LocationData_RelativeBoundingBox::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void LocationData_RelativeBoundingBox::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}

void LocationData_RelativeBoundingBox::Clear() {
// @@protoc_insertion_point(message_clear_start:mediapipe.LocationData.RelativeBoundingBox)
  uint32_t 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 & 0x0000000fu) {
    ::memset(&xmin_, 0, static_cast<size_t>(
        reinterpret_cast<char*>(&height_) -
        reinterpret_cast<char*>(&xmin_)) + sizeof(height_));
  }
  _has_bits_.Clear();
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* LocationData_RelativeBoundingBox::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  _Internal::HasBits has_bits{};
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // optional float xmin = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 13)) {
          _Internal::set_has_xmin(&has_bits);
          xmin_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else
          goto handle_unusual;
        continue;
      // optional float ymin = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 21)) {
          _Internal::set_has_ymin(&has_bits);
          ymin_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else
          goto handle_unusual;
        continue;
      // optional float width = 3;
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 29)) {
          _Internal::set_has_width(&has_bits);
          width_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else
          goto handle_unusual;
        continue;
      // optional float height = 4;
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 37)) {
          _Internal::set_has_height(&has_bits);
          height_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  _has_bits_.Or(has_bits);
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* LocationData_RelativeBoundingBox::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:mediapipe.LocationData.RelativeBoundingBox)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = _has_bits_[0];
  // optional float xmin = 1;
  if (cached_has_bits & 0x00000001u) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteFloatToArray(1, this->_internal_xmin(), target);
  }

  // optional float ymin = 2;
  if (cached_has_bits & 0x00000002u) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteFloatToArray(2, this->_internal_ymin(), target);
  }

  // optional float width = 3;
  if (cached_has_bits & 0x00000004u) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteFloatToArray(3, this->_internal_width(), target);
  }

  // optional float height = 4;
  if (cached_has_bits & 0x00000008u) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteFloatToArray(4, this->_internal_height(), target);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:mediapipe.LocationData.RelativeBoundingBox)
  return target;
}

size_t LocationData_RelativeBoundingBox::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:mediapipe.LocationData.RelativeBoundingBox)
  size_t total_size = 0;

  uint32_t 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 & 0x0000000fu) {
    // optional float xmin = 1;
    if (cached_has_bits & 0x00000001u) {
      total_size += 1 + 4;
    }

    // optional float ymin = 2;
    if (cached_has_bits & 0x00000002u) {
      total_size += 1 + 4;
    }

    // optional float width = 3;
    if (cached_has_bits & 0x00000004u) {
      total_size += 1 + 4;
    }

    // optional float height = 4;
    if (cached_has_bits & 0x00000008u) {
      total_size += 1 + 4;
    }

  }
  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData LocationData_RelativeBoundingBox::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
    LocationData_RelativeBoundingBox::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*LocationData_RelativeBoundingBox::GetClassData() const { return &_class_data_; }

void LocationData_RelativeBoundingBox::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
                      const ::PROTOBUF_NAMESPACE_ID::Message& from) {
  static_cast<LocationData_RelativeBoundingBox *>(to)->MergeFrom(
      static_cast<const LocationData_RelativeBoundingBox &>(from));
}


void LocationData_RelativeBoundingBox::MergeFrom(const LocationData_RelativeBoundingBox& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:mediapipe.LocationData.RelativeBoundingBox)
  GOOGLE_DCHECK_NE(&from, this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = from._has_bits_[0];
  if (cached_has_bits & 0x0000000fu) {
    if (cached_has_bits & 0x00000001u) {
      xmin_ = from.xmin_;
    }
    if (cached_has_bits & 0x00000002u) {
      ymin_ = from.ymin_;
    }
    if (cached_has_bits & 0x00000004u) {
      width_ = from.width_;
    }
    if (cached_has_bits & 0x00000008u) {
      height_ = from.height_;
    }
    _has_bits_[0] |= cached_has_bits;
  }
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void LocationData_RelativeBoundingBox::CopyFrom(const LocationData_RelativeBoundingBox& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:mediapipe.LocationData.RelativeBoundingBox)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

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

void LocationData_RelativeBoundingBox::InternalSwap(LocationData_RelativeBoundingBox* other) {
  using std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_has_bits_[0], other->_has_bits_[0]);
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(LocationData_RelativeBoundingBox, height_)
      + sizeof(LocationData_RelativeBoundingBox::height_)
      - PROTOBUF_FIELD_OFFSET(LocationData_RelativeBoundingBox, xmin_)>(
          reinterpret_cast<char*>(&xmin_),
          reinterpret_cast<char*>(&other->xmin_));
}

::PROTOBUF_NAMESPACE_ID::Metadata LocationData_RelativeBoundingBox::GetMetadata() const {
  return ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(
      &descriptor_table_mediapipe_2fframework_2fformats_2flocation_5fdata_2eproto_getter, &descriptor_table_mediapipe_2fframework_2fformats_2flocation_5fdata_2eproto_once,
      file_level_metadata_mediapipe_2fframework_2fformats_2flocation_5fdata_2eproto[1]);
}

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

class LocationData_BinaryMask::_Internal {
 public:
  using HasBits = decltype(std::declval<LocationData_BinaryMask>()._has_bits_);
  static void set_has_width(HasBits* has_bits) {
    (*has_bits)[0] |= 2u;
  }
  static void set_has_height(HasBits* has_bits) {
    (*has_bits)[0] |= 4u;
  }
  static const ::mediapipe::Rasterization& rasterization(const LocationData_BinaryMask* msg);
  static void set_has_rasterization(HasBits* has_bits) {
    (*has_bits)[0] |= 1u;
  }
};

const ::mediapipe::Rasterization&
LocationData_BinaryMask::_Internal::rasterization(const LocationData_BinaryMask* msg) {
  return *msg->rasterization_;
}
void LocationData_BinaryMask::clear_rasterization() {
  if (rasterization_ != nullptr) rasterization_->Clear();
  _has_bits_[0] &= ~0x00000001u;
}
LocationData_BinaryMask::LocationData_BinaryMask(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor();
  if (!is_message_owned) {
    RegisterArenaDtor(arena);
  }
  // @@protoc_insertion_point(arena_constructor:mediapipe.LocationData.BinaryMask)
}
LocationData_BinaryMask::LocationData_BinaryMask(const LocationData_BinaryMask& from)
  : ::PROTOBUF_NAMESPACE_ID::Message(),
      _has_bits_(from._has_bits_) {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  if (from._internal_has_rasterization()) {
    rasterization_ = new ::mediapipe::Rasterization(*from.rasterization_);
  } else {
    rasterization_ = nullptr;
  }
  ::memcpy(&width_, &from.width_,
    static_cast<size_t>(reinterpret_cast<char*>(&height_) -
    reinterpret_cast<char*>(&width_)) + sizeof(height_));
  // @@protoc_insertion_point(copy_constructor:mediapipe.LocationData.BinaryMask)
}

inline void LocationData_BinaryMask::SharedCtor() {
::memset(reinterpret_cast<char*>(this) + static_cast<size_t>(
    reinterpret_cast<char*>(&rasterization_) - reinterpret_cast<char*>(this)),
    0, static_cast<size_t>(reinterpret_cast<char*>(&height_) -
    reinterpret_cast<char*>(&rasterization_)) + sizeof(height_));
}

LocationData_BinaryMask::~LocationData_BinaryMask() {
  // @@protoc_insertion_point(destructor:mediapipe.LocationData.BinaryMask)
  if (GetArenaForAllocation() != nullptr) return;
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

inline void LocationData_BinaryMask::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  if (this != internal_default_instance()) delete rasterization_;
}

void LocationData_BinaryMask::ArenaDtor(void* object) {
  LocationData_BinaryMask* _this = reinterpret_cast< LocationData_BinaryMask* >(object);
  (void)_this;
}
void LocationData_BinaryMask::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void LocationData_BinaryMask::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}

void LocationData_BinaryMask::Clear() {
// @@protoc_insertion_point(message_clear_start:mediapipe.LocationData.BinaryMask)
  uint32_t 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 & 0x00000001u) {
    GOOGLE_DCHECK(rasterization_ != nullptr);
    rasterization_->Clear();
  }
  if (cached_has_bits & 0x00000006u) {
    ::memset(&width_, 0, static_cast<size_t>(
        reinterpret_cast<char*>(&height_) -
        reinterpret_cast<char*>(&width_)) + sizeof(height_));
  }
  _has_bits_.Clear();
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* LocationData_BinaryMask::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  _Internal::HasBits has_bits{};
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // optional int32 width = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 8)) {
          _Internal::set_has_width(&has_bits);
          width_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // optional int32 height = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 16)) {
          _Internal::set_has_height(&has_bits);
          height_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // optional .mediapipe.Rasterization rasterization = 3;
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 26)) {
          ptr = ctx->ParseMessage(_internal_mutable_rasterization(), ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  _has_bits_.Or(has_bits);
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* LocationData_BinaryMask::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:mediapipe.LocationData.BinaryMask)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = _has_bits_[0];
  // optional int32 width = 1;
  if (cached_has_bits & 0x00000002u) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(1, this->_internal_width(), target);
  }

  // optional int32 height = 2;
  if (cached_has_bits & 0x00000004u) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(2, this->_internal_height(), target);
  }

  // optional .mediapipe.Rasterization rasterization = 3;
  if (cached_has_bits & 0x00000001u) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        3, _Internal::rasterization(this), target, stream);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:mediapipe.LocationData.BinaryMask)
  return target;
}

size_t LocationData_BinaryMask::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:mediapipe.LocationData.BinaryMask)
  size_t total_size = 0;

  uint32_t 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 & 0x00000007u) {
    // optional .mediapipe.Rasterization rasterization = 3;
    if (cached_has_bits & 0x00000001u) {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *rasterization_);
    }

    // optional int32 width = 1;
    if (cached_has_bits & 0x00000002u) {
      total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32SizePlusOne(this->_internal_width());
    }

    // optional int32 height = 2;
    if (cached_has_bits & 0x00000004u) {
      total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32SizePlusOne(this->_internal_height());
    }

  }
  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData LocationData_BinaryMask::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
    LocationData_BinaryMask::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*LocationData_BinaryMask::GetClassData() const { return &_class_data_; }

void LocationData_BinaryMask::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
                      const ::PROTOBUF_NAMESPACE_ID::Message& from) {
  static_cast<LocationData_BinaryMask *>(to)->MergeFrom(
      static_cast<const LocationData_BinaryMask &>(from));
}


void LocationData_BinaryMask::MergeFrom(const LocationData_BinaryMask& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:mediapipe.LocationData.BinaryMask)
  GOOGLE_DCHECK_NE(&from, this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = from._has_bits_[0];
  if (cached_has_bits & 0x00000007u) {
    if (cached_has_bits & 0x00000001u) {
      _internal_mutable_rasterization()->::mediapipe::Rasterization::MergeFrom(from._internal_rasterization());
    }
    if (cached_has_bits & 0x00000002u) {
      width_ = from.width_;
    }
    if (cached_has_bits & 0x00000004u) {
      height_ = from.height_;
    }
    _has_bits_[0] |= cached_has_bits;
  }
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void LocationData_BinaryMask::CopyFrom(const LocationData_BinaryMask& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:mediapipe.LocationData.BinaryMask)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool LocationData_BinaryMask::IsInitialized() const {
  if (_internal_has_rasterization()) {
    if (!rasterization_->IsInitialized()) return false;
  }
  return true;
}

void LocationData_BinaryMask::InternalSwap(LocationData_BinaryMask* other) {
  using std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_has_bits_[0], other->_has_bits_[0]);
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(LocationData_BinaryMask, height_)
      + sizeof(LocationData_BinaryMask::height_)
      - PROTOBUF_FIELD_OFFSET(LocationData_BinaryMask, rasterization_)>(
          reinterpret_cast<char*>(&rasterization_),
          reinterpret_cast<char*>(&other->rasterization_));
}

::PROTOBUF_NAMESPACE_ID::Metadata LocationData_BinaryMask::GetMetadata() const {
  return ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(
      &descriptor_table_mediapipe_2fframework_2fformats_2flocation_5fdata_2eproto_getter, &descriptor_table_mediapipe_2fframework_2fformats_2flocation_5fdata_2eproto_once,
      file_level_metadata_mediapipe_2fframework_2fformats_2flocation_5fdata_2eproto[2]);
}

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

class LocationData_RelativeKeypoint::_Internal {
 public:
  using HasBits = decltype(std::declval<LocationData_RelativeKeypoint>()._has_bits_);
  static void set_has_x(HasBits* has_bits) {
    (*has_bits)[0] |= 2u;
  }
  static void set_has_y(HasBits* has_bits) {
    (*has_bits)[0] |= 4u;
  }
  static void set_has_keypoint_label(HasBits* has_bits) {
    (*has_bits)[0] |= 1u;
  }
  static void set_has_score(HasBits* has_bits) {
    (*has_bits)[0] |= 8u;
  }
};

LocationData_RelativeKeypoint::LocationData_RelativeKeypoint(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor();
  if (!is_message_owned) {
    RegisterArenaDtor(arena);
  }
  // @@protoc_insertion_point(arena_constructor:mediapipe.LocationData.RelativeKeypoint)
}
LocationData_RelativeKeypoint::LocationData_RelativeKeypoint(const LocationData_RelativeKeypoint& from)
  : ::PROTOBUF_NAMESPACE_ID::Message(),
      _has_bits_(from._has_bits_) {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  keypoint_label_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    keypoint_label_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (from._internal_has_keypoint_label()) {
    keypoint_label_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, from._internal_keypoint_label(), 
      GetArenaForAllocation());
  }
  ::memcpy(&x_, &from.x_,
    static_cast<size_t>(reinterpret_cast<char*>(&score_) -
    reinterpret_cast<char*>(&x_)) + sizeof(score_));
  // @@protoc_insertion_point(copy_constructor:mediapipe.LocationData.RelativeKeypoint)
}

inline void LocationData_RelativeKeypoint::SharedCtor() {
keypoint_label_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  keypoint_label_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
::memset(reinterpret_cast<char*>(this) + static_cast<size_t>(
    reinterpret_cast<char*>(&x_) - reinterpret_cast<char*>(this)),
    0, static_cast<size_t>(reinterpret_cast<char*>(&score_) -
    reinterpret_cast<char*>(&x_)) + sizeof(score_));
}

LocationData_RelativeKeypoint::~LocationData_RelativeKeypoint() {
  // @@protoc_insertion_point(destructor:mediapipe.LocationData.RelativeKeypoint)
  if (GetArenaForAllocation() != nullptr) return;
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

inline void LocationData_RelativeKeypoint::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  keypoint_label_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}

void LocationData_RelativeKeypoint::ArenaDtor(void* object) {
  LocationData_RelativeKeypoint* _this = reinterpret_cast< LocationData_RelativeKeypoint* >(object);
  (void)_this;
}
void LocationData_RelativeKeypoint::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void LocationData_RelativeKeypoint::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}

void LocationData_RelativeKeypoint::Clear() {
// @@protoc_insertion_point(message_clear_start:mediapipe.LocationData.RelativeKeypoint)
  uint32_t 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 & 0x00000001u) {
    keypoint_label_.ClearNonDefaultToEmpty();
  }
  if (cached_has_bits & 0x0000000eu) {
    ::memset(&x_, 0, static_cast<size_t>(
        reinterpret_cast<char*>(&score_) -
        reinterpret_cast<char*>(&x_)) + sizeof(score_));
  }
  _has_bits_.Clear();
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* LocationData_RelativeKeypoint::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  _Internal::HasBits has_bits{};
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // optional float x = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 13)) {
          _Internal::set_has_x(&has_bits);
          x_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else
          goto handle_unusual;
        continue;
      // optional float y = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 21)) {
          _Internal::set_has_y(&has_bits);
          y_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else
          goto handle_unusual;
        continue;
      // optional string keypoint_label = 3;
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 26)) {
          auto str = _internal_mutable_keypoint_label();
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
          #ifndef NDEBUG
          ::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "mediapipe.LocationData.RelativeKeypoint.keypoint_label");
          #endif  // !NDEBUG
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // optional float score = 4;
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 37)) {
          _Internal::set_has_score(&has_bits);
          score_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  _has_bits_.Or(has_bits);
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* LocationData_RelativeKeypoint::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:mediapipe.LocationData.RelativeKeypoint)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = _has_bits_[0];
  // optional float x = 1;
  if (cached_has_bits & 0x00000002u) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteFloatToArray(1, this->_internal_x(), target);
  }

  // optional float y = 2;
  if (cached_has_bits & 0x00000004u) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteFloatToArray(2, this->_internal_y(), target);
  }

  // optional string keypoint_label = 3;
  if (cached_has_bits & 0x00000001u) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::VerifyUTF8StringNamedField(
      this->_internal_keypoint_label().data(), static_cast<int>(this->_internal_keypoint_label().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::SERIALIZE,
      "mediapipe.LocationData.RelativeKeypoint.keypoint_label");
    target = stream->WriteStringMaybeAliased(
        3, this->_internal_keypoint_label(), target);
  }

  // optional float score = 4;
  if (cached_has_bits & 0x00000008u) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteFloatToArray(4, this->_internal_score(), target);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:mediapipe.LocationData.RelativeKeypoint)
  return target;
}

size_t LocationData_RelativeKeypoint::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:mediapipe.LocationData.RelativeKeypoint)
  size_t total_size = 0;

  uint32_t 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 & 0x0000000fu) {
    // optional string keypoint_label = 3;
    if (cached_has_bits & 0x00000001u) {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
          this->_internal_keypoint_label());
    }

    // optional float x = 1;
    if (cached_has_bits & 0x00000002u) {
      total_size += 1 + 4;
    }

    // optional float y = 2;
    if (cached_has_bits & 0x00000004u) {
      total_size += 1 + 4;
    }

    // optional float score = 4;
    if (cached_has_bits & 0x00000008u) {
      total_size += 1 + 4;
    }

  }
  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData LocationData_RelativeKeypoint::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
    LocationData_RelativeKeypoint::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*LocationData_RelativeKeypoint::GetClassData() const { return &_class_data_; }

void LocationData_RelativeKeypoint::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
                      const ::PROTOBUF_NAMESPACE_ID::Message& from) {
  static_cast<LocationData_RelativeKeypoint *>(to)->MergeFrom(
      static_cast<const LocationData_RelativeKeypoint &>(from));
}


void LocationData_RelativeKeypoint::MergeFrom(const LocationData_RelativeKeypoint& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:mediapipe.LocationData.RelativeKeypoint)
  GOOGLE_DCHECK_NE(&from, this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = from._has_bits_[0];
  if (cached_has_bits & 0x0000000fu) {
    if (cached_has_bits & 0x00000001u) {
      _internal_set_keypoint_label(from._internal_keypoint_label());
    }
    if (cached_has_bits & 0x00000002u) {
      x_ = from.x_;
    }
    if (cached_has_bits & 0x00000004u) {
      y_ = from.y_;
    }
    if (cached_has_bits & 0x00000008u) {
      score_ = from.score_;
    }
    _has_bits_[0] |= cached_has_bits;
  }
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void LocationData_RelativeKeypoint::CopyFrom(const LocationData_RelativeKeypoint& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:mediapipe.LocationData.RelativeKeypoint)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

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

void LocationData_RelativeKeypoint::InternalSwap(LocationData_RelativeKeypoint* other) {
  using std::swap;
  auto* lhs_arena = GetArenaForAllocation();
  auto* rhs_arena = other->GetArenaForAllocation();
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_has_bits_[0], other->_has_bits_[0]);
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      &keypoint_label_, lhs_arena,
      &other->keypoint_label_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(LocationData_RelativeKeypoint, score_)
      + sizeof(LocationData_RelativeKeypoint::score_)
      - PROTOBUF_FIELD_OFFSET(LocationData_RelativeKeypoint, x_)>(
          reinterpret_cast<char*>(&x_),
          reinterpret_cast<char*>(&other->x_));
}

::PROTOBUF_NAMESPACE_ID::Metadata LocationData_RelativeKeypoint::GetMetadata() const {
  return ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(
      &descriptor_table_mediapipe_2fframework_2fformats_2flocation_5fdata_2eproto_getter, &descriptor_table_mediapipe_2fframework_2fformats_2flocation_5fdata_2eproto_once,
      file_level_metadata_mediapipe_2fframework_2fformats_2flocation_5fdata_2eproto[3]);
}

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

class LocationData::_Internal {
 public:
  using HasBits = decltype(std::declval<LocationData>()._has_bits_);
  static void set_has_format(HasBits* has_bits) {
    (*has_bits)[0] |= 8u;
  }
  static const ::mediapipe::LocationData_BoundingBox& bounding_box(const LocationData* msg);
  static void set_has_bounding_box(HasBits* has_bits) {
    (*has_bits)[0] |= 1u;
  }
  static const ::mediapipe::LocationData_RelativeBoundingBox& relative_bounding_box(const LocationData* msg);
  static void set_has_relative_bounding_box(HasBits* has_bits) {
    (*has_bits)[0] |= 2u;
  }
  static const ::mediapipe::LocationData_BinaryMask& mask(const LocationData* msg);
  static void set_has_mask(HasBits* has_bits) {
    (*has_bits)[0] |= 4u;
  }
};

const ::mediapipe::LocationData_BoundingBox&
LocationData::_Internal::bounding_box(const LocationData* msg) {
  return *msg->bounding_box_;
}
const ::mediapipe::LocationData_RelativeBoundingBox&
LocationData::_Internal::relative_bounding_box(const LocationData* msg) {
  return *msg->relative_bounding_box_;
}
const ::mediapipe::LocationData_BinaryMask&
LocationData::_Internal::mask(const LocationData* msg) {
  return *msg->mask_;
}
LocationData::LocationData(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned),
  relative_keypoints_(arena) {
  SharedCtor();
  if (!is_message_owned) {
    RegisterArenaDtor(arena);
  }
  // @@protoc_insertion_point(arena_constructor:mediapipe.LocationData)
}
LocationData::LocationData(const LocationData& from)
  : ::PROTOBUF_NAMESPACE_ID::Message(),
      _has_bits_(from._has_bits_),
      relative_keypoints_(from.relative_keypoints_) {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  if (from._internal_has_bounding_box()) {
    bounding_box_ = new ::mediapipe::LocationData_BoundingBox(*from.bounding_box_);
  } else {
    bounding_box_ = nullptr;
  }
  if (from._internal_has_relative_bounding_box()) {
    relative_bounding_box_ = new ::mediapipe::LocationData_RelativeBoundingBox(*from.relative_bounding_box_);
  } else {
    relative_bounding_box_ = nullptr;
  }
  if (from._internal_has_mask()) {
    mask_ = new ::mediapipe::LocationData_BinaryMask(*from.mask_);
  } else {
    mask_ = nullptr;
  }
  format_ = from.format_;
  // @@protoc_insertion_point(copy_constructor:mediapipe.LocationData)
}

inline void LocationData::SharedCtor() {
::memset(reinterpret_cast<char*>(this) + static_cast<size_t>(
    reinterpret_cast<char*>(&bounding_box_) - reinterpret_cast<char*>(this)),
    0, static_cast<size_t>(reinterpret_cast<char*>(&format_) -
    reinterpret_cast<char*>(&bounding_box_)) + sizeof(format_));
}

LocationData::~LocationData() {
  // @@protoc_insertion_point(destructor:mediapipe.LocationData)
  if (GetArenaForAllocation() != nullptr) return;
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

inline void LocationData::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  if (this != internal_default_instance()) delete bounding_box_;
  if (this != internal_default_instance()) delete relative_bounding_box_;
  if (this != internal_default_instance()) delete mask_;
}

void LocationData::ArenaDtor(void* object) {
  LocationData* _this = reinterpret_cast< LocationData* >(object);
  (void)_this;
}
void LocationData::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void LocationData::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}

void LocationData::Clear() {
// @@protoc_insertion_point(message_clear_start:mediapipe.LocationData)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  relative_keypoints_.Clear();
  cached_has_bits = _has_bits_[0];
  if (cached_has_bits & 0x00000007u) {
    if (cached_has_bits & 0x00000001u) {
      GOOGLE_DCHECK(bounding_box_ != nullptr);
      bounding_box_->Clear();
    }
    if (cached_has_bits & 0x00000002u) {
      GOOGLE_DCHECK(relative_bounding_box_ != nullptr);
      relative_bounding_box_->Clear();
    }
    if (cached_has_bits & 0x00000004u) {
      GOOGLE_DCHECK(mask_ != nullptr);
      mask_->Clear();
    }
  }
  format_ = 0;
  _has_bits_.Clear();
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* LocationData::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  _Internal::HasBits has_bits{};
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // optional .mediapipe.LocationData.Format format = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 8)) {
          uint64_t val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
          if (PROTOBUF_PREDICT_TRUE(::mediapipe::LocationData_Format_IsValid(val))) {
            _internal_set_format(static_cast<::mediapipe::LocationData_Format>(val));
          } else {
            ::PROTOBUF_NAMESPACE_ID::internal::WriteVarint(1, val, mutable_unknown_fields());
          }
        } else
          goto handle_unusual;
        continue;
      // optional .mediapipe.LocationData.BoundingBox bounding_box = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 18)) {
          ptr = ctx->ParseMessage(_internal_mutable_bounding_box(), ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // optional .mediapipe.LocationData.RelativeBoundingBox relative_bounding_box = 3;
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 26)) {
          ptr = ctx->ParseMessage(_internal_mutable_relative_bounding_box(), ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // optional .mediapipe.LocationData.BinaryMask mask = 4;
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 34)) {
          ptr = ctx->ParseMessage(_internal_mutable_mask(), ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // repeated .mediapipe.LocationData.RelativeKeypoint relative_keypoints = 5;
      case 5:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 42)) {
          ptr -= 1;
          do {
            ptr += 1;
            ptr = ctx->ParseMessage(_internal_add_relative_keypoints(), ptr);
            CHK_(ptr);
            if (!ctx->DataAvailable(ptr)) break;
          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<42>(ptr));
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  _has_bits_.Or(has_bits);
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* LocationData::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:mediapipe.LocationData)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = _has_bits_[0];
  // optional .mediapipe.LocationData.Format format = 1;
  if (cached_has_bits & 0x00000008u) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
      1, this->_internal_format(), target);
  }

  // optional .mediapipe.LocationData.BoundingBox bounding_box = 2;
  if (cached_has_bits & 0x00000001u) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        2, _Internal::bounding_box(this), target, stream);
  }

  // optional .mediapipe.LocationData.RelativeBoundingBox relative_bounding_box = 3;
  if (cached_has_bits & 0x00000002u) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        3, _Internal::relative_bounding_box(this), target, stream);
  }

  // optional .mediapipe.LocationData.BinaryMask mask = 4;
  if (cached_has_bits & 0x00000004u) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(
        4, _Internal::mask(this), target, stream);
  }

  // repeated .mediapipe.LocationData.RelativeKeypoint relative_keypoints = 5;
  for (unsigned int i = 0,
      n = static_cast<unsigned int>(this->_internal_relative_keypoints_size()); i < n; i++) {
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(5, this->_internal_relative_keypoints(i), target, stream);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:mediapipe.LocationData)
  return target;
}

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

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // repeated .mediapipe.LocationData.RelativeKeypoint relative_keypoints = 5;
  total_size += 1UL * this->_internal_relative_keypoints_size();
  for (const auto& msg : this->relative_keypoints_) {
    total_size +=
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg);
  }

  cached_has_bits = _has_bits_[0];
  if (cached_has_bits & 0x0000000fu) {
    // optional .mediapipe.LocationData.BoundingBox bounding_box = 2;
    if (cached_has_bits & 0x00000001u) {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *bounding_box_);
    }

    // optional .mediapipe.LocationData.RelativeBoundingBox relative_bounding_box = 3;
    if (cached_has_bits & 0x00000002u) {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *relative_bounding_box_);
    }

    // optional .mediapipe.LocationData.BinaryMask mask = 4;
    if (cached_has_bits & 0x00000004u) {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *mask_);
    }

    // optional .mediapipe.LocationData.Format format = 1;
    if (cached_has_bits & 0x00000008u) {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_format());
    }

  }
  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData LocationData::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
    LocationData::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*LocationData::GetClassData() const { return &_class_data_; }

void LocationData::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
                      const ::PROTOBUF_NAMESPACE_ID::Message& from) {
  static_cast<LocationData *>(to)->MergeFrom(
      static_cast<const LocationData &>(from));
}


void LocationData::MergeFrom(const LocationData& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:mediapipe.LocationData)
  GOOGLE_DCHECK_NE(&from, this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  relative_keypoints_.MergeFrom(from.relative_keypoints_);
  cached_has_bits = from._has_bits_[0];
  if (cached_has_bits & 0x0000000fu) {
    if (cached_has_bits & 0x00000001u) {
      _internal_mutable_bounding_box()->::mediapipe::LocationData_BoundingBox::MergeFrom(from._internal_bounding_box());
    }
    if (cached_has_bits & 0x00000002u) {
      _internal_mutable_relative_bounding_box()->::mediapipe::LocationData_RelativeBoundingBox::MergeFrom(from._internal_relative_bounding_box());
    }
    if (cached_has_bits & 0x00000004u) {
      _internal_mutable_mask()->::mediapipe::LocationData_BinaryMask::MergeFrom(from._internal_mask());
    }
    if (cached_has_bits & 0x00000008u) {
      format_ = from.format_;
    }
    _has_bits_[0] |= cached_has_bits;
  }
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

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

bool LocationData::IsInitialized() const {
  if (_internal_has_mask()) {
    if (!mask_->IsInitialized()) return false;
  }
  return true;
}

void LocationData::InternalSwap(LocationData* other) {
  using std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_has_bits_[0], other->_has_bits_[0]);
  relative_keypoints_.InternalSwap(&other->relative_keypoints_);
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(LocationData, format_)
      + sizeof(LocationData::format_)
      - PROTOBUF_FIELD_OFFSET(LocationData, bounding_box_)>(
          reinterpret_cast<char*>(&bounding_box_),
          reinterpret_cast<char*>(&other->bounding_box_));
}

::PROTOBUF_NAMESPACE_ID::Metadata LocationData::GetMetadata() const {
  return ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(
      &descriptor_table_mediapipe_2fframework_2fformats_2flocation_5fdata_2eproto_getter, &descriptor_table_mediapipe_2fframework_2fformats_2flocation_5fdata_2eproto_once,
      file_level_metadata_mediapipe_2fframework_2fformats_2flocation_5fdata_2eproto[4]);
}

// @@protoc_insertion_point(namespace_scope)
}  // namespace mediapipe
PROTOBUF_NAMESPACE_OPEN
template<> PROTOBUF_NOINLINE ::mediapipe::LocationData_BoundingBox* Arena::CreateMaybeMessage< ::mediapipe::LocationData_BoundingBox >(Arena* arena) {
  return Arena::CreateMessageInternal< ::mediapipe::LocationData_BoundingBox >(arena);
}
template<> PROTOBUF_NOINLINE ::mediapipe::LocationData_RelativeBoundingBox* Arena::CreateMaybeMessage< ::mediapipe::LocationData_RelativeBoundingBox >(Arena* arena) {
  return Arena::CreateMessageInternal< ::mediapipe::LocationData_RelativeBoundingBox >(arena);
}
template<> PROTOBUF_NOINLINE ::mediapipe::LocationData_BinaryMask* Arena::CreateMaybeMessage< ::mediapipe::LocationData_BinaryMask >(Arena* arena) {
  return Arena::CreateMessageInternal< ::mediapipe::LocationData_BinaryMask >(arena);
}
template<> PROTOBUF_NOINLINE ::mediapipe::LocationData_RelativeKeypoint* Arena::CreateMaybeMessage< ::mediapipe::LocationData_RelativeKeypoint >(Arena* arena) {
  return Arena::CreateMessageInternal< ::mediapipe::LocationData_RelativeKeypoint >(arena);
}
template<> PROTOBUF_NOINLINE ::mediapipe::LocationData* Arena::CreateMaybeMessage< ::mediapipe::LocationData >(Arena* arena) {
  return Arena::CreateMessageInternal< ::mediapipe::LocationData >(arena);
}
PROTOBUF_NAMESPACE_CLOSE

// @@protoc_insertion_point(global_scope)
#include <google/protobuf/port_undef.inc>