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

#ifndef PROTOBUF_laser_5fparameter_2eproto__INCLUDED
#define PROTOBUF_laser_5fparameter_2eproto__INCLUDED

#include <string>

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

#if GOOGLE_PROTOBUF_VERSION < 3005000
#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 3005000 < 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/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)

namespace protobuf_laser_5fparameter_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[2];
  static const ::google::protobuf::internal::FieldMetadata field_metadata[];
  static const ::google::protobuf::internal::SerializationTable serialization_table[];
  static const ::google::protobuf::uint32 offsets[];
};
void AddDescriptors();
void InitDefaultslaser_parameterImpl();
void InitDefaultslaser_parameter();
void InitDefaultsLaser_parameter_allImpl();
void InitDefaultsLaser_parameter_all();
inline void InitDefaults() {
  InitDefaultslaser_parameter();
  InitDefaultsLaser_parameter_all();
}
}  // namespace protobuf_laser_5fparameter_2eproto
namespace Laser_proto {
class Laser_parameter_all;
class Laser_parameter_allDefaultTypeInternal;
extern Laser_parameter_allDefaultTypeInternal _Laser_parameter_all_default_instance_;
class laser_parameter;
class laser_parameterDefaultTypeInternal;
extern laser_parameterDefaultTypeInternal _laser_parameter_default_instance_;
}  // namespace Laser_proto
namespace Laser_proto {

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

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

  laser_parameter(const laser_parameter& from);

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

  inline laser_parameter& operator=(laser_parameter&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }
  #endif
  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
    return _internal_metadata_.unknown_fields();
  }
  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
    return _internal_metadata_.mutable_unknown_fields();
  }

  static const ::google::protobuf::Descriptor* descriptor();
  static const laser_parameter& default_instance();

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

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

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

  inline laser_parameter* New() const PROTOBUF_FINAL { return New(NULL); }

  laser_parameter* New(::google::protobuf::Arena* arena) const PROTOBUF_FINAL;
  void CopyFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
  void MergeFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
  void CopyFrom(const laser_parameter& from);
  void MergeFrom(const laser_parameter& from);
  void Clear() PROTOBUF_FINAL;
  bool IsInitialized() const PROTOBUF_FINAL;

  size_t ByteSizeLong() const PROTOBUF_FINAL;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input) PROTOBUF_FINAL;
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const PROTOBUF_FINAL;
  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
      bool deterministic, ::google::protobuf::uint8* target) const PROTOBUF_FINAL;
  int GetCachedSize() const PROTOBUF_FINAL { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const PROTOBUF_FINAL;
  void InternalSwap(laser_parameter* other);
  private:
  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
    return NULL;
  }
  inline void* MaybeArenaPtr() const {
    return NULL;
  }
  public:

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

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

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

  // optional string laser_ip = 1;
  bool has_laser_ip() const;
  void clear_laser_ip();
  static const int kLaserIpFieldNumber = 1;
  const ::std::string& laser_ip() const;
  void set_laser_ip(const ::std::string& value);
  #if LANG_CXX11
  void set_laser_ip(::std::string&& value);
  #endif
  void set_laser_ip(const char* value);
  void set_laser_ip(const char* value, size_t size);
  ::std::string* mutable_laser_ip();
  ::std::string* release_laser_ip();
  void set_allocated_laser_ip(::std::string* laser_ip);

  // optional string sn = 24;
  bool has_sn() const;
  void clear_sn();
  static const int kSnFieldNumber = 24;
  const ::std::string& sn() const;
  void set_sn(const ::std::string& value);
  #if LANG_CXX11
  void set_sn(::std::string&& value);
  #endif
  void set_sn(const char* value);
  void set_sn(const char* value, size_t size);
  ::std::string* mutable_sn();
  ::std::string* release_sn();
  void set_allocated_sn(::std::string* sn);

  // optional string type = 26 [default = ""];
  bool has_type() const;
  void clear_type();
  static const int kTypeFieldNumber = 26;
  const ::std::string& type() const;
  void set_type(const ::std::string& value);
  #if LANG_CXX11
  void set_type(::std::string&& value);
  #endif
  void set_type(const char* value);
  void set_type(const char* value, size_t size);
  ::std::string* mutable_type();
  ::std::string* release_type();
  void set_allocated_type(::std::string* type);

  // optional int64 laser_port = 2;
  bool has_laser_port() const;
  void clear_laser_port();
  static const int kLaserPortFieldNumber = 2;
  ::google::protobuf::int64 laser_port() const;
  void set_laser_port(::google::protobuf::int64 value);

  // optional int64 laser_port_remote = 3;
  bool has_laser_port_remote() const;
  void clear_laser_port_remote();
  static const int kLaserPortRemoteFieldNumber = 3;
  ::google::protobuf::int64 laser_port_remote() const;
  void set_laser_port_remote(::google::protobuf::int64 value);

  // optional double axis_x_theta = 16;
  bool has_axis_x_theta() const;
  void clear_axis_x_theta();
  static const int kAxisXThetaFieldNumber = 16;
  double axis_x_theta() const;
  void set_axis_x_theta(double value);

  // optional double axis_y_theta = 17;
  bool has_axis_y_theta() const;
  void clear_axis_y_theta();
  static const int kAxisYThetaFieldNumber = 17;
  double axis_y_theta() const;
  void set_axis_y_theta(double value);

  // optional double axis_z_theta = 18;
  bool has_axis_z_theta() const;
  void clear_axis_z_theta();
  static const int kAxisZThetaFieldNumber = 18;
  double axis_z_theta() const;
  void set_axis_z_theta(double value);

  // optional double translation_x = 19;
  bool has_translation_x() const;
  void clear_translation_x();
  static const int kTranslationXFieldNumber = 19;
  double translation_x() const;
  void set_translation_x(double value);

  // optional double translation_y = 20;
  bool has_translation_y() const;
  void clear_translation_y();
  static const int kTranslationYFieldNumber = 20;
  double translation_y() const;
  void set_translation_y(double value);

  // optional double translation_z = 21;
  bool has_translation_z() const;
  void clear_translation_z();
  static const int kTranslationZFieldNumber = 21;
  double translation_z() const;
  void set_translation_z(double value);

  // optional double install_angle = 22 [default = 0];
  bool has_install_angle() const;
  void clear_install_angle();
  static const int kInstallAngleFieldNumber = 22;
  double install_angle() const;
  void set_install_angle(double value);

  // optional bool is_save_banary = 27 [default = false];
  bool has_is_save_banary() const;
  void clear_is_save_banary();
  static const int kIsSaveBanaryFieldNumber = 27;
  bool is_save_banary() const;
  void set_is_save_banary(bool value);

  // optional bool scan_direction = 23 [default = true];
  bool has_scan_direction() const;
  void clear_scan_direction();
  static const int kScanDirectionFieldNumber = 23;
  bool scan_direction() const;
  void set_scan_direction(bool value);

  // optional bool is_save_txt = 28 [default = true];
  bool has_is_save_txt() const;
  void clear_is_save_txt();
  static const int kIsSaveTxtFieldNumber = 28;
  bool is_save_txt() const;
  void set_is_save_txt(bool value);

  // optional double mat_r00 = 4 [default = 1];
  bool has_mat_r00() const;
  void clear_mat_r00();
  static const int kMatR00FieldNumber = 4;
  double mat_r00() const;
  void set_mat_r00(double value);

  // optional double mat_r01 = 5 [default = 1];
  bool has_mat_r01() const;
  void clear_mat_r01();
  static const int kMatR01FieldNumber = 5;
  double mat_r01() const;
  void set_mat_r01(double value);

  // optional double mat_r02 = 6 [default = 1];
  bool has_mat_r02() const;
  void clear_mat_r02();
  static const int kMatR02FieldNumber = 6;
  double mat_r02() const;
  void set_mat_r02(double value);

  // optional double mat_r03 = 7 [default = 1];
  bool has_mat_r03() const;
  void clear_mat_r03();
  static const int kMatR03FieldNumber = 7;
  double mat_r03() const;
  void set_mat_r03(double value);

  // optional double mat_r10 = 8 [default = 1];
  bool has_mat_r10() const;
  void clear_mat_r10();
  static const int kMatR10FieldNumber = 8;
  double mat_r10() const;
  void set_mat_r10(double value);

  // optional double mat_r11 = 9 [default = 1];
  bool has_mat_r11() const;
  void clear_mat_r11();
  static const int kMatR11FieldNumber = 9;
  double mat_r11() const;
  void set_mat_r11(double value);

  // optional double mat_r12 = 10 [default = 1];
  bool has_mat_r12() const;
  void clear_mat_r12();
  static const int kMatR12FieldNumber = 10;
  double mat_r12() const;
  void set_mat_r12(double value);

  // optional double mat_r13 = 11 [default = 1];
  bool has_mat_r13() const;
  void clear_mat_r13();
  static const int kMatR13FieldNumber = 11;
  double mat_r13() const;
  void set_mat_r13(double value);

  // optional double mat_r20 = 12 [default = 1];
  bool has_mat_r20() const;
  void clear_mat_r20();
  static const int kMatR20FieldNumber = 12;
  double mat_r20() const;
  void set_mat_r20(double value);

  // optional double mat_r21 = 13 [default = 1];
  bool has_mat_r21() const;
  void clear_mat_r21();
  static const int kMatR21FieldNumber = 13;
  double mat_r21() const;
  void set_mat_r21(double value);

  // optional double mat_r22 = 14 [default = 1];
  bool has_mat_r22() const;
  void clear_mat_r22();
  static const int kMatR22FieldNumber = 14;
  double mat_r22() const;
  void set_mat_r22(double value);

  // optional double mat_r23 = 15 [default = 1];
  bool has_mat_r23() const;
  void clear_mat_r23();
  static const int kMatR23FieldNumber = 15;
  double mat_r23() const;
  void set_mat_r23(double value);

  // optional int64 frame_num = 25 [default = 3000];
  bool has_frame_num() const;
  void clear_frame_num();
  static const int kFrameNumFieldNumber = 25;
  ::google::protobuf::int64 frame_num() const;
  void set_frame_num(::google::protobuf::int64 value);

  // @@protoc_insertion_point(class_scope:Laser_proto.laser_parameter)
 private:
  void set_has_laser_ip();
  void clear_has_laser_ip();
  void set_has_laser_port();
  void clear_has_laser_port();
  void set_has_laser_port_remote();
  void clear_has_laser_port_remote();
  void set_has_mat_r00();
  void clear_has_mat_r00();
  void set_has_mat_r01();
  void clear_has_mat_r01();
  void set_has_mat_r02();
  void clear_has_mat_r02();
  void set_has_mat_r03();
  void clear_has_mat_r03();
  void set_has_mat_r10();
  void clear_has_mat_r10();
  void set_has_mat_r11();
  void clear_has_mat_r11();
  void set_has_mat_r12();
  void clear_has_mat_r12();
  void set_has_mat_r13();
  void clear_has_mat_r13();
  void set_has_mat_r20();
  void clear_has_mat_r20();
  void set_has_mat_r21();
  void clear_has_mat_r21();
  void set_has_mat_r22();
  void clear_has_mat_r22();
  void set_has_mat_r23();
  void clear_has_mat_r23();
  void set_has_axis_x_theta();
  void clear_has_axis_x_theta();
  void set_has_axis_y_theta();
  void clear_has_axis_y_theta();
  void set_has_axis_z_theta();
  void clear_has_axis_z_theta();
  void set_has_translation_x();
  void clear_has_translation_x();
  void set_has_translation_y();
  void clear_has_translation_y();
  void set_has_translation_z();
  void clear_has_translation_z();
  void set_has_install_angle();
  void clear_has_install_angle();
  void set_has_scan_direction();
  void clear_has_scan_direction();
  void set_has_sn();
  void clear_has_sn();
  void set_has_frame_num();
  void clear_has_frame_num();
  void set_has_type();
  void clear_has_type();
  void set_has_is_save_banary();
  void clear_has_is_save_banary();
  void set_has_is_save_txt();
  void clear_has_is_save_txt();

  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
  ::google::protobuf::internal::HasBits<1> _has_bits_;
  mutable int _cached_size_;
  ::google::protobuf::internal::ArenaStringPtr laser_ip_;
  ::google::protobuf::internal::ArenaStringPtr sn_;
  ::google::protobuf::internal::ArenaStringPtr type_;
  ::google::protobuf::int64 laser_port_;
  ::google::protobuf::int64 laser_port_remote_;
  double axis_x_theta_;
  double axis_y_theta_;
  double axis_z_theta_;
  double translation_x_;
  double translation_y_;
  double translation_z_;
  double install_angle_;
  bool is_save_banary_;
  bool scan_direction_;
  bool is_save_txt_;
  double mat_r00_;
  double mat_r01_;
  double mat_r02_;
  double mat_r03_;
  double mat_r10_;
  double mat_r11_;
  double mat_r12_;
  double mat_r13_;
  double mat_r20_;
  double mat_r21_;
  double mat_r22_;
  double mat_r23_;
  ::google::protobuf::int64 frame_num_;
  friend struct ::protobuf_laser_5fparameter_2eproto::TableStruct;
  friend void ::protobuf_laser_5fparameter_2eproto::InitDefaultslaser_parameterImpl();
};
// -------------------------------------------------------------------

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

  Laser_parameter_all(const Laser_parameter_all& from);

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

  inline Laser_parameter_all& operator=(Laser_parameter_all&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }
  #endif
  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
    return _internal_metadata_.unknown_fields();
  }
  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
    return _internal_metadata_.mutable_unknown_fields();
  }

  static const ::google::protobuf::Descriptor* descriptor();
  static const Laser_parameter_all& default_instance();

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

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

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

  inline Laser_parameter_all* New() const PROTOBUF_FINAL { return New(NULL); }

  Laser_parameter_all* New(::google::protobuf::Arena* arena) const PROTOBUF_FINAL;
  void CopyFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
  void MergeFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
  void CopyFrom(const Laser_parameter_all& from);
  void MergeFrom(const Laser_parameter_all& from);
  void Clear() PROTOBUF_FINAL;
  bool IsInitialized() const PROTOBUF_FINAL;

  size_t ByteSizeLong() const PROTOBUF_FINAL;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input) PROTOBUF_FINAL;
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const PROTOBUF_FINAL;
  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
      bool deterministic, ::google::protobuf::uint8* target) const PROTOBUF_FINAL;
  int GetCachedSize() const PROTOBUF_FINAL { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const PROTOBUF_FINAL;
  void InternalSwap(Laser_parameter_all* other);
  private:
  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
    return NULL;
  }
  inline void* MaybeArenaPtr() const {
    return NULL;
  }
  public:

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

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

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

  // repeated .Laser_proto.laser_parameter laser_parameters = 1;
  int laser_parameters_size() const;
  void clear_laser_parameters();
  static const int kLaserParametersFieldNumber = 1;
  const ::Laser_proto::laser_parameter& laser_parameters(int index) const;
  ::Laser_proto::laser_parameter* mutable_laser_parameters(int index);
  ::Laser_proto::laser_parameter* add_laser_parameters();
  ::google::protobuf::RepeatedPtrField< ::Laser_proto::laser_parameter >*
      mutable_laser_parameters();
  const ::google::protobuf::RepeatedPtrField< ::Laser_proto::laser_parameter >&
      laser_parameters() const;

  // @@protoc_insertion_point(class_scope:Laser_proto.Laser_parameter_all)
 private:

  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
  ::google::protobuf::internal::HasBits<1> _has_bits_;
  mutable int _cached_size_;
  ::google::protobuf::RepeatedPtrField< ::Laser_proto::laser_parameter > laser_parameters_;
  friend struct ::protobuf_laser_5fparameter_2eproto::TableStruct;
  friend void ::protobuf_laser_5fparameter_2eproto::InitDefaultsLaser_parameter_allImpl();
};
// ===================================================================


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

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

// optional string laser_ip = 1;
inline bool laser_parameter::has_laser_ip() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void laser_parameter::set_has_laser_ip() {
  _has_bits_[0] |= 0x00000001u;
}
inline void laser_parameter::clear_has_laser_ip() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void laser_parameter::clear_laser_ip() {
  laser_ip_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  clear_has_laser_ip();
}
inline const ::std::string& laser_parameter::laser_ip() const {
  // @@protoc_insertion_point(field_get:Laser_proto.laser_parameter.laser_ip)
  return laser_ip_.GetNoArena();
}
inline void laser_parameter::set_laser_ip(const ::std::string& value) {
  set_has_laser_ip();
  laser_ip_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:Laser_proto.laser_parameter.laser_ip)
}
#if LANG_CXX11
inline void laser_parameter::set_laser_ip(::std::string&& value) {
  set_has_laser_ip();
  laser_ip_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:Laser_proto.laser_parameter.laser_ip)
}
#endif
inline void laser_parameter::set_laser_ip(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  set_has_laser_ip();
  laser_ip_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:Laser_proto.laser_parameter.laser_ip)
}
inline void laser_parameter::set_laser_ip(const char* value, size_t size) {
  set_has_laser_ip();
  laser_ip_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:Laser_proto.laser_parameter.laser_ip)
}
inline ::std::string* laser_parameter::mutable_laser_ip() {
  set_has_laser_ip();
  // @@protoc_insertion_point(field_mutable:Laser_proto.laser_parameter.laser_ip)
  return laser_ip_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline ::std::string* laser_parameter::release_laser_ip() {
  // @@protoc_insertion_point(field_release:Laser_proto.laser_parameter.laser_ip)
  clear_has_laser_ip();
  return laser_ip_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline void laser_parameter::set_allocated_laser_ip(::std::string* laser_ip) {
  if (laser_ip != NULL) {
    set_has_laser_ip();
  } else {
    clear_has_laser_ip();
  }
  laser_ip_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), laser_ip);
  // @@protoc_insertion_point(field_set_allocated:Laser_proto.laser_parameter.laser_ip)
}

// optional int64 laser_port = 2;
inline bool laser_parameter::has_laser_port() const {
  return (_has_bits_[0] & 0x00000008u) != 0;
}
inline void laser_parameter::set_has_laser_port() {
  _has_bits_[0] |= 0x00000008u;
}
inline void laser_parameter::clear_has_laser_port() {
  _has_bits_[0] &= ~0x00000008u;
}
inline void laser_parameter::clear_laser_port() {
  laser_port_ = GOOGLE_LONGLONG(0);
  clear_has_laser_port();
}
inline ::google::protobuf::int64 laser_parameter::laser_port() const {
  // @@protoc_insertion_point(field_get:Laser_proto.laser_parameter.laser_port)
  return laser_port_;
}
inline void laser_parameter::set_laser_port(::google::protobuf::int64 value) {
  set_has_laser_port();
  laser_port_ = value;
  // @@protoc_insertion_point(field_set:Laser_proto.laser_parameter.laser_port)
}

// optional int64 laser_port_remote = 3;
inline bool laser_parameter::has_laser_port_remote() const {
  return (_has_bits_[0] & 0x00000010u) != 0;
}
inline void laser_parameter::set_has_laser_port_remote() {
  _has_bits_[0] |= 0x00000010u;
}
inline void laser_parameter::clear_has_laser_port_remote() {
  _has_bits_[0] &= ~0x00000010u;
}
inline void laser_parameter::clear_laser_port_remote() {
  laser_port_remote_ = GOOGLE_LONGLONG(0);
  clear_has_laser_port_remote();
}
inline ::google::protobuf::int64 laser_parameter::laser_port_remote() const {
  // @@protoc_insertion_point(field_get:Laser_proto.laser_parameter.laser_port_remote)
  return laser_port_remote_;
}
inline void laser_parameter::set_laser_port_remote(::google::protobuf::int64 value) {
  set_has_laser_port_remote();
  laser_port_remote_ = value;
  // @@protoc_insertion_point(field_set:Laser_proto.laser_parameter.laser_port_remote)
}

// optional double mat_r00 = 4 [default = 1];
inline bool laser_parameter::has_mat_r00() const {
  return (_has_bits_[0] & 0x00008000u) != 0;
}
inline void laser_parameter::set_has_mat_r00() {
  _has_bits_[0] |= 0x00008000u;
}
inline void laser_parameter::clear_has_mat_r00() {
  _has_bits_[0] &= ~0x00008000u;
}
inline void laser_parameter::clear_mat_r00() {
  mat_r00_ = 1;
  clear_has_mat_r00();
}
inline double laser_parameter::mat_r00() const {
  // @@protoc_insertion_point(field_get:Laser_proto.laser_parameter.mat_r00)
  return mat_r00_;
}
inline void laser_parameter::set_mat_r00(double value) {
  set_has_mat_r00();
  mat_r00_ = value;
  // @@protoc_insertion_point(field_set:Laser_proto.laser_parameter.mat_r00)
}

// optional double mat_r01 = 5 [default = 1];
inline bool laser_parameter::has_mat_r01() const {
  return (_has_bits_[0] & 0x00010000u) != 0;
}
inline void laser_parameter::set_has_mat_r01() {
  _has_bits_[0] |= 0x00010000u;
}
inline void laser_parameter::clear_has_mat_r01() {
  _has_bits_[0] &= ~0x00010000u;
}
inline void laser_parameter::clear_mat_r01() {
  mat_r01_ = 1;
  clear_has_mat_r01();
}
inline double laser_parameter::mat_r01() const {
  // @@protoc_insertion_point(field_get:Laser_proto.laser_parameter.mat_r01)
  return mat_r01_;
}
inline void laser_parameter::set_mat_r01(double value) {
  set_has_mat_r01();
  mat_r01_ = value;
  // @@protoc_insertion_point(field_set:Laser_proto.laser_parameter.mat_r01)
}

// optional double mat_r02 = 6 [default = 1];
inline bool laser_parameter::has_mat_r02() const {
  return (_has_bits_[0] & 0x00020000u) != 0;
}
inline void laser_parameter::set_has_mat_r02() {
  _has_bits_[0] |= 0x00020000u;
}
inline void laser_parameter::clear_has_mat_r02() {
  _has_bits_[0] &= ~0x00020000u;
}
inline void laser_parameter::clear_mat_r02() {
  mat_r02_ = 1;
  clear_has_mat_r02();
}
inline double laser_parameter::mat_r02() const {
  // @@protoc_insertion_point(field_get:Laser_proto.laser_parameter.mat_r02)
  return mat_r02_;
}
inline void laser_parameter::set_mat_r02(double value) {
  set_has_mat_r02();
  mat_r02_ = value;
  // @@protoc_insertion_point(field_set:Laser_proto.laser_parameter.mat_r02)
}

// optional double mat_r03 = 7 [default = 1];
inline bool laser_parameter::has_mat_r03() const {
  return (_has_bits_[0] & 0x00040000u) != 0;
}
inline void laser_parameter::set_has_mat_r03() {
  _has_bits_[0] |= 0x00040000u;
}
inline void laser_parameter::clear_has_mat_r03() {
  _has_bits_[0] &= ~0x00040000u;
}
inline void laser_parameter::clear_mat_r03() {
  mat_r03_ = 1;
  clear_has_mat_r03();
}
inline double laser_parameter::mat_r03() const {
  // @@protoc_insertion_point(field_get:Laser_proto.laser_parameter.mat_r03)
  return mat_r03_;
}
inline void laser_parameter::set_mat_r03(double value) {
  set_has_mat_r03();
  mat_r03_ = value;
  // @@protoc_insertion_point(field_set:Laser_proto.laser_parameter.mat_r03)
}

// optional double mat_r10 = 8 [default = 1];
inline bool laser_parameter::has_mat_r10() const {
  return (_has_bits_[0] & 0x00080000u) != 0;
}
inline void laser_parameter::set_has_mat_r10() {
  _has_bits_[0] |= 0x00080000u;
}
inline void laser_parameter::clear_has_mat_r10() {
  _has_bits_[0] &= ~0x00080000u;
}
inline void laser_parameter::clear_mat_r10() {
  mat_r10_ = 1;
  clear_has_mat_r10();
}
inline double laser_parameter::mat_r10() const {
  // @@protoc_insertion_point(field_get:Laser_proto.laser_parameter.mat_r10)
  return mat_r10_;
}
inline void laser_parameter::set_mat_r10(double value) {
  set_has_mat_r10();
  mat_r10_ = value;
  // @@protoc_insertion_point(field_set:Laser_proto.laser_parameter.mat_r10)
}

// optional double mat_r11 = 9 [default = 1];
inline bool laser_parameter::has_mat_r11() const {
  return (_has_bits_[0] & 0x00100000u) != 0;
}
inline void laser_parameter::set_has_mat_r11() {
  _has_bits_[0] |= 0x00100000u;
}
inline void laser_parameter::clear_has_mat_r11() {
  _has_bits_[0] &= ~0x00100000u;
}
inline void laser_parameter::clear_mat_r11() {
  mat_r11_ = 1;
  clear_has_mat_r11();
}
inline double laser_parameter::mat_r11() const {
  // @@protoc_insertion_point(field_get:Laser_proto.laser_parameter.mat_r11)
  return mat_r11_;
}
inline void laser_parameter::set_mat_r11(double value) {
  set_has_mat_r11();
  mat_r11_ = value;
  // @@protoc_insertion_point(field_set:Laser_proto.laser_parameter.mat_r11)
}

// optional double mat_r12 = 10 [default = 1];
inline bool laser_parameter::has_mat_r12() const {
  return (_has_bits_[0] & 0x00200000u) != 0;
}
inline void laser_parameter::set_has_mat_r12() {
  _has_bits_[0] |= 0x00200000u;
}
inline void laser_parameter::clear_has_mat_r12() {
  _has_bits_[0] &= ~0x00200000u;
}
inline void laser_parameter::clear_mat_r12() {
  mat_r12_ = 1;
  clear_has_mat_r12();
}
inline double laser_parameter::mat_r12() const {
  // @@protoc_insertion_point(field_get:Laser_proto.laser_parameter.mat_r12)
  return mat_r12_;
}
inline void laser_parameter::set_mat_r12(double value) {
  set_has_mat_r12();
  mat_r12_ = value;
  // @@protoc_insertion_point(field_set:Laser_proto.laser_parameter.mat_r12)
}

// optional double mat_r13 = 11 [default = 1];
inline bool laser_parameter::has_mat_r13() const {
  return (_has_bits_[0] & 0x00400000u) != 0;
}
inline void laser_parameter::set_has_mat_r13() {
  _has_bits_[0] |= 0x00400000u;
}
inline void laser_parameter::clear_has_mat_r13() {
  _has_bits_[0] &= ~0x00400000u;
}
inline void laser_parameter::clear_mat_r13() {
  mat_r13_ = 1;
  clear_has_mat_r13();
}
inline double laser_parameter::mat_r13() const {
  // @@protoc_insertion_point(field_get:Laser_proto.laser_parameter.mat_r13)
  return mat_r13_;
}
inline void laser_parameter::set_mat_r13(double value) {
  set_has_mat_r13();
  mat_r13_ = value;
  // @@protoc_insertion_point(field_set:Laser_proto.laser_parameter.mat_r13)
}

// optional double mat_r20 = 12 [default = 1];
inline bool laser_parameter::has_mat_r20() const {
  return (_has_bits_[0] & 0x00800000u) != 0;
}
inline void laser_parameter::set_has_mat_r20() {
  _has_bits_[0] |= 0x00800000u;
}
inline void laser_parameter::clear_has_mat_r20() {
  _has_bits_[0] &= ~0x00800000u;
}
inline void laser_parameter::clear_mat_r20() {
  mat_r20_ = 1;
  clear_has_mat_r20();
}
inline double laser_parameter::mat_r20() const {
  // @@protoc_insertion_point(field_get:Laser_proto.laser_parameter.mat_r20)
  return mat_r20_;
}
inline void laser_parameter::set_mat_r20(double value) {
  set_has_mat_r20();
  mat_r20_ = value;
  // @@protoc_insertion_point(field_set:Laser_proto.laser_parameter.mat_r20)
}

// optional double mat_r21 = 13 [default = 1];
inline bool laser_parameter::has_mat_r21() const {
  return (_has_bits_[0] & 0x01000000u) != 0;
}
inline void laser_parameter::set_has_mat_r21() {
  _has_bits_[0] |= 0x01000000u;
}
inline void laser_parameter::clear_has_mat_r21() {
  _has_bits_[0] &= ~0x01000000u;
}
inline void laser_parameter::clear_mat_r21() {
  mat_r21_ = 1;
  clear_has_mat_r21();
}
inline double laser_parameter::mat_r21() const {
  // @@protoc_insertion_point(field_get:Laser_proto.laser_parameter.mat_r21)
  return mat_r21_;
}
inline void laser_parameter::set_mat_r21(double value) {
  set_has_mat_r21();
  mat_r21_ = value;
  // @@protoc_insertion_point(field_set:Laser_proto.laser_parameter.mat_r21)
}

// optional double mat_r22 = 14 [default = 1];
inline bool laser_parameter::has_mat_r22() const {
  return (_has_bits_[0] & 0x02000000u) != 0;
}
inline void laser_parameter::set_has_mat_r22() {
  _has_bits_[0] |= 0x02000000u;
}
inline void laser_parameter::clear_has_mat_r22() {
  _has_bits_[0] &= ~0x02000000u;
}
inline void laser_parameter::clear_mat_r22() {
  mat_r22_ = 1;
  clear_has_mat_r22();
}
inline double laser_parameter::mat_r22() const {
  // @@protoc_insertion_point(field_get:Laser_proto.laser_parameter.mat_r22)
  return mat_r22_;
}
inline void laser_parameter::set_mat_r22(double value) {
  set_has_mat_r22();
  mat_r22_ = value;
  // @@protoc_insertion_point(field_set:Laser_proto.laser_parameter.mat_r22)
}

// optional double mat_r23 = 15 [default = 1];
inline bool laser_parameter::has_mat_r23() const {
  return (_has_bits_[0] & 0x04000000u) != 0;
}
inline void laser_parameter::set_has_mat_r23() {
  _has_bits_[0] |= 0x04000000u;
}
inline void laser_parameter::clear_has_mat_r23() {
  _has_bits_[0] &= ~0x04000000u;
}
inline void laser_parameter::clear_mat_r23() {
  mat_r23_ = 1;
  clear_has_mat_r23();
}
inline double laser_parameter::mat_r23() const {
  // @@protoc_insertion_point(field_get:Laser_proto.laser_parameter.mat_r23)
  return mat_r23_;
}
inline void laser_parameter::set_mat_r23(double value) {
  set_has_mat_r23();
  mat_r23_ = value;
  // @@protoc_insertion_point(field_set:Laser_proto.laser_parameter.mat_r23)
}

// optional double axis_x_theta = 16;
inline bool laser_parameter::has_axis_x_theta() const {
  return (_has_bits_[0] & 0x00000020u) != 0;
}
inline void laser_parameter::set_has_axis_x_theta() {
  _has_bits_[0] |= 0x00000020u;
}
inline void laser_parameter::clear_has_axis_x_theta() {
  _has_bits_[0] &= ~0x00000020u;
}
inline void laser_parameter::clear_axis_x_theta() {
  axis_x_theta_ = 0;
  clear_has_axis_x_theta();
}
inline double laser_parameter::axis_x_theta() const {
  // @@protoc_insertion_point(field_get:Laser_proto.laser_parameter.axis_x_theta)
  return axis_x_theta_;
}
inline void laser_parameter::set_axis_x_theta(double value) {
  set_has_axis_x_theta();
  axis_x_theta_ = value;
  // @@protoc_insertion_point(field_set:Laser_proto.laser_parameter.axis_x_theta)
}

// optional double axis_y_theta = 17;
inline bool laser_parameter::has_axis_y_theta() const {
  return (_has_bits_[0] & 0x00000040u) != 0;
}
inline void laser_parameter::set_has_axis_y_theta() {
  _has_bits_[0] |= 0x00000040u;
}
inline void laser_parameter::clear_has_axis_y_theta() {
  _has_bits_[0] &= ~0x00000040u;
}
inline void laser_parameter::clear_axis_y_theta() {
  axis_y_theta_ = 0;
  clear_has_axis_y_theta();
}
inline double laser_parameter::axis_y_theta() const {
  // @@protoc_insertion_point(field_get:Laser_proto.laser_parameter.axis_y_theta)
  return axis_y_theta_;
}
inline void laser_parameter::set_axis_y_theta(double value) {
  set_has_axis_y_theta();
  axis_y_theta_ = value;
  // @@protoc_insertion_point(field_set:Laser_proto.laser_parameter.axis_y_theta)
}

// optional double axis_z_theta = 18;
inline bool laser_parameter::has_axis_z_theta() const {
  return (_has_bits_[0] & 0x00000080u) != 0;
}
inline void laser_parameter::set_has_axis_z_theta() {
  _has_bits_[0] |= 0x00000080u;
}
inline void laser_parameter::clear_has_axis_z_theta() {
  _has_bits_[0] &= ~0x00000080u;
}
inline void laser_parameter::clear_axis_z_theta() {
  axis_z_theta_ = 0;
  clear_has_axis_z_theta();
}
inline double laser_parameter::axis_z_theta() const {
  // @@protoc_insertion_point(field_get:Laser_proto.laser_parameter.axis_z_theta)
  return axis_z_theta_;
}
inline void laser_parameter::set_axis_z_theta(double value) {
  set_has_axis_z_theta();
  axis_z_theta_ = value;
  // @@protoc_insertion_point(field_set:Laser_proto.laser_parameter.axis_z_theta)
}

// optional double translation_x = 19;
inline bool laser_parameter::has_translation_x() const {
  return (_has_bits_[0] & 0x00000100u) != 0;
}
inline void laser_parameter::set_has_translation_x() {
  _has_bits_[0] |= 0x00000100u;
}
inline void laser_parameter::clear_has_translation_x() {
  _has_bits_[0] &= ~0x00000100u;
}
inline void laser_parameter::clear_translation_x() {
  translation_x_ = 0;
  clear_has_translation_x();
}
inline double laser_parameter::translation_x() const {
  // @@protoc_insertion_point(field_get:Laser_proto.laser_parameter.translation_x)
  return translation_x_;
}
inline void laser_parameter::set_translation_x(double value) {
  set_has_translation_x();
  translation_x_ = value;
  // @@protoc_insertion_point(field_set:Laser_proto.laser_parameter.translation_x)
}

// optional double translation_y = 20;
inline bool laser_parameter::has_translation_y() const {
  return (_has_bits_[0] & 0x00000200u) != 0;
}
inline void laser_parameter::set_has_translation_y() {
  _has_bits_[0] |= 0x00000200u;
}
inline void laser_parameter::clear_has_translation_y() {
  _has_bits_[0] &= ~0x00000200u;
}
inline void laser_parameter::clear_translation_y() {
  translation_y_ = 0;
  clear_has_translation_y();
}
inline double laser_parameter::translation_y() const {
  // @@protoc_insertion_point(field_get:Laser_proto.laser_parameter.translation_y)
  return translation_y_;
}
inline void laser_parameter::set_translation_y(double value) {
  set_has_translation_y();
  translation_y_ = value;
  // @@protoc_insertion_point(field_set:Laser_proto.laser_parameter.translation_y)
}

// optional double translation_z = 21;
inline bool laser_parameter::has_translation_z() const {
  return (_has_bits_[0] & 0x00000400u) != 0;
}
inline void laser_parameter::set_has_translation_z() {
  _has_bits_[0] |= 0x00000400u;
}
inline void laser_parameter::clear_has_translation_z() {
  _has_bits_[0] &= ~0x00000400u;
}
inline void laser_parameter::clear_translation_z() {
  translation_z_ = 0;
  clear_has_translation_z();
}
inline double laser_parameter::translation_z() const {
  // @@protoc_insertion_point(field_get:Laser_proto.laser_parameter.translation_z)
  return translation_z_;
}
inline void laser_parameter::set_translation_z(double value) {
  set_has_translation_z();
  translation_z_ = value;
  // @@protoc_insertion_point(field_set:Laser_proto.laser_parameter.translation_z)
}

// optional double install_angle = 22 [default = 0];
inline bool laser_parameter::has_install_angle() const {
  return (_has_bits_[0] & 0x00000800u) != 0;
}
inline void laser_parameter::set_has_install_angle() {
  _has_bits_[0] |= 0x00000800u;
}
inline void laser_parameter::clear_has_install_angle() {
  _has_bits_[0] &= ~0x00000800u;
}
inline void laser_parameter::clear_install_angle() {
  install_angle_ = 0;
  clear_has_install_angle();
}
inline double laser_parameter::install_angle() const {
  // @@protoc_insertion_point(field_get:Laser_proto.laser_parameter.install_angle)
  return install_angle_;
}
inline void laser_parameter::set_install_angle(double value) {
  set_has_install_angle();
  install_angle_ = value;
  // @@protoc_insertion_point(field_set:Laser_proto.laser_parameter.install_angle)
}

// optional bool scan_direction = 23 [default = true];
inline bool laser_parameter::has_scan_direction() const {
  return (_has_bits_[0] & 0x00002000u) != 0;
}
inline void laser_parameter::set_has_scan_direction() {
  _has_bits_[0] |= 0x00002000u;
}
inline void laser_parameter::clear_has_scan_direction() {
  _has_bits_[0] &= ~0x00002000u;
}
inline void laser_parameter::clear_scan_direction() {
  scan_direction_ = true;
  clear_has_scan_direction();
}
inline bool laser_parameter::scan_direction() const {
  // @@protoc_insertion_point(field_get:Laser_proto.laser_parameter.scan_direction)
  return scan_direction_;
}
inline void laser_parameter::set_scan_direction(bool value) {
  set_has_scan_direction();
  scan_direction_ = value;
  // @@protoc_insertion_point(field_set:Laser_proto.laser_parameter.scan_direction)
}

// optional string sn = 24;
inline bool laser_parameter::has_sn() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void laser_parameter::set_has_sn() {
  _has_bits_[0] |= 0x00000002u;
}
inline void laser_parameter::clear_has_sn() {
  _has_bits_[0] &= ~0x00000002u;
}
inline void laser_parameter::clear_sn() {
  sn_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  clear_has_sn();
}
inline const ::std::string& laser_parameter::sn() const {
  // @@protoc_insertion_point(field_get:Laser_proto.laser_parameter.sn)
  return sn_.GetNoArena();
}
inline void laser_parameter::set_sn(const ::std::string& value) {
  set_has_sn();
  sn_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:Laser_proto.laser_parameter.sn)
}
#if LANG_CXX11
inline void laser_parameter::set_sn(::std::string&& value) {
  set_has_sn();
  sn_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:Laser_proto.laser_parameter.sn)
}
#endif
inline void laser_parameter::set_sn(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  set_has_sn();
  sn_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:Laser_proto.laser_parameter.sn)
}
inline void laser_parameter::set_sn(const char* value, size_t size) {
  set_has_sn();
  sn_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:Laser_proto.laser_parameter.sn)
}
inline ::std::string* laser_parameter::mutable_sn() {
  set_has_sn();
  // @@protoc_insertion_point(field_mutable:Laser_proto.laser_parameter.sn)
  return sn_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline ::std::string* laser_parameter::release_sn() {
  // @@protoc_insertion_point(field_release:Laser_proto.laser_parameter.sn)
  clear_has_sn();
  return sn_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline void laser_parameter::set_allocated_sn(::std::string* sn) {
  if (sn != NULL) {
    set_has_sn();
  } else {
    clear_has_sn();
  }
  sn_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), sn);
  // @@protoc_insertion_point(field_set_allocated:Laser_proto.laser_parameter.sn)
}

// optional int64 frame_num = 25 [default = 3000];
inline bool laser_parameter::has_frame_num() const {
  return (_has_bits_[0] & 0x08000000u) != 0;
}
inline void laser_parameter::set_has_frame_num() {
  _has_bits_[0] |= 0x08000000u;
}
inline void laser_parameter::clear_has_frame_num() {
  _has_bits_[0] &= ~0x08000000u;
}
inline void laser_parameter::clear_frame_num() {
  frame_num_ = GOOGLE_LONGLONG(3000);
  clear_has_frame_num();
}
inline ::google::protobuf::int64 laser_parameter::frame_num() const {
  // @@protoc_insertion_point(field_get:Laser_proto.laser_parameter.frame_num)
  return frame_num_;
}
inline void laser_parameter::set_frame_num(::google::protobuf::int64 value) {
  set_has_frame_num();
  frame_num_ = value;
  // @@protoc_insertion_point(field_set:Laser_proto.laser_parameter.frame_num)
}

// optional string type = 26 [default = ""];
inline bool laser_parameter::has_type() const {
  return (_has_bits_[0] & 0x00000004u) != 0;
}
inline void laser_parameter::set_has_type() {
  _has_bits_[0] |= 0x00000004u;
}
inline void laser_parameter::clear_has_type() {
  _has_bits_[0] &= ~0x00000004u;
}
inline void laser_parameter::clear_type() {
  type_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  clear_has_type();
}
inline const ::std::string& laser_parameter::type() const {
  // @@protoc_insertion_point(field_get:Laser_proto.laser_parameter.type)
  return type_.GetNoArena();
}
inline void laser_parameter::set_type(const ::std::string& value) {
  set_has_type();
  type_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:Laser_proto.laser_parameter.type)
}
#if LANG_CXX11
inline void laser_parameter::set_type(::std::string&& value) {
  set_has_type();
  type_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:Laser_proto.laser_parameter.type)
}
#endif
inline void laser_parameter::set_type(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  set_has_type();
  type_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:Laser_proto.laser_parameter.type)
}
inline void laser_parameter::set_type(const char* value, size_t size) {
  set_has_type();
  type_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:Laser_proto.laser_parameter.type)
}
inline ::std::string* laser_parameter::mutable_type() {
  set_has_type();
  // @@protoc_insertion_point(field_mutable:Laser_proto.laser_parameter.type)
  return type_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline ::std::string* laser_parameter::release_type() {
  // @@protoc_insertion_point(field_release:Laser_proto.laser_parameter.type)
  clear_has_type();
  return type_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline void laser_parameter::set_allocated_type(::std::string* type) {
  if (type != NULL) {
    set_has_type();
  } else {
    clear_has_type();
  }
  type_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), type);
  // @@protoc_insertion_point(field_set_allocated:Laser_proto.laser_parameter.type)
}

// optional bool is_save_banary = 27 [default = false];
inline bool laser_parameter::has_is_save_banary() const {
  return (_has_bits_[0] & 0x00001000u) != 0;
}
inline void laser_parameter::set_has_is_save_banary() {
  _has_bits_[0] |= 0x00001000u;
}
inline void laser_parameter::clear_has_is_save_banary() {
  _has_bits_[0] &= ~0x00001000u;
}
inline void laser_parameter::clear_is_save_banary() {
  is_save_banary_ = false;
  clear_has_is_save_banary();
}
inline bool laser_parameter::is_save_banary() const {
  // @@protoc_insertion_point(field_get:Laser_proto.laser_parameter.is_save_banary)
  return is_save_banary_;
}
inline void laser_parameter::set_is_save_banary(bool value) {
  set_has_is_save_banary();
  is_save_banary_ = value;
  // @@protoc_insertion_point(field_set:Laser_proto.laser_parameter.is_save_banary)
}

// optional bool is_save_txt = 28 [default = true];
inline bool laser_parameter::has_is_save_txt() const {
  return (_has_bits_[0] & 0x00004000u) != 0;
}
inline void laser_parameter::set_has_is_save_txt() {
  _has_bits_[0] |= 0x00004000u;
}
inline void laser_parameter::clear_has_is_save_txt() {
  _has_bits_[0] &= ~0x00004000u;
}
inline void laser_parameter::clear_is_save_txt() {
  is_save_txt_ = true;
  clear_has_is_save_txt();
}
inline bool laser_parameter::is_save_txt() const {
  // @@protoc_insertion_point(field_get:Laser_proto.laser_parameter.is_save_txt)
  return is_save_txt_;
}
inline void laser_parameter::set_is_save_txt(bool value) {
  set_has_is_save_txt();
  is_save_txt_ = value;
  // @@protoc_insertion_point(field_set:Laser_proto.laser_parameter.is_save_txt)
}

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

// Laser_parameter_all

// repeated .Laser_proto.laser_parameter laser_parameters = 1;
inline int Laser_parameter_all::laser_parameters_size() const {
  return laser_parameters_.size();
}
inline void Laser_parameter_all::clear_laser_parameters() {
  laser_parameters_.Clear();
}
inline const ::Laser_proto::laser_parameter& Laser_parameter_all::laser_parameters(int index) const {
  // @@protoc_insertion_point(field_get:Laser_proto.Laser_parameter_all.laser_parameters)
  return laser_parameters_.Get(index);
}
inline ::Laser_proto::laser_parameter* Laser_parameter_all::mutable_laser_parameters(int index) {
  // @@protoc_insertion_point(field_mutable:Laser_proto.Laser_parameter_all.laser_parameters)
  return laser_parameters_.Mutable(index);
}
inline ::Laser_proto::laser_parameter* Laser_parameter_all::add_laser_parameters() {
  // @@protoc_insertion_point(field_add:Laser_proto.Laser_parameter_all.laser_parameters)
  return laser_parameters_.Add();
}
inline ::google::protobuf::RepeatedPtrField< ::Laser_proto::laser_parameter >*
Laser_parameter_all::mutable_laser_parameters() {
  // @@protoc_insertion_point(field_mutable_list:Laser_proto.Laser_parameter_all.laser_parameters)
  return &laser_parameters_;
}
inline const ::google::protobuf::RepeatedPtrField< ::Laser_proto::laser_parameter >&
Laser_parameter_all::laser_parameters() const {
  // @@protoc_insertion_point(field_list:Laser_proto.Laser_parameter_all.laser_parameters)
  return laser_parameters_;
}

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


// @@protoc_insertion_point(namespace_scope)

}  // namespace Laser_proto

// @@protoc_insertion_point(global_scope)

#endif  // PROTOBUF_laser_5fparameter_2eproto__INCLUDED
