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

#ifndef GOOGLE_PROTOBUF_INCLUDED_message_2eproto
#define GOOGLE_PROTOBUF_INCLUDED_message_2eproto

#include <limits>
#include <string>

#include <google/protobuf/port_def.inc>
#if PROTOBUF_VERSION < 3013000
#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 3013000 < 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_lite.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_message_2eproto
PROTOBUF_NAMESPACE_OPEN
namespace internal {
class AnyMetadata;
}  // namespace internal
PROTOBUF_NAMESPACE_CLOSE

// Internal implementation detail -- do not use these members.
struct TableStruct_message_2eproto {
  static const ::PROTOBUF_NAMESPACE_ID::internal::ParseTableField entries[]
    PROTOBUF_SECTION_VARIABLE(protodesc_cold);
  static const ::PROTOBUF_NAMESPACE_ID::internal::AuxiliaryParseTableField aux[]
    PROTOBUF_SECTION_VARIABLE(protodesc_cold);
  static const ::PROTOBUF_NAMESPACE_ID::internal::ParseTable schema[7]
    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_message_2eproto;
namespace NavMessage {
class AGVStatu;
class AGVStatuDefaultTypeInternal;
extern AGVStatuDefaultTypeInternal _AGVStatu_default_instance_;
class Action;
class ActionDefaultTypeInternal;
extern ActionDefaultTypeInternal _Action_default_instance_;
class NavCmd;
class NavCmdDefaultTypeInternal;
extern NavCmdDefaultTypeInternal _NavCmd_default_instance_;
class NavStatu;
class NavStatuDefaultTypeInternal;
extern NavStatuDefaultTypeInternal _NavStatu_default_instance_;
class Pose2d;
class Pose2dDefaultTypeInternal;
extern Pose2dDefaultTypeInternal _Pose2d_default_instance_;
class Speed;
class SpeedDefaultTypeInternal;
extern SpeedDefaultTypeInternal _Speed_default_instance_;
class Trajectory;
class TrajectoryDefaultTypeInternal;
extern TrajectoryDefaultTypeInternal _Trajectory_default_instance_;
}  // namespace NavMessage
PROTOBUF_NAMESPACE_OPEN
template<> ::NavMessage::AGVStatu* Arena::CreateMaybeMessage<::NavMessage::AGVStatu>(Arena*);
template<> ::NavMessage::Action* Arena::CreateMaybeMessage<::NavMessage::Action>(Arena*);
template<> ::NavMessage::NavCmd* Arena::CreateMaybeMessage<::NavMessage::NavCmd>(Arena*);
template<> ::NavMessage::NavStatu* Arena::CreateMaybeMessage<::NavMessage::NavStatu>(Arena*);
template<> ::NavMessage::Pose2d* Arena::CreateMaybeMessage<::NavMessage::Pose2d>(Arena*);
template<> ::NavMessage::Speed* Arena::CreateMaybeMessage<::NavMessage::Speed>(Arena*);
template<> ::NavMessage::Trajectory* Arena::CreateMaybeMessage<::NavMessage::Trajectory>(Arena*);
PROTOBUF_NAMESPACE_CLOSE
namespace NavMessage {

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

class AGVStatu PROTOBUF_FINAL :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:NavMessage.AGVStatu) */ {
 public:
  inline AGVStatu() : AGVStatu(nullptr) {}
  virtual ~AGVStatu();

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

  inline AGVStatu& operator=(const AGVStatu& from) {
    CopyFrom(from);
    return *this;
  }
  inline AGVStatu& operator=(AGVStatu&& from) noexcept {
    if (GetArena() == from.GetArena()) {
      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 AGVStatu& default_instance();

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

  friend void swap(AGVStatu& a, AGVStatu& b) {
    a.Swap(&b);
  }
  inline void Swap(AGVStatu* other) {
    if (other == this) return;
    if (GetArena() == other->GetArena()) {
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(AGVStatu* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

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

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

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize(
      ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) 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(AGVStatu* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "NavMessage.AGVStatu";
  }
  protected:
  explicit AGVStatu(::PROTOBUF_NAMESPACE_ID::Arena* arena);
  private:
  static void ArenaDtor(void* object);
  inline void RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena* arena);
  public:

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

  public:

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

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

  enum : int {
    kXFieldNumber = 1,
    kYFieldNumber = 2,
    kThetaFieldNumber = 3,
    kVFieldNumber = 4,
    kVthFieldNumber = 5,
  };
  // float x = 1;
  void clear_x();
  float x() const;
  void set_x(float value);
  private:
  float _internal_x() const;
  void _internal_set_x(float value);
  public:

  // float y = 2;
  void clear_y();
  float y() const;
  void set_y(float value);
  private:
  float _internal_y() const;
  void _internal_set_y(float value);
  public:

  // float theta = 3;
  void clear_theta();
  float theta() const;
  void set_theta(float value);
  private:
  float _internal_theta() const;
  void _internal_set_theta(float value);
  public:

  // float v = 4;
  void clear_v();
  float v() const;
  void set_v(float value);
  private:
  float _internal_v() const;
  void _internal_set_v(float value);
  public:

  // float vth = 5;
  void clear_vth();
  float vth() const;
  void set_vth(float value);
  private:
  float _internal_vth() const;
  void _internal_set_vth(float value);
  public:

  // @@protoc_insertion_point(class_scope:NavMessage.AGVStatu)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  float x_;
  float y_;
  float theta_;
  float v_;
  float vth_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_message_2eproto;
};
// -------------------------------------------------------------------

class Speed PROTOBUF_FINAL :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:NavMessage.Speed) */ {
 public:
  inline Speed() : Speed(nullptr) {}
  virtual ~Speed();

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

  inline Speed& operator=(const Speed& from) {
    CopyFrom(from);
    return *this;
  }
  inline Speed& operator=(Speed&& from) noexcept {
    if (GetArena() == from.GetArena()) {
      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 Speed& default_instance();

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

  friend void swap(Speed& a, Speed& b) {
    a.Swap(&b);
  }
  inline void Swap(Speed* other) {
    if (other == this) return;
    if (GetArena() == other->GetArena()) {
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(Speed* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

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

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

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize(
      ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) 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(Speed* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "NavMessage.Speed";
  }
  protected:
  explicit Speed(::PROTOBUF_NAMESPACE_ID::Arena* arena);
  private:
  static void ArenaDtor(void* object);
  inline void RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena* arena);
  public:

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

  public:

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

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

  enum : int {
    kTypeFieldNumber = 1,
    kVFieldNumber = 2,
    kVthFieldNumber = 3,
  };
  // int32 type = 1;
  void clear_type();
  ::PROTOBUF_NAMESPACE_ID::int32 type() const;
  void set_type(::PROTOBUF_NAMESPACE_ID::int32 value);
  private:
  ::PROTOBUF_NAMESPACE_ID::int32 _internal_type() const;
  void _internal_set_type(::PROTOBUF_NAMESPACE_ID::int32 value);
  public:

  // float v = 2;
  void clear_v();
  float v() const;
  void set_v(float value);
  private:
  float _internal_v() const;
  void _internal_set_v(float value);
  public:

  // float vth = 3;
  void clear_vth();
  float vth() const;
  void set_vth(float value);
  private:
  float _internal_vth() const;
  void _internal_set_vth(float value);
  public:

  // @@protoc_insertion_point(class_scope:NavMessage.Speed)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::PROTOBUF_NAMESPACE_ID::int32 type_;
  float v_;
  float vth_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_message_2eproto;
};
// -------------------------------------------------------------------

class Pose2d PROTOBUF_FINAL :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:NavMessage.Pose2d) */ {
 public:
  inline Pose2d() : Pose2d(nullptr) {}
  virtual ~Pose2d();

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

  inline Pose2d& operator=(const Pose2d& from) {
    CopyFrom(from);
    return *this;
  }
  inline Pose2d& operator=(Pose2d&& from) noexcept {
    if (GetArena() == from.GetArena()) {
      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 Pose2d& default_instance();

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

  friend void swap(Pose2d& a, Pose2d& b) {
    a.Swap(&b);
  }
  inline void Swap(Pose2d* other) {
    if (other == this) return;
    if (GetArena() == other->GetArena()) {
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(Pose2d* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

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

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

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize(
      ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) 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(Pose2d* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "NavMessage.Pose2d";
  }
  protected:
  explicit Pose2d(::PROTOBUF_NAMESPACE_ID::Arena* arena);
  private:
  static void ArenaDtor(void* object);
  inline void RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena* arena);
  public:

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

  public:

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

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

  enum : int {
    kXFieldNumber = 1,
    kYFieldNumber = 2,
    kThetaFieldNumber = 3,
  };
  // float x = 1;
  void clear_x();
  float x() const;
  void set_x(float value);
  private:
  float _internal_x() const;
  void _internal_set_x(float value);
  public:

  // float y = 2;
  void clear_y();
  float y() const;
  void set_y(float value);
  private:
  float _internal_y() const;
  void _internal_set_y(float value);
  public:

  // float theta = 3;
  void clear_theta();
  float theta() const;
  void set_theta(float value);
  private:
  float _internal_theta() const;
  void _internal_set_theta(float value);
  public:

  // @@protoc_insertion_point(class_scope:NavMessage.Pose2d)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  float x_;
  float y_;
  float theta_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_message_2eproto;
};
// -------------------------------------------------------------------

class Trajectory PROTOBUF_FINAL :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:NavMessage.Trajectory) */ {
 public:
  inline Trajectory() : Trajectory(nullptr) {}
  virtual ~Trajectory();

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

  inline Trajectory& operator=(const Trajectory& from) {
    CopyFrom(from);
    return *this;
  }
  inline Trajectory& operator=(Trajectory&& from) noexcept {
    if (GetArena() == from.GetArena()) {
      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 Trajectory& default_instance();

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

  friend void swap(Trajectory& a, Trajectory& b) {
    a.Swap(&b);
  }
  inline void Swap(Trajectory* other) {
    if (other == this) return;
    if (GetArena() == other->GetArena()) {
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(Trajectory* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

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

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

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize(
      ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) 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(Trajectory* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "NavMessage.Trajectory";
  }
  protected:
  explicit Trajectory(::PROTOBUF_NAMESPACE_ID::Arena* arena);
  private:
  static void ArenaDtor(void* object);
  inline void RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena* arena);
  public:

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

  public:

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

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

  enum : int {
    kPosesFieldNumber = 1,
  };
  // repeated .NavMessage.Pose2d poses = 1;
  int poses_size() const;
  private:
  int _internal_poses_size() const;
  public:
  void clear_poses();
  ::NavMessage::Pose2d* mutable_poses(int index);
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::NavMessage::Pose2d >*
      mutable_poses();
  private:
  const ::NavMessage::Pose2d& _internal_poses(int index) const;
  ::NavMessage::Pose2d* _internal_add_poses();
  public:
  const ::NavMessage::Pose2d& poses(int index) const;
  ::NavMessage::Pose2d* add_poses();
  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::NavMessage::Pose2d >&
      poses() const;

  // @@protoc_insertion_point(class_scope:NavMessage.Trajectory)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::NavMessage::Pose2d > poses_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_message_2eproto;
};
// -------------------------------------------------------------------

class Action PROTOBUF_FINAL :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:NavMessage.Action) */ {
 public:
  inline Action() : Action(nullptr) {}
  virtual ~Action();

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

  inline Action& operator=(const Action& from) {
    CopyFrom(from);
    return *this;
  }
  inline Action& operator=(Action&& from) noexcept {
    if (GetArena() == from.GetArena()) {
      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 Action& default_instance();

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

  friend void swap(Action& a, Action& b) {
    a.Swap(&b);
  }
  inline void Swap(Action* other) {
    if (other == this) return;
    if (GetArena() == other->GetArena()) {
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(Action* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

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

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

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize(
      ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) 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(Action* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "NavMessage.Action";
  }
  protected:
  explicit Action(::PROTOBUF_NAMESPACE_ID::Arena* arena);
  private:
  static void ArenaDtor(void* object);
  inline void RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena* arena);
  public:

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

  public:

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

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

  enum : int {
    kTargetFieldNumber = 2,
    kTargetDiffFieldNumber = 3,
    kTypeFieldNumber = 1,
  };
  // .NavMessage.Pose2d target = 2;
  bool has_target() const;
  private:
  bool _internal_has_target() const;
  public:
  void clear_target();
  const ::NavMessage::Pose2d& target() const;
  ::NavMessage::Pose2d* release_target();
  ::NavMessage::Pose2d* mutable_target();
  void set_allocated_target(::NavMessage::Pose2d* target);
  private:
  const ::NavMessage::Pose2d& _internal_target() const;
  ::NavMessage::Pose2d* _internal_mutable_target();
  public:
  void unsafe_arena_set_allocated_target(
      ::NavMessage::Pose2d* target);
  ::NavMessage::Pose2d* unsafe_arena_release_target();

  // .NavMessage.Pose2d target_diff = 3;
  bool has_target_diff() const;
  private:
  bool _internal_has_target_diff() const;
  public:
  void clear_target_diff();
  const ::NavMessage::Pose2d& target_diff() const;
  ::NavMessage::Pose2d* release_target_diff();
  ::NavMessage::Pose2d* mutable_target_diff();
  void set_allocated_target_diff(::NavMessage::Pose2d* target_diff);
  private:
  const ::NavMessage::Pose2d& _internal_target_diff() const;
  ::NavMessage::Pose2d* _internal_mutable_target_diff();
  public:
  void unsafe_arena_set_allocated_target_diff(
      ::NavMessage::Pose2d* target_diff);
  ::NavMessage::Pose2d* unsafe_arena_release_target_diff();

  // int32 type = 1;
  void clear_type();
  ::PROTOBUF_NAMESPACE_ID::int32 type() const;
  void set_type(::PROTOBUF_NAMESPACE_ID::int32 value);
  private:
  ::PROTOBUF_NAMESPACE_ID::int32 _internal_type() const;
  void _internal_set_type(::PROTOBUF_NAMESPACE_ID::int32 value);
  public:

  // @@protoc_insertion_point(class_scope:NavMessage.Action)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::NavMessage::Pose2d* target_;
  ::NavMessage::Pose2d* target_diff_;
  ::PROTOBUF_NAMESPACE_ID::int32 type_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_message_2eproto;
};
// -------------------------------------------------------------------

class NavCmd PROTOBUF_FINAL :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:NavMessage.NavCmd) */ {
 public:
  inline NavCmd() : NavCmd(nullptr) {}
  virtual ~NavCmd();

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

  inline NavCmd& operator=(const NavCmd& from) {
    CopyFrom(from);
    return *this;
  }
  inline NavCmd& operator=(NavCmd&& from) noexcept {
    if (GetArena() == from.GetArena()) {
      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 NavCmd& default_instance();

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

  friend void swap(NavCmd& a, NavCmd& b) {
    a.Swap(&b);
  }
  inline void Swap(NavCmd* other) {
    if (other == this) return;
    if (GetArena() == other->GetArena()) {
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(NavCmd* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

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

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

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize(
      ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) 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(NavCmd* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "NavMessage.NavCmd";
  }
  protected:
  explicit NavCmd(::PROTOBUF_NAMESPACE_ID::Arena* arena);
  private:
  static void ArenaDtor(void* object);
  inline void RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena* arena);
  public:

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

  public:

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

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

  enum : int {
    kActionsFieldNumber = 3,
    kKeyFieldNumber = 2,
    kActionFieldNumber = 1,
  };
  // repeated .NavMessage.Action actions = 3;
  int actions_size() const;
  private:
  int _internal_actions_size() const;
  public:
  void clear_actions();
  ::NavMessage::Action* mutable_actions(int index);
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::NavMessage::Action >*
      mutable_actions();
  private:
  const ::NavMessage::Action& _internal_actions(int index) const;
  ::NavMessage::Action* _internal_add_actions();
  public:
  const ::NavMessage::Action& actions(int index) const;
  ::NavMessage::Action* add_actions();
  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::NavMessage::Action >&
      actions() const;

  // string key = 2;
  void clear_key();
  const std::string& key() const;
  void set_key(const std::string& value);
  void set_key(std::string&& value);
  void set_key(const char* value);
  void set_key(const char* value, size_t size);
  std::string* mutable_key();
  std::string* release_key();
  void set_allocated_key(std::string* key);
  private:
  const std::string& _internal_key() const;
  void _internal_set_key(const std::string& value);
  std::string* _internal_mutable_key();
  public:

  // int32 action = 1;
  void clear_action();
  ::PROTOBUF_NAMESPACE_ID::int32 action() const;
  void set_action(::PROTOBUF_NAMESPACE_ID::int32 value);
  private:
  ::PROTOBUF_NAMESPACE_ID::int32 _internal_action() const;
  void _internal_set_action(::PROTOBUF_NAMESPACE_ID::int32 value);
  public:

  // @@protoc_insertion_point(class_scope:NavMessage.NavCmd)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::NavMessage::Action > actions_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr key_;
  ::PROTOBUF_NAMESPACE_ID::int32 action_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_message_2eproto;
};
// -------------------------------------------------------------------

class NavStatu PROTOBUF_FINAL :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:NavMessage.NavStatu) */ {
 public:
  inline NavStatu() : NavStatu(nullptr) {}
  virtual ~NavStatu();

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

  inline NavStatu& operator=(const NavStatu& from) {
    CopyFrom(from);
    return *this;
  }
  inline NavStatu& operator=(NavStatu&& from) noexcept {
    if (GetArena() == from.GetArena()) {
      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 NavStatu& default_instance();

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

  friend void swap(NavStatu& a, NavStatu& b) {
    a.Swap(&b);
  }
  inline void Swap(NavStatu* other) {
    if (other == this) return;
    if (GetArena() == other->GetArena()) {
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(NavStatu* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

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

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

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize(
      ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) 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(NavStatu* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "NavMessage.NavStatu";
  }
  protected:
  explicit NavStatu(::PROTOBUF_NAMESPACE_ID::Arena* arena);
  private:
  static void ArenaDtor(void* object);
  inline void RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena* arena);
  public:

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

  public:

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

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

  enum : int {
    kUnfinishedActionsFieldNumber = 3,
    kKeyFieldNumber = 2,
    kCurrentPoseFieldNumber = 4,
    kSelectedTrajFieldNumber = 7,
    kPredictTrajFieldNumber = 8,
    kStatuFieldNumber = 1,
    kPoseTimeoutFieldNumber = 5,
    kTwistTimeoutFieldNumber = 6,
  };
  // repeated .NavMessage.Action unfinished_actions = 3;
  int unfinished_actions_size() const;
  private:
  int _internal_unfinished_actions_size() const;
  public:
  void clear_unfinished_actions();
  ::NavMessage::Action* mutable_unfinished_actions(int index);
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::NavMessage::Action >*
      mutable_unfinished_actions();
  private:
  const ::NavMessage::Action& _internal_unfinished_actions(int index) const;
  ::NavMessage::Action* _internal_add_unfinished_actions();
  public:
  const ::NavMessage::Action& unfinished_actions(int index) const;
  ::NavMessage::Action* add_unfinished_actions();
  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::NavMessage::Action >&
      unfinished_actions() const;

  // string key = 2;
  void clear_key();
  const std::string& key() const;
  void set_key(const std::string& value);
  void set_key(std::string&& value);
  void set_key(const char* value);
  void set_key(const char* value, size_t size);
  std::string* mutable_key();
  std::string* release_key();
  void set_allocated_key(std::string* key);
  private:
  const std::string& _internal_key() const;
  void _internal_set_key(const std::string& value);
  std::string* _internal_mutable_key();
  public:

  // .NavMessage.AGVStatu current_pose = 4;
  bool has_current_pose() const;
  private:
  bool _internal_has_current_pose() const;
  public:
  void clear_current_pose();
  const ::NavMessage::AGVStatu& current_pose() const;
  ::NavMessage::AGVStatu* release_current_pose();
  ::NavMessage::AGVStatu* mutable_current_pose();
  void set_allocated_current_pose(::NavMessage::AGVStatu* current_pose);
  private:
  const ::NavMessage::AGVStatu& _internal_current_pose() const;
  ::NavMessage::AGVStatu* _internal_mutable_current_pose();
  public:
  void unsafe_arena_set_allocated_current_pose(
      ::NavMessage::AGVStatu* current_pose);
  ::NavMessage::AGVStatu* unsafe_arena_release_current_pose();

  // .NavMessage.Trajectory selected_traj = 7;
  bool has_selected_traj() const;
  private:
  bool _internal_has_selected_traj() const;
  public:
  void clear_selected_traj();
  const ::NavMessage::Trajectory& selected_traj() const;
  ::NavMessage::Trajectory* release_selected_traj();
  ::NavMessage::Trajectory* mutable_selected_traj();
  void set_allocated_selected_traj(::NavMessage::Trajectory* selected_traj);
  private:
  const ::NavMessage::Trajectory& _internal_selected_traj() const;
  ::NavMessage::Trajectory* _internal_mutable_selected_traj();
  public:
  void unsafe_arena_set_allocated_selected_traj(
      ::NavMessage::Trajectory* selected_traj);
  ::NavMessage::Trajectory* unsafe_arena_release_selected_traj();

  // .NavMessage.Trajectory predict_traj = 8;
  bool has_predict_traj() const;
  private:
  bool _internal_has_predict_traj() const;
  public:
  void clear_predict_traj();
  const ::NavMessage::Trajectory& predict_traj() const;
  ::NavMessage::Trajectory* release_predict_traj();
  ::NavMessage::Trajectory* mutable_predict_traj();
  void set_allocated_predict_traj(::NavMessage::Trajectory* predict_traj);
  private:
  const ::NavMessage::Trajectory& _internal_predict_traj() const;
  ::NavMessage::Trajectory* _internal_mutable_predict_traj();
  public:
  void unsafe_arena_set_allocated_predict_traj(
      ::NavMessage::Trajectory* predict_traj);
  ::NavMessage::Trajectory* unsafe_arena_release_predict_traj();

  // bool statu = 1;
  void clear_statu();
  bool statu() const;
  void set_statu(bool value);
  private:
  bool _internal_statu() const;
  void _internal_set_statu(bool value);
  public:

  // bool pose_timeout = 5;
  void clear_pose_timeout();
  bool pose_timeout() const;
  void set_pose_timeout(bool value);
  private:
  bool _internal_pose_timeout() const;
  void _internal_set_pose_timeout(bool value);
  public:

  // bool twist_timeout = 6;
  void clear_twist_timeout();
  bool twist_timeout() const;
  void set_twist_timeout(bool value);
  private:
  bool _internal_twist_timeout() const;
  void _internal_set_twist_timeout(bool value);
  public:

  // @@protoc_insertion_point(class_scope:NavMessage.NavStatu)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::NavMessage::Action > unfinished_actions_;
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr key_;
  ::NavMessage::AGVStatu* current_pose_;
  ::NavMessage::Trajectory* selected_traj_;
  ::NavMessage::Trajectory* predict_traj_;
  bool statu_;
  bool pose_timeout_;
  bool twist_timeout_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_message_2eproto;
};
// ===================================================================


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

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

// float x = 1;
inline void AGVStatu::clear_x() {
  x_ = 0;
}
inline float AGVStatu::_internal_x() const {
  return x_;
}
inline float AGVStatu::x() const {
  // @@protoc_insertion_point(field_get:NavMessage.AGVStatu.x)
  return _internal_x();
}
inline void AGVStatu::_internal_set_x(float value) {
  
  x_ = value;
}
inline void AGVStatu::set_x(float value) {
  _internal_set_x(value);
  // @@protoc_insertion_point(field_set:NavMessage.AGVStatu.x)
}

// float y = 2;
inline void AGVStatu::clear_y() {
  y_ = 0;
}
inline float AGVStatu::_internal_y() const {
  return y_;
}
inline float AGVStatu::y() const {
  // @@protoc_insertion_point(field_get:NavMessage.AGVStatu.y)
  return _internal_y();
}
inline void AGVStatu::_internal_set_y(float value) {
  
  y_ = value;
}
inline void AGVStatu::set_y(float value) {
  _internal_set_y(value);
  // @@protoc_insertion_point(field_set:NavMessage.AGVStatu.y)
}

// float theta = 3;
inline void AGVStatu::clear_theta() {
  theta_ = 0;
}
inline float AGVStatu::_internal_theta() const {
  return theta_;
}
inline float AGVStatu::theta() const {
  // @@protoc_insertion_point(field_get:NavMessage.AGVStatu.theta)
  return _internal_theta();
}
inline void AGVStatu::_internal_set_theta(float value) {
  
  theta_ = value;
}
inline void AGVStatu::set_theta(float value) {
  _internal_set_theta(value);
  // @@protoc_insertion_point(field_set:NavMessage.AGVStatu.theta)
}

// float v = 4;
inline void AGVStatu::clear_v() {
  v_ = 0;
}
inline float AGVStatu::_internal_v() const {
  return v_;
}
inline float AGVStatu::v() const {
  // @@protoc_insertion_point(field_get:NavMessage.AGVStatu.v)
  return _internal_v();
}
inline void AGVStatu::_internal_set_v(float value) {
  
  v_ = value;
}
inline void AGVStatu::set_v(float value) {
  _internal_set_v(value);
  // @@protoc_insertion_point(field_set:NavMessage.AGVStatu.v)
}

// float vth = 5;
inline void AGVStatu::clear_vth() {
  vth_ = 0;
}
inline float AGVStatu::_internal_vth() const {
  return vth_;
}
inline float AGVStatu::vth() const {
  // @@protoc_insertion_point(field_get:NavMessage.AGVStatu.vth)
  return _internal_vth();
}
inline void AGVStatu::_internal_set_vth(float value) {
  
  vth_ = value;
}
inline void AGVStatu::set_vth(float value) {
  _internal_set_vth(value);
  // @@protoc_insertion_point(field_set:NavMessage.AGVStatu.vth)
}

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

// Speed

// int32 type = 1;
inline void Speed::clear_type() {
  type_ = 0;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 Speed::_internal_type() const {
  return type_;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 Speed::type() const {
  // @@protoc_insertion_point(field_get:NavMessage.Speed.type)
  return _internal_type();
}
inline void Speed::_internal_set_type(::PROTOBUF_NAMESPACE_ID::int32 value) {
  
  type_ = value;
}
inline void Speed::set_type(::PROTOBUF_NAMESPACE_ID::int32 value) {
  _internal_set_type(value);
  // @@protoc_insertion_point(field_set:NavMessage.Speed.type)
}

// float v = 2;
inline void Speed::clear_v() {
  v_ = 0;
}
inline float Speed::_internal_v() const {
  return v_;
}
inline float Speed::v() const {
  // @@protoc_insertion_point(field_get:NavMessage.Speed.v)
  return _internal_v();
}
inline void Speed::_internal_set_v(float value) {
  
  v_ = value;
}
inline void Speed::set_v(float value) {
  _internal_set_v(value);
  // @@protoc_insertion_point(field_set:NavMessage.Speed.v)
}

// float vth = 3;
inline void Speed::clear_vth() {
  vth_ = 0;
}
inline float Speed::_internal_vth() const {
  return vth_;
}
inline float Speed::vth() const {
  // @@protoc_insertion_point(field_get:NavMessage.Speed.vth)
  return _internal_vth();
}
inline void Speed::_internal_set_vth(float value) {
  
  vth_ = value;
}
inline void Speed::set_vth(float value) {
  _internal_set_vth(value);
  // @@protoc_insertion_point(field_set:NavMessage.Speed.vth)
}

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

// Pose2d

// float x = 1;
inline void Pose2d::clear_x() {
  x_ = 0;
}
inline float Pose2d::_internal_x() const {
  return x_;
}
inline float Pose2d::x() const {
  // @@protoc_insertion_point(field_get:NavMessage.Pose2d.x)
  return _internal_x();
}
inline void Pose2d::_internal_set_x(float value) {
  
  x_ = value;
}
inline void Pose2d::set_x(float value) {
  _internal_set_x(value);
  // @@protoc_insertion_point(field_set:NavMessage.Pose2d.x)
}

// float y = 2;
inline void Pose2d::clear_y() {
  y_ = 0;
}
inline float Pose2d::_internal_y() const {
  return y_;
}
inline float Pose2d::y() const {
  // @@protoc_insertion_point(field_get:NavMessage.Pose2d.y)
  return _internal_y();
}
inline void Pose2d::_internal_set_y(float value) {
  
  y_ = value;
}
inline void Pose2d::set_y(float value) {
  _internal_set_y(value);
  // @@protoc_insertion_point(field_set:NavMessage.Pose2d.y)
}

// float theta = 3;
inline void Pose2d::clear_theta() {
  theta_ = 0;
}
inline float Pose2d::_internal_theta() const {
  return theta_;
}
inline float Pose2d::theta() const {
  // @@protoc_insertion_point(field_get:NavMessage.Pose2d.theta)
  return _internal_theta();
}
inline void Pose2d::_internal_set_theta(float value) {
  
  theta_ = value;
}
inline void Pose2d::set_theta(float value) {
  _internal_set_theta(value);
  // @@protoc_insertion_point(field_set:NavMessage.Pose2d.theta)
}

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

// Trajectory

// repeated .NavMessage.Pose2d poses = 1;
inline int Trajectory::_internal_poses_size() const {
  return poses_.size();
}
inline int Trajectory::poses_size() const {
  return _internal_poses_size();
}
inline void Trajectory::clear_poses() {
  poses_.Clear();
}
inline ::NavMessage::Pose2d* Trajectory::mutable_poses(int index) {
  // @@protoc_insertion_point(field_mutable:NavMessage.Trajectory.poses)
  return poses_.Mutable(index);
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::NavMessage::Pose2d >*
Trajectory::mutable_poses() {
  // @@protoc_insertion_point(field_mutable_list:NavMessage.Trajectory.poses)
  return &poses_;
}
inline const ::NavMessage::Pose2d& Trajectory::_internal_poses(int index) const {
  return poses_.Get(index);
}
inline const ::NavMessage::Pose2d& Trajectory::poses(int index) const {
  // @@protoc_insertion_point(field_get:NavMessage.Trajectory.poses)
  return _internal_poses(index);
}
inline ::NavMessage::Pose2d* Trajectory::_internal_add_poses() {
  return poses_.Add();
}
inline ::NavMessage::Pose2d* Trajectory::add_poses() {
  // @@protoc_insertion_point(field_add:NavMessage.Trajectory.poses)
  return _internal_add_poses();
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::NavMessage::Pose2d >&
Trajectory::poses() const {
  // @@protoc_insertion_point(field_list:NavMessage.Trajectory.poses)
  return poses_;
}

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

// Action

// int32 type = 1;
inline void Action::clear_type() {
  type_ = 0;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 Action::_internal_type() const {
  return type_;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 Action::type() const {
  // @@protoc_insertion_point(field_get:NavMessage.Action.type)
  return _internal_type();
}
inline void Action::_internal_set_type(::PROTOBUF_NAMESPACE_ID::int32 value) {
  
  type_ = value;
}
inline void Action::set_type(::PROTOBUF_NAMESPACE_ID::int32 value) {
  _internal_set_type(value);
  // @@protoc_insertion_point(field_set:NavMessage.Action.type)
}

// .NavMessage.Pose2d target = 2;
inline bool Action::_internal_has_target() const {
  return this != internal_default_instance() && target_ != nullptr;
}
inline bool Action::has_target() const {
  return _internal_has_target();
}
inline void Action::clear_target() {
  if (GetArena() == nullptr && target_ != nullptr) {
    delete target_;
  }
  target_ = nullptr;
}
inline const ::NavMessage::Pose2d& Action::_internal_target() const {
  const ::NavMessage::Pose2d* p = target_;
  return p != nullptr ? *p : *reinterpret_cast<const ::NavMessage::Pose2d*>(
      &::NavMessage::_Pose2d_default_instance_);
}
inline const ::NavMessage::Pose2d& Action::target() const {
  // @@protoc_insertion_point(field_get:NavMessage.Action.target)
  return _internal_target();
}
inline void Action::unsafe_arena_set_allocated_target(
    ::NavMessage::Pose2d* target) {
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(target_);
  }
  target_ = target;
  if (target) {
    
  } else {
    
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:NavMessage.Action.target)
}
inline ::NavMessage::Pose2d* Action::release_target() {
  
  ::NavMessage::Pose2d* temp = target_;
  target_ = nullptr;
  if (GetArena() != nullptr) {
    temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  }
  return temp;
}
inline ::NavMessage::Pose2d* Action::unsafe_arena_release_target() {
  // @@protoc_insertion_point(field_release:NavMessage.Action.target)
  
  ::NavMessage::Pose2d* temp = target_;
  target_ = nullptr;
  return temp;
}
inline ::NavMessage::Pose2d* Action::_internal_mutable_target() {
  
  if (target_ == nullptr) {
    auto* p = CreateMaybeMessage<::NavMessage::Pose2d>(GetArena());
    target_ = p;
  }
  return target_;
}
inline ::NavMessage::Pose2d* Action::mutable_target() {
  // @@protoc_insertion_point(field_mutable:NavMessage.Action.target)
  return _internal_mutable_target();
}
inline void Action::set_allocated_target(::NavMessage::Pose2d* target) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  if (message_arena == nullptr) {
    delete target_;
  }
  if (target) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(target);
    if (message_arena != submessage_arena) {
      target = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, target, submessage_arena);
    }
    
  } else {
    
  }
  target_ = target;
  // @@protoc_insertion_point(field_set_allocated:NavMessage.Action.target)
}

// .NavMessage.Pose2d target_diff = 3;
inline bool Action::_internal_has_target_diff() const {
  return this != internal_default_instance() && target_diff_ != nullptr;
}
inline bool Action::has_target_diff() const {
  return _internal_has_target_diff();
}
inline void Action::clear_target_diff() {
  if (GetArena() == nullptr && target_diff_ != nullptr) {
    delete target_diff_;
  }
  target_diff_ = nullptr;
}
inline const ::NavMessage::Pose2d& Action::_internal_target_diff() const {
  const ::NavMessage::Pose2d* p = target_diff_;
  return p != nullptr ? *p : *reinterpret_cast<const ::NavMessage::Pose2d*>(
      &::NavMessage::_Pose2d_default_instance_);
}
inline const ::NavMessage::Pose2d& Action::target_diff() const {
  // @@protoc_insertion_point(field_get:NavMessage.Action.target_diff)
  return _internal_target_diff();
}
inline void Action::unsafe_arena_set_allocated_target_diff(
    ::NavMessage::Pose2d* target_diff) {
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(target_diff_);
  }
  target_diff_ = target_diff;
  if (target_diff) {
    
  } else {
    
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:NavMessage.Action.target_diff)
}
inline ::NavMessage::Pose2d* Action::release_target_diff() {
  
  ::NavMessage::Pose2d* temp = target_diff_;
  target_diff_ = nullptr;
  if (GetArena() != nullptr) {
    temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  }
  return temp;
}
inline ::NavMessage::Pose2d* Action::unsafe_arena_release_target_diff() {
  // @@protoc_insertion_point(field_release:NavMessage.Action.target_diff)
  
  ::NavMessage::Pose2d* temp = target_diff_;
  target_diff_ = nullptr;
  return temp;
}
inline ::NavMessage::Pose2d* Action::_internal_mutable_target_diff() {
  
  if (target_diff_ == nullptr) {
    auto* p = CreateMaybeMessage<::NavMessage::Pose2d>(GetArena());
    target_diff_ = p;
  }
  return target_diff_;
}
inline ::NavMessage::Pose2d* Action::mutable_target_diff() {
  // @@protoc_insertion_point(field_mutable:NavMessage.Action.target_diff)
  return _internal_mutable_target_diff();
}
inline void Action::set_allocated_target_diff(::NavMessage::Pose2d* target_diff) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  if (message_arena == nullptr) {
    delete target_diff_;
  }
  if (target_diff) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(target_diff);
    if (message_arena != submessage_arena) {
      target_diff = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, target_diff, submessage_arena);
    }
    
  } else {
    
  }
  target_diff_ = target_diff;
  // @@protoc_insertion_point(field_set_allocated:NavMessage.Action.target_diff)
}

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

// NavCmd

// int32 action = 1;
inline void NavCmd::clear_action() {
  action_ = 0;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 NavCmd::_internal_action() const {
  return action_;
}
inline ::PROTOBUF_NAMESPACE_ID::int32 NavCmd::action() const {
  // @@protoc_insertion_point(field_get:NavMessage.NavCmd.action)
  return _internal_action();
}
inline void NavCmd::_internal_set_action(::PROTOBUF_NAMESPACE_ID::int32 value) {
  
  action_ = value;
}
inline void NavCmd::set_action(::PROTOBUF_NAMESPACE_ID::int32 value) {
  _internal_set_action(value);
  // @@protoc_insertion_point(field_set:NavMessage.NavCmd.action)
}

// string key = 2;
inline void NavCmd::clear_key() {
  key_.ClearToEmpty(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline const std::string& NavCmd::key() const {
  // @@protoc_insertion_point(field_get:NavMessage.NavCmd.key)
  return _internal_key();
}
inline void NavCmd::set_key(const std::string& value) {
  _internal_set_key(value);
  // @@protoc_insertion_point(field_set:NavMessage.NavCmd.key)
}
inline std::string* NavCmd::mutable_key() {
  // @@protoc_insertion_point(field_mutable:NavMessage.NavCmd.key)
  return _internal_mutable_key();
}
inline const std::string& NavCmd::_internal_key() const {
  return key_.Get();
}
inline void NavCmd::_internal_set_key(const std::string& value) {
  
  key_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value, GetArena());
}
inline void NavCmd::set_key(std::string&& value) {
  
  key_.Set(
    &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value), GetArena());
  // @@protoc_insertion_point(field_set_rvalue:NavMessage.NavCmd.key)
}
inline void NavCmd::set_key(const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  
  key_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(value),
              GetArena());
  // @@protoc_insertion_point(field_set_char:NavMessage.NavCmd.key)
}
inline void NavCmd::set_key(const char* value,
    size_t size) {
  
  key_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(
      reinterpret_cast<const char*>(value), size), GetArena());
  // @@protoc_insertion_point(field_set_pointer:NavMessage.NavCmd.key)
}
inline std::string* NavCmd::_internal_mutable_key() {
  
  return key_.Mutable(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline std::string* NavCmd::release_key() {
  // @@protoc_insertion_point(field_release:NavMessage.NavCmd.key)
  return key_.Release(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline void NavCmd::set_allocated_key(std::string* key) {
  if (key != nullptr) {
    
  } else {
    
  }
  key_.SetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), key,
      GetArena());
  // @@protoc_insertion_point(field_set_allocated:NavMessage.NavCmd.key)
}

// repeated .NavMessage.Action actions = 3;
inline int NavCmd::_internal_actions_size() const {
  return actions_.size();
}
inline int NavCmd::actions_size() const {
  return _internal_actions_size();
}
inline void NavCmd::clear_actions() {
  actions_.Clear();
}
inline ::NavMessage::Action* NavCmd::mutable_actions(int index) {
  // @@protoc_insertion_point(field_mutable:NavMessage.NavCmd.actions)
  return actions_.Mutable(index);
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::NavMessage::Action >*
NavCmd::mutable_actions() {
  // @@protoc_insertion_point(field_mutable_list:NavMessage.NavCmd.actions)
  return &actions_;
}
inline const ::NavMessage::Action& NavCmd::_internal_actions(int index) const {
  return actions_.Get(index);
}
inline const ::NavMessage::Action& NavCmd::actions(int index) const {
  // @@protoc_insertion_point(field_get:NavMessage.NavCmd.actions)
  return _internal_actions(index);
}
inline ::NavMessage::Action* NavCmd::_internal_add_actions() {
  return actions_.Add();
}
inline ::NavMessage::Action* NavCmd::add_actions() {
  // @@protoc_insertion_point(field_add:NavMessage.NavCmd.actions)
  return _internal_add_actions();
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::NavMessage::Action >&
NavCmd::actions() const {
  // @@protoc_insertion_point(field_list:NavMessage.NavCmd.actions)
  return actions_;
}

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

// NavStatu

// bool statu = 1;
inline void NavStatu::clear_statu() {
  statu_ = false;
}
inline bool NavStatu::_internal_statu() const {
  return statu_;
}
inline bool NavStatu::statu() const {
  // @@protoc_insertion_point(field_get:NavMessage.NavStatu.statu)
  return _internal_statu();
}
inline void NavStatu::_internal_set_statu(bool value) {
  
  statu_ = value;
}
inline void NavStatu::set_statu(bool value) {
  _internal_set_statu(value);
  // @@protoc_insertion_point(field_set:NavMessage.NavStatu.statu)
}

// string key = 2;
inline void NavStatu::clear_key() {
  key_.ClearToEmpty(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline const std::string& NavStatu::key() const {
  // @@protoc_insertion_point(field_get:NavMessage.NavStatu.key)
  return _internal_key();
}
inline void NavStatu::set_key(const std::string& value) {
  _internal_set_key(value);
  // @@protoc_insertion_point(field_set:NavMessage.NavStatu.key)
}
inline std::string* NavStatu::mutable_key() {
  // @@protoc_insertion_point(field_mutable:NavMessage.NavStatu.key)
  return _internal_mutable_key();
}
inline const std::string& NavStatu::_internal_key() const {
  return key_.Get();
}
inline void NavStatu::_internal_set_key(const std::string& value) {
  
  key_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value, GetArena());
}
inline void NavStatu::set_key(std::string&& value) {
  
  key_.Set(
    &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value), GetArena());
  // @@protoc_insertion_point(field_set_rvalue:NavMessage.NavStatu.key)
}
inline void NavStatu::set_key(const char* value) {
  GOOGLE_DCHECK(value != nullptr);
  
  key_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(value),
              GetArena());
  // @@protoc_insertion_point(field_set_char:NavMessage.NavStatu.key)
}
inline void NavStatu::set_key(const char* value,
    size_t size) {
  
  key_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(
      reinterpret_cast<const char*>(value), size), GetArena());
  // @@protoc_insertion_point(field_set_pointer:NavMessage.NavStatu.key)
}
inline std::string* NavStatu::_internal_mutable_key() {
  
  return key_.Mutable(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline std::string* NavStatu::release_key() {
  // @@protoc_insertion_point(field_release:NavMessage.NavStatu.key)
  return key_.Release(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
}
inline void NavStatu::set_allocated_key(std::string* key) {
  if (key != nullptr) {
    
  } else {
    
  }
  key_.SetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), key,
      GetArena());
  // @@protoc_insertion_point(field_set_allocated:NavMessage.NavStatu.key)
}

// repeated .NavMessage.Action unfinished_actions = 3;
inline int NavStatu::_internal_unfinished_actions_size() const {
  return unfinished_actions_.size();
}
inline int NavStatu::unfinished_actions_size() const {
  return _internal_unfinished_actions_size();
}
inline void NavStatu::clear_unfinished_actions() {
  unfinished_actions_.Clear();
}
inline ::NavMessage::Action* NavStatu::mutable_unfinished_actions(int index) {
  // @@protoc_insertion_point(field_mutable:NavMessage.NavStatu.unfinished_actions)
  return unfinished_actions_.Mutable(index);
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::NavMessage::Action >*
NavStatu::mutable_unfinished_actions() {
  // @@protoc_insertion_point(field_mutable_list:NavMessage.NavStatu.unfinished_actions)
  return &unfinished_actions_;
}
inline const ::NavMessage::Action& NavStatu::_internal_unfinished_actions(int index) const {
  return unfinished_actions_.Get(index);
}
inline const ::NavMessage::Action& NavStatu::unfinished_actions(int index) const {
  // @@protoc_insertion_point(field_get:NavMessage.NavStatu.unfinished_actions)
  return _internal_unfinished_actions(index);
}
inline ::NavMessage::Action* NavStatu::_internal_add_unfinished_actions() {
  return unfinished_actions_.Add();
}
inline ::NavMessage::Action* NavStatu::add_unfinished_actions() {
  // @@protoc_insertion_point(field_add:NavMessage.NavStatu.unfinished_actions)
  return _internal_add_unfinished_actions();
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::NavMessage::Action >&
NavStatu::unfinished_actions() const {
  // @@protoc_insertion_point(field_list:NavMessage.NavStatu.unfinished_actions)
  return unfinished_actions_;
}

// .NavMessage.AGVStatu current_pose = 4;
inline bool NavStatu::_internal_has_current_pose() const {
  return this != internal_default_instance() && current_pose_ != nullptr;
}
inline bool NavStatu::has_current_pose() const {
  return _internal_has_current_pose();
}
inline void NavStatu::clear_current_pose() {
  if (GetArena() == nullptr && current_pose_ != nullptr) {
    delete current_pose_;
  }
  current_pose_ = nullptr;
}
inline const ::NavMessage::AGVStatu& NavStatu::_internal_current_pose() const {
  const ::NavMessage::AGVStatu* p = current_pose_;
  return p != nullptr ? *p : *reinterpret_cast<const ::NavMessage::AGVStatu*>(
      &::NavMessage::_AGVStatu_default_instance_);
}
inline const ::NavMessage::AGVStatu& NavStatu::current_pose() const {
  // @@protoc_insertion_point(field_get:NavMessage.NavStatu.current_pose)
  return _internal_current_pose();
}
inline void NavStatu::unsafe_arena_set_allocated_current_pose(
    ::NavMessage::AGVStatu* current_pose) {
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(current_pose_);
  }
  current_pose_ = current_pose;
  if (current_pose) {
    
  } else {
    
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:NavMessage.NavStatu.current_pose)
}
inline ::NavMessage::AGVStatu* NavStatu::release_current_pose() {
  
  ::NavMessage::AGVStatu* temp = current_pose_;
  current_pose_ = nullptr;
  if (GetArena() != nullptr) {
    temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  }
  return temp;
}
inline ::NavMessage::AGVStatu* NavStatu::unsafe_arena_release_current_pose() {
  // @@protoc_insertion_point(field_release:NavMessage.NavStatu.current_pose)
  
  ::NavMessage::AGVStatu* temp = current_pose_;
  current_pose_ = nullptr;
  return temp;
}
inline ::NavMessage::AGVStatu* NavStatu::_internal_mutable_current_pose() {
  
  if (current_pose_ == nullptr) {
    auto* p = CreateMaybeMessage<::NavMessage::AGVStatu>(GetArena());
    current_pose_ = p;
  }
  return current_pose_;
}
inline ::NavMessage::AGVStatu* NavStatu::mutable_current_pose() {
  // @@protoc_insertion_point(field_mutable:NavMessage.NavStatu.current_pose)
  return _internal_mutable_current_pose();
}
inline void NavStatu::set_allocated_current_pose(::NavMessage::AGVStatu* current_pose) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  if (message_arena == nullptr) {
    delete current_pose_;
  }
  if (current_pose) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(current_pose);
    if (message_arena != submessage_arena) {
      current_pose = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, current_pose, submessage_arena);
    }
    
  } else {
    
  }
  current_pose_ = current_pose;
  // @@protoc_insertion_point(field_set_allocated:NavMessage.NavStatu.current_pose)
}

// bool pose_timeout = 5;
inline void NavStatu::clear_pose_timeout() {
  pose_timeout_ = false;
}
inline bool NavStatu::_internal_pose_timeout() const {
  return pose_timeout_;
}
inline bool NavStatu::pose_timeout() const {
  // @@protoc_insertion_point(field_get:NavMessage.NavStatu.pose_timeout)
  return _internal_pose_timeout();
}
inline void NavStatu::_internal_set_pose_timeout(bool value) {
  
  pose_timeout_ = value;
}
inline void NavStatu::set_pose_timeout(bool value) {
  _internal_set_pose_timeout(value);
  // @@protoc_insertion_point(field_set:NavMessage.NavStatu.pose_timeout)
}

// bool twist_timeout = 6;
inline void NavStatu::clear_twist_timeout() {
  twist_timeout_ = false;
}
inline bool NavStatu::_internal_twist_timeout() const {
  return twist_timeout_;
}
inline bool NavStatu::twist_timeout() const {
  // @@protoc_insertion_point(field_get:NavMessage.NavStatu.twist_timeout)
  return _internal_twist_timeout();
}
inline void NavStatu::_internal_set_twist_timeout(bool value) {
  
  twist_timeout_ = value;
}
inline void NavStatu::set_twist_timeout(bool value) {
  _internal_set_twist_timeout(value);
  // @@protoc_insertion_point(field_set:NavMessage.NavStatu.twist_timeout)
}

// .NavMessage.Trajectory selected_traj = 7;
inline bool NavStatu::_internal_has_selected_traj() const {
  return this != internal_default_instance() && selected_traj_ != nullptr;
}
inline bool NavStatu::has_selected_traj() const {
  return _internal_has_selected_traj();
}
inline void NavStatu::clear_selected_traj() {
  if (GetArena() == nullptr && selected_traj_ != nullptr) {
    delete selected_traj_;
  }
  selected_traj_ = nullptr;
}
inline const ::NavMessage::Trajectory& NavStatu::_internal_selected_traj() const {
  const ::NavMessage::Trajectory* p = selected_traj_;
  return p != nullptr ? *p : *reinterpret_cast<const ::NavMessage::Trajectory*>(
      &::NavMessage::_Trajectory_default_instance_);
}
inline const ::NavMessage::Trajectory& NavStatu::selected_traj() const {
  // @@protoc_insertion_point(field_get:NavMessage.NavStatu.selected_traj)
  return _internal_selected_traj();
}
inline void NavStatu::unsafe_arena_set_allocated_selected_traj(
    ::NavMessage::Trajectory* selected_traj) {
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(selected_traj_);
  }
  selected_traj_ = selected_traj;
  if (selected_traj) {
    
  } else {
    
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:NavMessage.NavStatu.selected_traj)
}
inline ::NavMessage::Trajectory* NavStatu::release_selected_traj() {
  
  ::NavMessage::Trajectory* temp = selected_traj_;
  selected_traj_ = nullptr;
  if (GetArena() != nullptr) {
    temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  }
  return temp;
}
inline ::NavMessage::Trajectory* NavStatu::unsafe_arena_release_selected_traj() {
  // @@protoc_insertion_point(field_release:NavMessage.NavStatu.selected_traj)
  
  ::NavMessage::Trajectory* temp = selected_traj_;
  selected_traj_ = nullptr;
  return temp;
}
inline ::NavMessage::Trajectory* NavStatu::_internal_mutable_selected_traj() {
  
  if (selected_traj_ == nullptr) {
    auto* p = CreateMaybeMessage<::NavMessage::Trajectory>(GetArena());
    selected_traj_ = p;
  }
  return selected_traj_;
}
inline ::NavMessage::Trajectory* NavStatu::mutable_selected_traj() {
  // @@protoc_insertion_point(field_mutable:NavMessage.NavStatu.selected_traj)
  return _internal_mutable_selected_traj();
}
inline void NavStatu::set_allocated_selected_traj(::NavMessage::Trajectory* selected_traj) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  if (message_arena == nullptr) {
    delete selected_traj_;
  }
  if (selected_traj) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(selected_traj);
    if (message_arena != submessage_arena) {
      selected_traj = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, selected_traj, submessage_arena);
    }
    
  } else {
    
  }
  selected_traj_ = selected_traj;
  // @@protoc_insertion_point(field_set_allocated:NavMessage.NavStatu.selected_traj)
}

// .NavMessage.Trajectory predict_traj = 8;
inline bool NavStatu::_internal_has_predict_traj() const {
  return this != internal_default_instance() && predict_traj_ != nullptr;
}
inline bool NavStatu::has_predict_traj() const {
  return _internal_has_predict_traj();
}
inline void NavStatu::clear_predict_traj() {
  if (GetArena() == nullptr && predict_traj_ != nullptr) {
    delete predict_traj_;
  }
  predict_traj_ = nullptr;
}
inline const ::NavMessage::Trajectory& NavStatu::_internal_predict_traj() const {
  const ::NavMessage::Trajectory* p = predict_traj_;
  return p != nullptr ? *p : *reinterpret_cast<const ::NavMessage::Trajectory*>(
      &::NavMessage::_Trajectory_default_instance_);
}
inline const ::NavMessage::Trajectory& NavStatu::predict_traj() const {
  // @@protoc_insertion_point(field_get:NavMessage.NavStatu.predict_traj)
  return _internal_predict_traj();
}
inline void NavStatu::unsafe_arena_set_allocated_predict_traj(
    ::NavMessage::Trajectory* predict_traj) {
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(predict_traj_);
  }
  predict_traj_ = predict_traj;
  if (predict_traj) {
    
  } else {
    
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:NavMessage.NavStatu.predict_traj)
}
inline ::NavMessage::Trajectory* NavStatu::release_predict_traj() {
  
  ::NavMessage::Trajectory* temp = predict_traj_;
  predict_traj_ = nullptr;
  if (GetArena() != nullptr) {
    temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  }
  return temp;
}
inline ::NavMessage::Trajectory* NavStatu::unsafe_arena_release_predict_traj() {
  // @@protoc_insertion_point(field_release:NavMessage.NavStatu.predict_traj)
  
  ::NavMessage::Trajectory* temp = predict_traj_;
  predict_traj_ = nullptr;
  return temp;
}
inline ::NavMessage::Trajectory* NavStatu::_internal_mutable_predict_traj() {
  
  if (predict_traj_ == nullptr) {
    auto* p = CreateMaybeMessage<::NavMessage::Trajectory>(GetArena());
    predict_traj_ = p;
  }
  return predict_traj_;
}
inline ::NavMessage::Trajectory* NavStatu::mutable_predict_traj() {
  // @@protoc_insertion_point(field_mutable:NavMessage.NavStatu.predict_traj)
  return _internal_mutable_predict_traj();
}
inline void NavStatu::set_allocated_predict_traj(::NavMessage::Trajectory* predict_traj) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  if (message_arena == nullptr) {
    delete predict_traj_;
  }
  if (predict_traj) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(predict_traj);
    if (message_arena != submessage_arena) {
      predict_traj = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, predict_traj, submessage_arena);
    }
    
  } else {
    
  }
  predict_traj_ = predict_traj;
  // @@protoc_insertion_point(field_set_allocated:NavMessage.NavStatu.predict_traj)
}

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

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

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

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

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

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


// @@protoc_insertion_point(namespace_scope)

}  // namespace NavMessage

// @@protoc_insertion_point(global_scope)

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