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

#ifndef PROTOBUF_INCLUDED_pybullet_2eproto
#define PROTOBUF_INCLUDED_pybullet_2eproto

#include <string>

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

#if GOOGLE_PROTOBUF_VERSION < 3006000
#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 3006000 < GOOGLE_PROTOBUF_MIN_PROTOC_VERSION
#error This file was generated by an older version of protoc which is
#error incompatible with your Protocol Buffer headers.  Please
#error regenerate this file with a newer version of protoc.
#endif

#include <google/protobuf/io/coded_stream.h>
#include <google/protobuf/arena.h>
#include <google/protobuf/arenastring.h>
#include <google/protobuf/generated_message_table_driven.h>
#include <google/protobuf/generated_message_util.h>
#include <google/protobuf/inlined_string_field.h>
#include <google/protobuf/metadata.h>
#include <google/protobuf/message.h>
#include <google/protobuf/repeated_field.h>  // IWYU pragma: export
#include <google/protobuf/extension_set.h>  // IWYU pragma: export
#include <google/protobuf/unknown_field_set.h>
// @@protoc_insertion_point(includes)
#define PROTOBUF_INTERNAL_EXPORT_protobuf_pybullet_2eproto 

namespace protobuf_pybullet_2eproto {
// Internal implementation detail -- do not use these members.
struct TableStruct {
  static const ::google::protobuf::internal::ParseTableField entries[];
  static const ::google::protobuf::internal::AuxillaryParseTableField aux[];
  static const ::google::protobuf::internal::ParseTable schema[40];
  static const ::google::protobuf::internal::FieldMetadata field_metadata[];
  static const ::google::protobuf::internal::SerializationTable serialization_table[];
  static const ::google::protobuf::uint32 offsets[];
};
void AddDescriptors();
}  // namespace protobuf_pybullet_2eproto
namespace pybullet_grpc {
class ChangeDynamicsCommand;
class ChangeDynamicsCommandDefaultTypeInternal;
extern ChangeDynamicsCommandDefaultTypeInternal _ChangeDynamicsCommand_default_instance_;
class CheckVersionCommand;
class CheckVersionCommandDefaultTypeInternal;
extern CheckVersionCommandDefaultTypeInternal _CheckVersionCommand_default_instance_;
class CheckVersionStatus;
class CheckVersionStatusDefaultTypeInternal;
extern CheckVersionStatusDefaultTypeInternal _CheckVersionStatus_default_instance_;
class ConfigureOpenGLVisualizerCommand;
class ConfigureOpenGLVisualizerCommandDefaultTypeInternal;
extern ConfigureOpenGLVisualizerCommandDefaultTypeInternal _ConfigureOpenGLVisualizerCommand_default_instance_;
class GetDynamicsCommand;
class GetDynamicsCommandDefaultTypeInternal;
extern GetDynamicsCommandDefaultTypeInternal _GetDynamicsCommand_default_instance_;
class GetDynamicsStatus;
class GetDynamicsStatusDefaultTypeInternal;
extern GetDynamicsStatusDefaultTypeInternal _GetDynamicsStatus_default_instance_;
class InitPoseCommand;
class InitPoseCommandDefaultTypeInternal;
extern InitPoseCommandDefaultTypeInternal _InitPoseCommand_default_instance_;
class JointMotorControlCommand;
class JointMotorControlCommandDefaultTypeInternal;
extern JointMotorControlCommandDefaultTypeInternal _JointMotorControlCommand_default_instance_;
class KeyboardEvent;
class KeyboardEventDefaultTypeInternal;
extern KeyboardEventDefaultTypeInternal _KeyboardEvent_default_instance_;
class KeyboardEventsStatus;
class KeyboardEventsStatusDefaultTypeInternal;
extern KeyboardEventsStatusDefaultTypeInternal _KeyboardEventsStatus_default_instance_;
class LoadMjcfCommand;
class LoadMjcfCommandDefaultTypeInternal;
extern LoadMjcfCommandDefaultTypeInternal _LoadMjcfCommand_default_instance_;
class LoadSdfCommand;
class LoadSdfCommandDefaultTypeInternal;
extern LoadSdfCommandDefaultTypeInternal _LoadSdfCommand_default_instance_;
class LoadUrdfCommand;
class LoadUrdfCommandDefaultTypeInternal;
extern LoadUrdfCommandDefaultTypeInternal _LoadUrdfCommand_default_instance_;
class LoadUrdfStatus;
class LoadUrdfStatusDefaultTypeInternal;
extern LoadUrdfStatusDefaultTypeInternal _LoadUrdfStatus_default_instance_;
class MjcfLoadedStatus;
class MjcfLoadedStatusDefaultTypeInternal;
extern MjcfLoadedStatusDefaultTypeInternal _MjcfLoadedStatus_default_instance_;
class PhysicsSimulationParameters;
class PhysicsSimulationParametersDefaultTypeInternal;
extern PhysicsSimulationParametersDefaultTypeInternal _PhysicsSimulationParameters_default_instance_;
class PhysicsSimulationParametersCommand;
class PhysicsSimulationParametersCommandDefaultTypeInternal;
extern PhysicsSimulationParametersCommandDefaultTypeInternal _PhysicsSimulationParametersCommand_default_instance_;
class PyBulletCommand;
class PyBulletCommandDefaultTypeInternal;
extern PyBulletCommandDefaultTypeInternal _PyBulletCommand_default_instance_;
class PyBulletStatus;
class PyBulletStatusDefaultTypeInternal;
extern PyBulletStatusDefaultTypeInternal _PyBulletStatus_default_instance_;
class RequestActualStateCommand;
class RequestActualStateCommandDefaultTypeInternal;
extern RequestActualStateCommandDefaultTypeInternal _RequestActualStateCommand_default_instance_;
class RequestBodyInfoCommand;
class RequestBodyInfoCommandDefaultTypeInternal;
extern RequestBodyInfoCommandDefaultTypeInternal _RequestBodyInfoCommand_default_instance_;
class RequestBodyInfoStatus;
class RequestBodyInfoStatusDefaultTypeInternal;
extern RequestBodyInfoStatusDefaultTypeInternal _RequestBodyInfoStatus_default_instance_;
class RequestCameraImageCommand;
class RequestCameraImageCommandDefaultTypeInternal;
extern RequestCameraImageCommandDefaultTypeInternal _RequestCameraImageCommand_default_instance_;
class RequestCameraImageStatus;
class RequestCameraImageStatusDefaultTypeInternal;
extern RequestCameraImageStatusDefaultTypeInternal _RequestCameraImageStatus_default_instance_;
class RequestKeyboardEventsCommand;
class RequestKeyboardEventsCommandDefaultTypeInternal;
extern RequestKeyboardEventsCommandDefaultTypeInternal _RequestKeyboardEventsCommand_default_instance_;
class ResetSimulationCommand;
class ResetSimulationCommandDefaultTypeInternal;
extern ResetSimulationCommandDefaultTypeInternal _ResetSimulationCommand_default_instance_;
class SdfLoadedStatus;
class SdfLoadedStatusDefaultTypeInternal;
extern SdfLoadedStatusDefaultTypeInternal _SdfLoadedStatus_default_instance_;
class SendActualStateStatus;
class SendActualStateStatusDefaultTypeInternal;
extern SendActualStateStatusDefaultTypeInternal _SendActualStateStatus_default_instance_;
class StepSimulationCommand;
class StepSimulationCommandDefaultTypeInternal;
extern StepSimulationCommandDefaultTypeInternal _StepSimulationCommand_default_instance_;
class SyncBodiesCommand;
class SyncBodiesCommandDefaultTypeInternal;
extern SyncBodiesCommandDefaultTypeInternal _SyncBodiesCommand_default_instance_;
class SyncBodiesStatus;
class SyncBodiesStatusDefaultTypeInternal;
extern SyncBodiesStatusDefaultTypeInternal _SyncBodiesStatus_default_instance_;
class TerminateServerCommand;
class TerminateServerCommandDefaultTypeInternal;
extern TerminateServerCommandDefaultTypeInternal _TerminateServerCommand_default_instance_;
class UserConstraintCommand;
class UserConstraintCommandDefaultTypeInternal;
extern UserConstraintCommandDefaultTypeInternal _UserConstraintCommand_default_instance_;
class UserConstraintStateStatus;
class UserConstraintStateStatusDefaultTypeInternal;
extern UserConstraintStateStatusDefaultTypeInternal _UserConstraintStateStatus_default_instance_;
class UserConstraintStatus;
class UserConstraintStatusDefaultTypeInternal;
extern UserConstraintStatusDefaultTypeInternal _UserConstraintStatus_default_instance_;
class matrix4x4;
class matrix4x4DefaultTypeInternal;
extern matrix4x4DefaultTypeInternal _matrix4x4_default_instance_;
class quat4;
class quat4DefaultTypeInternal;
extern quat4DefaultTypeInternal _quat4_default_instance_;
class transform;
class transformDefaultTypeInternal;
extern transformDefaultTypeInternal _transform_default_instance_;
class vec3;
class vec3DefaultTypeInternal;
extern vec3DefaultTypeInternal _vec3_default_instance_;
class vec4;
class vec4DefaultTypeInternal;
extern vec4DefaultTypeInternal _vec4_default_instance_;
}  // namespace pybullet_grpc
namespace google {
namespace protobuf {
template<> ::pybullet_grpc::ChangeDynamicsCommand* Arena::CreateMaybeMessage<::pybullet_grpc::ChangeDynamicsCommand>(Arena*);
template<> ::pybullet_grpc::CheckVersionCommand* Arena::CreateMaybeMessage<::pybullet_grpc::CheckVersionCommand>(Arena*);
template<> ::pybullet_grpc::CheckVersionStatus* Arena::CreateMaybeMessage<::pybullet_grpc::CheckVersionStatus>(Arena*);
template<> ::pybullet_grpc::ConfigureOpenGLVisualizerCommand* Arena::CreateMaybeMessage<::pybullet_grpc::ConfigureOpenGLVisualizerCommand>(Arena*);
template<> ::pybullet_grpc::GetDynamicsCommand* Arena::CreateMaybeMessage<::pybullet_grpc::GetDynamicsCommand>(Arena*);
template<> ::pybullet_grpc::GetDynamicsStatus* Arena::CreateMaybeMessage<::pybullet_grpc::GetDynamicsStatus>(Arena*);
template<> ::pybullet_grpc::InitPoseCommand* Arena::CreateMaybeMessage<::pybullet_grpc::InitPoseCommand>(Arena*);
template<> ::pybullet_grpc::JointMotorControlCommand* Arena::CreateMaybeMessage<::pybullet_grpc::JointMotorControlCommand>(Arena*);
template<> ::pybullet_grpc::KeyboardEvent* Arena::CreateMaybeMessage<::pybullet_grpc::KeyboardEvent>(Arena*);
template<> ::pybullet_grpc::KeyboardEventsStatus* Arena::CreateMaybeMessage<::pybullet_grpc::KeyboardEventsStatus>(Arena*);
template<> ::pybullet_grpc::LoadMjcfCommand* Arena::CreateMaybeMessage<::pybullet_grpc::LoadMjcfCommand>(Arena*);
template<> ::pybullet_grpc::LoadSdfCommand* Arena::CreateMaybeMessage<::pybullet_grpc::LoadSdfCommand>(Arena*);
template<> ::pybullet_grpc::LoadUrdfCommand* Arena::CreateMaybeMessage<::pybullet_grpc::LoadUrdfCommand>(Arena*);
template<> ::pybullet_grpc::LoadUrdfStatus* Arena::CreateMaybeMessage<::pybullet_grpc::LoadUrdfStatus>(Arena*);
template<> ::pybullet_grpc::MjcfLoadedStatus* Arena::CreateMaybeMessage<::pybullet_grpc::MjcfLoadedStatus>(Arena*);
template<> ::pybullet_grpc::PhysicsSimulationParameters* Arena::CreateMaybeMessage<::pybullet_grpc::PhysicsSimulationParameters>(Arena*);
template<> ::pybullet_grpc::PhysicsSimulationParametersCommand* Arena::CreateMaybeMessage<::pybullet_grpc::PhysicsSimulationParametersCommand>(Arena*);
template<> ::pybullet_grpc::PyBulletCommand* Arena::CreateMaybeMessage<::pybullet_grpc::PyBulletCommand>(Arena*);
template<> ::pybullet_grpc::PyBulletStatus* Arena::CreateMaybeMessage<::pybullet_grpc::PyBulletStatus>(Arena*);
template<> ::pybullet_grpc::RequestActualStateCommand* Arena::CreateMaybeMessage<::pybullet_grpc::RequestActualStateCommand>(Arena*);
template<> ::pybullet_grpc::RequestBodyInfoCommand* Arena::CreateMaybeMessage<::pybullet_grpc::RequestBodyInfoCommand>(Arena*);
template<> ::pybullet_grpc::RequestBodyInfoStatus* Arena::CreateMaybeMessage<::pybullet_grpc::RequestBodyInfoStatus>(Arena*);
template<> ::pybullet_grpc::RequestCameraImageCommand* Arena::CreateMaybeMessage<::pybullet_grpc::RequestCameraImageCommand>(Arena*);
template<> ::pybullet_grpc::RequestCameraImageStatus* Arena::CreateMaybeMessage<::pybullet_grpc::RequestCameraImageStatus>(Arena*);
template<> ::pybullet_grpc::RequestKeyboardEventsCommand* Arena::CreateMaybeMessage<::pybullet_grpc::RequestKeyboardEventsCommand>(Arena*);
template<> ::pybullet_grpc::ResetSimulationCommand* Arena::CreateMaybeMessage<::pybullet_grpc::ResetSimulationCommand>(Arena*);
template<> ::pybullet_grpc::SdfLoadedStatus* Arena::CreateMaybeMessage<::pybullet_grpc::SdfLoadedStatus>(Arena*);
template<> ::pybullet_grpc::SendActualStateStatus* Arena::CreateMaybeMessage<::pybullet_grpc::SendActualStateStatus>(Arena*);
template<> ::pybullet_grpc::StepSimulationCommand* Arena::CreateMaybeMessage<::pybullet_grpc::StepSimulationCommand>(Arena*);
template<> ::pybullet_grpc::SyncBodiesCommand* Arena::CreateMaybeMessage<::pybullet_grpc::SyncBodiesCommand>(Arena*);
template<> ::pybullet_grpc::SyncBodiesStatus* Arena::CreateMaybeMessage<::pybullet_grpc::SyncBodiesStatus>(Arena*);
template<> ::pybullet_grpc::TerminateServerCommand* Arena::CreateMaybeMessage<::pybullet_grpc::TerminateServerCommand>(Arena*);
template<> ::pybullet_grpc::UserConstraintCommand* Arena::CreateMaybeMessage<::pybullet_grpc::UserConstraintCommand>(Arena*);
template<> ::pybullet_grpc::UserConstraintStateStatus* Arena::CreateMaybeMessage<::pybullet_grpc::UserConstraintStateStatus>(Arena*);
template<> ::pybullet_grpc::UserConstraintStatus* Arena::CreateMaybeMessage<::pybullet_grpc::UserConstraintStatus>(Arena*);
template<> ::pybullet_grpc::matrix4x4* Arena::CreateMaybeMessage<::pybullet_grpc::matrix4x4>(Arena*);
template<> ::pybullet_grpc::quat4* Arena::CreateMaybeMessage<::pybullet_grpc::quat4>(Arena*);
template<> ::pybullet_grpc::transform* Arena::CreateMaybeMessage<::pybullet_grpc::transform>(Arena*);
template<> ::pybullet_grpc::vec3* Arena::CreateMaybeMessage<::pybullet_grpc::vec3>(Arena*);
template<> ::pybullet_grpc::vec4* Arena::CreateMaybeMessage<::pybullet_grpc::vec4>(Arena*);
}  // namespace protobuf
}  // namespace google
namespace pybullet_grpc {

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

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

  vec3(const vec3& from);

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

  inline vec3& operator=(vec3&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }
  #endif
  static const ::google::protobuf::Descriptor* descriptor();
  static const vec3& default_instance();

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

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

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

  inline vec3* New() const final {
    return CreateMaybeMessage<vec3>(NULL);
  }

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

  size_t ByteSizeLong() const final;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input) final;
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const final;
  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
      bool deterministic, ::google::protobuf::uint8* target) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(vec3* other);
  private:
  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
    return NULL;
  }
  inline void* MaybeArenaPtr() const {
    return NULL;
  }
  public:

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

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

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

  // double x = 1;
  void clear_x();
  static const int kXFieldNumber = 1;
  double x() const;
  void set_x(double value);

  // double y = 2;
  void clear_y();
  static const int kYFieldNumber = 2;
  double y() const;
  void set_y(double value);

  // double z = 3;
  void clear_z();
  static const int kZFieldNumber = 3;
  double z() const;
  void set_z(double value);

  // @@protoc_insertion_point(class_scope:pybullet_grpc.vec3)
 private:

  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
  double x_;
  double y_;
  double z_;
  mutable ::google::protobuf::internal::CachedSize _cached_size_;
  friend struct ::protobuf_pybullet_2eproto::TableStruct;
};
// -------------------------------------------------------------------

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

  quat4(const quat4& from);

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

  inline quat4& operator=(quat4&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }
  #endif
  static const ::google::protobuf::Descriptor* descriptor();
  static const quat4& default_instance();

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

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

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

  inline quat4* New() const final {
    return CreateMaybeMessage<quat4>(NULL);
  }

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

  size_t ByteSizeLong() const final;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input) final;
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const final;
  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
      bool deterministic, ::google::protobuf::uint8* target) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(quat4* other);
  private:
  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
    return NULL;
  }
  inline void* MaybeArenaPtr() const {
    return NULL;
  }
  public:

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

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

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

  // double x = 1;
  void clear_x();
  static const int kXFieldNumber = 1;
  double x() const;
  void set_x(double value);

  // double y = 2;
  void clear_y();
  static const int kYFieldNumber = 2;
  double y() const;
  void set_y(double value);

  // double z = 3;
  void clear_z();
  static const int kZFieldNumber = 3;
  double z() const;
  void set_z(double value);

  // double w = 4;
  void clear_w();
  static const int kWFieldNumber = 4;
  double w() const;
  void set_w(double value);

  // @@protoc_insertion_point(class_scope:pybullet_grpc.quat4)
 private:

  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
  double x_;
  double y_;
  double z_;
  double w_;
  mutable ::google::protobuf::internal::CachedSize _cached_size_;
  friend struct ::protobuf_pybullet_2eproto::TableStruct;
};
// -------------------------------------------------------------------

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

  vec4(const vec4& from);

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

  inline vec4& operator=(vec4&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }
  #endif
  static const ::google::protobuf::Descriptor* descriptor();
  static const vec4& default_instance();

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

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

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

  inline vec4* New() const final {
    return CreateMaybeMessage<vec4>(NULL);
  }

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

  size_t ByteSizeLong() const final;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input) final;
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const final;
  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
      bool deterministic, ::google::protobuf::uint8* target) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(vec4* other);
  private:
  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
    return NULL;
  }
  inline void* MaybeArenaPtr() const {
    return NULL;
  }
  public:

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

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

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

  // double x = 1;
  void clear_x();
  static const int kXFieldNumber = 1;
  double x() const;
  void set_x(double value);

  // double y = 2;
  void clear_y();
  static const int kYFieldNumber = 2;
  double y() const;
  void set_y(double value);

  // double z = 3;
  void clear_z();
  static const int kZFieldNumber = 3;
  double z() const;
  void set_z(double value);

  // double w = 4;
  void clear_w();
  static const int kWFieldNumber = 4;
  double w() const;
  void set_w(double value);

  // @@protoc_insertion_point(class_scope:pybullet_grpc.vec4)
 private:

  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
  double x_;
  double y_;
  double z_;
  double w_;
  mutable ::google::protobuf::internal::CachedSize _cached_size_;
  friend struct ::protobuf_pybullet_2eproto::TableStruct;
};
// -------------------------------------------------------------------

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

  transform(const transform& from);

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

  inline transform& operator=(transform&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }
  #endif
  static const ::google::protobuf::Descriptor* descriptor();
  static const transform& default_instance();

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

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

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

  inline transform* New() const final {
    return CreateMaybeMessage<transform>(NULL);
  }

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

  size_t ByteSizeLong() const final;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input) final;
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const final;
  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
      bool deterministic, ::google::protobuf::uint8* target) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(transform* other);
  private:
  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
    return NULL;
  }
  inline void* MaybeArenaPtr() const {
    return NULL;
  }
  public:

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

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

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

  // .pybullet_grpc.vec3 origin = 1;
  bool has_origin() const;
  void clear_origin();
  static const int kOriginFieldNumber = 1;
  private:
  const ::pybullet_grpc::vec3& _internal_origin() const;
  public:
  const ::pybullet_grpc::vec3& origin() const;
  ::pybullet_grpc::vec3* release_origin();
  ::pybullet_grpc::vec3* mutable_origin();
  void set_allocated_origin(::pybullet_grpc::vec3* origin);

  // .pybullet_grpc.quat4 orientation = 2;
  bool has_orientation() const;
  void clear_orientation();
  static const int kOrientationFieldNumber = 2;
  private:
  const ::pybullet_grpc::quat4& _internal_orientation() const;
  public:
  const ::pybullet_grpc::quat4& orientation() const;
  ::pybullet_grpc::quat4* release_orientation();
  ::pybullet_grpc::quat4* mutable_orientation();
  void set_allocated_orientation(::pybullet_grpc::quat4* orientation);

  // @@protoc_insertion_point(class_scope:pybullet_grpc.transform)
 private:

  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
  ::pybullet_grpc::vec3* origin_;
  ::pybullet_grpc::quat4* orientation_;
  mutable ::google::protobuf::internal::CachedSize _cached_size_;
  friend struct ::protobuf_pybullet_2eproto::TableStruct;
};
// -------------------------------------------------------------------

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

  matrix4x4(const matrix4x4& from);

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

  inline matrix4x4& operator=(matrix4x4&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }
  #endif
  static const ::google::protobuf::Descriptor* descriptor();
  static const matrix4x4& default_instance();

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

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

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

  inline matrix4x4* New() const final {
    return CreateMaybeMessage<matrix4x4>(NULL);
  }

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

  size_t ByteSizeLong() const final;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input) final;
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const final;
  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
      bool deterministic, ::google::protobuf::uint8* target) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(matrix4x4* other);
  private:
  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
    return NULL;
  }
  inline void* MaybeArenaPtr() const {
    return NULL;
  }
  public:

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

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

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

  // repeated double elems = 1;
  int elems_size() const;
  void clear_elems();
  static const int kElemsFieldNumber = 1;
  double elems(int index) const;
  void set_elems(int index, double value);
  void add_elems(double value);
  const ::google::protobuf::RepeatedField< double >&
      elems() const;
  ::google::protobuf::RepeatedField< double >*
      mutable_elems();

  // @@protoc_insertion_point(class_scope:pybullet_grpc.matrix4x4)
 private:

  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
  ::google::protobuf::RepeatedField< double > elems_;
  mutable int _elems_cached_byte_size_;
  mutable ::google::protobuf::internal::CachedSize _cached_size_;
  friend struct ::protobuf_pybullet_2eproto::TableStruct;
};
// -------------------------------------------------------------------

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

  CheckVersionCommand(const CheckVersionCommand& from);

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

  inline CheckVersionCommand& operator=(CheckVersionCommand&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }
  #endif
  static const ::google::protobuf::Descriptor* descriptor();
  static const CheckVersionCommand& default_instance();

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

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

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

  inline CheckVersionCommand* New() const final {
    return CreateMaybeMessage<CheckVersionCommand>(NULL);
  }

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

  size_t ByteSizeLong() const final;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input) final;
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const final;
  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
      bool deterministic, ::google::protobuf::uint8* target) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(CheckVersionCommand* other);
  private:
  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
    return NULL;
  }
  inline void* MaybeArenaPtr() const {
    return NULL;
  }
  public:

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

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

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

  // int32 clientVersion = 1;
  void clear_clientversion();
  static const int kClientVersionFieldNumber = 1;
  ::google::protobuf::int32 clientversion() const;
  void set_clientversion(::google::protobuf::int32 value);

  // @@protoc_insertion_point(class_scope:pybullet_grpc.CheckVersionCommand)
 private:

  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
  ::google::protobuf::int32 clientversion_;
  mutable ::google::protobuf::internal::CachedSize _cached_size_;
  friend struct ::protobuf_pybullet_2eproto::TableStruct;
};
// -------------------------------------------------------------------

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

  CheckVersionStatus(const CheckVersionStatus& from);

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

  inline CheckVersionStatus& operator=(CheckVersionStatus&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }
  #endif
  static const ::google::protobuf::Descriptor* descriptor();
  static const CheckVersionStatus& default_instance();

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

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

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

  inline CheckVersionStatus* New() const final {
    return CreateMaybeMessage<CheckVersionStatus>(NULL);
  }

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

  size_t ByteSizeLong() const final;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input) final;
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const final;
  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
      bool deterministic, ::google::protobuf::uint8* target) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(CheckVersionStatus* other);
  private:
  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
    return NULL;
  }
  inline void* MaybeArenaPtr() const {
    return NULL;
  }
  public:

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

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

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

  // int32 serverVersion = 1;
  void clear_serverversion();
  static const int kServerVersionFieldNumber = 1;
  ::google::protobuf::int32 serverversion() const;
  void set_serverversion(::google::protobuf::int32 value);

  // @@protoc_insertion_point(class_scope:pybullet_grpc.CheckVersionStatus)
 private:

  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
  ::google::protobuf::int32 serverversion_;
  mutable ::google::protobuf::internal::CachedSize _cached_size_;
  friend struct ::protobuf_pybullet_2eproto::TableStruct;
};
// -------------------------------------------------------------------

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

  TerminateServerCommand(const TerminateServerCommand& from);

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

  inline TerminateServerCommand& operator=(TerminateServerCommand&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }
  #endif
  static const ::google::protobuf::Descriptor* descriptor();
  static const TerminateServerCommand& default_instance();

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

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

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

  inline TerminateServerCommand* New() const final {
    return CreateMaybeMessage<TerminateServerCommand>(NULL);
  }

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

  size_t ByteSizeLong() const final;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input) final;
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const final;
  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
      bool deterministic, ::google::protobuf::uint8* target) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(TerminateServerCommand* other);
  private:
  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
    return NULL;
  }
  inline void* MaybeArenaPtr() const {
    return NULL;
  }
  public:

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

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

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

  // string exitReason = 1;
  void clear_exitreason();
  static const int kExitReasonFieldNumber = 1;
  const ::std::string& exitreason() const;
  void set_exitreason(const ::std::string& value);
  #if LANG_CXX11
  void set_exitreason(::std::string&& value);
  #endif
  void set_exitreason(const char* value);
  void set_exitreason(const char* value, size_t size);
  ::std::string* mutable_exitreason();
  ::std::string* release_exitreason();
  void set_allocated_exitreason(::std::string* exitreason);

  // @@protoc_insertion_point(class_scope:pybullet_grpc.TerminateServerCommand)
 private:

  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
  ::google::protobuf::internal::ArenaStringPtr exitreason_;
  mutable ::google::protobuf::internal::CachedSize _cached_size_;
  friend struct ::protobuf_pybullet_2eproto::TableStruct;
};
// -------------------------------------------------------------------

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

  StepSimulationCommand(const StepSimulationCommand& from);

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

  inline StepSimulationCommand& operator=(StepSimulationCommand&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }
  #endif
  static const ::google::protobuf::Descriptor* descriptor();
  static const StepSimulationCommand& default_instance();

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

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

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

  inline StepSimulationCommand* New() const final {
    return CreateMaybeMessage<StepSimulationCommand>(NULL);
  }

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

  size_t ByteSizeLong() const final;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input) final;
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const final;
  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
      bool deterministic, ::google::protobuf::uint8* target) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(StepSimulationCommand* other);
  private:
  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
    return NULL;
  }
  inline void* MaybeArenaPtr() const {
    return NULL;
  }
  public:

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

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

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

  // @@protoc_insertion_point(class_scope:pybullet_grpc.StepSimulationCommand)
 private:

  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
  mutable ::google::protobuf::internal::CachedSize _cached_size_;
  friend struct ::protobuf_pybullet_2eproto::TableStruct;
};
// -------------------------------------------------------------------

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

  SyncBodiesCommand(const SyncBodiesCommand& from);

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

  inline SyncBodiesCommand& operator=(SyncBodiesCommand&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }
  #endif
  static const ::google::protobuf::Descriptor* descriptor();
  static const SyncBodiesCommand& default_instance();

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

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

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

  inline SyncBodiesCommand* New() const final {
    return CreateMaybeMessage<SyncBodiesCommand>(NULL);
  }

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

  size_t ByteSizeLong() const final;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input) final;
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const final;
  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
      bool deterministic, ::google::protobuf::uint8* target) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(SyncBodiesCommand* other);
  private:
  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
    return NULL;
  }
  inline void* MaybeArenaPtr() const {
    return NULL;
  }
  public:

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

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

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

  // @@protoc_insertion_point(class_scope:pybullet_grpc.SyncBodiesCommand)
 private:

  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
  mutable ::google::protobuf::internal::CachedSize _cached_size_;
  friend struct ::protobuf_pybullet_2eproto::TableStruct;
};
// -------------------------------------------------------------------

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

  SyncBodiesStatus(const SyncBodiesStatus& from);

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

  inline SyncBodiesStatus& operator=(SyncBodiesStatus&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }
  #endif
  static const ::google::protobuf::Descriptor* descriptor();
  static const SyncBodiesStatus& default_instance();

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

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

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

  inline SyncBodiesStatus* New() const final {
    return CreateMaybeMessage<SyncBodiesStatus>(NULL);
  }

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

  size_t ByteSizeLong() const final;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input) final;
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const final;
  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
      bool deterministic, ::google::protobuf::uint8* target) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(SyncBodiesStatus* other);
  private:
  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
    return NULL;
  }
  inline void* MaybeArenaPtr() const {
    return NULL;
  }
  public:

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

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

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

  // repeated int32 bodyUniqueIds = 1;
  int bodyuniqueids_size() const;
  void clear_bodyuniqueids();
  static const int kBodyUniqueIdsFieldNumber = 1;
  ::google::protobuf::int32 bodyuniqueids(int index) const;
  void set_bodyuniqueids(int index, ::google::protobuf::int32 value);
  void add_bodyuniqueids(::google::protobuf::int32 value);
  const ::google::protobuf::RepeatedField< ::google::protobuf::int32 >&
      bodyuniqueids() const;
  ::google::protobuf::RepeatedField< ::google::protobuf::int32 >*
      mutable_bodyuniqueids();

  // repeated int32 userConstraintUniqueIds = 2;
  int userconstraintuniqueids_size() const;
  void clear_userconstraintuniqueids();
  static const int kUserConstraintUniqueIdsFieldNumber = 2;
  ::google::protobuf::int32 userconstraintuniqueids(int index) const;
  void set_userconstraintuniqueids(int index, ::google::protobuf::int32 value);
  void add_userconstraintuniqueids(::google::protobuf::int32 value);
  const ::google::protobuf::RepeatedField< ::google::protobuf::int32 >&
      userconstraintuniqueids() const;
  ::google::protobuf::RepeatedField< ::google::protobuf::int32 >*
      mutable_userconstraintuniqueids();

  // @@protoc_insertion_point(class_scope:pybullet_grpc.SyncBodiesStatus)
 private:

  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
  ::google::protobuf::RepeatedField< ::google::protobuf::int32 > bodyuniqueids_;
  mutable int _bodyuniqueids_cached_byte_size_;
  ::google::protobuf::RepeatedField< ::google::protobuf::int32 > userconstraintuniqueids_;
  mutable int _userconstraintuniqueids_cached_byte_size_;
  mutable ::google::protobuf::internal::CachedSize _cached_size_;
  friend struct ::protobuf_pybullet_2eproto::TableStruct;
};
// -------------------------------------------------------------------

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

  RequestBodyInfoCommand(const RequestBodyInfoCommand& from);

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

  inline RequestBodyInfoCommand& operator=(RequestBodyInfoCommand&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }
  #endif
  static const ::google::protobuf::Descriptor* descriptor();
  static const RequestBodyInfoCommand& default_instance();

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

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

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

  inline RequestBodyInfoCommand* New() const final {
    return CreateMaybeMessage<RequestBodyInfoCommand>(NULL);
  }

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

  size_t ByteSizeLong() const final;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input) final;
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const final;
  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
      bool deterministic, ::google::protobuf::uint8* target) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(RequestBodyInfoCommand* other);
  private:
  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
    return NULL;
  }
  inline void* MaybeArenaPtr() const {
    return NULL;
  }
  public:

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

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

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

  // int32 bodyUniqueId = 1;
  void clear_bodyuniqueid();
  static const int kBodyUniqueIdFieldNumber = 1;
  ::google::protobuf::int32 bodyuniqueid() const;
  void set_bodyuniqueid(::google::protobuf::int32 value);

  // @@protoc_insertion_point(class_scope:pybullet_grpc.RequestBodyInfoCommand)
 private:

  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
  ::google::protobuf::int32 bodyuniqueid_;
  mutable ::google::protobuf::internal::CachedSize _cached_size_;
  friend struct ::protobuf_pybullet_2eproto::TableStruct;
};
// -------------------------------------------------------------------

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

  RequestBodyInfoStatus(const RequestBodyInfoStatus& from);

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

  inline RequestBodyInfoStatus& operator=(RequestBodyInfoStatus&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }
  #endif
  static const ::google::protobuf::Descriptor* descriptor();
  static const RequestBodyInfoStatus& default_instance();

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

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

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

  inline RequestBodyInfoStatus* New() const final {
    return CreateMaybeMessage<RequestBodyInfoStatus>(NULL);
  }

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

  size_t ByteSizeLong() const final;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input) final;
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const final;
  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
      bool deterministic, ::google::protobuf::uint8* target) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(RequestBodyInfoStatus* other);
  private:
  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
    return NULL;
  }
  inline void* MaybeArenaPtr() const {
    return NULL;
  }
  public:

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

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

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

  // string bodyName = 2;
  void clear_bodyname();
  static const int kBodyNameFieldNumber = 2;
  const ::std::string& bodyname() const;
  void set_bodyname(const ::std::string& value);
  #if LANG_CXX11
  void set_bodyname(::std::string&& value);
  #endif
  void set_bodyname(const char* value);
  void set_bodyname(const char* value, size_t size);
  ::std::string* mutable_bodyname();
  ::std::string* release_bodyname();
  void set_allocated_bodyname(::std::string* bodyname);

  // int32 bodyUniqueId = 1;
  void clear_bodyuniqueid();
  static const int kBodyUniqueIdFieldNumber = 1;
  ::google::protobuf::int32 bodyuniqueid() const;
  void set_bodyuniqueid(::google::protobuf::int32 value);

  // @@protoc_insertion_point(class_scope:pybullet_grpc.RequestBodyInfoStatus)
 private:

  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
  ::google::protobuf::internal::ArenaStringPtr bodyname_;
  ::google::protobuf::int32 bodyuniqueid_;
  mutable ::google::protobuf::internal::CachedSize _cached_size_;
  friend struct ::protobuf_pybullet_2eproto::TableStruct;
};
// -------------------------------------------------------------------

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

  LoadUrdfCommand(const LoadUrdfCommand& from);

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

  inline LoadUrdfCommand& operator=(LoadUrdfCommand&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }
  #endif
  static const ::google::protobuf::Descriptor* descriptor();
  static const LoadUrdfCommand& default_instance();

  enum HasUseMultiBodyCase {
    kUseMultiBody = 4,
    HASUSEMULTIBODY_NOT_SET = 0,
  };

  enum HasUseFixedBaseCase {
    kUseFixedBase = 5,
    HASUSEFIXEDBASE_NOT_SET = 0,
  };

  enum HasGlobalScalingCase {
    kGlobalScaling = 7,
    HASGLOBALSCALING_NOT_SET = 0,
  };

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

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

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

  inline LoadUrdfCommand* New() const final {
    return CreateMaybeMessage<LoadUrdfCommand>(NULL);
  }

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

  size_t ByteSizeLong() const final;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input) final;
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const final;
  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
      bool deterministic, ::google::protobuf::uint8* target) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(LoadUrdfCommand* other);
  private:
  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
    return NULL;
  }
  inline void* MaybeArenaPtr() const {
    return NULL;
  }
  public:

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

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

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

  // string fileName = 1;
  void clear_filename();
  static const int kFileNameFieldNumber = 1;
  const ::std::string& filename() const;
  void set_filename(const ::std::string& value);
  #if LANG_CXX11
  void set_filename(::std::string&& value);
  #endif
  void set_filename(const char* value);
  void set_filename(const char* value, size_t size);
  ::std::string* mutable_filename();
  ::std::string* release_filename();
  void set_allocated_filename(::std::string* filename);

  // .pybullet_grpc.vec3 initialPosition = 2;
  bool has_initialposition() const;
  void clear_initialposition();
  static const int kInitialPositionFieldNumber = 2;
  private:
  const ::pybullet_grpc::vec3& _internal_initialposition() const;
  public:
  const ::pybullet_grpc::vec3& initialposition() const;
  ::pybullet_grpc::vec3* release_initialposition();
  ::pybullet_grpc::vec3* mutable_initialposition();
  void set_allocated_initialposition(::pybullet_grpc::vec3* initialposition);

  // .pybullet_grpc.quat4 initialOrientation = 3;
  bool has_initialorientation() const;
  void clear_initialorientation();
  static const int kInitialOrientationFieldNumber = 3;
  private:
  const ::pybullet_grpc::quat4& _internal_initialorientation() const;
  public:
  const ::pybullet_grpc::quat4& initialorientation() const;
  ::pybullet_grpc::quat4* release_initialorientation();
  ::pybullet_grpc::quat4* mutable_initialorientation();
  void set_allocated_initialorientation(::pybullet_grpc::quat4* initialorientation);

  // int32 flags = 6;
  void clear_flags();
  static const int kFlagsFieldNumber = 6;
  ::google::protobuf::int32 flags() const;
  void set_flags(::google::protobuf::int32 value);

  // int32 useMultiBody = 4;
  private:
  bool has_usemultibody() const;
  public:
  void clear_usemultibody();
  static const int kUseMultiBodyFieldNumber = 4;
  ::google::protobuf::int32 usemultibody() const;
  void set_usemultibody(::google::protobuf::int32 value);

  // bool useFixedBase = 5;
  private:
  bool has_usefixedbase() const;
  public:
  void clear_usefixedbase();
  static const int kUseFixedBaseFieldNumber = 5;
  bool usefixedbase() const;
  void set_usefixedbase(bool value);

  // double globalScaling = 7;
  private:
  bool has_globalscaling() const;
  public:
  void clear_globalscaling();
  static const int kGlobalScalingFieldNumber = 7;
  double globalscaling() const;
  void set_globalscaling(double value);

  void clear_hasUseMultiBody();
  HasUseMultiBodyCase hasUseMultiBody_case() const;
  void clear_hasUseFixedBase();
  HasUseFixedBaseCase hasUseFixedBase_case() const;
  void clear_hasGlobalScaling();
  HasGlobalScalingCase hasGlobalScaling_case() const;
  // @@protoc_insertion_point(class_scope:pybullet_grpc.LoadUrdfCommand)
 private:
  void set_has_usemultibody();
  void set_has_usefixedbase();
  void set_has_globalscaling();

  inline bool has_hasUseMultiBody() const;
  inline void clear_has_hasUseMultiBody();

  inline bool has_hasUseFixedBase() const;
  inline void clear_has_hasUseFixedBase();

  inline bool has_hasGlobalScaling() const;
  inline void clear_has_hasGlobalScaling();

  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
  ::google::protobuf::internal::ArenaStringPtr filename_;
  ::pybullet_grpc::vec3* initialposition_;
  ::pybullet_grpc::quat4* initialorientation_;
  ::google::protobuf::int32 flags_;
  union HasUseMultiBodyUnion {
    HasUseMultiBodyUnion() {}
    ::google::protobuf::int32 usemultibody_;
  } hasUseMultiBody_;
  union HasUseFixedBaseUnion {
    HasUseFixedBaseUnion() {}
    bool usefixedbase_;
  } hasUseFixedBase_;
  union HasGlobalScalingUnion {
    HasGlobalScalingUnion() {}
    double globalscaling_;
  } hasGlobalScaling_;
  mutable ::google::protobuf::internal::CachedSize _cached_size_;
  ::google::protobuf::uint32 _oneof_case_[3];

  friend struct ::protobuf_pybullet_2eproto::TableStruct;
};
// -------------------------------------------------------------------

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

  LoadUrdfStatus(const LoadUrdfStatus& from);

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

  inline LoadUrdfStatus& operator=(LoadUrdfStatus&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }
  #endif
  static const ::google::protobuf::Descriptor* descriptor();
  static const LoadUrdfStatus& default_instance();

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

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

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

  inline LoadUrdfStatus* New() const final {
    return CreateMaybeMessage<LoadUrdfStatus>(NULL);
  }

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

  size_t ByteSizeLong() const final;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input) final;
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const final;
  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
      bool deterministic, ::google::protobuf::uint8* target) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(LoadUrdfStatus* other);
  private:
  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
    return NULL;
  }
  inline void* MaybeArenaPtr() const {
    return NULL;
  }
  public:

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

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

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

  // string bodyName = 2;
  void clear_bodyname();
  static const int kBodyNameFieldNumber = 2;
  const ::std::string& bodyname() const;
  void set_bodyname(const ::std::string& value);
  #if LANG_CXX11
  void set_bodyname(::std::string&& value);
  #endif
  void set_bodyname(const char* value);
  void set_bodyname(const char* value, size_t size);
  ::std::string* mutable_bodyname();
  ::std::string* release_bodyname();
  void set_allocated_bodyname(::std::string* bodyname);

  // string fileName = 3;
  void clear_filename();
  static const int kFileNameFieldNumber = 3;
  const ::std::string& filename() const;
  void set_filename(const ::std::string& value);
  #if LANG_CXX11
  void set_filename(::std::string&& value);
  #endif
  void set_filename(const char* value);
  void set_filename(const char* value, size_t size);
  ::std::string* mutable_filename();
  ::std::string* release_filename();
  void set_allocated_filename(::std::string* filename);

  // int32 bodyUniqueId = 1;
  void clear_bodyuniqueid();
  static const int kBodyUniqueIdFieldNumber = 1;
  ::google::protobuf::int32 bodyuniqueid() const;
  void set_bodyuniqueid(::google::protobuf::int32 value);

  // @@protoc_insertion_point(class_scope:pybullet_grpc.LoadUrdfStatus)
 private:

  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
  ::google::protobuf::internal::ArenaStringPtr bodyname_;
  ::google::protobuf::internal::ArenaStringPtr filename_;
  ::google::protobuf::int32 bodyuniqueid_;
  mutable ::google::protobuf::internal::CachedSize _cached_size_;
  friend struct ::protobuf_pybullet_2eproto::TableStruct;
};
// -------------------------------------------------------------------

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

  LoadSdfCommand(const LoadSdfCommand& from);

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

  inline LoadSdfCommand& operator=(LoadSdfCommand&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }
  #endif
  static const ::google::protobuf::Descriptor* descriptor();
  static const LoadSdfCommand& default_instance();

  enum HasUseMultiBodyCase {
    kUseMultiBody = 2,
    HASUSEMULTIBODY_NOT_SET = 0,
  };

  enum HasGlobalScalingCase {
    kGlobalScaling = 3,
    HASGLOBALSCALING_NOT_SET = 0,
  };

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

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

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

  inline LoadSdfCommand* New() const final {
    return CreateMaybeMessage<LoadSdfCommand>(NULL);
  }

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

  size_t ByteSizeLong() const final;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input) final;
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const final;
  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
      bool deterministic, ::google::protobuf::uint8* target) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(LoadSdfCommand* other);
  private:
  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
    return NULL;
  }
  inline void* MaybeArenaPtr() const {
    return NULL;
  }
  public:

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

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

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

  // string fileName = 1;
  void clear_filename();
  static const int kFileNameFieldNumber = 1;
  const ::std::string& filename() const;
  void set_filename(const ::std::string& value);
  #if LANG_CXX11
  void set_filename(::std::string&& value);
  #endif
  void set_filename(const char* value);
  void set_filename(const char* value, size_t size);
  ::std::string* mutable_filename();
  ::std::string* release_filename();
  void set_allocated_filename(::std::string* filename);

  // int32 useMultiBody = 2;
  private:
  bool has_usemultibody() const;
  public:
  void clear_usemultibody();
  static const int kUseMultiBodyFieldNumber = 2;
  ::google::protobuf::int32 usemultibody() const;
  void set_usemultibody(::google::protobuf::int32 value);

  // double globalScaling = 3;
  private:
  bool has_globalscaling() const;
  public:
  void clear_globalscaling();
  static const int kGlobalScalingFieldNumber = 3;
  double globalscaling() const;
  void set_globalscaling(double value);

  void clear_hasUseMultiBody();
  HasUseMultiBodyCase hasUseMultiBody_case() const;
  void clear_hasGlobalScaling();
  HasGlobalScalingCase hasGlobalScaling_case() const;
  // @@protoc_insertion_point(class_scope:pybullet_grpc.LoadSdfCommand)
 private:
  void set_has_usemultibody();
  void set_has_globalscaling();

  inline bool has_hasUseMultiBody() const;
  inline void clear_has_hasUseMultiBody();

  inline bool has_hasGlobalScaling() const;
  inline void clear_has_hasGlobalScaling();

  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
  ::google::protobuf::internal::ArenaStringPtr filename_;
  union HasUseMultiBodyUnion {
    HasUseMultiBodyUnion() {}
    ::google::protobuf::int32 usemultibody_;
  } hasUseMultiBody_;
  union HasGlobalScalingUnion {
    HasGlobalScalingUnion() {}
    double globalscaling_;
  } hasGlobalScaling_;
  mutable ::google::protobuf::internal::CachedSize _cached_size_;
  ::google::protobuf::uint32 _oneof_case_[2];

  friend struct ::protobuf_pybullet_2eproto::TableStruct;
};
// -------------------------------------------------------------------

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

  SdfLoadedStatus(const SdfLoadedStatus& from);

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

  inline SdfLoadedStatus& operator=(SdfLoadedStatus&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }
  #endif
  static const ::google::protobuf::Descriptor* descriptor();
  static const SdfLoadedStatus& default_instance();

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

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

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

  inline SdfLoadedStatus* New() const final {
    return CreateMaybeMessage<SdfLoadedStatus>(NULL);
  }

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

  size_t ByteSizeLong() const final;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input) final;
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const final;
  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
      bool deterministic, ::google::protobuf::uint8* target) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(SdfLoadedStatus* other);
  private:
  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
    return NULL;
  }
  inline void* MaybeArenaPtr() const {
    return NULL;
  }
  public:

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

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

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

  // repeated int32 bodyUniqueIds = 2;
  int bodyuniqueids_size() const;
  void clear_bodyuniqueids();
  static const int kBodyUniqueIdsFieldNumber = 2;
  ::google::protobuf::int32 bodyuniqueids(int index) const;
  void set_bodyuniqueids(int index, ::google::protobuf::int32 value);
  void add_bodyuniqueids(::google::protobuf::int32 value);
  const ::google::protobuf::RepeatedField< ::google::protobuf::int32 >&
      bodyuniqueids() const;
  ::google::protobuf::RepeatedField< ::google::protobuf::int32 >*
      mutable_bodyuniqueids();

  // @@protoc_insertion_point(class_scope:pybullet_grpc.SdfLoadedStatus)
 private:

  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
  ::google::protobuf::RepeatedField< ::google::protobuf::int32 > bodyuniqueids_;
  mutable int _bodyuniqueids_cached_byte_size_;
  mutable ::google::protobuf::internal::CachedSize _cached_size_;
  friend struct ::protobuf_pybullet_2eproto::TableStruct;
};
// -------------------------------------------------------------------

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

  LoadMjcfCommand(const LoadMjcfCommand& from);

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

  inline LoadMjcfCommand& operator=(LoadMjcfCommand&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }
  #endif
  static const ::google::protobuf::Descriptor* descriptor();
  static const LoadMjcfCommand& default_instance();

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

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

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

  inline LoadMjcfCommand* New() const final {
    return CreateMaybeMessage<LoadMjcfCommand>(NULL);
  }

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

  size_t ByteSizeLong() const final;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input) final;
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const final;
  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
      bool deterministic, ::google::protobuf::uint8* target) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(LoadMjcfCommand* other);
  private:
  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
    return NULL;
  }
  inline void* MaybeArenaPtr() const {
    return NULL;
  }
  public:

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

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

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

  // string fileName = 1;
  void clear_filename();
  static const int kFileNameFieldNumber = 1;
  const ::std::string& filename() const;
  void set_filename(const ::std::string& value);
  #if LANG_CXX11
  void set_filename(::std::string&& value);
  #endif
  void set_filename(const char* value);
  void set_filename(const char* value, size_t size);
  ::std::string* mutable_filename();
  ::std::string* release_filename();
  void set_allocated_filename(::std::string* filename);

  // int32 flags = 2;
  void clear_flags();
  static const int kFlagsFieldNumber = 2;
  ::google::protobuf::int32 flags() const;
  void set_flags(::google::protobuf::int32 value);

  // @@protoc_insertion_point(class_scope:pybullet_grpc.LoadMjcfCommand)
 private:

  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
  ::google::protobuf::internal::ArenaStringPtr filename_;
  ::google::protobuf::int32 flags_;
  mutable ::google::protobuf::internal::CachedSize _cached_size_;
  friend struct ::protobuf_pybullet_2eproto::TableStruct;
};
// -------------------------------------------------------------------

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

  MjcfLoadedStatus(const MjcfLoadedStatus& from);

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

  inline MjcfLoadedStatus& operator=(MjcfLoadedStatus&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }
  #endif
  static const ::google::protobuf::Descriptor* descriptor();
  static const MjcfLoadedStatus& default_instance();

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

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

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

  inline MjcfLoadedStatus* New() const final {
    return CreateMaybeMessage<MjcfLoadedStatus>(NULL);
  }

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

  size_t ByteSizeLong() const final;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input) final;
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const final;
  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
      bool deterministic, ::google::protobuf::uint8* target) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(MjcfLoadedStatus* other);
  private:
  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
    return NULL;
  }
  inline void* MaybeArenaPtr() const {
    return NULL;
  }
  public:

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

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

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

  // repeated int32 bodyUniqueIds = 2;
  int bodyuniqueids_size() const;
  void clear_bodyuniqueids();
  static const int kBodyUniqueIdsFieldNumber = 2;
  ::google::protobuf::int32 bodyuniqueids(int index) const;
  void set_bodyuniqueids(int index, ::google::protobuf::int32 value);
  void add_bodyuniqueids(::google::protobuf::int32 value);
  const ::google::protobuf::RepeatedField< ::google::protobuf::int32 >&
      bodyuniqueids() const;
  ::google::protobuf::RepeatedField< ::google::protobuf::int32 >*
      mutable_bodyuniqueids();

  // @@protoc_insertion_point(class_scope:pybullet_grpc.MjcfLoadedStatus)
 private:

  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
  ::google::protobuf::RepeatedField< ::google::protobuf::int32 > bodyuniqueids_;
  mutable int _bodyuniqueids_cached_byte_size_;
  mutable ::google::protobuf::internal::CachedSize _cached_size_;
  friend struct ::protobuf_pybullet_2eproto::TableStruct;
};
// -------------------------------------------------------------------

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

  ChangeDynamicsCommand(const ChangeDynamicsCommand& from);

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

  inline ChangeDynamicsCommand& operator=(ChangeDynamicsCommand&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }
  #endif
  static const ::google::protobuf::Descriptor* descriptor();
  static const ChangeDynamicsCommand& default_instance();

  enum HasMassCase {
    kMass = 3,
    HASMASS_NOT_SET = 0,
  };

  enum HasLateralFrictionCase {
    kLateralFriction = 5,
    HASLATERALFRICTION_NOT_SET = 0,
  };

  enum HasSpinningFrictionCase {
    kSpinningFriction = 6,
    HASSPINNINGFRICTION_NOT_SET = 0,
  };

  enum HasRollingFrictionCase {
    kRollingFriction = 7,
    HASROLLINGFRICTION_NOT_SET = 0,
  };

  enum HasRestitutionCase {
    kRestitution = 8,
    HASRESTITUTION_NOT_SET = 0,
  };

  enum HaslinearDampingCase {
    kLinearDamping = 9,
    HASLINEARDAMPING_NOT_SET = 0,
  };

  enum HasangularDampingCase {
    kAngularDamping = 10,
    HASANGULARDAMPING_NOT_SET = 0,
  };

  enum HasContactStiffnessCase {
    kContactStiffness = 11,
    HASCONTACTSTIFFNESS_NOT_SET = 0,
  };

  enum HasContactDampingCase {
    kContactDamping = 12,
    HASCONTACTDAMPING_NOT_SET = 0,
  };

  enum HasLocalInertiaDiagonalCase {
    kLocalInertiaDiagonal = 13,
    HASLOCALINERTIADIAGONAL_NOT_SET = 0,
  };

  enum HasFrictionAnchorCase {
    kFrictionAnchor = 14,
    HASFRICTIONANCHOR_NOT_SET = 0,
  };

  enum HasccdSweptSphereRadiusCase {
    kCcdSweptSphereRadius = 15,
    HASCCDSWEPTSPHERERADIUS_NOT_SET = 0,
  };

  enum HasContactProcessingThresholdCase {
    kContactProcessingThreshold = 16,
    HASCONTACTPROCESSINGTHRESHOLD_NOT_SET = 0,
  };

  enum HasActivationStateCase {
    kActivationState = 17,
    HASACTIVATIONSTATE_NOT_SET = 0,
  };

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

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

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

  inline ChangeDynamicsCommand* New() const final {
    return CreateMaybeMessage<ChangeDynamicsCommand>(NULL);
  }

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

  size_t ByteSizeLong() const final;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input) final;
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const final;
  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
      bool deterministic, ::google::protobuf::uint8* target) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(ChangeDynamicsCommand* other);
  private:
  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
    return NULL;
  }
  inline void* MaybeArenaPtr() const {
    return NULL;
  }
  public:

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

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

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

  // int32 bodyUniqueId = 1;
  void clear_bodyuniqueid();
  static const int kBodyUniqueIdFieldNumber = 1;
  ::google::protobuf::int32 bodyuniqueid() const;
  void set_bodyuniqueid(::google::protobuf::int32 value);

  // int32 linkIndex = 2;
  void clear_linkindex();
  static const int kLinkIndexFieldNumber = 2;
  ::google::protobuf::int32 linkindex() const;
  void set_linkindex(::google::protobuf::int32 value);

  // double mass = 3;
  private:
  bool has_mass() const;
  public:
  void clear_mass();
  static const int kMassFieldNumber = 3;
  double mass() const;
  void set_mass(double value);

  // double lateralFriction = 5;
  private:
  bool has_lateralfriction() const;
  public:
  void clear_lateralfriction();
  static const int kLateralFrictionFieldNumber = 5;
  double lateralfriction() const;
  void set_lateralfriction(double value);

  // double spinningFriction = 6;
  private:
  bool has_spinningfriction() const;
  public:
  void clear_spinningfriction();
  static const int kSpinningFrictionFieldNumber = 6;
  double spinningfriction() const;
  void set_spinningfriction(double value);

  // double rollingFriction = 7;
  private:
  bool has_rollingfriction() const;
  public:
  void clear_rollingfriction();
  static const int kRollingFrictionFieldNumber = 7;
  double rollingfriction() const;
  void set_rollingfriction(double value);

  // double restitution = 8;
  private:
  bool has_restitution() const;
  public:
  void clear_restitution();
  static const int kRestitutionFieldNumber = 8;
  double restitution() const;
  void set_restitution(double value);

  // double linearDamping = 9;
  private:
  bool has_lineardamping() const;
  public:
  void clear_lineardamping();
  static const int kLinearDampingFieldNumber = 9;
  double lineardamping() const;
  void set_lineardamping(double value);

  // double angularDamping = 10;
  private:
  bool has_angulardamping() const;
  public:
  void clear_angulardamping();
  static const int kAngularDampingFieldNumber = 10;
  double angulardamping() const;
  void set_angulardamping(double value);

  // double contactStiffness = 11;
  private:
  bool has_contactstiffness() const;
  public:
  void clear_contactstiffness();
  static const int kContactStiffnessFieldNumber = 11;
  double contactstiffness() const;
  void set_contactstiffness(double value);

  // double contactDamping = 12;
  private:
  bool has_contactdamping() const;
  public:
  void clear_contactdamping();
  static const int kContactDampingFieldNumber = 12;
  double contactdamping() const;
  void set_contactdamping(double value);

  // .pybullet_grpc.vec3 localInertiaDiagonal = 13;
  bool has_localinertiadiagonal() const;
  void clear_localinertiadiagonal();
  static const int kLocalInertiaDiagonalFieldNumber = 13;
  private:
  const ::pybullet_grpc::vec3& _internal_localinertiadiagonal() const;
  public:
  const ::pybullet_grpc::vec3& localinertiadiagonal() const;
  ::pybullet_grpc::vec3* release_localinertiadiagonal();
  ::pybullet_grpc::vec3* mutable_localinertiadiagonal();
  void set_allocated_localinertiadiagonal(::pybullet_grpc::vec3* localinertiadiagonal);

  // int32 frictionAnchor = 14;
  private:
  bool has_frictionanchor() const;
  public:
  void clear_frictionanchor();
  static const int kFrictionAnchorFieldNumber = 14;
  ::google::protobuf::int32 frictionanchor() const;
  void set_frictionanchor(::google::protobuf::int32 value);

  // double ccdSweptSphereRadius = 15;
  private:
  bool has_ccdsweptsphereradius() const;
  public:
  void clear_ccdsweptsphereradius();
  static const int kCcdSweptSphereRadiusFieldNumber = 15;
  double ccdsweptsphereradius() const;
  void set_ccdsweptsphereradius(double value);

  // double contactProcessingThreshold = 16;
  private:
  bool has_contactprocessingthreshold() const;
  public:
  void clear_contactprocessingthreshold();
  static const int kContactProcessingThresholdFieldNumber = 16;
  double contactprocessingthreshold() const;
  void set_contactprocessingthreshold(double value);

  // int32 activationState = 17;
  private:
  bool has_activationstate() const;
  public:
  void clear_activationstate();
  static const int kActivationStateFieldNumber = 17;
  ::google::protobuf::int32 activationstate() const;
  void set_activationstate(::google::protobuf::int32 value);

  void clear_hasMass();
  HasMassCase hasMass_case() const;
  void clear_hasLateralFriction();
  HasLateralFrictionCase hasLateralFriction_case() const;
  void clear_hasSpinningFriction();
  HasSpinningFrictionCase hasSpinningFriction_case() const;
  void clear_hasRollingFriction();
  HasRollingFrictionCase hasRollingFriction_case() const;
  void clear_hasRestitution();
  HasRestitutionCase hasRestitution_case() const;
  void clear_haslinearDamping();
  HaslinearDampingCase haslinearDamping_case() const;
  void clear_hasangularDamping();
  HasangularDampingCase hasangularDamping_case() const;
  void clear_hasContactStiffness();
  HasContactStiffnessCase hasContactStiffness_case() const;
  void clear_hasContactDamping();
  HasContactDampingCase hasContactDamping_case() const;
  void clear_hasLocalInertiaDiagonal();
  HasLocalInertiaDiagonalCase hasLocalInertiaDiagonal_case() const;
  void clear_hasFrictionAnchor();
  HasFrictionAnchorCase hasFrictionAnchor_case() const;
  void clear_hasccdSweptSphereRadius();
  HasccdSweptSphereRadiusCase hasccdSweptSphereRadius_case() const;
  void clear_hasContactProcessingThreshold();
  HasContactProcessingThresholdCase hasContactProcessingThreshold_case() const;
  void clear_hasActivationState();
  HasActivationStateCase hasActivationState_case() const;
  // @@protoc_insertion_point(class_scope:pybullet_grpc.ChangeDynamicsCommand)
 private:
  void set_has_mass();
  void set_has_lateralfriction();
  void set_has_spinningfriction();
  void set_has_rollingfriction();
  void set_has_restitution();
  void set_has_lineardamping();
  void set_has_angulardamping();
  void set_has_contactstiffness();
  void set_has_contactdamping();
  void set_has_localinertiadiagonal();
  void set_has_frictionanchor();
  void set_has_ccdsweptsphereradius();
  void set_has_contactprocessingthreshold();
  void set_has_activationstate();

  inline bool has_hasMass() const;
  inline void clear_has_hasMass();

  inline bool has_hasLateralFriction() const;
  inline void clear_has_hasLateralFriction();

  inline bool has_hasSpinningFriction() const;
  inline void clear_has_hasSpinningFriction();

  inline bool has_hasRollingFriction() const;
  inline void clear_has_hasRollingFriction();

  inline bool has_hasRestitution() const;
  inline void clear_has_hasRestitution();

  inline bool has_haslinearDamping() const;
  inline void clear_has_haslinearDamping();

  inline bool has_hasangularDamping() const;
  inline void clear_has_hasangularDamping();

  inline bool has_hasContactStiffness() const;
  inline void clear_has_hasContactStiffness();

  inline bool has_hasContactDamping() const;
  inline void clear_has_hasContactDamping();

  inline bool has_hasLocalInertiaDiagonal() const;
  inline void clear_has_hasLocalInertiaDiagonal();

  inline bool has_hasFrictionAnchor() const;
  inline void clear_has_hasFrictionAnchor();

  inline bool has_hasccdSweptSphereRadius() const;
  inline void clear_has_hasccdSweptSphereRadius();

  inline bool has_hasContactProcessingThreshold() const;
  inline void clear_has_hasContactProcessingThreshold();

  inline bool has_hasActivationState() const;
  inline void clear_has_hasActivationState();

  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
  ::google::protobuf::int32 bodyuniqueid_;
  ::google::protobuf::int32 linkindex_;
  union HasMassUnion {
    HasMassUnion() {}
    double mass_;
  } hasMass_;
  union HasLateralFrictionUnion {
    HasLateralFrictionUnion() {}
    double lateralfriction_;
  } hasLateralFriction_;
  union HasSpinningFrictionUnion {
    HasSpinningFrictionUnion() {}
    double spinningfriction_;
  } hasSpinningFriction_;
  union HasRollingFrictionUnion {
    HasRollingFrictionUnion() {}
    double rollingfriction_;
  } hasRollingFriction_;
  union HasRestitutionUnion {
    HasRestitutionUnion() {}
    double restitution_;
  } hasRestitution_;
  union HaslinearDampingUnion {
    HaslinearDampingUnion() {}
    double lineardamping_;
  } haslinearDamping_;
  union HasangularDampingUnion {
    HasangularDampingUnion() {}
    double angulardamping_;
  } hasangularDamping_;
  union HasContactStiffnessUnion {
    HasContactStiffnessUnion() {}
    double contactstiffness_;
  } hasContactStiffness_;
  union HasContactDampingUnion {
    HasContactDampingUnion() {}
    double contactdamping_;
  } hasContactDamping_;
  union HasLocalInertiaDiagonalUnion {
    HasLocalInertiaDiagonalUnion() {}
    ::pybullet_grpc::vec3* localinertiadiagonal_;
  } hasLocalInertiaDiagonal_;
  union HasFrictionAnchorUnion {
    HasFrictionAnchorUnion() {}
    ::google::protobuf::int32 frictionanchor_;
  } hasFrictionAnchor_;
  union HasccdSweptSphereRadiusUnion {
    HasccdSweptSphereRadiusUnion() {}
    double ccdsweptsphereradius_;
  } hasccdSweptSphereRadius_;
  union HasContactProcessingThresholdUnion {
    HasContactProcessingThresholdUnion() {}
    double contactprocessingthreshold_;
  } hasContactProcessingThreshold_;
  union HasActivationStateUnion {
    HasActivationStateUnion() {}
    ::google::protobuf::int32 activationstate_;
  } hasActivationState_;
  mutable ::google::protobuf::internal::CachedSize _cached_size_;
  ::google::protobuf::uint32 _oneof_case_[14];

  friend struct ::protobuf_pybullet_2eproto::TableStruct;
};
// -------------------------------------------------------------------

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

  GetDynamicsCommand(const GetDynamicsCommand& from);

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

  inline GetDynamicsCommand& operator=(GetDynamicsCommand&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }
  #endif
  static const ::google::protobuf::Descriptor* descriptor();
  static const GetDynamicsCommand& default_instance();

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

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

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

  inline GetDynamicsCommand* New() const final {
    return CreateMaybeMessage<GetDynamicsCommand>(NULL);
  }

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

  size_t ByteSizeLong() const final;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input) final;
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const final;
  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
      bool deterministic, ::google::protobuf::uint8* target) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(GetDynamicsCommand* other);
  private:
  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
    return NULL;
  }
  inline void* MaybeArenaPtr() const {
    return NULL;
  }
  public:

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

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

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

  // int32 bodyUniqueId = 1;
  void clear_bodyuniqueid();
  static const int kBodyUniqueIdFieldNumber = 1;
  ::google::protobuf::int32 bodyuniqueid() const;
  void set_bodyuniqueid(::google::protobuf::int32 value);

  // int32 linkIndex = 2;
  void clear_linkindex();
  static const int kLinkIndexFieldNumber = 2;
  ::google::protobuf::int32 linkindex() const;
  void set_linkindex(::google::protobuf::int32 value);

  // @@protoc_insertion_point(class_scope:pybullet_grpc.GetDynamicsCommand)
 private:

  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
  ::google::protobuf::int32 bodyuniqueid_;
  ::google::protobuf::int32 linkindex_;
  mutable ::google::protobuf::internal::CachedSize _cached_size_;
  friend struct ::protobuf_pybullet_2eproto::TableStruct;
};
// -------------------------------------------------------------------

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

  GetDynamicsStatus(const GetDynamicsStatus& from);

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

  inline GetDynamicsStatus& operator=(GetDynamicsStatus&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }
  #endif
  static const ::google::protobuf::Descriptor* descriptor();
  static const GetDynamicsStatus& default_instance();

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

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

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

  inline GetDynamicsStatus* New() const final {
    return CreateMaybeMessage<GetDynamicsStatus>(NULL);
  }

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

  size_t ByteSizeLong() const final;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input) final;
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const final;
  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
      bool deterministic, ::google::protobuf::uint8* target) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(GetDynamicsStatus* other);
  private:
  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
    return NULL;
  }
  inline void* MaybeArenaPtr() const {
    return NULL;
  }
  public:

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

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

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

  // .pybullet_grpc.vec3 localInertiaDiagonal = 13;
  bool has_localinertiadiagonal() const;
  void clear_localinertiadiagonal();
  static const int kLocalInertiaDiagonalFieldNumber = 13;
  private:
  const ::pybullet_grpc::vec3& _internal_localinertiadiagonal() const;
  public:
  const ::pybullet_grpc::vec3& localinertiadiagonal() const;
  ::pybullet_grpc::vec3* release_localinertiadiagonal();
  ::pybullet_grpc::vec3* mutable_localinertiadiagonal();
  void set_allocated_localinertiadiagonal(::pybullet_grpc::vec3* localinertiadiagonal);

  // double mass = 3;
  void clear_mass();
  static const int kMassFieldNumber = 3;
  double mass() const;
  void set_mass(double value);

  // double lateralFriction = 5;
  void clear_lateralfriction();
  static const int kLateralFrictionFieldNumber = 5;
  double lateralfriction() const;
  void set_lateralfriction(double value);

  // double spinningFriction = 6;
  void clear_spinningfriction();
  static const int kSpinningFrictionFieldNumber = 6;
  double spinningfriction() const;
  void set_spinningfriction(double value);

  // double rollingFriction = 7;
  void clear_rollingfriction();
  static const int kRollingFrictionFieldNumber = 7;
  double rollingfriction() const;
  void set_rollingfriction(double value);

  // double restitution = 8;
  void clear_restitution();
  static const int kRestitutionFieldNumber = 8;
  double restitution() const;
  void set_restitution(double value);

  // double linearDamping = 9;
  void clear_lineardamping();
  static const int kLinearDampingFieldNumber = 9;
  double lineardamping() const;
  void set_lineardamping(double value);

  // double angularDamping = 10;
  void clear_angulardamping();
  static const int kAngularDampingFieldNumber = 10;
  double angulardamping() const;
  void set_angulardamping(double value);

  // double contactStiffness = 11;
  void clear_contactstiffness();
  static const int kContactStiffnessFieldNumber = 11;
  double contactstiffness() const;
  void set_contactstiffness(double value);

  // double contactDamping = 12;
  void clear_contactdamping();
  static const int kContactDampingFieldNumber = 12;
  double contactdamping() const;
  void set_contactdamping(double value);

  // double ccdSweptSphereRadius = 15;
  void clear_ccdsweptsphereradius();
  static const int kCcdSweptSphereRadiusFieldNumber = 15;
  double ccdsweptsphereradius() const;
  void set_ccdsweptsphereradius(double value);

  // int32 frictionAnchor = 14;
  void clear_frictionanchor();
  static const int kFrictionAnchorFieldNumber = 14;
  ::google::protobuf::int32 frictionanchor() const;
  void set_frictionanchor(::google::protobuf::int32 value);

  // int32 activationState = 17;
  void clear_activationstate();
  static const int kActivationStateFieldNumber = 17;
  ::google::protobuf::int32 activationstate() const;
  void set_activationstate(::google::protobuf::int32 value);

  // double contactProcessingThreshold = 16;
  void clear_contactprocessingthreshold();
  static const int kContactProcessingThresholdFieldNumber = 16;
  double contactprocessingthreshold() const;
  void set_contactprocessingthreshold(double value);

  // @@protoc_insertion_point(class_scope:pybullet_grpc.GetDynamicsStatus)
 private:

  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
  ::pybullet_grpc::vec3* localinertiadiagonal_;
  double mass_;
  double lateralfriction_;
  double spinningfriction_;
  double rollingfriction_;
  double restitution_;
  double lineardamping_;
  double angulardamping_;
  double contactstiffness_;
  double contactdamping_;
  double ccdsweptsphereradius_;
  ::google::protobuf::int32 frictionanchor_;
  ::google::protobuf::int32 activationstate_;
  double contactprocessingthreshold_;
  mutable ::google::protobuf::internal::CachedSize _cached_size_;
  friend struct ::protobuf_pybullet_2eproto::TableStruct;
};
// -------------------------------------------------------------------

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

  InitPoseCommand(const InitPoseCommand& from);

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

  inline InitPoseCommand& operator=(InitPoseCommand&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }
  #endif
  static const ::google::protobuf::Descriptor* descriptor();
  static const InitPoseCommand& default_instance();

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

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

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

  inline InitPoseCommand* New() const final {
    return CreateMaybeMessage<InitPoseCommand>(NULL);
  }

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

  size_t ByteSizeLong() const final;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input) final;
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const final;
  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
      bool deterministic, ::google::protobuf::uint8* target) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(InitPoseCommand* other);
  private:
  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
    return NULL;
  }
  inline void* MaybeArenaPtr() const {
    return NULL;
  }
  public:

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

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

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

  // repeated int32 hasInitialStateQ = 3;
  int hasinitialstateq_size() const;
  void clear_hasinitialstateq();
  static const int kHasInitialStateQFieldNumber = 3;
  ::google::protobuf::int32 hasinitialstateq(int index) const;
  void set_hasinitialstateq(int index, ::google::protobuf::int32 value);
  void add_hasinitialstateq(::google::protobuf::int32 value);
  const ::google::protobuf::RepeatedField< ::google::protobuf::int32 >&
      hasinitialstateq() const;
  ::google::protobuf::RepeatedField< ::google::protobuf::int32 >*
      mutable_hasinitialstateq();

  // repeated double initialStateQ = 4;
  int initialstateq_size() const;
  void clear_initialstateq();
  static const int kInitialStateQFieldNumber = 4;
  double initialstateq(int index) const;
  void set_initialstateq(int index, double value);
  void add_initialstateq(double value);
  const ::google::protobuf::RepeatedField< double >&
      initialstateq() const;
  ::google::protobuf::RepeatedField< double >*
      mutable_initialstateq();

  // repeated int32 hasInitialStateQdot = 5;
  int hasinitialstateqdot_size() const;
  void clear_hasinitialstateqdot();
  static const int kHasInitialStateQdotFieldNumber = 5;
  ::google::protobuf::int32 hasinitialstateqdot(int index) const;
  void set_hasinitialstateqdot(int index, ::google::protobuf::int32 value);
  void add_hasinitialstateqdot(::google::protobuf::int32 value);
  const ::google::protobuf::RepeatedField< ::google::protobuf::int32 >&
      hasinitialstateqdot() const;
  ::google::protobuf::RepeatedField< ::google::protobuf::int32 >*
      mutable_hasinitialstateqdot();

  // repeated double initialStateQdot = 6;
  int initialstateqdot_size() const;
  void clear_initialstateqdot();
  static const int kInitialStateQdotFieldNumber = 6;
  double initialstateqdot(int index) const;
  void set_initialstateqdot(int index, double value);
  void add_initialstateqdot(double value);
  const ::google::protobuf::RepeatedField< double >&
      initialstateqdot() const;
  ::google::protobuf::RepeatedField< double >*
      mutable_initialstateqdot();

  // int32 bodyUniqueId = 1;
  void clear_bodyuniqueid();
  static const int kBodyUniqueIdFieldNumber = 1;
  ::google::protobuf::int32 bodyuniqueid() const;
  void set_bodyuniqueid(::google::protobuf::int32 value);

  // int32 updateflags = 2;
  void clear_updateflags();
  static const int kUpdateflagsFieldNumber = 2;
  ::google::protobuf::int32 updateflags() const;
  void set_updateflags(::google::protobuf::int32 value);

  // @@protoc_insertion_point(class_scope:pybullet_grpc.InitPoseCommand)
 private:

  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
  ::google::protobuf::RepeatedField< ::google::protobuf::int32 > hasinitialstateq_;
  mutable int _hasinitialstateq_cached_byte_size_;
  ::google::protobuf::RepeatedField< double > initialstateq_;
  mutable int _initialstateq_cached_byte_size_;
  ::google::protobuf::RepeatedField< ::google::protobuf::int32 > hasinitialstateqdot_;
  mutable int _hasinitialstateqdot_cached_byte_size_;
  ::google::protobuf::RepeatedField< double > initialstateqdot_;
  mutable int _initialstateqdot_cached_byte_size_;
  ::google::protobuf::int32 bodyuniqueid_;
  ::google::protobuf::int32 updateflags_;
  mutable ::google::protobuf::internal::CachedSize _cached_size_;
  friend struct ::protobuf_pybullet_2eproto::TableStruct;
};
// -------------------------------------------------------------------

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

  RequestActualStateCommand(const RequestActualStateCommand& from);

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

  inline RequestActualStateCommand& operator=(RequestActualStateCommand&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }
  #endif
  static const ::google::protobuf::Descriptor* descriptor();
  static const RequestActualStateCommand& default_instance();

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

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

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

  inline RequestActualStateCommand* New() const final {
    return CreateMaybeMessage<RequestActualStateCommand>(NULL);
  }

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

  size_t ByteSizeLong() const final;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input) final;
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const final;
  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
      bool deterministic, ::google::protobuf::uint8* target) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(RequestActualStateCommand* other);
  private:
  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
    return NULL;
  }
  inline void* MaybeArenaPtr() const {
    return NULL;
  }
  public:

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

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

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

  // int32 bodyUniqueId = 1;
  void clear_bodyuniqueid();
  static const int kBodyUniqueIdFieldNumber = 1;
  ::google::protobuf::int32 bodyuniqueid() const;
  void set_bodyuniqueid(::google::protobuf::int32 value);

  // bool computeForwardKinematics = 2;
  void clear_computeforwardkinematics();
  static const int kComputeForwardKinematicsFieldNumber = 2;
  bool computeforwardkinematics() const;
  void set_computeforwardkinematics(bool value);

  // bool computeLinkVelocities = 3;
  void clear_computelinkvelocities();
  static const int kComputeLinkVelocitiesFieldNumber = 3;
  bool computelinkvelocities() const;
  void set_computelinkvelocities(bool value);

  // @@protoc_insertion_point(class_scope:pybullet_grpc.RequestActualStateCommand)
 private:

  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
  ::google::protobuf::int32 bodyuniqueid_;
  bool computeforwardkinematics_;
  bool computelinkvelocities_;
  mutable ::google::protobuf::internal::CachedSize _cached_size_;
  friend struct ::protobuf_pybullet_2eproto::TableStruct;
};
// -------------------------------------------------------------------

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

  SendActualStateStatus(const SendActualStateStatus& from);

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

  inline SendActualStateStatus& operator=(SendActualStateStatus&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }
  #endif
  static const ::google::protobuf::Descriptor* descriptor();
  static const SendActualStateStatus& default_instance();

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

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

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

  inline SendActualStateStatus* New() const final {
    return CreateMaybeMessage<SendActualStateStatus>(NULL);
  }

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

  size_t ByteSizeLong() const final;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input) final;
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const final;
  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
      bool deterministic, ::google::protobuf::uint8* target) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(SendActualStateStatus* other);
  private:
  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
    return NULL;
  }
  inline void* MaybeArenaPtr() const {
    return NULL;
  }
  public:

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

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

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

  // repeated double rootLocalInertialFrame = 5;
  int rootlocalinertialframe_size() const;
  void clear_rootlocalinertialframe();
  static const int kRootLocalInertialFrameFieldNumber = 5;
  double rootlocalinertialframe(int index) const;
  void set_rootlocalinertialframe(int index, double value);
  void add_rootlocalinertialframe(double value);
  const ::google::protobuf::RepeatedField< double >&
      rootlocalinertialframe() const;
  ::google::protobuf::RepeatedField< double >*
      mutable_rootlocalinertialframe();

  // repeated double actualStateQ = 6;
  int actualstateq_size() const;
  void clear_actualstateq();
  static const int kActualStateQFieldNumber = 6;
  double actualstateq(int index) const;
  void set_actualstateq(int index, double value);
  void add_actualstateq(double value);
  const ::google::protobuf::RepeatedField< double >&
      actualstateq() const;
  ::google::protobuf::RepeatedField< double >*
      mutable_actualstateq();

  // repeated double actualStateQdot = 7;
  int actualstateqdot_size() const;
  void clear_actualstateqdot();
  static const int kActualStateQdotFieldNumber = 7;
  double actualstateqdot(int index) const;
  void set_actualstateqdot(int index, double value);
  void add_actualstateqdot(double value);
  const ::google::protobuf::RepeatedField< double >&
      actualstateqdot() const;
  ::google::protobuf::RepeatedField< double >*
      mutable_actualstateqdot();

  // repeated double jointReactionForces = 8;
  int jointreactionforces_size() const;
  void clear_jointreactionforces();
  static const int kJointReactionForcesFieldNumber = 8;
  double jointreactionforces(int index) const;
  void set_jointreactionforces(int index, double value);
  void add_jointreactionforces(double value);
  const ::google::protobuf::RepeatedField< double >&
      jointreactionforces() const;
  ::google::protobuf::RepeatedField< double >*
      mutable_jointreactionforces();

  // repeated double jointMotorForce = 9;
  int jointmotorforce_size() const;
  void clear_jointmotorforce();
  static const int kJointMotorForceFieldNumber = 9;
  double jointmotorforce(int index) const;
  void set_jointmotorforce(int index, double value);
  void add_jointmotorforce(double value);
  const ::google::protobuf::RepeatedField< double >&
      jointmotorforce() const;
  ::google::protobuf::RepeatedField< double >*
      mutable_jointmotorforce();

  // repeated double linkState = 10;
  int linkstate_size() const;
  void clear_linkstate();
  static const int kLinkStateFieldNumber = 10;
  double linkstate(int index) const;
  void set_linkstate(int index, double value);
  void add_linkstate(double value);
  const ::google::protobuf::RepeatedField< double >&
      linkstate() const;
  ::google::protobuf::RepeatedField< double >*
      mutable_linkstate();

  // repeated double linkWorldVelocities = 11;
  int linkworldvelocities_size() const;
  void clear_linkworldvelocities();
  static const int kLinkWorldVelocitiesFieldNumber = 11;
  double linkworldvelocities(int index) const;
  void set_linkworldvelocities(int index, double value);
  void add_linkworldvelocities(double value);
  const ::google::protobuf::RepeatedField< double >&
      linkworldvelocities() const;
  ::google::protobuf::RepeatedField< double >*
      mutable_linkworldvelocities();

  // repeated double linkLocalInertialFrames = 12;
  int linklocalinertialframes_size() const;
  void clear_linklocalinertialframes();
  static const int kLinkLocalInertialFramesFieldNumber = 12;
  double linklocalinertialframes(int index) const;
  void set_linklocalinertialframes(int index, double value);
  void add_linklocalinertialframes(double value);
  const ::google::protobuf::RepeatedField< double >&
      linklocalinertialframes() const;
  ::google::protobuf::RepeatedField< double >*
      mutable_linklocalinertialframes();

  // int32 bodyUniqueId = 1;
  void clear_bodyuniqueid();
  static const int kBodyUniqueIdFieldNumber = 1;
  ::google::protobuf::int32 bodyuniqueid() const;
  void set_bodyuniqueid(::google::protobuf::int32 value);

  // int32 numLinks = 2;
  void clear_numlinks();
  static const int kNumLinksFieldNumber = 2;
  ::google::protobuf::int32 numlinks() const;
  void set_numlinks(::google::protobuf::int32 value);

  // int32 numDegreeOfFreedomQ = 3;
  void clear_numdegreeoffreedomq();
  static const int kNumDegreeOfFreedomQFieldNumber = 3;
  ::google::protobuf::int32 numdegreeoffreedomq() const;
  void set_numdegreeoffreedomq(::google::protobuf::int32 value);

  // int32 numDegreeOfFreedomU = 4;
  void clear_numdegreeoffreedomu();
  static const int kNumDegreeOfFreedomUFieldNumber = 4;
  ::google::protobuf::int32 numdegreeoffreedomu() const;
  void set_numdegreeoffreedomu(::google::protobuf::int32 value);

  // @@protoc_insertion_point(class_scope:pybullet_grpc.SendActualStateStatus)
 private:

  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
  ::google::protobuf::RepeatedField< double > rootlocalinertialframe_;
  mutable int _rootlocalinertialframe_cached_byte_size_;
  ::google::protobuf::RepeatedField< double > actualstateq_;
  mutable int _actualstateq_cached_byte_size_;
  ::google::protobuf::RepeatedField< double > actualstateqdot_;
  mutable int _actualstateqdot_cached_byte_size_;
  ::google::protobuf::RepeatedField< double > jointreactionforces_;
  mutable int _jointreactionforces_cached_byte_size_;
  ::google::protobuf::RepeatedField< double > jointmotorforce_;
  mutable int _jointmotorforce_cached_byte_size_;
  ::google::protobuf::RepeatedField< double > linkstate_;
  mutable int _linkstate_cached_byte_size_;
  ::google::protobuf::RepeatedField< double > linkworldvelocities_;
  mutable int _linkworldvelocities_cached_byte_size_;
  ::google::protobuf::RepeatedField< double > linklocalinertialframes_;
  mutable int _linklocalinertialframes_cached_byte_size_;
  ::google::protobuf::int32 bodyuniqueid_;
  ::google::protobuf::int32 numlinks_;
  ::google::protobuf::int32 numdegreeoffreedomq_;
  ::google::protobuf::int32 numdegreeoffreedomu_;
  mutable ::google::protobuf::internal::CachedSize _cached_size_;
  friend struct ::protobuf_pybullet_2eproto::TableStruct;
};
// -------------------------------------------------------------------

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

  ConfigureOpenGLVisualizerCommand(const ConfigureOpenGLVisualizerCommand& from);

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

  inline ConfigureOpenGLVisualizerCommand& operator=(ConfigureOpenGLVisualizerCommand&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }
  #endif
  static const ::google::protobuf::Descriptor* descriptor();
  static const ConfigureOpenGLVisualizerCommand& default_instance();

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

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

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

  inline ConfigureOpenGLVisualizerCommand* New() const final {
    return CreateMaybeMessage<ConfigureOpenGLVisualizerCommand>(NULL);
  }

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

  size_t ByteSizeLong() const final;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input) final;
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const final;
  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
      bool deterministic, ::google::protobuf::uint8* target) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(ConfigureOpenGLVisualizerCommand* other);
  private:
  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
    return NULL;
  }
  inline void* MaybeArenaPtr() const {
    return NULL;
  }
  public:

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

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

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

  // .pybullet_grpc.vec3 cameraTargetPosition = 5;
  bool has_cameratargetposition() const;
  void clear_cameratargetposition();
  static const int kCameraTargetPositionFieldNumber = 5;
  private:
  const ::pybullet_grpc::vec3& _internal_cameratargetposition() const;
  public:
  const ::pybullet_grpc::vec3& cameratargetposition() const;
  ::pybullet_grpc::vec3* release_cameratargetposition();
  ::pybullet_grpc::vec3* mutable_cameratargetposition();
  void set_allocated_cameratargetposition(::pybullet_grpc::vec3* cameratargetposition);

  // double cameraDistance = 2;
  void clear_cameradistance();
  static const int kCameraDistanceFieldNumber = 2;
  double cameradistance() const;
  void set_cameradistance(double value);

  // double cameraPitch = 3;
  void clear_camerapitch();
  static const int kCameraPitchFieldNumber = 3;
  double camerapitch() const;
  void set_camerapitch(double value);

  // int32 updateFlags = 1;
  void clear_updateflags();
  static const int kUpdateFlagsFieldNumber = 1;
  ::google::protobuf::int32 updateflags() const;
  void set_updateflags(::google::protobuf::int32 value);

  // int32 setFlag = 6;
  void clear_setflag();
  static const int kSetFlagFieldNumber = 6;
  ::google::protobuf::int32 setflag() const;
  void set_setflag(::google::protobuf::int32 value);

  // double cameraYaw = 4;
  void clear_camerayaw();
  static const int kCameraYawFieldNumber = 4;
  double camerayaw() const;
  void set_camerayaw(double value);

  // int32 setEnabled = 7;
  void clear_setenabled();
  static const int kSetEnabledFieldNumber = 7;
  ::google::protobuf::int32 setenabled() const;
  void set_setenabled(::google::protobuf::int32 value);

  // @@protoc_insertion_point(class_scope:pybullet_grpc.ConfigureOpenGLVisualizerCommand)
 private:

  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
  ::pybullet_grpc::vec3* cameratargetposition_;
  double cameradistance_;
  double camerapitch_;
  ::google::protobuf::int32 updateflags_;
  ::google::protobuf::int32 setflag_;
  double camerayaw_;
  ::google::protobuf::int32 setenabled_;
  mutable ::google::protobuf::internal::CachedSize _cached_size_;
  friend struct ::protobuf_pybullet_2eproto::TableStruct;
};
// -------------------------------------------------------------------

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

  PhysicsSimulationParameters(const PhysicsSimulationParameters& from);

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

  inline PhysicsSimulationParameters& operator=(PhysicsSimulationParameters&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }
  #endif
  static const ::google::protobuf::Descriptor* descriptor();
  static const PhysicsSimulationParameters& default_instance();

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

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

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

  inline PhysicsSimulationParameters* New() const final {
    return CreateMaybeMessage<PhysicsSimulationParameters>(NULL);
  }

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

  size_t ByteSizeLong() const final;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input) final;
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const final;
  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
      bool deterministic, ::google::protobuf::uint8* target) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(PhysicsSimulationParameters* other);
  private:
  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
    return NULL;
  }
  inline void* MaybeArenaPtr() const {
    return NULL;
  }
  public:

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

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

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

  // .pybullet_grpc.vec3 gravityAcceleration = 2;
  bool has_gravityacceleration() const;
  void clear_gravityacceleration();
  static const int kGravityAccelerationFieldNumber = 2;
  private:
  const ::pybullet_grpc::vec3& _internal_gravityacceleration() const;
  public:
  const ::pybullet_grpc::vec3& gravityacceleration() const;
  ::pybullet_grpc::vec3* release_gravityacceleration();
  ::pybullet_grpc::vec3* mutable_gravityacceleration();
  void set_allocated_gravityacceleration(::pybullet_grpc::vec3* gravityacceleration);

  // double deltaTime = 1;
  void clear_deltatime();
  static const int kDeltaTimeFieldNumber = 1;
  double deltatime() const;
  void set_deltatime(double value);

  // int32 numSimulationSubSteps = 3;
  void clear_numsimulationsubsteps();
  static const int kNumSimulationSubStepsFieldNumber = 3;
  ::google::protobuf::int32 numsimulationsubsteps() const;
  void set_numsimulationsubsteps(::google::protobuf::int32 value);

  // int32 numSolverIterations = 4;
  void clear_numsolveriterations();
  static const int kNumSolverIterationsFieldNumber = 4;
  ::google::protobuf::int32 numsolveriterations() const;
  void set_numsolveriterations(::google::protobuf::int32 value);

  // int32 useRealTimeSimulation = 5;
  void clear_userealtimesimulation();
  static const int kUseRealTimeSimulationFieldNumber = 5;
  ::google::protobuf::int32 userealtimesimulation() const;
  void set_userealtimesimulation(::google::protobuf::int32 value);

  // int32 useSplitImpulse = 6;
  void clear_usesplitimpulse();
  static const int kUseSplitImpulseFieldNumber = 6;
  ::google::protobuf::int32 usesplitimpulse() const;
  void set_usesplitimpulse(::google::protobuf::int32 value);

  // double splitImpulsePenetrationThreshold = 7;
  void clear_splitimpulsepenetrationthreshold();
  static const int kSplitImpulsePenetrationThresholdFieldNumber = 7;
  double splitimpulsepenetrationthreshold() const;
  void set_splitimpulsepenetrationthreshold(double value);

  // double contactBreakingThreshold = 8;
  void clear_contactbreakingthreshold();
  static const int kContactBreakingThresholdFieldNumber = 8;
  double contactbreakingthreshold() const;
  void set_contactbreakingthreshold(double value);

  // double defaultContactERP = 10;
  void clear_defaultcontacterp();
  static const int kDefaultContactERPFieldNumber = 10;
  double defaultcontacterp() const;
  void set_defaultcontacterp(double value);

  // int32 internalSimFlags = 9;
  void clear_internalsimflags();
  static const int kInternalSimFlagsFieldNumber = 9;
  ::google::protobuf::int32 internalsimflags() const;
  void set_internalsimflags(::google::protobuf::int32 value);

  // int32 collisionFilterMode = 11;
  void clear_collisionfiltermode();
  static const int kCollisionFilterModeFieldNumber = 11;
  ::google::protobuf::int32 collisionfiltermode() const;
  void set_collisionfiltermode(::google::protobuf::int32 value);

  // double restitutionVelocityThreshold = 13;
  void clear_restitutionvelocitythreshold();
  static const int kRestitutionVelocityThresholdFieldNumber = 13;
  double restitutionvelocitythreshold() const;
  void set_restitutionvelocitythreshold(double value);

  // double defaultNonContactERP = 14;
  void clear_defaultnoncontacterp();
  static const int kDefaultNonContactERPFieldNumber = 14;
  double defaultnoncontacterp() const;
  void set_defaultnoncontacterp(double value);

  // double frictionERP = 15;
  void clear_frictionerp();
  static const int kFrictionERPFieldNumber = 15;
  double frictionerp() const;
  void set_frictionerp(double value);

  // int32 enableFileCaching = 12;
  void clear_enablefilecaching();
  static const int kEnableFileCachingFieldNumber = 12;
  ::google::protobuf::int32 enablefilecaching() const;
  void set_enablefilecaching(::google::protobuf::int32 value);

  // int32 enableConeFriction = 18;
  void clear_enableconefriction();
  static const int kEnableConeFrictionFieldNumber = 18;
  ::google::protobuf::int32 enableconefriction() const;
  void set_enableconefriction(::google::protobuf::int32 value);

  // double defaultGlobalCFM = 16;
  void clear_defaultglobalcfm();
  static const int kDefaultGlobalCFMFieldNumber = 16;
  double defaultglobalcfm() const;
  void set_defaultglobalcfm(double value);

  // double frictionCFM = 17;
  void clear_frictioncfm();
  static const int kFrictionCFMFieldNumber = 17;
  double frictioncfm() const;
  void set_frictioncfm(double value);

  // double allowedCcdPenetration = 20;
  void clear_allowedccdpenetration();
  static const int kAllowedCcdPenetrationFieldNumber = 20;
  double allowedccdpenetration() const;
  void set_allowedccdpenetration(double value);

  // int32 deterministicOverlappingPairs = 19;
  void clear_deterministicoverlappingpairs();
  static const int kDeterministicOverlappingPairsFieldNumber = 19;
  ::google::protobuf::int32 deterministicoverlappingpairs() const;
  void set_deterministicoverlappingpairs(::google::protobuf::int32 value);

  // int32 jointFeedbackMode = 21;
  void clear_jointfeedbackmode();
  static const int kJointFeedbackModeFieldNumber = 21;
  ::google::protobuf::int32 jointfeedbackmode() const;
  void set_jointfeedbackmode(::google::protobuf::int32 value);

  // double solverResidualThreshold = 22;
  void clear_solverresidualthreshold();
  static const int kSolverResidualThresholdFieldNumber = 22;
  double solverresidualthreshold() const;
  void set_solverresidualthreshold(double value);

  // double contactSlop = 23;
  void clear_contactslop();
  static const int kContactSlopFieldNumber = 23;
  double contactslop() const;
  void set_contactslop(double value);

  // int32 enableSAT = 24;
  void clear_enablesat();
  static const int kEnableSATFieldNumber = 24;
  ::google::protobuf::int32 enablesat() const;
  void set_enablesat(::google::protobuf::int32 value);

  // int32 constraintSolverType = 25;
  void clear_constraintsolvertype();
  static const int kConstraintSolverTypeFieldNumber = 25;
  ::google::protobuf::int32 constraintsolvertype() const;
  void set_constraintsolvertype(::google::protobuf::int32 value);

  // int32 minimumSolverIslandSize = 26;
  void clear_minimumsolverislandsize();
  static const int kMinimumSolverIslandSizeFieldNumber = 26;
  ::google::protobuf::int32 minimumsolverislandsize() const;
  void set_minimumsolverislandsize(::google::protobuf::int32 value);

  // @@protoc_insertion_point(class_scope:pybullet_grpc.PhysicsSimulationParameters)
 private:

  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
  ::pybullet_grpc::vec3* gravityacceleration_;
  double deltatime_;
  ::google::protobuf::int32 numsimulationsubsteps_;
  ::google::protobuf::int32 numsolveriterations_;
  ::google::protobuf::int32 userealtimesimulation_;
  ::google::protobuf::int32 usesplitimpulse_;
  double splitimpulsepenetrationthreshold_;
  double contactbreakingthreshold_;
  double defaultcontacterp_;
  ::google::protobuf::int32 internalsimflags_;
  ::google::protobuf::int32 collisionfiltermode_;
  double restitutionvelocitythreshold_;
  double defaultnoncontacterp_;
  double frictionerp_;
  ::google::protobuf::int32 enablefilecaching_;
  ::google::protobuf::int32 enableconefriction_;
  double defaultglobalcfm_;
  double frictioncfm_;
  double allowedccdpenetration_;
  ::google::protobuf::int32 deterministicoverlappingpairs_;
  ::google::protobuf::int32 jointfeedbackmode_;
  double solverresidualthreshold_;
  double contactslop_;
  ::google::protobuf::int32 enablesat_;
  ::google::protobuf::int32 constraintsolvertype_;
  ::google::protobuf::int32 minimumsolverislandsize_;
  mutable ::google::protobuf::internal::CachedSize _cached_size_;
  friend struct ::protobuf_pybullet_2eproto::TableStruct;
};
// -------------------------------------------------------------------

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

  PhysicsSimulationParametersCommand(const PhysicsSimulationParametersCommand& from);

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

  inline PhysicsSimulationParametersCommand& operator=(PhysicsSimulationParametersCommand&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }
  #endif
  static const ::google::protobuf::Descriptor* descriptor();
  static const PhysicsSimulationParametersCommand& default_instance();

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

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

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

  inline PhysicsSimulationParametersCommand* New() const final {
    return CreateMaybeMessage<PhysicsSimulationParametersCommand>(NULL);
  }

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

  size_t ByteSizeLong() const final;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input) final;
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const final;
  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
      bool deterministic, ::google::protobuf::uint8* target) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(PhysicsSimulationParametersCommand* other);
  private:
  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
    return NULL;
  }
  inline void* MaybeArenaPtr() const {
    return NULL;
  }
  public:

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

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

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

  // .pybullet_grpc.PhysicsSimulationParameters params = 2;
  bool has_params() const;
  void clear_params();
  static const int kParamsFieldNumber = 2;
  private:
  const ::pybullet_grpc::PhysicsSimulationParameters& _internal_params() const;
  public:
  const ::pybullet_grpc::PhysicsSimulationParameters& params() const;
  ::pybullet_grpc::PhysicsSimulationParameters* release_params();
  ::pybullet_grpc::PhysicsSimulationParameters* mutable_params();
  void set_allocated_params(::pybullet_grpc::PhysicsSimulationParameters* params);

  // int32 updateFlags = 1;
  void clear_updateflags();
  static const int kUpdateFlagsFieldNumber = 1;
  ::google::protobuf::int32 updateflags() const;
  void set_updateflags(::google::protobuf::int32 value);

  // @@protoc_insertion_point(class_scope:pybullet_grpc.PhysicsSimulationParametersCommand)
 private:

  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
  ::pybullet_grpc::PhysicsSimulationParameters* params_;
  ::google::protobuf::int32 updateflags_;
  mutable ::google::protobuf::internal::CachedSize _cached_size_;
  friend struct ::protobuf_pybullet_2eproto::TableStruct;
};
// -------------------------------------------------------------------

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

  JointMotorControlCommand(const JointMotorControlCommand& from);

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

  inline JointMotorControlCommand& operator=(JointMotorControlCommand&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }
  #endif
  static const ::google::protobuf::Descriptor* descriptor();
  static const JointMotorControlCommand& default_instance();

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

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

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

  inline JointMotorControlCommand* New() const final {
    return CreateMaybeMessage<JointMotorControlCommand>(NULL);
  }

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

  size_t ByteSizeLong() const final;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input) final;
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const final;
  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
      bool deterministic, ::google::protobuf::uint8* target) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(JointMotorControlCommand* other);
  private:
  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
    return NULL;
  }
  inline void* MaybeArenaPtr() const {
    return NULL;
  }
  public:

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

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

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

  // repeated double Kp = 4;
  int kp_size() const;
  void clear_kp();
  static const int kKpFieldNumber = 4;
  double kp(int index) const;
  void set_kp(int index, double value);
  void add_kp(double value);
  const ::google::protobuf::RepeatedField< double >&
      kp() const;
  ::google::protobuf::RepeatedField< double >*
      mutable_kp();

  // repeated double Kd = 5;
  int kd_size() const;
  void clear_kd();
  static const int kKdFieldNumber = 5;
  double kd(int index) const;
  void set_kd(int index, double value);
  void add_kd(double value);
  const ::google::protobuf::RepeatedField< double >&
      kd() const;
  ::google::protobuf::RepeatedField< double >*
      mutable_kd();

  // repeated double maxVelocity = 6;
  int maxvelocity_size() const;
  void clear_maxvelocity();
  static const int kMaxVelocityFieldNumber = 6;
  double maxvelocity(int index) const;
  void set_maxvelocity(int index, double value);
  void add_maxvelocity(double value);
  const ::google::protobuf::RepeatedField< double >&
      maxvelocity() const;
  ::google::protobuf::RepeatedField< double >*
      mutable_maxvelocity();

  // repeated int32 hasDesiredStateFlags = 7;
  int hasdesiredstateflags_size() const;
  void clear_hasdesiredstateflags();
  static const int kHasDesiredStateFlagsFieldNumber = 7;
  ::google::protobuf::int32 hasdesiredstateflags(int index) const;
  void set_hasdesiredstateflags(int index, ::google::protobuf::int32 value);
  void add_hasdesiredstateflags(::google::protobuf::int32 value);
  const ::google::protobuf::RepeatedField< ::google::protobuf::int32 >&
      hasdesiredstateflags() const;
  ::google::protobuf::RepeatedField< ::google::protobuf::int32 >*
      mutable_hasdesiredstateflags();

  // repeated double desiredStateQ = 8;
  int desiredstateq_size() const;
  void clear_desiredstateq();
  static const int kDesiredStateQFieldNumber = 8;
  double desiredstateq(int index) const;
  void set_desiredstateq(int index, double value);
  void add_desiredstateq(double value);
  const ::google::protobuf::RepeatedField< double >&
      desiredstateq() const;
  ::google::protobuf::RepeatedField< double >*
      mutable_desiredstateq();

  // repeated double desiredStateQdot = 9;
  int desiredstateqdot_size() const;
  void clear_desiredstateqdot();
  static const int kDesiredStateQdotFieldNumber = 9;
  double desiredstateqdot(int index) const;
  void set_desiredstateqdot(int index, double value);
  void add_desiredstateqdot(double value);
  const ::google::protobuf::RepeatedField< double >&
      desiredstateqdot() const;
  ::google::protobuf::RepeatedField< double >*
      mutable_desiredstateqdot();

  // repeated double desiredStateForceTorque = 10;
  int desiredstateforcetorque_size() const;
  void clear_desiredstateforcetorque();
  static const int kDesiredStateForceTorqueFieldNumber = 10;
  double desiredstateforcetorque(int index) const;
  void set_desiredstateforcetorque(int index, double value);
  void add_desiredstateforcetorque(double value);
  const ::google::protobuf::RepeatedField< double >&
      desiredstateforcetorque() const;
  ::google::protobuf::RepeatedField< double >*
      mutable_desiredstateforcetorque();

  // int32 bodyUniqueId = 1;
  void clear_bodyuniqueid();
  static const int kBodyUniqueIdFieldNumber = 1;
  ::google::protobuf::int32 bodyuniqueid() const;
  void set_bodyuniqueid(::google::protobuf::int32 value);

  // int32 controlMode = 2;
  void clear_controlmode();
  static const int kControlModeFieldNumber = 2;
  ::google::protobuf::int32 controlmode() const;
  void set_controlmode(::google::protobuf::int32 value);

  // int32 updateFlags = 3;
  void clear_updateflags();
  static const int kUpdateFlagsFieldNumber = 3;
  ::google::protobuf::int32 updateflags() const;
  void set_updateflags(::google::protobuf::int32 value);

  // @@protoc_insertion_point(class_scope:pybullet_grpc.JointMotorControlCommand)
 private:

  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
  ::google::protobuf::RepeatedField< double > kp_;
  mutable int _kp_cached_byte_size_;
  ::google::protobuf::RepeatedField< double > kd_;
  mutable int _kd_cached_byte_size_;
  ::google::protobuf::RepeatedField< double > maxvelocity_;
  mutable int _maxvelocity_cached_byte_size_;
  ::google::protobuf::RepeatedField< ::google::protobuf::int32 > hasdesiredstateflags_;
  mutable int _hasdesiredstateflags_cached_byte_size_;
  ::google::protobuf::RepeatedField< double > desiredstateq_;
  mutable int _desiredstateq_cached_byte_size_;
  ::google::protobuf::RepeatedField< double > desiredstateqdot_;
  mutable int _desiredstateqdot_cached_byte_size_;
  ::google::protobuf::RepeatedField< double > desiredstateforcetorque_;
  mutable int _desiredstateforcetorque_cached_byte_size_;
  ::google::protobuf::int32 bodyuniqueid_;
  ::google::protobuf::int32 controlmode_;
  ::google::protobuf::int32 updateflags_;
  mutable ::google::protobuf::internal::CachedSize _cached_size_;
  friend struct ::protobuf_pybullet_2eproto::TableStruct;
};
// -------------------------------------------------------------------

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

  UserConstraintCommand(const UserConstraintCommand& from);

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

  inline UserConstraintCommand& operator=(UserConstraintCommand&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }
  #endif
  static const ::google::protobuf::Descriptor* descriptor();
  static const UserConstraintCommand& default_instance();

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

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

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

  inline UserConstraintCommand* New() const final {
    return CreateMaybeMessage<UserConstraintCommand>(NULL);
  }

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

  size_t ByteSizeLong() const final;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input) final;
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const final;
  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
      bool deterministic, ::google::protobuf::uint8* target) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(UserConstraintCommand* other);
  private:
  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
    return NULL;
  }
  inline void* MaybeArenaPtr() const {
    return NULL;
  }
  public:

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

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

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

  // .pybullet_grpc.transform parentFrame = 5;
  bool has_parentframe() const;
  void clear_parentframe();
  static const int kParentFrameFieldNumber = 5;
  private:
  const ::pybullet_grpc::transform& _internal_parentframe() const;
  public:
  const ::pybullet_grpc::transform& parentframe() const;
  ::pybullet_grpc::transform* release_parentframe();
  ::pybullet_grpc::transform* mutable_parentframe();
  void set_allocated_parentframe(::pybullet_grpc::transform* parentframe);

  // .pybullet_grpc.transform childFrame = 6;
  bool has_childframe() const;
  void clear_childframe();
  static const int kChildFrameFieldNumber = 6;
  private:
  const ::pybullet_grpc::transform& _internal_childframe() const;
  public:
  const ::pybullet_grpc::transform& childframe() const;
  ::pybullet_grpc::transform* release_childframe();
  ::pybullet_grpc::transform* mutable_childframe();
  void set_allocated_childframe(::pybullet_grpc::transform* childframe);

  // .pybullet_grpc.vec3 jointAxis = 7;
  bool has_jointaxis() const;
  void clear_jointaxis();
  static const int kJointAxisFieldNumber = 7;
  private:
  const ::pybullet_grpc::vec3& _internal_jointaxis() const;
  public:
  const ::pybullet_grpc::vec3& jointaxis() const;
  ::pybullet_grpc::vec3* release_jointaxis();
  ::pybullet_grpc::vec3* mutable_jointaxis();
  void set_allocated_jointaxis(::pybullet_grpc::vec3* jointaxis);

  // int32 parentBodyIndex = 1;
  void clear_parentbodyindex();
  static const int kParentBodyIndexFieldNumber = 1;
  ::google::protobuf::int32 parentbodyindex() const;
  void set_parentbodyindex(::google::protobuf::int32 value);

  // int32 parentJointIndex = 2;
  void clear_parentjointindex();
  static const int kParentJointIndexFieldNumber = 2;
  ::google::protobuf::int32 parentjointindex() const;
  void set_parentjointindex(::google::protobuf::int32 value);

  // int32 childBodyIndex = 3;
  void clear_childbodyindex();
  static const int kChildBodyIndexFieldNumber = 3;
  ::google::protobuf::int32 childbodyindex() const;
  void set_childbodyindex(::google::protobuf::int32 value);

  // int32 childJointIndex = 4;
  void clear_childjointindex();
  static const int kChildJointIndexFieldNumber = 4;
  ::google::protobuf::int32 childjointindex() const;
  void set_childjointindex(::google::protobuf::int32 value);

  // double maxAppliedForce = 9;
  void clear_maxappliedforce();
  static const int kMaxAppliedForceFieldNumber = 9;
  double maxappliedforce() const;
  void set_maxappliedforce(double value);

  // int32 jointType = 8;
  void clear_jointtype();
  static const int kJointTypeFieldNumber = 8;
  ::google::protobuf::int32 jointtype() const;
  void set_jointtype(::google::protobuf::int32 value);

  // int32 userConstraintUniqueId = 10;
  void clear_userconstraintuniqueid();
  static const int kUserConstraintUniqueIdFieldNumber = 10;
  ::google::protobuf::int32 userconstraintuniqueid() const;
  void set_userconstraintuniqueid(::google::protobuf::int32 value);

  // double gearRatio = 11;
  void clear_gearratio();
  static const int kGearRatioFieldNumber = 11;
  double gearratio() const;
  void set_gearratio(double value);

  // double relativePositionTarget = 13;
  void clear_relativepositiontarget();
  static const int kRelativePositionTargetFieldNumber = 13;
  double relativepositiontarget() const;
  void set_relativepositiontarget(double value);

  // int32 gearAuxLink = 12;
  void clear_gearauxlink();
  static const int kGearAuxLinkFieldNumber = 12;
  ::google::protobuf::int32 gearauxlink() const;
  void set_gearauxlink(::google::protobuf::int32 value);

  // int32 updateFlags = 15;
  void clear_updateflags();
  static const int kUpdateFlagsFieldNumber = 15;
  ::google::protobuf::int32 updateflags() const;
  void set_updateflags(::google::protobuf::int32 value);

  // double erp = 14;
  void clear_erp();
  static const int kErpFieldNumber = 14;
  double erp() const;
  void set_erp(double value);

  // @@protoc_insertion_point(class_scope:pybullet_grpc.UserConstraintCommand)
 private:

  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
  ::pybullet_grpc::transform* parentframe_;
  ::pybullet_grpc::transform* childframe_;
  ::pybullet_grpc::vec3* jointaxis_;
  ::google::protobuf::int32 parentbodyindex_;
  ::google::protobuf::int32 parentjointindex_;
  ::google::protobuf::int32 childbodyindex_;
  ::google::protobuf::int32 childjointindex_;
  double maxappliedforce_;
  ::google::protobuf::int32 jointtype_;
  ::google::protobuf::int32 userconstraintuniqueid_;
  double gearratio_;
  double relativepositiontarget_;
  ::google::protobuf::int32 gearauxlink_;
  ::google::protobuf::int32 updateflags_;
  double erp_;
  mutable ::google::protobuf::internal::CachedSize _cached_size_;
  friend struct ::protobuf_pybullet_2eproto::TableStruct;
};
// -------------------------------------------------------------------

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

  UserConstraintStatus(const UserConstraintStatus& from);

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

  inline UserConstraintStatus& operator=(UserConstraintStatus&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }
  #endif
  static const ::google::protobuf::Descriptor* descriptor();
  static const UserConstraintStatus& default_instance();

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

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

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

  inline UserConstraintStatus* New() const final {
    return CreateMaybeMessage<UserConstraintStatus>(NULL);
  }

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

  size_t ByteSizeLong() const final;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input) final;
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const final;
  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
      bool deterministic, ::google::protobuf::uint8* target) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(UserConstraintStatus* other);
  private:
  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
    return NULL;
  }
  inline void* MaybeArenaPtr() const {
    return NULL;
  }
  public:

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

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

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

  // int32 userConstraintUniqueId = 10;
  void clear_userconstraintuniqueid();
  static const int kUserConstraintUniqueIdFieldNumber = 10;
  ::google::protobuf::int32 userconstraintuniqueid() const;
  void set_userconstraintuniqueid(::google::protobuf::int32 value);

  // double maxAppliedForce = 9;
  void clear_maxappliedforce();
  static const int kMaxAppliedForceFieldNumber = 9;
  double maxappliedforce() const;
  void set_maxappliedforce(double value);

  // @@protoc_insertion_point(class_scope:pybullet_grpc.UserConstraintStatus)
 private:

  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
  ::google::protobuf::int32 userconstraintuniqueid_;
  double maxappliedforce_;
  mutable ::google::protobuf::internal::CachedSize _cached_size_;
  friend struct ::protobuf_pybullet_2eproto::TableStruct;
};
// -------------------------------------------------------------------

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

  UserConstraintStateStatus(const UserConstraintStateStatus& from);

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

  inline UserConstraintStateStatus& operator=(UserConstraintStateStatus&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }
  #endif
  static const ::google::protobuf::Descriptor* descriptor();
  static const UserConstraintStateStatus& default_instance();

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

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

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

  inline UserConstraintStateStatus* New() const final {
    return CreateMaybeMessage<UserConstraintStateStatus>(NULL);
  }

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

  size_t ByteSizeLong() const final;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input) final;
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const final;
  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
      bool deterministic, ::google::protobuf::uint8* target) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(UserConstraintStateStatus* other);
  private:
  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
    return NULL;
  }
  inline void* MaybeArenaPtr() const {
    return NULL;
  }
  public:

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

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

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

  // .pybullet_grpc.vec3 appliedConstraintForcesLinear = 1;
  bool has_appliedconstraintforceslinear() const;
  void clear_appliedconstraintforceslinear();
  static const int kAppliedConstraintForcesLinearFieldNumber = 1;
  private:
  const ::pybullet_grpc::vec3& _internal_appliedconstraintforceslinear() const;
  public:
  const ::pybullet_grpc::vec3& appliedconstraintforceslinear() const;
  ::pybullet_grpc::vec3* release_appliedconstraintforceslinear();
  ::pybullet_grpc::vec3* mutable_appliedconstraintforceslinear();
  void set_allocated_appliedconstraintforceslinear(::pybullet_grpc::vec3* appliedconstraintforceslinear);

  // .pybullet_grpc.vec3 appliedConstraintForcesAngular = 2;
  bool has_appliedconstraintforcesangular() const;
  void clear_appliedconstraintforcesangular();
  static const int kAppliedConstraintForcesAngularFieldNumber = 2;
  private:
  const ::pybullet_grpc::vec3& _internal_appliedconstraintforcesangular() const;
  public:
  const ::pybullet_grpc::vec3& appliedconstraintforcesangular() const;
  ::pybullet_grpc::vec3* release_appliedconstraintforcesangular();
  ::pybullet_grpc::vec3* mutable_appliedconstraintforcesangular();
  void set_allocated_appliedconstraintforcesangular(::pybullet_grpc::vec3* appliedconstraintforcesangular);

  // int32 numDofs = 3;
  void clear_numdofs();
  static const int kNumDofsFieldNumber = 3;
  ::google::protobuf::int32 numdofs() const;
  void set_numdofs(::google::protobuf::int32 value);

  // @@protoc_insertion_point(class_scope:pybullet_grpc.UserConstraintStateStatus)
 private:

  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
  ::pybullet_grpc::vec3* appliedconstraintforceslinear_;
  ::pybullet_grpc::vec3* appliedconstraintforcesangular_;
  ::google::protobuf::int32 numdofs_;
  mutable ::google::protobuf::internal::CachedSize _cached_size_;
  friend struct ::protobuf_pybullet_2eproto::TableStruct;
};
// -------------------------------------------------------------------

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

  RequestKeyboardEventsCommand(const RequestKeyboardEventsCommand& from);

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

  inline RequestKeyboardEventsCommand& operator=(RequestKeyboardEventsCommand&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }
  #endif
  static const ::google::protobuf::Descriptor* descriptor();
  static const RequestKeyboardEventsCommand& default_instance();

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

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

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

  inline RequestKeyboardEventsCommand* New() const final {
    return CreateMaybeMessage<RequestKeyboardEventsCommand>(NULL);
  }

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

  size_t ByteSizeLong() const final;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input) final;
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const final;
  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
      bool deterministic, ::google::protobuf::uint8* target) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(RequestKeyboardEventsCommand* other);
  private:
  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
    return NULL;
  }
  inline void* MaybeArenaPtr() const {
    return NULL;
  }
  public:

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

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

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

  // @@protoc_insertion_point(class_scope:pybullet_grpc.RequestKeyboardEventsCommand)
 private:

  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
  mutable ::google::protobuf::internal::CachedSize _cached_size_;
  friend struct ::protobuf_pybullet_2eproto::TableStruct;
};
// -------------------------------------------------------------------

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

  KeyboardEvent(const KeyboardEvent& from);

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

  inline KeyboardEvent& operator=(KeyboardEvent&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }
  #endif
  static const ::google::protobuf::Descriptor* descriptor();
  static const KeyboardEvent& default_instance();

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

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

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

  inline KeyboardEvent* New() const final {
    return CreateMaybeMessage<KeyboardEvent>(NULL);
  }

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

  size_t ByteSizeLong() const final;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input) final;
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const final;
  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
      bool deterministic, ::google::protobuf::uint8* target) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(KeyboardEvent* other);
  private:
  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
    return NULL;
  }
  inline void* MaybeArenaPtr() const {
    return NULL;
  }
  public:

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

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

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

  // int32 keyCode = 1;
  void clear_keycode();
  static const int kKeyCodeFieldNumber = 1;
  ::google::protobuf::int32 keycode() const;
  void set_keycode(::google::protobuf::int32 value);

  // int32 keyState = 2;
  void clear_keystate();
  static const int kKeyStateFieldNumber = 2;
  ::google::protobuf::int32 keystate() const;
  void set_keystate(::google::protobuf::int32 value);

  // @@protoc_insertion_point(class_scope:pybullet_grpc.KeyboardEvent)
 private:

  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
  ::google::protobuf::int32 keycode_;
  ::google::protobuf::int32 keystate_;
  mutable ::google::protobuf::internal::CachedSize _cached_size_;
  friend struct ::protobuf_pybullet_2eproto::TableStruct;
};
// -------------------------------------------------------------------

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

  KeyboardEventsStatus(const KeyboardEventsStatus& from);

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

  inline KeyboardEventsStatus& operator=(KeyboardEventsStatus&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }
  #endif
  static const ::google::protobuf::Descriptor* descriptor();
  static const KeyboardEventsStatus& default_instance();

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

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

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

  inline KeyboardEventsStatus* New() const final {
    return CreateMaybeMessage<KeyboardEventsStatus>(NULL);
  }

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

  size_t ByteSizeLong() const final;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input) final;
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const final;
  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
      bool deterministic, ::google::protobuf::uint8* target) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(KeyboardEventsStatus* other);
  private:
  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
    return NULL;
  }
  inline void* MaybeArenaPtr() const {
    return NULL;
  }
  public:

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

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

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

  // repeated .pybullet_grpc.KeyboardEvent keyboardEvents = 1;
  int keyboardevents_size() const;
  void clear_keyboardevents();
  static const int kKeyboardEventsFieldNumber = 1;
  ::pybullet_grpc::KeyboardEvent* mutable_keyboardevents(int index);
  ::google::protobuf::RepeatedPtrField< ::pybullet_grpc::KeyboardEvent >*
      mutable_keyboardevents();
  const ::pybullet_grpc::KeyboardEvent& keyboardevents(int index) const;
  ::pybullet_grpc::KeyboardEvent* add_keyboardevents();
  const ::google::protobuf::RepeatedPtrField< ::pybullet_grpc::KeyboardEvent >&
      keyboardevents() const;

  // @@protoc_insertion_point(class_scope:pybullet_grpc.KeyboardEventsStatus)
 private:

  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
  ::google::protobuf::RepeatedPtrField< ::pybullet_grpc::KeyboardEvent > keyboardevents_;
  mutable ::google::protobuf::internal::CachedSize _cached_size_;
  friend struct ::protobuf_pybullet_2eproto::TableStruct;
};
// -------------------------------------------------------------------

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

  RequestCameraImageCommand(const RequestCameraImageCommand& from);

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

  inline RequestCameraImageCommand& operator=(RequestCameraImageCommand&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }
  #endif
  static const ::google::protobuf::Descriptor* descriptor();
  static const RequestCameraImageCommand& default_instance();

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

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

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

  inline RequestCameraImageCommand* New() const final {
    return CreateMaybeMessage<RequestCameraImageCommand>(NULL);
  }

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

  size_t ByteSizeLong() const final;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input) final;
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const final;
  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
      bool deterministic, ::google::protobuf::uint8* target) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(RequestCameraImageCommand* other);
  private:
  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
    return NULL;
  }
  inline void* MaybeArenaPtr() const {
    return NULL;
  }
  public:

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

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

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

  // .pybullet_grpc.matrix4x4 viewMatrix = 3;
  bool has_viewmatrix() const;
  void clear_viewmatrix();
  static const int kViewMatrixFieldNumber = 3;
  private:
  const ::pybullet_grpc::matrix4x4& _internal_viewmatrix() const;
  public:
  const ::pybullet_grpc::matrix4x4& viewmatrix() const;
  ::pybullet_grpc::matrix4x4* release_viewmatrix();
  ::pybullet_grpc::matrix4x4* mutable_viewmatrix();
  void set_allocated_viewmatrix(::pybullet_grpc::matrix4x4* viewmatrix);

  // .pybullet_grpc.matrix4x4 projectionMatrix = 4;
  bool has_projectionmatrix() const;
  void clear_projectionmatrix();
  static const int kProjectionMatrixFieldNumber = 4;
  private:
  const ::pybullet_grpc::matrix4x4& _internal_projectionmatrix() const;
  public:
  const ::pybullet_grpc::matrix4x4& projectionmatrix() const;
  ::pybullet_grpc::matrix4x4* release_projectionmatrix();
  ::pybullet_grpc::matrix4x4* mutable_projectionmatrix();
  void set_allocated_projectionmatrix(::pybullet_grpc::matrix4x4* projectionmatrix);

  // .pybullet_grpc.vec3 lightDirection = 8;
  bool has_lightdirection() const;
  void clear_lightdirection();
  static const int kLightDirectionFieldNumber = 8;
  private:
  const ::pybullet_grpc::vec3& _internal_lightdirection() const;
  public:
  const ::pybullet_grpc::vec3& lightdirection() const;
  ::pybullet_grpc::vec3* release_lightdirection();
  ::pybullet_grpc::vec3* mutable_lightdirection();
  void set_allocated_lightdirection(::pybullet_grpc::vec3* lightdirection);

  // .pybullet_grpc.vec3 lightColor = 9;
  bool has_lightcolor() const;
  void clear_lightcolor();
  static const int kLightColorFieldNumber = 9;
  private:
  const ::pybullet_grpc::vec3& _internal_lightcolor() const;
  public:
  const ::pybullet_grpc::vec3& lightcolor() const;
  ::pybullet_grpc::vec3* release_lightcolor();
  ::pybullet_grpc::vec3* mutable_lightcolor();
  void set_allocated_lightcolor(::pybullet_grpc::vec3* lightcolor);

  // .pybullet_grpc.matrix4x4 projectiveTextureViewMatrix = 15;
  bool has_projectivetextureviewmatrix() const;
  void clear_projectivetextureviewmatrix();
  static const int kProjectiveTextureViewMatrixFieldNumber = 15;
  private:
  const ::pybullet_grpc::matrix4x4& _internal_projectivetextureviewmatrix() const;
  public:
  const ::pybullet_grpc::matrix4x4& projectivetextureviewmatrix() const;
  ::pybullet_grpc::matrix4x4* release_projectivetextureviewmatrix();
  ::pybullet_grpc::matrix4x4* mutable_projectivetextureviewmatrix();
  void set_allocated_projectivetextureviewmatrix(::pybullet_grpc::matrix4x4* projectivetextureviewmatrix);

  // .pybullet_grpc.matrix4x4 projectiveTextureProjectionMatrix = 16;
  bool has_projectivetextureprojectionmatrix() const;
  void clear_projectivetextureprojectionmatrix();
  static const int kProjectiveTextureProjectionMatrixFieldNumber = 16;
  private:
  const ::pybullet_grpc::matrix4x4& _internal_projectivetextureprojectionmatrix() const;
  public:
  const ::pybullet_grpc::matrix4x4& projectivetextureprojectionmatrix() const;
  ::pybullet_grpc::matrix4x4* release_projectivetextureprojectionmatrix();
  ::pybullet_grpc::matrix4x4* mutable_projectivetextureprojectionmatrix();
  void set_allocated_projectivetextureprojectionmatrix(::pybullet_grpc::matrix4x4* projectivetextureprojectionmatrix);

  // int32 updateFlags = 1;
  void clear_updateflags();
  static const int kUpdateFlagsFieldNumber = 1;
  ::google::protobuf::int32 updateflags() const;
  void set_updateflags(::google::protobuf::int32 value);

  // int32 cameraFlags = 2;
  void clear_cameraflags();
  static const int kCameraFlagsFieldNumber = 2;
  ::google::protobuf::int32 cameraflags() const;
  void set_cameraflags(::google::protobuf::int32 value);

  // int32 startPixelIndex = 5;
  void clear_startpixelindex();
  static const int kStartPixelIndexFieldNumber = 5;
  ::google::protobuf::int32 startpixelindex() const;
  void set_startpixelindex(::google::protobuf::int32 value);

  // int32 pixelWidth = 6;
  void clear_pixelwidth();
  static const int kPixelWidthFieldNumber = 6;
  ::google::protobuf::int32 pixelwidth() const;
  void set_pixelwidth(::google::protobuf::int32 value);

  // double lightDistance = 10;
  void clear_lightdistance();
  static const int kLightDistanceFieldNumber = 10;
  double lightdistance() const;
  void set_lightdistance(double value);

  // int32 pixelHeight = 7;
  void clear_pixelheight();
  static const int kPixelHeightFieldNumber = 7;
  ::google::protobuf::int32 pixelheight() const;
  void set_pixelheight(::google::protobuf::int32 value);

  // int32 hasShadow = 14;
  void clear_hasshadow();
  static const int kHasShadowFieldNumber = 14;
  ::google::protobuf::int32 hasshadow() const;
  void set_hasshadow(::google::protobuf::int32 value);

  // double lightAmbientCoeff = 11;
  void clear_lightambientcoeff();
  static const int kLightAmbientCoeffFieldNumber = 11;
  double lightambientcoeff() const;
  void set_lightambientcoeff(double value);

  // double lightDiffuseCoeff = 12;
  void clear_lightdiffusecoeff();
  static const int kLightDiffuseCoeffFieldNumber = 12;
  double lightdiffusecoeff() const;
  void set_lightdiffusecoeff(double value);

  // double lightSpecularCoeff = 13;
  void clear_lightspecularcoeff();
  static const int kLightSpecularCoeffFieldNumber = 13;
  double lightspecularcoeff() const;
  void set_lightspecularcoeff(double value);

  // @@protoc_insertion_point(class_scope:pybullet_grpc.RequestCameraImageCommand)
 private:

  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
  ::pybullet_grpc::matrix4x4* viewmatrix_;
  ::pybullet_grpc::matrix4x4* projectionmatrix_;
  ::pybullet_grpc::vec3* lightdirection_;
  ::pybullet_grpc::vec3* lightcolor_;
  ::pybullet_grpc::matrix4x4* projectivetextureviewmatrix_;
  ::pybullet_grpc::matrix4x4* projectivetextureprojectionmatrix_;
  ::google::protobuf::int32 updateflags_;
  ::google::protobuf::int32 cameraflags_;
  ::google::protobuf::int32 startpixelindex_;
  ::google::protobuf::int32 pixelwidth_;
  double lightdistance_;
  ::google::protobuf::int32 pixelheight_;
  ::google::protobuf::int32 hasshadow_;
  double lightambientcoeff_;
  double lightdiffusecoeff_;
  double lightspecularcoeff_;
  mutable ::google::protobuf::internal::CachedSize _cached_size_;
  friend struct ::protobuf_pybullet_2eproto::TableStruct;
};
// -------------------------------------------------------------------

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

  RequestCameraImageStatus(const RequestCameraImageStatus& from);

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

  inline RequestCameraImageStatus& operator=(RequestCameraImageStatus&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }
  #endif
  static const ::google::protobuf::Descriptor* descriptor();
  static const RequestCameraImageStatus& default_instance();

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

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

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

  inline RequestCameraImageStatus* New() const final {
    return CreateMaybeMessage<RequestCameraImageStatus>(NULL);
  }

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

  size_t ByteSizeLong() const final;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input) final;
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const final;
  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
      bool deterministic, ::google::protobuf::uint8* target) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(RequestCameraImageStatus* other);
  private:
  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
    return NULL;
  }
  inline void* MaybeArenaPtr() const {
    return NULL;
  }
  public:

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

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

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

  // int32 imageWidth = 1;
  void clear_imagewidth();
  static const int kImageWidthFieldNumber = 1;
  ::google::protobuf::int32 imagewidth() const;
  void set_imagewidth(::google::protobuf::int32 value);

  // int32 imageHeight = 2;
  void clear_imageheight();
  static const int kImageHeightFieldNumber = 2;
  ::google::protobuf::int32 imageheight() const;
  void set_imageheight(::google::protobuf::int32 value);

  // int32 startingPixelIndex = 3;
  void clear_startingpixelindex();
  static const int kStartingPixelIndexFieldNumber = 3;
  ::google::protobuf::int32 startingpixelindex() const;
  void set_startingpixelindex(::google::protobuf::int32 value);

  // int32 numPixelsCopied = 4;
  void clear_numpixelscopied();
  static const int kNumPixelsCopiedFieldNumber = 4;
  ::google::protobuf::int32 numpixelscopied() const;
  void set_numpixelscopied(::google::protobuf::int32 value);

  // int32 numRemainingPixels = 5;
  void clear_numremainingpixels();
  static const int kNumRemainingPixelsFieldNumber = 5;
  ::google::protobuf::int32 numremainingpixels() const;
  void set_numremainingpixels(::google::protobuf::int32 value);

  // @@protoc_insertion_point(class_scope:pybullet_grpc.RequestCameraImageStatus)
 private:

  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
  ::google::protobuf::int32 imagewidth_;
  ::google::protobuf::int32 imageheight_;
  ::google::protobuf::int32 startingpixelindex_;
  ::google::protobuf::int32 numpixelscopied_;
  ::google::protobuf::int32 numremainingpixels_;
  mutable ::google::protobuf::internal::CachedSize _cached_size_;
  friend struct ::protobuf_pybullet_2eproto::TableStruct;
};
// -------------------------------------------------------------------

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

  ResetSimulationCommand(const ResetSimulationCommand& from);

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

  inline ResetSimulationCommand& operator=(ResetSimulationCommand&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }
  #endif
  static const ::google::protobuf::Descriptor* descriptor();
  static const ResetSimulationCommand& default_instance();

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

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

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

  inline ResetSimulationCommand* New() const final {
    return CreateMaybeMessage<ResetSimulationCommand>(NULL);
  }

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

  size_t ByteSizeLong() const final;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input) final;
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const final;
  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
      bool deterministic, ::google::protobuf::uint8* target) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(ResetSimulationCommand* other);
  private:
  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
    return NULL;
  }
  inline void* MaybeArenaPtr() const {
    return NULL;
  }
  public:

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

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

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

  // @@protoc_insertion_point(class_scope:pybullet_grpc.ResetSimulationCommand)
 private:

  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
  mutable ::google::protobuf::internal::CachedSize _cached_size_;
  friend struct ::protobuf_pybullet_2eproto::TableStruct;
};
// -------------------------------------------------------------------

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

  PyBulletCommand(const PyBulletCommand& from);

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

  inline PyBulletCommand& operator=(PyBulletCommand&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }
  #endif
  static const ::google::protobuf::Descriptor* descriptor();
  static const PyBulletCommand& default_instance();

  enum CommandsCase {
    kLoadUrdfCommand = 4,
    kTerminateServerCommand = 5,
    kStepSimulationCommand = 6,
    kLoadSdfCommand = 7,
    kLoadMjcfCommand = 8,
    kChangeDynamicsCommand = 9,
    kGetDynamicsCommand = 10,
    kInitPoseCommand = 11,
    kRequestActualStateCommand = 12,
    kConfigureOpenGLVisualizerCommand = 13,
    kSyncBodiesCommand = 14,
    kRequestBodyInfoCommand = 15,
    kSetPhysicsSimulationParametersCommand = 16,
    kJointMotorControlCommand = 17,
    kUserConstraintCommand = 18,
    kCheckVersionCommand = 19,
    kRequestKeyboardEventsCommand = 20,
    kRequestCameraImageCommand = 21,
    kResetSimulationCommand = 22,
    COMMANDS_NOT_SET = 0,
  };

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

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

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

  inline PyBulletCommand* New() const final {
    return CreateMaybeMessage<PyBulletCommand>(NULL);
  }

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

  size_t ByteSizeLong() const final;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input) final;
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const final;
  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
      bool deterministic, ::google::protobuf::uint8* target) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(PyBulletCommand* other);
  private:
  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
    return NULL;
  }
  inline void* MaybeArenaPtr() const {
    return NULL;
  }
  public:

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

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

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

  // repeated bytes binaryBlob = 2;
  int binaryblob_size() const;
  void clear_binaryblob();
  static const int kBinaryBlobFieldNumber = 2;
  const ::std::string& binaryblob(int index) const;
  ::std::string* mutable_binaryblob(int index);
  void set_binaryblob(int index, const ::std::string& value);
  #if LANG_CXX11
  void set_binaryblob(int index, ::std::string&& value);
  #endif
  void set_binaryblob(int index, const char* value);
  void set_binaryblob(int index, const void* value, size_t size);
  ::std::string* add_binaryblob();
  void add_binaryblob(const ::std::string& value);
  #if LANG_CXX11
  void add_binaryblob(::std::string&& value);
  #endif
  void add_binaryblob(const char* value);
  void add_binaryblob(const void* value, size_t size);
  const ::google::protobuf::RepeatedPtrField< ::std::string>& binaryblob() const;
  ::google::protobuf::RepeatedPtrField< ::std::string>* mutable_binaryblob();

  // repeated bytes unknownCommandBinaryBlob = 3;
  int unknowncommandbinaryblob_size() const;
  void clear_unknowncommandbinaryblob();
  static const int kUnknownCommandBinaryBlobFieldNumber = 3;
  const ::std::string& unknowncommandbinaryblob(int index) const;
  ::std::string* mutable_unknowncommandbinaryblob(int index);
  void set_unknowncommandbinaryblob(int index, const ::std::string& value);
  #if LANG_CXX11
  void set_unknowncommandbinaryblob(int index, ::std::string&& value);
  #endif
  void set_unknowncommandbinaryblob(int index, const char* value);
  void set_unknowncommandbinaryblob(int index, const void* value, size_t size);
  ::std::string* add_unknowncommandbinaryblob();
  void add_unknowncommandbinaryblob(const ::std::string& value);
  #if LANG_CXX11
  void add_unknowncommandbinaryblob(::std::string&& value);
  #endif
  void add_unknowncommandbinaryblob(const char* value);
  void add_unknowncommandbinaryblob(const void* value, size_t size);
  const ::google::protobuf::RepeatedPtrField< ::std::string>& unknowncommandbinaryblob() const;
  ::google::protobuf::RepeatedPtrField< ::std::string>* mutable_unknowncommandbinaryblob();

  // int32 commandType = 1;
  void clear_commandtype();
  static const int kCommandTypeFieldNumber = 1;
  ::google::protobuf::int32 commandtype() const;
  void set_commandtype(::google::protobuf::int32 value);

  // .pybullet_grpc.LoadUrdfCommand loadUrdfCommand = 4;
  bool has_loadurdfcommand() const;
  void clear_loadurdfcommand();
  static const int kLoadUrdfCommandFieldNumber = 4;
  private:
  const ::pybullet_grpc::LoadUrdfCommand& _internal_loadurdfcommand() const;
  public:
  const ::pybullet_grpc::LoadUrdfCommand& loadurdfcommand() const;
  ::pybullet_grpc::LoadUrdfCommand* release_loadurdfcommand();
  ::pybullet_grpc::LoadUrdfCommand* mutable_loadurdfcommand();
  void set_allocated_loadurdfcommand(::pybullet_grpc::LoadUrdfCommand* loadurdfcommand);

  // .pybullet_grpc.TerminateServerCommand terminateServerCommand = 5;
  bool has_terminateservercommand() const;
  void clear_terminateservercommand();
  static const int kTerminateServerCommandFieldNumber = 5;
  private:
  const ::pybullet_grpc::TerminateServerCommand& _internal_terminateservercommand() const;
  public:
  const ::pybullet_grpc::TerminateServerCommand& terminateservercommand() const;
  ::pybullet_grpc::TerminateServerCommand* release_terminateservercommand();
  ::pybullet_grpc::TerminateServerCommand* mutable_terminateservercommand();
  void set_allocated_terminateservercommand(::pybullet_grpc::TerminateServerCommand* terminateservercommand);

  // .pybullet_grpc.StepSimulationCommand stepSimulationCommand = 6;
  bool has_stepsimulationcommand() const;
  void clear_stepsimulationcommand();
  static const int kStepSimulationCommandFieldNumber = 6;
  private:
  const ::pybullet_grpc::StepSimulationCommand& _internal_stepsimulationcommand() const;
  public:
  const ::pybullet_grpc::StepSimulationCommand& stepsimulationcommand() const;
  ::pybullet_grpc::StepSimulationCommand* release_stepsimulationcommand();
  ::pybullet_grpc::StepSimulationCommand* mutable_stepsimulationcommand();
  void set_allocated_stepsimulationcommand(::pybullet_grpc::StepSimulationCommand* stepsimulationcommand);

  // .pybullet_grpc.LoadSdfCommand loadSdfCommand = 7;
  bool has_loadsdfcommand() const;
  void clear_loadsdfcommand();
  static const int kLoadSdfCommandFieldNumber = 7;
  private:
  const ::pybullet_grpc::LoadSdfCommand& _internal_loadsdfcommand() const;
  public:
  const ::pybullet_grpc::LoadSdfCommand& loadsdfcommand() const;
  ::pybullet_grpc::LoadSdfCommand* release_loadsdfcommand();
  ::pybullet_grpc::LoadSdfCommand* mutable_loadsdfcommand();
  void set_allocated_loadsdfcommand(::pybullet_grpc::LoadSdfCommand* loadsdfcommand);

  // .pybullet_grpc.LoadMjcfCommand loadMjcfCommand = 8;
  bool has_loadmjcfcommand() const;
  void clear_loadmjcfcommand();
  static const int kLoadMjcfCommandFieldNumber = 8;
  private:
  const ::pybullet_grpc::LoadMjcfCommand& _internal_loadmjcfcommand() const;
  public:
  const ::pybullet_grpc::LoadMjcfCommand& loadmjcfcommand() const;
  ::pybullet_grpc::LoadMjcfCommand* release_loadmjcfcommand();
  ::pybullet_grpc::LoadMjcfCommand* mutable_loadmjcfcommand();
  void set_allocated_loadmjcfcommand(::pybullet_grpc::LoadMjcfCommand* loadmjcfcommand);

  // .pybullet_grpc.ChangeDynamicsCommand changeDynamicsCommand = 9;
  bool has_changedynamicscommand() const;
  void clear_changedynamicscommand();
  static const int kChangeDynamicsCommandFieldNumber = 9;
  private:
  const ::pybullet_grpc::ChangeDynamicsCommand& _internal_changedynamicscommand() const;
  public:
  const ::pybullet_grpc::ChangeDynamicsCommand& changedynamicscommand() const;
  ::pybullet_grpc::ChangeDynamicsCommand* release_changedynamicscommand();
  ::pybullet_grpc::ChangeDynamicsCommand* mutable_changedynamicscommand();
  void set_allocated_changedynamicscommand(::pybullet_grpc::ChangeDynamicsCommand* changedynamicscommand);

  // .pybullet_grpc.GetDynamicsCommand getDynamicsCommand = 10;
  bool has_getdynamicscommand() const;
  void clear_getdynamicscommand();
  static const int kGetDynamicsCommandFieldNumber = 10;
  private:
  const ::pybullet_grpc::GetDynamicsCommand& _internal_getdynamicscommand() const;
  public:
  const ::pybullet_grpc::GetDynamicsCommand& getdynamicscommand() const;
  ::pybullet_grpc::GetDynamicsCommand* release_getdynamicscommand();
  ::pybullet_grpc::GetDynamicsCommand* mutable_getdynamicscommand();
  void set_allocated_getdynamicscommand(::pybullet_grpc::GetDynamicsCommand* getdynamicscommand);

  // .pybullet_grpc.InitPoseCommand initPoseCommand = 11;
  bool has_initposecommand() const;
  void clear_initposecommand();
  static const int kInitPoseCommandFieldNumber = 11;
  private:
  const ::pybullet_grpc::InitPoseCommand& _internal_initposecommand() const;
  public:
  const ::pybullet_grpc::InitPoseCommand& initposecommand() const;
  ::pybullet_grpc::InitPoseCommand* release_initposecommand();
  ::pybullet_grpc::InitPoseCommand* mutable_initposecommand();
  void set_allocated_initposecommand(::pybullet_grpc::InitPoseCommand* initposecommand);

  // .pybullet_grpc.RequestActualStateCommand requestActualStateCommand = 12;
  bool has_requestactualstatecommand() const;
  void clear_requestactualstatecommand();
  static const int kRequestActualStateCommandFieldNumber = 12;
  private:
  const ::pybullet_grpc::RequestActualStateCommand& _internal_requestactualstatecommand() const;
  public:
  const ::pybullet_grpc::RequestActualStateCommand& requestactualstatecommand() const;
  ::pybullet_grpc::RequestActualStateCommand* release_requestactualstatecommand();
  ::pybullet_grpc::RequestActualStateCommand* mutable_requestactualstatecommand();
  void set_allocated_requestactualstatecommand(::pybullet_grpc::RequestActualStateCommand* requestactualstatecommand);

  // .pybullet_grpc.ConfigureOpenGLVisualizerCommand configureOpenGLVisualizerCommand = 13;
  bool has_configureopenglvisualizercommand() const;
  void clear_configureopenglvisualizercommand();
  static const int kConfigureOpenGLVisualizerCommandFieldNumber = 13;
  private:
  const ::pybullet_grpc::ConfigureOpenGLVisualizerCommand& _internal_configureopenglvisualizercommand() const;
  public:
  const ::pybullet_grpc::ConfigureOpenGLVisualizerCommand& configureopenglvisualizercommand() const;
  ::pybullet_grpc::ConfigureOpenGLVisualizerCommand* release_configureopenglvisualizercommand();
  ::pybullet_grpc::ConfigureOpenGLVisualizerCommand* mutable_configureopenglvisualizercommand();
  void set_allocated_configureopenglvisualizercommand(::pybullet_grpc::ConfigureOpenGLVisualizerCommand* configureopenglvisualizercommand);

  // .pybullet_grpc.SyncBodiesCommand syncBodiesCommand = 14;
  bool has_syncbodiescommand() const;
  void clear_syncbodiescommand();
  static const int kSyncBodiesCommandFieldNumber = 14;
  private:
  const ::pybullet_grpc::SyncBodiesCommand& _internal_syncbodiescommand() const;
  public:
  const ::pybullet_grpc::SyncBodiesCommand& syncbodiescommand() const;
  ::pybullet_grpc::SyncBodiesCommand* release_syncbodiescommand();
  ::pybullet_grpc::SyncBodiesCommand* mutable_syncbodiescommand();
  void set_allocated_syncbodiescommand(::pybullet_grpc::SyncBodiesCommand* syncbodiescommand);

  // .pybullet_grpc.RequestBodyInfoCommand requestBodyInfoCommand = 15;
  bool has_requestbodyinfocommand() const;
  void clear_requestbodyinfocommand();
  static const int kRequestBodyInfoCommandFieldNumber = 15;
  private:
  const ::pybullet_grpc::RequestBodyInfoCommand& _internal_requestbodyinfocommand() const;
  public:
  const ::pybullet_grpc::RequestBodyInfoCommand& requestbodyinfocommand() const;
  ::pybullet_grpc::RequestBodyInfoCommand* release_requestbodyinfocommand();
  ::pybullet_grpc::RequestBodyInfoCommand* mutable_requestbodyinfocommand();
  void set_allocated_requestbodyinfocommand(::pybullet_grpc::RequestBodyInfoCommand* requestbodyinfocommand);

  // .pybullet_grpc.PhysicsSimulationParametersCommand setPhysicsSimulationParametersCommand = 16;
  bool has_setphysicssimulationparameterscommand() const;
  void clear_setphysicssimulationparameterscommand();
  static const int kSetPhysicsSimulationParametersCommandFieldNumber = 16;
  private:
  const ::pybullet_grpc::PhysicsSimulationParametersCommand& _internal_setphysicssimulationparameterscommand() const;
  public:
  const ::pybullet_grpc::PhysicsSimulationParametersCommand& setphysicssimulationparameterscommand() const;
  ::pybullet_grpc::PhysicsSimulationParametersCommand* release_setphysicssimulationparameterscommand();
  ::pybullet_grpc::PhysicsSimulationParametersCommand* mutable_setphysicssimulationparameterscommand();
  void set_allocated_setphysicssimulationparameterscommand(::pybullet_grpc::PhysicsSimulationParametersCommand* setphysicssimulationparameterscommand);

  // .pybullet_grpc.JointMotorControlCommand jointMotorControlCommand = 17;
  bool has_jointmotorcontrolcommand() const;
  void clear_jointmotorcontrolcommand();
  static const int kJointMotorControlCommandFieldNumber = 17;
  private:
  const ::pybullet_grpc::JointMotorControlCommand& _internal_jointmotorcontrolcommand() const;
  public:
  const ::pybullet_grpc::JointMotorControlCommand& jointmotorcontrolcommand() const;
  ::pybullet_grpc::JointMotorControlCommand* release_jointmotorcontrolcommand();
  ::pybullet_grpc::JointMotorControlCommand* mutable_jointmotorcontrolcommand();
  void set_allocated_jointmotorcontrolcommand(::pybullet_grpc::JointMotorControlCommand* jointmotorcontrolcommand);

  // .pybullet_grpc.UserConstraintCommand userConstraintCommand = 18;
  bool has_userconstraintcommand() const;
  void clear_userconstraintcommand();
  static const int kUserConstraintCommandFieldNumber = 18;
  private:
  const ::pybullet_grpc::UserConstraintCommand& _internal_userconstraintcommand() const;
  public:
  const ::pybullet_grpc::UserConstraintCommand& userconstraintcommand() const;
  ::pybullet_grpc::UserConstraintCommand* release_userconstraintcommand();
  ::pybullet_grpc::UserConstraintCommand* mutable_userconstraintcommand();
  void set_allocated_userconstraintcommand(::pybullet_grpc::UserConstraintCommand* userconstraintcommand);

  // .pybullet_grpc.CheckVersionCommand checkVersionCommand = 19;
  bool has_checkversioncommand() const;
  void clear_checkversioncommand();
  static const int kCheckVersionCommandFieldNumber = 19;
  private:
  const ::pybullet_grpc::CheckVersionCommand& _internal_checkversioncommand() const;
  public:
  const ::pybullet_grpc::CheckVersionCommand& checkversioncommand() const;
  ::pybullet_grpc::CheckVersionCommand* release_checkversioncommand();
  ::pybullet_grpc::CheckVersionCommand* mutable_checkversioncommand();
  void set_allocated_checkversioncommand(::pybullet_grpc::CheckVersionCommand* checkversioncommand);

  // .pybullet_grpc.RequestKeyboardEventsCommand requestKeyboardEventsCommand = 20;
  bool has_requestkeyboardeventscommand() const;
  void clear_requestkeyboardeventscommand();
  static const int kRequestKeyboardEventsCommandFieldNumber = 20;
  private:
  const ::pybullet_grpc::RequestKeyboardEventsCommand& _internal_requestkeyboardeventscommand() const;
  public:
  const ::pybullet_grpc::RequestKeyboardEventsCommand& requestkeyboardeventscommand() const;
  ::pybullet_grpc::RequestKeyboardEventsCommand* release_requestkeyboardeventscommand();
  ::pybullet_grpc::RequestKeyboardEventsCommand* mutable_requestkeyboardeventscommand();
  void set_allocated_requestkeyboardeventscommand(::pybullet_grpc::RequestKeyboardEventsCommand* requestkeyboardeventscommand);

  // .pybullet_grpc.RequestCameraImageCommand requestCameraImageCommand = 21;
  bool has_requestcameraimagecommand() const;
  void clear_requestcameraimagecommand();
  static const int kRequestCameraImageCommandFieldNumber = 21;
  private:
  const ::pybullet_grpc::RequestCameraImageCommand& _internal_requestcameraimagecommand() const;
  public:
  const ::pybullet_grpc::RequestCameraImageCommand& requestcameraimagecommand() const;
  ::pybullet_grpc::RequestCameraImageCommand* release_requestcameraimagecommand();
  ::pybullet_grpc::RequestCameraImageCommand* mutable_requestcameraimagecommand();
  void set_allocated_requestcameraimagecommand(::pybullet_grpc::RequestCameraImageCommand* requestcameraimagecommand);

  // .pybullet_grpc.ResetSimulationCommand resetSimulationCommand = 22;
  bool has_resetsimulationcommand() const;
  void clear_resetsimulationcommand();
  static const int kResetSimulationCommandFieldNumber = 22;
  private:
  const ::pybullet_grpc::ResetSimulationCommand& _internal_resetsimulationcommand() const;
  public:
  const ::pybullet_grpc::ResetSimulationCommand& resetsimulationcommand() const;
  ::pybullet_grpc::ResetSimulationCommand* release_resetsimulationcommand();
  ::pybullet_grpc::ResetSimulationCommand* mutable_resetsimulationcommand();
  void set_allocated_resetsimulationcommand(::pybullet_grpc::ResetSimulationCommand* resetsimulationcommand);

  void clear_commands();
  CommandsCase commands_case() const;
  // @@protoc_insertion_point(class_scope:pybullet_grpc.PyBulletCommand)
 private:
  void set_has_loadurdfcommand();
  void set_has_terminateservercommand();
  void set_has_stepsimulationcommand();
  void set_has_loadsdfcommand();
  void set_has_loadmjcfcommand();
  void set_has_changedynamicscommand();
  void set_has_getdynamicscommand();
  void set_has_initposecommand();
  void set_has_requestactualstatecommand();
  void set_has_configureopenglvisualizercommand();
  void set_has_syncbodiescommand();
  void set_has_requestbodyinfocommand();
  void set_has_setphysicssimulationparameterscommand();
  void set_has_jointmotorcontrolcommand();
  void set_has_userconstraintcommand();
  void set_has_checkversioncommand();
  void set_has_requestkeyboardeventscommand();
  void set_has_requestcameraimagecommand();
  void set_has_resetsimulationcommand();

  inline bool has_commands() const;
  inline void clear_has_commands();

  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
  ::google::protobuf::RepeatedPtrField< ::std::string> binaryblob_;
  ::google::protobuf::RepeatedPtrField< ::std::string> unknowncommandbinaryblob_;
  ::google::protobuf::int32 commandtype_;
  union CommandsUnion {
    CommandsUnion() {}
    ::pybullet_grpc::LoadUrdfCommand* loadurdfcommand_;
    ::pybullet_grpc::TerminateServerCommand* terminateservercommand_;
    ::pybullet_grpc::StepSimulationCommand* stepsimulationcommand_;
    ::pybullet_grpc::LoadSdfCommand* loadsdfcommand_;
    ::pybullet_grpc::LoadMjcfCommand* loadmjcfcommand_;
    ::pybullet_grpc::ChangeDynamicsCommand* changedynamicscommand_;
    ::pybullet_grpc::GetDynamicsCommand* getdynamicscommand_;
    ::pybullet_grpc::InitPoseCommand* initposecommand_;
    ::pybullet_grpc::RequestActualStateCommand* requestactualstatecommand_;
    ::pybullet_grpc::ConfigureOpenGLVisualizerCommand* configureopenglvisualizercommand_;
    ::pybullet_grpc::SyncBodiesCommand* syncbodiescommand_;
    ::pybullet_grpc::RequestBodyInfoCommand* requestbodyinfocommand_;
    ::pybullet_grpc::PhysicsSimulationParametersCommand* setphysicssimulationparameterscommand_;
    ::pybullet_grpc::JointMotorControlCommand* jointmotorcontrolcommand_;
    ::pybullet_grpc::UserConstraintCommand* userconstraintcommand_;
    ::pybullet_grpc::CheckVersionCommand* checkversioncommand_;
    ::pybullet_grpc::RequestKeyboardEventsCommand* requestkeyboardeventscommand_;
    ::pybullet_grpc::RequestCameraImageCommand* requestcameraimagecommand_;
    ::pybullet_grpc::ResetSimulationCommand* resetsimulationcommand_;
  } commands_;
  mutable ::google::protobuf::internal::CachedSize _cached_size_;
  ::google::protobuf::uint32 _oneof_case_[1];

  friend struct ::protobuf_pybullet_2eproto::TableStruct;
};
// -------------------------------------------------------------------

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

  PyBulletStatus(const PyBulletStatus& from);

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

  inline PyBulletStatus& operator=(PyBulletStatus&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }
  #endif
  static const ::google::protobuf::Descriptor* descriptor();
  static const PyBulletStatus& default_instance();

  enum StatusCase {
    kUrdfStatus = 4,
    kSdfStatus = 5,
    kMjcfStatus = 6,
    kGetDynamicsStatus = 7,
    kActualStateStatus = 8,
    kSyncBodiesStatus = 9,
    kRequestBodyInfoStatus = 10,
    kRequestPhysicsSimulationParametersStatus = 11,
    kCheckVersionStatus = 12,
    kUserConstraintStatus = 13,
    kUserConstraintStateStatus = 14,
    kKeyboardEventsStatus = 15,
    kRequestCameraImageStatus = 16,
    STATUS_NOT_SET = 0,
  };

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

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

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

  inline PyBulletStatus* New() const final {
    return CreateMaybeMessage<PyBulletStatus>(NULL);
  }

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

  size_t ByteSizeLong() const final;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input) final;
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const final;
  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
      bool deterministic, ::google::protobuf::uint8* target) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(PyBulletStatus* other);
  private:
  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
    return NULL;
  }
  inline void* MaybeArenaPtr() const {
    return NULL;
  }
  public:

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

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

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

  // repeated bytes binaryBlob = 2;
  int binaryblob_size() const;
  void clear_binaryblob();
  static const int kBinaryBlobFieldNumber = 2;
  const ::std::string& binaryblob(int index) const;
  ::std::string* mutable_binaryblob(int index);
  void set_binaryblob(int index, const ::std::string& value);
  #if LANG_CXX11
  void set_binaryblob(int index, ::std::string&& value);
  #endif
  void set_binaryblob(int index, const char* value);
  void set_binaryblob(int index, const void* value, size_t size);
  ::std::string* add_binaryblob();
  void add_binaryblob(const ::std::string& value);
  #if LANG_CXX11
  void add_binaryblob(::std::string&& value);
  #endif
  void add_binaryblob(const char* value);
  void add_binaryblob(const void* value, size_t size);
  const ::google::protobuf::RepeatedPtrField< ::std::string>& binaryblob() const;
  ::google::protobuf::RepeatedPtrField< ::std::string>* mutable_binaryblob();

  // repeated bytes unknownStatusBinaryBlob = 3;
  int unknownstatusbinaryblob_size() const;
  void clear_unknownstatusbinaryblob();
  static const int kUnknownStatusBinaryBlobFieldNumber = 3;
  const ::std::string& unknownstatusbinaryblob(int index) const;
  ::std::string* mutable_unknownstatusbinaryblob(int index);
  void set_unknownstatusbinaryblob(int index, const ::std::string& value);
  #if LANG_CXX11
  void set_unknownstatusbinaryblob(int index, ::std::string&& value);
  #endif
  void set_unknownstatusbinaryblob(int index, const char* value);
  void set_unknownstatusbinaryblob(int index, const void* value, size_t size);
  ::std::string* add_unknownstatusbinaryblob();
  void add_unknownstatusbinaryblob(const ::std::string& value);
  #if LANG_CXX11
  void add_unknownstatusbinaryblob(::std::string&& value);
  #endif
  void add_unknownstatusbinaryblob(const char* value);
  void add_unknownstatusbinaryblob(const void* value, size_t size);
  const ::google::protobuf::RepeatedPtrField< ::std::string>& unknownstatusbinaryblob() const;
  ::google::protobuf::RepeatedPtrField< ::std::string>* mutable_unknownstatusbinaryblob();

  // int32 statusType = 1;
  void clear_statustype();
  static const int kStatusTypeFieldNumber = 1;
  ::google::protobuf::int32 statustype() const;
  void set_statustype(::google::protobuf::int32 value);

  // .pybullet_grpc.LoadUrdfStatus urdfStatus = 4;
  bool has_urdfstatus() const;
  void clear_urdfstatus();
  static const int kUrdfStatusFieldNumber = 4;
  private:
  const ::pybullet_grpc::LoadUrdfStatus& _internal_urdfstatus() const;
  public:
  const ::pybullet_grpc::LoadUrdfStatus& urdfstatus() const;
  ::pybullet_grpc::LoadUrdfStatus* release_urdfstatus();
  ::pybullet_grpc::LoadUrdfStatus* mutable_urdfstatus();
  void set_allocated_urdfstatus(::pybullet_grpc::LoadUrdfStatus* urdfstatus);

  // .pybullet_grpc.SdfLoadedStatus sdfStatus = 5;
  bool has_sdfstatus() const;
  void clear_sdfstatus();
  static const int kSdfStatusFieldNumber = 5;
  private:
  const ::pybullet_grpc::SdfLoadedStatus& _internal_sdfstatus() const;
  public:
  const ::pybullet_grpc::SdfLoadedStatus& sdfstatus() const;
  ::pybullet_grpc::SdfLoadedStatus* release_sdfstatus();
  ::pybullet_grpc::SdfLoadedStatus* mutable_sdfstatus();
  void set_allocated_sdfstatus(::pybullet_grpc::SdfLoadedStatus* sdfstatus);

  // .pybullet_grpc.MjcfLoadedStatus mjcfStatus = 6;
  bool has_mjcfstatus() const;
  void clear_mjcfstatus();
  static const int kMjcfStatusFieldNumber = 6;
  private:
  const ::pybullet_grpc::MjcfLoadedStatus& _internal_mjcfstatus() const;
  public:
  const ::pybullet_grpc::MjcfLoadedStatus& mjcfstatus() const;
  ::pybullet_grpc::MjcfLoadedStatus* release_mjcfstatus();
  ::pybullet_grpc::MjcfLoadedStatus* mutable_mjcfstatus();
  void set_allocated_mjcfstatus(::pybullet_grpc::MjcfLoadedStatus* mjcfstatus);

  // .pybullet_grpc.GetDynamicsStatus getDynamicsStatus = 7;
  bool has_getdynamicsstatus() const;
  void clear_getdynamicsstatus();
  static const int kGetDynamicsStatusFieldNumber = 7;
  private:
  const ::pybullet_grpc::GetDynamicsStatus& _internal_getdynamicsstatus() const;
  public:
  const ::pybullet_grpc::GetDynamicsStatus& getdynamicsstatus() const;
  ::pybullet_grpc::GetDynamicsStatus* release_getdynamicsstatus();
  ::pybullet_grpc::GetDynamicsStatus* mutable_getdynamicsstatus();
  void set_allocated_getdynamicsstatus(::pybullet_grpc::GetDynamicsStatus* getdynamicsstatus);

  // .pybullet_grpc.SendActualStateStatus actualStateStatus = 8;
  bool has_actualstatestatus() const;
  void clear_actualstatestatus();
  static const int kActualStateStatusFieldNumber = 8;
  private:
  const ::pybullet_grpc::SendActualStateStatus& _internal_actualstatestatus() const;
  public:
  const ::pybullet_grpc::SendActualStateStatus& actualstatestatus() const;
  ::pybullet_grpc::SendActualStateStatus* release_actualstatestatus();
  ::pybullet_grpc::SendActualStateStatus* mutable_actualstatestatus();
  void set_allocated_actualstatestatus(::pybullet_grpc::SendActualStateStatus* actualstatestatus);

  // .pybullet_grpc.SyncBodiesStatus syncBodiesStatus = 9;
  bool has_syncbodiesstatus() const;
  void clear_syncbodiesstatus();
  static const int kSyncBodiesStatusFieldNumber = 9;
  private:
  const ::pybullet_grpc::SyncBodiesStatus& _internal_syncbodiesstatus() const;
  public:
  const ::pybullet_grpc::SyncBodiesStatus& syncbodiesstatus() const;
  ::pybullet_grpc::SyncBodiesStatus* release_syncbodiesstatus();
  ::pybullet_grpc::SyncBodiesStatus* mutable_syncbodiesstatus();
  void set_allocated_syncbodiesstatus(::pybullet_grpc::SyncBodiesStatus* syncbodiesstatus);

  // .pybullet_grpc.RequestBodyInfoStatus requestBodyInfoStatus = 10;
  bool has_requestbodyinfostatus() const;
  void clear_requestbodyinfostatus();
  static const int kRequestBodyInfoStatusFieldNumber = 10;
  private:
  const ::pybullet_grpc::RequestBodyInfoStatus& _internal_requestbodyinfostatus() const;
  public:
  const ::pybullet_grpc::RequestBodyInfoStatus& requestbodyinfostatus() const;
  ::pybullet_grpc::RequestBodyInfoStatus* release_requestbodyinfostatus();
  ::pybullet_grpc::RequestBodyInfoStatus* mutable_requestbodyinfostatus();
  void set_allocated_requestbodyinfostatus(::pybullet_grpc::RequestBodyInfoStatus* requestbodyinfostatus);

  // .pybullet_grpc.PhysicsSimulationParameters requestPhysicsSimulationParametersStatus = 11;
  bool has_requestphysicssimulationparametersstatus() const;
  void clear_requestphysicssimulationparametersstatus();
  static const int kRequestPhysicsSimulationParametersStatusFieldNumber = 11;
  private:
  const ::pybullet_grpc::PhysicsSimulationParameters& _internal_requestphysicssimulationparametersstatus() const;
  public:
  const ::pybullet_grpc::PhysicsSimulationParameters& requestphysicssimulationparametersstatus() const;
  ::pybullet_grpc::PhysicsSimulationParameters* release_requestphysicssimulationparametersstatus();
  ::pybullet_grpc::PhysicsSimulationParameters* mutable_requestphysicssimulationparametersstatus();
  void set_allocated_requestphysicssimulationparametersstatus(::pybullet_grpc::PhysicsSimulationParameters* requestphysicssimulationparametersstatus);

  // .pybullet_grpc.CheckVersionStatus checkVersionStatus = 12;
  bool has_checkversionstatus() const;
  void clear_checkversionstatus();
  static const int kCheckVersionStatusFieldNumber = 12;
  private:
  const ::pybullet_grpc::CheckVersionStatus& _internal_checkversionstatus() const;
  public:
  const ::pybullet_grpc::CheckVersionStatus& checkversionstatus() const;
  ::pybullet_grpc::CheckVersionStatus* release_checkversionstatus();
  ::pybullet_grpc::CheckVersionStatus* mutable_checkversionstatus();
  void set_allocated_checkversionstatus(::pybullet_grpc::CheckVersionStatus* checkversionstatus);

  // .pybullet_grpc.UserConstraintStatus userConstraintStatus = 13;
  bool has_userconstraintstatus() const;
  void clear_userconstraintstatus();
  static const int kUserConstraintStatusFieldNumber = 13;
  private:
  const ::pybullet_grpc::UserConstraintStatus& _internal_userconstraintstatus() const;
  public:
  const ::pybullet_grpc::UserConstraintStatus& userconstraintstatus() const;
  ::pybullet_grpc::UserConstraintStatus* release_userconstraintstatus();
  ::pybullet_grpc::UserConstraintStatus* mutable_userconstraintstatus();
  void set_allocated_userconstraintstatus(::pybullet_grpc::UserConstraintStatus* userconstraintstatus);

  // .pybullet_grpc.UserConstraintStateStatus userConstraintStateStatus = 14;
  bool has_userconstraintstatestatus() const;
  void clear_userconstraintstatestatus();
  static const int kUserConstraintStateStatusFieldNumber = 14;
  private:
  const ::pybullet_grpc::UserConstraintStateStatus& _internal_userconstraintstatestatus() const;
  public:
  const ::pybullet_grpc::UserConstraintStateStatus& userconstraintstatestatus() const;
  ::pybullet_grpc::UserConstraintStateStatus* release_userconstraintstatestatus();
  ::pybullet_grpc::UserConstraintStateStatus* mutable_userconstraintstatestatus();
  void set_allocated_userconstraintstatestatus(::pybullet_grpc::UserConstraintStateStatus* userconstraintstatestatus);

  // .pybullet_grpc.KeyboardEventsStatus keyboardEventsStatus = 15;
  bool has_keyboardeventsstatus() const;
  void clear_keyboardeventsstatus();
  static const int kKeyboardEventsStatusFieldNumber = 15;
  private:
  const ::pybullet_grpc::KeyboardEventsStatus& _internal_keyboardeventsstatus() const;
  public:
  const ::pybullet_grpc::KeyboardEventsStatus& keyboardeventsstatus() const;
  ::pybullet_grpc::KeyboardEventsStatus* release_keyboardeventsstatus();
  ::pybullet_grpc::KeyboardEventsStatus* mutable_keyboardeventsstatus();
  void set_allocated_keyboardeventsstatus(::pybullet_grpc::KeyboardEventsStatus* keyboardeventsstatus);

  // .pybullet_grpc.RequestCameraImageStatus requestCameraImageStatus = 16;
  bool has_requestcameraimagestatus() const;
  void clear_requestcameraimagestatus();
  static const int kRequestCameraImageStatusFieldNumber = 16;
  private:
  const ::pybullet_grpc::RequestCameraImageStatus& _internal_requestcameraimagestatus() const;
  public:
  const ::pybullet_grpc::RequestCameraImageStatus& requestcameraimagestatus() const;
  ::pybullet_grpc::RequestCameraImageStatus* release_requestcameraimagestatus();
  ::pybullet_grpc::RequestCameraImageStatus* mutable_requestcameraimagestatus();
  void set_allocated_requestcameraimagestatus(::pybullet_grpc::RequestCameraImageStatus* requestcameraimagestatus);

  void clear_status();
  StatusCase status_case() const;
  // @@protoc_insertion_point(class_scope:pybullet_grpc.PyBulletStatus)
 private:
  void set_has_urdfstatus();
  void set_has_sdfstatus();
  void set_has_mjcfstatus();
  void set_has_getdynamicsstatus();
  void set_has_actualstatestatus();
  void set_has_syncbodiesstatus();
  void set_has_requestbodyinfostatus();
  void set_has_requestphysicssimulationparametersstatus();
  void set_has_checkversionstatus();
  void set_has_userconstraintstatus();
  void set_has_userconstraintstatestatus();
  void set_has_keyboardeventsstatus();
  void set_has_requestcameraimagestatus();

  inline bool has_status() const;
  inline void clear_has_status();

  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
  ::google::protobuf::RepeatedPtrField< ::std::string> binaryblob_;
  ::google::protobuf::RepeatedPtrField< ::std::string> unknownstatusbinaryblob_;
  ::google::protobuf::int32 statustype_;
  union StatusUnion {
    StatusUnion() {}
    ::pybullet_grpc::LoadUrdfStatus* urdfstatus_;
    ::pybullet_grpc::SdfLoadedStatus* sdfstatus_;
    ::pybullet_grpc::MjcfLoadedStatus* mjcfstatus_;
    ::pybullet_grpc::GetDynamicsStatus* getdynamicsstatus_;
    ::pybullet_grpc::SendActualStateStatus* actualstatestatus_;
    ::pybullet_grpc::SyncBodiesStatus* syncbodiesstatus_;
    ::pybullet_grpc::RequestBodyInfoStatus* requestbodyinfostatus_;
    ::pybullet_grpc::PhysicsSimulationParameters* requestphysicssimulationparametersstatus_;
    ::pybullet_grpc::CheckVersionStatus* checkversionstatus_;
    ::pybullet_grpc::UserConstraintStatus* userconstraintstatus_;
    ::pybullet_grpc::UserConstraintStateStatus* userconstraintstatestatus_;
    ::pybullet_grpc::KeyboardEventsStatus* keyboardeventsstatus_;
    ::pybullet_grpc::RequestCameraImageStatus* requestcameraimagestatus_;
  } status_;
  mutable ::google::protobuf::internal::CachedSize _cached_size_;
  ::google::protobuf::uint32 _oneof_case_[1];

  friend struct ::protobuf_pybullet_2eproto::TableStruct;
};
// ===================================================================


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

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

// double x = 1;
inline void vec3::clear_x() {
  x_ = 0;
}
inline double vec3::x() const {
  // @@protoc_insertion_point(field_get:pybullet_grpc.vec3.x)
  return x_;
}
inline void vec3::set_x(double value) {
  
  x_ = value;
  // @@protoc_insertion_point(field_set:pybullet_grpc.vec3.x)
}

// double y = 2;
inline void vec3::clear_y() {
  y_ = 0;
}
inline double vec3::y() const {
  // @@protoc_insertion_point(field_get:pybullet_grpc.vec3.y)
  return y_;
}
inline void vec3::set_y(double value) {
  
  y_ = value;
  // @@protoc_insertion_point(field_set:pybullet_grpc.vec3.y)
}

// double z = 3;
inline void vec3::clear_z() {
  z_ = 0;
}
inline double vec3::z() const {
  // @@protoc_insertion_point(field_get:pybullet_grpc.vec3.z)
  return z_;
}
inline void vec3::set_z(double value) {
  
  z_ = value;
  // @@protoc_insertion_point(field_set:pybullet_grpc.vec3.z)
}

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

// quat4

// double x = 1;
inline void quat4::clear_x() {
  x_ = 0;
}
inline double quat4::x() const {
  // @@protoc_insertion_point(field_get:pybullet_grpc.quat4.x)
  return x_;
}
inline void quat4::set_x(double value) {
  
  x_ = value;
  // @@protoc_insertion_point(field_set:pybullet_grpc.quat4.x)
}

// double y = 2;
inline void quat4::clear_y() {
  y_ = 0;
}
inline double quat4::y() const {
  // @@protoc_insertion_point(field_get:pybullet_grpc.quat4.y)
  return y_;
}
inline void quat4::set_y(double value) {
  
  y_ = value;
  // @@protoc_insertion_point(field_set:pybullet_grpc.quat4.y)
}

// double z = 3;
inline void quat4::clear_z() {
  z_ = 0;
}
inline double quat4::z() const {
  // @@protoc_insertion_point(field_get:pybullet_grpc.quat4.z)
  return z_;
}
inline void quat4::set_z(double value) {
  
  z_ = value;
  // @@protoc_insertion_point(field_set:pybullet_grpc.quat4.z)
}

// double w = 4;
inline void quat4::clear_w() {
  w_ = 0;
}
inline double quat4::w() const {
  // @@protoc_insertion_point(field_get:pybullet_grpc.quat4.w)
  return w_;
}
inline void quat4::set_w(double value) {
  
  w_ = value;
  // @@protoc_insertion_point(field_set:pybullet_grpc.quat4.w)
}

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

// vec4

// double x = 1;
inline void vec4::clear_x() {
  x_ = 0;
}
inline double vec4::x() const {
  // @@protoc_insertion_point(field_get:pybullet_grpc.vec4.x)
  return x_;
}
inline void vec4::set_x(double value) {
  
  x_ = value;
  // @@protoc_insertion_point(field_set:pybullet_grpc.vec4.x)
}

// double y = 2;
inline void vec4::clear_y() {
  y_ = 0;
}
inline double vec4::y() const {
  // @@protoc_insertion_point(field_get:pybullet_grpc.vec4.y)
  return y_;
}
inline void vec4::set_y(double value) {
  
  y_ = value;
  // @@protoc_insertion_point(field_set:pybullet_grpc.vec4.y)
}

// double z = 3;
inline void vec4::clear_z() {
  z_ = 0;
}
inline double vec4::z() const {
  // @@protoc_insertion_point(field_get:pybullet_grpc.vec4.z)
  return z_;
}
inline void vec4::set_z(double value) {
  
  z_ = value;
  // @@protoc_insertion_point(field_set:pybullet_grpc.vec4.z)
}

// double w = 4;
inline void vec4::clear_w() {
  w_ = 0;
}
inline double vec4::w() const {
  // @@protoc_insertion_point(field_get:pybullet_grpc.vec4.w)
  return w_;
}
inline void vec4::set_w(double value) {
  
  w_ = value;
  // @@protoc_insertion_point(field_set:pybullet_grpc.vec4.w)
}

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

// transform

// .pybullet_grpc.vec3 origin = 1;
inline bool transform::has_origin() const {
  return this != internal_default_instance() && origin_ != NULL;
}
inline void transform::clear_origin() {
  if (GetArenaNoVirtual() == NULL && origin_ != NULL) {
    delete origin_;
  }
  origin_ = NULL;
}
inline const ::pybullet_grpc::vec3& transform::_internal_origin() const {
  return *origin_;
}
inline const ::pybullet_grpc::vec3& transform::origin() const {
  const ::pybullet_grpc::vec3* p = origin_;
  // @@protoc_insertion_point(field_get:pybullet_grpc.transform.origin)
  return p != NULL ? *p : *reinterpret_cast<const ::pybullet_grpc::vec3*>(
      &::pybullet_grpc::_vec3_default_instance_);
}
inline ::pybullet_grpc::vec3* transform::release_origin() {
  // @@protoc_insertion_point(field_release:pybullet_grpc.transform.origin)
  
  ::pybullet_grpc::vec3* temp = origin_;
  origin_ = NULL;
  return temp;
}
inline ::pybullet_grpc::vec3* transform::mutable_origin() {
  
  if (origin_ == NULL) {
    auto* p = CreateMaybeMessage<::pybullet_grpc::vec3>(GetArenaNoVirtual());
    origin_ = p;
  }
  // @@protoc_insertion_point(field_mutable:pybullet_grpc.transform.origin)
  return origin_;
}
inline void transform::set_allocated_origin(::pybullet_grpc::vec3* origin) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete origin_;
  }
  if (origin) {
    ::google::protobuf::Arena* submessage_arena = NULL;
    if (message_arena != submessage_arena) {
      origin = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, origin, submessage_arena);
    }
    
  } else {
    
  }
  origin_ = origin;
  // @@protoc_insertion_point(field_set_allocated:pybullet_grpc.transform.origin)
}

// .pybullet_grpc.quat4 orientation = 2;
inline bool transform::has_orientation() const {
  return this != internal_default_instance() && orientation_ != NULL;
}
inline void transform::clear_orientation() {
  if (GetArenaNoVirtual() == NULL && orientation_ != NULL) {
    delete orientation_;
  }
  orientation_ = NULL;
}
inline const ::pybullet_grpc::quat4& transform::_internal_orientation() const {
  return *orientation_;
}
inline const ::pybullet_grpc::quat4& transform::orientation() const {
  const ::pybullet_grpc::quat4* p = orientation_;
  // @@protoc_insertion_point(field_get:pybullet_grpc.transform.orientation)
  return p != NULL ? *p : *reinterpret_cast<const ::pybullet_grpc::quat4*>(
      &::pybullet_grpc::_quat4_default_instance_);
}
inline ::pybullet_grpc::quat4* transform::release_orientation() {
  // @@protoc_insertion_point(field_release:pybullet_grpc.transform.orientation)
  
  ::pybullet_grpc::quat4* temp = orientation_;
  orientation_ = NULL;
  return temp;
}
inline ::pybullet_grpc::quat4* transform::mutable_orientation() {
  
  if (orientation_ == NULL) {
    auto* p = CreateMaybeMessage<::pybullet_grpc::quat4>(GetArenaNoVirtual());
    orientation_ = p;
  }
  // @@protoc_insertion_point(field_mutable:pybullet_grpc.transform.orientation)
  return orientation_;
}
inline void transform::set_allocated_orientation(::pybullet_grpc::quat4* orientation) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete orientation_;
  }
  if (orientation) {
    ::google::protobuf::Arena* submessage_arena = NULL;
    if (message_arena != submessage_arena) {
      orientation = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, orientation, submessage_arena);
    }
    
  } else {
    
  }
  orientation_ = orientation;
  // @@protoc_insertion_point(field_set_allocated:pybullet_grpc.transform.orientation)
}

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

// matrix4x4

// repeated double elems = 1;
inline int matrix4x4::elems_size() const {
  return elems_.size();
}
inline void matrix4x4::clear_elems() {
  elems_.Clear();
}
inline double matrix4x4::elems(int index) const {
  // @@protoc_insertion_point(field_get:pybullet_grpc.matrix4x4.elems)
  return elems_.Get(index);
}
inline void matrix4x4::set_elems(int index, double value) {
  elems_.Set(index, value);
  // @@protoc_insertion_point(field_set:pybullet_grpc.matrix4x4.elems)
}
inline void matrix4x4::add_elems(double value) {
  elems_.Add(value);
  // @@protoc_insertion_point(field_add:pybullet_grpc.matrix4x4.elems)
}
inline const ::google::protobuf::RepeatedField< double >&
matrix4x4::elems() const {
  // @@protoc_insertion_point(field_list:pybullet_grpc.matrix4x4.elems)
  return elems_;
}
inline ::google::protobuf::RepeatedField< double >*
matrix4x4::mutable_elems() {
  // @@protoc_insertion_point(field_mutable_list:pybullet_grpc.matrix4x4.elems)
  return &elems_;
}

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

// CheckVersionCommand

// int32 clientVersion = 1;
inline void CheckVersionCommand::clear_clientversion() {
  clientversion_ = 0;
}
inline ::google::protobuf::int32 CheckVersionCommand::clientversion() const {
  // @@protoc_insertion_point(field_get:pybullet_grpc.CheckVersionCommand.clientVersion)
  return clientversion_;
}
inline void CheckVersionCommand::set_clientversion(::google::protobuf::int32 value) {
  
  clientversion_ = value;
  // @@protoc_insertion_point(field_set:pybullet_grpc.CheckVersionCommand.clientVersion)
}

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

// CheckVersionStatus

// int32 serverVersion = 1;
inline void CheckVersionStatus::clear_serverversion() {
  serverversion_ = 0;
}
inline ::google::protobuf::int32 CheckVersionStatus::serverversion() const {
  // @@protoc_insertion_point(field_get:pybullet_grpc.CheckVersionStatus.serverVersion)
  return serverversion_;
}
inline void CheckVersionStatus::set_serverversion(::google::protobuf::int32 value) {
  
  serverversion_ = value;
  // @@protoc_insertion_point(field_set:pybullet_grpc.CheckVersionStatus.serverVersion)
}

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

// TerminateServerCommand

// string exitReason = 1;
inline void TerminateServerCommand::clear_exitreason() {
  exitreason_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline const ::std::string& TerminateServerCommand::exitreason() const {
  // @@protoc_insertion_point(field_get:pybullet_grpc.TerminateServerCommand.exitReason)
  return exitreason_.GetNoArena();
}
inline void TerminateServerCommand::set_exitreason(const ::std::string& value) {
  
  exitreason_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:pybullet_grpc.TerminateServerCommand.exitReason)
}
#if LANG_CXX11
inline void TerminateServerCommand::set_exitreason(::std::string&& value) {
  
  exitreason_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:pybullet_grpc.TerminateServerCommand.exitReason)
}
#endif
inline void TerminateServerCommand::set_exitreason(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  
  exitreason_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:pybullet_grpc.TerminateServerCommand.exitReason)
}
inline void TerminateServerCommand::set_exitreason(const char* value, size_t size) {
  
  exitreason_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:pybullet_grpc.TerminateServerCommand.exitReason)
}
inline ::std::string* TerminateServerCommand::mutable_exitreason() {
  
  // @@protoc_insertion_point(field_mutable:pybullet_grpc.TerminateServerCommand.exitReason)
  return exitreason_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline ::std::string* TerminateServerCommand::release_exitreason() {
  // @@protoc_insertion_point(field_release:pybullet_grpc.TerminateServerCommand.exitReason)
  
  return exitreason_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline void TerminateServerCommand::set_allocated_exitreason(::std::string* exitreason) {
  if (exitreason != NULL) {
    
  } else {
    
  }
  exitreason_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), exitreason);
  // @@protoc_insertion_point(field_set_allocated:pybullet_grpc.TerminateServerCommand.exitReason)
}

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

// StepSimulationCommand

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

// SyncBodiesCommand

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

// SyncBodiesStatus

// repeated int32 bodyUniqueIds = 1;
inline int SyncBodiesStatus::bodyuniqueids_size() const {
  return bodyuniqueids_.size();
}
inline void SyncBodiesStatus::clear_bodyuniqueids() {
  bodyuniqueids_.Clear();
}
inline ::google::protobuf::int32 SyncBodiesStatus::bodyuniqueids(int index) const {
  // @@protoc_insertion_point(field_get:pybullet_grpc.SyncBodiesStatus.bodyUniqueIds)
  return bodyuniqueids_.Get(index);
}
inline void SyncBodiesStatus::set_bodyuniqueids(int index, ::google::protobuf::int32 value) {
  bodyuniqueids_.Set(index, value);
  // @@protoc_insertion_point(field_set:pybullet_grpc.SyncBodiesStatus.bodyUniqueIds)
}
inline void SyncBodiesStatus::add_bodyuniqueids(::google::protobuf::int32 value) {
  bodyuniqueids_.Add(value);
  // @@protoc_insertion_point(field_add:pybullet_grpc.SyncBodiesStatus.bodyUniqueIds)
}
inline const ::google::protobuf::RepeatedField< ::google::protobuf::int32 >&
SyncBodiesStatus::bodyuniqueids() const {
  // @@protoc_insertion_point(field_list:pybullet_grpc.SyncBodiesStatus.bodyUniqueIds)
  return bodyuniqueids_;
}
inline ::google::protobuf::RepeatedField< ::google::protobuf::int32 >*
SyncBodiesStatus::mutable_bodyuniqueids() {
  // @@protoc_insertion_point(field_mutable_list:pybullet_grpc.SyncBodiesStatus.bodyUniqueIds)
  return &bodyuniqueids_;
}

// repeated int32 userConstraintUniqueIds = 2;
inline int SyncBodiesStatus::userconstraintuniqueids_size() const {
  return userconstraintuniqueids_.size();
}
inline void SyncBodiesStatus::clear_userconstraintuniqueids() {
  userconstraintuniqueids_.Clear();
}
inline ::google::protobuf::int32 SyncBodiesStatus::userconstraintuniqueids(int index) const {
  // @@protoc_insertion_point(field_get:pybullet_grpc.SyncBodiesStatus.userConstraintUniqueIds)
  return userconstraintuniqueids_.Get(index);
}
inline void SyncBodiesStatus::set_userconstraintuniqueids(int index, ::google::protobuf::int32 value) {
  userconstraintuniqueids_.Set(index, value);
  // @@protoc_insertion_point(field_set:pybullet_grpc.SyncBodiesStatus.userConstraintUniqueIds)
}
inline void SyncBodiesStatus::add_userconstraintuniqueids(::google::protobuf::int32 value) {
  userconstraintuniqueids_.Add(value);
  // @@protoc_insertion_point(field_add:pybullet_grpc.SyncBodiesStatus.userConstraintUniqueIds)
}
inline const ::google::protobuf::RepeatedField< ::google::protobuf::int32 >&
SyncBodiesStatus::userconstraintuniqueids() const {
  // @@protoc_insertion_point(field_list:pybullet_grpc.SyncBodiesStatus.userConstraintUniqueIds)
  return userconstraintuniqueids_;
}
inline ::google::protobuf::RepeatedField< ::google::protobuf::int32 >*
SyncBodiesStatus::mutable_userconstraintuniqueids() {
  // @@protoc_insertion_point(field_mutable_list:pybullet_grpc.SyncBodiesStatus.userConstraintUniqueIds)
  return &userconstraintuniqueids_;
}

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

// RequestBodyInfoCommand

// int32 bodyUniqueId = 1;
inline void RequestBodyInfoCommand::clear_bodyuniqueid() {
  bodyuniqueid_ = 0;
}
inline ::google::protobuf::int32 RequestBodyInfoCommand::bodyuniqueid() const {
  // @@protoc_insertion_point(field_get:pybullet_grpc.RequestBodyInfoCommand.bodyUniqueId)
  return bodyuniqueid_;
}
inline void RequestBodyInfoCommand::set_bodyuniqueid(::google::protobuf::int32 value) {
  
  bodyuniqueid_ = value;
  // @@protoc_insertion_point(field_set:pybullet_grpc.RequestBodyInfoCommand.bodyUniqueId)
}

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

// RequestBodyInfoStatus

// int32 bodyUniqueId = 1;
inline void RequestBodyInfoStatus::clear_bodyuniqueid() {
  bodyuniqueid_ = 0;
}
inline ::google::protobuf::int32 RequestBodyInfoStatus::bodyuniqueid() const {
  // @@protoc_insertion_point(field_get:pybullet_grpc.RequestBodyInfoStatus.bodyUniqueId)
  return bodyuniqueid_;
}
inline void RequestBodyInfoStatus::set_bodyuniqueid(::google::protobuf::int32 value) {
  
  bodyuniqueid_ = value;
  // @@protoc_insertion_point(field_set:pybullet_grpc.RequestBodyInfoStatus.bodyUniqueId)
}

// string bodyName = 2;
inline void RequestBodyInfoStatus::clear_bodyname() {
  bodyname_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline const ::std::string& RequestBodyInfoStatus::bodyname() const {
  // @@protoc_insertion_point(field_get:pybullet_grpc.RequestBodyInfoStatus.bodyName)
  return bodyname_.GetNoArena();
}
inline void RequestBodyInfoStatus::set_bodyname(const ::std::string& value) {
  
  bodyname_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:pybullet_grpc.RequestBodyInfoStatus.bodyName)
}
#if LANG_CXX11
inline void RequestBodyInfoStatus::set_bodyname(::std::string&& value) {
  
  bodyname_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:pybullet_grpc.RequestBodyInfoStatus.bodyName)
}
#endif
inline void RequestBodyInfoStatus::set_bodyname(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  
  bodyname_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:pybullet_grpc.RequestBodyInfoStatus.bodyName)
}
inline void RequestBodyInfoStatus::set_bodyname(const char* value, size_t size) {
  
  bodyname_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:pybullet_grpc.RequestBodyInfoStatus.bodyName)
}
inline ::std::string* RequestBodyInfoStatus::mutable_bodyname() {
  
  // @@protoc_insertion_point(field_mutable:pybullet_grpc.RequestBodyInfoStatus.bodyName)
  return bodyname_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline ::std::string* RequestBodyInfoStatus::release_bodyname() {
  // @@protoc_insertion_point(field_release:pybullet_grpc.RequestBodyInfoStatus.bodyName)
  
  return bodyname_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline void RequestBodyInfoStatus::set_allocated_bodyname(::std::string* bodyname) {
  if (bodyname != NULL) {
    
  } else {
    
  }
  bodyname_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), bodyname);
  // @@protoc_insertion_point(field_set_allocated:pybullet_grpc.RequestBodyInfoStatus.bodyName)
}

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

// LoadUrdfCommand

// string fileName = 1;
inline void LoadUrdfCommand::clear_filename() {
  filename_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline const ::std::string& LoadUrdfCommand::filename() const {
  // @@protoc_insertion_point(field_get:pybullet_grpc.LoadUrdfCommand.fileName)
  return filename_.GetNoArena();
}
inline void LoadUrdfCommand::set_filename(const ::std::string& value) {
  
  filename_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:pybullet_grpc.LoadUrdfCommand.fileName)
}
#if LANG_CXX11
inline void LoadUrdfCommand::set_filename(::std::string&& value) {
  
  filename_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:pybullet_grpc.LoadUrdfCommand.fileName)
}
#endif
inline void LoadUrdfCommand::set_filename(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  
  filename_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:pybullet_grpc.LoadUrdfCommand.fileName)
}
inline void LoadUrdfCommand::set_filename(const char* value, size_t size) {
  
  filename_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:pybullet_grpc.LoadUrdfCommand.fileName)
}
inline ::std::string* LoadUrdfCommand::mutable_filename() {
  
  // @@protoc_insertion_point(field_mutable:pybullet_grpc.LoadUrdfCommand.fileName)
  return filename_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline ::std::string* LoadUrdfCommand::release_filename() {
  // @@protoc_insertion_point(field_release:pybullet_grpc.LoadUrdfCommand.fileName)
  
  return filename_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline void LoadUrdfCommand::set_allocated_filename(::std::string* filename) {
  if (filename != NULL) {
    
  } else {
    
  }
  filename_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), filename);
  // @@protoc_insertion_point(field_set_allocated:pybullet_grpc.LoadUrdfCommand.fileName)
}

// .pybullet_grpc.vec3 initialPosition = 2;
inline bool LoadUrdfCommand::has_initialposition() const {
  return this != internal_default_instance() && initialposition_ != NULL;
}
inline void LoadUrdfCommand::clear_initialposition() {
  if (GetArenaNoVirtual() == NULL && initialposition_ != NULL) {
    delete initialposition_;
  }
  initialposition_ = NULL;
}
inline const ::pybullet_grpc::vec3& LoadUrdfCommand::_internal_initialposition() const {
  return *initialposition_;
}
inline const ::pybullet_grpc::vec3& LoadUrdfCommand::initialposition() const {
  const ::pybullet_grpc::vec3* p = initialposition_;
  // @@protoc_insertion_point(field_get:pybullet_grpc.LoadUrdfCommand.initialPosition)
  return p != NULL ? *p : *reinterpret_cast<const ::pybullet_grpc::vec3*>(
      &::pybullet_grpc::_vec3_default_instance_);
}
inline ::pybullet_grpc::vec3* LoadUrdfCommand::release_initialposition() {
  // @@protoc_insertion_point(field_release:pybullet_grpc.LoadUrdfCommand.initialPosition)
  
  ::pybullet_grpc::vec3* temp = initialposition_;
  initialposition_ = NULL;
  return temp;
}
inline ::pybullet_grpc::vec3* LoadUrdfCommand::mutable_initialposition() {
  
  if (initialposition_ == NULL) {
    auto* p = CreateMaybeMessage<::pybullet_grpc::vec3>(GetArenaNoVirtual());
    initialposition_ = p;
  }
  // @@protoc_insertion_point(field_mutable:pybullet_grpc.LoadUrdfCommand.initialPosition)
  return initialposition_;
}
inline void LoadUrdfCommand::set_allocated_initialposition(::pybullet_grpc::vec3* initialposition) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete initialposition_;
  }
  if (initialposition) {
    ::google::protobuf::Arena* submessage_arena = NULL;
    if (message_arena != submessage_arena) {
      initialposition = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, initialposition, submessage_arena);
    }
    
  } else {
    
  }
  initialposition_ = initialposition;
  // @@protoc_insertion_point(field_set_allocated:pybullet_grpc.LoadUrdfCommand.initialPosition)
}

// .pybullet_grpc.quat4 initialOrientation = 3;
inline bool LoadUrdfCommand::has_initialorientation() const {
  return this != internal_default_instance() && initialorientation_ != NULL;
}
inline void LoadUrdfCommand::clear_initialorientation() {
  if (GetArenaNoVirtual() == NULL && initialorientation_ != NULL) {
    delete initialorientation_;
  }
  initialorientation_ = NULL;
}
inline const ::pybullet_grpc::quat4& LoadUrdfCommand::_internal_initialorientation() const {
  return *initialorientation_;
}
inline const ::pybullet_grpc::quat4& LoadUrdfCommand::initialorientation() const {
  const ::pybullet_grpc::quat4* p = initialorientation_;
  // @@protoc_insertion_point(field_get:pybullet_grpc.LoadUrdfCommand.initialOrientation)
  return p != NULL ? *p : *reinterpret_cast<const ::pybullet_grpc::quat4*>(
      &::pybullet_grpc::_quat4_default_instance_);
}
inline ::pybullet_grpc::quat4* LoadUrdfCommand::release_initialorientation() {
  // @@protoc_insertion_point(field_release:pybullet_grpc.LoadUrdfCommand.initialOrientation)
  
  ::pybullet_grpc::quat4* temp = initialorientation_;
  initialorientation_ = NULL;
  return temp;
}
inline ::pybullet_grpc::quat4* LoadUrdfCommand::mutable_initialorientation() {
  
  if (initialorientation_ == NULL) {
    auto* p = CreateMaybeMessage<::pybullet_grpc::quat4>(GetArenaNoVirtual());
    initialorientation_ = p;
  }
  // @@protoc_insertion_point(field_mutable:pybullet_grpc.LoadUrdfCommand.initialOrientation)
  return initialorientation_;
}
inline void LoadUrdfCommand::set_allocated_initialorientation(::pybullet_grpc::quat4* initialorientation) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete initialorientation_;
  }
  if (initialorientation) {
    ::google::protobuf::Arena* submessage_arena = NULL;
    if (message_arena != submessage_arena) {
      initialorientation = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, initialorientation, submessage_arena);
    }
    
  } else {
    
  }
  initialorientation_ = initialorientation;
  // @@protoc_insertion_point(field_set_allocated:pybullet_grpc.LoadUrdfCommand.initialOrientation)
}

// int32 useMultiBody = 4;
inline bool LoadUrdfCommand::has_usemultibody() const {
  return hasUseMultiBody_case() == kUseMultiBody;
}
inline void LoadUrdfCommand::set_has_usemultibody() {
  _oneof_case_[0] = kUseMultiBody;
}
inline void LoadUrdfCommand::clear_usemultibody() {
  if (has_usemultibody()) {
    hasUseMultiBody_.usemultibody_ = 0;
    clear_has_hasUseMultiBody();
  }
}
inline ::google::protobuf::int32 LoadUrdfCommand::usemultibody() const {
  // @@protoc_insertion_point(field_get:pybullet_grpc.LoadUrdfCommand.useMultiBody)
  if (has_usemultibody()) {
    return hasUseMultiBody_.usemultibody_;
  }
  return 0;
}
inline void LoadUrdfCommand::set_usemultibody(::google::protobuf::int32 value) {
  if (!has_usemultibody()) {
    clear_hasUseMultiBody();
    set_has_usemultibody();
  }
  hasUseMultiBody_.usemultibody_ = value;
  // @@protoc_insertion_point(field_set:pybullet_grpc.LoadUrdfCommand.useMultiBody)
}

// bool useFixedBase = 5;
inline bool LoadUrdfCommand::has_usefixedbase() const {
  return hasUseFixedBase_case() == kUseFixedBase;
}
inline void LoadUrdfCommand::set_has_usefixedbase() {
  _oneof_case_[1] = kUseFixedBase;
}
inline void LoadUrdfCommand::clear_usefixedbase() {
  if (has_usefixedbase()) {
    hasUseFixedBase_.usefixedbase_ = false;
    clear_has_hasUseFixedBase();
  }
}
inline bool LoadUrdfCommand::usefixedbase() const {
  // @@protoc_insertion_point(field_get:pybullet_grpc.LoadUrdfCommand.useFixedBase)
  if (has_usefixedbase()) {
    return hasUseFixedBase_.usefixedbase_;
  }
  return false;
}
inline void LoadUrdfCommand::set_usefixedbase(bool value) {
  if (!has_usefixedbase()) {
    clear_hasUseFixedBase();
    set_has_usefixedbase();
  }
  hasUseFixedBase_.usefixedbase_ = value;
  // @@protoc_insertion_point(field_set:pybullet_grpc.LoadUrdfCommand.useFixedBase)
}

// int32 flags = 6;
inline void LoadUrdfCommand::clear_flags() {
  flags_ = 0;
}
inline ::google::protobuf::int32 LoadUrdfCommand::flags() const {
  // @@protoc_insertion_point(field_get:pybullet_grpc.LoadUrdfCommand.flags)
  return flags_;
}
inline void LoadUrdfCommand::set_flags(::google::protobuf::int32 value) {
  
  flags_ = value;
  // @@protoc_insertion_point(field_set:pybullet_grpc.LoadUrdfCommand.flags)
}

// double globalScaling = 7;
inline bool LoadUrdfCommand::has_globalscaling() const {
  return hasGlobalScaling_case() == kGlobalScaling;
}
inline void LoadUrdfCommand::set_has_globalscaling() {
  _oneof_case_[2] = kGlobalScaling;
}
inline void LoadUrdfCommand::clear_globalscaling() {
  if (has_globalscaling()) {
    hasGlobalScaling_.globalscaling_ = 0;
    clear_has_hasGlobalScaling();
  }
}
inline double LoadUrdfCommand::globalscaling() const {
  // @@protoc_insertion_point(field_get:pybullet_grpc.LoadUrdfCommand.globalScaling)
  if (has_globalscaling()) {
    return hasGlobalScaling_.globalscaling_;
  }
  return 0;
}
inline void LoadUrdfCommand::set_globalscaling(double value) {
  if (!has_globalscaling()) {
    clear_hasGlobalScaling();
    set_has_globalscaling();
  }
  hasGlobalScaling_.globalscaling_ = value;
  // @@protoc_insertion_point(field_set:pybullet_grpc.LoadUrdfCommand.globalScaling)
}

inline bool LoadUrdfCommand::has_hasUseMultiBody() const {
  return hasUseMultiBody_case() != HASUSEMULTIBODY_NOT_SET;
}
inline void LoadUrdfCommand::clear_has_hasUseMultiBody() {
  _oneof_case_[0] = HASUSEMULTIBODY_NOT_SET;
}
inline bool LoadUrdfCommand::has_hasUseFixedBase() const {
  return hasUseFixedBase_case() != HASUSEFIXEDBASE_NOT_SET;
}
inline void LoadUrdfCommand::clear_has_hasUseFixedBase() {
  _oneof_case_[1] = HASUSEFIXEDBASE_NOT_SET;
}
inline bool LoadUrdfCommand::has_hasGlobalScaling() const {
  return hasGlobalScaling_case() != HASGLOBALSCALING_NOT_SET;
}
inline void LoadUrdfCommand::clear_has_hasGlobalScaling() {
  _oneof_case_[2] = HASGLOBALSCALING_NOT_SET;
}
inline LoadUrdfCommand::HasUseMultiBodyCase LoadUrdfCommand::hasUseMultiBody_case() const {
  return LoadUrdfCommand::HasUseMultiBodyCase(_oneof_case_[0]);
}
inline LoadUrdfCommand::HasUseFixedBaseCase LoadUrdfCommand::hasUseFixedBase_case() const {
  return LoadUrdfCommand::HasUseFixedBaseCase(_oneof_case_[1]);
}
inline LoadUrdfCommand::HasGlobalScalingCase LoadUrdfCommand::hasGlobalScaling_case() const {
  return LoadUrdfCommand::HasGlobalScalingCase(_oneof_case_[2]);
}
// -------------------------------------------------------------------

// LoadUrdfStatus

// int32 bodyUniqueId = 1;
inline void LoadUrdfStatus::clear_bodyuniqueid() {
  bodyuniqueid_ = 0;
}
inline ::google::protobuf::int32 LoadUrdfStatus::bodyuniqueid() const {
  // @@protoc_insertion_point(field_get:pybullet_grpc.LoadUrdfStatus.bodyUniqueId)
  return bodyuniqueid_;
}
inline void LoadUrdfStatus::set_bodyuniqueid(::google::protobuf::int32 value) {
  
  bodyuniqueid_ = value;
  // @@protoc_insertion_point(field_set:pybullet_grpc.LoadUrdfStatus.bodyUniqueId)
}

// string bodyName = 2;
inline void LoadUrdfStatus::clear_bodyname() {
  bodyname_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline const ::std::string& LoadUrdfStatus::bodyname() const {
  // @@protoc_insertion_point(field_get:pybullet_grpc.LoadUrdfStatus.bodyName)
  return bodyname_.GetNoArena();
}
inline void LoadUrdfStatus::set_bodyname(const ::std::string& value) {
  
  bodyname_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:pybullet_grpc.LoadUrdfStatus.bodyName)
}
#if LANG_CXX11
inline void LoadUrdfStatus::set_bodyname(::std::string&& value) {
  
  bodyname_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:pybullet_grpc.LoadUrdfStatus.bodyName)
}
#endif
inline void LoadUrdfStatus::set_bodyname(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  
  bodyname_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:pybullet_grpc.LoadUrdfStatus.bodyName)
}
inline void LoadUrdfStatus::set_bodyname(const char* value, size_t size) {
  
  bodyname_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:pybullet_grpc.LoadUrdfStatus.bodyName)
}
inline ::std::string* LoadUrdfStatus::mutable_bodyname() {
  
  // @@protoc_insertion_point(field_mutable:pybullet_grpc.LoadUrdfStatus.bodyName)
  return bodyname_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline ::std::string* LoadUrdfStatus::release_bodyname() {
  // @@protoc_insertion_point(field_release:pybullet_grpc.LoadUrdfStatus.bodyName)
  
  return bodyname_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline void LoadUrdfStatus::set_allocated_bodyname(::std::string* bodyname) {
  if (bodyname != NULL) {
    
  } else {
    
  }
  bodyname_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), bodyname);
  // @@protoc_insertion_point(field_set_allocated:pybullet_grpc.LoadUrdfStatus.bodyName)
}

// string fileName = 3;
inline void LoadUrdfStatus::clear_filename() {
  filename_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline const ::std::string& LoadUrdfStatus::filename() const {
  // @@protoc_insertion_point(field_get:pybullet_grpc.LoadUrdfStatus.fileName)
  return filename_.GetNoArena();
}
inline void LoadUrdfStatus::set_filename(const ::std::string& value) {
  
  filename_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:pybullet_grpc.LoadUrdfStatus.fileName)
}
#if LANG_CXX11
inline void LoadUrdfStatus::set_filename(::std::string&& value) {
  
  filename_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:pybullet_grpc.LoadUrdfStatus.fileName)
}
#endif
inline void LoadUrdfStatus::set_filename(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  
  filename_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:pybullet_grpc.LoadUrdfStatus.fileName)
}
inline void LoadUrdfStatus::set_filename(const char* value, size_t size) {
  
  filename_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:pybullet_grpc.LoadUrdfStatus.fileName)
}
inline ::std::string* LoadUrdfStatus::mutable_filename() {
  
  // @@protoc_insertion_point(field_mutable:pybullet_grpc.LoadUrdfStatus.fileName)
  return filename_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline ::std::string* LoadUrdfStatus::release_filename() {
  // @@protoc_insertion_point(field_release:pybullet_grpc.LoadUrdfStatus.fileName)
  
  return filename_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline void LoadUrdfStatus::set_allocated_filename(::std::string* filename) {
  if (filename != NULL) {
    
  } else {
    
  }
  filename_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), filename);
  // @@protoc_insertion_point(field_set_allocated:pybullet_grpc.LoadUrdfStatus.fileName)
}

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

// LoadSdfCommand

// string fileName = 1;
inline void LoadSdfCommand::clear_filename() {
  filename_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline const ::std::string& LoadSdfCommand::filename() const {
  // @@protoc_insertion_point(field_get:pybullet_grpc.LoadSdfCommand.fileName)
  return filename_.GetNoArena();
}
inline void LoadSdfCommand::set_filename(const ::std::string& value) {
  
  filename_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:pybullet_grpc.LoadSdfCommand.fileName)
}
#if LANG_CXX11
inline void LoadSdfCommand::set_filename(::std::string&& value) {
  
  filename_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:pybullet_grpc.LoadSdfCommand.fileName)
}
#endif
inline void LoadSdfCommand::set_filename(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  
  filename_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:pybullet_grpc.LoadSdfCommand.fileName)
}
inline void LoadSdfCommand::set_filename(const char* value, size_t size) {
  
  filename_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:pybullet_grpc.LoadSdfCommand.fileName)
}
inline ::std::string* LoadSdfCommand::mutable_filename() {
  
  // @@protoc_insertion_point(field_mutable:pybullet_grpc.LoadSdfCommand.fileName)
  return filename_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline ::std::string* LoadSdfCommand::release_filename() {
  // @@protoc_insertion_point(field_release:pybullet_grpc.LoadSdfCommand.fileName)
  
  return filename_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline void LoadSdfCommand::set_allocated_filename(::std::string* filename) {
  if (filename != NULL) {
    
  } else {
    
  }
  filename_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), filename);
  // @@protoc_insertion_point(field_set_allocated:pybullet_grpc.LoadSdfCommand.fileName)
}

// int32 useMultiBody = 2;
inline bool LoadSdfCommand::has_usemultibody() const {
  return hasUseMultiBody_case() == kUseMultiBody;
}
inline void LoadSdfCommand::set_has_usemultibody() {
  _oneof_case_[0] = kUseMultiBody;
}
inline void LoadSdfCommand::clear_usemultibody() {
  if (has_usemultibody()) {
    hasUseMultiBody_.usemultibody_ = 0;
    clear_has_hasUseMultiBody();
  }
}
inline ::google::protobuf::int32 LoadSdfCommand::usemultibody() const {
  // @@protoc_insertion_point(field_get:pybullet_grpc.LoadSdfCommand.useMultiBody)
  if (has_usemultibody()) {
    return hasUseMultiBody_.usemultibody_;
  }
  return 0;
}
inline void LoadSdfCommand::set_usemultibody(::google::protobuf::int32 value) {
  if (!has_usemultibody()) {
    clear_hasUseMultiBody();
    set_has_usemultibody();
  }
  hasUseMultiBody_.usemultibody_ = value;
  // @@protoc_insertion_point(field_set:pybullet_grpc.LoadSdfCommand.useMultiBody)
}

// double globalScaling = 3;
inline bool LoadSdfCommand::has_globalscaling() const {
  return hasGlobalScaling_case() == kGlobalScaling;
}
inline void LoadSdfCommand::set_has_globalscaling() {
  _oneof_case_[1] = kGlobalScaling;
}
inline void LoadSdfCommand::clear_globalscaling() {
  if (has_globalscaling()) {
    hasGlobalScaling_.globalscaling_ = 0;
    clear_has_hasGlobalScaling();
  }
}
inline double LoadSdfCommand::globalscaling() const {
  // @@protoc_insertion_point(field_get:pybullet_grpc.LoadSdfCommand.globalScaling)
  if (has_globalscaling()) {
    return hasGlobalScaling_.globalscaling_;
  }
  return 0;
}
inline void LoadSdfCommand::set_globalscaling(double value) {
  if (!has_globalscaling()) {
    clear_hasGlobalScaling();
    set_has_globalscaling();
  }
  hasGlobalScaling_.globalscaling_ = value;
  // @@protoc_insertion_point(field_set:pybullet_grpc.LoadSdfCommand.globalScaling)
}

inline bool LoadSdfCommand::has_hasUseMultiBody() const {
  return hasUseMultiBody_case() != HASUSEMULTIBODY_NOT_SET;
}
inline void LoadSdfCommand::clear_has_hasUseMultiBody() {
  _oneof_case_[0] = HASUSEMULTIBODY_NOT_SET;
}
inline bool LoadSdfCommand::has_hasGlobalScaling() const {
  return hasGlobalScaling_case() != HASGLOBALSCALING_NOT_SET;
}
inline void LoadSdfCommand::clear_has_hasGlobalScaling() {
  _oneof_case_[1] = HASGLOBALSCALING_NOT_SET;
}
inline LoadSdfCommand::HasUseMultiBodyCase LoadSdfCommand::hasUseMultiBody_case() const {
  return LoadSdfCommand::HasUseMultiBodyCase(_oneof_case_[0]);
}
inline LoadSdfCommand::HasGlobalScalingCase LoadSdfCommand::hasGlobalScaling_case() const {
  return LoadSdfCommand::HasGlobalScalingCase(_oneof_case_[1]);
}
// -------------------------------------------------------------------

// SdfLoadedStatus

// repeated int32 bodyUniqueIds = 2;
inline int SdfLoadedStatus::bodyuniqueids_size() const {
  return bodyuniqueids_.size();
}
inline void SdfLoadedStatus::clear_bodyuniqueids() {
  bodyuniqueids_.Clear();
}
inline ::google::protobuf::int32 SdfLoadedStatus::bodyuniqueids(int index) const {
  // @@protoc_insertion_point(field_get:pybullet_grpc.SdfLoadedStatus.bodyUniqueIds)
  return bodyuniqueids_.Get(index);
}
inline void SdfLoadedStatus::set_bodyuniqueids(int index, ::google::protobuf::int32 value) {
  bodyuniqueids_.Set(index, value);
  // @@protoc_insertion_point(field_set:pybullet_grpc.SdfLoadedStatus.bodyUniqueIds)
}
inline void SdfLoadedStatus::add_bodyuniqueids(::google::protobuf::int32 value) {
  bodyuniqueids_.Add(value);
  // @@protoc_insertion_point(field_add:pybullet_grpc.SdfLoadedStatus.bodyUniqueIds)
}
inline const ::google::protobuf::RepeatedField< ::google::protobuf::int32 >&
SdfLoadedStatus::bodyuniqueids() const {
  // @@protoc_insertion_point(field_list:pybullet_grpc.SdfLoadedStatus.bodyUniqueIds)
  return bodyuniqueids_;
}
inline ::google::protobuf::RepeatedField< ::google::protobuf::int32 >*
SdfLoadedStatus::mutable_bodyuniqueids() {
  // @@protoc_insertion_point(field_mutable_list:pybullet_grpc.SdfLoadedStatus.bodyUniqueIds)
  return &bodyuniqueids_;
}

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

// LoadMjcfCommand

// string fileName = 1;
inline void LoadMjcfCommand::clear_filename() {
  filename_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline const ::std::string& LoadMjcfCommand::filename() const {
  // @@protoc_insertion_point(field_get:pybullet_grpc.LoadMjcfCommand.fileName)
  return filename_.GetNoArena();
}
inline void LoadMjcfCommand::set_filename(const ::std::string& value) {
  
  filename_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:pybullet_grpc.LoadMjcfCommand.fileName)
}
#if LANG_CXX11
inline void LoadMjcfCommand::set_filename(::std::string&& value) {
  
  filename_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:pybullet_grpc.LoadMjcfCommand.fileName)
}
#endif
inline void LoadMjcfCommand::set_filename(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  
  filename_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:pybullet_grpc.LoadMjcfCommand.fileName)
}
inline void LoadMjcfCommand::set_filename(const char* value, size_t size) {
  
  filename_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:pybullet_grpc.LoadMjcfCommand.fileName)
}
inline ::std::string* LoadMjcfCommand::mutable_filename() {
  
  // @@protoc_insertion_point(field_mutable:pybullet_grpc.LoadMjcfCommand.fileName)
  return filename_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline ::std::string* LoadMjcfCommand::release_filename() {
  // @@protoc_insertion_point(field_release:pybullet_grpc.LoadMjcfCommand.fileName)
  
  return filename_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline void LoadMjcfCommand::set_allocated_filename(::std::string* filename) {
  if (filename != NULL) {
    
  } else {
    
  }
  filename_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), filename);
  // @@protoc_insertion_point(field_set_allocated:pybullet_grpc.LoadMjcfCommand.fileName)
}

// int32 flags = 2;
inline void LoadMjcfCommand::clear_flags() {
  flags_ = 0;
}
inline ::google::protobuf::int32 LoadMjcfCommand::flags() const {
  // @@protoc_insertion_point(field_get:pybullet_grpc.LoadMjcfCommand.flags)
  return flags_;
}
inline void LoadMjcfCommand::set_flags(::google::protobuf::int32 value) {
  
  flags_ = value;
  // @@protoc_insertion_point(field_set:pybullet_grpc.LoadMjcfCommand.flags)
}

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

// MjcfLoadedStatus

// repeated int32 bodyUniqueIds = 2;
inline int MjcfLoadedStatus::bodyuniqueids_size() const {
  return bodyuniqueids_.size();
}
inline void MjcfLoadedStatus::clear_bodyuniqueids() {
  bodyuniqueids_.Clear();
}
inline ::google::protobuf::int32 MjcfLoadedStatus::bodyuniqueids(int index) const {
  // @@protoc_insertion_point(field_get:pybullet_grpc.MjcfLoadedStatus.bodyUniqueIds)
  return bodyuniqueids_.Get(index);
}
inline void MjcfLoadedStatus::set_bodyuniqueids(int index, ::google::protobuf::int32 value) {
  bodyuniqueids_.Set(index, value);
  // @@protoc_insertion_point(field_set:pybullet_grpc.MjcfLoadedStatus.bodyUniqueIds)
}
inline void MjcfLoadedStatus::add_bodyuniqueids(::google::protobuf::int32 value) {
  bodyuniqueids_.Add(value);
  // @@protoc_insertion_point(field_add:pybullet_grpc.MjcfLoadedStatus.bodyUniqueIds)
}
inline const ::google::protobuf::RepeatedField< ::google::protobuf::int32 >&
MjcfLoadedStatus::bodyuniqueids() const {
  // @@protoc_insertion_point(field_list:pybullet_grpc.MjcfLoadedStatus.bodyUniqueIds)
  return bodyuniqueids_;
}
inline ::google::protobuf::RepeatedField< ::google::protobuf::int32 >*
MjcfLoadedStatus::mutable_bodyuniqueids() {
  // @@protoc_insertion_point(field_mutable_list:pybullet_grpc.MjcfLoadedStatus.bodyUniqueIds)
  return &bodyuniqueids_;
}

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

// ChangeDynamicsCommand

// int32 bodyUniqueId = 1;
inline void ChangeDynamicsCommand::clear_bodyuniqueid() {
  bodyuniqueid_ = 0;
}
inline ::google::protobuf::int32 ChangeDynamicsCommand::bodyuniqueid() const {
  // @@protoc_insertion_point(field_get:pybullet_grpc.ChangeDynamicsCommand.bodyUniqueId)
  return bodyuniqueid_;
}
inline void ChangeDynamicsCommand::set_bodyuniqueid(::google::protobuf::int32 value) {
  
  bodyuniqueid_ = value;
  // @@protoc_insertion_point(field_set:pybullet_grpc.ChangeDynamicsCommand.bodyUniqueId)
}

// int32 linkIndex = 2;
inline void ChangeDynamicsCommand::clear_linkindex() {
  linkindex_ = 0;
}
inline ::google::protobuf::int32 ChangeDynamicsCommand::linkindex() const {
  // @@protoc_insertion_point(field_get:pybullet_grpc.ChangeDynamicsCommand.linkIndex)
  return linkindex_;
}
inline void ChangeDynamicsCommand::set_linkindex(::google::protobuf::int32 value) {
  
  linkindex_ = value;
  // @@protoc_insertion_point(field_set:pybullet_grpc.ChangeDynamicsCommand.linkIndex)
}

// double mass = 3;
inline bool ChangeDynamicsCommand::has_mass() const {
  return hasMass_case() == kMass;
}
inline void ChangeDynamicsCommand::set_has_mass() {
  _oneof_case_[0] = kMass;
}
inline void ChangeDynamicsCommand::clear_mass() {
  if (has_mass()) {
    hasMass_.mass_ = 0;
    clear_has_hasMass();
  }
}
inline double ChangeDynamicsCommand::mass() const {
  // @@protoc_insertion_point(field_get:pybullet_grpc.ChangeDynamicsCommand.mass)
  if (has_mass()) {
    return hasMass_.mass_;
  }
  return 0;
}
inline void ChangeDynamicsCommand::set_mass(double value) {
  if (!has_mass()) {
    clear_hasMass();
    set_has_mass();
  }
  hasMass_.mass_ = value;
  // @@protoc_insertion_point(field_set:pybullet_grpc.ChangeDynamicsCommand.mass)
}

// double lateralFriction = 5;
inline bool ChangeDynamicsCommand::has_lateralfriction() const {
  return hasLateralFriction_case() == kLateralFriction;
}
inline void ChangeDynamicsCommand::set_has_lateralfriction() {
  _oneof_case_[1] = kLateralFriction;
}
inline void ChangeDynamicsCommand::clear_lateralfriction() {
  if (has_lateralfriction()) {
    hasLateralFriction_.lateralfriction_ = 0;
    clear_has_hasLateralFriction();
  }
}
inline double ChangeDynamicsCommand::lateralfriction() const {
  // @@protoc_insertion_point(field_get:pybullet_grpc.ChangeDynamicsCommand.lateralFriction)
  if (has_lateralfriction()) {
    return hasLateralFriction_.lateralfriction_;
  }
  return 0;
}
inline void ChangeDynamicsCommand::set_lateralfriction(double value) {
  if (!has_lateralfriction()) {
    clear_hasLateralFriction();
    set_has_lateralfriction();
  }
  hasLateralFriction_.lateralfriction_ = value;
  // @@protoc_insertion_point(field_set:pybullet_grpc.ChangeDynamicsCommand.lateralFriction)
}

// double spinningFriction = 6;
inline bool ChangeDynamicsCommand::has_spinningfriction() const {
  return hasSpinningFriction_case() == kSpinningFriction;
}
inline void ChangeDynamicsCommand::set_has_spinningfriction() {
  _oneof_case_[2] = kSpinningFriction;
}
inline void ChangeDynamicsCommand::clear_spinningfriction() {
  if (has_spinningfriction()) {
    hasSpinningFriction_.spinningfriction_ = 0;
    clear_has_hasSpinningFriction();
  }
}
inline double ChangeDynamicsCommand::spinningfriction() const {
  // @@protoc_insertion_point(field_get:pybullet_grpc.ChangeDynamicsCommand.spinningFriction)
  if (has_spinningfriction()) {
    return hasSpinningFriction_.spinningfriction_;
  }
  return 0;
}
inline void ChangeDynamicsCommand::set_spinningfriction(double value) {
  if (!has_spinningfriction()) {
    clear_hasSpinningFriction();
    set_has_spinningfriction();
  }
  hasSpinningFriction_.spinningfriction_ = value;
  // @@protoc_insertion_point(field_set:pybullet_grpc.ChangeDynamicsCommand.spinningFriction)
}

// double rollingFriction = 7;
inline bool ChangeDynamicsCommand::has_rollingfriction() const {
  return hasRollingFriction_case() == kRollingFriction;
}
inline void ChangeDynamicsCommand::set_has_rollingfriction() {
  _oneof_case_[3] = kRollingFriction;
}
inline void ChangeDynamicsCommand::clear_rollingfriction() {
  if (has_rollingfriction()) {
    hasRollingFriction_.rollingfriction_ = 0;
    clear_has_hasRollingFriction();
  }
}
inline double ChangeDynamicsCommand::rollingfriction() const {
  // @@protoc_insertion_point(field_get:pybullet_grpc.ChangeDynamicsCommand.rollingFriction)
  if (has_rollingfriction()) {
    return hasRollingFriction_.rollingfriction_;
  }
  return 0;
}
inline void ChangeDynamicsCommand::set_rollingfriction(double value) {
  if (!has_rollingfriction()) {
    clear_hasRollingFriction();
    set_has_rollingfriction();
  }
  hasRollingFriction_.rollingfriction_ = value;
  // @@protoc_insertion_point(field_set:pybullet_grpc.ChangeDynamicsCommand.rollingFriction)
}

// double restitution = 8;
inline bool ChangeDynamicsCommand::has_restitution() const {
  return hasRestitution_case() == kRestitution;
}
inline void ChangeDynamicsCommand::set_has_restitution() {
  _oneof_case_[4] = kRestitution;
}
inline void ChangeDynamicsCommand::clear_restitution() {
  if (has_restitution()) {
    hasRestitution_.restitution_ = 0;
    clear_has_hasRestitution();
  }
}
inline double ChangeDynamicsCommand::restitution() const {
  // @@protoc_insertion_point(field_get:pybullet_grpc.ChangeDynamicsCommand.restitution)
  if (has_restitution()) {
    return hasRestitution_.restitution_;
  }
  return 0;
}
inline void ChangeDynamicsCommand::set_restitution(double value) {
  if (!has_restitution()) {
    clear_hasRestitution();
    set_has_restitution();
  }
  hasRestitution_.restitution_ = value;
  // @@protoc_insertion_point(field_set:pybullet_grpc.ChangeDynamicsCommand.restitution)
}

// double linearDamping = 9;
inline bool ChangeDynamicsCommand::has_lineardamping() const {
  return haslinearDamping_case() == kLinearDamping;
}
inline void ChangeDynamicsCommand::set_has_lineardamping() {
  _oneof_case_[5] = kLinearDamping;
}
inline void ChangeDynamicsCommand::clear_lineardamping() {
  if (has_lineardamping()) {
    haslinearDamping_.lineardamping_ = 0;
    clear_has_haslinearDamping();
  }
}
inline double ChangeDynamicsCommand::lineardamping() const {
  // @@protoc_insertion_point(field_get:pybullet_grpc.ChangeDynamicsCommand.linearDamping)
  if (has_lineardamping()) {
    return haslinearDamping_.lineardamping_;
  }
  return 0;
}
inline void ChangeDynamicsCommand::set_lineardamping(double value) {
  if (!has_lineardamping()) {
    clear_haslinearDamping();
    set_has_lineardamping();
  }
  haslinearDamping_.lineardamping_ = value;
  // @@protoc_insertion_point(field_set:pybullet_grpc.ChangeDynamicsCommand.linearDamping)
}

// double angularDamping = 10;
inline bool ChangeDynamicsCommand::has_angulardamping() const {
  return hasangularDamping_case() == kAngularDamping;
}
inline void ChangeDynamicsCommand::set_has_angulardamping() {
  _oneof_case_[6] = kAngularDamping;
}
inline void ChangeDynamicsCommand::clear_angulardamping() {
  if (has_angulardamping()) {
    hasangularDamping_.angulardamping_ = 0;
    clear_has_hasangularDamping();
  }
}
inline double ChangeDynamicsCommand::angulardamping() const {
  // @@protoc_insertion_point(field_get:pybullet_grpc.ChangeDynamicsCommand.angularDamping)
  if (has_angulardamping()) {
    return hasangularDamping_.angulardamping_;
  }
  return 0;
}
inline void ChangeDynamicsCommand::set_angulardamping(double value) {
  if (!has_angulardamping()) {
    clear_hasangularDamping();
    set_has_angulardamping();
  }
  hasangularDamping_.angulardamping_ = value;
  // @@protoc_insertion_point(field_set:pybullet_grpc.ChangeDynamicsCommand.angularDamping)
}

// double contactStiffness = 11;
inline bool ChangeDynamicsCommand::has_contactstiffness() const {
  return hasContactStiffness_case() == kContactStiffness;
}
inline void ChangeDynamicsCommand::set_has_contactstiffness() {
  _oneof_case_[7] = kContactStiffness;
}
inline void ChangeDynamicsCommand::clear_contactstiffness() {
  if (has_contactstiffness()) {
    hasContactStiffness_.contactstiffness_ = 0;
    clear_has_hasContactStiffness();
  }
}
inline double ChangeDynamicsCommand::contactstiffness() const {
  // @@protoc_insertion_point(field_get:pybullet_grpc.ChangeDynamicsCommand.contactStiffness)
  if (has_contactstiffness()) {
    return hasContactStiffness_.contactstiffness_;
  }
  return 0;
}
inline void ChangeDynamicsCommand::set_contactstiffness(double value) {
  if (!has_contactstiffness()) {
    clear_hasContactStiffness();
    set_has_contactstiffness();
  }
  hasContactStiffness_.contactstiffness_ = value;
  // @@protoc_insertion_point(field_set:pybullet_grpc.ChangeDynamicsCommand.contactStiffness)
}

// double contactDamping = 12;
inline bool ChangeDynamicsCommand::has_contactdamping() const {
  return hasContactDamping_case() == kContactDamping;
}
inline void ChangeDynamicsCommand::set_has_contactdamping() {
  _oneof_case_[8] = kContactDamping;
}
inline void ChangeDynamicsCommand::clear_contactdamping() {
  if (has_contactdamping()) {
    hasContactDamping_.contactdamping_ = 0;
    clear_has_hasContactDamping();
  }
}
inline double ChangeDynamicsCommand::contactdamping() const {
  // @@protoc_insertion_point(field_get:pybullet_grpc.ChangeDynamicsCommand.contactDamping)
  if (has_contactdamping()) {
    return hasContactDamping_.contactdamping_;
  }
  return 0;
}
inline void ChangeDynamicsCommand::set_contactdamping(double value) {
  if (!has_contactdamping()) {
    clear_hasContactDamping();
    set_has_contactdamping();
  }
  hasContactDamping_.contactdamping_ = value;
  // @@protoc_insertion_point(field_set:pybullet_grpc.ChangeDynamicsCommand.contactDamping)
}

// .pybullet_grpc.vec3 localInertiaDiagonal = 13;
inline bool ChangeDynamicsCommand::has_localinertiadiagonal() const {
  return hasLocalInertiaDiagonal_case() == kLocalInertiaDiagonal;
}
inline void ChangeDynamicsCommand::set_has_localinertiadiagonal() {
  _oneof_case_[9] = kLocalInertiaDiagonal;
}
inline void ChangeDynamicsCommand::clear_localinertiadiagonal() {
  if (has_localinertiadiagonal()) {
    delete hasLocalInertiaDiagonal_.localinertiadiagonal_;
    clear_has_hasLocalInertiaDiagonal();
  }
}
inline const ::pybullet_grpc::vec3& ChangeDynamicsCommand::_internal_localinertiadiagonal() const {
  return *hasLocalInertiaDiagonal_.localinertiadiagonal_;
}
inline ::pybullet_grpc::vec3* ChangeDynamicsCommand::release_localinertiadiagonal() {
  // @@protoc_insertion_point(field_release:pybullet_grpc.ChangeDynamicsCommand.localInertiaDiagonal)
  if (has_localinertiadiagonal()) {
    clear_has_hasLocalInertiaDiagonal();
      ::pybullet_grpc::vec3* temp = hasLocalInertiaDiagonal_.localinertiadiagonal_;
    hasLocalInertiaDiagonal_.localinertiadiagonal_ = NULL;
    return temp;
  } else {
    return NULL;
  }
}
inline const ::pybullet_grpc::vec3& ChangeDynamicsCommand::localinertiadiagonal() const {
  // @@protoc_insertion_point(field_get:pybullet_grpc.ChangeDynamicsCommand.localInertiaDiagonal)
  return has_localinertiadiagonal()
      ? *hasLocalInertiaDiagonal_.localinertiadiagonal_
      : *reinterpret_cast< ::pybullet_grpc::vec3*>(&::pybullet_grpc::_vec3_default_instance_);
}
inline ::pybullet_grpc::vec3* ChangeDynamicsCommand::mutable_localinertiadiagonal() {
  if (!has_localinertiadiagonal()) {
    clear_hasLocalInertiaDiagonal();
    set_has_localinertiadiagonal();
    hasLocalInertiaDiagonal_.localinertiadiagonal_ = CreateMaybeMessage< ::pybullet_grpc::vec3 >(
        GetArenaNoVirtual());
  }
  // @@protoc_insertion_point(field_mutable:pybullet_grpc.ChangeDynamicsCommand.localInertiaDiagonal)
  return hasLocalInertiaDiagonal_.localinertiadiagonal_;
}

// int32 frictionAnchor = 14;
inline bool ChangeDynamicsCommand::has_frictionanchor() const {
  return hasFrictionAnchor_case() == kFrictionAnchor;
}
inline void ChangeDynamicsCommand::set_has_frictionanchor() {
  _oneof_case_[10] = kFrictionAnchor;
}
inline void ChangeDynamicsCommand::clear_frictionanchor() {
  if (has_frictionanchor()) {
    hasFrictionAnchor_.frictionanchor_ = 0;
    clear_has_hasFrictionAnchor();
  }
}
inline ::google::protobuf::int32 ChangeDynamicsCommand::frictionanchor() const {
  // @@protoc_insertion_point(field_get:pybullet_grpc.ChangeDynamicsCommand.frictionAnchor)
  if (has_frictionanchor()) {
    return hasFrictionAnchor_.frictionanchor_;
  }
  return 0;
}
inline void ChangeDynamicsCommand::set_frictionanchor(::google::protobuf::int32 value) {
  if (!has_frictionanchor()) {
    clear_hasFrictionAnchor();
    set_has_frictionanchor();
  }
  hasFrictionAnchor_.frictionanchor_ = value;
  // @@protoc_insertion_point(field_set:pybullet_grpc.ChangeDynamicsCommand.frictionAnchor)
}

// double ccdSweptSphereRadius = 15;
inline bool ChangeDynamicsCommand::has_ccdsweptsphereradius() const {
  return hasccdSweptSphereRadius_case() == kCcdSweptSphereRadius;
}
inline void ChangeDynamicsCommand::set_has_ccdsweptsphereradius() {
  _oneof_case_[11] = kCcdSweptSphereRadius;
}
inline void ChangeDynamicsCommand::clear_ccdsweptsphereradius() {
  if (has_ccdsweptsphereradius()) {
    hasccdSweptSphereRadius_.ccdsweptsphereradius_ = 0;
    clear_has_hasccdSweptSphereRadius();
  }
}
inline double ChangeDynamicsCommand::ccdsweptsphereradius() const {
  // @@protoc_insertion_point(field_get:pybullet_grpc.ChangeDynamicsCommand.ccdSweptSphereRadius)
  if (has_ccdsweptsphereradius()) {
    return hasccdSweptSphereRadius_.ccdsweptsphereradius_;
  }
  return 0;
}
inline void ChangeDynamicsCommand::set_ccdsweptsphereradius(double value) {
  if (!has_ccdsweptsphereradius()) {
    clear_hasccdSweptSphereRadius();
    set_has_ccdsweptsphereradius();
  }
  hasccdSweptSphereRadius_.ccdsweptsphereradius_ = value;
  // @@protoc_insertion_point(field_set:pybullet_grpc.ChangeDynamicsCommand.ccdSweptSphereRadius)
}

// double contactProcessingThreshold = 16;
inline bool ChangeDynamicsCommand::has_contactprocessingthreshold() const {
  return hasContactProcessingThreshold_case() == kContactProcessingThreshold;
}
inline void ChangeDynamicsCommand::set_has_contactprocessingthreshold() {
  _oneof_case_[12] = kContactProcessingThreshold;
}
inline void ChangeDynamicsCommand::clear_contactprocessingthreshold() {
  if (has_contactprocessingthreshold()) {
    hasContactProcessingThreshold_.contactprocessingthreshold_ = 0;
    clear_has_hasContactProcessingThreshold();
  }
}
inline double ChangeDynamicsCommand::contactprocessingthreshold() const {
  // @@protoc_insertion_point(field_get:pybullet_grpc.ChangeDynamicsCommand.contactProcessingThreshold)
  if (has_contactprocessingthreshold()) {
    return hasContactProcessingThreshold_.contactprocessingthreshold_;
  }
  return 0;
}
inline void ChangeDynamicsCommand::set_contactprocessingthreshold(double value) {
  if (!has_contactprocessingthreshold()) {
    clear_hasContactProcessingThreshold();
    set_has_contactprocessingthreshold();
  }
  hasContactProcessingThreshold_.contactprocessingthreshold_ = value;
  // @@protoc_insertion_point(field_set:pybullet_grpc.ChangeDynamicsCommand.contactProcessingThreshold)
}

// int32 activationState = 17;
inline bool ChangeDynamicsCommand::has_activationstate() const {
  return hasActivationState_case() == kActivationState;
}
inline void ChangeDynamicsCommand::set_has_activationstate() {
  _oneof_case_[13] = kActivationState;
}
inline void ChangeDynamicsCommand::clear_activationstate() {
  if (has_activationstate()) {
    hasActivationState_.activationstate_ = 0;
    clear_has_hasActivationState();
  }
}
inline ::google::protobuf::int32 ChangeDynamicsCommand::activationstate() const {
  // @@protoc_insertion_point(field_get:pybullet_grpc.ChangeDynamicsCommand.activationState)
  if (has_activationstate()) {
    return hasActivationState_.activationstate_;
  }
  return 0;
}
inline void ChangeDynamicsCommand::set_activationstate(::google::protobuf::int32 value) {
  if (!has_activationstate()) {
    clear_hasActivationState();
    set_has_activationstate();
  }
  hasActivationState_.activationstate_ = value;
  // @@protoc_insertion_point(field_set:pybullet_grpc.ChangeDynamicsCommand.activationState)
}

inline bool ChangeDynamicsCommand::has_hasMass() const {
  return hasMass_case() != HASMASS_NOT_SET;
}
inline void ChangeDynamicsCommand::clear_has_hasMass() {
  _oneof_case_[0] = HASMASS_NOT_SET;
}
inline bool ChangeDynamicsCommand::has_hasLateralFriction() const {
  return hasLateralFriction_case() != HASLATERALFRICTION_NOT_SET;
}
inline void ChangeDynamicsCommand::clear_has_hasLateralFriction() {
  _oneof_case_[1] = HASLATERALFRICTION_NOT_SET;
}
inline bool ChangeDynamicsCommand::has_hasSpinningFriction() const {
  return hasSpinningFriction_case() != HASSPINNINGFRICTION_NOT_SET;
}
inline void ChangeDynamicsCommand::clear_has_hasSpinningFriction() {
  _oneof_case_[2] = HASSPINNINGFRICTION_NOT_SET;
}
inline bool ChangeDynamicsCommand::has_hasRollingFriction() const {
  return hasRollingFriction_case() != HASROLLINGFRICTION_NOT_SET;
}
inline void ChangeDynamicsCommand::clear_has_hasRollingFriction() {
  _oneof_case_[3] = HASROLLINGFRICTION_NOT_SET;
}
inline bool ChangeDynamicsCommand::has_hasRestitution() const {
  return hasRestitution_case() != HASRESTITUTION_NOT_SET;
}
inline void ChangeDynamicsCommand::clear_has_hasRestitution() {
  _oneof_case_[4] = HASRESTITUTION_NOT_SET;
}
inline bool ChangeDynamicsCommand::has_haslinearDamping() const {
  return haslinearDamping_case() != HASLINEARDAMPING_NOT_SET;
}
inline void ChangeDynamicsCommand::clear_has_haslinearDamping() {
  _oneof_case_[5] = HASLINEARDAMPING_NOT_SET;
}
inline bool ChangeDynamicsCommand::has_hasangularDamping() const {
  return hasangularDamping_case() != HASANGULARDAMPING_NOT_SET;
}
inline void ChangeDynamicsCommand::clear_has_hasangularDamping() {
  _oneof_case_[6] = HASANGULARDAMPING_NOT_SET;
}
inline bool ChangeDynamicsCommand::has_hasContactStiffness() const {
  return hasContactStiffness_case() != HASCONTACTSTIFFNESS_NOT_SET;
}
inline void ChangeDynamicsCommand::clear_has_hasContactStiffness() {
  _oneof_case_[7] = HASCONTACTSTIFFNESS_NOT_SET;
}
inline bool ChangeDynamicsCommand::has_hasContactDamping() const {
  return hasContactDamping_case() != HASCONTACTDAMPING_NOT_SET;
}
inline void ChangeDynamicsCommand::clear_has_hasContactDamping() {
  _oneof_case_[8] = HASCONTACTDAMPING_NOT_SET;
}
inline bool ChangeDynamicsCommand::has_hasLocalInertiaDiagonal() const {
  return hasLocalInertiaDiagonal_case() != HASLOCALINERTIADIAGONAL_NOT_SET;
}
inline void ChangeDynamicsCommand::clear_has_hasLocalInertiaDiagonal() {
  _oneof_case_[9] = HASLOCALINERTIADIAGONAL_NOT_SET;
}
inline bool ChangeDynamicsCommand::has_hasFrictionAnchor() const {
  return hasFrictionAnchor_case() != HASFRICTIONANCHOR_NOT_SET;
}
inline void ChangeDynamicsCommand::clear_has_hasFrictionAnchor() {
  _oneof_case_[10] = HASFRICTIONANCHOR_NOT_SET;
}
inline bool ChangeDynamicsCommand::has_hasccdSweptSphereRadius() const {
  return hasccdSweptSphereRadius_case() != HASCCDSWEPTSPHERERADIUS_NOT_SET;
}
inline void ChangeDynamicsCommand::clear_has_hasccdSweptSphereRadius() {
  _oneof_case_[11] = HASCCDSWEPTSPHERERADIUS_NOT_SET;
}
inline bool ChangeDynamicsCommand::has_hasContactProcessingThreshold() const {
  return hasContactProcessingThreshold_case() != HASCONTACTPROCESSINGTHRESHOLD_NOT_SET;
}
inline void ChangeDynamicsCommand::clear_has_hasContactProcessingThreshold() {
  _oneof_case_[12] = HASCONTACTPROCESSINGTHRESHOLD_NOT_SET;
}
inline bool ChangeDynamicsCommand::has_hasActivationState() const {
  return hasActivationState_case() != HASACTIVATIONSTATE_NOT_SET;
}
inline void ChangeDynamicsCommand::clear_has_hasActivationState() {
  _oneof_case_[13] = HASACTIVATIONSTATE_NOT_SET;
}
inline ChangeDynamicsCommand::HasMassCase ChangeDynamicsCommand::hasMass_case() const {
  return ChangeDynamicsCommand::HasMassCase(_oneof_case_[0]);
}
inline ChangeDynamicsCommand::HasLateralFrictionCase ChangeDynamicsCommand::hasLateralFriction_case() const {
  return ChangeDynamicsCommand::HasLateralFrictionCase(_oneof_case_[1]);
}
inline ChangeDynamicsCommand::HasSpinningFrictionCase ChangeDynamicsCommand::hasSpinningFriction_case() const {
  return ChangeDynamicsCommand::HasSpinningFrictionCase(_oneof_case_[2]);
}
inline ChangeDynamicsCommand::HasRollingFrictionCase ChangeDynamicsCommand::hasRollingFriction_case() const {
  return ChangeDynamicsCommand::HasRollingFrictionCase(_oneof_case_[3]);
}
inline ChangeDynamicsCommand::HasRestitutionCase ChangeDynamicsCommand::hasRestitution_case() const {
  return ChangeDynamicsCommand::HasRestitutionCase(_oneof_case_[4]);
}
inline ChangeDynamicsCommand::HaslinearDampingCase ChangeDynamicsCommand::haslinearDamping_case() const {
  return ChangeDynamicsCommand::HaslinearDampingCase(_oneof_case_[5]);
}
inline ChangeDynamicsCommand::HasangularDampingCase ChangeDynamicsCommand::hasangularDamping_case() const {
  return ChangeDynamicsCommand::HasangularDampingCase(_oneof_case_[6]);
}
inline ChangeDynamicsCommand::HasContactStiffnessCase ChangeDynamicsCommand::hasContactStiffness_case() const {
  return ChangeDynamicsCommand::HasContactStiffnessCase(_oneof_case_[7]);
}
inline ChangeDynamicsCommand::HasContactDampingCase ChangeDynamicsCommand::hasContactDamping_case() const {
  return ChangeDynamicsCommand::HasContactDampingCase(_oneof_case_[8]);
}
inline ChangeDynamicsCommand::HasLocalInertiaDiagonalCase ChangeDynamicsCommand::hasLocalInertiaDiagonal_case() const {
  return ChangeDynamicsCommand::HasLocalInertiaDiagonalCase(_oneof_case_[9]);
}
inline ChangeDynamicsCommand::HasFrictionAnchorCase ChangeDynamicsCommand::hasFrictionAnchor_case() const {
  return ChangeDynamicsCommand::HasFrictionAnchorCase(_oneof_case_[10]);
}
inline ChangeDynamicsCommand::HasccdSweptSphereRadiusCase ChangeDynamicsCommand::hasccdSweptSphereRadius_case() const {
  return ChangeDynamicsCommand::HasccdSweptSphereRadiusCase(_oneof_case_[11]);
}
inline ChangeDynamicsCommand::HasContactProcessingThresholdCase ChangeDynamicsCommand::hasContactProcessingThreshold_case() const {
  return ChangeDynamicsCommand::HasContactProcessingThresholdCase(_oneof_case_[12]);
}
inline ChangeDynamicsCommand::HasActivationStateCase ChangeDynamicsCommand::hasActivationState_case() const {
  return ChangeDynamicsCommand::HasActivationStateCase(_oneof_case_[13]);
}
// -------------------------------------------------------------------

// GetDynamicsCommand

// int32 bodyUniqueId = 1;
inline void GetDynamicsCommand::clear_bodyuniqueid() {
  bodyuniqueid_ = 0;
}
inline ::google::protobuf::int32 GetDynamicsCommand::bodyuniqueid() const {
  // @@protoc_insertion_point(field_get:pybullet_grpc.GetDynamicsCommand.bodyUniqueId)
  return bodyuniqueid_;
}
inline void GetDynamicsCommand::set_bodyuniqueid(::google::protobuf::int32 value) {
  
  bodyuniqueid_ = value;
  // @@protoc_insertion_point(field_set:pybullet_grpc.GetDynamicsCommand.bodyUniqueId)
}

// int32 linkIndex = 2;
inline void GetDynamicsCommand::clear_linkindex() {
  linkindex_ = 0;
}
inline ::google::protobuf::int32 GetDynamicsCommand::linkindex() const {
  // @@protoc_insertion_point(field_get:pybullet_grpc.GetDynamicsCommand.linkIndex)
  return linkindex_;
}
inline void GetDynamicsCommand::set_linkindex(::google::protobuf::int32 value) {
  
  linkindex_ = value;
  // @@protoc_insertion_point(field_set:pybullet_grpc.GetDynamicsCommand.linkIndex)
}

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

// GetDynamicsStatus

// double mass = 3;
inline void GetDynamicsStatus::clear_mass() {
  mass_ = 0;
}
inline double GetDynamicsStatus::mass() const {
  // @@protoc_insertion_point(field_get:pybullet_grpc.GetDynamicsStatus.mass)
  return mass_;
}
inline void GetDynamicsStatus::set_mass(double value) {
  
  mass_ = value;
  // @@protoc_insertion_point(field_set:pybullet_grpc.GetDynamicsStatus.mass)
}

// double lateralFriction = 5;
inline void GetDynamicsStatus::clear_lateralfriction() {
  lateralfriction_ = 0;
}
inline double GetDynamicsStatus::lateralfriction() const {
  // @@protoc_insertion_point(field_get:pybullet_grpc.GetDynamicsStatus.lateralFriction)
  return lateralfriction_;
}
inline void GetDynamicsStatus::set_lateralfriction(double value) {
  
  lateralfriction_ = value;
  // @@protoc_insertion_point(field_set:pybullet_grpc.GetDynamicsStatus.lateralFriction)
}

// double spinningFriction = 6;
inline void GetDynamicsStatus::clear_spinningfriction() {
  spinningfriction_ = 0;
}
inline double GetDynamicsStatus::spinningfriction() const {
  // @@protoc_insertion_point(field_get:pybullet_grpc.GetDynamicsStatus.spinningFriction)
  return spinningfriction_;
}
inline void GetDynamicsStatus::set_spinningfriction(double value) {
  
  spinningfriction_ = value;
  // @@protoc_insertion_point(field_set:pybullet_grpc.GetDynamicsStatus.spinningFriction)
}

// double rollingFriction = 7;
inline void GetDynamicsStatus::clear_rollingfriction() {
  rollingfriction_ = 0;
}
inline double GetDynamicsStatus::rollingfriction() const {
  // @@protoc_insertion_point(field_get:pybullet_grpc.GetDynamicsStatus.rollingFriction)
  return rollingfriction_;
}
inline void GetDynamicsStatus::set_rollingfriction(double value) {
  
  rollingfriction_ = value;
  // @@protoc_insertion_point(field_set:pybullet_grpc.GetDynamicsStatus.rollingFriction)
}

// double restitution = 8;
inline void GetDynamicsStatus::clear_restitution() {
  restitution_ = 0;
}
inline double GetDynamicsStatus::restitution() const {
  // @@protoc_insertion_point(field_get:pybullet_grpc.GetDynamicsStatus.restitution)
  return restitution_;
}
inline void GetDynamicsStatus::set_restitution(double value) {
  
  restitution_ = value;
  // @@protoc_insertion_point(field_set:pybullet_grpc.GetDynamicsStatus.restitution)
}

// double linearDamping = 9;
inline void GetDynamicsStatus::clear_lineardamping() {
  lineardamping_ = 0;
}
inline double GetDynamicsStatus::lineardamping() const {
  // @@protoc_insertion_point(field_get:pybullet_grpc.GetDynamicsStatus.linearDamping)
  return lineardamping_;
}
inline void GetDynamicsStatus::set_lineardamping(double value) {
  
  lineardamping_ = value;
  // @@protoc_insertion_point(field_set:pybullet_grpc.GetDynamicsStatus.linearDamping)
}

// double angularDamping = 10;
inline void GetDynamicsStatus::clear_angulardamping() {
  angulardamping_ = 0;
}
inline double GetDynamicsStatus::angulardamping() const {
  // @@protoc_insertion_point(field_get:pybullet_grpc.GetDynamicsStatus.angularDamping)
  return angulardamping_;
}
inline void GetDynamicsStatus::set_angulardamping(double value) {
  
  angulardamping_ = value;
  // @@protoc_insertion_point(field_set:pybullet_grpc.GetDynamicsStatus.angularDamping)
}

// double contactStiffness = 11;
inline void GetDynamicsStatus::clear_contactstiffness() {
  contactstiffness_ = 0;
}
inline double GetDynamicsStatus::contactstiffness() const {
  // @@protoc_insertion_point(field_get:pybullet_grpc.GetDynamicsStatus.contactStiffness)
  return contactstiffness_;
}
inline void GetDynamicsStatus::set_contactstiffness(double value) {
  
  contactstiffness_ = value;
  // @@protoc_insertion_point(field_set:pybullet_grpc.GetDynamicsStatus.contactStiffness)
}

// double contactDamping = 12;
inline void GetDynamicsStatus::clear_contactdamping() {
  contactdamping_ = 0;
}
inline double GetDynamicsStatus::contactdamping() const {
  // @@protoc_insertion_point(field_get:pybullet_grpc.GetDynamicsStatus.contactDamping)
  return contactdamping_;
}
inline void GetDynamicsStatus::set_contactdamping(double value) {
  
  contactdamping_ = value;
  // @@protoc_insertion_point(field_set:pybullet_grpc.GetDynamicsStatus.contactDamping)
}

// .pybullet_grpc.vec3 localInertiaDiagonal = 13;
inline bool GetDynamicsStatus::has_localinertiadiagonal() const {
  return this != internal_default_instance() && localinertiadiagonal_ != NULL;
}
inline void GetDynamicsStatus::clear_localinertiadiagonal() {
  if (GetArenaNoVirtual() == NULL && localinertiadiagonal_ != NULL) {
    delete localinertiadiagonal_;
  }
  localinertiadiagonal_ = NULL;
}
inline const ::pybullet_grpc::vec3& GetDynamicsStatus::_internal_localinertiadiagonal() const {
  return *localinertiadiagonal_;
}
inline const ::pybullet_grpc::vec3& GetDynamicsStatus::localinertiadiagonal() const {
  const ::pybullet_grpc::vec3* p = localinertiadiagonal_;
  // @@protoc_insertion_point(field_get:pybullet_grpc.GetDynamicsStatus.localInertiaDiagonal)
  return p != NULL ? *p : *reinterpret_cast<const ::pybullet_grpc::vec3*>(
      &::pybullet_grpc::_vec3_default_instance_);
}
inline ::pybullet_grpc::vec3* GetDynamicsStatus::release_localinertiadiagonal() {
  // @@protoc_insertion_point(field_release:pybullet_grpc.GetDynamicsStatus.localInertiaDiagonal)
  
  ::pybullet_grpc::vec3* temp = localinertiadiagonal_;
  localinertiadiagonal_ = NULL;
  return temp;
}
inline ::pybullet_grpc::vec3* GetDynamicsStatus::mutable_localinertiadiagonal() {
  
  if (localinertiadiagonal_ == NULL) {
    auto* p = CreateMaybeMessage<::pybullet_grpc::vec3>(GetArenaNoVirtual());
    localinertiadiagonal_ = p;
  }
  // @@protoc_insertion_point(field_mutable:pybullet_grpc.GetDynamicsStatus.localInertiaDiagonal)
  return localinertiadiagonal_;
}
inline void GetDynamicsStatus::set_allocated_localinertiadiagonal(::pybullet_grpc::vec3* localinertiadiagonal) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete localinertiadiagonal_;
  }
  if (localinertiadiagonal) {
    ::google::protobuf::Arena* submessage_arena = NULL;
    if (message_arena != submessage_arena) {
      localinertiadiagonal = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, localinertiadiagonal, submessage_arena);
    }
    
  } else {
    
  }
  localinertiadiagonal_ = localinertiadiagonal;
  // @@protoc_insertion_point(field_set_allocated:pybullet_grpc.GetDynamicsStatus.localInertiaDiagonal)
}

// int32 frictionAnchor = 14;
inline void GetDynamicsStatus::clear_frictionanchor() {
  frictionanchor_ = 0;
}
inline ::google::protobuf::int32 GetDynamicsStatus::frictionanchor() const {
  // @@protoc_insertion_point(field_get:pybullet_grpc.GetDynamicsStatus.frictionAnchor)
  return frictionanchor_;
}
inline void GetDynamicsStatus::set_frictionanchor(::google::protobuf::int32 value) {
  
  frictionanchor_ = value;
  // @@protoc_insertion_point(field_set:pybullet_grpc.GetDynamicsStatus.frictionAnchor)
}

// double ccdSweptSphereRadius = 15;
inline void GetDynamicsStatus::clear_ccdsweptsphereradius() {
  ccdsweptsphereradius_ = 0;
}
inline double GetDynamicsStatus::ccdsweptsphereradius() const {
  // @@protoc_insertion_point(field_get:pybullet_grpc.GetDynamicsStatus.ccdSweptSphereRadius)
  return ccdsweptsphereradius_;
}
inline void GetDynamicsStatus::set_ccdsweptsphereradius(double value) {
  
  ccdsweptsphereradius_ = value;
  // @@protoc_insertion_point(field_set:pybullet_grpc.GetDynamicsStatus.ccdSweptSphereRadius)
}

// double contactProcessingThreshold = 16;
inline void GetDynamicsStatus::clear_contactprocessingthreshold() {
  contactprocessingthreshold_ = 0;
}
inline double GetDynamicsStatus::contactprocessingthreshold() const {
  // @@protoc_insertion_point(field_get:pybullet_grpc.GetDynamicsStatus.contactProcessingThreshold)
  return contactprocessingthreshold_;
}
inline void GetDynamicsStatus::set_contactprocessingthreshold(double value) {
  
  contactprocessingthreshold_ = value;
  // @@protoc_insertion_point(field_set:pybullet_grpc.GetDynamicsStatus.contactProcessingThreshold)
}

// int32 activationState = 17;
inline void GetDynamicsStatus::clear_activationstate() {
  activationstate_ = 0;
}
inline ::google::protobuf::int32 GetDynamicsStatus::activationstate() const {
  // @@protoc_insertion_point(field_get:pybullet_grpc.GetDynamicsStatus.activationState)
  return activationstate_;
}
inline void GetDynamicsStatus::set_activationstate(::google::protobuf::int32 value) {
  
  activationstate_ = value;
  // @@protoc_insertion_point(field_set:pybullet_grpc.GetDynamicsStatus.activationState)
}

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

// InitPoseCommand

// int32 bodyUniqueId = 1;
inline void InitPoseCommand::clear_bodyuniqueid() {
  bodyuniqueid_ = 0;
}
inline ::google::protobuf::int32 InitPoseCommand::bodyuniqueid() const {
  // @@protoc_insertion_point(field_get:pybullet_grpc.InitPoseCommand.bodyUniqueId)
  return bodyuniqueid_;
}
inline void InitPoseCommand::set_bodyuniqueid(::google::protobuf::int32 value) {
  
  bodyuniqueid_ = value;
  // @@protoc_insertion_point(field_set:pybullet_grpc.InitPoseCommand.bodyUniqueId)
}

// int32 updateflags = 2;
inline void InitPoseCommand::clear_updateflags() {
  updateflags_ = 0;
}
inline ::google::protobuf::int32 InitPoseCommand::updateflags() const {
  // @@protoc_insertion_point(field_get:pybullet_grpc.InitPoseCommand.updateflags)
  return updateflags_;
}
inline void InitPoseCommand::set_updateflags(::google::protobuf::int32 value) {
  
  updateflags_ = value;
  // @@protoc_insertion_point(field_set:pybullet_grpc.InitPoseCommand.updateflags)
}

// repeated int32 hasInitialStateQ = 3;
inline int InitPoseCommand::hasinitialstateq_size() const {
  return hasinitialstateq_.size();
}
inline void InitPoseCommand::clear_hasinitialstateq() {
  hasinitialstateq_.Clear();
}
inline ::google::protobuf::int32 InitPoseCommand::hasinitialstateq(int index) const {
  // @@protoc_insertion_point(field_get:pybullet_grpc.InitPoseCommand.hasInitialStateQ)
  return hasinitialstateq_.Get(index);
}
inline void InitPoseCommand::set_hasinitialstateq(int index, ::google::protobuf::int32 value) {
  hasinitialstateq_.Set(index, value);
  // @@protoc_insertion_point(field_set:pybullet_grpc.InitPoseCommand.hasInitialStateQ)
}
inline void InitPoseCommand::add_hasinitialstateq(::google::protobuf::int32 value) {
  hasinitialstateq_.Add(value);
  // @@protoc_insertion_point(field_add:pybullet_grpc.InitPoseCommand.hasInitialStateQ)
}
inline const ::google::protobuf::RepeatedField< ::google::protobuf::int32 >&
InitPoseCommand::hasinitialstateq() const {
  // @@protoc_insertion_point(field_list:pybullet_grpc.InitPoseCommand.hasInitialStateQ)
  return hasinitialstateq_;
}
inline ::google::protobuf::RepeatedField< ::google::protobuf::int32 >*
InitPoseCommand::mutable_hasinitialstateq() {
  // @@protoc_insertion_point(field_mutable_list:pybullet_grpc.InitPoseCommand.hasInitialStateQ)
  return &hasinitialstateq_;
}

// repeated double initialStateQ = 4;
inline int InitPoseCommand::initialstateq_size() const {
  return initialstateq_.size();
}
inline void InitPoseCommand::clear_initialstateq() {
  initialstateq_.Clear();
}
inline double InitPoseCommand::initialstateq(int index) const {
  // @@protoc_insertion_point(field_get:pybullet_grpc.InitPoseCommand.initialStateQ)
  return initialstateq_.Get(index);
}
inline void InitPoseCommand::set_initialstateq(int index, double value) {
  initialstateq_.Set(index, value);
  // @@protoc_insertion_point(field_set:pybullet_grpc.InitPoseCommand.initialStateQ)
}
inline void InitPoseCommand::add_initialstateq(double value) {
  initialstateq_.Add(value);
  // @@protoc_insertion_point(field_add:pybullet_grpc.InitPoseCommand.initialStateQ)
}
inline const ::google::protobuf::RepeatedField< double >&
InitPoseCommand::initialstateq() const {
  // @@protoc_insertion_point(field_list:pybullet_grpc.InitPoseCommand.initialStateQ)
  return initialstateq_;
}
inline ::google::protobuf::RepeatedField< double >*
InitPoseCommand::mutable_initialstateq() {
  // @@protoc_insertion_point(field_mutable_list:pybullet_grpc.InitPoseCommand.initialStateQ)
  return &initialstateq_;
}

// repeated int32 hasInitialStateQdot = 5;
inline int InitPoseCommand::hasinitialstateqdot_size() const {
  return hasinitialstateqdot_.size();
}
inline void InitPoseCommand::clear_hasinitialstateqdot() {
  hasinitialstateqdot_.Clear();
}
inline ::google::protobuf::int32 InitPoseCommand::hasinitialstateqdot(int index) const {
  // @@protoc_insertion_point(field_get:pybullet_grpc.InitPoseCommand.hasInitialStateQdot)
  return hasinitialstateqdot_.Get(index);
}
inline void InitPoseCommand::set_hasinitialstateqdot(int index, ::google::protobuf::int32 value) {
  hasinitialstateqdot_.Set(index, value);
  // @@protoc_insertion_point(field_set:pybullet_grpc.InitPoseCommand.hasInitialStateQdot)
}
inline void InitPoseCommand::add_hasinitialstateqdot(::google::protobuf::int32 value) {
  hasinitialstateqdot_.Add(value);
  // @@protoc_insertion_point(field_add:pybullet_grpc.InitPoseCommand.hasInitialStateQdot)
}
inline const ::google::protobuf::RepeatedField< ::google::protobuf::int32 >&
InitPoseCommand::hasinitialstateqdot() const {
  // @@protoc_insertion_point(field_list:pybullet_grpc.InitPoseCommand.hasInitialStateQdot)
  return hasinitialstateqdot_;
}
inline ::google::protobuf::RepeatedField< ::google::protobuf::int32 >*
InitPoseCommand::mutable_hasinitialstateqdot() {
  // @@protoc_insertion_point(field_mutable_list:pybullet_grpc.InitPoseCommand.hasInitialStateQdot)
  return &hasinitialstateqdot_;
}

// repeated double initialStateQdot = 6;
inline int InitPoseCommand::initialstateqdot_size() const {
  return initialstateqdot_.size();
}
inline void InitPoseCommand::clear_initialstateqdot() {
  initialstateqdot_.Clear();
}
inline double InitPoseCommand::initialstateqdot(int index) const {
  // @@protoc_insertion_point(field_get:pybullet_grpc.InitPoseCommand.initialStateQdot)
  return initialstateqdot_.Get(index);
}
inline void InitPoseCommand::set_initialstateqdot(int index, double value) {
  initialstateqdot_.Set(index, value);
  // @@protoc_insertion_point(field_set:pybullet_grpc.InitPoseCommand.initialStateQdot)
}
inline void InitPoseCommand::add_initialstateqdot(double value) {
  initialstateqdot_.Add(value);
  // @@protoc_insertion_point(field_add:pybullet_grpc.InitPoseCommand.initialStateQdot)
}
inline const ::google::protobuf::RepeatedField< double >&
InitPoseCommand::initialstateqdot() const {
  // @@protoc_insertion_point(field_list:pybullet_grpc.InitPoseCommand.initialStateQdot)
  return initialstateqdot_;
}
inline ::google::protobuf::RepeatedField< double >*
InitPoseCommand::mutable_initialstateqdot() {
  // @@protoc_insertion_point(field_mutable_list:pybullet_grpc.InitPoseCommand.initialStateQdot)
  return &initialstateqdot_;
}

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

// RequestActualStateCommand

// int32 bodyUniqueId = 1;
inline void RequestActualStateCommand::clear_bodyuniqueid() {
  bodyuniqueid_ = 0;
}
inline ::google::protobuf::int32 RequestActualStateCommand::bodyuniqueid() const {
  // @@protoc_insertion_point(field_get:pybullet_grpc.RequestActualStateCommand.bodyUniqueId)
  return bodyuniqueid_;
}
inline void RequestActualStateCommand::set_bodyuniqueid(::google::protobuf::int32 value) {
  
  bodyuniqueid_ = value;
  // @@protoc_insertion_point(field_set:pybullet_grpc.RequestActualStateCommand.bodyUniqueId)
}

// bool computeForwardKinematics = 2;
inline void RequestActualStateCommand::clear_computeforwardkinematics() {
  computeforwardkinematics_ = false;
}
inline bool RequestActualStateCommand::computeforwardkinematics() const {
  // @@protoc_insertion_point(field_get:pybullet_grpc.RequestActualStateCommand.computeForwardKinematics)
  return computeforwardkinematics_;
}
inline void RequestActualStateCommand::set_computeforwardkinematics(bool value) {
  
  computeforwardkinematics_ = value;
  // @@protoc_insertion_point(field_set:pybullet_grpc.RequestActualStateCommand.computeForwardKinematics)
}

// bool computeLinkVelocities = 3;
inline void RequestActualStateCommand::clear_computelinkvelocities() {
  computelinkvelocities_ = false;
}
inline bool RequestActualStateCommand::computelinkvelocities() const {
  // @@protoc_insertion_point(field_get:pybullet_grpc.RequestActualStateCommand.computeLinkVelocities)
  return computelinkvelocities_;
}
inline void RequestActualStateCommand::set_computelinkvelocities(bool value) {
  
  computelinkvelocities_ = value;
  // @@protoc_insertion_point(field_set:pybullet_grpc.RequestActualStateCommand.computeLinkVelocities)
}

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

// SendActualStateStatus

// int32 bodyUniqueId = 1;
inline void SendActualStateStatus::clear_bodyuniqueid() {
  bodyuniqueid_ = 0;
}
inline ::google::protobuf::int32 SendActualStateStatus::bodyuniqueid() const {
  // @@protoc_insertion_point(field_get:pybullet_grpc.SendActualStateStatus.bodyUniqueId)
  return bodyuniqueid_;
}
inline void SendActualStateStatus::set_bodyuniqueid(::google::protobuf::int32 value) {
  
  bodyuniqueid_ = value;
  // @@protoc_insertion_point(field_set:pybullet_grpc.SendActualStateStatus.bodyUniqueId)
}

// int32 numLinks = 2;
inline void SendActualStateStatus::clear_numlinks() {
  numlinks_ = 0;
}
inline ::google::protobuf::int32 SendActualStateStatus::numlinks() const {
  // @@protoc_insertion_point(field_get:pybullet_grpc.SendActualStateStatus.numLinks)
  return numlinks_;
}
inline void SendActualStateStatus::set_numlinks(::google::protobuf::int32 value) {
  
  numlinks_ = value;
  // @@protoc_insertion_point(field_set:pybullet_grpc.SendActualStateStatus.numLinks)
}

// int32 numDegreeOfFreedomQ = 3;
inline void SendActualStateStatus::clear_numdegreeoffreedomq() {
  numdegreeoffreedomq_ = 0;
}
inline ::google::protobuf::int32 SendActualStateStatus::numdegreeoffreedomq() const {
  // @@protoc_insertion_point(field_get:pybullet_grpc.SendActualStateStatus.numDegreeOfFreedomQ)
  return numdegreeoffreedomq_;
}
inline void SendActualStateStatus::set_numdegreeoffreedomq(::google::protobuf::int32 value) {
  
  numdegreeoffreedomq_ = value;
  // @@protoc_insertion_point(field_set:pybullet_grpc.SendActualStateStatus.numDegreeOfFreedomQ)
}

// int32 numDegreeOfFreedomU = 4;
inline void SendActualStateStatus::clear_numdegreeoffreedomu() {
  numdegreeoffreedomu_ = 0;
}
inline ::google::protobuf::int32 SendActualStateStatus::numdegreeoffreedomu() const {
  // @@protoc_insertion_point(field_get:pybullet_grpc.SendActualStateStatus.numDegreeOfFreedomU)
  return numdegreeoffreedomu_;
}
inline void SendActualStateStatus::set_numdegreeoffreedomu(::google::protobuf::int32 value) {
  
  numdegreeoffreedomu_ = value;
  // @@protoc_insertion_point(field_set:pybullet_grpc.SendActualStateStatus.numDegreeOfFreedomU)
}

// repeated double rootLocalInertialFrame = 5;
inline int SendActualStateStatus::rootlocalinertialframe_size() const {
  return rootlocalinertialframe_.size();
}
inline void SendActualStateStatus::clear_rootlocalinertialframe() {
  rootlocalinertialframe_.Clear();
}
inline double SendActualStateStatus::rootlocalinertialframe(int index) const {
  // @@protoc_insertion_point(field_get:pybullet_grpc.SendActualStateStatus.rootLocalInertialFrame)
  return rootlocalinertialframe_.Get(index);
}
inline void SendActualStateStatus::set_rootlocalinertialframe(int index, double value) {
  rootlocalinertialframe_.Set(index, value);
  // @@protoc_insertion_point(field_set:pybullet_grpc.SendActualStateStatus.rootLocalInertialFrame)
}
inline void SendActualStateStatus::add_rootlocalinertialframe(double value) {
  rootlocalinertialframe_.Add(value);
  // @@protoc_insertion_point(field_add:pybullet_grpc.SendActualStateStatus.rootLocalInertialFrame)
}
inline const ::google::protobuf::RepeatedField< double >&
SendActualStateStatus::rootlocalinertialframe() const {
  // @@protoc_insertion_point(field_list:pybullet_grpc.SendActualStateStatus.rootLocalInertialFrame)
  return rootlocalinertialframe_;
}
inline ::google::protobuf::RepeatedField< double >*
SendActualStateStatus::mutable_rootlocalinertialframe() {
  // @@protoc_insertion_point(field_mutable_list:pybullet_grpc.SendActualStateStatus.rootLocalInertialFrame)
  return &rootlocalinertialframe_;
}

// repeated double actualStateQ = 6;
inline int SendActualStateStatus::actualstateq_size() const {
  return actualstateq_.size();
}
inline void SendActualStateStatus::clear_actualstateq() {
  actualstateq_.Clear();
}
inline double SendActualStateStatus::actualstateq(int index) const {
  // @@protoc_insertion_point(field_get:pybullet_grpc.SendActualStateStatus.actualStateQ)
  return actualstateq_.Get(index);
}
inline void SendActualStateStatus::set_actualstateq(int index, double value) {
  actualstateq_.Set(index, value);
  // @@protoc_insertion_point(field_set:pybullet_grpc.SendActualStateStatus.actualStateQ)
}
inline void SendActualStateStatus::add_actualstateq(double value) {
  actualstateq_.Add(value);
  // @@protoc_insertion_point(field_add:pybullet_grpc.SendActualStateStatus.actualStateQ)
}
inline const ::google::protobuf::RepeatedField< double >&
SendActualStateStatus::actualstateq() const {
  // @@protoc_insertion_point(field_list:pybullet_grpc.SendActualStateStatus.actualStateQ)
  return actualstateq_;
}
inline ::google::protobuf::RepeatedField< double >*
SendActualStateStatus::mutable_actualstateq() {
  // @@protoc_insertion_point(field_mutable_list:pybullet_grpc.SendActualStateStatus.actualStateQ)
  return &actualstateq_;
}

// repeated double actualStateQdot = 7;
inline int SendActualStateStatus::actualstateqdot_size() const {
  return actualstateqdot_.size();
}
inline void SendActualStateStatus::clear_actualstateqdot() {
  actualstateqdot_.Clear();
}
inline double SendActualStateStatus::actualstateqdot(int index) const {
  // @@protoc_insertion_point(field_get:pybullet_grpc.SendActualStateStatus.actualStateQdot)
  return actualstateqdot_.Get(index);
}
inline void SendActualStateStatus::set_actualstateqdot(int index, double value) {
  actualstateqdot_.Set(index, value);
  // @@protoc_insertion_point(field_set:pybullet_grpc.SendActualStateStatus.actualStateQdot)
}
inline void SendActualStateStatus::add_actualstateqdot(double value) {
  actualstateqdot_.Add(value);
  // @@protoc_insertion_point(field_add:pybullet_grpc.SendActualStateStatus.actualStateQdot)
}
inline const ::google::protobuf::RepeatedField< double >&
SendActualStateStatus::actualstateqdot() const {
  // @@protoc_insertion_point(field_list:pybullet_grpc.SendActualStateStatus.actualStateQdot)
  return actualstateqdot_;
}
inline ::google::protobuf::RepeatedField< double >*
SendActualStateStatus::mutable_actualstateqdot() {
  // @@protoc_insertion_point(field_mutable_list:pybullet_grpc.SendActualStateStatus.actualStateQdot)
  return &actualstateqdot_;
}

// repeated double jointReactionForces = 8;
inline int SendActualStateStatus::jointreactionforces_size() const {
  return jointreactionforces_.size();
}
inline void SendActualStateStatus::clear_jointreactionforces() {
  jointreactionforces_.Clear();
}
inline double SendActualStateStatus::jointreactionforces(int index) const {
  // @@protoc_insertion_point(field_get:pybullet_grpc.SendActualStateStatus.jointReactionForces)
  return jointreactionforces_.Get(index);
}
inline void SendActualStateStatus::set_jointreactionforces(int index, double value) {
  jointreactionforces_.Set(index, value);
  // @@protoc_insertion_point(field_set:pybullet_grpc.SendActualStateStatus.jointReactionForces)
}
inline void SendActualStateStatus::add_jointreactionforces(double value) {
  jointreactionforces_.Add(value);
  // @@protoc_insertion_point(field_add:pybullet_grpc.SendActualStateStatus.jointReactionForces)
}
inline const ::google::protobuf::RepeatedField< double >&
SendActualStateStatus::jointreactionforces() const {
  // @@protoc_insertion_point(field_list:pybullet_grpc.SendActualStateStatus.jointReactionForces)
  return jointreactionforces_;
}
inline ::google::protobuf::RepeatedField< double >*
SendActualStateStatus::mutable_jointreactionforces() {
  // @@protoc_insertion_point(field_mutable_list:pybullet_grpc.SendActualStateStatus.jointReactionForces)
  return &jointreactionforces_;
}

// repeated double jointMotorForce = 9;
inline int SendActualStateStatus::jointmotorforce_size() const {
  return jointmotorforce_.size();
}
inline void SendActualStateStatus::clear_jointmotorforce() {
  jointmotorforce_.Clear();
}
inline double SendActualStateStatus::jointmotorforce(int index) const {
  // @@protoc_insertion_point(field_get:pybullet_grpc.SendActualStateStatus.jointMotorForce)
  return jointmotorforce_.Get(index);
}
inline void SendActualStateStatus::set_jointmotorforce(int index, double value) {
  jointmotorforce_.Set(index, value);
  // @@protoc_insertion_point(field_set:pybullet_grpc.SendActualStateStatus.jointMotorForce)
}
inline void SendActualStateStatus::add_jointmotorforce(double value) {
  jointmotorforce_.Add(value);
  // @@protoc_insertion_point(field_add:pybullet_grpc.SendActualStateStatus.jointMotorForce)
}
inline const ::google::protobuf::RepeatedField< double >&
SendActualStateStatus::jointmotorforce() const {
  // @@protoc_insertion_point(field_list:pybullet_grpc.SendActualStateStatus.jointMotorForce)
  return jointmotorforce_;
}
inline ::google::protobuf::RepeatedField< double >*
SendActualStateStatus::mutable_jointmotorforce() {
  // @@protoc_insertion_point(field_mutable_list:pybullet_grpc.SendActualStateStatus.jointMotorForce)
  return &jointmotorforce_;
}

// repeated double linkState = 10;
inline int SendActualStateStatus::linkstate_size() const {
  return linkstate_.size();
}
inline void SendActualStateStatus::clear_linkstate() {
  linkstate_.Clear();
}
inline double SendActualStateStatus::linkstate(int index) const {
  // @@protoc_insertion_point(field_get:pybullet_grpc.SendActualStateStatus.linkState)
  return linkstate_.Get(index);
}
inline void SendActualStateStatus::set_linkstate(int index, double value) {
  linkstate_.Set(index, value);
  // @@protoc_insertion_point(field_set:pybullet_grpc.SendActualStateStatus.linkState)
}
inline void SendActualStateStatus::add_linkstate(double value) {
  linkstate_.Add(value);
  // @@protoc_insertion_point(field_add:pybullet_grpc.SendActualStateStatus.linkState)
}
inline const ::google::protobuf::RepeatedField< double >&
SendActualStateStatus::linkstate() const {
  // @@protoc_insertion_point(field_list:pybullet_grpc.SendActualStateStatus.linkState)
  return linkstate_;
}
inline ::google::protobuf::RepeatedField< double >*
SendActualStateStatus::mutable_linkstate() {
  // @@protoc_insertion_point(field_mutable_list:pybullet_grpc.SendActualStateStatus.linkState)
  return &linkstate_;
}

// repeated double linkWorldVelocities = 11;
inline int SendActualStateStatus::linkworldvelocities_size() const {
  return linkworldvelocities_.size();
}
inline void SendActualStateStatus::clear_linkworldvelocities() {
  linkworldvelocities_.Clear();
}
inline double SendActualStateStatus::linkworldvelocities(int index) const {
  // @@protoc_insertion_point(field_get:pybullet_grpc.SendActualStateStatus.linkWorldVelocities)
  return linkworldvelocities_.Get(index);
}
inline void SendActualStateStatus::set_linkworldvelocities(int index, double value) {
  linkworldvelocities_.Set(index, value);
  // @@protoc_insertion_point(field_set:pybullet_grpc.SendActualStateStatus.linkWorldVelocities)
}
inline void SendActualStateStatus::add_linkworldvelocities(double value) {
  linkworldvelocities_.Add(value);
  // @@protoc_insertion_point(field_add:pybullet_grpc.SendActualStateStatus.linkWorldVelocities)
}
inline const ::google::protobuf::RepeatedField< double >&
SendActualStateStatus::linkworldvelocities() const {
  // @@protoc_insertion_point(field_list:pybullet_grpc.SendActualStateStatus.linkWorldVelocities)
  return linkworldvelocities_;
}
inline ::google::protobuf::RepeatedField< double >*
SendActualStateStatus::mutable_linkworldvelocities() {
  // @@protoc_insertion_point(field_mutable_list:pybullet_grpc.SendActualStateStatus.linkWorldVelocities)
  return &linkworldvelocities_;
}

// repeated double linkLocalInertialFrames = 12;
inline int SendActualStateStatus::linklocalinertialframes_size() const {
  return linklocalinertialframes_.size();
}
inline void SendActualStateStatus::clear_linklocalinertialframes() {
  linklocalinertialframes_.Clear();
}
inline double SendActualStateStatus::linklocalinertialframes(int index) const {
  // @@protoc_insertion_point(field_get:pybullet_grpc.SendActualStateStatus.linkLocalInertialFrames)
  return linklocalinertialframes_.Get(index);
}
inline void SendActualStateStatus::set_linklocalinertialframes(int index, double value) {
  linklocalinertialframes_.Set(index, value);
  // @@protoc_insertion_point(field_set:pybullet_grpc.SendActualStateStatus.linkLocalInertialFrames)
}
inline void SendActualStateStatus::add_linklocalinertialframes(double value) {
  linklocalinertialframes_.Add(value);
  // @@protoc_insertion_point(field_add:pybullet_grpc.SendActualStateStatus.linkLocalInertialFrames)
}
inline const ::google::protobuf::RepeatedField< double >&
SendActualStateStatus::linklocalinertialframes() const {
  // @@protoc_insertion_point(field_list:pybullet_grpc.SendActualStateStatus.linkLocalInertialFrames)
  return linklocalinertialframes_;
}
inline ::google::protobuf::RepeatedField< double >*
SendActualStateStatus::mutable_linklocalinertialframes() {
  // @@protoc_insertion_point(field_mutable_list:pybullet_grpc.SendActualStateStatus.linkLocalInertialFrames)
  return &linklocalinertialframes_;
}

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

// ConfigureOpenGLVisualizerCommand

// int32 updateFlags = 1;
inline void ConfigureOpenGLVisualizerCommand::clear_updateflags() {
  updateflags_ = 0;
}
inline ::google::protobuf::int32 ConfigureOpenGLVisualizerCommand::updateflags() const {
  // @@protoc_insertion_point(field_get:pybullet_grpc.ConfigureOpenGLVisualizerCommand.updateFlags)
  return updateflags_;
}
inline void ConfigureOpenGLVisualizerCommand::set_updateflags(::google::protobuf::int32 value) {
  
  updateflags_ = value;
  // @@protoc_insertion_point(field_set:pybullet_grpc.ConfigureOpenGLVisualizerCommand.updateFlags)
}

// double cameraDistance = 2;
inline void ConfigureOpenGLVisualizerCommand::clear_cameradistance() {
  cameradistance_ = 0;
}
inline double ConfigureOpenGLVisualizerCommand::cameradistance() const {
  // @@protoc_insertion_point(field_get:pybullet_grpc.ConfigureOpenGLVisualizerCommand.cameraDistance)
  return cameradistance_;
}
inline void ConfigureOpenGLVisualizerCommand::set_cameradistance(double value) {
  
  cameradistance_ = value;
  // @@protoc_insertion_point(field_set:pybullet_grpc.ConfigureOpenGLVisualizerCommand.cameraDistance)
}

// double cameraPitch = 3;
inline void ConfigureOpenGLVisualizerCommand::clear_camerapitch() {
  camerapitch_ = 0;
}
inline double ConfigureOpenGLVisualizerCommand::camerapitch() const {
  // @@protoc_insertion_point(field_get:pybullet_grpc.ConfigureOpenGLVisualizerCommand.cameraPitch)
  return camerapitch_;
}
inline void ConfigureOpenGLVisualizerCommand::set_camerapitch(double value) {
  
  camerapitch_ = value;
  // @@protoc_insertion_point(field_set:pybullet_grpc.ConfigureOpenGLVisualizerCommand.cameraPitch)
}

// double cameraYaw = 4;
inline void ConfigureOpenGLVisualizerCommand::clear_camerayaw() {
  camerayaw_ = 0;
}
inline double ConfigureOpenGLVisualizerCommand::camerayaw() const {
  // @@protoc_insertion_point(field_get:pybullet_grpc.ConfigureOpenGLVisualizerCommand.cameraYaw)
  return camerayaw_;
}
inline void ConfigureOpenGLVisualizerCommand::set_camerayaw(double value) {
  
  camerayaw_ = value;
  // @@protoc_insertion_point(field_set:pybullet_grpc.ConfigureOpenGLVisualizerCommand.cameraYaw)
}

// .pybullet_grpc.vec3 cameraTargetPosition = 5;
inline bool ConfigureOpenGLVisualizerCommand::has_cameratargetposition() const {
  return this != internal_default_instance() && cameratargetposition_ != NULL;
}
inline void ConfigureOpenGLVisualizerCommand::clear_cameratargetposition() {
  if (GetArenaNoVirtual() == NULL && cameratargetposition_ != NULL) {
    delete cameratargetposition_;
  }
  cameratargetposition_ = NULL;
}
inline const ::pybullet_grpc::vec3& ConfigureOpenGLVisualizerCommand::_internal_cameratargetposition() const {
  return *cameratargetposition_;
}
inline const ::pybullet_grpc::vec3& ConfigureOpenGLVisualizerCommand::cameratargetposition() const {
  const ::pybullet_grpc::vec3* p = cameratargetposition_;
  // @@protoc_insertion_point(field_get:pybullet_grpc.ConfigureOpenGLVisualizerCommand.cameraTargetPosition)
  return p != NULL ? *p : *reinterpret_cast<const ::pybullet_grpc::vec3*>(
      &::pybullet_grpc::_vec3_default_instance_);
}
inline ::pybullet_grpc::vec3* ConfigureOpenGLVisualizerCommand::release_cameratargetposition() {
  // @@protoc_insertion_point(field_release:pybullet_grpc.ConfigureOpenGLVisualizerCommand.cameraTargetPosition)
  
  ::pybullet_grpc::vec3* temp = cameratargetposition_;
  cameratargetposition_ = NULL;
  return temp;
}
inline ::pybullet_grpc::vec3* ConfigureOpenGLVisualizerCommand::mutable_cameratargetposition() {
  
  if (cameratargetposition_ == NULL) {
    auto* p = CreateMaybeMessage<::pybullet_grpc::vec3>(GetArenaNoVirtual());
    cameratargetposition_ = p;
  }
  // @@protoc_insertion_point(field_mutable:pybullet_grpc.ConfigureOpenGLVisualizerCommand.cameraTargetPosition)
  return cameratargetposition_;
}
inline void ConfigureOpenGLVisualizerCommand::set_allocated_cameratargetposition(::pybullet_grpc::vec3* cameratargetposition) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete cameratargetposition_;
  }
  if (cameratargetposition) {
    ::google::protobuf::Arena* submessage_arena = NULL;
    if (message_arena != submessage_arena) {
      cameratargetposition = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, cameratargetposition, submessage_arena);
    }
    
  } else {
    
  }
  cameratargetposition_ = cameratargetposition;
  // @@protoc_insertion_point(field_set_allocated:pybullet_grpc.ConfigureOpenGLVisualizerCommand.cameraTargetPosition)
}

// int32 setFlag = 6;
inline void ConfigureOpenGLVisualizerCommand::clear_setflag() {
  setflag_ = 0;
}
inline ::google::protobuf::int32 ConfigureOpenGLVisualizerCommand::setflag() const {
  // @@protoc_insertion_point(field_get:pybullet_grpc.ConfigureOpenGLVisualizerCommand.setFlag)
  return setflag_;
}
inline void ConfigureOpenGLVisualizerCommand::set_setflag(::google::protobuf::int32 value) {
  
  setflag_ = value;
  // @@protoc_insertion_point(field_set:pybullet_grpc.ConfigureOpenGLVisualizerCommand.setFlag)
}

// int32 setEnabled = 7;
inline void ConfigureOpenGLVisualizerCommand::clear_setenabled() {
  setenabled_ = 0;
}
inline ::google::protobuf::int32 ConfigureOpenGLVisualizerCommand::setenabled() const {
  // @@protoc_insertion_point(field_get:pybullet_grpc.ConfigureOpenGLVisualizerCommand.setEnabled)
  return setenabled_;
}
inline void ConfigureOpenGLVisualizerCommand::set_setenabled(::google::protobuf::int32 value) {
  
  setenabled_ = value;
  // @@protoc_insertion_point(field_set:pybullet_grpc.ConfigureOpenGLVisualizerCommand.setEnabled)
}

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

// PhysicsSimulationParameters

// double deltaTime = 1;
inline void PhysicsSimulationParameters::clear_deltatime() {
  deltatime_ = 0;
}
inline double PhysicsSimulationParameters::deltatime() const {
  // @@protoc_insertion_point(field_get:pybullet_grpc.PhysicsSimulationParameters.deltaTime)
  return deltatime_;
}
inline void PhysicsSimulationParameters::set_deltatime(double value) {
  
  deltatime_ = value;
  // @@protoc_insertion_point(field_set:pybullet_grpc.PhysicsSimulationParameters.deltaTime)
}

// .pybullet_grpc.vec3 gravityAcceleration = 2;
inline bool PhysicsSimulationParameters::has_gravityacceleration() const {
  return this != internal_default_instance() && gravityacceleration_ != NULL;
}
inline void PhysicsSimulationParameters::clear_gravityacceleration() {
  if (GetArenaNoVirtual() == NULL && gravityacceleration_ != NULL) {
    delete gravityacceleration_;
  }
  gravityacceleration_ = NULL;
}
inline const ::pybullet_grpc::vec3& PhysicsSimulationParameters::_internal_gravityacceleration() const {
  return *gravityacceleration_;
}
inline const ::pybullet_grpc::vec3& PhysicsSimulationParameters::gravityacceleration() const {
  const ::pybullet_grpc::vec3* p = gravityacceleration_;
  // @@protoc_insertion_point(field_get:pybullet_grpc.PhysicsSimulationParameters.gravityAcceleration)
  return p != NULL ? *p : *reinterpret_cast<const ::pybullet_grpc::vec3*>(
      &::pybullet_grpc::_vec3_default_instance_);
}
inline ::pybullet_grpc::vec3* PhysicsSimulationParameters::release_gravityacceleration() {
  // @@protoc_insertion_point(field_release:pybullet_grpc.PhysicsSimulationParameters.gravityAcceleration)
  
  ::pybullet_grpc::vec3* temp = gravityacceleration_;
  gravityacceleration_ = NULL;
  return temp;
}
inline ::pybullet_grpc::vec3* PhysicsSimulationParameters::mutable_gravityacceleration() {
  
  if (gravityacceleration_ == NULL) {
    auto* p = CreateMaybeMessage<::pybullet_grpc::vec3>(GetArenaNoVirtual());
    gravityacceleration_ = p;
  }
  // @@protoc_insertion_point(field_mutable:pybullet_grpc.PhysicsSimulationParameters.gravityAcceleration)
  return gravityacceleration_;
}
inline void PhysicsSimulationParameters::set_allocated_gravityacceleration(::pybullet_grpc::vec3* gravityacceleration) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete gravityacceleration_;
  }
  if (gravityacceleration) {
    ::google::protobuf::Arena* submessage_arena = NULL;
    if (message_arena != submessage_arena) {
      gravityacceleration = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, gravityacceleration, submessage_arena);
    }
    
  } else {
    
  }
  gravityacceleration_ = gravityacceleration;
  // @@protoc_insertion_point(field_set_allocated:pybullet_grpc.PhysicsSimulationParameters.gravityAcceleration)
}

// int32 numSimulationSubSteps = 3;
inline void PhysicsSimulationParameters::clear_numsimulationsubsteps() {
  numsimulationsubsteps_ = 0;
}
inline ::google::protobuf::int32 PhysicsSimulationParameters::numsimulationsubsteps() const {
  // @@protoc_insertion_point(field_get:pybullet_grpc.PhysicsSimulationParameters.numSimulationSubSteps)
  return numsimulationsubsteps_;
}
inline void PhysicsSimulationParameters::set_numsimulationsubsteps(::google::protobuf::int32 value) {
  
  numsimulationsubsteps_ = value;
  // @@protoc_insertion_point(field_set:pybullet_grpc.PhysicsSimulationParameters.numSimulationSubSteps)
}

// int32 numSolverIterations = 4;
inline void PhysicsSimulationParameters::clear_numsolveriterations() {
  numsolveriterations_ = 0;
}
inline ::google::protobuf::int32 PhysicsSimulationParameters::numsolveriterations() const {
  // @@protoc_insertion_point(field_get:pybullet_grpc.PhysicsSimulationParameters.numSolverIterations)
  return numsolveriterations_;
}
inline void PhysicsSimulationParameters::set_numsolveriterations(::google::protobuf::int32 value) {
  
  numsolveriterations_ = value;
  // @@protoc_insertion_point(field_set:pybullet_grpc.PhysicsSimulationParameters.numSolverIterations)
}

// int32 useRealTimeSimulation = 5;
inline void PhysicsSimulationParameters::clear_userealtimesimulation() {
  userealtimesimulation_ = 0;
}
inline ::google::protobuf::int32 PhysicsSimulationParameters::userealtimesimulation() const {
  // @@protoc_insertion_point(field_get:pybullet_grpc.PhysicsSimulationParameters.useRealTimeSimulation)
  return userealtimesimulation_;
}
inline void PhysicsSimulationParameters::set_userealtimesimulation(::google::protobuf::int32 value) {
  
  userealtimesimulation_ = value;
  // @@protoc_insertion_point(field_set:pybullet_grpc.PhysicsSimulationParameters.useRealTimeSimulation)
}

// int32 useSplitImpulse = 6;
inline void PhysicsSimulationParameters::clear_usesplitimpulse() {
  usesplitimpulse_ = 0;
}
inline ::google::protobuf::int32 PhysicsSimulationParameters::usesplitimpulse() const {
  // @@protoc_insertion_point(field_get:pybullet_grpc.PhysicsSimulationParameters.useSplitImpulse)
  return usesplitimpulse_;
}
inline void PhysicsSimulationParameters::set_usesplitimpulse(::google::protobuf::int32 value) {
  
  usesplitimpulse_ = value;
  // @@protoc_insertion_point(field_set:pybullet_grpc.PhysicsSimulationParameters.useSplitImpulse)
}

// double splitImpulsePenetrationThreshold = 7;
inline void PhysicsSimulationParameters::clear_splitimpulsepenetrationthreshold() {
  splitimpulsepenetrationthreshold_ = 0;
}
inline double PhysicsSimulationParameters::splitimpulsepenetrationthreshold() const {
  // @@protoc_insertion_point(field_get:pybullet_grpc.PhysicsSimulationParameters.splitImpulsePenetrationThreshold)
  return splitimpulsepenetrationthreshold_;
}
inline void PhysicsSimulationParameters::set_splitimpulsepenetrationthreshold(double value) {
  
  splitimpulsepenetrationthreshold_ = value;
  // @@protoc_insertion_point(field_set:pybullet_grpc.PhysicsSimulationParameters.splitImpulsePenetrationThreshold)
}

// double contactBreakingThreshold = 8;
inline void PhysicsSimulationParameters::clear_contactbreakingthreshold() {
  contactbreakingthreshold_ = 0;
}
inline double PhysicsSimulationParameters::contactbreakingthreshold() const {
  // @@protoc_insertion_point(field_get:pybullet_grpc.PhysicsSimulationParameters.contactBreakingThreshold)
  return contactbreakingthreshold_;
}
inline void PhysicsSimulationParameters::set_contactbreakingthreshold(double value) {
  
  contactbreakingthreshold_ = value;
  // @@protoc_insertion_point(field_set:pybullet_grpc.PhysicsSimulationParameters.contactBreakingThreshold)
}

// int32 internalSimFlags = 9;
inline void PhysicsSimulationParameters::clear_internalsimflags() {
  internalsimflags_ = 0;
}
inline ::google::protobuf::int32 PhysicsSimulationParameters::internalsimflags() const {
  // @@protoc_insertion_point(field_get:pybullet_grpc.PhysicsSimulationParameters.internalSimFlags)
  return internalsimflags_;
}
inline void PhysicsSimulationParameters::set_internalsimflags(::google::protobuf::int32 value) {
  
  internalsimflags_ = value;
  // @@protoc_insertion_point(field_set:pybullet_grpc.PhysicsSimulationParameters.internalSimFlags)
}

// double defaultContactERP = 10;
inline void PhysicsSimulationParameters::clear_defaultcontacterp() {
  defaultcontacterp_ = 0;
}
inline double PhysicsSimulationParameters::defaultcontacterp() const {
  // @@protoc_insertion_point(field_get:pybullet_grpc.PhysicsSimulationParameters.defaultContactERP)
  return defaultcontacterp_;
}
inline void PhysicsSimulationParameters::set_defaultcontacterp(double value) {
  
  defaultcontacterp_ = value;
  // @@protoc_insertion_point(field_set:pybullet_grpc.PhysicsSimulationParameters.defaultContactERP)
}

// int32 collisionFilterMode = 11;
inline void PhysicsSimulationParameters::clear_collisionfiltermode() {
  collisionfiltermode_ = 0;
}
inline ::google::protobuf::int32 PhysicsSimulationParameters::collisionfiltermode() const {
  // @@protoc_insertion_point(field_get:pybullet_grpc.PhysicsSimulationParameters.collisionFilterMode)
  return collisionfiltermode_;
}
inline void PhysicsSimulationParameters::set_collisionfiltermode(::google::protobuf::int32 value) {
  
  collisionfiltermode_ = value;
  // @@protoc_insertion_point(field_set:pybullet_grpc.PhysicsSimulationParameters.collisionFilterMode)
}

// int32 enableFileCaching = 12;
inline void PhysicsSimulationParameters::clear_enablefilecaching() {
  enablefilecaching_ = 0;
}
inline ::google::protobuf::int32 PhysicsSimulationParameters::enablefilecaching() const {
  // @@protoc_insertion_point(field_get:pybullet_grpc.PhysicsSimulationParameters.enableFileCaching)
  return enablefilecaching_;
}
inline void PhysicsSimulationParameters::set_enablefilecaching(::google::protobuf::int32 value) {
  
  enablefilecaching_ = value;
  // @@protoc_insertion_point(field_set:pybullet_grpc.PhysicsSimulationParameters.enableFileCaching)
}

// double restitutionVelocityThreshold = 13;
inline void PhysicsSimulationParameters::clear_restitutionvelocitythreshold() {
  restitutionvelocitythreshold_ = 0;
}
inline double PhysicsSimulationParameters::restitutionvelocitythreshold() const {
  // @@protoc_insertion_point(field_get:pybullet_grpc.PhysicsSimulationParameters.restitutionVelocityThreshold)
  return restitutionvelocitythreshold_;
}
inline void PhysicsSimulationParameters::set_restitutionvelocitythreshold(double value) {
  
  restitutionvelocitythreshold_ = value;
  // @@protoc_insertion_point(field_set:pybullet_grpc.PhysicsSimulationParameters.restitutionVelocityThreshold)
}

// double defaultNonContactERP = 14;
inline void PhysicsSimulationParameters::clear_defaultnoncontacterp() {
  defaultnoncontacterp_ = 0;
}
inline double PhysicsSimulationParameters::defaultnoncontacterp() const {
  // @@protoc_insertion_point(field_get:pybullet_grpc.PhysicsSimulationParameters.defaultNonContactERP)
  return defaultnoncontacterp_;
}
inline void PhysicsSimulationParameters::set_defaultnoncontacterp(double value) {
  
  defaultnoncontacterp_ = value;
  // @@protoc_insertion_point(field_set:pybullet_grpc.PhysicsSimulationParameters.defaultNonContactERP)
}

// double frictionERP = 15;
inline void PhysicsSimulationParameters::clear_frictionerp() {
  frictionerp_ = 0;
}
inline double PhysicsSimulationParameters::frictionerp() const {
  // @@protoc_insertion_point(field_get:pybullet_grpc.PhysicsSimulationParameters.frictionERP)
  return frictionerp_;
}
inline void PhysicsSimulationParameters::set_frictionerp(double value) {
  
  frictionerp_ = value;
  // @@protoc_insertion_point(field_set:pybullet_grpc.PhysicsSimulationParameters.frictionERP)
}

// double defaultGlobalCFM = 16;
inline void PhysicsSimulationParameters::clear_defaultglobalcfm() {
  defaultglobalcfm_ = 0;
}
inline double PhysicsSimulationParameters::defaultglobalcfm() const {
  // @@protoc_insertion_point(field_get:pybullet_grpc.PhysicsSimulationParameters.defaultGlobalCFM)
  return defaultglobalcfm_;
}
inline void PhysicsSimulationParameters::set_defaultglobalcfm(double value) {
  
  defaultglobalcfm_ = value;
  // @@protoc_insertion_point(field_set:pybullet_grpc.PhysicsSimulationParameters.defaultGlobalCFM)
}

// double frictionCFM = 17;
inline void PhysicsSimulationParameters::clear_frictioncfm() {
  frictioncfm_ = 0;
}
inline double PhysicsSimulationParameters::frictioncfm() const {
  // @@protoc_insertion_point(field_get:pybullet_grpc.PhysicsSimulationParameters.frictionCFM)
  return frictioncfm_;
}
inline void PhysicsSimulationParameters::set_frictioncfm(double value) {
  
  frictioncfm_ = value;
  // @@protoc_insertion_point(field_set:pybullet_grpc.PhysicsSimulationParameters.frictionCFM)
}

// int32 enableConeFriction = 18;
inline void PhysicsSimulationParameters::clear_enableconefriction() {
  enableconefriction_ = 0;
}
inline ::google::protobuf::int32 PhysicsSimulationParameters::enableconefriction() const {
  // @@protoc_insertion_point(field_get:pybullet_grpc.PhysicsSimulationParameters.enableConeFriction)
  return enableconefriction_;
}
inline void PhysicsSimulationParameters::set_enableconefriction(::google::protobuf::int32 value) {
  
  enableconefriction_ = value;
  // @@protoc_insertion_point(field_set:pybullet_grpc.PhysicsSimulationParameters.enableConeFriction)
}

// int32 deterministicOverlappingPairs = 19;
inline void PhysicsSimulationParameters::clear_deterministicoverlappingpairs() {
  deterministicoverlappingpairs_ = 0;
}
inline ::google::protobuf::int32 PhysicsSimulationParameters::deterministicoverlappingpairs() const {
  // @@protoc_insertion_point(field_get:pybullet_grpc.PhysicsSimulationParameters.deterministicOverlappingPairs)
  return deterministicoverlappingpairs_;
}
inline void PhysicsSimulationParameters::set_deterministicoverlappingpairs(::google::protobuf::int32 value) {
  
  deterministicoverlappingpairs_ = value;
  // @@protoc_insertion_point(field_set:pybullet_grpc.PhysicsSimulationParameters.deterministicOverlappingPairs)
}

// double allowedCcdPenetration = 20;
inline void PhysicsSimulationParameters::clear_allowedccdpenetration() {
  allowedccdpenetration_ = 0;
}
inline double PhysicsSimulationParameters::allowedccdpenetration() const {
  // @@protoc_insertion_point(field_get:pybullet_grpc.PhysicsSimulationParameters.allowedCcdPenetration)
  return allowedccdpenetration_;
}
inline void PhysicsSimulationParameters::set_allowedccdpenetration(double value) {
  
  allowedccdpenetration_ = value;
  // @@protoc_insertion_point(field_set:pybullet_grpc.PhysicsSimulationParameters.allowedCcdPenetration)
}

// int32 jointFeedbackMode = 21;
inline void PhysicsSimulationParameters::clear_jointfeedbackmode() {
  jointfeedbackmode_ = 0;
}
inline ::google::protobuf::int32 PhysicsSimulationParameters::jointfeedbackmode() const {
  // @@protoc_insertion_point(field_get:pybullet_grpc.PhysicsSimulationParameters.jointFeedbackMode)
  return jointfeedbackmode_;
}
inline void PhysicsSimulationParameters::set_jointfeedbackmode(::google::protobuf::int32 value) {
  
  jointfeedbackmode_ = value;
  // @@protoc_insertion_point(field_set:pybullet_grpc.PhysicsSimulationParameters.jointFeedbackMode)
}

// double solverResidualThreshold = 22;
inline void PhysicsSimulationParameters::clear_solverresidualthreshold() {
  solverresidualthreshold_ = 0;
}
inline double PhysicsSimulationParameters::solverresidualthreshold() const {
  // @@protoc_insertion_point(field_get:pybullet_grpc.PhysicsSimulationParameters.solverResidualThreshold)
  return solverresidualthreshold_;
}
inline void PhysicsSimulationParameters::set_solverresidualthreshold(double value) {
  
  solverresidualthreshold_ = value;
  // @@protoc_insertion_point(field_set:pybullet_grpc.PhysicsSimulationParameters.solverResidualThreshold)
}

// double contactSlop = 23;
inline void PhysicsSimulationParameters::clear_contactslop() {
  contactslop_ = 0;
}
inline double PhysicsSimulationParameters::contactslop() const {
  // @@protoc_insertion_point(field_get:pybullet_grpc.PhysicsSimulationParameters.contactSlop)
  return contactslop_;
}
inline void PhysicsSimulationParameters::set_contactslop(double value) {
  
  contactslop_ = value;
  // @@protoc_insertion_point(field_set:pybullet_grpc.PhysicsSimulationParameters.contactSlop)
}

// int32 enableSAT = 24;
inline void PhysicsSimulationParameters::clear_enablesat() {
  enablesat_ = 0;
}
inline ::google::protobuf::int32 PhysicsSimulationParameters::enablesat() const {
  // @@protoc_insertion_point(field_get:pybullet_grpc.PhysicsSimulationParameters.enableSAT)
  return enablesat_;
}
inline void PhysicsSimulationParameters::set_enablesat(::google::protobuf::int32 value) {
  
  enablesat_ = value;
  // @@protoc_insertion_point(field_set:pybullet_grpc.PhysicsSimulationParameters.enableSAT)
}

// int32 constraintSolverType = 25;
inline void PhysicsSimulationParameters::clear_constraintsolvertype() {
  constraintsolvertype_ = 0;
}
inline ::google::protobuf::int32 PhysicsSimulationParameters::constraintsolvertype() const {
  // @@protoc_insertion_point(field_get:pybullet_grpc.PhysicsSimulationParameters.constraintSolverType)
  return constraintsolvertype_;
}
inline void PhysicsSimulationParameters::set_constraintsolvertype(::google::protobuf::int32 value) {
  
  constraintsolvertype_ = value;
  // @@protoc_insertion_point(field_set:pybullet_grpc.PhysicsSimulationParameters.constraintSolverType)
}

// int32 minimumSolverIslandSize = 26;
inline void PhysicsSimulationParameters::clear_minimumsolverislandsize() {
  minimumsolverislandsize_ = 0;
}
inline ::google::protobuf::int32 PhysicsSimulationParameters::minimumsolverislandsize() const {
  // @@protoc_insertion_point(field_get:pybullet_grpc.PhysicsSimulationParameters.minimumSolverIslandSize)
  return minimumsolverislandsize_;
}
inline void PhysicsSimulationParameters::set_minimumsolverislandsize(::google::protobuf::int32 value) {
  
  minimumsolverislandsize_ = value;
  // @@protoc_insertion_point(field_set:pybullet_grpc.PhysicsSimulationParameters.minimumSolverIslandSize)
}

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

// PhysicsSimulationParametersCommand

// int32 updateFlags = 1;
inline void PhysicsSimulationParametersCommand::clear_updateflags() {
  updateflags_ = 0;
}
inline ::google::protobuf::int32 PhysicsSimulationParametersCommand::updateflags() const {
  // @@protoc_insertion_point(field_get:pybullet_grpc.PhysicsSimulationParametersCommand.updateFlags)
  return updateflags_;
}
inline void PhysicsSimulationParametersCommand::set_updateflags(::google::protobuf::int32 value) {
  
  updateflags_ = value;
  // @@protoc_insertion_point(field_set:pybullet_grpc.PhysicsSimulationParametersCommand.updateFlags)
}

// .pybullet_grpc.PhysicsSimulationParameters params = 2;
inline bool PhysicsSimulationParametersCommand::has_params() const {
  return this != internal_default_instance() && params_ != NULL;
}
inline void PhysicsSimulationParametersCommand::clear_params() {
  if (GetArenaNoVirtual() == NULL && params_ != NULL) {
    delete params_;
  }
  params_ = NULL;
}
inline const ::pybullet_grpc::PhysicsSimulationParameters& PhysicsSimulationParametersCommand::_internal_params() const {
  return *params_;
}
inline const ::pybullet_grpc::PhysicsSimulationParameters& PhysicsSimulationParametersCommand::params() const {
  const ::pybullet_grpc::PhysicsSimulationParameters* p = params_;
  // @@protoc_insertion_point(field_get:pybullet_grpc.PhysicsSimulationParametersCommand.params)
  return p != NULL ? *p : *reinterpret_cast<const ::pybullet_grpc::PhysicsSimulationParameters*>(
      &::pybullet_grpc::_PhysicsSimulationParameters_default_instance_);
}
inline ::pybullet_grpc::PhysicsSimulationParameters* PhysicsSimulationParametersCommand::release_params() {
  // @@protoc_insertion_point(field_release:pybullet_grpc.PhysicsSimulationParametersCommand.params)
  
  ::pybullet_grpc::PhysicsSimulationParameters* temp = params_;
  params_ = NULL;
  return temp;
}
inline ::pybullet_grpc::PhysicsSimulationParameters* PhysicsSimulationParametersCommand::mutable_params() {
  
  if (params_ == NULL) {
    auto* p = CreateMaybeMessage<::pybullet_grpc::PhysicsSimulationParameters>(GetArenaNoVirtual());
    params_ = p;
  }
  // @@protoc_insertion_point(field_mutable:pybullet_grpc.PhysicsSimulationParametersCommand.params)
  return params_;
}
inline void PhysicsSimulationParametersCommand::set_allocated_params(::pybullet_grpc::PhysicsSimulationParameters* params) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete params_;
  }
  if (params) {
    ::google::protobuf::Arena* submessage_arena = NULL;
    if (message_arena != submessage_arena) {
      params = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, params, submessage_arena);
    }
    
  } else {
    
  }
  params_ = params;
  // @@protoc_insertion_point(field_set_allocated:pybullet_grpc.PhysicsSimulationParametersCommand.params)
}

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

// JointMotorControlCommand

// int32 bodyUniqueId = 1;
inline void JointMotorControlCommand::clear_bodyuniqueid() {
  bodyuniqueid_ = 0;
}
inline ::google::protobuf::int32 JointMotorControlCommand::bodyuniqueid() const {
  // @@protoc_insertion_point(field_get:pybullet_grpc.JointMotorControlCommand.bodyUniqueId)
  return bodyuniqueid_;
}
inline void JointMotorControlCommand::set_bodyuniqueid(::google::protobuf::int32 value) {
  
  bodyuniqueid_ = value;
  // @@protoc_insertion_point(field_set:pybullet_grpc.JointMotorControlCommand.bodyUniqueId)
}

// int32 controlMode = 2;
inline void JointMotorControlCommand::clear_controlmode() {
  controlmode_ = 0;
}
inline ::google::protobuf::int32 JointMotorControlCommand::controlmode() const {
  // @@protoc_insertion_point(field_get:pybullet_grpc.JointMotorControlCommand.controlMode)
  return controlmode_;
}
inline void JointMotorControlCommand::set_controlmode(::google::protobuf::int32 value) {
  
  controlmode_ = value;
  // @@protoc_insertion_point(field_set:pybullet_grpc.JointMotorControlCommand.controlMode)
}

// int32 updateFlags = 3;
inline void JointMotorControlCommand::clear_updateflags() {
  updateflags_ = 0;
}
inline ::google::protobuf::int32 JointMotorControlCommand::updateflags() const {
  // @@protoc_insertion_point(field_get:pybullet_grpc.JointMotorControlCommand.updateFlags)
  return updateflags_;
}
inline void JointMotorControlCommand::set_updateflags(::google::protobuf::int32 value) {
  
  updateflags_ = value;
  // @@protoc_insertion_point(field_set:pybullet_grpc.JointMotorControlCommand.updateFlags)
}

// repeated double Kp = 4;
inline int JointMotorControlCommand::kp_size() const {
  return kp_.size();
}
inline void JointMotorControlCommand::clear_kp() {
  kp_.Clear();
}
inline double JointMotorControlCommand::kp(int index) const {
  // @@protoc_insertion_point(field_get:pybullet_grpc.JointMotorControlCommand.Kp)
  return kp_.Get(index);
}
inline void JointMotorControlCommand::set_kp(int index, double value) {
  kp_.Set(index, value);
  // @@protoc_insertion_point(field_set:pybullet_grpc.JointMotorControlCommand.Kp)
}
inline void JointMotorControlCommand::add_kp(double value) {
  kp_.Add(value);
  // @@protoc_insertion_point(field_add:pybullet_grpc.JointMotorControlCommand.Kp)
}
inline const ::google::protobuf::RepeatedField< double >&
JointMotorControlCommand::kp() const {
  // @@protoc_insertion_point(field_list:pybullet_grpc.JointMotorControlCommand.Kp)
  return kp_;
}
inline ::google::protobuf::RepeatedField< double >*
JointMotorControlCommand::mutable_kp() {
  // @@protoc_insertion_point(field_mutable_list:pybullet_grpc.JointMotorControlCommand.Kp)
  return &kp_;
}

// repeated double Kd = 5;
inline int JointMotorControlCommand::kd_size() const {
  return kd_.size();
}
inline void JointMotorControlCommand::clear_kd() {
  kd_.Clear();
}
inline double JointMotorControlCommand::kd(int index) const {
  // @@protoc_insertion_point(field_get:pybullet_grpc.JointMotorControlCommand.Kd)
  return kd_.Get(index);
}
inline void JointMotorControlCommand::set_kd(int index, double value) {
  kd_.Set(index, value);
  // @@protoc_insertion_point(field_set:pybullet_grpc.JointMotorControlCommand.Kd)
}
inline void JointMotorControlCommand::add_kd(double value) {
  kd_.Add(value);
  // @@protoc_insertion_point(field_add:pybullet_grpc.JointMotorControlCommand.Kd)
}
inline const ::google::protobuf::RepeatedField< double >&
JointMotorControlCommand::kd() const {
  // @@protoc_insertion_point(field_list:pybullet_grpc.JointMotorControlCommand.Kd)
  return kd_;
}
inline ::google::protobuf::RepeatedField< double >*
JointMotorControlCommand::mutable_kd() {
  // @@protoc_insertion_point(field_mutable_list:pybullet_grpc.JointMotorControlCommand.Kd)
  return &kd_;
}

// repeated double maxVelocity = 6;
inline int JointMotorControlCommand::maxvelocity_size() const {
  return maxvelocity_.size();
}
inline void JointMotorControlCommand::clear_maxvelocity() {
  maxvelocity_.Clear();
}
inline double JointMotorControlCommand::maxvelocity(int index) const {
  // @@protoc_insertion_point(field_get:pybullet_grpc.JointMotorControlCommand.maxVelocity)
  return maxvelocity_.Get(index);
}
inline void JointMotorControlCommand::set_maxvelocity(int index, double value) {
  maxvelocity_.Set(index, value);
  // @@protoc_insertion_point(field_set:pybullet_grpc.JointMotorControlCommand.maxVelocity)
}
inline void JointMotorControlCommand::add_maxvelocity(double value) {
  maxvelocity_.Add(value);
  // @@protoc_insertion_point(field_add:pybullet_grpc.JointMotorControlCommand.maxVelocity)
}
inline const ::google::protobuf::RepeatedField< double >&
JointMotorControlCommand::maxvelocity() const {
  // @@protoc_insertion_point(field_list:pybullet_grpc.JointMotorControlCommand.maxVelocity)
  return maxvelocity_;
}
inline ::google::protobuf::RepeatedField< double >*
JointMotorControlCommand::mutable_maxvelocity() {
  // @@protoc_insertion_point(field_mutable_list:pybullet_grpc.JointMotorControlCommand.maxVelocity)
  return &maxvelocity_;
}

// repeated int32 hasDesiredStateFlags = 7;
inline int JointMotorControlCommand::hasdesiredstateflags_size() const {
  return hasdesiredstateflags_.size();
}
inline void JointMotorControlCommand::clear_hasdesiredstateflags() {
  hasdesiredstateflags_.Clear();
}
inline ::google::protobuf::int32 JointMotorControlCommand::hasdesiredstateflags(int index) const {
  // @@protoc_insertion_point(field_get:pybullet_grpc.JointMotorControlCommand.hasDesiredStateFlags)
  return hasdesiredstateflags_.Get(index);
}
inline void JointMotorControlCommand::set_hasdesiredstateflags(int index, ::google::protobuf::int32 value) {
  hasdesiredstateflags_.Set(index, value);
  // @@protoc_insertion_point(field_set:pybullet_grpc.JointMotorControlCommand.hasDesiredStateFlags)
}
inline void JointMotorControlCommand::add_hasdesiredstateflags(::google::protobuf::int32 value) {
  hasdesiredstateflags_.Add(value);
  // @@protoc_insertion_point(field_add:pybullet_grpc.JointMotorControlCommand.hasDesiredStateFlags)
}
inline const ::google::protobuf::RepeatedField< ::google::protobuf::int32 >&
JointMotorControlCommand::hasdesiredstateflags() const {
  // @@protoc_insertion_point(field_list:pybullet_grpc.JointMotorControlCommand.hasDesiredStateFlags)
  return hasdesiredstateflags_;
}
inline ::google::protobuf::RepeatedField< ::google::protobuf::int32 >*
JointMotorControlCommand::mutable_hasdesiredstateflags() {
  // @@protoc_insertion_point(field_mutable_list:pybullet_grpc.JointMotorControlCommand.hasDesiredStateFlags)
  return &hasdesiredstateflags_;
}

// repeated double desiredStateQ = 8;
inline int JointMotorControlCommand::desiredstateq_size() const {
  return desiredstateq_.size();
}
inline void JointMotorControlCommand::clear_desiredstateq() {
  desiredstateq_.Clear();
}
inline double JointMotorControlCommand::desiredstateq(int index) const {
  // @@protoc_insertion_point(field_get:pybullet_grpc.JointMotorControlCommand.desiredStateQ)
  return desiredstateq_.Get(index);
}
inline void JointMotorControlCommand::set_desiredstateq(int index, double value) {
  desiredstateq_.Set(index, value);
  // @@protoc_insertion_point(field_set:pybullet_grpc.JointMotorControlCommand.desiredStateQ)
}
inline void JointMotorControlCommand::add_desiredstateq(double value) {
  desiredstateq_.Add(value);
  // @@protoc_insertion_point(field_add:pybullet_grpc.JointMotorControlCommand.desiredStateQ)
}
inline const ::google::protobuf::RepeatedField< double >&
JointMotorControlCommand::desiredstateq() const {
  // @@protoc_insertion_point(field_list:pybullet_grpc.JointMotorControlCommand.desiredStateQ)
  return desiredstateq_;
}
inline ::google::protobuf::RepeatedField< double >*
JointMotorControlCommand::mutable_desiredstateq() {
  // @@protoc_insertion_point(field_mutable_list:pybullet_grpc.JointMotorControlCommand.desiredStateQ)
  return &desiredstateq_;
}

// repeated double desiredStateQdot = 9;
inline int JointMotorControlCommand::desiredstateqdot_size() const {
  return desiredstateqdot_.size();
}
inline void JointMotorControlCommand::clear_desiredstateqdot() {
  desiredstateqdot_.Clear();
}
inline double JointMotorControlCommand::desiredstateqdot(int index) const {
  // @@protoc_insertion_point(field_get:pybullet_grpc.JointMotorControlCommand.desiredStateQdot)
  return desiredstateqdot_.Get(index);
}
inline void JointMotorControlCommand::set_desiredstateqdot(int index, double value) {
  desiredstateqdot_.Set(index, value);
  // @@protoc_insertion_point(field_set:pybullet_grpc.JointMotorControlCommand.desiredStateQdot)
}
inline void JointMotorControlCommand::add_desiredstateqdot(double value) {
  desiredstateqdot_.Add(value);
  // @@protoc_insertion_point(field_add:pybullet_grpc.JointMotorControlCommand.desiredStateQdot)
}
inline const ::google::protobuf::RepeatedField< double >&
JointMotorControlCommand::desiredstateqdot() const {
  // @@protoc_insertion_point(field_list:pybullet_grpc.JointMotorControlCommand.desiredStateQdot)
  return desiredstateqdot_;
}
inline ::google::protobuf::RepeatedField< double >*
JointMotorControlCommand::mutable_desiredstateqdot() {
  // @@protoc_insertion_point(field_mutable_list:pybullet_grpc.JointMotorControlCommand.desiredStateQdot)
  return &desiredstateqdot_;
}

// repeated double desiredStateForceTorque = 10;
inline int JointMotorControlCommand::desiredstateforcetorque_size() const {
  return desiredstateforcetorque_.size();
}
inline void JointMotorControlCommand::clear_desiredstateforcetorque() {
  desiredstateforcetorque_.Clear();
}
inline double JointMotorControlCommand::desiredstateforcetorque(int index) const {
  // @@protoc_insertion_point(field_get:pybullet_grpc.JointMotorControlCommand.desiredStateForceTorque)
  return desiredstateforcetorque_.Get(index);
}
inline void JointMotorControlCommand::set_desiredstateforcetorque(int index, double value) {
  desiredstateforcetorque_.Set(index, value);
  // @@protoc_insertion_point(field_set:pybullet_grpc.JointMotorControlCommand.desiredStateForceTorque)
}
inline void JointMotorControlCommand::add_desiredstateforcetorque(double value) {
  desiredstateforcetorque_.Add(value);
  // @@protoc_insertion_point(field_add:pybullet_grpc.JointMotorControlCommand.desiredStateForceTorque)
}
inline const ::google::protobuf::RepeatedField< double >&
JointMotorControlCommand::desiredstateforcetorque() const {
  // @@protoc_insertion_point(field_list:pybullet_grpc.JointMotorControlCommand.desiredStateForceTorque)
  return desiredstateforcetorque_;
}
inline ::google::protobuf::RepeatedField< double >*
JointMotorControlCommand::mutable_desiredstateforcetorque() {
  // @@protoc_insertion_point(field_mutable_list:pybullet_grpc.JointMotorControlCommand.desiredStateForceTorque)
  return &desiredstateforcetorque_;
}

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

// UserConstraintCommand

// int32 parentBodyIndex = 1;
inline void UserConstraintCommand::clear_parentbodyindex() {
  parentbodyindex_ = 0;
}
inline ::google::protobuf::int32 UserConstraintCommand::parentbodyindex() const {
  // @@protoc_insertion_point(field_get:pybullet_grpc.UserConstraintCommand.parentBodyIndex)
  return parentbodyindex_;
}
inline void UserConstraintCommand::set_parentbodyindex(::google::protobuf::int32 value) {
  
  parentbodyindex_ = value;
  // @@protoc_insertion_point(field_set:pybullet_grpc.UserConstraintCommand.parentBodyIndex)
}

// int32 parentJointIndex = 2;
inline void UserConstraintCommand::clear_parentjointindex() {
  parentjointindex_ = 0;
}
inline ::google::protobuf::int32 UserConstraintCommand::parentjointindex() const {
  // @@protoc_insertion_point(field_get:pybullet_grpc.UserConstraintCommand.parentJointIndex)
  return parentjointindex_;
}
inline void UserConstraintCommand::set_parentjointindex(::google::protobuf::int32 value) {
  
  parentjointindex_ = value;
  // @@protoc_insertion_point(field_set:pybullet_grpc.UserConstraintCommand.parentJointIndex)
}

// int32 childBodyIndex = 3;
inline void UserConstraintCommand::clear_childbodyindex() {
  childbodyindex_ = 0;
}
inline ::google::protobuf::int32 UserConstraintCommand::childbodyindex() const {
  // @@protoc_insertion_point(field_get:pybullet_grpc.UserConstraintCommand.childBodyIndex)
  return childbodyindex_;
}
inline void UserConstraintCommand::set_childbodyindex(::google::protobuf::int32 value) {
  
  childbodyindex_ = value;
  // @@protoc_insertion_point(field_set:pybullet_grpc.UserConstraintCommand.childBodyIndex)
}

// int32 childJointIndex = 4;
inline void UserConstraintCommand::clear_childjointindex() {
  childjointindex_ = 0;
}
inline ::google::protobuf::int32 UserConstraintCommand::childjointindex() const {
  // @@protoc_insertion_point(field_get:pybullet_grpc.UserConstraintCommand.childJointIndex)
  return childjointindex_;
}
inline void UserConstraintCommand::set_childjointindex(::google::protobuf::int32 value) {
  
  childjointindex_ = value;
  // @@protoc_insertion_point(field_set:pybullet_grpc.UserConstraintCommand.childJointIndex)
}

// .pybullet_grpc.transform parentFrame = 5;
inline bool UserConstraintCommand::has_parentframe() const {
  return this != internal_default_instance() && parentframe_ != NULL;
}
inline void UserConstraintCommand::clear_parentframe() {
  if (GetArenaNoVirtual() == NULL && parentframe_ != NULL) {
    delete parentframe_;
  }
  parentframe_ = NULL;
}
inline const ::pybullet_grpc::transform& UserConstraintCommand::_internal_parentframe() const {
  return *parentframe_;
}
inline const ::pybullet_grpc::transform& UserConstraintCommand::parentframe() const {
  const ::pybullet_grpc::transform* p = parentframe_;
  // @@protoc_insertion_point(field_get:pybullet_grpc.UserConstraintCommand.parentFrame)
  return p != NULL ? *p : *reinterpret_cast<const ::pybullet_grpc::transform*>(
      &::pybullet_grpc::_transform_default_instance_);
}
inline ::pybullet_grpc::transform* UserConstraintCommand::release_parentframe() {
  // @@protoc_insertion_point(field_release:pybullet_grpc.UserConstraintCommand.parentFrame)
  
  ::pybullet_grpc::transform* temp = parentframe_;
  parentframe_ = NULL;
  return temp;
}
inline ::pybullet_grpc::transform* UserConstraintCommand::mutable_parentframe() {
  
  if (parentframe_ == NULL) {
    auto* p = CreateMaybeMessage<::pybullet_grpc::transform>(GetArenaNoVirtual());
    parentframe_ = p;
  }
  // @@protoc_insertion_point(field_mutable:pybullet_grpc.UserConstraintCommand.parentFrame)
  return parentframe_;
}
inline void UserConstraintCommand::set_allocated_parentframe(::pybullet_grpc::transform* parentframe) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete parentframe_;
  }
  if (parentframe) {
    ::google::protobuf::Arena* submessage_arena = NULL;
    if (message_arena != submessage_arena) {
      parentframe = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, parentframe, submessage_arena);
    }
    
  } else {
    
  }
  parentframe_ = parentframe;
  // @@protoc_insertion_point(field_set_allocated:pybullet_grpc.UserConstraintCommand.parentFrame)
}

// .pybullet_grpc.transform childFrame = 6;
inline bool UserConstraintCommand::has_childframe() const {
  return this != internal_default_instance() && childframe_ != NULL;
}
inline void UserConstraintCommand::clear_childframe() {
  if (GetArenaNoVirtual() == NULL && childframe_ != NULL) {
    delete childframe_;
  }
  childframe_ = NULL;
}
inline const ::pybullet_grpc::transform& UserConstraintCommand::_internal_childframe() const {
  return *childframe_;
}
inline const ::pybullet_grpc::transform& UserConstraintCommand::childframe() const {
  const ::pybullet_grpc::transform* p = childframe_;
  // @@protoc_insertion_point(field_get:pybullet_grpc.UserConstraintCommand.childFrame)
  return p != NULL ? *p : *reinterpret_cast<const ::pybullet_grpc::transform*>(
      &::pybullet_grpc::_transform_default_instance_);
}
inline ::pybullet_grpc::transform* UserConstraintCommand::release_childframe() {
  // @@protoc_insertion_point(field_release:pybullet_grpc.UserConstraintCommand.childFrame)
  
  ::pybullet_grpc::transform* temp = childframe_;
  childframe_ = NULL;
  return temp;
}
inline ::pybullet_grpc::transform* UserConstraintCommand::mutable_childframe() {
  
  if (childframe_ == NULL) {
    auto* p = CreateMaybeMessage<::pybullet_grpc::transform>(GetArenaNoVirtual());
    childframe_ = p;
  }
  // @@protoc_insertion_point(field_mutable:pybullet_grpc.UserConstraintCommand.childFrame)
  return childframe_;
}
inline void UserConstraintCommand::set_allocated_childframe(::pybullet_grpc::transform* childframe) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete childframe_;
  }
  if (childframe) {
    ::google::protobuf::Arena* submessage_arena = NULL;
    if (message_arena != submessage_arena) {
      childframe = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, childframe, submessage_arena);
    }
    
  } else {
    
  }
  childframe_ = childframe;
  // @@protoc_insertion_point(field_set_allocated:pybullet_grpc.UserConstraintCommand.childFrame)
}

// .pybullet_grpc.vec3 jointAxis = 7;
inline bool UserConstraintCommand::has_jointaxis() const {
  return this != internal_default_instance() && jointaxis_ != NULL;
}
inline void UserConstraintCommand::clear_jointaxis() {
  if (GetArenaNoVirtual() == NULL && jointaxis_ != NULL) {
    delete jointaxis_;
  }
  jointaxis_ = NULL;
}
inline const ::pybullet_grpc::vec3& UserConstraintCommand::_internal_jointaxis() const {
  return *jointaxis_;
}
inline const ::pybullet_grpc::vec3& UserConstraintCommand::jointaxis() const {
  const ::pybullet_grpc::vec3* p = jointaxis_;
  // @@protoc_insertion_point(field_get:pybullet_grpc.UserConstraintCommand.jointAxis)
  return p != NULL ? *p : *reinterpret_cast<const ::pybullet_grpc::vec3*>(
      &::pybullet_grpc::_vec3_default_instance_);
}
inline ::pybullet_grpc::vec3* UserConstraintCommand::release_jointaxis() {
  // @@protoc_insertion_point(field_release:pybullet_grpc.UserConstraintCommand.jointAxis)
  
  ::pybullet_grpc::vec3* temp = jointaxis_;
  jointaxis_ = NULL;
  return temp;
}
inline ::pybullet_grpc::vec3* UserConstraintCommand::mutable_jointaxis() {
  
  if (jointaxis_ == NULL) {
    auto* p = CreateMaybeMessage<::pybullet_grpc::vec3>(GetArenaNoVirtual());
    jointaxis_ = p;
  }
  // @@protoc_insertion_point(field_mutable:pybullet_grpc.UserConstraintCommand.jointAxis)
  return jointaxis_;
}
inline void UserConstraintCommand::set_allocated_jointaxis(::pybullet_grpc::vec3* jointaxis) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete jointaxis_;
  }
  if (jointaxis) {
    ::google::protobuf::Arena* submessage_arena = NULL;
    if (message_arena != submessage_arena) {
      jointaxis = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, jointaxis, submessage_arena);
    }
    
  } else {
    
  }
  jointaxis_ = jointaxis;
  // @@protoc_insertion_point(field_set_allocated:pybullet_grpc.UserConstraintCommand.jointAxis)
}

// int32 jointType = 8;
inline void UserConstraintCommand::clear_jointtype() {
  jointtype_ = 0;
}
inline ::google::protobuf::int32 UserConstraintCommand::jointtype() const {
  // @@protoc_insertion_point(field_get:pybullet_grpc.UserConstraintCommand.jointType)
  return jointtype_;
}
inline void UserConstraintCommand::set_jointtype(::google::protobuf::int32 value) {
  
  jointtype_ = value;
  // @@protoc_insertion_point(field_set:pybullet_grpc.UserConstraintCommand.jointType)
}

// double maxAppliedForce = 9;
inline void UserConstraintCommand::clear_maxappliedforce() {
  maxappliedforce_ = 0;
}
inline double UserConstraintCommand::maxappliedforce() const {
  // @@protoc_insertion_point(field_get:pybullet_grpc.UserConstraintCommand.maxAppliedForce)
  return maxappliedforce_;
}
inline void UserConstraintCommand::set_maxappliedforce(double value) {
  
  maxappliedforce_ = value;
  // @@protoc_insertion_point(field_set:pybullet_grpc.UserConstraintCommand.maxAppliedForce)
}

// int32 userConstraintUniqueId = 10;
inline void UserConstraintCommand::clear_userconstraintuniqueid() {
  userconstraintuniqueid_ = 0;
}
inline ::google::protobuf::int32 UserConstraintCommand::userconstraintuniqueid() const {
  // @@protoc_insertion_point(field_get:pybullet_grpc.UserConstraintCommand.userConstraintUniqueId)
  return userconstraintuniqueid_;
}
inline void UserConstraintCommand::set_userconstraintuniqueid(::google::protobuf::int32 value) {
  
  userconstraintuniqueid_ = value;
  // @@protoc_insertion_point(field_set:pybullet_grpc.UserConstraintCommand.userConstraintUniqueId)
}

// double gearRatio = 11;
inline void UserConstraintCommand::clear_gearratio() {
  gearratio_ = 0;
}
inline double UserConstraintCommand::gearratio() const {
  // @@protoc_insertion_point(field_get:pybullet_grpc.UserConstraintCommand.gearRatio)
  return gearratio_;
}
inline void UserConstraintCommand::set_gearratio(double value) {
  
  gearratio_ = value;
  // @@protoc_insertion_point(field_set:pybullet_grpc.UserConstraintCommand.gearRatio)
}

// int32 gearAuxLink = 12;
inline void UserConstraintCommand::clear_gearauxlink() {
  gearauxlink_ = 0;
}
inline ::google::protobuf::int32 UserConstraintCommand::gearauxlink() const {
  // @@protoc_insertion_point(field_get:pybullet_grpc.UserConstraintCommand.gearAuxLink)
  return gearauxlink_;
}
inline void UserConstraintCommand::set_gearauxlink(::google::protobuf::int32 value) {
  
  gearauxlink_ = value;
  // @@protoc_insertion_point(field_set:pybullet_grpc.UserConstraintCommand.gearAuxLink)
}

// double relativePositionTarget = 13;
inline void UserConstraintCommand::clear_relativepositiontarget() {
  relativepositiontarget_ = 0;
}
inline double UserConstraintCommand::relativepositiontarget() const {
  // @@protoc_insertion_point(field_get:pybullet_grpc.UserConstraintCommand.relativePositionTarget)
  return relativepositiontarget_;
}
inline void UserConstraintCommand::set_relativepositiontarget(double value) {
  
  relativepositiontarget_ = value;
  // @@protoc_insertion_point(field_set:pybullet_grpc.UserConstraintCommand.relativePositionTarget)
}

// double erp = 14;
inline void UserConstraintCommand::clear_erp() {
  erp_ = 0;
}
inline double UserConstraintCommand::erp() const {
  // @@protoc_insertion_point(field_get:pybullet_grpc.UserConstraintCommand.erp)
  return erp_;
}
inline void UserConstraintCommand::set_erp(double value) {
  
  erp_ = value;
  // @@protoc_insertion_point(field_set:pybullet_grpc.UserConstraintCommand.erp)
}

// int32 updateFlags = 15;
inline void UserConstraintCommand::clear_updateflags() {
  updateflags_ = 0;
}
inline ::google::protobuf::int32 UserConstraintCommand::updateflags() const {
  // @@protoc_insertion_point(field_get:pybullet_grpc.UserConstraintCommand.updateFlags)
  return updateflags_;
}
inline void UserConstraintCommand::set_updateflags(::google::protobuf::int32 value) {
  
  updateflags_ = value;
  // @@protoc_insertion_point(field_set:pybullet_grpc.UserConstraintCommand.updateFlags)
}

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

// UserConstraintStatus

// double maxAppliedForce = 9;
inline void UserConstraintStatus::clear_maxappliedforce() {
  maxappliedforce_ = 0;
}
inline double UserConstraintStatus::maxappliedforce() const {
  // @@protoc_insertion_point(field_get:pybullet_grpc.UserConstraintStatus.maxAppliedForce)
  return maxappliedforce_;
}
inline void UserConstraintStatus::set_maxappliedforce(double value) {
  
  maxappliedforce_ = value;
  // @@protoc_insertion_point(field_set:pybullet_grpc.UserConstraintStatus.maxAppliedForce)
}

// int32 userConstraintUniqueId = 10;
inline void UserConstraintStatus::clear_userconstraintuniqueid() {
  userconstraintuniqueid_ = 0;
}
inline ::google::protobuf::int32 UserConstraintStatus::userconstraintuniqueid() const {
  // @@protoc_insertion_point(field_get:pybullet_grpc.UserConstraintStatus.userConstraintUniqueId)
  return userconstraintuniqueid_;
}
inline void UserConstraintStatus::set_userconstraintuniqueid(::google::protobuf::int32 value) {
  
  userconstraintuniqueid_ = value;
  // @@protoc_insertion_point(field_set:pybullet_grpc.UserConstraintStatus.userConstraintUniqueId)
}

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

// UserConstraintStateStatus

// .pybullet_grpc.vec3 appliedConstraintForcesLinear = 1;
inline bool UserConstraintStateStatus::has_appliedconstraintforceslinear() const {
  return this != internal_default_instance() && appliedconstraintforceslinear_ != NULL;
}
inline void UserConstraintStateStatus::clear_appliedconstraintforceslinear() {
  if (GetArenaNoVirtual() == NULL && appliedconstraintforceslinear_ != NULL) {
    delete appliedconstraintforceslinear_;
  }
  appliedconstraintforceslinear_ = NULL;
}
inline const ::pybullet_grpc::vec3& UserConstraintStateStatus::_internal_appliedconstraintforceslinear() const {
  return *appliedconstraintforceslinear_;
}
inline const ::pybullet_grpc::vec3& UserConstraintStateStatus::appliedconstraintforceslinear() const {
  const ::pybullet_grpc::vec3* p = appliedconstraintforceslinear_;
  // @@protoc_insertion_point(field_get:pybullet_grpc.UserConstraintStateStatus.appliedConstraintForcesLinear)
  return p != NULL ? *p : *reinterpret_cast<const ::pybullet_grpc::vec3*>(
      &::pybullet_grpc::_vec3_default_instance_);
}
inline ::pybullet_grpc::vec3* UserConstraintStateStatus::release_appliedconstraintforceslinear() {
  // @@protoc_insertion_point(field_release:pybullet_grpc.UserConstraintStateStatus.appliedConstraintForcesLinear)
  
  ::pybullet_grpc::vec3* temp = appliedconstraintforceslinear_;
  appliedconstraintforceslinear_ = NULL;
  return temp;
}
inline ::pybullet_grpc::vec3* UserConstraintStateStatus::mutable_appliedconstraintforceslinear() {
  
  if (appliedconstraintforceslinear_ == NULL) {
    auto* p = CreateMaybeMessage<::pybullet_grpc::vec3>(GetArenaNoVirtual());
    appliedconstraintforceslinear_ = p;
  }
  // @@protoc_insertion_point(field_mutable:pybullet_grpc.UserConstraintStateStatus.appliedConstraintForcesLinear)
  return appliedconstraintforceslinear_;
}
inline void UserConstraintStateStatus::set_allocated_appliedconstraintforceslinear(::pybullet_grpc::vec3* appliedconstraintforceslinear) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete appliedconstraintforceslinear_;
  }
  if (appliedconstraintforceslinear) {
    ::google::protobuf::Arena* submessage_arena = NULL;
    if (message_arena != submessage_arena) {
      appliedconstraintforceslinear = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, appliedconstraintforceslinear, submessage_arena);
    }
    
  } else {
    
  }
  appliedconstraintforceslinear_ = appliedconstraintforceslinear;
  // @@protoc_insertion_point(field_set_allocated:pybullet_grpc.UserConstraintStateStatus.appliedConstraintForcesLinear)
}

// .pybullet_grpc.vec3 appliedConstraintForcesAngular = 2;
inline bool UserConstraintStateStatus::has_appliedconstraintforcesangular() const {
  return this != internal_default_instance() && appliedconstraintforcesangular_ != NULL;
}
inline void UserConstraintStateStatus::clear_appliedconstraintforcesangular() {
  if (GetArenaNoVirtual() == NULL && appliedconstraintforcesangular_ != NULL) {
    delete appliedconstraintforcesangular_;
  }
  appliedconstraintforcesangular_ = NULL;
}
inline const ::pybullet_grpc::vec3& UserConstraintStateStatus::_internal_appliedconstraintforcesangular() const {
  return *appliedconstraintforcesangular_;
}
inline const ::pybullet_grpc::vec3& UserConstraintStateStatus::appliedconstraintforcesangular() const {
  const ::pybullet_grpc::vec3* p = appliedconstraintforcesangular_;
  // @@protoc_insertion_point(field_get:pybullet_grpc.UserConstraintStateStatus.appliedConstraintForcesAngular)
  return p != NULL ? *p : *reinterpret_cast<const ::pybullet_grpc::vec3*>(
      &::pybullet_grpc::_vec3_default_instance_);
}
inline ::pybullet_grpc::vec3* UserConstraintStateStatus::release_appliedconstraintforcesangular() {
  // @@protoc_insertion_point(field_release:pybullet_grpc.UserConstraintStateStatus.appliedConstraintForcesAngular)
  
  ::pybullet_grpc::vec3* temp = appliedconstraintforcesangular_;
  appliedconstraintforcesangular_ = NULL;
  return temp;
}
inline ::pybullet_grpc::vec3* UserConstraintStateStatus::mutable_appliedconstraintforcesangular() {
  
  if (appliedconstraintforcesangular_ == NULL) {
    auto* p = CreateMaybeMessage<::pybullet_grpc::vec3>(GetArenaNoVirtual());
    appliedconstraintforcesangular_ = p;
  }
  // @@protoc_insertion_point(field_mutable:pybullet_grpc.UserConstraintStateStatus.appliedConstraintForcesAngular)
  return appliedconstraintforcesangular_;
}
inline void UserConstraintStateStatus::set_allocated_appliedconstraintforcesangular(::pybullet_grpc::vec3* appliedconstraintforcesangular) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete appliedconstraintforcesangular_;
  }
  if (appliedconstraintforcesangular) {
    ::google::protobuf::Arena* submessage_arena = NULL;
    if (message_arena != submessage_arena) {
      appliedconstraintforcesangular = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, appliedconstraintforcesangular, submessage_arena);
    }
    
  } else {
    
  }
  appliedconstraintforcesangular_ = appliedconstraintforcesangular;
  // @@protoc_insertion_point(field_set_allocated:pybullet_grpc.UserConstraintStateStatus.appliedConstraintForcesAngular)
}

// int32 numDofs = 3;
inline void UserConstraintStateStatus::clear_numdofs() {
  numdofs_ = 0;
}
inline ::google::protobuf::int32 UserConstraintStateStatus::numdofs() const {
  // @@protoc_insertion_point(field_get:pybullet_grpc.UserConstraintStateStatus.numDofs)
  return numdofs_;
}
inline void UserConstraintStateStatus::set_numdofs(::google::protobuf::int32 value) {
  
  numdofs_ = value;
  // @@protoc_insertion_point(field_set:pybullet_grpc.UserConstraintStateStatus.numDofs)
}

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

// RequestKeyboardEventsCommand

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

// KeyboardEvent

// int32 keyCode = 1;
inline void KeyboardEvent::clear_keycode() {
  keycode_ = 0;
}
inline ::google::protobuf::int32 KeyboardEvent::keycode() const {
  // @@protoc_insertion_point(field_get:pybullet_grpc.KeyboardEvent.keyCode)
  return keycode_;
}
inline void KeyboardEvent::set_keycode(::google::protobuf::int32 value) {
  
  keycode_ = value;
  // @@protoc_insertion_point(field_set:pybullet_grpc.KeyboardEvent.keyCode)
}

// int32 keyState = 2;
inline void KeyboardEvent::clear_keystate() {
  keystate_ = 0;
}
inline ::google::protobuf::int32 KeyboardEvent::keystate() const {
  // @@protoc_insertion_point(field_get:pybullet_grpc.KeyboardEvent.keyState)
  return keystate_;
}
inline void KeyboardEvent::set_keystate(::google::protobuf::int32 value) {
  
  keystate_ = value;
  // @@protoc_insertion_point(field_set:pybullet_grpc.KeyboardEvent.keyState)
}

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

// KeyboardEventsStatus

// repeated .pybullet_grpc.KeyboardEvent keyboardEvents = 1;
inline int KeyboardEventsStatus::keyboardevents_size() const {
  return keyboardevents_.size();
}
inline void KeyboardEventsStatus::clear_keyboardevents() {
  keyboardevents_.Clear();
}
inline ::pybullet_grpc::KeyboardEvent* KeyboardEventsStatus::mutable_keyboardevents(int index) {
  // @@protoc_insertion_point(field_mutable:pybullet_grpc.KeyboardEventsStatus.keyboardEvents)
  return keyboardevents_.Mutable(index);
}
inline ::google::protobuf::RepeatedPtrField< ::pybullet_grpc::KeyboardEvent >*
KeyboardEventsStatus::mutable_keyboardevents() {
  // @@protoc_insertion_point(field_mutable_list:pybullet_grpc.KeyboardEventsStatus.keyboardEvents)
  return &keyboardevents_;
}
inline const ::pybullet_grpc::KeyboardEvent& KeyboardEventsStatus::keyboardevents(int index) const {
  // @@protoc_insertion_point(field_get:pybullet_grpc.KeyboardEventsStatus.keyboardEvents)
  return keyboardevents_.Get(index);
}
inline ::pybullet_grpc::KeyboardEvent* KeyboardEventsStatus::add_keyboardevents() {
  // @@protoc_insertion_point(field_add:pybullet_grpc.KeyboardEventsStatus.keyboardEvents)
  return keyboardevents_.Add();
}
inline const ::google::protobuf::RepeatedPtrField< ::pybullet_grpc::KeyboardEvent >&
KeyboardEventsStatus::keyboardevents() const {
  // @@protoc_insertion_point(field_list:pybullet_grpc.KeyboardEventsStatus.keyboardEvents)
  return keyboardevents_;
}

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

// RequestCameraImageCommand

// int32 updateFlags = 1;
inline void RequestCameraImageCommand::clear_updateflags() {
  updateflags_ = 0;
}
inline ::google::protobuf::int32 RequestCameraImageCommand::updateflags() const {
  // @@protoc_insertion_point(field_get:pybullet_grpc.RequestCameraImageCommand.updateFlags)
  return updateflags_;
}
inline void RequestCameraImageCommand::set_updateflags(::google::protobuf::int32 value) {
  
  updateflags_ = value;
  // @@protoc_insertion_point(field_set:pybullet_grpc.RequestCameraImageCommand.updateFlags)
}

// int32 cameraFlags = 2;
inline void RequestCameraImageCommand::clear_cameraflags() {
  cameraflags_ = 0;
}
inline ::google::protobuf::int32 RequestCameraImageCommand::cameraflags() const {
  // @@protoc_insertion_point(field_get:pybullet_grpc.RequestCameraImageCommand.cameraFlags)
  return cameraflags_;
}
inline void RequestCameraImageCommand::set_cameraflags(::google::protobuf::int32 value) {
  
  cameraflags_ = value;
  // @@protoc_insertion_point(field_set:pybullet_grpc.RequestCameraImageCommand.cameraFlags)
}

// .pybullet_grpc.matrix4x4 viewMatrix = 3;
inline bool RequestCameraImageCommand::has_viewmatrix() const {
  return this != internal_default_instance() && viewmatrix_ != NULL;
}
inline void RequestCameraImageCommand::clear_viewmatrix() {
  if (GetArenaNoVirtual() == NULL && viewmatrix_ != NULL) {
    delete viewmatrix_;
  }
  viewmatrix_ = NULL;
}
inline const ::pybullet_grpc::matrix4x4& RequestCameraImageCommand::_internal_viewmatrix() const {
  return *viewmatrix_;
}
inline const ::pybullet_grpc::matrix4x4& RequestCameraImageCommand::viewmatrix() const {
  const ::pybullet_grpc::matrix4x4* p = viewmatrix_;
  // @@protoc_insertion_point(field_get:pybullet_grpc.RequestCameraImageCommand.viewMatrix)
  return p != NULL ? *p : *reinterpret_cast<const ::pybullet_grpc::matrix4x4*>(
      &::pybullet_grpc::_matrix4x4_default_instance_);
}
inline ::pybullet_grpc::matrix4x4* RequestCameraImageCommand::release_viewmatrix() {
  // @@protoc_insertion_point(field_release:pybullet_grpc.RequestCameraImageCommand.viewMatrix)
  
  ::pybullet_grpc::matrix4x4* temp = viewmatrix_;
  viewmatrix_ = NULL;
  return temp;
}
inline ::pybullet_grpc::matrix4x4* RequestCameraImageCommand::mutable_viewmatrix() {
  
  if (viewmatrix_ == NULL) {
    auto* p = CreateMaybeMessage<::pybullet_grpc::matrix4x4>(GetArenaNoVirtual());
    viewmatrix_ = p;
  }
  // @@protoc_insertion_point(field_mutable:pybullet_grpc.RequestCameraImageCommand.viewMatrix)
  return viewmatrix_;
}
inline void RequestCameraImageCommand::set_allocated_viewmatrix(::pybullet_grpc::matrix4x4* viewmatrix) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete viewmatrix_;
  }
  if (viewmatrix) {
    ::google::protobuf::Arena* submessage_arena = NULL;
    if (message_arena != submessage_arena) {
      viewmatrix = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, viewmatrix, submessage_arena);
    }
    
  } else {
    
  }
  viewmatrix_ = viewmatrix;
  // @@protoc_insertion_point(field_set_allocated:pybullet_grpc.RequestCameraImageCommand.viewMatrix)
}

// .pybullet_grpc.matrix4x4 projectionMatrix = 4;
inline bool RequestCameraImageCommand::has_projectionmatrix() const {
  return this != internal_default_instance() && projectionmatrix_ != NULL;
}
inline void RequestCameraImageCommand::clear_projectionmatrix() {
  if (GetArenaNoVirtual() == NULL && projectionmatrix_ != NULL) {
    delete projectionmatrix_;
  }
  projectionmatrix_ = NULL;
}
inline const ::pybullet_grpc::matrix4x4& RequestCameraImageCommand::_internal_projectionmatrix() const {
  return *projectionmatrix_;
}
inline const ::pybullet_grpc::matrix4x4& RequestCameraImageCommand::projectionmatrix() const {
  const ::pybullet_grpc::matrix4x4* p = projectionmatrix_;
  // @@protoc_insertion_point(field_get:pybullet_grpc.RequestCameraImageCommand.projectionMatrix)
  return p != NULL ? *p : *reinterpret_cast<const ::pybullet_grpc::matrix4x4*>(
      &::pybullet_grpc::_matrix4x4_default_instance_);
}
inline ::pybullet_grpc::matrix4x4* RequestCameraImageCommand::release_projectionmatrix() {
  // @@protoc_insertion_point(field_release:pybullet_grpc.RequestCameraImageCommand.projectionMatrix)
  
  ::pybullet_grpc::matrix4x4* temp = projectionmatrix_;
  projectionmatrix_ = NULL;
  return temp;
}
inline ::pybullet_grpc::matrix4x4* RequestCameraImageCommand::mutable_projectionmatrix() {
  
  if (projectionmatrix_ == NULL) {
    auto* p = CreateMaybeMessage<::pybullet_grpc::matrix4x4>(GetArenaNoVirtual());
    projectionmatrix_ = p;
  }
  // @@protoc_insertion_point(field_mutable:pybullet_grpc.RequestCameraImageCommand.projectionMatrix)
  return projectionmatrix_;
}
inline void RequestCameraImageCommand::set_allocated_projectionmatrix(::pybullet_grpc::matrix4x4* projectionmatrix) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete projectionmatrix_;
  }
  if (projectionmatrix) {
    ::google::protobuf::Arena* submessage_arena = NULL;
    if (message_arena != submessage_arena) {
      projectionmatrix = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, projectionmatrix, submessage_arena);
    }
    
  } else {
    
  }
  projectionmatrix_ = projectionmatrix;
  // @@protoc_insertion_point(field_set_allocated:pybullet_grpc.RequestCameraImageCommand.projectionMatrix)
}

// int32 startPixelIndex = 5;
inline void RequestCameraImageCommand::clear_startpixelindex() {
  startpixelindex_ = 0;
}
inline ::google::protobuf::int32 RequestCameraImageCommand::startpixelindex() const {
  // @@protoc_insertion_point(field_get:pybullet_grpc.RequestCameraImageCommand.startPixelIndex)
  return startpixelindex_;
}
inline void RequestCameraImageCommand::set_startpixelindex(::google::protobuf::int32 value) {
  
  startpixelindex_ = value;
  // @@protoc_insertion_point(field_set:pybullet_grpc.RequestCameraImageCommand.startPixelIndex)
}

// int32 pixelWidth = 6;
inline void RequestCameraImageCommand::clear_pixelwidth() {
  pixelwidth_ = 0;
}
inline ::google::protobuf::int32 RequestCameraImageCommand::pixelwidth() const {
  // @@protoc_insertion_point(field_get:pybullet_grpc.RequestCameraImageCommand.pixelWidth)
  return pixelwidth_;
}
inline void RequestCameraImageCommand::set_pixelwidth(::google::protobuf::int32 value) {
  
  pixelwidth_ = value;
  // @@protoc_insertion_point(field_set:pybullet_grpc.RequestCameraImageCommand.pixelWidth)
}

// int32 pixelHeight = 7;
inline void RequestCameraImageCommand::clear_pixelheight() {
  pixelheight_ = 0;
}
inline ::google::protobuf::int32 RequestCameraImageCommand::pixelheight() const {
  // @@protoc_insertion_point(field_get:pybullet_grpc.RequestCameraImageCommand.pixelHeight)
  return pixelheight_;
}
inline void RequestCameraImageCommand::set_pixelheight(::google::protobuf::int32 value) {
  
  pixelheight_ = value;
  // @@protoc_insertion_point(field_set:pybullet_grpc.RequestCameraImageCommand.pixelHeight)
}

// .pybullet_grpc.vec3 lightDirection = 8;
inline bool RequestCameraImageCommand::has_lightdirection() const {
  return this != internal_default_instance() && lightdirection_ != NULL;
}
inline void RequestCameraImageCommand::clear_lightdirection() {
  if (GetArenaNoVirtual() == NULL && lightdirection_ != NULL) {
    delete lightdirection_;
  }
  lightdirection_ = NULL;
}
inline const ::pybullet_grpc::vec3& RequestCameraImageCommand::_internal_lightdirection() const {
  return *lightdirection_;
}
inline const ::pybullet_grpc::vec3& RequestCameraImageCommand::lightdirection() const {
  const ::pybullet_grpc::vec3* p = lightdirection_;
  // @@protoc_insertion_point(field_get:pybullet_grpc.RequestCameraImageCommand.lightDirection)
  return p != NULL ? *p : *reinterpret_cast<const ::pybullet_grpc::vec3*>(
      &::pybullet_grpc::_vec3_default_instance_);
}
inline ::pybullet_grpc::vec3* RequestCameraImageCommand::release_lightdirection() {
  // @@protoc_insertion_point(field_release:pybullet_grpc.RequestCameraImageCommand.lightDirection)
  
  ::pybullet_grpc::vec3* temp = lightdirection_;
  lightdirection_ = NULL;
  return temp;
}
inline ::pybullet_grpc::vec3* RequestCameraImageCommand::mutable_lightdirection() {
  
  if (lightdirection_ == NULL) {
    auto* p = CreateMaybeMessage<::pybullet_grpc::vec3>(GetArenaNoVirtual());
    lightdirection_ = p;
  }
  // @@protoc_insertion_point(field_mutable:pybullet_grpc.RequestCameraImageCommand.lightDirection)
  return lightdirection_;
}
inline void RequestCameraImageCommand::set_allocated_lightdirection(::pybullet_grpc::vec3* lightdirection) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete lightdirection_;
  }
  if (lightdirection) {
    ::google::protobuf::Arena* submessage_arena = NULL;
    if (message_arena != submessage_arena) {
      lightdirection = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, lightdirection, submessage_arena);
    }
    
  } else {
    
  }
  lightdirection_ = lightdirection;
  // @@protoc_insertion_point(field_set_allocated:pybullet_grpc.RequestCameraImageCommand.lightDirection)
}

// .pybullet_grpc.vec3 lightColor = 9;
inline bool RequestCameraImageCommand::has_lightcolor() const {
  return this != internal_default_instance() && lightcolor_ != NULL;
}
inline void RequestCameraImageCommand::clear_lightcolor() {
  if (GetArenaNoVirtual() == NULL && lightcolor_ != NULL) {
    delete lightcolor_;
  }
  lightcolor_ = NULL;
}
inline const ::pybullet_grpc::vec3& RequestCameraImageCommand::_internal_lightcolor() const {
  return *lightcolor_;
}
inline const ::pybullet_grpc::vec3& RequestCameraImageCommand::lightcolor() const {
  const ::pybullet_grpc::vec3* p = lightcolor_;
  // @@protoc_insertion_point(field_get:pybullet_grpc.RequestCameraImageCommand.lightColor)
  return p != NULL ? *p : *reinterpret_cast<const ::pybullet_grpc::vec3*>(
      &::pybullet_grpc::_vec3_default_instance_);
}
inline ::pybullet_grpc::vec3* RequestCameraImageCommand::release_lightcolor() {
  // @@protoc_insertion_point(field_release:pybullet_grpc.RequestCameraImageCommand.lightColor)
  
  ::pybullet_grpc::vec3* temp = lightcolor_;
  lightcolor_ = NULL;
  return temp;
}
inline ::pybullet_grpc::vec3* RequestCameraImageCommand::mutable_lightcolor() {
  
  if (lightcolor_ == NULL) {
    auto* p = CreateMaybeMessage<::pybullet_grpc::vec3>(GetArenaNoVirtual());
    lightcolor_ = p;
  }
  // @@protoc_insertion_point(field_mutable:pybullet_grpc.RequestCameraImageCommand.lightColor)
  return lightcolor_;
}
inline void RequestCameraImageCommand::set_allocated_lightcolor(::pybullet_grpc::vec3* lightcolor) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete lightcolor_;
  }
  if (lightcolor) {
    ::google::protobuf::Arena* submessage_arena = NULL;
    if (message_arena != submessage_arena) {
      lightcolor = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, lightcolor, submessage_arena);
    }
    
  } else {
    
  }
  lightcolor_ = lightcolor;
  // @@protoc_insertion_point(field_set_allocated:pybullet_grpc.RequestCameraImageCommand.lightColor)
}

// double lightDistance = 10;
inline void RequestCameraImageCommand::clear_lightdistance() {
  lightdistance_ = 0;
}
inline double RequestCameraImageCommand::lightdistance() const {
  // @@protoc_insertion_point(field_get:pybullet_grpc.RequestCameraImageCommand.lightDistance)
  return lightdistance_;
}
inline void RequestCameraImageCommand::set_lightdistance(double value) {
  
  lightdistance_ = value;
  // @@protoc_insertion_point(field_set:pybullet_grpc.RequestCameraImageCommand.lightDistance)
}

// double lightAmbientCoeff = 11;
inline void RequestCameraImageCommand::clear_lightambientcoeff() {
  lightambientcoeff_ = 0;
}
inline double RequestCameraImageCommand::lightambientcoeff() const {
  // @@protoc_insertion_point(field_get:pybullet_grpc.RequestCameraImageCommand.lightAmbientCoeff)
  return lightambientcoeff_;
}
inline void RequestCameraImageCommand::set_lightambientcoeff(double value) {
  
  lightambientcoeff_ = value;
  // @@protoc_insertion_point(field_set:pybullet_grpc.RequestCameraImageCommand.lightAmbientCoeff)
}

// double lightDiffuseCoeff = 12;
inline void RequestCameraImageCommand::clear_lightdiffusecoeff() {
  lightdiffusecoeff_ = 0;
}
inline double RequestCameraImageCommand::lightdiffusecoeff() const {
  // @@protoc_insertion_point(field_get:pybullet_grpc.RequestCameraImageCommand.lightDiffuseCoeff)
  return lightdiffusecoeff_;
}
inline void RequestCameraImageCommand::set_lightdiffusecoeff(double value) {
  
  lightdiffusecoeff_ = value;
  // @@protoc_insertion_point(field_set:pybullet_grpc.RequestCameraImageCommand.lightDiffuseCoeff)
}

// double lightSpecularCoeff = 13;
inline void RequestCameraImageCommand::clear_lightspecularcoeff() {
  lightspecularcoeff_ = 0;
}
inline double RequestCameraImageCommand::lightspecularcoeff() const {
  // @@protoc_insertion_point(field_get:pybullet_grpc.RequestCameraImageCommand.lightSpecularCoeff)
  return lightspecularcoeff_;
}
inline void RequestCameraImageCommand::set_lightspecularcoeff(double value) {
  
  lightspecularcoeff_ = value;
  // @@protoc_insertion_point(field_set:pybullet_grpc.RequestCameraImageCommand.lightSpecularCoeff)
}

// int32 hasShadow = 14;
inline void RequestCameraImageCommand::clear_hasshadow() {
  hasshadow_ = 0;
}
inline ::google::protobuf::int32 RequestCameraImageCommand::hasshadow() const {
  // @@protoc_insertion_point(field_get:pybullet_grpc.RequestCameraImageCommand.hasShadow)
  return hasshadow_;
}
inline void RequestCameraImageCommand::set_hasshadow(::google::protobuf::int32 value) {
  
  hasshadow_ = value;
  // @@protoc_insertion_point(field_set:pybullet_grpc.RequestCameraImageCommand.hasShadow)
}

// .pybullet_grpc.matrix4x4 projectiveTextureViewMatrix = 15;
inline bool RequestCameraImageCommand::has_projectivetextureviewmatrix() const {
  return this != internal_default_instance() && projectivetextureviewmatrix_ != NULL;
}
inline void RequestCameraImageCommand::clear_projectivetextureviewmatrix() {
  if (GetArenaNoVirtual() == NULL && projectivetextureviewmatrix_ != NULL) {
    delete projectivetextureviewmatrix_;
  }
  projectivetextureviewmatrix_ = NULL;
}
inline const ::pybullet_grpc::matrix4x4& RequestCameraImageCommand::_internal_projectivetextureviewmatrix() const {
  return *projectivetextureviewmatrix_;
}
inline const ::pybullet_grpc::matrix4x4& RequestCameraImageCommand::projectivetextureviewmatrix() const {
  const ::pybullet_grpc::matrix4x4* p = projectivetextureviewmatrix_;
  // @@protoc_insertion_point(field_get:pybullet_grpc.RequestCameraImageCommand.projectiveTextureViewMatrix)
  return p != NULL ? *p : *reinterpret_cast<const ::pybullet_grpc::matrix4x4*>(
      &::pybullet_grpc::_matrix4x4_default_instance_);
}
inline ::pybullet_grpc::matrix4x4* RequestCameraImageCommand::release_projectivetextureviewmatrix() {
  // @@protoc_insertion_point(field_release:pybullet_grpc.RequestCameraImageCommand.projectiveTextureViewMatrix)
  
  ::pybullet_grpc::matrix4x4* temp = projectivetextureviewmatrix_;
  projectivetextureviewmatrix_ = NULL;
  return temp;
}
inline ::pybullet_grpc::matrix4x4* RequestCameraImageCommand::mutable_projectivetextureviewmatrix() {
  
  if (projectivetextureviewmatrix_ == NULL) {
    auto* p = CreateMaybeMessage<::pybullet_grpc::matrix4x4>(GetArenaNoVirtual());
    projectivetextureviewmatrix_ = p;
  }
  // @@protoc_insertion_point(field_mutable:pybullet_grpc.RequestCameraImageCommand.projectiveTextureViewMatrix)
  return projectivetextureviewmatrix_;
}
inline void RequestCameraImageCommand::set_allocated_projectivetextureviewmatrix(::pybullet_grpc::matrix4x4* projectivetextureviewmatrix) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete projectivetextureviewmatrix_;
  }
  if (projectivetextureviewmatrix) {
    ::google::protobuf::Arena* submessage_arena = NULL;
    if (message_arena != submessage_arena) {
      projectivetextureviewmatrix = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, projectivetextureviewmatrix, submessage_arena);
    }
    
  } else {
    
  }
  projectivetextureviewmatrix_ = projectivetextureviewmatrix;
  // @@protoc_insertion_point(field_set_allocated:pybullet_grpc.RequestCameraImageCommand.projectiveTextureViewMatrix)
}

// .pybullet_grpc.matrix4x4 projectiveTextureProjectionMatrix = 16;
inline bool RequestCameraImageCommand::has_projectivetextureprojectionmatrix() const {
  return this != internal_default_instance() && projectivetextureprojectionmatrix_ != NULL;
}
inline void RequestCameraImageCommand::clear_projectivetextureprojectionmatrix() {
  if (GetArenaNoVirtual() == NULL && projectivetextureprojectionmatrix_ != NULL) {
    delete projectivetextureprojectionmatrix_;
  }
  projectivetextureprojectionmatrix_ = NULL;
}
inline const ::pybullet_grpc::matrix4x4& RequestCameraImageCommand::_internal_projectivetextureprojectionmatrix() const {
  return *projectivetextureprojectionmatrix_;
}
inline const ::pybullet_grpc::matrix4x4& RequestCameraImageCommand::projectivetextureprojectionmatrix() const {
  const ::pybullet_grpc::matrix4x4* p = projectivetextureprojectionmatrix_;
  // @@protoc_insertion_point(field_get:pybullet_grpc.RequestCameraImageCommand.projectiveTextureProjectionMatrix)
  return p != NULL ? *p : *reinterpret_cast<const ::pybullet_grpc::matrix4x4*>(
      &::pybullet_grpc::_matrix4x4_default_instance_);
}
inline ::pybullet_grpc::matrix4x4* RequestCameraImageCommand::release_projectivetextureprojectionmatrix() {
  // @@protoc_insertion_point(field_release:pybullet_grpc.RequestCameraImageCommand.projectiveTextureProjectionMatrix)
  
  ::pybullet_grpc::matrix4x4* temp = projectivetextureprojectionmatrix_;
  projectivetextureprojectionmatrix_ = NULL;
  return temp;
}
inline ::pybullet_grpc::matrix4x4* RequestCameraImageCommand::mutable_projectivetextureprojectionmatrix() {
  
  if (projectivetextureprojectionmatrix_ == NULL) {
    auto* p = CreateMaybeMessage<::pybullet_grpc::matrix4x4>(GetArenaNoVirtual());
    projectivetextureprojectionmatrix_ = p;
  }
  // @@protoc_insertion_point(field_mutable:pybullet_grpc.RequestCameraImageCommand.projectiveTextureProjectionMatrix)
  return projectivetextureprojectionmatrix_;
}
inline void RequestCameraImageCommand::set_allocated_projectivetextureprojectionmatrix(::pybullet_grpc::matrix4x4* projectivetextureprojectionmatrix) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete projectivetextureprojectionmatrix_;
  }
  if (projectivetextureprojectionmatrix) {
    ::google::protobuf::Arena* submessage_arena = NULL;
    if (message_arena != submessage_arena) {
      projectivetextureprojectionmatrix = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, projectivetextureprojectionmatrix, submessage_arena);
    }
    
  } else {
    
  }
  projectivetextureprojectionmatrix_ = projectivetextureprojectionmatrix;
  // @@protoc_insertion_point(field_set_allocated:pybullet_grpc.RequestCameraImageCommand.projectiveTextureProjectionMatrix)
}

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

// RequestCameraImageStatus

// int32 imageWidth = 1;
inline void RequestCameraImageStatus::clear_imagewidth() {
  imagewidth_ = 0;
}
inline ::google::protobuf::int32 RequestCameraImageStatus::imagewidth() const {
  // @@protoc_insertion_point(field_get:pybullet_grpc.RequestCameraImageStatus.imageWidth)
  return imagewidth_;
}
inline void RequestCameraImageStatus::set_imagewidth(::google::protobuf::int32 value) {
  
  imagewidth_ = value;
  // @@protoc_insertion_point(field_set:pybullet_grpc.RequestCameraImageStatus.imageWidth)
}

// int32 imageHeight = 2;
inline void RequestCameraImageStatus::clear_imageheight() {
  imageheight_ = 0;
}
inline ::google::protobuf::int32 RequestCameraImageStatus::imageheight() const {
  // @@protoc_insertion_point(field_get:pybullet_grpc.RequestCameraImageStatus.imageHeight)
  return imageheight_;
}
inline void RequestCameraImageStatus::set_imageheight(::google::protobuf::int32 value) {
  
  imageheight_ = value;
  // @@protoc_insertion_point(field_set:pybullet_grpc.RequestCameraImageStatus.imageHeight)
}

// int32 startingPixelIndex = 3;
inline void RequestCameraImageStatus::clear_startingpixelindex() {
  startingpixelindex_ = 0;
}
inline ::google::protobuf::int32 RequestCameraImageStatus::startingpixelindex() const {
  // @@protoc_insertion_point(field_get:pybullet_grpc.RequestCameraImageStatus.startingPixelIndex)
  return startingpixelindex_;
}
inline void RequestCameraImageStatus::set_startingpixelindex(::google::protobuf::int32 value) {
  
  startingpixelindex_ = value;
  // @@protoc_insertion_point(field_set:pybullet_grpc.RequestCameraImageStatus.startingPixelIndex)
}

// int32 numPixelsCopied = 4;
inline void RequestCameraImageStatus::clear_numpixelscopied() {
  numpixelscopied_ = 0;
}
inline ::google::protobuf::int32 RequestCameraImageStatus::numpixelscopied() const {
  // @@protoc_insertion_point(field_get:pybullet_grpc.RequestCameraImageStatus.numPixelsCopied)
  return numpixelscopied_;
}
inline void RequestCameraImageStatus::set_numpixelscopied(::google::protobuf::int32 value) {
  
  numpixelscopied_ = value;
  // @@protoc_insertion_point(field_set:pybullet_grpc.RequestCameraImageStatus.numPixelsCopied)
}

// int32 numRemainingPixels = 5;
inline void RequestCameraImageStatus::clear_numremainingpixels() {
  numremainingpixels_ = 0;
}
inline ::google::protobuf::int32 RequestCameraImageStatus::numremainingpixels() const {
  // @@protoc_insertion_point(field_get:pybullet_grpc.RequestCameraImageStatus.numRemainingPixels)
  return numremainingpixels_;
}
inline void RequestCameraImageStatus::set_numremainingpixels(::google::protobuf::int32 value) {
  
  numremainingpixels_ = value;
  // @@protoc_insertion_point(field_set:pybullet_grpc.RequestCameraImageStatus.numRemainingPixels)
}

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

// ResetSimulationCommand

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

// PyBulletCommand

// int32 commandType = 1;
inline void PyBulletCommand::clear_commandtype() {
  commandtype_ = 0;
}
inline ::google::protobuf::int32 PyBulletCommand::commandtype() const {
  // @@protoc_insertion_point(field_get:pybullet_grpc.PyBulletCommand.commandType)
  return commandtype_;
}
inline void PyBulletCommand::set_commandtype(::google::protobuf::int32 value) {
  
  commandtype_ = value;
  // @@protoc_insertion_point(field_set:pybullet_grpc.PyBulletCommand.commandType)
}

// repeated bytes binaryBlob = 2;
inline int PyBulletCommand::binaryblob_size() const {
  return binaryblob_.size();
}
inline void PyBulletCommand::clear_binaryblob() {
  binaryblob_.Clear();
}
inline const ::std::string& PyBulletCommand::binaryblob(int index) const {
  // @@protoc_insertion_point(field_get:pybullet_grpc.PyBulletCommand.binaryBlob)
  return binaryblob_.Get(index);
}
inline ::std::string* PyBulletCommand::mutable_binaryblob(int index) {
  // @@protoc_insertion_point(field_mutable:pybullet_grpc.PyBulletCommand.binaryBlob)
  return binaryblob_.Mutable(index);
}
inline void PyBulletCommand::set_binaryblob(int index, const ::std::string& value) {
  // @@protoc_insertion_point(field_set:pybullet_grpc.PyBulletCommand.binaryBlob)
  binaryblob_.Mutable(index)->assign(value);
}
#if LANG_CXX11
inline void PyBulletCommand::set_binaryblob(int index, ::std::string&& value) {
  // @@protoc_insertion_point(field_set:pybullet_grpc.PyBulletCommand.binaryBlob)
  binaryblob_.Mutable(index)->assign(std::move(value));
}
#endif
inline void PyBulletCommand::set_binaryblob(int index, const char* value) {
  GOOGLE_DCHECK(value != NULL);
  binaryblob_.Mutable(index)->assign(value);
  // @@protoc_insertion_point(field_set_char:pybullet_grpc.PyBulletCommand.binaryBlob)
}
inline void PyBulletCommand::set_binaryblob(int index, const void* value, size_t size) {
  binaryblob_.Mutable(index)->assign(
    reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_set_pointer:pybullet_grpc.PyBulletCommand.binaryBlob)
}
inline ::std::string* PyBulletCommand::add_binaryblob() {
  // @@protoc_insertion_point(field_add_mutable:pybullet_grpc.PyBulletCommand.binaryBlob)
  return binaryblob_.Add();
}
inline void PyBulletCommand::add_binaryblob(const ::std::string& value) {
  binaryblob_.Add()->assign(value);
  // @@protoc_insertion_point(field_add:pybullet_grpc.PyBulletCommand.binaryBlob)
}
#if LANG_CXX11
inline void PyBulletCommand::add_binaryblob(::std::string&& value) {
  binaryblob_.Add(std::move(value));
  // @@protoc_insertion_point(field_add:pybullet_grpc.PyBulletCommand.binaryBlob)
}
#endif
inline void PyBulletCommand::add_binaryblob(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  binaryblob_.Add()->assign(value);
  // @@protoc_insertion_point(field_add_char:pybullet_grpc.PyBulletCommand.binaryBlob)
}
inline void PyBulletCommand::add_binaryblob(const void* value, size_t size) {
  binaryblob_.Add()->assign(reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_add_pointer:pybullet_grpc.PyBulletCommand.binaryBlob)
}
inline const ::google::protobuf::RepeatedPtrField< ::std::string>&
PyBulletCommand::binaryblob() const {
  // @@protoc_insertion_point(field_list:pybullet_grpc.PyBulletCommand.binaryBlob)
  return binaryblob_;
}
inline ::google::protobuf::RepeatedPtrField< ::std::string>*
PyBulletCommand::mutable_binaryblob() {
  // @@protoc_insertion_point(field_mutable_list:pybullet_grpc.PyBulletCommand.binaryBlob)
  return &binaryblob_;
}

// repeated bytes unknownCommandBinaryBlob = 3;
inline int PyBulletCommand::unknowncommandbinaryblob_size() const {
  return unknowncommandbinaryblob_.size();
}
inline void PyBulletCommand::clear_unknowncommandbinaryblob() {
  unknowncommandbinaryblob_.Clear();
}
inline const ::std::string& PyBulletCommand::unknowncommandbinaryblob(int index) const {
  // @@protoc_insertion_point(field_get:pybullet_grpc.PyBulletCommand.unknownCommandBinaryBlob)
  return unknowncommandbinaryblob_.Get(index);
}
inline ::std::string* PyBulletCommand::mutable_unknowncommandbinaryblob(int index) {
  // @@protoc_insertion_point(field_mutable:pybullet_grpc.PyBulletCommand.unknownCommandBinaryBlob)
  return unknowncommandbinaryblob_.Mutable(index);
}
inline void PyBulletCommand::set_unknowncommandbinaryblob(int index, const ::std::string& value) {
  // @@protoc_insertion_point(field_set:pybullet_grpc.PyBulletCommand.unknownCommandBinaryBlob)
  unknowncommandbinaryblob_.Mutable(index)->assign(value);
}
#if LANG_CXX11
inline void PyBulletCommand::set_unknowncommandbinaryblob(int index, ::std::string&& value) {
  // @@protoc_insertion_point(field_set:pybullet_grpc.PyBulletCommand.unknownCommandBinaryBlob)
  unknowncommandbinaryblob_.Mutable(index)->assign(std::move(value));
}
#endif
inline void PyBulletCommand::set_unknowncommandbinaryblob(int index, const char* value) {
  GOOGLE_DCHECK(value != NULL);
  unknowncommandbinaryblob_.Mutable(index)->assign(value);
  // @@protoc_insertion_point(field_set_char:pybullet_grpc.PyBulletCommand.unknownCommandBinaryBlob)
}
inline void PyBulletCommand::set_unknowncommandbinaryblob(int index, const void* value, size_t size) {
  unknowncommandbinaryblob_.Mutable(index)->assign(
    reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_set_pointer:pybullet_grpc.PyBulletCommand.unknownCommandBinaryBlob)
}
inline ::std::string* PyBulletCommand::add_unknowncommandbinaryblob() {
  // @@protoc_insertion_point(field_add_mutable:pybullet_grpc.PyBulletCommand.unknownCommandBinaryBlob)
  return unknowncommandbinaryblob_.Add();
}
inline void PyBulletCommand::add_unknowncommandbinaryblob(const ::std::string& value) {
  unknowncommandbinaryblob_.Add()->assign(value);
  // @@protoc_insertion_point(field_add:pybullet_grpc.PyBulletCommand.unknownCommandBinaryBlob)
}
#if LANG_CXX11
inline void PyBulletCommand::add_unknowncommandbinaryblob(::std::string&& value) {
  unknowncommandbinaryblob_.Add(std::move(value));
  // @@protoc_insertion_point(field_add:pybullet_grpc.PyBulletCommand.unknownCommandBinaryBlob)
}
#endif
inline void PyBulletCommand::add_unknowncommandbinaryblob(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  unknowncommandbinaryblob_.Add()->assign(value);
  // @@protoc_insertion_point(field_add_char:pybullet_grpc.PyBulletCommand.unknownCommandBinaryBlob)
}
inline void PyBulletCommand::add_unknowncommandbinaryblob(const void* value, size_t size) {
  unknowncommandbinaryblob_.Add()->assign(reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_add_pointer:pybullet_grpc.PyBulletCommand.unknownCommandBinaryBlob)
}
inline const ::google::protobuf::RepeatedPtrField< ::std::string>&
PyBulletCommand::unknowncommandbinaryblob() const {
  // @@protoc_insertion_point(field_list:pybullet_grpc.PyBulletCommand.unknownCommandBinaryBlob)
  return unknowncommandbinaryblob_;
}
inline ::google::protobuf::RepeatedPtrField< ::std::string>*
PyBulletCommand::mutable_unknowncommandbinaryblob() {
  // @@protoc_insertion_point(field_mutable_list:pybullet_grpc.PyBulletCommand.unknownCommandBinaryBlob)
  return &unknowncommandbinaryblob_;
}

// .pybullet_grpc.LoadUrdfCommand loadUrdfCommand = 4;
inline bool PyBulletCommand::has_loadurdfcommand() const {
  return commands_case() == kLoadUrdfCommand;
}
inline void PyBulletCommand::set_has_loadurdfcommand() {
  _oneof_case_[0] = kLoadUrdfCommand;
}
inline void PyBulletCommand::clear_loadurdfcommand() {
  if (has_loadurdfcommand()) {
    delete commands_.loadurdfcommand_;
    clear_has_commands();
  }
}
inline const ::pybullet_grpc::LoadUrdfCommand& PyBulletCommand::_internal_loadurdfcommand() const {
  return *commands_.loadurdfcommand_;
}
inline ::pybullet_grpc::LoadUrdfCommand* PyBulletCommand::release_loadurdfcommand() {
  // @@protoc_insertion_point(field_release:pybullet_grpc.PyBulletCommand.loadUrdfCommand)
  if (has_loadurdfcommand()) {
    clear_has_commands();
      ::pybullet_grpc::LoadUrdfCommand* temp = commands_.loadurdfcommand_;
    commands_.loadurdfcommand_ = NULL;
    return temp;
  } else {
    return NULL;
  }
}
inline const ::pybullet_grpc::LoadUrdfCommand& PyBulletCommand::loadurdfcommand() const {
  // @@protoc_insertion_point(field_get:pybullet_grpc.PyBulletCommand.loadUrdfCommand)
  return has_loadurdfcommand()
      ? *commands_.loadurdfcommand_
      : *reinterpret_cast< ::pybullet_grpc::LoadUrdfCommand*>(&::pybullet_grpc::_LoadUrdfCommand_default_instance_);
}
inline ::pybullet_grpc::LoadUrdfCommand* PyBulletCommand::mutable_loadurdfcommand() {
  if (!has_loadurdfcommand()) {
    clear_commands();
    set_has_loadurdfcommand();
    commands_.loadurdfcommand_ = CreateMaybeMessage< ::pybullet_grpc::LoadUrdfCommand >(
        GetArenaNoVirtual());
  }
  // @@protoc_insertion_point(field_mutable:pybullet_grpc.PyBulletCommand.loadUrdfCommand)
  return commands_.loadurdfcommand_;
}

// .pybullet_grpc.TerminateServerCommand terminateServerCommand = 5;
inline bool PyBulletCommand::has_terminateservercommand() const {
  return commands_case() == kTerminateServerCommand;
}
inline void PyBulletCommand::set_has_terminateservercommand() {
  _oneof_case_[0] = kTerminateServerCommand;
}
inline void PyBulletCommand::clear_terminateservercommand() {
  if (has_terminateservercommand()) {
    delete commands_.terminateservercommand_;
    clear_has_commands();
  }
}
inline const ::pybullet_grpc::TerminateServerCommand& PyBulletCommand::_internal_terminateservercommand() const {
  return *commands_.terminateservercommand_;
}
inline ::pybullet_grpc::TerminateServerCommand* PyBulletCommand::release_terminateservercommand() {
  // @@protoc_insertion_point(field_release:pybullet_grpc.PyBulletCommand.terminateServerCommand)
  if (has_terminateservercommand()) {
    clear_has_commands();
      ::pybullet_grpc::TerminateServerCommand* temp = commands_.terminateservercommand_;
    commands_.terminateservercommand_ = NULL;
    return temp;
  } else {
    return NULL;
  }
}
inline const ::pybullet_grpc::TerminateServerCommand& PyBulletCommand::terminateservercommand() const {
  // @@protoc_insertion_point(field_get:pybullet_grpc.PyBulletCommand.terminateServerCommand)
  return has_terminateservercommand()
      ? *commands_.terminateservercommand_
      : *reinterpret_cast< ::pybullet_grpc::TerminateServerCommand*>(&::pybullet_grpc::_TerminateServerCommand_default_instance_);
}
inline ::pybullet_grpc::TerminateServerCommand* PyBulletCommand::mutable_terminateservercommand() {
  if (!has_terminateservercommand()) {
    clear_commands();
    set_has_terminateservercommand();
    commands_.terminateservercommand_ = CreateMaybeMessage< ::pybullet_grpc::TerminateServerCommand >(
        GetArenaNoVirtual());
  }
  // @@protoc_insertion_point(field_mutable:pybullet_grpc.PyBulletCommand.terminateServerCommand)
  return commands_.terminateservercommand_;
}

// .pybullet_grpc.StepSimulationCommand stepSimulationCommand = 6;
inline bool PyBulletCommand::has_stepsimulationcommand() const {
  return commands_case() == kStepSimulationCommand;
}
inline void PyBulletCommand::set_has_stepsimulationcommand() {
  _oneof_case_[0] = kStepSimulationCommand;
}
inline void PyBulletCommand::clear_stepsimulationcommand() {
  if (has_stepsimulationcommand()) {
    delete commands_.stepsimulationcommand_;
    clear_has_commands();
  }
}
inline const ::pybullet_grpc::StepSimulationCommand& PyBulletCommand::_internal_stepsimulationcommand() const {
  return *commands_.stepsimulationcommand_;
}
inline ::pybullet_grpc::StepSimulationCommand* PyBulletCommand::release_stepsimulationcommand() {
  // @@protoc_insertion_point(field_release:pybullet_grpc.PyBulletCommand.stepSimulationCommand)
  if (has_stepsimulationcommand()) {
    clear_has_commands();
      ::pybullet_grpc::StepSimulationCommand* temp = commands_.stepsimulationcommand_;
    commands_.stepsimulationcommand_ = NULL;
    return temp;
  } else {
    return NULL;
  }
}
inline const ::pybullet_grpc::StepSimulationCommand& PyBulletCommand::stepsimulationcommand() const {
  // @@protoc_insertion_point(field_get:pybullet_grpc.PyBulletCommand.stepSimulationCommand)
  return has_stepsimulationcommand()
      ? *commands_.stepsimulationcommand_
      : *reinterpret_cast< ::pybullet_grpc::StepSimulationCommand*>(&::pybullet_grpc::_StepSimulationCommand_default_instance_);
}
inline ::pybullet_grpc::StepSimulationCommand* PyBulletCommand::mutable_stepsimulationcommand() {
  if (!has_stepsimulationcommand()) {
    clear_commands();
    set_has_stepsimulationcommand();
    commands_.stepsimulationcommand_ = CreateMaybeMessage< ::pybullet_grpc::StepSimulationCommand >(
        GetArenaNoVirtual());
  }
  // @@protoc_insertion_point(field_mutable:pybullet_grpc.PyBulletCommand.stepSimulationCommand)
  return commands_.stepsimulationcommand_;
}

// .pybullet_grpc.LoadSdfCommand loadSdfCommand = 7;
inline bool PyBulletCommand::has_loadsdfcommand() const {
  return commands_case() == kLoadSdfCommand;
}
inline void PyBulletCommand::set_has_loadsdfcommand() {
  _oneof_case_[0] = kLoadSdfCommand;
}
inline void PyBulletCommand::clear_loadsdfcommand() {
  if (has_loadsdfcommand()) {
    delete commands_.loadsdfcommand_;
    clear_has_commands();
  }
}
inline const ::pybullet_grpc::LoadSdfCommand& PyBulletCommand::_internal_loadsdfcommand() const {
  return *commands_.loadsdfcommand_;
}
inline ::pybullet_grpc::LoadSdfCommand* PyBulletCommand::release_loadsdfcommand() {
  // @@protoc_insertion_point(field_release:pybullet_grpc.PyBulletCommand.loadSdfCommand)
  if (has_loadsdfcommand()) {
    clear_has_commands();
      ::pybullet_grpc::LoadSdfCommand* temp = commands_.loadsdfcommand_;
    commands_.loadsdfcommand_ = NULL;
    return temp;
  } else {
    return NULL;
  }
}
inline const ::pybullet_grpc::LoadSdfCommand& PyBulletCommand::loadsdfcommand() const {
  // @@protoc_insertion_point(field_get:pybullet_grpc.PyBulletCommand.loadSdfCommand)
  return has_loadsdfcommand()
      ? *commands_.loadsdfcommand_
      : *reinterpret_cast< ::pybullet_grpc::LoadSdfCommand*>(&::pybullet_grpc::_LoadSdfCommand_default_instance_);
}
inline ::pybullet_grpc::LoadSdfCommand* PyBulletCommand::mutable_loadsdfcommand() {
  if (!has_loadsdfcommand()) {
    clear_commands();
    set_has_loadsdfcommand();
    commands_.loadsdfcommand_ = CreateMaybeMessage< ::pybullet_grpc::LoadSdfCommand >(
        GetArenaNoVirtual());
  }
  // @@protoc_insertion_point(field_mutable:pybullet_grpc.PyBulletCommand.loadSdfCommand)
  return commands_.loadsdfcommand_;
}

// .pybullet_grpc.LoadMjcfCommand loadMjcfCommand = 8;
inline bool PyBulletCommand::has_loadmjcfcommand() const {
  return commands_case() == kLoadMjcfCommand;
}
inline void PyBulletCommand::set_has_loadmjcfcommand() {
  _oneof_case_[0] = kLoadMjcfCommand;
}
inline void PyBulletCommand::clear_loadmjcfcommand() {
  if (has_loadmjcfcommand()) {
    delete commands_.loadmjcfcommand_;
    clear_has_commands();
  }
}
inline const ::pybullet_grpc::LoadMjcfCommand& PyBulletCommand::_internal_loadmjcfcommand() const {
  return *commands_.loadmjcfcommand_;
}
inline ::pybullet_grpc::LoadMjcfCommand* PyBulletCommand::release_loadmjcfcommand() {
  // @@protoc_insertion_point(field_release:pybullet_grpc.PyBulletCommand.loadMjcfCommand)
  if (has_loadmjcfcommand()) {
    clear_has_commands();
      ::pybullet_grpc::LoadMjcfCommand* temp = commands_.loadmjcfcommand_;
    commands_.loadmjcfcommand_ = NULL;
    return temp;
  } else {
    return NULL;
  }
}
inline const ::pybullet_grpc::LoadMjcfCommand& PyBulletCommand::loadmjcfcommand() const {
  // @@protoc_insertion_point(field_get:pybullet_grpc.PyBulletCommand.loadMjcfCommand)
  return has_loadmjcfcommand()
      ? *commands_.loadmjcfcommand_
      : *reinterpret_cast< ::pybullet_grpc::LoadMjcfCommand*>(&::pybullet_grpc::_LoadMjcfCommand_default_instance_);
}
inline ::pybullet_grpc::LoadMjcfCommand* PyBulletCommand::mutable_loadmjcfcommand() {
  if (!has_loadmjcfcommand()) {
    clear_commands();
    set_has_loadmjcfcommand();
    commands_.loadmjcfcommand_ = CreateMaybeMessage< ::pybullet_grpc::LoadMjcfCommand >(
        GetArenaNoVirtual());
  }
  // @@protoc_insertion_point(field_mutable:pybullet_grpc.PyBulletCommand.loadMjcfCommand)
  return commands_.loadmjcfcommand_;
}

// .pybullet_grpc.ChangeDynamicsCommand changeDynamicsCommand = 9;
inline bool PyBulletCommand::has_changedynamicscommand() const {
  return commands_case() == kChangeDynamicsCommand;
}
inline void PyBulletCommand::set_has_changedynamicscommand() {
  _oneof_case_[0] = kChangeDynamicsCommand;
}
inline void PyBulletCommand::clear_changedynamicscommand() {
  if (has_changedynamicscommand()) {
    delete commands_.changedynamicscommand_;
    clear_has_commands();
  }
}
inline const ::pybullet_grpc::ChangeDynamicsCommand& PyBulletCommand::_internal_changedynamicscommand() const {
  return *commands_.changedynamicscommand_;
}
inline ::pybullet_grpc::ChangeDynamicsCommand* PyBulletCommand::release_changedynamicscommand() {
  // @@protoc_insertion_point(field_release:pybullet_grpc.PyBulletCommand.changeDynamicsCommand)
  if (has_changedynamicscommand()) {
    clear_has_commands();
      ::pybullet_grpc::ChangeDynamicsCommand* temp = commands_.changedynamicscommand_;
    commands_.changedynamicscommand_ = NULL;
    return temp;
  } else {
    return NULL;
  }
}
inline const ::pybullet_grpc::ChangeDynamicsCommand& PyBulletCommand::changedynamicscommand() const {
  // @@protoc_insertion_point(field_get:pybullet_grpc.PyBulletCommand.changeDynamicsCommand)
  return has_changedynamicscommand()
      ? *commands_.changedynamicscommand_
      : *reinterpret_cast< ::pybullet_grpc::ChangeDynamicsCommand*>(&::pybullet_grpc::_ChangeDynamicsCommand_default_instance_);
}
inline ::pybullet_grpc::ChangeDynamicsCommand* PyBulletCommand::mutable_changedynamicscommand() {
  if (!has_changedynamicscommand()) {
    clear_commands();
    set_has_changedynamicscommand();
    commands_.changedynamicscommand_ = CreateMaybeMessage< ::pybullet_grpc::ChangeDynamicsCommand >(
        GetArenaNoVirtual());
  }
  // @@protoc_insertion_point(field_mutable:pybullet_grpc.PyBulletCommand.changeDynamicsCommand)
  return commands_.changedynamicscommand_;
}

// .pybullet_grpc.GetDynamicsCommand getDynamicsCommand = 10;
inline bool PyBulletCommand::has_getdynamicscommand() const {
  return commands_case() == kGetDynamicsCommand;
}
inline void PyBulletCommand::set_has_getdynamicscommand() {
  _oneof_case_[0] = kGetDynamicsCommand;
}
inline void PyBulletCommand::clear_getdynamicscommand() {
  if (has_getdynamicscommand()) {
    delete commands_.getdynamicscommand_;
    clear_has_commands();
  }
}
inline const ::pybullet_grpc::GetDynamicsCommand& PyBulletCommand::_internal_getdynamicscommand() const {
  return *commands_.getdynamicscommand_;
}
inline ::pybullet_grpc::GetDynamicsCommand* PyBulletCommand::release_getdynamicscommand() {
  // @@protoc_insertion_point(field_release:pybullet_grpc.PyBulletCommand.getDynamicsCommand)
  if (has_getdynamicscommand()) {
    clear_has_commands();
      ::pybullet_grpc::GetDynamicsCommand* temp = commands_.getdynamicscommand_;
    commands_.getdynamicscommand_ = NULL;
    return temp;
  } else {
    return NULL;
  }
}
inline const ::pybullet_grpc::GetDynamicsCommand& PyBulletCommand::getdynamicscommand() const {
  // @@protoc_insertion_point(field_get:pybullet_grpc.PyBulletCommand.getDynamicsCommand)
  return has_getdynamicscommand()
      ? *commands_.getdynamicscommand_
      : *reinterpret_cast< ::pybullet_grpc::GetDynamicsCommand*>(&::pybullet_grpc::_GetDynamicsCommand_default_instance_);
}
inline ::pybullet_grpc::GetDynamicsCommand* PyBulletCommand::mutable_getdynamicscommand() {
  if (!has_getdynamicscommand()) {
    clear_commands();
    set_has_getdynamicscommand();
    commands_.getdynamicscommand_ = CreateMaybeMessage< ::pybullet_grpc::GetDynamicsCommand >(
        GetArenaNoVirtual());
  }
  // @@protoc_insertion_point(field_mutable:pybullet_grpc.PyBulletCommand.getDynamicsCommand)
  return commands_.getdynamicscommand_;
}

// .pybullet_grpc.InitPoseCommand initPoseCommand = 11;
inline bool PyBulletCommand::has_initposecommand() const {
  return commands_case() == kInitPoseCommand;
}
inline void PyBulletCommand::set_has_initposecommand() {
  _oneof_case_[0] = kInitPoseCommand;
}
inline void PyBulletCommand::clear_initposecommand() {
  if (has_initposecommand()) {
    delete commands_.initposecommand_;
    clear_has_commands();
  }
}
inline const ::pybullet_grpc::InitPoseCommand& PyBulletCommand::_internal_initposecommand() const {
  return *commands_.initposecommand_;
}
inline ::pybullet_grpc::InitPoseCommand* PyBulletCommand::release_initposecommand() {
  // @@protoc_insertion_point(field_release:pybullet_grpc.PyBulletCommand.initPoseCommand)
  if (has_initposecommand()) {
    clear_has_commands();
      ::pybullet_grpc::InitPoseCommand* temp = commands_.initposecommand_;
    commands_.initposecommand_ = NULL;
    return temp;
  } else {
    return NULL;
  }
}
inline const ::pybullet_grpc::InitPoseCommand& PyBulletCommand::initposecommand() const {
  // @@protoc_insertion_point(field_get:pybullet_grpc.PyBulletCommand.initPoseCommand)
  return has_initposecommand()
      ? *commands_.initposecommand_
      : *reinterpret_cast< ::pybullet_grpc::InitPoseCommand*>(&::pybullet_grpc::_InitPoseCommand_default_instance_);
}
inline ::pybullet_grpc::InitPoseCommand* PyBulletCommand::mutable_initposecommand() {
  if (!has_initposecommand()) {
    clear_commands();
    set_has_initposecommand();
    commands_.initposecommand_ = CreateMaybeMessage< ::pybullet_grpc::InitPoseCommand >(
        GetArenaNoVirtual());
  }
  // @@protoc_insertion_point(field_mutable:pybullet_grpc.PyBulletCommand.initPoseCommand)
  return commands_.initposecommand_;
}

// .pybullet_grpc.RequestActualStateCommand requestActualStateCommand = 12;
inline bool PyBulletCommand::has_requestactualstatecommand() const {
  return commands_case() == kRequestActualStateCommand;
}
inline void PyBulletCommand::set_has_requestactualstatecommand() {
  _oneof_case_[0] = kRequestActualStateCommand;
}
inline void PyBulletCommand::clear_requestactualstatecommand() {
  if (has_requestactualstatecommand()) {
    delete commands_.requestactualstatecommand_;
    clear_has_commands();
  }
}
inline const ::pybullet_grpc::RequestActualStateCommand& PyBulletCommand::_internal_requestactualstatecommand() const {
  return *commands_.requestactualstatecommand_;
}
inline ::pybullet_grpc::RequestActualStateCommand* PyBulletCommand::release_requestactualstatecommand() {
  // @@protoc_insertion_point(field_release:pybullet_grpc.PyBulletCommand.requestActualStateCommand)
  if (has_requestactualstatecommand()) {
    clear_has_commands();
      ::pybullet_grpc::RequestActualStateCommand* temp = commands_.requestactualstatecommand_;
    commands_.requestactualstatecommand_ = NULL;
    return temp;
  } else {
    return NULL;
  }
}
inline const ::pybullet_grpc::RequestActualStateCommand& PyBulletCommand::requestactualstatecommand() const {
  // @@protoc_insertion_point(field_get:pybullet_grpc.PyBulletCommand.requestActualStateCommand)
  return has_requestactualstatecommand()
      ? *commands_.requestactualstatecommand_
      : *reinterpret_cast< ::pybullet_grpc::RequestActualStateCommand*>(&::pybullet_grpc::_RequestActualStateCommand_default_instance_);
}
inline ::pybullet_grpc::RequestActualStateCommand* PyBulletCommand::mutable_requestactualstatecommand() {
  if (!has_requestactualstatecommand()) {
    clear_commands();
    set_has_requestactualstatecommand();
    commands_.requestactualstatecommand_ = CreateMaybeMessage< ::pybullet_grpc::RequestActualStateCommand >(
        GetArenaNoVirtual());
  }
  // @@protoc_insertion_point(field_mutable:pybullet_grpc.PyBulletCommand.requestActualStateCommand)
  return commands_.requestactualstatecommand_;
}

// .pybullet_grpc.ConfigureOpenGLVisualizerCommand configureOpenGLVisualizerCommand = 13;
inline bool PyBulletCommand::has_configureopenglvisualizercommand() const {
  return commands_case() == kConfigureOpenGLVisualizerCommand;
}
inline void PyBulletCommand::set_has_configureopenglvisualizercommand() {
  _oneof_case_[0] = kConfigureOpenGLVisualizerCommand;
}
inline void PyBulletCommand::clear_configureopenglvisualizercommand() {
  if (has_configureopenglvisualizercommand()) {
    delete commands_.configureopenglvisualizercommand_;
    clear_has_commands();
  }
}
inline const ::pybullet_grpc::ConfigureOpenGLVisualizerCommand& PyBulletCommand::_internal_configureopenglvisualizercommand() const {
  return *commands_.configureopenglvisualizercommand_;
}
inline ::pybullet_grpc::ConfigureOpenGLVisualizerCommand* PyBulletCommand::release_configureopenglvisualizercommand() {
  // @@protoc_insertion_point(field_release:pybullet_grpc.PyBulletCommand.configureOpenGLVisualizerCommand)
  if (has_configureopenglvisualizercommand()) {
    clear_has_commands();
      ::pybullet_grpc::ConfigureOpenGLVisualizerCommand* temp = commands_.configureopenglvisualizercommand_;
    commands_.configureopenglvisualizercommand_ = NULL;
    return temp;
  } else {
    return NULL;
  }
}
inline const ::pybullet_grpc::ConfigureOpenGLVisualizerCommand& PyBulletCommand::configureopenglvisualizercommand() const {
  // @@protoc_insertion_point(field_get:pybullet_grpc.PyBulletCommand.configureOpenGLVisualizerCommand)
  return has_configureopenglvisualizercommand()
      ? *commands_.configureopenglvisualizercommand_
      : *reinterpret_cast< ::pybullet_grpc::ConfigureOpenGLVisualizerCommand*>(&::pybullet_grpc::_ConfigureOpenGLVisualizerCommand_default_instance_);
}
inline ::pybullet_grpc::ConfigureOpenGLVisualizerCommand* PyBulletCommand::mutable_configureopenglvisualizercommand() {
  if (!has_configureopenglvisualizercommand()) {
    clear_commands();
    set_has_configureopenglvisualizercommand();
    commands_.configureopenglvisualizercommand_ = CreateMaybeMessage< ::pybullet_grpc::ConfigureOpenGLVisualizerCommand >(
        GetArenaNoVirtual());
  }
  // @@protoc_insertion_point(field_mutable:pybullet_grpc.PyBulletCommand.configureOpenGLVisualizerCommand)
  return commands_.configureopenglvisualizercommand_;
}

// .pybullet_grpc.SyncBodiesCommand syncBodiesCommand = 14;
inline bool PyBulletCommand::has_syncbodiescommand() const {
  return commands_case() == kSyncBodiesCommand;
}
inline void PyBulletCommand::set_has_syncbodiescommand() {
  _oneof_case_[0] = kSyncBodiesCommand;
}
inline void PyBulletCommand::clear_syncbodiescommand() {
  if (has_syncbodiescommand()) {
    delete commands_.syncbodiescommand_;
    clear_has_commands();
  }
}
inline const ::pybullet_grpc::SyncBodiesCommand& PyBulletCommand::_internal_syncbodiescommand() const {
  return *commands_.syncbodiescommand_;
}
inline ::pybullet_grpc::SyncBodiesCommand* PyBulletCommand::release_syncbodiescommand() {
  // @@protoc_insertion_point(field_release:pybullet_grpc.PyBulletCommand.syncBodiesCommand)
  if (has_syncbodiescommand()) {
    clear_has_commands();
      ::pybullet_grpc::SyncBodiesCommand* temp = commands_.syncbodiescommand_;
    commands_.syncbodiescommand_ = NULL;
    return temp;
  } else {
    return NULL;
  }
}
inline const ::pybullet_grpc::SyncBodiesCommand& PyBulletCommand::syncbodiescommand() const {
  // @@protoc_insertion_point(field_get:pybullet_grpc.PyBulletCommand.syncBodiesCommand)
  return has_syncbodiescommand()
      ? *commands_.syncbodiescommand_
      : *reinterpret_cast< ::pybullet_grpc::SyncBodiesCommand*>(&::pybullet_grpc::_SyncBodiesCommand_default_instance_);
}
inline ::pybullet_grpc::SyncBodiesCommand* PyBulletCommand::mutable_syncbodiescommand() {
  if (!has_syncbodiescommand()) {
    clear_commands();
    set_has_syncbodiescommand();
    commands_.syncbodiescommand_ = CreateMaybeMessage< ::pybullet_grpc::SyncBodiesCommand >(
        GetArenaNoVirtual());
  }
  // @@protoc_insertion_point(field_mutable:pybullet_grpc.PyBulletCommand.syncBodiesCommand)
  return commands_.syncbodiescommand_;
}

// .pybullet_grpc.RequestBodyInfoCommand requestBodyInfoCommand = 15;
inline bool PyBulletCommand::has_requestbodyinfocommand() const {
  return commands_case() == kRequestBodyInfoCommand;
}
inline void PyBulletCommand::set_has_requestbodyinfocommand() {
  _oneof_case_[0] = kRequestBodyInfoCommand;
}
inline void PyBulletCommand::clear_requestbodyinfocommand() {
  if (has_requestbodyinfocommand()) {
    delete commands_.requestbodyinfocommand_;
    clear_has_commands();
  }
}
inline const ::pybullet_grpc::RequestBodyInfoCommand& PyBulletCommand::_internal_requestbodyinfocommand() const {
  return *commands_.requestbodyinfocommand_;
}
inline ::pybullet_grpc::RequestBodyInfoCommand* PyBulletCommand::release_requestbodyinfocommand() {
  // @@protoc_insertion_point(field_release:pybullet_grpc.PyBulletCommand.requestBodyInfoCommand)
  if (has_requestbodyinfocommand()) {
    clear_has_commands();
      ::pybullet_grpc::RequestBodyInfoCommand* temp = commands_.requestbodyinfocommand_;
    commands_.requestbodyinfocommand_ = NULL;
    return temp;
  } else {
    return NULL;
  }
}
inline const ::pybullet_grpc::RequestBodyInfoCommand& PyBulletCommand::requestbodyinfocommand() const {
  // @@protoc_insertion_point(field_get:pybullet_grpc.PyBulletCommand.requestBodyInfoCommand)
  return has_requestbodyinfocommand()
      ? *commands_.requestbodyinfocommand_
      : *reinterpret_cast< ::pybullet_grpc::RequestBodyInfoCommand*>(&::pybullet_grpc::_RequestBodyInfoCommand_default_instance_);
}
inline ::pybullet_grpc::RequestBodyInfoCommand* PyBulletCommand::mutable_requestbodyinfocommand() {
  if (!has_requestbodyinfocommand()) {
    clear_commands();
    set_has_requestbodyinfocommand();
    commands_.requestbodyinfocommand_ = CreateMaybeMessage< ::pybullet_grpc::RequestBodyInfoCommand >(
        GetArenaNoVirtual());
  }
  // @@protoc_insertion_point(field_mutable:pybullet_grpc.PyBulletCommand.requestBodyInfoCommand)
  return commands_.requestbodyinfocommand_;
}

// .pybullet_grpc.PhysicsSimulationParametersCommand setPhysicsSimulationParametersCommand = 16;
inline bool PyBulletCommand::has_setphysicssimulationparameterscommand() const {
  return commands_case() == kSetPhysicsSimulationParametersCommand;
}
inline void PyBulletCommand::set_has_setphysicssimulationparameterscommand() {
  _oneof_case_[0] = kSetPhysicsSimulationParametersCommand;
}
inline void PyBulletCommand::clear_setphysicssimulationparameterscommand() {
  if (has_setphysicssimulationparameterscommand()) {
    delete commands_.setphysicssimulationparameterscommand_;
    clear_has_commands();
  }
}
inline const ::pybullet_grpc::PhysicsSimulationParametersCommand& PyBulletCommand::_internal_setphysicssimulationparameterscommand() const {
  return *commands_.setphysicssimulationparameterscommand_;
}
inline ::pybullet_grpc::PhysicsSimulationParametersCommand* PyBulletCommand::release_setphysicssimulationparameterscommand() {
  // @@protoc_insertion_point(field_release:pybullet_grpc.PyBulletCommand.setPhysicsSimulationParametersCommand)
  if (has_setphysicssimulationparameterscommand()) {
    clear_has_commands();
      ::pybullet_grpc::PhysicsSimulationParametersCommand* temp = commands_.setphysicssimulationparameterscommand_;
    commands_.setphysicssimulationparameterscommand_ = NULL;
    return temp;
  } else {
    return NULL;
  }
}
inline const ::pybullet_grpc::PhysicsSimulationParametersCommand& PyBulletCommand::setphysicssimulationparameterscommand() const {
  // @@protoc_insertion_point(field_get:pybullet_grpc.PyBulletCommand.setPhysicsSimulationParametersCommand)
  return has_setphysicssimulationparameterscommand()
      ? *commands_.setphysicssimulationparameterscommand_
      : *reinterpret_cast< ::pybullet_grpc::PhysicsSimulationParametersCommand*>(&::pybullet_grpc::_PhysicsSimulationParametersCommand_default_instance_);
}
inline ::pybullet_grpc::PhysicsSimulationParametersCommand* PyBulletCommand::mutable_setphysicssimulationparameterscommand() {
  if (!has_setphysicssimulationparameterscommand()) {
    clear_commands();
    set_has_setphysicssimulationparameterscommand();
    commands_.setphysicssimulationparameterscommand_ = CreateMaybeMessage< ::pybullet_grpc::PhysicsSimulationParametersCommand >(
        GetArenaNoVirtual());
  }
  // @@protoc_insertion_point(field_mutable:pybullet_grpc.PyBulletCommand.setPhysicsSimulationParametersCommand)
  return commands_.setphysicssimulationparameterscommand_;
}

// .pybullet_grpc.JointMotorControlCommand jointMotorControlCommand = 17;
inline bool PyBulletCommand::has_jointmotorcontrolcommand() const {
  return commands_case() == kJointMotorControlCommand;
}
inline void PyBulletCommand::set_has_jointmotorcontrolcommand() {
  _oneof_case_[0] = kJointMotorControlCommand;
}
inline void PyBulletCommand::clear_jointmotorcontrolcommand() {
  if (has_jointmotorcontrolcommand()) {
    delete commands_.jointmotorcontrolcommand_;
    clear_has_commands();
  }
}
inline const ::pybullet_grpc::JointMotorControlCommand& PyBulletCommand::_internal_jointmotorcontrolcommand() const {
  return *commands_.jointmotorcontrolcommand_;
}
inline ::pybullet_grpc::JointMotorControlCommand* PyBulletCommand::release_jointmotorcontrolcommand() {
  // @@protoc_insertion_point(field_release:pybullet_grpc.PyBulletCommand.jointMotorControlCommand)
  if (has_jointmotorcontrolcommand()) {
    clear_has_commands();
      ::pybullet_grpc::JointMotorControlCommand* temp = commands_.jointmotorcontrolcommand_;
    commands_.jointmotorcontrolcommand_ = NULL;
    return temp;
  } else {
    return NULL;
  }
}
inline const ::pybullet_grpc::JointMotorControlCommand& PyBulletCommand::jointmotorcontrolcommand() const {
  // @@protoc_insertion_point(field_get:pybullet_grpc.PyBulletCommand.jointMotorControlCommand)
  return has_jointmotorcontrolcommand()
      ? *commands_.jointmotorcontrolcommand_
      : *reinterpret_cast< ::pybullet_grpc::JointMotorControlCommand*>(&::pybullet_grpc::_JointMotorControlCommand_default_instance_);
}
inline ::pybullet_grpc::JointMotorControlCommand* PyBulletCommand::mutable_jointmotorcontrolcommand() {
  if (!has_jointmotorcontrolcommand()) {
    clear_commands();
    set_has_jointmotorcontrolcommand();
    commands_.jointmotorcontrolcommand_ = CreateMaybeMessage< ::pybullet_grpc::JointMotorControlCommand >(
        GetArenaNoVirtual());
  }
  // @@protoc_insertion_point(field_mutable:pybullet_grpc.PyBulletCommand.jointMotorControlCommand)
  return commands_.jointmotorcontrolcommand_;
}

// .pybullet_grpc.UserConstraintCommand userConstraintCommand = 18;
inline bool PyBulletCommand::has_userconstraintcommand() const {
  return commands_case() == kUserConstraintCommand;
}
inline void PyBulletCommand::set_has_userconstraintcommand() {
  _oneof_case_[0] = kUserConstraintCommand;
}
inline void PyBulletCommand::clear_userconstraintcommand() {
  if (has_userconstraintcommand()) {
    delete commands_.userconstraintcommand_;
    clear_has_commands();
  }
}
inline const ::pybullet_grpc::UserConstraintCommand& PyBulletCommand::_internal_userconstraintcommand() const {
  return *commands_.userconstraintcommand_;
}
inline ::pybullet_grpc::UserConstraintCommand* PyBulletCommand::release_userconstraintcommand() {
  // @@protoc_insertion_point(field_release:pybullet_grpc.PyBulletCommand.userConstraintCommand)
  if (has_userconstraintcommand()) {
    clear_has_commands();
      ::pybullet_grpc::UserConstraintCommand* temp = commands_.userconstraintcommand_;
    commands_.userconstraintcommand_ = NULL;
    return temp;
  } else {
    return NULL;
  }
}
inline const ::pybullet_grpc::UserConstraintCommand& PyBulletCommand::userconstraintcommand() const {
  // @@protoc_insertion_point(field_get:pybullet_grpc.PyBulletCommand.userConstraintCommand)
  return has_userconstraintcommand()
      ? *commands_.userconstraintcommand_
      : *reinterpret_cast< ::pybullet_grpc::UserConstraintCommand*>(&::pybullet_grpc::_UserConstraintCommand_default_instance_);
}
inline ::pybullet_grpc::UserConstraintCommand* PyBulletCommand::mutable_userconstraintcommand() {
  if (!has_userconstraintcommand()) {
    clear_commands();
    set_has_userconstraintcommand();
    commands_.userconstraintcommand_ = CreateMaybeMessage< ::pybullet_grpc::UserConstraintCommand >(
        GetArenaNoVirtual());
  }
  // @@protoc_insertion_point(field_mutable:pybullet_grpc.PyBulletCommand.userConstraintCommand)
  return commands_.userconstraintcommand_;
}

// .pybullet_grpc.CheckVersionCommand checkVersionCommand = 19;
inline bool PyBulletCommand::has_checkversioncommand() const {
  return commands_case() == kCheckVersionCommand;
}
inline void PyBulletCommand::set_has_checkversioncommand() {
  _oneof_case_[0] = kCheckVersionCommand;
}
inline void PyBulletCommand::clear_checkversioncommand() {
  if (has_checkversioncommand()) {
    delete commands_.checkversioncommand_;
    clear_has_commands();
  }
}
inline const ::pybullet_grpc::CheckVersionCommand& PyBulletCommand::_internal_checkversioncommand() const {
  return *commands_.checkversioncommand_;
}
inline ::pybullet_grpc::CheckVersionCommand* PyBulletCommand::release_checkversioncommand() {
  // @@protoc_insertion_point(field_release:pybullet_grpc.PyBulletCommand.checkVersionCommand)
  if (has_checkversioncommand()) {
    clear_has_commands();
      ::pybullet_grpc::CheckVersionCommand* temp = commands_.checkversioncommand_;
    commands_.checkversioncommand_ = NULL;
    return temp;
  } else {
    return NULL;
  }
}
inline const ::pybullet_grpc::CheckVersionCommand& PyBulletCommand::checkversioncommand() const {
  // @@protoc_insertion_point(field_get:pybullet_grpc.PyBulletCommand.checkVersionCommand)
  return has_checkversioncommand()
      ? *commands_.checkversioncommand_
      : *reinterpret_cast< ::pybullet_grpc::CheckVersionCommand*>(&::pybullet_grpc::_CheckVersionCommand_default_instance_);
}
inline ::pybullet_grpc::CheckVersionCommand* PyBulletCommand::mutable_checkversioncommand() {
  if (!has_checkversioncommand()) {
    clear_commands();
    set_has_checkversioncommand();
    commands_.checkversioncommand_ = CreateMaybeMessage< ::pybullet_grpc::CheckVersionCommand >(
        GetArenaNoVirtual());
  }
  // @@protoc_insertion_point(field_mutable:pybullet_grpc.PyBulletCommand.checkVersionCommand)
  return commands_.checkversioncommand_;
}

// .pybullet_grpc.RequestKeyboardEventsCommand requestKeyboardEventsCommand = 20;
inline bool PyBulletCommand::has_requestkeyboardeventscommand() const {
  return commands_case() == kRequestKeyboardEventsCommand;
}
inline void PyBulletCommand::set_has_requestkeyboardeventscommand() {
  _oneof_case_[0] = kRequestKeyboardEventsCommand;
}
inline void PyBulletCommand::clear_requestkeyboardeventscommand() {
  if (has_requestkeyboardeventscommand()) {
    delete commands_.requestkeyboardeventscommand_;
    clear_has_commands();
  }
}
inline const ::pybullet_grpc::RequestKeyboardEventsCommand& PyBulletCommand::_internal_requestkeyboardeventscommand() const {
  return *commands_.requestkeyboardeventscommand_;
}
inline ::pybullet_grpc::RequestKeyboardEventsCommand* PyBulletCommand::release_requestkeyboardeventscommand() {
  // @@protoc_insertion_point(field_release:pybullet_grpc.PyBulletCommand.requestKeyboardEventsCommand)
  if (has_requestkeyboardeventscommand()) {
    clear_has_commands();
      ::pybullet_grpc::RequestKeyboardEventsCommand* temp = commands_.requestkeyboardeventscommand_;
    commands_.requestkeyboardeventscommand_ = NULL;
    return temp;
  } else {
    return NULL;
  }
}
inline const ::pybullet_grpc::RequestKeyboardEventsCommand& PyBulletCommand::requestkeyboardeventscommand() const {
  // @@protoc_insertion_point(field_get:pybullet_grpc.PyBulletCommand.requestKeyboardEventsCommand)
  return has_requestkeyboardeventscommand()
      ? *commands_.requestkeyboardeventscommand_
      : *reinterpret_cast< ::pybullet_grpc::RequestKeyboardEventsCommand*>(&::pybullet_grpc::_RequestKeyboardEventsCommand_default_instance_);
}
inline ::pybullet_grpc::RequestKeyboardEventsCommand* PyBulletCommand::mutable_requestkeyboardeventscommand() {
  if (!has_requestkeyboardeventscommand()) {
    clear_commands();
    set_has_requestkeyboardeventscommand();
    commands_.requestkeyboardeventscommand_ = CreateMaybeMessage< ::pybullet_grpc::RequestKeyboardEventsCommand >(
        GetArenaNoVirtual());
  }
  // @@protoc_insertion_point(field_mutable:pybullet_grpc.PyBulletCommand.requestKeyboardEventsCommand)
  return commands_.requestkeyboardeventscommand_;
}

// .pybullet_grpc.RequestCameraImageCommand requestCameraImageCommand = 21;
inline bool PyBulletCommand::has_requestcameraimagecommand() const {
  return commands_case() == kRequestCameraImageCommand;
}
inline void PyBulletCommand::set_has_requestcameraimagecommand() {
  _oneof_case_[0] = kRequestCameraImageCommand;
}
inline void PyBulletCommand::clear_requestcameraimagecommand() {
  if (has_requestcameraimagecommand()) {
    delete commands_.requestcameraimagecommand_;
    clear_has_commands();
  }
}
inline const ::pybullet_grpc::RequestCameraImageCommand& PyBulletCommand::_internal_requestcameraimagecommand() const {
  return *commands_.requestcameraimagecommand_;
}
inline ::pybullet_grpc::RequestCameraImageCommand* PyBulletCommand::release_requestcameraimagecommand() {
  // @@protoc_insertion_point(field_release:pybullet_grpc.PyBulletCommand.requestCameraImageCommand)
  if (has_requestcameraimagecommand()) {
    clear_has_commands();
      ::pybullet_grpc::RequestCameraImageCommand* temp = commands_.requestcameraimagecommand_;
    commands_.requestcameraimagecommand_ = NULL;
    return temp;
  } else {
    return NULL;
  }
}
inline const ::pybullet_grpc::RequestCameraImageCommand& PyBulletCommand::requestcameraimagecommand() const {
  // @@protoc_insertion_point(field_get:pybullet_grpc.PyBulletCommand.requestCameraImageCommand)
  return has_requestcameraimagecommand()
      ? *commands_.requestcameraimagecommand_
      : *reinterpret_cast< ::pybullet_grpc::RequestCameraImageCommand*>(&::pybullet_grpc::_RequestCameraImageCommand_default_instance_);
}
inline ::pybullet_grpc::RequestCameraImageCommand* PyBulletCommand::mutable_requestcameraimagecommand() {
  if (!has_requestcameraimagecommand()) {
    clear_commands();
    set_has_requestcameraimagecommand();
    commands_.requestcameraimagecommand_ = CreateMaybeMessage< ::pybullet_grpc::RequestCameraImageCommand >(
        GetArenaNoVirtual());
  }
  // @@protoc_insertion_point(field_mutable:pybullet_grpc.PyBulletCommand.requestCameraImageCommand)
  return commands_.requestcameraimagecommand_;
}

// .pybullet_grpc.ResetSimulationCommand resetSimulationCommand = 22;
inline bool PyBulletCommand::has_resetsimulationcommand() const {
  return commands_case() == kResetSimulationCommand;
}
inline void PyBulletCommand::set_has_resetsimulationcommand() {
  _oneof_case_[0] = kResetSimulationCommand;
}
inline void PyBulletCommand::clear_resetsimulationcommand() {
  if (has_resetsimulationcommand()) {
    delete commands_.resetsimulationcommand_;
    clear_has_commands();
  }
}
inline const ::pybullet_grpc::ResetSimulationCommand& PyBulletCommand::_internal_resetsimulationcommand() const {
  return *commands_.resetsimulationcommand_;
}
inline ::pybullet_grpc::ResetSimulationCommand* PyBulletCommand::release_resetsimulationcommand() {
  // @@protoc_insertion_point(field_release:pybullet_grpc.PyBulletCommand.resetSimulationCommand)
  if (has_resetsimulationcommand()) {
    clear_has_commands();
      ::pybullet_grpc::ResetSimulationCommand* temp = commands_.resetsimulationcommand_;
    commands_.resetsimulationcommand_ = NULL;
    return temp;
  } else {
    return NULL;
  }
}
inline const ::pybullet_grpc::ResetSimulationCommand& PyBulletCommand::resetsimulationcommand() const {
  // @@protoc_insertion_point(field_get:pybullet_grpc.PyBulletCommand.resetSimulationCommand)
  return has_resetsimulationcommand()
      ? *commands_.resetsimulationcommand_
      : *reinterpret_cast< ::pybullet_grpc::ResetSimulationCommand*>(&::pybullet_grpc::_ResetSimulationCommand_default_instance_);
}
inline ::pybullet_grpc::ResetSimulationCommand* PyBulletCommand::mutable_resetsimulationcommand() {
  if (!has_resetsimulationcommand()) {
    clear_commands();
    set_has_resetsimulationcommand();
    commands_.resetsimulationcommand_ = CreateMaybeMessage< ::pybullet_grpc::ResetSimulationCommand >(
        GetArenaNoVirtual());
  }
  // @@protoc_insertion_point(field_mutable:pybullet_grpc.PyBulletCommand.resetSimulationCommand)
  return commands_.resetsimulationcommand_;
}

inline bool PyBulletCommand::has_commands() const {
  return commands_case() != COMMANDS_NOT_SET;
}
inline void PyBulletCommand::clear_has_commands() {
  _oneof_case_[0] = COMMANDS_NOT_SET;
}
inline PyBulletCommand::CommandsCase PyBulletCommand::commands_case() const {
  return PyBulletCommand::CommandsCase(_oneof_case_[0]);
}
// -------------------------------------------------------------------

// PyBulletStatus

// int32 statusType = 1;
inline void PyBulletStatus::clear_statustype() {
  statustype_ = 0;
}
inline ::google::protobuf::int32 PyBulletStatus::statustype() const {
  // @@protoc_insertion_point(field_get:pybullet_grpc.PyBulletStatus.statusType)
  return statustype_;
}
inline void PyBulletStatus::set_statustype(::google::protobuf::int32 value) {
  
  statustype_ = value;
  // @@protoc_insertion_point(field_set:pybullet_grpc.PyBulletStatus.statusType)
}

// repeated bytes binaryBlob = 2;
inline int PyBulletStatus::binaryblob_size() const {
  return binaryblob_.size();
}
inline void PyBulletStatus::clear_binaryblob() {
  binaryblob_.Clear();
}
inline const ::std::string& PyBulletStatus::binaryblob(int index) const {
  // @@protoc_insertion_point(field_get:pybullet_grpc.PyBulletStatus.binaryBlob)
  return binaryblob_.Get(index);
}
inline ::std::string* PyBulletStatus::mutable_binaryblob(int index) {
  // @@protoc_insertion_point(field_mutable:pybullet_grpc.PyBulletStatus.binaryBlob)
  return binaryblob_.Mutable(index);
}
inline void PyBulletStatus::set_binaryblob(int index, const ::std::string& value) {
  // @@protoc_insertion_point(field_set:pybullet_grpc.PyBulletStatus.binaryBlob)
  binaryblob_.Mutable(index)->assign(value);
}
#if LANG_CXX11
inline void PyBulletStatus::set_binaryblob(int index, ::std::string&& value) {
  // @@protoc_insertion_point(field_set:pybullet_grpc.PyBulletStatus.binaryBlob)
  binaryblob_.Mutable(index)->assign(std::move(value));
}
#endif
inline void PyBulletStatus::set_binaryblob(int index, const char* value) {
  GOOGLE_DCHECK(value != NULL);
  binaryblob_.Mutable(index)->assign(value);
  // @@protoc_insertion_point(field_set_char:pybullet_grpc.PyBulletStatus.binaryBlob)
}
inline void PyBulletStatus::set_binaryblob(int index, const void* value, size_t size) {
  binaryblob_.Mutable(index)->assign(
    reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_set_pointer:pybullet_grpc.PyBulletStatus.binaryBlob)
}
inline ::std::string* PyBulletStatus::add_binaryblob() {
  // @@protoc_insertion_point(field_add_mutable:pybullet_grpc.PyBulletStatus.binaryBlob)
  return binaryblob_.Add();
}
inline void PyBulletStatus::add_binaryblob(const ::std::string& value) {
  binaryblob_.Add()->assign(value);
  // @@protoc_insertion_point(field_add:pybullet_grpc.PyBulletStatus.binaryBlob)
}
#if LANG_CXX11
inline void PyBulletStatus::add_binaryblob(::std::string&& value) {
  binaryblob_.Add(std::move(value));
  // @@protoc_insertion_point(field_add:pybullet_grpc.PyBulletStatus.binaryBlob)
}
#endif
inline void PyBulletStatus::add_binaryblob(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  binaryblob_.Add()->assign(value);
  // @@protoc_insertion_point(field_add_char:pybullet_grpc.PyBulletStatus.binaryBlob)
}
inline void PyBulletStatus::add_binaryblob(const void* value, size_t size) {
  binaryblob_.Add()->assign(reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_add_pointer:pybullet_grpc.PyBulletStatus.binaryBlob)
}
inline const ::google::protobuf::RepeatedPtrField< ::std::string>&
PyBulletStatus::binaryblob() const {
  // @@protoc_insertion_point(field_list:pybullet_grpc.PyBulletStatus.binaryBlob)
  return binaryblob_;
}
inline ::google::protobuf::RepeatedPtrField< ::std::string>*
PyBulletStatus::mutable_binaryblob() {
  // @@protoc_insertion_point(field_mutable_list:pybullet_grpc.PyBulletStatus.binaryBlob)
  return &binaryblob_;
}

// repeated bytes unknownStatusBinaryBlob = 3;
inline int PyBulletStatus::unknownstatusbinaryblob_size() const {
  return unknownstatusbinaryblob_.size();
}
inline void PyBulletStatus::clear_unknownstatusbinaryblob() {
  unknownstatusbinaryblob_.Clear();
}
inline const ::std::string& PyBulletStatus::unknownstatusbinaryblob(int index) const {
  // @@protoc_insertion_point(field_get:pybullet_grpc.PyBulletStatus.unknownStatusBinaryBlob)
  return unknownstatusbinaryblob_.Get(index);
}
inline ::std::string* PyBulletStatus::mutable_unknownstatusbinaryblob(int index) {
  // @@protoc_insertion_point(field_mutable:pybullet_grpc.PyBulletStatus.unknownStatusBinaryBlob)
  return unknownstatusbinaryblob_.Mutable(index);
}
inline void PyBulletStatus::set_unknownstatusbinaryblob(int index, const ::std::string& value) {
  // @@protoc_insertion_point(field_set:pybullet_grpc.PyBulletStatus.unknownStatusBinaryBlob)
  unknownstatusbinaryblob_.Mutable(index)->assign(value);
}
#if LANG_CXX11
inline void PyBulletStatus::set_unknownstatusbinaryblob(int index, ::std::string&& value) {
  // @@protoc_insertion_point(field_set:pybullet_grpc.PyBulletStatus.unknownStatusBinaryBlob)
  unknownstatusbinaryblob_.Mutable(index)->assign(std::move(value));
}
#endif
inline void PyBulletStatus::set_unknownstatusbinaryblob(int index, const char* value) {
  GOOGLE_DCHECK(value != NULL);
  unknownstatusbinaryblob_.Mutable(index)->assign(value);
  // @@protoc_insertion_point(field_set_char:pybullet_grpc.PyBulletStatus.unknownStatusBinaryBlob)
}
inline void PyBulletStatus::set_unknownstatusbinaryblob(int index, const void* value, size_t size) {
  unknownstatusbinaryblob_.Mutable(index)->assign(
    reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_set_pointer:pybullet_grpc.PyBulletStatus.unknownStatusBinaryBlob)
}
inline ::std::string* PyBulletStatus::add_unknownstatusbinaryblob() {
  // @@protoc_insertion_point(field_add_mutable:pybullet_grpc.PyBulletStatus.unknownStatusBinaryBlob)
  return unknownstatusbinaryblob_.Add();
}
inline void PyBulletStatus::add_unknownstatusbinaryblob(const ::std::string& value) {
  unknownstatusbinaryblob_.Add()->assign(value);
  // @@protoc_insertion_point(field_add:pybullet_grpc.PyBulletStatus.unknownStatusBinaryBlob)
}
#if LANG_CXX11
inline void PyBulletStatus::add_unknownstatusbinaryblob(::std::string&& value) {
  unknownstatusbinaryblob_.Add(std::move(value));
  // @@protoc_insertion_point(field_add:pybullet_grpc.PyBulletStatus.unknownStatusBinaryBlob)
}
#endif
inline void PyBulletStatus::add_unknownstatusbinaryblob(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  unknownstatusbinaryblob_.Add()->assign(value);
  // @@protoc_insertion_point(field_add_char:pybullet_grpc.PyBulletStatus.unknownStatusBinaryBlob)
}
inline void PyBulletStatus::add_unknownstatusbinaryblob(const void* value, size_t size) {
  unknownstatusbinaryblob_.Add()->assign(reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_add_pointer:pybullet_grpc.PyBulletStatus.unknownStatusBinaryBlob)
}
inline const ::google::protobuf::RepeatedPtrField< ::std::string>&
PyBulletStatus::unknownstatusbinaryblob() const {
  // @@protoc_insertion_point(field_list:pybullet_grpc.PyBulletStatus.unknownStatusBinaryBlob)
  return unknownstatusbinaryblob_;
}
inline ::google::protobuf::RepeatedPtrField< ::std::string>*
PyBulletStatus::mutable_unknownstatusbinaryblob() {
  // @@protoc_insertion_point(field_mutable_list:pybullet_grpc.PyBulletStatus.unknownStatusBinaryBlob)
  return &unknownstatusbinaryblob_;
}

// .pybullet_grpc.LoadUrdfStatus urdfStatus = 4;
inline bool PyBulletStatus::has_urdfstatus() const {
  return status_case() == kUrdfStatus;
}
inline void PyBulletStatus::set_has_urdfstatus() {
  _oneof_case_[0] = kUrdfStatus;
}
inline void PyBulletStatus::clear_urdfstatus() {
  if (has_urdfstatus()) {
    delete status_.urdfstatus_;
    clear_has_status();
  }
}
inline const ::pybullet_grpc::LoadUrdfStatus& PyBulletStatus::_internal_urdfstatus() const {
  return *status_.urdfstatus_;
}
inline ::pybullet_grpc::LoadUrdfStatus* PyBulletStatus::release_urdfstatus() {
  // @@protoc_insertion_point(field_release:pybullet_grpc.PyBulletStatus.urdfStatus)
  if (has_urdfstatus()) {
    clear_has_status();
      ::pybullet_grpc::LoadUrdfStatus* temp = status_.urdfstatus_;
    status_.urdfstatus_ = NULL;
    return temp;
  } else {
    return NULL;
  }
}
inline const ::pybullet_grpc::LoadUrdfStatus& PyBulletStatus::urdfstatus() const {
  // @@protoc_insertion_point(field_get:pybullet_grpc.PyBulletStatus.urdfStatus)
  return has_urdfstatus()
      ? *status_.urdfstatus_
      : *reinterpret_cast< ::pybullet_grpc::LoadUrdfStatus*>(&::pybullet_grpc::_LoadUrdfStatus_default_instance_);
}
inline ::pybullet_grpc::LoadUrdfStatus* PyBulletStatus::mutable_urdfstatus() {
  if (!has_urdfstatus()) {
    clear_status();
    set_has_urdfstatus();
    status_.urdfstatus_ = CreateMaybeMessage< ::pybullet_grpc::LoadUrdfStatus >(
        GetArenaNoVirtual());
  }
  // @@protoc_insertion_point(field_mutable:pybullet_grpc.PyBulletStatus.urdfStatus)
  return status_.urdfstatus_;
}

// .pybullet_grpc.SdfLoadedStatus sdfStatus = 5;
inline bool PyBulletStatus::has_sdfstatus() const {
  return status_case() == kSdfStatus;
}
inline void PyBulletStatus::set_has_sdfstatus() {
  _oneof_case_[0] = kSdfStatus;
}
inline void PyBulletStatus::clear_sdfstatus() {
  if (has_sdfstatus()) {
    delete status_.sdfstatus_;
    clear_has_status();
  }
}
inline const ::pybullet_grpc::SdfLoadedStatus& PyBulletStatus::_internal_sdfstatus() const {
  return *status_.sdfstatus_;
}
inline ::pybullet_grpc::SdfLoadedStatus* PyBulletStatus::release_sdfstatus() {
  // @@protoc_insertion_point(field_release:pybullet_grpc.PyBulletStatus.sdfStatus)
  if (has_sdfstatus()) {
    clear_has_status();
      ::pybullet_grpc::SdfLoadedStatus* temp = status_.sdfstatus_;
    status_.sdfstatus_ = NULL;
    return temp;
  } else {
    return NULL;
  }
}
inline const ::pybullet_grpc::SdfLoadedStatus& PyBulletStatus::sdfstatus() const {
  // @@protoc_insertion_point(field_get:pybullet_grpc.PyBulletStatus.sdfStatus)
  return has_sdfstatus()
      ? *status_.sdfstatus_
      : *reinterpret_cast< ::pybullet_grpc::SdfLoadedStatus*>(&::pybullet_grpc::_SdfLoadedStatus_default_instance_);
}
inline ::pybullet_grpc::SdfLoadedStatus* PyBulletStatus::mutable_sdfstatus() {
  if (!has_sdfstatus()) {
    clear_status();
    set_has_sdfstatus();
    status_.sdfstatus_ = CreateMaybeMessage< ::pybullet_grpc::SdfLoadedStatus >(
        GetArenaNoVirtual());
  }
  // @@protoc_insertion_point(field_mutable:pybullet_grpc.PyBulletStatus.sdfStatus)
  return status_.sdfstatus_;
}

// .pybullet_grpc.MjcfLoadedStatus mjcfStatus = 6;
inline bool PyBulletStatus::has_mjcfstatus() const {
  return status_case() == kMjcfStatus;
}
inline void PyBulletStatus::set_has_mjcfstatus() {
  _oneof_case_[0] = kMjcfStatus;
}
inline void PyBulletStatus::clear_mjcfstatus() {
  if (has_mjcfstatus()) {
    delete status_.mjcfstatus_;
    clear_has_status();
  }
}
inline const ::pybullet_grpc::MjcfLoadedStatus& PyBulletStatus::_internal_mjcfstatus() const {
  return *status_.mjcfstatus_;
}
inline ::pybullet_grpc::MjcfLoadedStatus* PyBulletStatus::release_mjcfstatus() {
  // @@protoc_insertion_point(field_release:pybullet_grpc.PyBulletStatus.mjcfStatus)
  if (has_mjcfstatus()) {
    clear_has_status();
      ::pybullet_grpc::MjcfLoadedStatus* temp = status_.mjcfstatus_;
    status_.mjcfstatus_ = NULL;
    return temp;
  } else {
    return NULL;
  }
}
inline const ::pybullet_grpc::MjcfLoadedStatus& PyBulletStatus::mjcfstatus() const {
  // @@protoc_insertion_point(field_get:pybullet_grpc.PyBulletStatus.mjcfStatus)
  return has_mjcfstatus()
      ? *status_.mjcfstatus_
      : *reinterpret_cast< ::pybullet_grpc::MjcfLoadedStatus*>(&::pybullet_grpc::_MjcfLoadedStatus_default_instance_);
}
inline ::pybullet_grpc::MjcfLoadedStatus* PyBulletStatus::mutable_mjcfstatus() {
  if (!has_mjcfstatus()) {
    clear_status();
    set_has_mjcfstatus();
    status_.mjcfstatus_ = CreateMaybeMessage< ::pybullet_grpc::MjcfLoadedStatus >(
        GetArenaNoVirtual());
  }
  // @@protoc_insertion_point(field_mutable:pybullet_grpc.PyBulletStatus.mjcfStatus)
  return status_.mjcfstatus_;
}

// .pybullet_grpc.GetDynamicsStatus getDynamicsStatus = 7;
inline bool PyBulletStatus::has_getdynamicsstatus() const {
  return status_case() == kGetDynamicsStatus;
}
inline void PyBulletStatus::set_has_getdynamicsstatus() {
  _oneof_case_[0] = kGetDynamicsStatus;
}
inline void PyBulletStatus::clear_getdynamicsstatus() {
  if (has_getdynamicsstatus()) {
    delete status_.getdynamicsstatus_;
    clear_has_status();
  }
}
inline const ::pybullet_grpc::GetDynamicsStatus& PyBulletStatus::_internal_getdynamicsstatus() const {
  return *status_.getdynamicsstatus_;
}
inline ::pybullet_grpc::GetDynamicsStatus* PyBulletStatus::release_getdynamicsstatus() {
  // @@protoc_insertion_point(field_release:pybullet_grpc.PyBulletStatus.getDynamicsStatus)
  if (has_getdynamicsstatus()) {
    clear_has_status();
      ::pybullet_grpc::GetDynamicsStatus* temp = status_.getdynamicsstatus_;
    status_.getdynamicsstatus_ = NULL;
    return temp;
  } else {
    return NULL;
  }
}
inline const ::pybullet_grpc::GetDynamicsStatus& PyBulletStatus::getdynamicsstatus() const {
  // @@protoc_insertion_point(field_get:pybullet_grpc.PyBulletStatus.getDynamicsStatus)
  return has_getdynamicsstatus()
      ? *status_.getdynamicsstatus_
      : *reinterpret_cast< ::pybullet_grpc::GetDynamicsStatus*>(&::pybullet_grpc::_GetDynamicsStatus_default_instance_);
}
inline ::pybullet_grpc::GetDynamicsStatus* PyBulletStatus::mutable_getdynamicsstatus() {
  if (!has_getdynamicsstatus()) {
    clear_status();
    set_has_getdynamicsstatus();
    status_.getdynamicsstatus_ = CreateMaybeMessage< ::pybullet_grpc::GetDynamicsStatus >(
        GetArenaNoVirtual());
  }
  // @@protoc_insertion_point(field_mutable:pybullet_grpc.PyBulletStatus.getDynamicsStatus)
  return status_.getdynamicsstatus_;
}

// .pybullet_grpc.SendActualStateStatus actualStateStatus = 8;
inline bool PyBulletStatus::has_actualstatestatus() const {
  return status_case() == kActualStateStatus;
}
inline void PyBulletStatus::set_has_actualstatestatus() {
  _oneof_case_[0] = kActualStateStatus;
}
inline void PyBulletStatus::clear_actualstatestatus() {
  if (has_actualstatestatus()) {
    delete status_.actualstatestatus_;
    clear_has_status();
  }
}
inline const ::pybullet_grpc::SendActualStateStatus& PyBulletStatus::_internal_actualstatestatus() const {
  return *status_.actualstatestatus_;
}
inline ::pybullet_grpc::SendActualStateStatus* PyBulletStatus::release_actualstatestatus() {
  // @@protoc_insertion_point(field_release:pybullet_grpc.PyBulletStatus.actualStateStatus)
  if (has_actualstatestatus()) {
    clear_has_status();
      ::pybullet_grpc::SendActualStateStatus* temp = status_.actualstatestatus_;
    status_.actualstatestatus_ = NULL;
    return temp;
  } else {
    return NULL;
  }
}
inline const ::pybullet_grpc::SendActualStateStatus& PyBulletStatus::actualstatestatus() const {
  // @@protoc_insertion_point(field_get:pybullet_grpc.PyBulletStatus.actualStateStatus)
  return has_actualstatestatus()
      ? *status_.actualstatestatus_
      : *reinterpret_cast< ::pybullet_grpc::SendActualStateStatus*>(&::pybullet_grpc::_SendActualStateStatus_default_instance_);
}
inline ::pybullet_grpc::SendActualStateStatus* PyBulletStatus::mutable_actualstatestatus() {
  if (!has_actualstatestatus()) {
    clear_status();
    set_has_actualstatestatus();
    status_.actualstatestatus_ = CreateMaybeMessage< ::pybullet_grpc::SendActualStateStatus >(
        GetArenaNoVirtual());
  }
  // @@protoc_insertion_point(field_mutable:pybullet_grpc.PyBulletStatus.actualStateStatus)
  return status_.actualstatestatus_;
}

// .pybullet_grpc.SyncBodiesStatus syncBodiesStatus = 9;
inline bool PyBulletStatus::has_syncbodiesstatus() const {
  return status_case() == kSyncBodiesStatus;
}
inline void PyBulletStatus::set_has_syncbodiesstatus() {
  _oneof_case_[0] = kSyncBodiesStatus;
}
inline void PyBulletStatus::clear_syncbodiesstatus() {
  if (has_syncbodiesstatus()) {
    delete status_.syncbodiesstatus_;
    clear_has_status();
  }
}
inline const ::pybullet_grpc::SyncBodiesStatus& PyBulletStatus::_internal_syncbodiesstatus() const {
  return *status_.syncbodiesstatus_;
}
inline ::pybullet_grpc::SyncBodiesStatus* PyBulletStatus::release_syncbodiesstatus() {
  // @@protoc_insertion_point(field_release:pybullet_grpc.PyBulletStatus.syncBodiesStatus)
  if (has_syncbodiesstatus()) {
    clear_has_status();
      ::pybullet_grpc::SyncBodiesStatus* temp = status_.syncbodiesstatus_;
    status_.syncbodiesstatus_ = NULL;
    return temp;
  } else {
    return NULL;
  }
}
inline const ::pybullet_grpc::SyncBodiesStatus& PyBulletStatus::syncbodiesstatus() const {
  // @@protoc_insertion_point(field_get:pybullet_grpc.PyBulletStatus.syncBodiesStatus)
  return has_syncbodiesstatus()
      ? *status_.syncbodiesstatus_
      : *reinterpret_cast< ::pybullet_grpc::SyncBodiesStatus*>(&::pybullet_grpc::_SyncBodiesStatus_default_instance_);
}
inline ::pybullet_grpc::SyncBodiesStatus* PyBulletStatus::mutable_syncbodiesstatus() {
  if (!has_syncbodiesstatus()) {
    clear_status();
    set_has_syncbodiesstatus();
    status_.syncbodiesstatus_ = CreateMaybeMessage< ::pybullet_grpc::SyncBodiesStatus >(
        GetArenaNoVirtual());
  }
  // @@protoc_insertion_point(field_mutable:pybullet_grpc.PyBulletStatus.syncBodiesStatus)
  return status_.syncbodiesstatus_;
}

// .pybullet_grpc.RequestBodyInfoStatus requestBodyInfoStatus = 10;
inline bool PyBulletStatus::has_requestbodyinfostatus() const {
  return status_case() == kRequestBodyInfoStatus;
}
inline void PyBulletStatus::set_has_requestbodyinfostatus() {
  _oneof_case_[0] = kRequestBodyInfoStatus;
}
inline void PyBulletStatus::clear_requestbodyinfostatus() {
  if (has_requestbodyinfostatus()) {
    delete status_.requestbodyinfostatus_;
    clear_has_status();
  }
}
inline const ::pybullet_grpc::RequestBodyInfoStatus& PyBulletStatus::_internal_requestbodyinfostatus() const {
  return *status_.requestbodyinfostatus_;
}
inline ::pybullet_grpc::RequestBodyInfoStatus* PyBulletStatus::release_requestbodyinfostatus() {
  // @@protoc_insertion_point(field_release:pybullet_grpc.PyBulletStatus.requestBodyInfoStatus)
  if (has_requestbodyinfostatus()) {
    clear_has_status();
      ::pybullet_grpc::RequestBodyInfoStatus* temp = status_.requestbodyinfostatus_;
    status_.requestbodyinfostatus_ = NULL;
    return temp;
  } else {
    return NULL;
  }
}
inline const ::pybullet_grpc::RequestBodyInfoStatus& PyBulletStatus::requestbodyinfostatus() const {
  // @@protoc_insertion_point(field_get:pybullet_grpc.PyBulletStatus.requestBodyInfoStatus)
  return has_requestbodyinfostatus()
      ? *status_.requestbodyinfostatus_
      : *reinterpret_cast< ::pybullet_grpc::RequestBodyInfoStatus*>(&::pybullet_grpc::_RequestBodyInfoStatus_default_instance_);
}
inline ::pybullet_grpc::RequestBodyInfoStatus* PyBulletStatus::mutable_requestbodyinfostatus() {
  if (!has_requestbodyinfostatus()) {
    clear_status();
    set_has_requestbodyinfostatus();
    status_.requestbodyinfostatus_ = CreateMaybeMessage< ::pybullet_grpc::RequestBodyInfoStatus >(
        GetArenaNoVirtual());
  }
  // @@protoc_insertion_point(field_mutable:pybullet_grpc.PyBulletStatus.requestBodyInfoStatus)
  return status_.requestbodyinfostatus_;
}

// .pybullet_grpc.PhysicsSimulationParameters requestPhysicsSimulationParametersStatus = 11;
inline bool PyBulletStatus::has_requestphysicssimulationparametersstatus() const {
  return status_case() == kRequestPhysicsSimulationParametersStatus;
}
inline void PyBulletStatus::set_has_requestphysicssimulationparametersstatus() {
  _oneof_case_[0] = kRequestPhysicsSimulationParametersStatus;
}
inline void PyBulletStatus::clear_requestphysicssimulationparametersstatus() {
  if (has_requestphysicssimulationparametersstatus()) {
    delete status_.requestphysicssimulationparametersstatus_;
    clear_has_status();
  }
}
inline const ::pybullet_grpc::PhysicsSimulationParameters& PyBulletStatus::_internal_requestphysicssimulationparametersstatus() const {
  return *status_.requestphysicssimulationparametersstatus_;
}
inline ::pybullet_grpc::PhysicsSimulationParameters* PyBulletStatus::release_requestphysicssimulationparametersstatus() {
  // @@protoc_insertion_point(field_release:pybullet_grpc.PyBulletStatus.requestPhysicsSimulationParametersStatus)
  if (has_requestphysicssimulationparametersstatus()) {
    clear_has_status();
      ::pybullet_grpc::PhysicsSimulationParameters* temp = status_.requestphysicssimulationparametersstatus_;
    status_.requestphysicssimulationparametersstatus_ = NULL;
    return temp;
  } else {
    return NULL;
  }
}
inline const ::pybullet_grpc::PhysicsSimulationParameters& PyBulletStatus::requestphysicssimulationparametersstatus() const {
  // @@protoc_insertion_point(field_get:pybullet_grpc.PyBulletStatus.requestPhysicsSimulationParametersStatus)
  return has_requestphysicssimulationparametersstatus()
      ? *status_.requestphysicssimulationparametersstatus_
      : *reinterpret_cast< ::pybullet_grpc::PhysicsSimulationParameters*>(&::pybullet_grpc::_PhysicsSimulationParameters_default_instance_);
}
inline ::pybullet_grpc::PhysicsSimulationParameters* PyBulletStatus::mutable_requestphysicssimulationparametersstatus() {
  if (!has_requestphysicssimulationparametersstatus()) {
    clear_status();
    set_has_requestphysicssimulationparametersstatus();
    status_.requestphysicssimulationparametersstatus_ = CreateMaybeMessage< ::pybullet_grpc::PhysicsSimulationParameters >(
        GetArenaNoVirtual());
  }
  // @@protoc_insertion_point(field_mutable:pybullet_grpc.PyBulletStatus.requestPhysicsSimulationParametersStatus)
  return status_.requestphysicssimulationparametersstatus_;
}

// .pybullet_grpc.CheckVersionStatus checkVersionStatus = 12;
inline bool PyBulletStatus::has_checkversionstatus() const {
  return status_case() == kCheckVersionStatus;
}
inline void PyBulletStatus::set_has_checkversionstatus() {
  _oneof_case_[0] = kCheckVersionStatus;
}
inline void PyBulletStatus::clear_checkversionstatus() {
  if (has_checkversionstatus()) {
    delete status_.checkversionstatus_;
    clear_has_status();
  }
}
inline const ::pybullet_grpc::CheckVersionStatus& PyBulletStatus::_internal_checkversionstatus() const {
  return *status_.checkversionstatus_;
}
inline ::pybullet_grpc::CheckVersionStatus* PyBulletStatus::release_checkversionstatus() {
  // @@protoc_insertion_point(field_release:pybullet_grpc.PyBulletStatus.checkVersionStatus)
  if (has_checkversionstatus()) {
    clear_has_status();
      ::pybullet_grpc::CheckVersionStatus* temp = status_.checkversionstatus_;
    status_.checkversionstatus_ = NULL;
    return temp;
  } else {
    return NULL;
  }
}
inline const ::pybullet_grpc::CheckVersionStatus& PyBulletStatus::checkversionstatus() const {
  // @@protoc_insertion_point(field_get:pybullet_grpc.PyBulletStatus.checkVersionStatus)
  return has_checkversionstatus()
      ? *status_.checkversionstatus_
      : *reinterpret_cast< ::pybullet_grpc::CheckVersionStatus*>(&::pybullet_grpc::_CheckVersionStatus_default_instance_);
}
inline ::pybullet_grpc::CheckVersionStatus* PyBulletStatus::mutable_checkversionstatus() {
  if (!has_checkversionstatus()) {
    clear_status();
    set_has_checkversionstatus();
    status_.checkversionstatus_ = CreateMaybeMessage< ::pybullet_grpc::CheckVersionStatus >(
        GetArenaNoVirtual());
  }
  // @@protoc_insertion_point(field_mutable:pybullet_grpc.PyBulletStatus.checkVersionStatus)
  return status_.checkversionstatus_;
}

// .pybullet_grpc.UserConstraintStatus userConstraintStatus = 13;
inline bool PyBulletStatus::has_userconstraintstatus() const {
  return status_case() == kUserConstraintStatus;
}
inline void PyBulletStatus::set_has_userconstraintstatus() {
  _oneof_case_[0] = kUserConstraintStatus;
}
inline void PyBulletStatus::clear_userconstraintstatus() {
  if (has_userconstraintstatus()) {
    delete status_.userconstraintstatus_;
    clear_has_status();
  }
}
inline const ::pybullet_grpc::UserConstraintStatus& PyBulletStatus::_internal_userconstraintstatus() const {
  return *status_.userconstraintstatus_;
}
inline ::pybullet_grpc::UserConstraintStatus* PyBulletStatus::release_userconstraintstatus() {
  // @@protoc_insertion_point(field_release:pybullet_grpc.PyBulletStatus.userConstraintStatus)
  if (has_userconstraintstatus()) {
    clear_has_status();
      ::pybullet_grpc::UserConstraintStatus* temp = status_.userconstraintstatus_;
    status_.userconstraintstatus_ = NULL;
    return temp;
  } else {
    return NULL;
  }
}
inline const ::pybullet_grpc::UserConstraintStatus& PyBulletStatus::userconstraintstatus() const {
  // @@protoc_insertion_point(field_get:pybullet_grpc.PyBulletStatus.userConstraintStatus)
  return has_userconstraintstatus()
      ? *status_.userconstraintstatus_
      : *reinterpret_cast< ::pybullet_grpc::UserConstraintStatus*>(&::pybullet_grpc::_UserConstraintStatus_default_instance_);
}
inline ::pybullet_grpc::UserConstraintStatus* PyBulletStatus::mutable_userconstraintstatus() {
  if (!has_userconstraintstatus()) {
    clear_status();
    set_has_userconstraintstatus();
    status_.userconstraintstatus_ = CreateMaybeMessage< ::pybullet_grpc::UserConstraintStatus >(
        GetArenaNoVirtual());
  }
  // @@protoc_insertion_point(field_mutable:pybullet_grpc.PyBulletStatus.userConstraintStatus)
  return status_.userconstraintstatus_;
}

// .pybullet_grpc.UserConstraintStateStatus userConstraintStateStatus = 14;
inline bool PyBulletStatus::has_userconstraintstatestatus() const {
  return status_case() == kUserConstraintStateStatus;
}
inline void PyBulletStatus::set_has_userconstraintstatestatus() {
  _oneof_case_[0] = kUserConstraintStateStatus;
}
inline void PyBulletStatus::clear_userconstraintstatestatus() {
  if (has_userconstraintstatestatus()) {
    delete status_.userconstraintstatestatus_;
    clear_has_status();
  }
}
inline const ::pybullet_grpc::UserConstraintStateStatus& PyBulletStatus::_internal_userconstraintstatestatus() const {
  return *status_.userconstraintstatestatus_;
}
inline ::pybullet_grpc::UserConstraintStateStatus* PyBulletStatus::release_userconstraintstatestatus() {
  // @@protoc_insertion_point(field_release:pybullet_grpc.PyBulletStatus.userConstraintStateStatus)
  if (has_userconstraintstatestatus()) {
    clear_has_status();
      ::pybullet_grpc::UserConstraintStateStatus* temp = status_.userconstraintstatestatus_;
    status_.userconstraintstatestatus_ = NULL;
    return temp;
  } else {
    return NULL;
  }
}
inline const ::pybullet_grpc::UserConstraintStateStatus& PyBulletStatus::userconstraintstatestatus() const {
  // @@protoc_insertion_point(field_get:pybullet_grpc.PyBulletStatus.userConstraintStateStatus)
  return has_userconstraintstatestatus()
      ? *status_.userconstraintstatestatus_
      : *reinterpret_cast< ::pybullet_grpc::UserConstraintStateStatus*>(&::pybullet_grpc::_UserConstraintStateStatus_default_instance_);
}
inline ::pybullet_grpc::UserConstraintStateStatus* PyBulletStatus::mutable_userconstraintstatestatus() {
  if (!has_userconstraintstatestatus()) {
    clear_status();
    set_has_userconstraintstatestatus();
    status_.userconstraintstatestatus_ = CreateMaybeMessage< ::pybullet_grpc::UserConstraintStateStatus >(
        GetArenaNoVirtual());
  }
  // @@protoc_insertion_point(field_mutable:pybullet_grpc.PyBulletStatus.userConstraintStateStatus)
  return status_.userconstraintstatestatus_;
}

// .pybullet_grpc.KeyboardEventsStatus keyboardEventsStatus = 15;
inline bool PyBulletStatus::has_keyboardeventsstatus() const {
  return status_case() == kKeyboardEventsStatus;
}
inline void PyBulletStatus::set_has_keyboardeventsstatus() {
  _oneof_case_[0] = kKeyboardEventsStatus;
}
inline void PyBulletStatus::clear_keyboardeventsstatus() {
  if (has_keyboardeventsstatus()) {
    delete status_.keyboardeventsstatus_;
    clear_has_status();
  }
}
inline const ::pybullet_grpc::KeyboardEventsStatus& PyBulletStatus::_internal_keyboardeventsstatus() const {
  return *status_.keyboardeventsstatus_;
}
inline ::pybullet_grpc::KeyboardEventsStatus* PyBulletStatus::release_keyboardeventsstatus() {
  // @@protoc_insertion_point(field_release:pybullet_grpc.PyBulletStatus.keyboardEventsStatus)
  if (has_keyboardeventsstatus()) {
    clear_has_status();
      ::pybullet_grpc::KeyboardEventsStatus* temp = status_.keyboardeventsstatus_;
    status_.keyboardeventsstatus_ = NULL;
    return temp;
  } else {
    return NULL;
  }
}
inline const ::pybullet_grpc::KeyboardEventsStatus& PyBulletStatus::keyboardeventsstatus() const {
  // @@protoc_insertion_point(field_get:pybullet_grpc.PyBulletStatus.keyboardEventsStatus)
  return has_keyboardeventsstatus()
      ? *status_.keyboardeventsstatus_
      : *reinterpret_cast< ::pybullet_grpc::KeyboardEventsStatus*>(&::pybullet_grpc::_KeyboardEventsStatus_default_instance_);
}
inline ::pybullet_grpc::KeyboardEventsStatus* PyBulletStatus::mutable_keyboardeventsstatus() {
  if (!has_keyboardeventsstatus()) {
    clear_status();
    set_has_keyboardeventsstatus();
    status_.keyboardeventsstatus_ = CreateMaybeMessage< ::pybullet_grpc::KeyboardEventsStatus >(
        GetArenaNoVirtual());
  }
  // @@protoc_insertion_point(field_mutable:pybullet_grpc.PyBulletStatus.keyboardEventsStatus)
  return status_.keyboardeventsstatus_;
}

// .pybullet_grpc.RequestCameraImageStatus requestCameraImageStatus = 16;
inline bool PyBulletStatus::has_requestcameraimagestatus() const {
  return status_case() == kRequestCameraImageStatus;
}
inline void PyBulletStatus::set_has_requestcameraimagestatus() {
  _oneof_case_[0] = kRequestCameraImageStatus;
}
inline void PyBulletStatus::clear_requestcameraimagestatus() {
  if (has_requestcameraimagestatus()) {
    delete status_.requestcameraimagestatus_;
    clear_has_status();
  }
}
inline const ::pybullet_grpc::RequestCameraImageStatus& PyBulletStatus::_internal_requestcameraimagestatus() const {
  return *status_.requestcameraimagestatus_;
}
inline ::pybullet_grpc::RequestCameraImageStatus* PyBulletStatus::release_requestcameraimagestatus() {
  // @@protoc_insertion_point(field_release:pybullet_grpc.PyBulletStatus.requestCameraImageStatus)
  if (has_requestcameraimagestatus()) {
    clear_has_status();
      ::pybullet_grpc::RequestCameraImageStatus* temp = status_.requestcameraimagestatus_;
    status_.requestcameraimagestatus_ = NULL;
    return temp;
  } else {
    return NULL;
  }
}
inline const ::pybullet_grpc::RequestCameraImageStatus& PyBulletStatus::requestcameraimagestatus() const {
  // @@protoc_insertion_point(field_get:pybullet_grpc.PyBulletStatus.requestCameraImageStatus)
  return has_requestcameraimagestatus()
      ? *status_.requestcameraimagestatus_
      : *reinterpret_cast< ::pybullet_grpc::RequestCameraImageStatus*>(&::pybullet_grpc::_RequestCameraImageStatus_default_instance_);
}
inline ::pybullet_grpc::RequestCameraImageStatus* PyBulletStatus::mutable_requestcameraimagestatus() {
  if (!has_requestcameraimagestatus()) {
    clear_status();
    set_has_requestcameraimagestatus();
    status_.requestcameraimagestatus_ = CreateMaybeMessage< ::pybullet_grpc::RequestCameraImageStatus >(
        GetArenaNoVirtual());
  }
  // @@protoc_insertion_point(field_mutable:pybullet_grpc.PyBulletStatus.requestCameraImageStatus)
  return status_.requestcameraimagestatus_;
}

inline bool PyBulletStatus::has_status() const {
  return status_case() != STATUS_NOT_SET;
}
inline void PyBulletStatus::clear_has_status() {
  _oneof_case_[0] = STATUS_NOT_SET;
}
inline PyBulletStatus::StatusCase PyBulletStatus::status_case() const {
  return PyBulletStatus::StatusCase(_oneof_case_[0]);
}
#ifdef __GNUC__
  #pragma GCC diagnostic pop
#endif  // __GNUC__
// -------------------------------------------------------------------

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


// @@protoc_insertion_point(namespace_scope)

}  // namespace pybullet_grpc

// @@protoc_insertion_point(global_scope)

#endif  // PROTOBUF_INCLUDED_pybullet_2eproto
