// Generated by the protocol buffer compiler.  DO NOT EDIT!
// source: second/protos/box_coder.proto

#ifndef GOOGLE_PROTOBUF_INCLUDED_second_2fprotos_2fbox_5fcoder_2eproto
#define GOOGLE_PROTOBUF_INCLUDED_second_2fprotos_2fbox_5fcoder_2eproto

#include <limits>
#include <string>

#include <google/protobuf/port_def.inc>
#if PROTOBUF_VERSION < 3009000
#error This file was generated by a newer version of protoc which is
#error incompatible with your Protocol Buffer headers. Please update
#error your headers.
#endif
#if 3009002 < PROTOBUF_MIN_PROTOC_VERSION
#error This file was generated by an older version of protoc which is
#error incompatible with your Protocol Buffer headers. Please
#error regenerate this file with a newer version of protoc.
#endif

#include <google/protobuf/port_undef.inc>
#include <google/protobuf/io/coded_stream.h>
#include <google/protobuf/arena.h>
#include <google/protobuf/arenastring.h>
#include <google/protobuf/generated_message_table_driven.h>
#include <google/protobuf/generated_message_util.h>
#include <google/protobuf/inlined_string_field.h>
#include <google/protobuf/metadata.h>
#include <google/protobuf/generated_message_reflection.h>
#include <google/protobuf/message.h>
#include <google/protobuf/repeated_field.h>  // IWYU pragma: export
#include <google/protobuf/extension_set.h>  // IWYU pragma: export
#include <google/protobuf/unknown_field_set.h>
// @@protoc_insertion_point(includes)
#include <google/protobuf/port_def.inc>
#define PROTOBUF_INTERNAL_EXPORT_second_2fprotos_2fbox_5fcoder_2eproto
PROTOBUF_NAMESPACE_OPEN
namespace internal {
class AnyMetadata;
}  // namespace internal
PROTOBUF_NAMESPACE_CLOSE

// Internal implementation detail -- do not use these members.
struct TableStruct_second_2fprotos_2fbox_5fcoder_2eproto {
  static const ::PROTOBUF_NAMESPACE_ID::internal::ParseTableField entries[]
    PROTOBUF_SECTION_VARIABLE(protodesc_cold);
  static const ::PROTOBUF_NAMESPACE_ID::internal::AuxillaryParseTableField aux[]
    PROTOBUF_SECTION_VARIABLE(protodesc_cold);
  static const ::PROTOBUF_NAMESPACE_ID::internal::ParseTable schema[3]
    PROTOBUF_SECTION_VARIABLE(protodesc_cold);
  static const ::PROTOBUF_NAMESPACE_ID::internal::FieldMetadata field_metadata[];
  static const ::PROTOBUF_NAMESPACE_ID::internal::SerializationTable serialization_table[];
  static const ::PROTOBUF_NAMESPACE_ID::uint32 offsets[];
};
extern const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable descriptor_table_second_2fprotos_2fbox_5fcoder_2eproto;
namespace second {
namespace protos {
class BevBoxCoder;
class BevBoxCoderDefaultTypeInternal;
extern BevBoxCoderDefaultTypeInternal _BevBoxCoder_default_instance_;
class BoxCoder;
class BoxCoderDefaultTypeInternal;
extern BoxCoderDefaultTypeInternal _BoxCoder_default_instance_;
class GroundBox3dCoder;
class GroundBox3dCoderDefaultTypeInternal;
extern GroundBox3dCoderDefaultTypeInternal _GroundBox3dCoder_default_instance_;
}  // namespace protos
}  // namespace second
PROTOBUF_NAMESPACE_OPEN
template<> ::second::protos::BevBoxCoder* Arena::CreateMaybeMessage<::second::protos::BevBoxCoder>(Arena*);
template<> ::second::protos::BoxCoder* Arena::CreateMaybeMessage<::second::protos::BoxCoder>(Arena*);
template<> ::second::protos::GroundBox3dCoder* Arena::CreateMaybeMessage<::second::protos::GroundBox3dCoder>(Arena*);
PROTOBUF_NAMESPACE_CLOSE
namespace second {
namespace protos {

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

class BoxCoder :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:second.protos.BoxCoder) */ {
 public:
  BoxCoder();
  virtual ~BoxCoder();

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

  inline BoxCoder& operator=(const BoxCoder& from) {
    CopyFrom(from);
    return *this;
  }
  inline BoxCoder& operator=(BoxCoder&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return GetMetadataStatic().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return GetMetadataStatic().reflection;
  }
  static const BoxCoder& default_instance();

  enum BoxCoderCase {
    kGroundBox3DCoder = 1,
    kBevBoxCoder = 2,
    BOX_CODER_NOT_SET = 0,
  };

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

  friend void swap(BoxCoder& a, BoxCoder& b) {
    a.Swap(&b);
  }
  inline void Swap(BoxCoder* other) {
    if (other == this) return;
    InternalSwap(other);
  }

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

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

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

  size_t ByteSizeLong() const final;
  #if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  #else
  bool MergePartialFromCodedStream(
      ::PROTOBUF_NAMESPACE_ID::io::CodedInputStream* input) final;
  #endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
  void SerializeWithCachedSizes(
      ::PROTOBUF_NAMESPACE_ID::io::CodedOutputStream* output) const final;
  ::PROTOBUF_NAMESPACE_ID::uint8* InternalSerializeWithCachedSizesToArray(
      ::PROTOBUF_NAMESPACE_ID::uint8* target) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  inline void SharedCtor();
  inline void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(BoxCoder* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "second.protos.BoxCoder";
  }
  private:
  inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArenaNoVirtual() const {
    return nullptr;
  }
  inline void* MaybeArenaPtr() const {
    return nullptr;
  }
  public:

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
  private:
  static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() {
    ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_second_2fprotos_2fbox_5fcoder_2eproto);
    return ::descriptor_table_second_2fprotos_2fbox_5fcoder_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

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

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

  enum : int {
    kGroundBox3DCoderFieldNumber = 1,
    kBevBoxCoderFieldNumber = 2,
  };
  // .second.protos.GroundBox3dCoder ground_box3d_coder = 1;
  bool has_ground_box3d_coder() const;
  void clear_ground_box3d_coder();
  const ::second::protos::GroundBox3dCoder& ground_box3d_coder() const;
  ::second::protos::GroundBox3dCoder* release_ground_box3d_coder();
  ::second::protos::GroundBox3dCoder* mutable_ground_box3d_coder();
  void set_allocated_ground_box3d_coder(::second::protos::GroundBox3dCoder* ground_box3d_coder);

  // .second.protos.BevBoxCoder bev_box_coder = 2;
  bool has_bev_box_coder() const;
  void clear_bev_box_coder();
  const ::second::protos::BevBoxCoder& bev_box_coder() const;
  ::second::protos::BevBoxCoder* release_bev_box_coder();
  ::second::protos::BevBoxCoder* mutable_bev_box_coder();
  void set_allocated_bev_box_coder(::second::protos::BevBoxCoder* bev_box_coder);

  void clear_box_coder();
  BoxCoderCase box_coder_case() const;
  // @@protoc_insertion_point(class_scope:second.protos.BoxCoder)
 private:
  class _Internal;
  void set_has_ground_box3d_coder();
  void set_has_bev_box_coder();

  inline bool has_box_coder() const;
  inline void clear_has_box_coder();

  ::PROTOBUF_NAMESPACE_ID::internal::InternalMetadataWithArena _internal_metadata_;
  union BoxCoderUnion {
    BoxCoderUnion() {}
    ::second::protos::GroundBox3dCoder* ground_box3d_coder_;
    ::second::protos::BevBoxCoder* bev_box_coder_;
  } box_coder_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  ::PROTOBUF_NAMESPACE_ID::uint32 _oneof_case_[1];

  friend struct ::TableStruct_second_2fprotos_2fbox_5fcoder_2eproto;
};
// -------------------------------------------------------------------

class GroundBox3dCoder :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:second.protos.GroundBox3dCoder) */ {
 public:
  GroundBox3dCoder();
  virtual ~GroundBox3dCoder();

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

  inline GroundBox3dCoder& operator=(const GroundBox3dCoder& from) {
    CopyFrom(from);
    return *this;
  }
  inline GroundBox3dCoder& operator=(GroundBox3dCoder&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return GetMetadataStatic().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return GetMetadataStatic().reflection;
  }
  static const GroundBox3dCoder& default_instance();

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

  friend void swap(GroundBox3dCoder& a, GroundBox3dCoder& b) {
    a.Swap(&b);
  }
  inline void Swap(GroundBox3dCoder* other) {
    if (other == this) return;
    InternalSwap(other);
  }

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

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

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

  size_t ByteSizeLong() const final;
  #if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  #else
  bool MergePartialFromCodedStream(
      ::PROTOBUF_NAMESPACE_ID::io::CodedInputStream* input) final;
  #endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
  void SerializeWithCachedSizes(
      ::PROTOBUF_NAMESPACE_ID::io::CodedOutputStream* output) const final;
  ::PROTOBUF_NAMESPACE_ID::uint8* InternalSerializeWithCachedSizesToArray(
      ::PROTOBUF_NAMESPACE_ID::uint8* target) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  inline void SharedCtor();
  inline void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(GroundBox3dCoder* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "second.protos.GroundBox3dCoder";
  }
  private:
  inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArenaNoVirtual() const {
    return nullptr;
  }
  inline void* MaybeArenaPtr() const {
    return nullptr;
  }
  public:

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
  private:
  static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() {
    ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_second_2fprotos_2fbox_5fcoder_2eproto);
    return ::descriptor_table_second_2fprotos_2fbox_5fcoder_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

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

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

  enum : int {
    kLinearDimFieldNumber = 1,
    kEncodeAngleVectorFieldNumber = 2,
  };
  // bool linear_dim = 1;
  void clear_linear_dim();
  bool linear_dim() const;
  void set_linear_dim(bool value);

  // bool encode_angle_vector = 2;
  void clear_encode_angle_vector();
  bool encode_angle_vector() const;
  void set_encode_angle_vector(bool value);

  // @@protoc_insertion_point(class_scope:second.protos.GroundBox3dCoder)
 private:
  class _Internal;

  ::PROTOBUF_NAMESPACE_ID::internal::InternalMetadataWithArena _internal_metadata_;
  bool linear_dim_;
  bool encode_angle_vector_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_second_2fprotos_2fbox_5fcoder_2eproto;
};
// -------------------------------------------------------------------

class BevBoxCoder :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:second.protos.BevBoxCoder) */ {
 public:
  BevBoxCoder();
  virtual ~BevBoxCoder();

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

  inline BevBoxCoder& operator=(const BevBoxCoder& from) {
    CopyFrom(from);
    return *this;
  }
  inline BevBoxCoder& operator=(BevBoxCoder&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return GetMetadataStatic().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return GetMetadataStatic().reflection;
  }
  static const BevBoxCoder& default_instance();

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

  friend void swap(BevBoxCoder& a, BevBoxCoder& b) {
    a.Swap(&b);
  }
  inline void Swap(BevBoxCoder* other) {
    if (other == this) return;
    InternalSwap(other);
  }

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

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

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

  size_t ByteSizeLong() const final;
  #if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  #else
  bool MergePartialFromCodedStream(
      ::PROTOBUF_NAMESPACE_ID::io::CodedInputStream* input) final;
  #endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
  void SerializeWithCachedSizes(
      ::PROTOBUF_NAMESPACE_ID::io::CodedOutputStream* output) const final;
  ::PROTOBUF_NAMESPACE_ID::uint8* InternalSerializeWithCachedSizesToArray(
      ::PROTOBUF_NAMESPACE_ID::uint8* target) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  inline void SharedCtor();
  inline void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(BevBoxCoder* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "second.protos.BevBoxCoder";
  }
  private:
  inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArenaNoVirtual() const {
    return nullptr;
  }
  inline void* MaybeArenaPtr() const {
    return nullptr;
  }
  public:

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
  private:
  static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() {
    ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_second_2fprotos_2fbox_5fcoder_2eproto);
    return ::descriptor_table_second_2fprotos_2fbox_5fcoder_2eproto.file_level_metadata[kIndexInFileMessages];
  }

  public:

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

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

  enum : int {
    kLinearDimFieldNumber = 1,
    kEncodeAngleVectorFieldNumber = 2,
    kZFixedFieldNumber = 3,
    kHFixedFieldNumber = 4,
  };
  // bool linear_dim = 1;
  void clear_linear_dim();
  bool linear_dim() const;
  void set_linear_dim(bool value);

  // bool encode_angle_vector = 2;
  void clear_encode_angle_vector();
  bool encode_angle_vector() const;
  void set_encode_angle_vector(bool value);

  // float z_fixed = 3;
  void clear_z_fixed();
  float z_fixed() const;
  void set_z_fixed(float value);

  // float h_fixed = 4;
  void clear_h_fixed();
  float h_fixed() const;
  void set_h_fixed(float value);

  // @@protoc_insertion_point(class_scope:second.protos.BevBoxCoder)
 private:
  class _Internal;

  ::PROTOBUF_NAMESPACE_ID::internal::InternalMetadataWithArena _internal_metadata_;
  bool linear_dim_;
  bool encode_angle_vector_;
  float z_fixed_;
  float h_fixed_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_second_2fprotos_2fbox_5fcoder_2eproto;
};
// ===================================================================


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

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

// .second.protos.GroundBox3dCoder ground_box3d_coder = 1;
inline bool BoxCoder::has_ground_box3d_coder() const {
  return box_coder_case() == kGroundBox3DCoder;
}
inline void BoxCoder::set_has_ground_box3d_coder() {
  _oneof_case_[0] = kGroundBox3DCoder;
}
inline void BoxCoder::clear_ground_box3d_coder() {
  if (has_ground_box3d_coder()) {
    delete box_coder_.ground_box3d_coder_;
    clear_has_box_coder();
  }
}
inline ::second::protos::GroundBox3dCoder* BoxCoder::release_ground_box3d_coder() {
  // @@protoc_insertion_point(field_release:second.protos.BoxCoder.ground_box3d_coder)
  if (has_ground_box3d_coder()) {
    clear_has_box_coder();
      ::second::protos::GroundBox3dCoder* temp = box_coder_.ground_box3d_coder_;
    box_coder_.ground_box3d_coder_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::second::protos::GroundBox3dCoder& BoxCoder::ground_box3d_coder() const {
  // @@protoc_insertion_point(field_get:second.protos.BoxCoder.ground_box3d_coder)
  return has_ground_box3d_coder()
      ? *box_coder_.ground_box3d_coder_
      : *reinterpret_cast< ::second::protos::GroundBox3dCoder*>(&::second::protos::_GroundBox3dCoder_default_instance_);
}
inline ::second::protos::GroundBox3dCoder* BoxCoder::mutable_ground_box3d_coder() {
  if (!has_ground_box3d_coder()) {
    clear_box_coder();
    set_has_ground_box3d_coder();
    box_coder_.ground_box3d_coder_ = CreateMaybeMessage< ::second::protos::GroundBox3dCoder >(
        GetArenaNoVirtual());
  }
  // @@protoc_insertion_point(field_mutable:second.protos.BoxCoder.ground_box3d_coder)
  return box_coder_.ground_box3d_coder_;
}

// .second.protos.BevBoxCoder bev_box_coder = 2;
inline bool BoxCoder::has_bev_box_coder() const {
  return box_coder_case() == kBevBoxCoder;
}
inline void BoxCoder::set_has_bev_box_coder() {
  _oneof_case_[0] = kBevBoxCoder;
}
inline void BoxCoder::clear_bev_box_coder() {
  if (has_bev_box_coder()) {
    delete box_coder_.bev_box_coder_;
    clear_has_box_coder();
  }
}
inline ::second::protos::BevBoxCoder* BoxCoder::release_bev_box_coder() {
  // @@protoc_insertion_point(field_release:second.protos.BoxCoder.bev_box_coder)
  if (has_bev_box_coder()) {
    clear_has_box_coder();
      ::second::protos::BevBoxCoder* temp = box_coder_.bev_box_coder_;
    box_coder_.bev_box_coder_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::second::protos::BevBoxCoder& BoxCoder::bev_box_coder() const {
  // @@protoc_insertion_point(field_get:second.protos.BoxCoder.bev_box_coder)
  return has_bev_box_coder()
      ? *box_coder_.bev_box_coder_
      : *reinterpret_cast< ::second::protos::BevBoxCoder*>(&::second::protos::_BevBoxCoder_default_instance_);
}
inline ::second::protos::BevBoxCoder* BoxCoder::mutable_bev_box_coder() {
  if (!has_bev_box_coder()) {
    clear_box_coder();
    set_has_bev_box_coder();
    box_coder_.bev_box_coder_ = CreateMaybeMessage< ::second::protos::BevBoxCoder >(
        GetArenaNoVirtual());
  }
  // @@protoc_insertion_point(field_mutable:second.protos.BoxCoder.bev_box_coder)
  return box_coder_.bev_box_coder_;
}

inline bool BoxCoder::has_box_coder() const {
  return box_coder_case() != BOX_CODER_NOT_SET;
}
inline void BoxCoder::clear_has_box_coder() {
  _oneof_case_[0] = BOX_CODER_NOT_SET;
}
inline BoxCoder::BoxCoderCase BoxCoder::box_coder_case() const {
  return BoxCoder::BoxCoderCase(_oneof_case_[0]);
}
// -------------------------------------------------------------------

// GroundBox3dCoder

// bool linear_dim = 1;
inline void GroundBox3dCoder::clear_linear_dim() {
  linear_dim_ = false;
}
inline bool GroundBox3dCoder::linear_dim() const {
  // @@protoc_insertion_point(field_get:second.protos.GroundBox3dCoder.linear_dim)
  return linear_dim_;
}
inline void GroundBox3dCoder::set_linear_dim(bool value) {
  
  linear_dim_ = value;
  // @@protoc_insertion_point(field_set:second.protos.GroundBox3dCoder.linear_dim)
}

// bool encode_angle_vector = 2;
inline void GroundBox3dCoder::clear_encode_angle_vector() {
  encode_angle_vector_ = false;
}
inline bool GroundBox3dCoder::encode_angle_vector() const {
  // @@protoc_insertion_point(field_get:second.protos.GroundBox3dCoder.encode_angle_vector)
  return encode_angle_vector_;
}
inline void GroundBox3dCoder::set_encode_angle_vector(bool value) {
  
  encode_angle_vector_ = value;
  // @@protoc_insertion_point(field_set:second.protos.GroundBox3dCoder.encode_angle_vector)
}

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

// BevBoxCoder

// bool linear_dim = 1;
inline void BevBoxCoder::clear_linear_dim() {
  linear_dim_ = false;
}
inline bool BevBoxCoder::linear_dim() const {
  // @@protoc_insertion_point(field_get:second.protos.BevBoxCoder.linear_dim)
  return linear_dim_;
}
inline void BevBoxCoder::set_linear_dim(bool value) {
  
  linear_dim_ = value;
  // @@protoc_insertion_point(field_set:second.protos.BevBoxCoder.linear_dim)
}

// bool encode_angle_vector = 2;
inline void BevBoxCoder::clear_encode_angle_vector() {
  encode_angle_vector_ = false;
}
inline bool BevBoxCoder::encode_angle_vector() const {
  // @@protoc_insertion_point(field_get:second.protos.BevBoxCoder.encode_angle_vector)
  return encode_angle_vector_;
}
inline void BevBoxCoder::set_encode_angle_vector(bool value) {
  
  encode_angle_vector_ = value;
  // @@protoc_insertion_point(field_set:second.protos.BevBoxCoder.encode_angle_vector)
}

// float z_fixed = 3;
inline void BevBoxCoder::clear_z_fixed() {
  z_fixed_ = 0;
}
inline float BevBoxCoder::z_fixed() const {
  // @@protoc_insertion_point(field_get:second.protos.BevBoxCoder.z_fixed)
  return z_fixed_;
}
inline void BevBoxCoder::set_z_fixed(float value) {
  
  z_fixed_ = value;
  // @@protoc_insertion_point(field_set:second.protos.BevBoxCoder.z_fixed)
}

// float h_fixed = 4;
inline void BevBoxCoder::clear_h_fixed() {
  h_fixed_ = 0;
}
inline float BevBoxCoder::h_fixed() const {
  // @@protoc_insertion_point(field_get:second.protos.BevBoxCoder.h_fixed)
  return h_fixed_;
}
inline void BevBoxCoder::set_h_fixed(float value) {
  
  h_fixed_ = value;
  // @@protoc_insertion_point(field_set:second.protos.BevBoxCoder.h_fixed)
}

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

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


// @@protoc_insertion_point(namespace_scope)

}  // namespace protos
}  // namespace second

// @@protoc_insertion_point(global_scope)

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