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

#ifndef GOOGLE_PROTOBUF_INCLUDED_osi_5fsensorviewconfiguration_2eproto
#define GOOGLE_PROTOBUF_INCLUDED_osi_5fsensorviewconfiguration_2eproto

#include <limits>
#include <string>

#include <google/protobuf/port_def.inc>
#if PROTOBUF_VERSION < 3015000
#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 3015002 < PROTOBUF_MIN_PROTOC_VERSION
#error This file was generated by an older version of protoc which is
#error incompatible with your Protocol Buffer headers. Please
#error regenerate this file with a newer version of protoc.
#endif

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

// Internal implementation detail -- do not use these members.
struct TableStruct_osi_5fsensorviewconfiguration_2eproto {
  static const ::PROTOBUF_NAMESPACE_ID::internal::ParseTableField entries[]
    PROTOBUF_SECTION_VARIABLE(protodesc_cold);
  static const ::PROTOBUF_NAMESPACE_ID::internal::AuxiliaryParseTableField aux[]
    PROTOBUF_SECTION_VARIABLE(protodesc_cold);
  static const ::PROTOBUF_NAMESPACE_ID::internal::ParseTable schema[7]
    PROTOBUF_SECTION_VARIABLE(protodesc_cold);
  static const ::PROTOBUF_NAMESPACE_ID::internal::FieldMetadata field_metadata[];
  static const ::PROTOBUF_NAMESPACE_ID::internal::SerializationTable serialization_table[];
  static const ::PROTOBUF_NAMESPACE_ID::uint32 offsets[];
};
extern const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable descriptor_table_osi_5fsensorviewconfiguration_2eproto;
::PROTOBUF_NAMESPACE_ID::Metadata descriptor_table_osi_5fsensorviewconfiguration_2eproto_metadata_getter(int index);
namespace osi3 {
class CameraSensorViewConfiguration;
struct CameraSensorViewConfigurationDefaultTypeInternal;
extern CameraSensorViewConfigurationDefaultTypeInternal _CameraSensorViewConfiguration_default_instance_;
class GenericSensorViewConfiguration;
struct GenericSensorViewConfigurationDefaultTypeInternal;
extern GenericSensorViewConfigurationDefaultTypeInternal _GenericSensorViewConfiguration_default_instance_;
class LidarSensorViewConfiguration;
struct LidarSensorViewConfigurationDefaultTypeInternal;
extern LidarSensorViewConfigurationDefaultTypeInternal _LidarSensorViewConfiguration_default_instance_;
class RadarSensorViewConfiguration;
struct RadarSensorViewConfigurationDefaultTypeInternal;
extern RadarSensorViewConfigurationDefaultTypeInternal _RadarSensorViewConfiguration_default_instance_;
class RadarSensorViewConfiguration_AntennaDiagramEntry;
struct RadarSensorViewConfiguration_AntennaDiagramEntryDefaultTypeInternal;
extern RadarSensorViewConfiguration_AntennaDiagramEntryDefaultTypeInternal _RadarSensorViewConfiguration_AntennaDiagramEntry_default_instance_;
class SensorViewConfiguration;
struct SensorViewConfigurationDefaultTypeInternal;
extern SensorViewConfigurationDefaultTypeInternal _SensorViewConfiguration_default_instance_;
class UltrasonicSensorViewConfiguration;
struct UltrasonicSensorViewConfigurationDefaultTypeInternal;
extern UltrasonicSensorViewConfigurationDefaultTypeInternal _UltrasonicSensorViewConfiguration_default_instance_;
}  // namespace osi3
PROTOBUF_NAMESPACE_OPEN
template<> ::osi3::CameraSensorViewConfiguration* Arena::CreateMaybeMessage<::osi3::CameraSensorViewConfiguration>(Arena*);
template<> ::osi3::GenericSensorViewConfiguration* Arena::CreateMaybeMessage<::osi3::GenericSensorViewConfiguration>(Arena*);
template<> ::osi3::LidarSensorViewConfiguration* Arena::CreateMaybeMessage<::osi3::LidarSensorViewConfiguration>(Arena*);
template<> ::osi3::RadarSensorViewConfiguration* Arena::CreateMaybeMessage<::osi3::RadarSensorViewConfiguration>(Arena*);
template<> ::osi3::RadarSensorViewConfiguration_AntennaDiagramEntry* Arena::CreateMaybeMessage<::osi3::RadarSensorViewConfiguration_AntennaDiagramEntry>(Arena*);
template<> ::osi3::SensorViewConfiguration* Arena::CreateMaybeMessage<::osi3::SensorViewConfiguration>(Arena*);
template<> ::osi3::UltrasonicSensorViewConfiguration* Arena::CreateMaybeMessage<::osi3::UltrasonicSensorViewConfiguration>(Arena*);
PROTOBUF_NAMESPACE_CLOSE
namespace osi3 {

enum CameraSensorViewConfiguration_ChannelFormat : int {
  CameraSensorViewConfiguration_ChannelFormat_CHANNEL_FORMAT_UNKNOWN = 0,
  CameraSensorViewConfiguration_ChannelFormat_CHANNEL_FORMAT_OTHER = 1,
  CameraSensorViewConfiguration_ChannelFormat_CHANNEL_FORMAT_MONO_U8_LIN = 2,
  CameraSensorViewConfiguration_ChannelFormat_CHANNEL_FORMAT_MONO_U16_LIN = 3,
  CameraSensorViewConfiguration_ChannelFormat_CHANNEL_FORMAT_MONO_U32_LIN = 4,
  CameraSensorViewConfiguration_ChannelFormat_CHANNEL_FORMAT_MONO_F32_LIN = 5,
  CameraSensorViewConfiguration_ChannelFormat_CHANNEL_FORMAT_RGB_U8_LIN = 6,
  CameraSensorViewConfiguration_ChannelFormat_CHANNEL_FORMAT_RGB_U16_LIN = 7,
  CameraSensorViewConfiguration_ChannelFormat_CHANNEL_FORMAT_RGB_U32_LIN = 8,
  CameraSensorViewConfiguration_ChannelFormat_CHANNEL_FORMAT_RGB_F32_LIN = 9,
  CameraSensorViewConfiguration_ChannelFormat_CHANNEL_FORMAT_BAYER_BGGR_U8_LIN = 10,
  CameraSensorViewConfiguration_ChannelFormat_CHANNEL_FORMAT_BAYER_BGGR_U16_LIN = 11,
  CameraSensorViewConfiguration_ChannelFormat_CHANNEL_FORMAT_BAYER_BGGR_U32_LIN = 12,
  CameraSensorViewConfiguration_ChannelFormat_CHANNEL_FORMAT_BAYER_BGGR_F32_LIN = 13,
  CameraSensorViewConfiguration_ChannelFormat_CHANNEL_FORMAT_BAYER_RGGB_U8_LIN = 14,
  CameraSensorViewConfiguration_ChannelFormat_CHANNEL_FORMAT_BAYER_RGGB_U16_LIN = 15,
  CameraSensorViewConfiguration_ChannelFormat_CHANNEL_FORMAT_BAYER_RGGB_U32_LIN = 16,
  CameraSensorViewConfiguration_ChannelFormat_CHANNEL_FORMAT_BAYER_RGGB_F32_LIN = 17,
  CameraSensorViewConfiguration_ChannelFormat_CHANNEL_FORMAT_RCCC_U8_LIN = 18,
  CameraSensorViewConfiguration_ChannelFormat_CHANNEL_FORMAT_RCCC_U16_LIN = 19,
  CameraSensorViewConfiguration_ChannelFormat_CHANNEL_FORMAT_RCCC_U32_LIN = 20,
  CameraSensorViewConfiguration_ChannelFormat_CHANNEL_FORMAT_RCCC_F32_LIN = 21,
  CameraSensorViewConfiguration_ChannelFormat_CHANNEL_FORMAT_RCCB_U8_LIN = 22,
  CameraSensorViewConfiguration_ChannelFormat_CHANNEL_FORMAT_RCCB_U16_LIN = 23,
  CameraSensorViewConfiguration_ChannelFormat_CHANNEL_FORMAT_RCCB_U32_LIN = 24,
  CameraSensorViewConfiguration_ChannelFormat_CHANNEL_FORMAT_RCCB_F32_LIN = 25,
  CameraSensorViewConfiguration_ChannelFormat_CameraSensorViewConfiguration_ChannelFormat_INT_MIN_SENTINEL_DO_NOT_USE_ = std::numeric_limits<::PROTOBUF_NAMESPACE_ID::int32>::min(),
  CameraSensorViewConfiguration_ChannelFormat_CameraSensorViewConfiguration_ChannelFormat_INT_MAX_SENTINEL_DO_NOT_USE_ = std::numeric_limits<::PROTOBUF_NAMESPACE_ID::int32>::max()
};
bool CameraSensorViewConfiguration_ChannelFormat_IsValid(int value);
constexpr CameraSensorViewConfiguration_ChannelFormat CameraSensorViewConfiguration_ChannelFormat_ChannelFormat_MIN = CameraSensorViewConfiguration_ChannelFormat_CHANNEL_FORMAT_UNKNOWN;
constexpr CameraSensorViewConfiguration_ChannelFormat CameraSensorViewConfiguration_ChannelFormat_ChannelFormat_MAX = CameraSensorViewConfiguration_ChannelFormat_CHANNEL_FORMAT_RCCB_F32_LIN;
constexpr int CameraSensorViewConfiguration_ChannelFormat_ChannelFormat_ARRAYSIZE = CameraSensorViewConfiguration_ChannelFormat_ChannelFormat_MAX + 1;

const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* CameraSensorViewConfiguration_ChannelFormat_descriptor();
template<typename T>
inline const std::string& CameraSensorViewConfiguration_ChannelFormat_Name(T enum_t_value) {
  static_assert(::std::is_same<T, CameraSensorViewConfiguration_ChannelFormat>::value ||
    ::std::is_integral<T>::value,
    "Incorrect type passed to function CameraSensorViewConfiguration_ChannelFormat_Name.");
  return ::PROTOBUF_NAMESPACE_ID::internal::NameOfEnum(
    CameraSensorViewConfiguration_ChannelFormat_descriptor(), enum_t_value);
}
inline bool CameraSensorViewConfiguration_ChannelFormat_Parse(
    ::PROTOBUF_NAMESPACE_ID::ConstStringParam name, CameraSensorViewConfiguration_ChannelFormat* value) {
  return ::PROTOBUF_NAMESPACE_ID::internal::ParseNamedEnum<CameraSensorViewConfiguration_ChannelFormat>(
    CameraSensorViewConfiguration_ChannelFormat_descriptor(), name, value);
}
// ===================================================================

class SensorViewConfiguration PROTOBUF_FINAL :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:osi3.SensorViewConfiguration) */ {
 public:
  inline SensorViewConfiguration() : SensorViewConfiguration(nullptr) {}
  virtual ~SensorViewConfiguration();
  explicit constexpr SensorViewConfiguration(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);

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

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

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return GetMetadataStatic().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return GetMetadataStatic().reflection;
  }
  static const SensorViewConfiguration& default_instance() {
    return *internal_default_instance();
  }
  static inline const SensorViewConfiguration* internal_default_instance() {
    return reinterpret_cast<const SensorViewConfiguration*>(
               &_SensorViewConfiguration_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    0;

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

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

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

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

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize(
      ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  inline void SharedCtor();
  inline void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(SensorViewConfiguration* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "osi3.SensorViewConfiguration";
  }
  protected:
  explicit SensorViewConfiguration(::PROTOBUF_NAMESPACE_ID::Arena* arena);
  private:
  static void ArenaDtor(void* object);
  inline void RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena* arena);
  public:

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
  private:
  static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() {
    return ::descriptor_table_osi_5fsensorviewconfiguration_2eproto_metadata_getter(kIndexInFileMessages);
  }

  public:

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

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

  enum : int {
    kGenericSensorViewConfigurationFieldNumber = 1000,
    kRadarSensorViewConfigurationFieldNumber = 1001,
    kLidarSensorViewConfigurationFieldNumber = 1002,
    kCameraSensorViewConfigurationFieldNumber = 1003,
    kUltrasonicSensorViewConfigurationFieldNumber = 1004,
    kVersionFieldNumber = 1,
    kSensorIdFieldNumber = 2,
    kMountingPositionFieldNumber = 3,
    kMountingPositionRmseFieldNumber = 4,
    kUpdateCycleTimeFieldNumber = 8,
    kUpdateCycleOffsetFieldNumber = 9,
    kSimulationStartTimeFieldNumber = 10,
    kFieldOfViewHorizontalFieldNumber = 5,
    kFieldOfViewVerticalFieldNumber = 6,
    kRangeFieldNumber = 7,
  };
  // repeated .osi3.GenericSensorViewConfiguration generic_sensor_view_configuration = 1000;
  int generic_sensor_view_configuration_size() const;
  private:
  int _internal_generic_sensor_view_configuration_size() const;
  public:
  void clear_generic_sensor_view_configuration();
  ::osi3::GenericSensorViewConfiguration* mutable_generic_sensor_view_configuration(int index);
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::osi3::GenericSensorViewConfiguration >*
      mutable_generic_sensor_view_configuration();
  private:
  const ::osi3::GenericSensorViewConfiguration& _internal_generic_sensor_view_configuration(int index) const;
  ::osi3::GenericSensorViewConfiguration* _internal_add_generic_sensor_view_configuration();
  public:
  const ::osi3::GenericSensorViewConfiguration& generic_sensor_view_configuration(int index) const;
  ::osi3::GenericSensorViewConfiguration* add_generic_sensor_view_configuration();
  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::osi3::GenericSensorViewConfiguration >&
      generic_sensor_view_configuration() const;

  // repeated .osi3.RadarSensorViewConfiguration radar_sensor_view_configuration = 1001;
  int radar_sensor_view_configuration_size() const;
  private:
  int _internal_radar_sensor_view_configuration_size() const;
  public:
  void clear_radar_sensor_view_configuration();
  ::osi3::RadarSensorViewConfiguration* mutable_radar_sensor_view_configuration(int index);
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::osi3::RadarSensorViewConfiguration >*
      mutable_radar_sensor_view_configuration();
  private:
  const ::osi3::RadarSensorViewConfiguration& _internal_radar_sensor_view_configuration(int index) const;
  ::osi3::RadarSensorViewConfiguration* _internal_add_radar_sensor_view_configuration();
  public:
  const ::osi3::RadarSensorViewConfiguration& radar_sensor_view_configuration(int index) const;
  ::osi3::RadarSensorViewConfiguration* add_radar_sensor_view_configuration();
  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::osi3::RadarSensorViewConfiguration >&
      radar_sensor_view_configuration() const;

  // repeated .osi3.LidarSensorViewConfiguration lidar_sensor_view_configuration = 1002;
  int lidar_sensor_view_configuration_size() const;
  private:
  int _internal_lidar_sensor_view_configuration_size() const;
  public:
  void clear_lidar_sensor_view_configuration();
  ::osi3::LidarSensorViewConfiguration* mutable_lidar_sensor_view_configuration(int index);
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::osi3::LidarSensorViewConfiguration >*
      mutable_lidar_sensor_view_configuration();
  private:
  const ::osi3::LidarSensorViewConfiguration& _internal_lidar_sensor_view_configuration(int index) const;
  ::osi3::LidarSensorViewConfiguration* _internal_add_lidar_sensor_view_configuration();
  public:
  const ::osi3::LidarSensorViewConfiguration& lidar_sensor_view_configuration(int index) const;
  ::osi3::LidarSensorViewConfiguration* add_lidar_sensor_view_configuration();
  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::osi3::LidarSensorViewConfiguration >&
      lidar_sensor_view_configuration() const;

  // repeated .osi3.CameraSensorViewConfiguration camera_sensor_view_configuration = 1003;
  int camera_sensor_view_configuration_size() const;
  private:
  int _internal_camera_sensor_view_configuration_size() const;
  public:
  void clear_camera_sensor_view_configuration();
  ::osi3::CameraSensorViewConfiguration* mutable_camera_sensor_view_configuration(int index);
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::osi3::CameraSensorViewConfiguration >*
      mutable_camera_sensor_view_configuration();
  private:
  const ::osi3::CameraSensorViewConfiguration& _internal_camera_sensor_view_configuration(int index) const;
  ::osi3::CameraSensorViewConfiguration* _internal_add_camera_sensor_view_configuration();
  public:
  const ::osi3::CameraSensorViewConfiguration& camera_sensor_view_configuration(int index) const;
  ::osi3::CameraSensorViewConfiguration* add_camera_sensor_view_configuration();
  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::osi3::CameraSensorViewConfiguration >&
      camera_sensor_view_configuration() const;

  // repeated .osi3.UltrasonicSensorViewConfiguration ultrasonic_sensor_view_configuration = 1004;
  int ultrasonic_sensor_view_configuration_size() const;
  private:
  int _internal_ultrasonic_sensor_view_configuration_size() const;
  public:
  void clear_ultrasonic_sensor_view_configuration();
  ::osi3::UltrasonicSensorViewConfiguration* mutable_ultrasonic_sensor_view_configuration(int index);
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::osi3::UltrasonicSensorViewConfiguration >*
      mutable_ultrasonic_sensor_view_configuration();
  private:
  const ::osi3::UltrasonicSensorViewConfiguration& _internal_ultrasonic_sensor_view_configuration(int index) const;
  ::osi3::UltrasonicSensorViewConfiguration* _internal_add_ultrasonic_sensor_view_configuration();
  public:
  const ::osi3::UltrasonicSensorViewConfiguration& ultrasonic_sensor_view_configuration(int index) const;
  ::osi3::UltrasonicSensorViewConfiguration* add_ultrasonic_sensor_view_configuration();
  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::osi3::UltrasonicSensorViewConfiguration >&
      ultrasonic_sensor_view_configuration() const;

  // .osi3.InterfaceVersion version = 1;
  bool has_version() const;
  private:
  bool _internal_has_version() const;
  public:
  void clear_version();
  const ::osi3::InterfaceVersion& version() const;
  ::osi3::InterfaceVersion* release_version();
  ::osi3::InterfaceVersion* mutable_version();
  void set_allocated_version(::osi3::InterfaceVersion* version);
  private:
  const ::osi3::InterfaceVersion& _internal_version() const;
  ::osi3::InterfaceVersion* _internal_mutable_version();
  public:
  void unsafe_arena_set_allocated_version(
      ::osi3::InterfaceVersion* version);
  ::osi3::InterfaceVersion* unsafe_arena_release_version();

  // .osi3.Identifier sensor_id = 2;
  bool has_sensor_id() const;
  private:
  bool _internal_has_sensor_id() const;
  public:
  void clear_sensor_id();
  const ::osi3::Identifier& sensor_id() const;
  ::osi3::Identifier* release_sensor_id();
  ::osi3::Identifier* mutable_sensor_id();
  void set_allocated_sensor_id(::osi3::Identifier* sensor_id);
  private:
  const ::osi3::Identifier& _internal_sensor_id() const;
  ::osi3::Identifier* _internal_mutable_sensor_id();
  public:
  void unsafe_arena_set_allocated_sensor_id(
      ::osi3::Identifier* sensor_id);
  ::osi3::Identifier* unsafe_arena_release_sensor_id();

  // .osi3.MountingPosition mounting_position = 3;
  bool has_mounting_position() const;
  private:
  bool _internal_has_mounting_position() const;
  public:
  void clear_mounting_position();
  const ::osi3::MountingPosition& mounting_position() const;
  ::osi3::MountingPosition* release_mounting_position();
  ::osi3::MountingPosition* mutable_mounting_position();
  void set_allocated_mounting_position(::osi3::MountingPosition* mounting_position);
  private:
  const ::osi3::MountingPosition& _internal_mounting_position() const;
  ::osi3::MountingPosition* _internal_mutable_mounting_position();
  public:
  void unsafe_arena_set_allocated_mounting_position(
      ::osi3::MountingPosition* mounting_position);
  ::osi3::MountingPosition* unsafe_arena_release_mounting_position();

  // .osi3.MountingPosition mounting_position_rmse = 4;
  bool has_mounting_position_rmse() const;
  private:
  bool _internal_has_mounting_position_rmse() const;
  public:
  void clear_mounting_position_rmse();
  const ::osi3::MountingPosition& mounting_position_rmse() const;
  ::osi3::MountingPosition* release_mounting_position_rmse();
  ::osi3::MountingPosition* mutable_mounting_position_rmse();
  void set_allocated_mounting_position_rmse(::osi3::MountingPosition* mounting_position_rmse);
  private:
  const ::osi3::MountingPosition& _internal_mounting_position_rmse() const;
  ::osi3::MountingPosition* _internal_mutable_mounting_position_rmse();
  public:
  void unsafe_arena_set_allocated_mounting_position_rmse(
      ::osi3::MountingPosition* mounting_position_rmse);
  ::osi3::MountingPosition* unsafe_arena_release_mounting_position_rmse();

  // .osi3.Timestamp update_cycle_time = 8;
  bool has_update_cycle_time() const;
  private:
  bool _internal_has_update_cycle_time() const;
  public:
  void clear_update_cycle_time();
  const ::osi3::Timestamp& update_cycle_time() const;
  ::osi3::Timestamp* release_update_cycle_time();
  ::osi3::Timestamp* mutable_update_cycle_time();
  void set_allocated_update_cycle_time(::osi3::Timestamp* update_cycle_time);
  private:
  const ::osi3::Timestamp& _internal_update_cycle_time() const;
  ::osi3::Timestamp* _internal_mutable_update_cycle_time();
  public:
  void unsafe_arena_set_allocated_update_cycle_time(
      ::osi3::Timestamp* update_cycle_time);
  ::osi3::Timestamp* unsafe_arena_release_update_cycle_time();

  // .osi3.Timestamp update_cycle_offset = 9;
  bool has_update_cycle_offset() const;
  private:
  bool _internal_has_update_cycle_offset() const;
  public:
  void clear_update_cycle_offset();
  const ::osi3::Timestamp& update_cycle_offset() const;
  ::osi3::Timestamp* release_update_cycle_offset();
  ::osi3::Timestamp* mutable_update_cycle_offset();
  void set_allocated_update_cycle_offset(::osi3::Timestamp* update_cycle_offset);
  private:
  const ::osi3::Timestamp& _internal_update_cycle_offset() const;
  ::osi3::Timestamp* _internal_mutable_update_cycle_offset();
  public:
  void unsafe_arena_set_allocated_update_cycle_offset(
      ::osi3::Timestamp* update_cycle_offset);
  ::osi3::Timestamp* unsafe_arena_release_update_cycle_offset();

  // .osi3.Timestamp simulation_start_time = 10;
  bool has_simulation_start_time() const;
  private:
  bool _internal_has_simulation_start_time() const;
  public:
  void clear_simulation_start_time();
  const ::osi3::Timestamp& simulation_start_time() const;
  ::osi3::Timestamp* release_simulation_start_time();
  ::osi3::Timestamp* mutable_simulation_start_time();
  void set_allocated_simulation_start_time(::osi3::Timestamp* simulation_start_time);
  private:
  const ::osi3::Timestamp& _internal_simulation_start_time() const;
  ::osi3::Timestamp* _internal_mutable_simulation_start_time();
  public:
  void unsafe_arena_set_allocated_simulation_start_time(
      ::osi3::Timestamp* simulation_start_time);
  ::osi3::Timestamp* unsafe_arena_release_simulation_start_time();

  // double field_of_view_horizontal = 5;
  void clear_field_of_view_horizontal();
  double field_of_view_horizontal() const;
  void set_field_of_view_horizontal(double value);
  private:
  double _internal_field_of_view_horizontal() const;
  void _internal_set_field_of_view_horizontal(double value);
  public:

  // double field_of_view_vertical = 6;
  void clear_field_of_view_vertical();
  double field_of_view_vertical() const;
  void set_field_of_view_vertical(double value);
  private:
  double _internal_field_of_view_vertical() const;
  void _internal_set_field_of_view_vertical(double value);
  public:

  // double range = 7;
  void clear_range();
  double range() const;
  void set_range(double value);
  private:
  double _internal_range() const;
  void _internal_set_range(double value);
  public:

  // @@protoc_insertion_point(class_scope:osi3.SensorViewConfiguration)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::osi3::GenericSensorViewConfiguration > generic_sensor_view_configuration_;
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::osi3::RadarSensorViewConfiguration > radar_sensor_view_configuration_;
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::osi3::LidarSensorViewConfiguration > lidar_sensor_view_configuration_;
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::osi3::CameraSensorViewConfiguration > camera_sensor_view_configuration_;
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::osi3::UltrasonicSensorViewConfiguration > ultrasonic_sensor_view_configuration_;
  ::osi3::InterfaceVersion* version_;
  ::osi3::Identifier* sensor_id_;
  ::osi3::MountingPosition* mounting_position_;
  ::osi3::MountingPosition* mounting_position_rmse_;
  ::osi3::Timestamp* update_cycle_time_;
  ::osi3::Timestamp* update_cycle_offset_;
  ::osi3::Timestamp* simulation_start_time_;
  double field_of_view_horizontal_;
  double field_of_view_vertical_;
  double range_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_osi_5fsensorviewconfiguration_2eproto;
};
// -------------------------------------------------------------------

class GenericSensorViewConfiguration PROTOBUF_FINAL :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:osi3.GenericSensorViewConfiguration) */ {
 public:
  inline GenericSensorViewConfiguration() : GenericSensorViewConfiguration(nullptr) {}
  virtual ~GenericSensorViewConfiguration();
  explicit constexpr GenericSensorViewConfiguration(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);

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

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

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return GetMetadataStatic().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return GetMetadataStatic().reflection;
  }
  static const GenericSensorViewConfiguration& default_instance() {
    return *internal_default_instance();
  }
  static inline const GenericSensorViewConfiguration* internal_default_instance() {
    return reinterpret_cast<const GenericSensorViewConfiguration*>(
               &_GenericSensorViewConfiguration_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    1;

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

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

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

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

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize(
      ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  inline void SharedCtor();
  inline void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(GenericSensorViewConfiguration* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "osi3.GenericSensorViewConfiguration";
  }
  protected:
  explicit GenericSensorViewConfiguration(::PROTOBUF_NAMESPACE_ID::Arena* arena);
  private:
  static void ArenaDtor(void* object);
  inline void RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena* arena);
  public:

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
  private:
  static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() {
    return ::descriptor_table_osi_5fsensorviewconfiguration_2eproto_metadata_getter(kIndexInFileMessages);
  }

  public:

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

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

  enum : int {
    kSensorIdFieldNumber = 1,
    kMountingPositionFieldNumber = 2,
    kMountingPositionRmseFieldNumber = 3,
    kFieldOfViewHorizontalFieldNumber = 4,
    kFieldOfViewVerticalFieldNumber = 5,
  };
  // .osi3.Identifier sensor_id = 1;
  bool has_sensor_id() const;
  private:
  bool _internal_has_sensor_id() const;
  public:
  void clear_sensor_id();
  const ::osi3::Identifier& sensor_id() const;
  ::osi3::Identifier* release_sensor_id();
  ::osi3::Identifier* mutable_sensor_id();
  void set_allocated_sensor_id(::osi3::Identifier* sensor_id);
  private:
  const ::osi3::Identifier& _internal_sensor_id() const;
  ::osi3::Identifier* _internal_mutable_sensor_id();
  public:
  void unsafe_arena_set_allocated_sensor_id(
      ::osi3::Identifier* sensor_id);
  ::osi3::Identifier* unsafe_arena_release_sensor_id();

  // .osi3.MountingPosition mounting_position = 2;
  bool has_mounting_position() const;
  private:
  bool _internal_has_mounting_position() const;
  public:
  void clear_mounting_position();
  const ::osi3::MountingPosition& mounting_position() const;
  ::osi3::MountingPosition* release_mounting_position();
  ::osi3::MountingPosition* mutable_mounting_position();
  void set_allocated_mounting_position(::osi3::MountingPosition* mounting_position);
  private:
  const ::osi3::MountingPosition& _internal_mounting_position() const;
  ::osi3::MountingPosition* _internal_mutable_mounting_position();
  public:
  void unsafe_arena_set_allocated_mounting_position(
      ::osi3::MountingPosition* mounting_position);
  ::osi3::MountingPosition* unsafe_arena_release_mounting_position();

  // .osi3.MountingPosition mounting_position_rmse = 3;
  bool has_mounting_position_rmse() const;
  private:
  bool _internal_has_mounting_position_rmse() const;
  public:
  void clear_mounting_position_rmse();
  const ::osi3::MountingPosition& mounting_position_rmse() const;
  ::osi3::MountingPosition* release_mounting_position_rmse();
  ::osi3::MountingPosition* mutable_mounting_position_rmse();
  void set_allocated_mounting_position_rmse(::osi3::MountingPosition* mounting_position_rmse);
  private:
  const ::osi3::MountingPosition& _internal_mounting_position_rmse() const;
  ::osi3::MountingPosition* _internal_mutable_mounting_position_rmse();
  public:
  void unsafe_arena_set_allocated_mounting_position_rmse(
      ::osi3::MountingPosition* mounting_position_rmse);
  ::osi3::MountingPosition* unsafe_arena_release_mounting_position_rmse();

  // double field_of_view_horizontal = 4;
  void clear_field_of_view_horizontal();
  double field_of_view_horizontal() const;
  void set_field_of_view_horizontal(double value);
  private:
  double _internal_field_of_view_horizontal() const;
  void _internal_set_field_of_view_horizontal(double value);
  public:

  // double field_of_view_vertical = 5;
  void clear_field_of_view_vertical();
  double field_of_view_vertical() const;
  void set_field_of_view_vertical(double value);
  private:
  double _internal_field_of_view_vertical() const;
  void _internal_set_field_of_view_vertical(double value);
  public:

  // @@protoc_insertion_point(class_scope:osi3.GenericSensorViewConfiguration)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::osi3::Identifier* sensor_id_;
  ::osi3::MountingPosition* mounting_position_;
  ::osi3::MountingPosition* mounting_position_rmse_;
  double field_of_view_horizontal_;
  double field_of_view_vertical_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_osi_5fsensorviewconfiguration_2eproto;
};
// -------------------------------------------------------------------

class RadarSensorViewConfiguration_AntennaDiagramEntry PROTOBUF_FINAL :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:osi3.RadarSensorViewConfiguration.AntennaDiagramEntry) */ {
 public:
  inline RadarSensorViewConfiguration_AntennaDiagramEntry() : RadarSensorViewConfiguration_AntennaDiagramEntry(nullptr) {}
  virtual ~RadarSensorViewConfiguration_AntennaDiagramEntry();
  explicit constexpr RadarSensorViewConfiguration_AntennaDiagramEntry(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);

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

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

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return GetMetadataStatic().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return GetMetadataStatic().reflection;
  }
  static const RadarSensorViewConfiguration_AntennaDiagramEntry& default_instance() {
    return *internal_default_instance();
  }
  static inline const RadarSensorViewConfiguration_AntennaDiagramEntry* internal_default_instance() {
    return reinterpret_cast<const RadarSensorViewConfiguration_AntennaDiagramEntry*>(
               &_RadarSensorViewConfiguration_AntennaDiagramEntry_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    2;

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

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

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

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

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize(
      ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  inline void SharedCtor();
  inline void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(RadarSensorViewConfiguration_AntennaDiagramEntry* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "osi3.RadarSensorViewConfiguration.AntennaDiagramEntry";
  }
  protected:
  explicit RadarSensorViewConfiguration_AntennaDiagramEntry(::PROTOBUF_NAMESPACE_ID::Arena* arena);
  private:
  static void ArenaDtor(void* object);
  inline void RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena* arena);
  public:

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
  private:
  static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() {
    return ::descriptor_table_osi_5fsensorviewconfiguration_2eproto_metadata_getter(kIndexInFileMessages);
  }

  public:

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

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

  enum : int {
    kHorizontalAngleFieldNumber = 1,
    kVerticalAngleFieldNumber = 2,
    kResponseFieldNumber = 3,
  };
  // double horizontal_angle = 1;
  void clear_horizontal_angle();
  double horizontal_angle() const;
  void set_horizontal_angle(double value);
  private:
  double _internal_horizontal_angle() const;
  void _internal_set_horizontal_angle(double value);
  public:

  // double vertical_angle = 2;
  void clear_vertical_angle();
  double vertical_angle() const;
  void set_vertical_angle(double value);
  private:
  double _internal_vertical_angle() const;
  void _internal_set_vertical_angle(double value);
  public:

  // double response = 3;
  void clear_response();
  double response() const;
  void set_response(double value);
  private:
  double _internal_response() const;
  void _internal_set_response(double value);
  public:

  // @@protoc_insertion_point(class_scope:osi3.RadarSensorViewConfiguration.AntennaDiagramEntry)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  double horizontal_angle_;
  double vertical_angle_;
  double response_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_osi_5fsensorviewconfiguration_2eproto;
};
// -------------------------------------------------------------------

class RadarSensorViewConfiguration PROTOBUF_FINAL :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:osi3.RadarSensorViewConfiguration) */ {
 public:
  inline RadarSensorViewConfiguration() : RadarSensorViewConfiguration(nullptr) {}
  virtual ~RadarSensorViewConfiguration();
  explicit constexpr RadarSensorViewConfiguration(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);

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

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

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return GetMetadataStatic().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return GetMetadataStatic().reflection;
  }
  static const RadarSensorViewConfiguration& default_instance() {
    return *internal_default_instance();
  }
  static inline const RadarSensorViewConfiguration* internal_default_instance() {
    return reinterpret_cast<const RadarSensorViewConfiguration*>(
               &_RadarSensorViewConfiguration_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    3;

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

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

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

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

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize(
      ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  inline void SharedCtor();
  inline void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(RadarSensorViewConfiguration* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "osi3.RadarSensorViewConfiguration";
  }
  protected:
  explicit RadarSensorViewConfiguration(::PROTOBUF_NAMESPACE_ID::Arena* arena);
  private:
  static void ArenaDtor(void* object);
  inline void RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena* arena);
  public:

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
  private:
  static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() {
    return ::descriptor_table_osi_5fsensorviewconfiguration_2eproto_metadata_getter(kIndexInFileMessages);
  }

  public:

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

  typedef RadarSensorViewConfiguration_AntennaDiagramEntry AntennaDiagramEntry;

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

  enum : int {
    kTxAntennaDiagramFieldNumber = 10,
    kRxAntennaDiagramFieldNumber = 11,
    kSensorIdFieldNumber = 1,
    kMountingPositionFieldNumber = 2,
    kMountingPositionRmseFieldNumber = 3,
    kFieldOfViewHorizontalFieldNumber = 4,
    kFieldOfViewVerticalFieldNumber = 5,
    kNumberOfRaysHorizontalFieldNumber = 6,
    kNumberOfRaysVerticalFieldNumber = 7,
    kEmitterFrequencyFieldNumber = 9,
    kMaxNumberOfInteractionsFieldNumber = 8,
  };
  // repeated .osi3.RadarSensorViewConfiguration.AntennaDiagramEntry tx_antenna_diagram = 10;
  int tx_antenna_diagram_size() const;
  private:
  int _internal_tx_antenna_diagram_size() const;
  public:
  void clear_tx_antenna_diagram();
  ::osi3::RadarSensorViewConfiguration_AntennaDiagramEntry* mutable_tx_antenna_diagram(int index);
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::osi3::RadarSensorViewConfiguration_AntennaDiagramEntry >*
      mutable_tx_antenna_diagram();
  private:
  const ::osi3::RadarSensorViewConfiguration_AntennaDiagramEntry& _internal_tx_antenna_diagram(int index) const;
  ::osi3::RadarSensorViewConfiguration_AntennaDiagramEntry* _internal_add_tx_antenna_diagram();
  public:
  const ::osi3::RadarSensorViewConfiguration_AntennaDiagramEntry& tx_antenna_diagram(int index) const;
  ::osi3::RadarSensorViewConfiguration_AntennaDiagramEntry* add_tx_antenna_diagram();
  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::osi3::RadarSensorViewConfiguration_AntennaDiagramEntry >&
      tx_antenna_diagram() const;

  // repeated .osi3.RadarSensorViewConfiguration.AntennaDiagramEntry rx_antenna_diagram = 11;
  int rx_antenna_diagram_size() const;
  private:
  int _internal_rx_antenna_diagram_size() const;
  public:
  void clear_rx_antenna_diagram();
  ::osi3::RadarSensorViewConfiguration_AntennaDiagramEntry* mutable_rx_antenna_diagram(int index);
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::osi3::RadarSensorViewConfiguration_AntennaDiagramEntry >*
      mutable_rx_antenna_diagram();
  private:
  const ::osi3::RadarSensorViewConfiguration_AntennaDiagramEntry& _internal_rx_antenna_diagram(int index) const;
  ::osi3::RadarSensorViewConfiguration_AntennaDiagramEntry* _internal_add_rx_antenna_diagram();
  public:
  const ::osi3::RadarSensorViewConfiguration_AntennaDiagramEntry& rx_antenna_diagram(int index) const;
  ::osi3::RadarSensorViewConfiguration_AntennaDiagramEntry* add_rx_antenna_diagram();
  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::osi3::RadarSensorViewConfiguration_AntennaDiagramEntry >&
      rx_antenna_diagram() const;

  // .osi3.Identifier sensor_id = 1;
  bool has_sensor_id() const;
  private:
  bool _internal_has_sensor_id() const;
  public:
  void clear_sensor_id();
  const ::osi3::Identifier& sensor_id() const;
  ::osi3::Identifier* release_sensor_id();
  ::osi3::Identifier* mutable_sensor_id();
  void set_allocated_sensor_id(::osi3::Identifier* sensor_id);
  private:
  const ::osi3::Identifier& _internal_sensor_id() const;
  ::osi3::Identifier* _internal_mutable_sensor_id();
  public:
  void unsafe_arena_set_allocated_sensor_id(
      ::osi3::Identifier* sensor_id);
  ::osi3::Identifier* unsafe_arena_release_sensor_id();

  // .osi3.MountingPosition mounting_position = 2;
  bool has_mounting_position() const;
  private:
  bool _internal_has_mounting_position() const;
  public:
  void clear_mounting_position();
  const ::osi3::MountingPosition& mounting_position() const;
  ::osi3::MountingPosition* release_mounting_position();
  ::osi3::MountingPosition* mutable_mounting_position();
  void set_allocated_mounting_position(::osi3::MountingPosition* mounting_position);
  private:
  const ::osi3::MountingPosition& _internal_mounting_position() const;
  ::osi3::MountingPosition* _internal_mutable_mounting_position();
  public:
  void unsafe_arena_set_allocated_mounting_position(
      ::osi3::MountingPosition* mounting_position);
  ::osi3::MountingPosition* unsafe_arena_release_mounting_position();

  // .osi3.MountingPosition mounting_position_rmse = 3;
  bool has_mounting_position_rmse() const;
  private:
  bool _internal_has_mounting_position_rmse() const;
  public:
  void clear_mounting_position_rmse();
  const ::osi3::MountingPosition& mounting_position_rmse() const;
  ::osi3::MountingPosition* release_mounting_position_rmse();
  ::osi3::MountingPosition* mutable_mounting_position_rmse();
  void set_allocated_mounting_position_rmse(::osi3::MountingPosition* mounting_position_rmse);
  private:
  const ::osi3::MountingPosition& _internal_mounting_position_rmse() const;
  ::osi3::MountingPosition* _internal_mutable_mounting_position_rmse();
  public:
  void unsafe_arena_set_allocated_mounting_position_rmse(
      ::osi3::MountingPosition* mounting_position_rmse);
  ::osi3::MountingPosition* unsafe_arena_release_mounting_position_rmse();

  // double field_of_view_horizontal = 4;
  void clear_field_of_view_horizontal();
  double field_of_view_horizontal() const;
  void set_field_of_view_horizontal(double value);
  private:
  double _internal_field_of_view_horizontal() const;
  void _internal_set_field_of_view_horizontal(double value);
  public:

  // double field_of_view_vertical = 5;
  void clear_field_of_view_vertical();
  double field_of_view_vertical() const;
  void set_field_of_view_vertical(double value);
  private:
  double _internal_field_of_view_vertical() const;
  void _internal_set_field_of_view_vertical(double value);
  public:

  // uint32 number_of_rays_horizontal = 6;
  void clear_number_of_rays_horizontal();
  ::PROTOBUF_NAMESPACE_ID::uint32 number_of_rays_horizontal() const;
  void set_number_of_rays_horizontal(::PROTOBUF_NAMESPACE_ID::uint32 value);
  private:
  ::PROTOBUF_NAMESPACE_ID::uint32 _internal_number_of_rays_horizontal() const;
  void _internal_set_number_of_rays_horizontal(::PROTOBUF_NAMESPACE_ID::uint32 value);
  public:

  // uint32 number_of_rays_vertical = 7;
  void clear_number_of_rays_vertical();
  ::PROTOBUF_NAMESPACE_ID::uint32 number_of_rays_vertical() const;
  void set_number_of_rays_vertical(::PROTOBUF_NAMESPACE_ID::uint32 value);
  private:
  ::PROTOBUF_NAMESPACE_ID::uint32 _internal_number_of_rays_vertical() const;
  void _internal_set_number_of_rays_vertical(::PROTOBUF_NAMESPACE_ID::uint32 value);
  public:

  // double emitter_frequency = 9;
  void clear_emitter_frequency();
  double emitter_frequency() const;
  void set_emitter_frequency(double value);
  private:
  double _internal_emitter_frequency() const;
  void _internal_set_emitter_frequency(double value);
  public:

  // uint32 max_number_of_interactions = 8;
  void clear_max_number_of_interactions();
  ::PROTOBUF_NAMESPACE_ID::uint32 max_number_of_interactions() const;
  void set_max_number_of_interactions(::PROTOBUF_NAMESPACE_ID::uint32 value);
  private:
  ::PROTOBUF_NAMESPACE_ID::uint32 _internal_max_number_of_interactions() const;
  void _internal_set_max_number_of_interactions(::PROTOBUF_NAMESPACE_ID::uint32 value);
  public:

  // @@protoc_insertion_point(class_scope:osi3.RadarSensorViewConfiguration)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::osi3::RadarSensorViewConfiguration_AntennaDiagramEntry > tx_antenna_diagram_;
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::osi3::RadarSensorViewConfiguration_AntennaDiagramEntry > rx_antenna_diagram_;
  ::osi3::Identifier* sensor_id_;
  ::osi3::MountingPosition* mounting_position_;
  ::osi3::MountingPosition* mounting_position_rmse_;
  double field_of_view_horizontal_;
  double field_of_view_vertical_;
  ::PROTOBUF_NAMESPACE_ID::uint32 number_of_rays_horizontal_;
  ::PROTOBUF_NAMESPACE_ID::uint32 number_of_rays_vertical_;
  double emitter_frequency_;
  ::PROTOBUF_NAMESPACE_ID::uint32 max_number_of_interactions_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_osi_5fsensorviewconfiguration_2eproto;
};
// -------------------------------------------------------------------

class LidarSensorViewConfiguration PROTOBUF_FINAL :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:osi3.LidarSensorViewConfiguration) */ {
 public:
  inline LidarSensorViewConfiguration() : LidarSensorViewConfiguration(nullptr) {}
  virtual ~LidarSensorViewConfiguration();
  explicit constexpr LidarSensorViewConfiguration(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);

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

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

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return GetMetadataStatic().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return GetMetadataStatic().reflection;
  }
  static const LidarSensorViewConfiguration& default_instance() {
    return *internal_default_instance();
  }
  static inline const LidarSensorViewConfiguration* internal_default_instance() {
    return reinterpret_cast<const LidarSensorViewConfiguration*>(
               &_LidarSensorViewConfiguration_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    4;

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

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

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

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

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize(
      ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  inline void SharedCtor();
  inline void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(LidarSensorViewConfiguration* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "osi3.LidarSensorViewConfiguration";
  }
  protected:
  explicit LidarSensorViewConfiguration(::PROTOBUF_NAMESPACE_ID::Arena* arena);
  private:
  static void ArenaDtor(void* object);
  inline void RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena* arena);
  public:

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
  private:
  static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() {
    return ::descriptor_table_osi_5fsensorviewconfiguration_2eproto_metadata_getter(kIndexInFileMessages);
  }

  public:

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

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

  enum : int {
    kDirectionsFieldNumber = 11,
    kTimingsFieldNumber = 12,
    kSensorIdFieldNumber = 1,
    kMountingPositionFieldNumber = 2,
    kMountingPositionRmseFieldNumber = 3,
    kFieldOfViewHorizontalFieldNumber = 4,
    kFieldOfViewVerticalFieldNumber = 5,
    kNumberOfRaysHorizontalFieldNumber = 6,
    kNumberOfRaysVerticalFieldNumber = 7,
    kEmitterFrequencyFieldNumber = 9,
    kMaxNumberOfInteractionsFieldNumber = 8,
    kNumOfPixelsFieldNumber = 10,
  };
  // repeated .osi3.Vector3d directions = 11;
  int directions_size() const;
  private:
  int _internal_directions_size() const;
  public:
  void clear_directions();
  ::osi3::Vector3d* mutable_directions(int index);
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::osi3::Vector3d >*
      mutable_directions();
  private:
  const ::osi3::Vector3d& _internal_directions(int index) const;
  ::osi3::Vector3d* _internal_add_directions();
  public:
  const ::osi3::Vector3d& directions(int index) const;
  ::osi3::Vector3d* add_directions();
  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::osi3::Vector3d >&
      directions() const;

  // repeated uint32 timings = 12;
  int timings_size() const;
  private:
  int _internal_timings_size() const;
  public:
  void clear_timings();
  private:
  ::PROTOBUF_NAMESPACE_ID::uint32 _internal_timings(int index) const;
  const ::PROTOBUF_NAMESPACE_ID::RepeatedField< ::PROTOBUF_NAMESPACE_ID::uint32 >&
      _internal_timings() const;
  void _internal_add_timings(::PROTOBUF_NAMESPACE_ID::uint32 value);
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< ::PROTOBUF_NAMESPACE_ID::uint32 >*
      _internal_mutable_timings();
  public:
  ::PROTOBUF_NAMESPACE_ID::uint32 timings(int index) const;
  void set_timings(int index, ::PROTOBUF_NAMESPACE_ID::uint32 value);
  void add_timings(::PROTOBUF_NAMESPACE_ID::uint32 value);
  const ::PROTOBUF_NAMESPACE_ID::RepeatedField< ::PROTOBUF_NAMESPACE_ID::uint32 >&
      timings() const;
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< ::PROTOBUF_NAMESPACE_ID::uint32 >*
      mutable_timings();

  // .osi3.Identifier sensor_id = 1;
  bool has_sensor_id() const;
  private:
  bool _internal_has_sensor_id() const;
  public:
  void clear_sensor_id();
  const ::osi3::Identifier& sensor_id() const;
  ::osi3::Identifier* release_sensor_id();
  ::osi3::Identifier* mutable_sensor_id();
  void set_allocated_sensor_id(::osi3::Identifier* sensor_id);
  private:
  const ::osi3::Identifier& _internal_sensor_id() const;
  ::osi3::Identifier* _internal_mutable_sensor_id();
  public:
  void unsafe_arena_set_allocated_sensor_id(
      ::osi3::Identifier* sensor_id);
  ::osi3::Identifier* unsafe_arena_release_sensor_id();

  // .osi3.MountingPosition mounting_position = 2;
  bool has_mounting_position() const;
  private:
  bool _internal_has_mounting_position() const;
  public:
  void clear_mounting_position();
  const ::osi3::MountingPosition& mounting_position() const;
  ::osi3::MountingPosition* release_mounting_position();
  ::osi3::MountingPosition* mutable_mounting_position();
  void set_allocated_mounting_position(::osi3::MountingPosition* mounting_position);
  private:
  const ::osi3::MountingPosition& _internal_mounting_position() const;
  ::osi3::MountingPosition* _internal_mutable_mounting_position();
  public:
  void unsafe_arena_set_allocated_mounting_position(
      ::osi3::MountingPosition* mounting_position);
  ::osi3::MountingPosition* unsafe_arena_release_mounting_position();

  // .osi3.MountingPosition mounting_position_rmse = 3;
  bool has_mounting_position_rmse() const;
  private:
  bool _internal_has_mounting_position_rmse() const;
  public:
  void clear_mounting_position_rmse();
  const ::osi3::MountingPosition& mounting_position_rmse() const;
  ::osi3::MountingPosition* release_mounting_position_rmse();
  ::osi3::MountingPosition* mutable_mounting_position_rmse();
  void set_allocated_mounting_position_rmse(::osi3::MountingPosition* mounting_position_rmse);
  private:
  const ::osi3::MountingPosition& _internal_mounting_position_rmse() const;
  ::osi3::MountingPosition* _internal_mutable_mounting_position_rmse();
  public:
  void unsafe_arena_set_allocated_mounting_position_rmse(
      ::osi3::MountingPosition* mounting_position_rmse);
  ::osi3::MountingPosition* unsafe_arena_release_mounting_position_rmse();

  // double field_of_view_horizontal = 4;
  void clear_field_of_view_horizontal();
  double field_of_view_horizontal() const;
  void set_field_of_view_horizontal(double value);
  private:
  double _internal_field_of_view_horizontal() const;
  void _internal_set_field_of_view_horizontal(double value);
  public:

  // double field_of_view_vertical = 5;
  void clear_field_of_view_vertical();
  double field_of_view_vertical() const;
  void set_field_of_view_vertical(double value);
  private:
  double _internal_field_of_view_vertical() const;
  void _internal_set_field_of_view_vertical(double value);
  public:

  // uint32 number_of_rays_horizontal = 6;
  void clear_number_of_rays_horizontal();
  ::PROTOBUF_NAMESPACE_ID::uint32 number_of_rays_horizontal() const;
  void set_number_of_rays_horizontal(::PROTOBUF_NAMESPACE_ID::uint32 value);
  private:
  ::PROTOBUF_NAMESPACE_ID::uint32 _internal_number_of_rays_horizontal() const;
  void _internal_set_number_of_rays_horizontal(::PROTOBUF_NAMESPACE_ID::uint32 value);
  public:

  // uint32 number_of_rays_vertical = 7;
  void clear_number_of_rays_vertical();
  ::PROTOBUF_NAMESPACE_ID::uint32 number_of_rays_vertical() const;
  void set_number_of_rays_vertical(::PROTOBUF_NAMESPACE_ID::uint32 value);
  private:
  ::PROTOBUF_NAMESPACE_ID::uint32 _internal_number_of_rays_vertical() const;
  void _internal_set_number_of_rays_vertical(::PROTOBUF_NAMESPACE_ID::uint32 value);
  public:

  // double emitter_frequency = 9;
  void clear_emitter_frequency();
  double emitter_frequency() const;
  void set_emitter_frequency(double value);
  private:
  double _internal_emitter_frequency() const;
  void _internal_set_emitter_frequency(double value);
  public:

  // uint32 max_number_of_interactions = 8;
  void clear_max_number_of_interactions();
  ::PROTOBUF_NAMESPACE_ID::uint32 max_number_of_interactions() const;
  void set_max_number_of_interactions(::PROTOBUF_NAMESPACE_ID::uint32 value);
  private:
  ::PROTOBUF_NAMESPACE_ID::uint32 _internal_max_number_of_interactions() const;
  void _internal_set_max_number_of_interactions(::PROTOBUF_NAMESPACE_ID::uint32 value);
  public:

  // uint32 num_of_pixels = 10;
  void clear_num_of_pixels();
  ::PROTOBUF_NAMESPACE_ID::uint32 num_of_pixels() const;
  void set_num_of_pixels(::PROTOBUF_NAMESPACE_ID::uint32 value);
  private:
  ::PROTOBUF_NAMESPACE_ID::uint32 _internal_num_of_pixels() const;
  void _internal_set_num_of_pixels(::PROTOBUF_NAMESPACE_ID::uint32 value);
  public:

  // @@protoc_insertion_point(class_scope:osi3.LidarSensorViewConfiguration)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::osi3::Vector3d > directions_;
  ::PROTOBUF_NAMESPACE_ID::RepeatedField< ::PROTOBUF_NAMESPACE_ID::uint32 > timings_;
  mutable std::atomic<int> _timings_cached_byte_size_;
  ::osi3::Identifier* sensor_id_;
  ::osi3::MountingPosition* mounting_position_;
  ::osi3::MountingPosition* mounting_position_rmse_;
  double field_of_view_horizontal_;
  double field_of_view_vertical_;
  ::PROTOBUF_NAMESPACE_ID::uint32 number_of_rays_horizontal_;
  ::PROTOBUF_NAMESPACE_ID::uint32 number_of_rays_vertical_;
  double emitter_frequency_;
  ::PROTOBUF_NAMESPACE_ID::uint32 max_number_of_interactions_;
  ::PROTOBUF_NAMESPACE_ID::uint32 num_of_pixels_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_osi_5fsensorviewconfiguration_2eproto;
};
// -------------------------------------------------------------------

class CameraSensorViewConfiguration PROTOBUF_FINAL :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:osi3.CameraSensorViewConfiguration) */ {
 public:
  inline CameraSensorViewConfiguration() : CameraSensorViewConfiguration(nullptr) {}
  virtual ~CameraSensorViewConfiguration();
  explicit constexpr CameraSensorViewConfiguration(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);

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

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

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return GetMetadataStatic().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return GetMetadataStatic().reflection;
  }
  static const CameraSensorViewConfiguration& default_instance() {
    return *internal_default_instance();
  }
  static inline const CameraSensorViewConfiguration* internal_default_instance() {
    return reinterpret_cast<const CameraSensorViewConfiguration*>(
               &_CameraSensorViewConfiguration_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    5;

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

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

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

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

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize(
      ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  inline void SharedCtor();
  inline void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(CameraSensorViewConfiguration* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "osi3.CameraSensorViewConfiguration";
  }
  protected:
  explicit CameraSensorViewConfiguration(::PROTOBUF_NAMESPACE_ID::Arena* arena);
  private:
  static void ArenaDtor(void* object);
  inline void RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena* arena);
  public:

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
  private:
  static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() {
    return ::descriptor_table_osi_5fsensorviewconfiguration_2eproto_metadata_getter(kIndexInFileMessages);
  }

  public:

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

  typedef CameraSensorViewConfiguration_ChannelFormat ChannelFormat;
  static constexpr ChannelFormat CHANNEL_FORMAT_UNKNOWN =
    CameraSensorViewConfiguration_ChannelFormat_CHANNEL_FORMAT_UNKNOWN;
  static constexpr ChannelFormat CHANNEL_FORMAT_OTHER =
    CameraSensorViewConfiguration_ChannelFormat_CHANNEL_FORMAT_OTHER;
  static constexpr ChannelFormat CHANNEL_FORMAT_MONO_U8_LIN =
    CameraSensorViewConfiguration_ChannelFormat_CHANNEL_FORMAT_MONO_U8_LIN;
  static constexpr ChannelFormat CHANNEL_FORMAT_MONO_U16_LIN =
    CameraSensorViewConfiguration_ChannelFormat_CHANNEL_FORMAT_MONO_U16_LIN;
  static constexpr ChannelFormat CHANNEL_FORMAT_MONO_U32_LIN =
    CameraSensorViewConfiguration_ChannelFormat_CHANNEL_FORMAT_MONO_U32_LIN;
  static constexpr ChannelFormat CHANNEL_FORMAT_MONO_F32_LIN =
    CameraSensorViewConfiguration_ChannelFormat_CHANNEL_FORMAT_MONO_F32_LIN;
  static constexpr ChannelFormat CHANNEL_FORMAT_RGB_U8_LIN =
    CameraSensorViewConfiguration_ChannelFormat_CHANNEL_FORMAT_RGB_U8_LIN;
  static constexpr ChannelFormat CHANNEL_FORMAT_RGB_U16_LIN =
    CameraSensorViewConfiguration_ChannelFormat_CHANNEL_FORMAT_RGB_U16_LIN;
  static constexpr ChannelFormat CHANNEL_FORMAT_RGB_U32_LIN =
    CameraSensorViewConfiguration_ChannelFormat_CHANNEL_FORMAT_RGB_U32_LIN;
  static constexpr ChannelFormat CHANNEL_FORMAT_RGB_F32_LIN =
    CameraSensorViewConfiguration_ChannelFormat_CHANNEL_FORMAT_RGB_F32_LIN;
  static constexpr ChannelFormat CHANNEL_FORMAT_BAYER_BGGR_U8_LIN =
    CameraSensorViewConfiguration_ChannelFormat_CHANNEL_FORMAT_BAYER_BGGR_U8_LIN;
  static constexpr ChannelFormat CHANNEL_FORMAT_BAYER_BGGR_U16_LIN =
    CameraSensorViewConfiguration_ChannelFormat_CHANNEL_FORMAT_BAYER_BGGR_U16_LIN;
  static constexpr ChannelFormat CHANNEL_FORMAT_BAYER_BGGR_U32_LIN =
    CameraSensorViewConfiguration_ChannelFormat_CHANNEL_FORMAT_BAYER_BGGR_U32_LIN;
  static constexpr ChannelFormat CHANNEL_FORMAT_BAYER_BGGR_F32_LIN =
    CameraSensorViewConfiguration_ChannelFormat_CHANNEL_FORMAT_BAYER_BGGR_F32_LIN;
  static constexpr ChannelFormat CHANNEL_FORMAT_BAYER_RGGB_U8_LIN =
    CameraSensorViewConfiguration_ChannelFormat_CHANNEL_FORMAT_BAYER_RGGB_U8_LIN;
  static constexpr ChannelFormat CHANNEL_FORMAT_BAYER_RGGB_U16_LIN =
    CameraSensorViewConfiguration_ChannelFormat_CHANNEL_FORMAT_BAYER_RGGB_U16_LIN;
  static constexpr ChannelFormat CHANNEL_FORMAT_BAYER_RGGB_U32_LIN =
    CameraSensorViewConfiguration_ChannelFormat_CHANNEL_FORMAT_BAYER_RGGB_U32_LIN;
  static constexpr ChannelFormat CHANNEL_FORMAT_BAYER_RGGB_F32_LIN =
    CameraSensorViewConfiguration_ChannelFormat_CHANNEL_FORMAT_BAYER_RGGB_F32_LIN;
  static constexpr ChannelFormat CHANNEL_FORMAT_RCCC_U8_LIN =
    CameraSensorViewConfiguration_ChannelFormat_CHANNEL_FORMAT_RCCC_U8_LIN;
  static constexpr ChannelFormat CHANNEL_FORMAT_RCCC_U16_LIN =
    CameraSensorViewConfiguration_ChannelFormat_CHANNEL_FORMAT_RCCC_U16_LIN;
  static constexpr ChannelFormat CHANNEL_FORMAT_RCCC_U32_LIN =
    CameraSensorViewConfiguration_ChannelFormat_CHANNEL_FORMAT_RCCC_U32_LIN;
  static constexpr ChannelFormat CHANNEL_FORMAT_RCCC_F32_LIN =
    CameraSensorViewConfiguration_ChannelFormat_CHANNEL_FORMAT_RCCC_F32_LIN;
  static constexpr ChannelFormat CHANNEL_FORMAT_RCCB_U8_LIN =
    CameraSensorViewConfiguration_ChannelFormat_CHANNEL_FORMAT_RCCB_U8_LIN;
  static constexpr ChannelFormat CHANNEL_FORMAT_RCCB_U16_LIN =
    CameraSensorViewConfiguration_ChannelFormat_CHANNEL_FORMAT_RCCB_U16_LIN;
  static constexpr ChannelFormat CHANNEL_FORMAT_RCCB_U32_LIN =
    CameraSensorViewConfiguration_ChannelFormat_CHANNEL_FORMAT_RCCB_U32_LIN;
  static constexpr ChannelFormat CHANNEL_FORMAT_RCCB_F32_LIN =
    CameraSensorViewConfiguration_ChannelFormat_CHANNEL_FORMAT_RCCB_F32_LIN;
  static inline bool ChannelFormat_IsValid(int value) {
    return CameraSensorViewConfiguration_ChannelFormat_IsValid(value);
  }
  static constexpr ChannelFormat ChannelFormat_MIN =
    CameraSensorViewConfiguration_ChannelFormat_ChannelFormat_MIN;
  static constexpr ChannelFormat ChannelFormat_MAX =
    CameraSensorViewConfiguration_ChannelFormat_ChannelFormat_MAX;
  static constexpr int ChannelFormat_ARRAYSIZE =
    CameraSensorViewConfiguration_ChannelFormat_ChannelFormat_ARRAYSIZE;
  static inline const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor*
  ChannelFormat_descriptor() {
    return CameraSensorViewConfiguration_ChannelFormat_descriptor();
  }
  template<typename T>
  static inline const std::string& ChannelFormat_Name(T enum_t_value) {
    static_assert(::std::is_same<T, ChannelFormat>::value ||
      ::std::is_integral<T>::value,
      "Incorrect type passed to function ChannelFormat_Name.");
    return CameraSensorViewConfiguration_ChannelFormat_Name(enum_t_value);
  }
  static inline bool ChannelFormat_Parse(::PROTOBUF_NAMESPACE_ID::ConstStringParam name,
      ChannelFormat* value) {
    return CameraSensorViewConfiguration_ChannelFormat_Parse(name, value);
  }

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

  enum : int {
    kChannelFormatFieldNumber = 8,
    kWavelengthDataFieldNumber = 11,
    kSensorIdFieldNumber = 1,
    kMountingPositionFieldNumber = 2,
    kMountingPositionRmseFieldNumber = 3,
    kFieldOfViewHorizontalFieldNumber = 4,
    kFieldOfViewVerticalFieldNumber = 5,
    kNumberOfPixelsHorizontalFieldNumber = 6,
    kNumberOfPixelsVerticalFieldNumber = 7,
    kSamplesPerPixelFieldNumber = 9,
    kMaxNumberOfInteractionsFieldNumber = 10,
  };
  // repeated .osi3.CameraSensorViewConfiguration.ChannelFormat channel_format = 8;
  int channel_format_size() const;
  private:
  int _internal_channel_format_size() const;
  public:
  void clear_channel_format();
  private:
  ::osi3::CameraSensorViewConfiguration_ChannelFormat _internal_channel_format(int index) const;
  void _internal_add_channel_format(::osi3::CameraSensorViewConfiguration_ChannelFormat value);
  ::PROTOBUF_NAMESPACE_ID::RepeatedField<int>* _internal_mutable_channel_format();
  public:
  ::osi3::CameraSensorViewConfiguration_ChannelFormat channel_format(int index) const;
  void set_channel_format(int index, ::osi3::CameraSensorViewConfiguration_ChannelFormat value);
  void add_channel_format(::osi3::CameraSensorViewConfiguration_ChannelFormat value);
  const ::PROTOBUF_NAMESPACE_ID::RepeatedField<int>& channel_format() const;
  ::PROTOBUF_NAMESPACE_ID::RepeatedField<int>* mutable_channel_format();

  // repeated .osi3.WavelengthData wavelength_data = 11;
  int wavelength_data_size() const;
  private:
  int _internal_wavelength_data_size() const;
  public:
  void clear_wavelength_data();
  ::osi3::WavelengthData* mutable_wavelength_data(int index);
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::osi3::WavelengthData >*
      mutable_wavelength_data();
  private:
  const ::osi3::WavelengthData& _internal_wavelength_data(int index) const;
  ::osi3::WavelengthData* _internal_add_wavelength_data();
  public:
  const ::osi3::WavelengthData& wavelength_data(int index) const;
  ::osi3::WavelengthData* add_wavelength_data();
  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::osi3::WavelengthData >&
      wavelength_data() const;

  // .osi3.Identifier sensor_id = 1;
  bool has_sensor_id() const;
  private:
  bool _internal_has_sensor_id() const;
  public:
  void clear_sensor_id();
  const ::osi3::Identifier& sensor_id() const;
  ::osi3::Identifier* release_sensor_id();
  ::osi3::Identifier* mutable_sensor_id();
  void set_allocated_sensor_id(::osi3::Identifier* sensor_id);
  private:
  const ::osi3::Identifier& _internal_sensor_id() const;
  ::osi3::Identifier* _internal_mutable_sensor_id();
  public:
  void unsafe_arena_set_allocated_sensor_id(
      ::osi3::Identifier* sensor_id);
  ::osi3::Identifier* unsafe_arena_release_sensor_id();

  // .osi3.MountingPosition mounting_position = 2;
  bool has_mounting_position() const;
  private:
  bool _internal_has_mounting_position() const;
  public:
  void clear_mounting_position();
  const ::osi3::MountingPosition& mounting_position() const;
  ::osi3::MountingPosition* release_mounting_position();
  ::osi3::MountingPosition* mutable_mounting_position();
  void set_allocated_mounting_position(::osi3::MountingPosition* mounting_position);
  private:
  const ::osi3::MountingPosition& _internal_mounting_position() const;
  ::osi3::MountingPosition* _internal_mutable_mounting_position();
  public:
  void unsafe_arena_set_allocated_mounting_position(
      ::osi3::MountingPosition* mounting_position);
  ::osi3::MountingPosition* unsafe_arena_release_mounting_position();

  // .osi3.MountingPosition mounting_position_rmse = 3;
  bool has_mounting_position_rmse() const;
  private:
  bool _internal_has_mounting_position_rmse() const;
  public:
  void clear_mounting_position_rmse();
  const ::osi3::MountingPosition& mounting_position_rmse() const;
  ::osi3::MountingPosition* release_mounting_position_rmse();
  ::osi3::MountingPosition* mutable_mounting_position_rmse();
  void set_allocated_mounting_position_rmse(::osi3::MountingPosition* mounting_position_rmse);
  private:
  const ::osi3::MountingPosition& _internal_mounting_position_rmse() const;
  ::osi3::MountingPosition* _internal_mutable_mounting_position_rmse();
  public:
  void unsafe_arena_set_allocated_mounting_position_rmse(
      ::osi3::MountingPosition* mounting_position_rmse);
  ::osi3::MountingPosition* unsafe_arena_release_mounting_position_rmse();

  // double field_of_view_horizontal = 4;
  void clear_field_of_view_horizontal();
  double field_of_view_horizontal() const;
  void set_field_of_view_horizontal(double value);
  private:
  double _internal_field_of_view_horizontal() const;
  void _internal_set_field_of_view_horizontal(double value);
  public:

  // double field_of_view_vertical = 5;
  void clear_field_of_view_vertical();
  double field_of_view_vertical() const;
  void set_field_of_view_vertical(double value);
  private:
  double _internal_field_of_view_vertical() const;
  void _internal_set_field_of_view_vertical(double value);
  public:

  // uint32 number_of_pixels_horizontal = 6;
  void clear_number_of_pixels_horizontal();
  ::PROTOBUF_NAMESPACE_ID::uint32 number_of_pixels_horizontal() const;
  void set_number_of_pixels_horizontal(::PROTOBUF_NAMESPACE_ID::uint32 value);
  private:
  ::PROTOBUF_NAMESPACE_ID::uint32 _internal_number_of_pixels_horizontal() const;
  void _internal_set_number_of_pixels_horizontal(::PROTOBUF_NAMESPACE_ID::uint32 value);
  public:

  // uint32 number_of_pixels_vertical = 7;
  void clear_number_of_pixels_vertical();
  ::PROTOBUF_NAMESPACE_ID::uint32 number_of_pixels_vertical() const;
  void set_number_of_pixels_vertical(::PROTOBUF_NAMESPACE_ID::uint32 value);
  private:
  ::PROTOBUF_NAMESPACE_ID::uint32 _internal_number_of_pixels_vertical() const;
  void _internal_set_number_of_pixels_vertical(::PROTOBUF_NAMESPACE_ID::uint32 value);
  public:

  // uint32 samples_per_pixel = 9;
  void clear_samples_per_pixel();
  ::PROTOBUF_NAMESPACE_ID::uint32 samples_per_pixel() const;
  void set_samples_per_pixel(::PROTOBUF_NAMESPACE_ID::uint32 value);
  private:
  ::PROTOBUF_NAMESPACE_ID::uint32 _internal_samples_per_pixel() const;
  void _internal_set_samples_per_pixel(::PROTOBUF_NAMESPACE_ID::uint32 value);
  public:

  // uint32 max_number_of_interactions = 10;
  void clear_max_number_of_interactions();
  ::PROTOBUF_NAMESPACE_ID::uint32 max_number_of_interactions() const;
  void set_max_number_of_interactions(::PROTOBUF_NAMESPACE_ID::uint32 value);
  private:
  ::PROTOBUF_NAMESPACE_ID::uint32 _internal_max_number_of_interactions() const;
  void _internal_set_max_number_of_interactions(::PROTOBUF_NAMESPACE_ID::uint32 value);
  public:

  // @@protoc_insertion_point(class_scope:osi3.CameraSensorViewConfiguration)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::PROTOBUF_NAMESPACE_ID::RepeatedField<int> channel_format_;
  mutable std::atomic<int> _channel_format_cached_byte_size_;
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::osi3::WavelengthData > wavelength_data_;
  ::osi3::Identifier* sensor_id_;
  ::osi3::MountingPosition* mounting_position_;
  ::osi3::MountingPosition* mounting_position_rmse_;
  double field_of_view_horizontal_;
  double field_of_view_vertical_;
  ::PROTOBUF_NAMESPACE_ID::uint32 number_of_pixels_horizontal_;
  ::PROTOBUF_NAMESPACE_ID::uint32 number_of_pixels_vertical_;
  ::PROTOBUF_NAMESPACE_ID::uint32 samples_per_pixel_;
  ::PROTOBUF_NAMESPACE_ID::uint32 max_number_of_interactions_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_osi_5fsensorviewconfiguration_2eproto;
};
// -------------------------------------------------------------------

class UltrasonicSensorViewConfiguration PROTOBUF_FINAL :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:osi3.UltrasonicSensorViewConfiguration) */ {
 public:
  inline UltrasonicSensorViewConfiguration() : UltrasonicSensorViewConfiguration(nullptr) {}
  virtual ~UltrasonicSensorViewConfiguration();
  explicit constexpr UltrasonicSensorViewConfiguration(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);

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

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

  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
    return GetMetadataStatic().descriptor;
  }
  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
    return GetMetadataStatic().reflection;
  }
  static const UltrasonicSensorViewConfiguration& default_instance() {
    return *internal_default_instance();
  }
  static inline const UltrasonicSensorViewConfiguration* internal_default_instance() {
    return reinterpret_cast<const UltrasonicSensorViewConfiguration*>(
               &_UltrasonicSensorViewConfiguration_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    6;

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

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

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

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

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize(
      ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  inline void SharedCtor();
  inline void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(UltrasonicSensorViewConfiguration* other);
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "osi3.UltrasonicSensorViewConfiguration";
  }
  protected:
  explicit UltrasonicSensorViewConfiguration(::PROTOBUF_NAMESPACE_ID::Arena* arena);
  private:
  static void ArenaDtor(void* object);
  inline void RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena* arena);
  public:

  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
  private:
  static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() {
    return ::descriptor_table_osi_5fsensorviewconfiguration_2eproto_metadata_getter(kIndexInFileMessages);
  }

  public:

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

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

  enum : int {
    kSensorIdFieldNumber = 1,
    kMountingPositionFieldNumber = 2,
    kMountingPositionRmseFieldNumber = 3,
    kFieldOfViewHorizontalFieldNumber = 4,
    kFieldOfViewVerticalFieldNumber = 5,
  };
  // .osi3.Identifier sensor_id = 1;
  bool has_sensor_id() const;
  private:
  bool _internal_has_sensor_id() const;
  public:
  void clear_sensor_id();
  const ::osi3::Identifier& sensor_id() const;
  ::osi3::Identifier* release_sensor_id();
  ::osi3::Identifier* mutable_sensor_id();
  void set_allocated_sensor_id(::osi3::Identifier* sensor_id);
  private:
  const ::osi3::Identifier& _internal_sensor_id() const;
  ::osi3::Identifier* _internal_mutable_sensor_id();
  public:
  void unsafe_arena_set_allocated_sensor_id(
      ::osi3::Identifier* sensor_id);
  ::osi3::Identifier* unsafe_arena_release_sensor_id();

  // .osi3.MountingPosition mounting_position = 2;
  bool has_mounting_position() const;
  private:
  bool _internal_has_mounting_position() const;
  public:
  void clear_mounting_position();
  const ::osi3::MountingPosition& mounting_position() const;
  ::osi3::MountingPosition* release_mounting_position();
  ::osi3::MountingPosition* mutable_mounting_position();
  void set_allocated_mounting_position(::osi3::MountingPosition* mounting_position);
  private:
  const ::osi3::MountingPosition& _internal_mounting_position() const;
  ::osi3::MountingPosition* _internal_mutable_mounting_position();
  public:
  void unsafe_arena_set_allocated_mounting_position(
      ::osi3::MountingPosition* mounting_position);
  ::osi3::MountingPosition* unsafe_arena_release_mounting_position();

  // .osi3.MountingPosition mounting_position_rmse = 3;
  bool has_mounting_position_rmse() const;
  private:
  bool _internal_has_mounting_position_rmse() const;
  public:
  void clear_mounting_position_rmse();
  const ::osi3::MountingPosition& mounting_position_rmse() const;
  ::osi3::MountingPosition* release_mounting_position_rmse();
  ::osi3::MountingPosition* mutable_mounting_position_rmse();
  void set_allocated_mounting_position_rmse(::osi3::MountingPosition* mounting_position_rmse);
  private:
  const ::osi3::MountingPosition& _internal_mounting_position_rmse() const;
  ::osi3::MountingPosition* _internal_mutable_mounting_position_rmse();
  public:
  void unsafe_arena_set_allocated_mounting_position_rmse(
      ::osi3::MountingPosition* mounting_position_rmse);
  ::osi3::MountingPosition* unsafe_arena_release_mounting_position_rmse();

  // double field_of_view_horizontal = 4;
  void clear_field_of_view_horizontal();
  double field_of_view_horizontal() const;
  void set_field_of_view_horizontal(double value);
  private:
  double _internal_field_of_view_horizontal() const;
  void _internal_set_field_of_view_horizontal(double value);
  public:

  // double field_of_view_vertical = 5;
  void clear_field_of_view_vertical();
  double field_of_view_vertical() const;
  void set_field_of_view_vertical(double value);
  private:
  double _internal_field_of_view_vertical() const;
  void _internal_set_field_of_view_vertical(double value);
  public:

  // @@protoc_insertion_point(class_scope:osi3.UltrasonicSensorViewConfiguration)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::osi3::Identifier* sensor_id_;
  ::osi3::MountingPosition* mounting_position_;
  ::osi3::MountingPosition* mounting_position_rmse_;
  double field_of_view_horizontal_;
  double field_of_view_vertical_;
  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  friend struct ::TableStruct_osi_5fsensorviewconfiguration_2eproto;
};
// ===================================================================


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

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

// .osi3.InterfaceVersion version = 1;
inline bool SensorViewConfiguration::_internal_has_version() const {
  return this != internal_default_instance() && version_ != nullptr;
}
inline bool SensorViewConfiguration::has_version() const {
  return _internal_has_version();
}
inline const ::osi3::InterfaceVersion& SensorViewConfiguration::_internal_version() const {
  const ::osi3::InterfaceVersion* p = version_;
  return p != nullptr ? *p : reinterpret_cast<const ::osi3::InterfaceVersion&>(
      ::osi3::_InterfaceVersion_default_instance_);
}
inline const ::osi3::InterfaceVersion& SensorViewConfiguration::version() const {
  // @@protoc_insertion_point(field_get:osi3.SensorViewConfiguration.version)
  return _internal_version();
}
inline void SensorViewConfiguration::unsafe_arena_set_allocated_version(
    ::osi3::InterfaceVersion* version) {
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(version_);
  }
  version_ = version;
  if (version) {
    
  } else {
    
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:osi3.SensorViewConfiguration.version)
}
inline ::osi3::InterfaceVersion* SensorViewConfiguration::release_version() {
  
  ::osi3::InterfaceVersion* temp = version_;
  version_ = nullptr;
  if (GetArena() != nullptr) {
    temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  }
  return temp;
}
inline ::osi3::InterfaceVersion* SensorViewConfiguration::unsafe_arena_release_version() {
  // @@protoc_insertion_point(field_release:osi3.SensorViewConfiguration.version)
  
  ::osi3::InterfaceVersion* temp = version_;
  version_ = nullptr;
  return temp;
}
inline ::osi3::InterfaceVersion* SensorViewConfiguration::_internal_mutable_version() {
  
  if (version_ == nullptr) {
    auto* p = CreateMaybeMessage<::osi3::InterfaceVersion>(GetArena());
    version_ = p;
  }
  return version_;
}
inline ::osi3::InterfaceVersion* SensorViewConfiguration::mutable_version() {
  // @@protoc_insertion_point(field_mutable:osi3.SensorViewConfiguration.version)
  return _internal_mutable_version();
}
inline void SensorViewConfiguration::set_allocated_version(::osi3::InterfaceVersion* version) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  if (message_arena == nullptr) {
    delete reinterpret_cast< ::PROTOBUF_NAMESPACE_ID::MessageLite*>(version_);
  }
  if (version) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(version)->GetArena();
    if (message_arena != submessage_arena) {
      version = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, version, submessage_arena);
    }
    
  } else {
    
  }
  version_ = version;
  // @@protoc_insertion_point(field_set_allocated:osi3.SensorViewConfiguration.version)
}

// .osi3.Identifier sensor_id = 2;
inline bool SensorViewConfiguration::_internal_has_sensor_id() const {
  return this != internal_default_instance() && sensor_id_ != nullptr;
}
inline bool SensorViewConfiguration::has_sensor_id() const {
  return _internal_has_sensor_id();
}
inline const ::osi3::Identifier& SensorViewConfiguration::_internal_sensor_id() const {
  const ::osi3::Identifier* p = sensor_id_;
  return p != nullptr ? *p : reinterpret_cast<const ::osi3::Identifier&>(
      ::osi3::_Identifier_default_instance_);
}
inline const ::osi3::Identifier& SensorViewConfiguration::sensor_id() const {
  // @@protoc_insertion_point(field_get:osi3.SensorViewConfiguration.sensor_id)
  return _internal_sensor_id();
}
inline void SensorViewConfiguration::unsafe_arena_set_allocated_sensor_id(
    ::osi3::Identifier* sensor_id) {
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(sensor_id_);
  }
  sensor_id_ = sensor_id;
  if (sensor_id) {
    
  } else {
    
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:osi3.SensorViewConfiguration.sensor_id)
}
inline ::osi3::Identifier* SensorViewConfiguration::release_sensor_id() {
  
  ::osi3::Identifier* temp = sensor_id_;
  sensor_id_ = nullptr;
  if (GetArena() != nullptr) {
    temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  }
  return temp;
}
inline ::osi3::Identifier* SensorViewConfiguration::unsafe_arena_release_sensor_id() {
  // @@protoc_insertion_point(field_release:osi3.SensorViewConfiguration.sensor_id)
  
  ::osi3::Identifier* temp = sensor_id_;
  sensor_id_ = nullptr;
  return temp;
}
inline ::osi3::Identifier* SensorViewConfiguration::_internal_mutable_sensor_id() {
  
  if (sensor_id_ == nullptr) {
    auto* p = CreateMaybeMessage<::osi3::Identifier>(GetArena());
    sensor_id_ = p;
  }
  return sensor_id_;
}
inline ::osi3::Identifier* SensorViewConfiguration::mutable_sensor_id() {
  // @@protoc_insertion_point(field_mutable:osi3.SensorViewConfiguration.sensor_id)
  return _internal_mutable_sensor_id();
}
inline void SensorViewConfiguration::set_allocated_sensor_id(::osi3::Identifier* sensor_id) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  if (message_arena == nullptr) {
    delete reinterpret_cast< ::PROTOBUF_NAMESPACE_ID::MessageLite*>(sensor_id_);
  }
  if (sensor_id) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(sensor_id)->GetArena();
    if (message_arena != submessage_arena) {
      sensor_id = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, sensor_id, submessage_arena);
    }
    
  } else {
    
  }
  sensor_id_ = sensor_id;
  // @@protoc_insertion_point(field_set_allocated:osi3.SensorViewConfiguration.sensor_id)
}

// .osi3.MountingPosition mounting_position = 3;
inline bool SensorViewConfiguration::_internal_has_mounting_position() const {
  return this != internal_default_instance() && mounting_position_ != nullptr;
}
inline bool SensorViewConfiguration::has_mounting_position() const {
  return _internal_has_mounting_position();
}
inline const ::osi3::MountingPosition& SensorViewConfiguration::_internal_mounting_position() const {
  const ::osi3::MountingPosition* p = mounting_position_;
  return p != nullptr ? *p : reinterpret_cast<const ::osi3::MountingPosition&>(
      ::osi3::_MountingPosition_default_instance_);
}
inline const ::osi3::MountingPosition& SensorViewConfiguration::mounting_position() const {
  // @@protoc_insertion_point(field_get:osi3.SensorViewConfiguration.mounting_position)
  return _internal_mounting_position();
}
inline void SensorViewConfiguration::unsafe_arena_set_allocated_mounting_position(
    ::osi3::MountingPosition* mounting_position) {
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(mounting_position_);
  }
  mounting_position_ = mounting_position;
  if (mounting_position) {
    
  } else {
    
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:osi3.SensorViewConfiguration.mounting_position)
}
inline ::osi3::MountingPosition* SensorViewConfiguration::release_mounting_position() {
  
  ::osi3::MountingPosition* temp = mounting_position_;
  mounting_position_ = nullptr;
  if (GetArena() != nullptr) {
    temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  }
  return temp;
}
inline ::osi3::MountingPosition* SensorViewConfiguration::unsafe_arena_release_mounting_position() {
  // @@protoc_insertion_point(field_release:osi3.SensorViewConfiguration.mounting_position)
  
  ::osi3::MountingPosition* temp = mounting_position_;
  mounting_position_ = nullptr;
  return temp;
}
inline ::osi3::MountingPosition* SensorViewConfiguration::_internal_mutable_mounting_position() {
  
  if (mounting_position_ == nullptr) {
    auto* p = CreateMaybeMessage<::osi3::MountingPosition>(GetArena());
    mounting_position_ = p;
  }
  return mounting_position_;
}
inline ::osi3::MountingPosition* SensorViewConfiguration::mutable_mounting_position() {
  // @@protoc_insertion_point(field_mutable:osi3.SensorViewConfiguration.mounting_position)
  return _internal_mutable_mounting_position();
}
inline void SensorViewConfiguration::set_allocated_mounting_position(::osi3::MountingPosition* mounting_position) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  if (message_arena == nullptr) {
    delete reinterpret_cast< ::PROTOBUF_NAMESPACE_ID::MessageLite*>(mounting_position_);
  }
  if (mounting_position) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(mounting_position)->GetArena();
    if (message_arena != submessage_arena) {
      mounting_position = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, mounting_position, submessage_arena);
    }
    
  } else {
    
  }
  mounting_position_ = mounting_position;
  // @@protoc_insertion_point(field_set_allocated:osi3.SensorViewConfiguration.mounting_position)
}

// .osi3.MountingPosition mounting_position_rmse = 4;
inline bool SensorViewConfiguration::_internal_has_mounting_position_rmse() const {
  return this != internal_default_instance() && mounting_position_rmse_ != nullptr;
}
inline bool SensorViewConfiguration::has_mounting_position_rmse() const {
  return _internal_has_mounting_position_rmse();
}
inline const ::osi3::MountingPosition& SensorViewConfiguration::_internal_mounting_position_rmse() const {
  const ::osi3::MountingPosition* p = mounting_position_rmse_;
  return p != nullptr ? *p : reinterpret_cast<const ::osi3::MountingPosition&>(
      ::osi3::_MountingPosition_default_instance_);
}
inline const ::osi3::MountingPosition& SensorViewConfiguration::mounting_position_rmse() const {
  // @@protoc_insertion_point(field_get:osi3.SensorViewConfiguration.mounting_position_rmse)
  return _internal_mounting_position_rmse();
}
inline void SensorViewConfiguration::unsafe_arena_set_allocated_mounting_position_rmse(
    ::osi3::MountingPosition* mounting_position_rmse) {
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(mounting_position_rmse_);
  }
  mounting_position_rmse_ = mounting_position_rmse;
  if (mounting_position_rmse) {
    
  } else {
    
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:osi3.SensorViewConfiguration.mounting_position_rmse)
}
inline ::osi3::MountingPosition* SensorViewConfiguration::release_mounting_position_rmse() {
  
  ::osi3::MountingPosition* temp = mounting_position_rmse_;
  mounting_position_rmse_ = nullptr;
  if (GetArena() != nullptr) {
    temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  }
  return temp;
}
inline ::osi3::MountingPosition* SensorViewConfiguration::unsafe_arena_release_mounting_position_rmse() {
  // @@protoc_insertion_point(field_release:osi3.SensorViewConfiguration.mounting_position_rmse)
  
  ::osi3::MountingPosition* temp = mounting_position_rmse_;
  mounting_position_rmse_ = nullptr;
  return temp;
}
inline ::osi3::MountingPosition* SensorViewConfiguration::_internal_mutable_mounting_position_rmse() {
  
  if (mounting_position_rmse_ == nullptr) {
    auto* p = CreateMaybeMessage<::osi3::MountingPosition>(GetArena());
    mounting_position_rmse_ = p;
  }
  return mounting_position_rmse_;
}
inline ::osi3::MountingPosition* SensorViewConfiguration::mutable_mounting_position_rmse() {
  // @@protoc_insertion_point(field_mutable:osi3.SensorViewConfiguration.mounting_position_rmse)
  return _internal_mutable_mounting_position_rmse();
}
inline void SensorViewConfiguration::set_allocated_mounting_position_rmse(::osi3::MountingPosition* mounting_position_rmse) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  if (message_arena == nullptr) {
    delete reinterpret_cast< ::PROTOBUF_NAMESPACE_ID::MessageLite*>(mounting_position_rmse_);
  }
  if (mounting_position_rmse) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(mounting_position_rmse)->GetArena();
    if (message_arena != submessage_arena) {
      mounting_position_rmse = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, mounting_position_rmse, submessage_arena);
    }
    
  } else {
    
  }
  mounting_position_rmse_ = mounting_position_rmse;
  // @@protoc_insertion_point(field_set_allocated:osi3.SensorViewConfiguration.mounting_position_rmse)
}

// double field_of_view_horizontal = 5;
inline void SensorViewConfiguration::clear_field_of_view_horizontal() {
  field_of_view_horizontal_ = 0;
}
inline double SensorViewConfiguration::_internal_field_of_view_horizontal() const {
  return field_of_view_horizontal_;
}
inline double SensorViewConfiguration::field_of_view_horizontal() const {
  // @@protoc_insertion_point(field_get:osi3.SensorViewConfiguration.field_of_view_horizontal)
  return _internal_field_of_view_horizontal();
}
inline void SensorViewConfiguration::_internal_set_field_of_view_horizontal(double value) {
  
  field_of_view_horizontal_ = value;
}
inline void SensorViewConfiguration::set_field_of_view_horizontal(double value) {
  _internal_set_field_of_view_horizontal(value);
  // @@protoc_insertion_point(field_set:osi3.SensorViewConfiguration.field_of_view_horizontal)
}

// double field_of_view_vertical = 6;
inline void SensorViewConfiguration::clear_field_of_view_vertical() {
  field_of_view_vertical_ = 0;
}
inline double SensorViewConfiguration::_internal_field_of_view_vertical() const {
  return field_of_view_vertical_;
}
inline double SensorViewConfiguration::field_of_view_vertical() const {
  // @@protoc_insertion_point(field_get:osi3.SensorViewConfiguration.field_of_view_vertical)
  return _internal_field_of_view_vertical();
}
inline void SensorViewConfiguration::_internal_set_field_of_view_vertical(double value) {
  
  field_of_view_vertical_ = value;
}
inline void SensorViewConfiguration::set_field_of_view_vertical(double value) {
  _internal_set_field_of_view_vertical(value);
  // @@protoc_insertion_point(field_set:osi3.SensorViewConfiguration.field_of_view_vertical)
}

// double range = 7;
inline void SensorViewConfiguration::clear_range() {
  range_ = 0;
}
inline double SensorViewConfiguration::_internal_range() const {
  return range_;
}
inline double SensorViewConfiguration::range() const {
  // @@protoc_insertion_point(field_get:osi3.SensorViewConfiguration.range)
  return _internal_range();
}
inline void SensorViewConfiguration::_internal_set_range(double value) {
  
  range_ = value;
}
inline void SensorViewConfiguration::set_range(double value) {
  _internal_set_range(value);
  // @@protoc_insertion_point(field_set:osi3.SensorViewConfiguration.range)
}

// .osi3.Timestamp update_cycle_time = 8;
inline bool SensorViewConfiguration::_internal_has_update_cycle_time() const {
  return this != internal_default_instance() && update_cycle_time_ != nullptr;
}
inline bool SensorViewConfiguration::has_update_cycle_time() const {
  return _internal_has_update_cycle_time();
}
inline const ::osi3::Timestamp& SensorViewConfiguration::_internal_update_cycle_time() const {
  const ::osi3::Timestamp* p = update_cycle_time_;
  return p != nullptr ? *p : reinterpret_cast<const ::osi3::Timestamp&>(
      ::osi3::_Timestamp_default_instance_);
}
inline const ::osi3::Timestamp& SensorViewConfiguration::update_cycle_time() const {
  // @@protoc_insertion_point(field_get:osi3.SensorViewConfiguration.update_cycle_time)
  return _internal_update_cycle_time();
}
inline void SensorViewConfiguration::unsafe_arena_set_allocated_update_cycle_time(
    ::osi3::Timestamp* update_cycle_time) {
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(update_cycle_time_);
  }
  update_cycle_time_ = update_cycle_time;
  if (update_cycle_time) {
    
  } else {
    
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:osi3.SensorViewConfiguration.update_cycle_time)
}
inline ::osi3::Timestamp* SensorViewConfiguration::release_update_cycle_time() {
  
  ::osi3::Timestamp* temp = update_cycle_time_;
  update_cycle_time_ = nullptr;
  if (GetArena() != nullptr) {
    temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  }
  return temp;
}
inline ::osi3::Timestamp* SensorViewConfiguration::unsafe_arena_release_update_cycle_time() {
  // @@protoc_insertion_point(field_release:osi3.SensorViewConfiguration.update_cycle_time)
  
  ::osi3::Timestamp* temp = update_cycle_time_;
  update_cycle_time_ = nullptr;
  return temp;
}
inline ::osi3::Timestamp* SensorViewConfiguration::_internal_mutable_update_cycle_time() {
  
  if (update_cycle_time_ == nullptr) {
    auto* p = CreateMaybeMessage<::osi3::Timestamp>(GetArena());
    update_cycle_time_ = p;
  }
  return update_cycle_time_;
}
inline ::osi3::Timestamp* SensorViewConfiguration::mutable_update_cycle_time() {
  // @@protoc_insertion_point(field_mutable:osi3.SensorViewConfiguration.update_cycle_time)
  return _internal_mutable_update_cycle_time();
}
inline void SensorViewConfiguration::set_allocated_update_cycle_time(::osi3::Timestamp* update_cycle_time) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  if (message_arena == nullptr) {
    delete reinterpret_cast< ::PROTOBUF_NAMESPACE_ID::MessageLite*>(update_cycle_time_);
  }
  if (update_cycle_time) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(update_cycle_time)->GetArena();
    if (message_arena != submessage_arena) {
      update_cycle_time = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, update_cycle_time, submessage_arena);
    }
    
  } else {
    
  }
  update_cycle_time_ = update_cycle_time;
  // @@protoc_insertion_point(field_set_allocated:osi3.SensorViewConfiguration.update_cycle_time)
}

// .osi3.Timestamp update_cycle_offset = 9;
inline bool SensorViewConfiguration::_internal_has_update_cycle_offset() const {
  return this != internal_default_instance() && update_cycle_offset_ != nullptr;
}
inline bool SensorViewConfiguration::has_update_cycle_offset() const {
  return _internal_has_update_cycle_offset();
}
inline const ::osi3::Timestamp& SensorViewConfiguration::_internal_update_cycle_offset() const {
  const ::osi3::Timestamp* p = update_cycle_offset_;
  return p != nullptr ? *p : reinterpret_cast<const ::osi3::Timestamp&>(
      ::osi3::_Timestamp_default_instance_);
}
inline const ::osi3::Timestamp& SensorViewConfiguration::update_cycle_offset() const {
  // @@protoc_insertion_point(field_get:osi3.SensorViewConfiguration.update_cycle_offset)
  return _internal_update_cycle_offset();
}
inline void SensorViewConfiguration::unsafe_arena_set_allocated_update_cycle_offset(
    ::osi3::Timestamp* update_cycle_offset) {
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(update_cycle_offset_);
  }
  update_cycle_offset_ = update_cycle_offset;
  if (update_cycle_offset) {
    
  } else {
    
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:osi3.SensorViewConfiguration.update_cycle_offset)
}
inline ::osi3::Timestamp* SensorViewConfiguration::release_update_cycle_offset() {
  
  ::osi3::Timestamp* temp = update_cycle_offset_;
  update_cycle_offset_ = nullptr;
  if (GetArena() != nullptr) {
    temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  }
  return temp;
}
inline ::osi3::Timestamp* SensorViewConfiguration::unsafe_arena_release_update_cycle_offset() {
  // @@protoc_insertion_point(field_release:osi3.SensorViewConfiguration.update_cycle_offset)
  
  ::osi3::Timestamp* temp = update_cycle_offset_;
  update_cycle_offset_ = nullptr;
  return temp;
}
inline ::osi3::Timestamp* SensorViewConfiguration::_internal_mutable_update_cycle_offset() {
  
  if (update_cycle_offset_ == nullptr) {
    auto* p = CreateMaybeMessage<::osi3::Timestamp>(GetArena());
    update_cycle_offset_ = p;
  }
  return update_cycle_offset_;
}
inline ::osi3::Timestamp* SensorViewConfiguration::mutable_update_cycle_offset() {
  // @@protoc_insertion_point(field_mutable:osi3.SensorViewConfiguration.update_cycle_offset)
  return _internal_mutable_update_cycle_offset();
}
inline void SensorViewConfiguration::set_allocated_update_cycle_offset(::osi3::Timestamp* update_cycle_offset) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  if (message_arena == nullptr) {
    delete reinterpret_cast< ::PROTOBUF_NAMESPACE_ID::MessageLite*>(update_cycle_offset_);
  }
  if (update_cycle_offset) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(update_cycle_offset)->GetArena();
    if (message_arena != submessage_arena) {
      update_cycle_offset = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, update_cycle_offset, submessage_arena);
    }
    
  } else {
    
  }
  update_cycle_offset_ = update_cycle_offset;
  // @@protoc_insertion_point(field_set_allocated:osi3.SensorViewConfiguration.update_cycle_offset)
}

// .osi3.Timestamp simulation_start_time = 10;
inline bool SensorViewConfiguration::_internal_has_simulation_start_time() const {
  return this != internal_default_instance() && simulation_start_time_ != nullptr;
}
inline bool SensorViewConfiguration::has_simulation_start_time() const {
  return _internal_has_simulation_start_time();
}
inline const ::osi3::Timestamp& SensorViewConfiguration::_internal_simulation_start_time() const {
  const ::osi3::Timestamp* p = simulation_start_time_;
  return p != nullptr ? *p : reinterpret_cast<const ::osi3::Timestamp&>(
      ::osi3::_Timestamp_default_instance_);
}
inline const ::osi3::Timestamp& SensorViewConfiguration::simulation_start_time() const {
  // @@protoc_insertion_point(field_get:osi3.SensorViewConfiguration.simulation_start_time)
  return _internal_simulation_start_time();
}
inline void SensorViewConfiguration::unsafe_arena_set_allocated_simulation_start_time(
    ::osi3::Timestamp* simulation_start_time) {
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(simulation_start_time_);
  }
  simulation_start_time_ = simulation_start_time;
  if (simulation_start_time) {
    
  } else {
    
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:osi3.SensorViewConfiguration.simulation_start_time)
}
inline ::osi3::Timestamp* SensorViewConfiguration::release_simulation_start_time() {
  
  ::osi3::Timestamp* temp = simulation_start_time_;
  simulation_start_time_ = nullptr;
  if (GetArena() != nullptr) {
    temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  }
  return temp;
}
inline ::osi3::Timestamp* SensorViewConfiguration::unsafe_arena_release_simulation_start_time() {
  // @@protoc_insertion_point(field_release:osi3.SensorViewConfiguration.simulation_start_time)
  
  ::osi3::Timestamp* temp = simulation_start_time_;
  simulation_start_time_ = nullptr;
  return temp;
}
inline ::osi3::Timestamp* SensorViewConfiguration::_internal_mutable_simulation_start_time() {
  
  if (simulation_start_time_ == nullptr) {
    auto* p = CreateMaybeMessage<::osi3::Timestamp>(GetArena());
    simulation_start_time_ = p;
  }
  return simulation_start_time_;
}
inline ::osi3::Timestamp* SensorViewConfiguration::mutable_simulation_start_time() {
  // @@protoc_insertion_point(field_mutable:osi3.SensorViewConfiguration.simulation_start_time)
  return _internal_mutable_simulation_start_time();
}
inline void SensorViewConfiguration::set_allocated_simulation_start_time(::osi3::Timestamp* simulation_start_time) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  if (message_arena == nullptr) {
    delete reinterpret_cast< ::PROTOBUF_NAMESPACE_ID::MessageLite*>(simulation_start_time_);
  }
  if (simulation_start_time) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(simulation_start_time)->GetArena();
    if (message_arena != submessage_arena) {
      simulation_start_time = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, simulation_start_time, submessage_arena);
    }
    
  } else {
    
  }
  simulation_start_time_ = simulation_start_time;
  // @@protoc_insertion_point(field_set_allocated:osi3.SensorViewConfiguration.simulation_start_time)
}

// repeated .osi3.GenericSensorViewConfiguration generic_sensor_view_configuration = 1000;
inline int SensorViewConfiguration::_internal_generic_sensor_view_configuration_size() const {
  return generic_sensor_view_configuration_.size();
}
inline int SensorViewConfiguration::generic_sensor_view_configuration_size() const {
  return _internal_generic_sensor_view_configuration_size();
}
inline void SensorViewConfiguration::clear_generic_sensor_view_configuration() {
  generic_sensor_view_configuration_.Clear();
}
inline ::osi3::GenericSensorViewConfiguration* SensorViewConfiguration::mutable_generic_sensor_view_configuration(int index) {
  // @@protoc_insertion_point(field_mutable:osi3.SensorViewConfiguration.generic_sensor_view_configuration)
  return generic_sensor_view_configuration_.Mutable(index);
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::osi3::GenericSensorViewConfiguration >*
SensorViewConfiguration::mutable_generic_sensor_view_configuration() {
  // @@protoc_insertion_point(field_mutable_list:osi3.SensorViewConfiguration.generic_sensor_view_configuration)
  return &generic_sensor_view_configuration_;
}
inline const ::osi3::GenericSensorViewConfiguration& SensorViewConfiguration::_internal_generic_sensor_view_configuration(int index) const {
  return generic_sensor_view_configuration_.Get(index);
}
inline const ::osi3::GenericSensorViewConfiguration& SensorViewConfiguration::generic_sensor_view_configuration(int index) const {
  // @@protoc_insertion_point(field_get:osi3.SensorViewConfiguration.generic_sensor_view_configuration)
  return _internal_generic_sensor_view_configuration(index);
}
inline ::osi3::GenericSensorViewConfiguration* SensorViewConfiguration::_internal_add_generic_sensor_view_configuration() {
  return generic_sensor_view_configuration_.Add();
}
inline ::osi3::GenericSensorViewConfiguration* SensorViewConfiguration::add_generic_sensor_view_configuration() {
  // @@protoc_insertion_point(field_add:osi3.SensorViewConfiguration.generic_sensor_view_configuration)
  return _internal_add_generic_sensor_view_configuration();
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::osi3::GenericSensorViewConfiguration >&
SensorViewConfiguration::generic_sensor_view_configuration() const {
  // @@protoc_insertion_point(field_list:osi3.SensorViewConfiguration.generic_sensor_view_configuration)
  return generic_sensor_view_configuration_;
}

// repeated .osi3.RadarSensorViewConfiguration radar_sensor_view_configuration = 1001;
inline int SensorViewConfiguration::_internal_radar_sensor_view_configuration_size() const {
  return radar_sensor_view_configuration_.size();
}
inline int SensorViewConfiguration::radar_sensor_view_configuration_size() const {
  return _internal_radar_sensor_view_configuration_size();
}
inline void SensorViewConfiguration::clear_radar_sensor_view_configuration() {
  radar_sensor_view_configuration_.Clear();
}
inline ::osi3::RadarSensorViewConfiguration* SensorViewConfiguration::mutable_radar_sensor_view_configuration(int index) {
  // @@protoc_insertion_point(field_mutable:osi3.SensorViewConfiguration.radar_sensor_view_configuration)
  return radar_sensor_view_configuration_.Mutable(index);
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::osi3::RadarSensorViewConfiguration >*
SensorViewConfiguration::mutable_radar_sensor_view_configuration() {
  // @@protoc_insertion_point(field_mutable_list:osi3.SensorViewConfiguration.radar_sensor_view_configuration)
  return &radar_sensor_view_configuration_;
}
inline const ::osi3::RadarSensorViewConfiguration& SensorViewConfiguration::_internal_radar_sensor_view_configuration(int index) const {
  return radar_sensor_view_configuration_.Get(index);
}
inline const ::osi3::RadarSensorViewConfiguration& SensorViewConfiguration::radar_sensor_view_configuration(int index) const {
  // @@protoc_insertion_point(field_get:osi3.SensorViewConfiguration.radar_sensor_view_configuration)
  return _internal_radar_sensor_view_configuration(index);
}
inline ::osi3::RadarSensorViewConfiguration* SensorViewConfiguration::_internal_add_radar_sensor_view_configuration() {
  return radar_sensor_view_configuration_.Add();
}
inline ::osi3::RadarSensorViewConfiguration* SensorViewConfiguration::add_radar_sensor_view_configuration() {
  // @@protoc_insertion_point(field_add:osi3.SensorViewConfiguration.radar_sensor_view_configuration)
  return _internal_add_radar_sensor_view_configuration();
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::osi3::RadarSensorViewConfiguration >&
SensorViewConfiguration::radar_sensor_view_configuration() const {
  // @@protoc_insertion_point(field_list:osi3.SensorViewConfiguration.radar_sensor_view_configuration)
  return radar_sensor_view_configuration_;
}

// repeated .osi3.LidarSensorViewConfiguration lidar_sensor_view_configuration = 1002;
inline int SensorViewConfiguration::_internal_lidar_sensor_view_configuration_size() const {
  return lidar_sensor_view_configuration_.size();
}
inline int SensorViewConfiguration::lidar_sensor_view_configuration_size() const {
  return _internal_lidar_sensor_view_configuration_size();
}
inline void SensorViewConfiguration::clear_lidar_sensor_view_configuration() {
  lidar_sensor_view_configuration_.Clear();
}
inline ::osi3::LidarSensorViewConfiguration* SensorViewConfiguration::mutable_lidar_sensor_view_configuration(int index) {
  // @@protoc_insertion_point(field_mutable:osi3.SensorViewConfiguration.lidar_sensor_view_configuration)
  return lidar_sensor_view_configuration_.Mutable(index);
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::osi3::LidarSensorViewConfiguration >*
SensorViewConfiguration::mutable_lidar_sensor_view_configuration() {
  // @@protoc_insertion_point(field_mutable_list:osi3.SensorViewConfiguration.lidar_sensor_view_configuration)
  return &lidar_sensor_view_configuration_;
}
inline const ::osi3::LidarSensorViewConfiguration& SensorViewConfiguration::_internal_lidar_sensor_view_configuration(int index) const {
  return lidar_sensor_view_configuration_.Get(index);
}
inline const ::osi3::LidarSensorViewConfiguration& SensorViewConfiguration::lidar_sensor_view_configuration(int index) const {
  // @@protoc_insertion_point(field_get:osi3.SensorViewConfiguration.lidar_sensor_view_configuration)
  return _internal_lidar_sensor_view_configuration(index);
}
inline ::osi3::LidarSensorViewConfiguration* SensorViewConfiguration::_internal_add_lidar_sensor_view_configuration() {
  return lidar_sensor_view_configuration_.Add();
}
inline ::osi3::LidarSensorViewConfiguration* SensorViewConfiguration::add_lidar_sensor_view_configuration() {
  // @@protoc_insertion_point(field_add:osi3.SensorViewConfiguration.lidar_sensor_view_configuration)
  return _internal_add_lidar_sensor_view_configuration();
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::osi3::LidarSensorViewConfiguration >&
SensorViewConfiguration::lidar_sensor_view_configuration() const {
  // @@protoc_insertion_point(field_list:osi3.SensorViewConfiguration.lidar_sensor_view_configuration)
  return lidar_sensor_view_configuration_;
}

// repeated .osi3.CameraSensorViewConfiguration camera_sensor_view_configuration = 1003;
inline int SensorViewConfiguration::_internal_camera_sensor_view_configuration_size() const {
  return camera_sensor_view_configuration_.size();
}
inline int SensorViewConfiguration::camera_sensor_view_configuration_size() const {
  return _internal_camera_sensor_view_configuration_size();
}
inline void SensorViewConfiguration::clear_camera_sensor_view_configuration() {
  camera_sensor_view_configuration_.Clear();
}
inline ::osi3::CameraSensorViewConfiguration* SensorViewConfiguration::mutable_camera_sensor_view_configuration(int index) {
  // @@protoc_insertion_point(field_mutable:osi3.SensorViewConfiguration.camera_sensor_view_configuration)
  return camera_sensor_view_configuration_.Mutable(index);
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::osi3::CameraSensorViewConfiguration >*
SensorViewConfiguration::mutable_camera_sensor_view_configuration() {
  // @@protoc_insertion_point(field_mutable_list:osi3.SensorViewConfiguration.camera_sensor_view_configuration)
  return &camera_sensor_view_configuration_;
}
inline const ::osi3::CameraSensorViewConfiguration& SensorViewConfiguration::_internal_camera_sensor_view_configuration(int index) const {
  return camera_sensor_view_configuration_.Get(index);
}
inline const ::osi3::CameraSensorViewConfiguration& SensorViewConfiguration::camera_sensor_view_configuration(int index) const {
  // @@protoc_insertion_point(field_get:osi3.SensorViewConfiguration.camera_sensor_view_configuration)
  return _internal_camera_sensor_view_configuration(index);
}
inline ::osi3::CameraSensorViewConfiguration* SensorViewConfiguration::_internal_add_camera_sensor_view_configuration() {
  return camera_sensor_view_configuration_.Add();
}
inline ::osi3::CameraSensorViewConfiguration* SensorViewConfiguration::add_camera_sensor_view_configuration() {
  // @@protoc_insertion_point(field_add:osi3.SensorViewConfiguration.camera_sensor_view_configuration)
  return _internal_add_camera_sensor_view_configuration();
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::osi3::CameraSensorViewConfiguration >&
SensorViewConfiguration::camera_sensor_view_configuration() const {
  // @@protoc_insertion_point(field_list:osi3.SensorViewConfiguration.camera_sensor_view_configuration)
  return camera_sensor_view_configuration_;
}

// repeated .osi3.UltrasonicSensorViewConfiguration ultrasonic_sensor_view_configuration = 1004;
inline int SensorViewConfiguration::_internal_ultrasonic_sensor_view_configuration_size() const {
  return ultrasonic_sensor_view_configuration_.size();
}
inline int SensorViewConfiguration::ultrasonic_sensor_view_configuration_size() const {
  return _internal_ultrasonic_sensor_view_configuration_size();
}
inline void SensorViewConfiguration::clear_ultrasonic_sensor_view_configuration() {
  ultrasonic_sensor_view_configuration_.Clear();
}
inline ::osi3::UltrasonicSensorViewConfiguration* SensorViewConfiguration::mutable_ultrasonic_sensor_view_configuration(int index) {
  // @@protoc_insertion_point(field_mutable:osi3.SensorViewConfiguration.ultrasonic_sensor_view_configuration)
  return ultrasonic_sensor_view_configuration_.Mutable(index);
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::osi3::UltrasonicSensorViewConfiguration >*
SensorViewConfiguration::mutable_ultrasonic_sensor_view_configuration() {
  // @@protoc_insertion_point(field_mutable_list:osi3.SensorViewConfiguration.ultrasonic_sensor_view_configuration)
  return &ultrasonic_sensor_view_configuration_;
}
inline const ::osi3::UltrasonicSensorViewConfiguration& SensorViewConfiguration::_internal_ultrasonic_sensor_view_configuration(int index) const {
  return ultrasonic_sensor_view_configuration_.Get(index);
}
inline const ::osi3::UltrasonicSensorViewConfiguration& SensorViewConfiguration::ultrasonic_sensor_view_configuration(int index) const {
  // @@protoc_insertion_point(field_get:osi3.SensorViewConfiguration.ultrasonic_sensor_view_configuration)
  return _internal_ultrasonic_sensor_view_configuration(index);
}
inline ::osi3::UltrasonicSensorViewConfiguration* SensorViewConfiguration::_internal_add_ultrasonic_sensor_view_configuration() {
  return ultrasonic_sensor_view_configuration_.Add();
}
inline ::osi3::UltrasonicSensorViewConfiguration* SensorViewConfiguration::add_ultrasonic_sensor_view_configuration() {
  // @@protoc_insertion_point(field_add:osi3.SensorViewConfiguration.ultrasonic_sensor_view_configuration)
  return _internal_add_ultrasonic_sensor_view_configuration();
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::osi3::UltrasonicSensorViewConfiguration >&
SensorViewConfiguration::ultrasonic_sensor_view_configuration() const {
  // @@protoc_insertion_point(field_list:osi3.SensorViewConfiguration.ultrasonic_sensor_view_configuration)
  return ultrasonic_sensor_view_configuration_;
}

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

// GenericSensorViewConfiguration

// .osi3.Identifier sensor_id = 1;
inline bool GenericSensorViewConfiguration::_internal_has_sensor_id() const {
  return this != internal_default_instance() && sensor_id_ != nullptr;
}
inline bool GenericSensorViewConfiguration::has_sensor_id() const {
  return _internal_has_sensor_id();
}
inline const ::osi3::Identifier& GenericSensorViewConfiguration::_internal_sensor_id() const {
  const ::osi3::Identifier* p = sensor_id_;
  return p != nullptr ? *p : reinterpret_cast<const ::osi3::Identifier&>(
      ::osi3::_Identifier_default_instance_);
}
inline const ::osi3::Identifier& GenericSensorViewConfiguration::sensor_id() const {
  // @@protoc_insertion_point(field_get:osi3.GenericSensorViewConfiguration.sensor_id)
  return _internal_sensor_id();
}
inline void GenericSensorViewConfiguration::unsafe_arena_set_allocated_sensor_id(
    ::osi3::Identifier* sensor_id) {
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(sensor_id_);
  }
  sensor_id_ = sensor_id;
  if (sensor_id) {
    
  } else {
    
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:osi3.GenericSensorViewConfiguration.sensor_id)
}
inline ::osi3::Identifier* GenericSensorViewConfiguration::release_sensor_id() {
  
  ::osi3::Identifier* temp = sensor_id_;
  sensor_id_ = nullptr;
  if (GetArena() != nullptr) {
    temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  }
  return temp;
}
inline ::osi3::Identifier* GenericSensorViewConfiguration::unsafe_arena_release_sensor_id() {
  // @@protoc_insertion_point(field_release:osi3.GenericSensorViewConfiguration.sensor_id)
  
  ::osi3::Identifier* temp = sensor_id_;
  sensor_id_ = nullptr;
  return temp;
}
inline ::osi3::Identifier* GenericSensorViewConfiguration::_internal_mutable_sensor_id() {
  
  if (sensor_id_ == nullptr) {
    auto* p = CreateMaybeMessage<::osi3::Identifier>(GetArena());
    sensor_id_ = p;
  }
  return sensor_id_;
}
inline ::osi3::Identifier* GenericSensorViewConfiguration::mutable_sensor_id() {
  // @@protoc_insertion_point(field_mutable:osi3.GenericSensorViewConfiguration.sensor_id)
  return _internal_mutable_sensor_id();
}
inline void GenericSensorViewConfiguration::set_allocated_sensor_id(::osi3::Identifier* sensor_id) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  if (message_arena == nullptr) {
    delete reinterpret_cast< ::PROTOBUF_NAMESPACE_ID::MessageLite*>(sensor_id_);
  }
  if (sensor_id) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(sensor_id)->GetArena();
    if (message_arena != submessage_arena) {
      sensor_id = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, sensor_id, submessage_arena);
    }
    
  } else {
    
  }
  sensor_id_ = sensor_id;
  // @@protoc_insertion_point(field_set_allocated:osi3.GenericSensorViewConfiguration.sensor_id)
}

// .osi3.MountingPosition mounting_position = 2;
inline bool GenericSensorViewConfiguration::_internal_has_mounting_position() const {
  return this != internal_default_instance() && mounting_position_ != nullptr;
}
inline bool GenericSensorViewConfiguration::has_mounting_position() const {
  return _internal_has_mounting_position();
}
inline const ::osi3::MountingPosition& GenericSensorViewConfiguration::_internal_mounting_position() const {
  const ::osi3::MountingPosition* p = mounting_position_;
  return p != nullptr ? *p : reinterpret_cast<const ::osi3::MountingPosition&>(
      ::osi3::_MountingPosition_default_instance_);
}
inline const ::osi3::MountingPosition& GenericSensorViewConfiguration::mounting_position() const {
  // @@protoc_insertion_point(field_get:osi3.GenericSensorViewConfiguration.mounting_position)
  return _internal_mounting_position();
}
inline void GenericSensorViewConfiguration::unsafe_arena_set_allocated_mounting_position(
    ::osi3::MountingPosition* mounting_position) {
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(mounting_position_);
  }
  mounting_position_ = mounting_position;
  if (mounting_position) {
    
  } else {
    
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:osi3.GenericSensorViewConfiguration.mounting_position)
}
inline ::osi3::MountingPosition* GenericSensorViewConfiguration::release_mounting_position() {
  
  ::osi3::MountingPosition* temp = mounting_position_;
  mounting_position_ = nullptr;
  if (GetArena() != nullptr) {
    temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  }
  return temp;
}
inline ::osi3::MountingPosition* GenericSensorViewConfiguration::unsafe_arena_release_mounting_position() {
  // @@protoc_insertion_point(field_release:osi3.GenericSensorViewConfiguration.mounting_position)
  
  ::osi3::MountingPosition* temp = mounting_position_;
  mounting_position_ = nullptr;
  return temp;
}
inline ::osi3::MountingPosition* GenericSensorViewConfiguration::_internal_mutable_mounting_position() {
  
  if (mounting_position_ == nullptr) {
    auto* p = CreateMaybeMessage<::osi3::MountingPosition>(GetArena());
    mounting_position_ = p;
  }
  return mounting_position_;
}
inline ::osi3::MountingPosition* GenericSensorViewConfiguration::mutable_mounting_position() {
  // @@protoc_insertion_point(field_mutable:osi3.GenericSensorViewConfiguration.mounting_position)
  return _internal_mutable_mounting_position();
}
inline void GenericSensorViewConfiguration::set_allocated_mounting_position(::osi3::MountingPosition* mounting_position) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  if (message_arena == nullptr) {
    delete reinterpret_cast< ::PROTOBUF_NAMESPACE_ID::MessageLite*>(mounting_position_);
  }
  if (mounting_position) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(mounting_position)->GetArena();
    if (message_arena != submessage_arena) {
      mounting_position = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, mounting_position, submessage_arena);
    }
    
  } else {
    
  }
  mounting_position_ = mounting_position;
  // @@protoc_insertion_point(field_set_allocated:osi3.GenericSensorViewConfiguration.mounting_position)
}

// .osi3.MountingPosition mounting_position_rmse = 3;
inline bool GenericSensorViewConfiguration::_internal_has_mounting_position_rmse() const {
  return this != internal_default_instance() && mounting_position_rmse_ != nullptr;
}
inline bool GenericSensorViewConfiguration::has_mounting_position_rmse() const {
  return _internal_has_mounting_position_rmse();
}
inline const ::osi3::MountingPosition& GenericSensorViewConfiguration::_internal_mounting_position_rmse() const {
  const ::osi3::MountingPosition* p = mounting_position_rmse_;
  return p != nullptr ? *p : reinterpret_cast<const ::osi3::MountingPosition&>(
      ::osi3::_MountingPosition_default_instance_);
}
inline const ::osi3::MountingPosition& GenericSensorViewConfiguration::mounting_position_rmse() const {
  // @@protoc_insertion_point(field_get:osi3.GenericSensorViewConfiguration.mounting_position_rmse)
  return _internal_mounting_position_rmse();
}
inline void GenericSensorViewConfiguration::unsafe_arena_set_allocated_mounting_position_rmse(
    ::osi3::MountingPosition* mounting_position_rmse) {
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(mounting_position_rmse_);
  }
  mounting_position_rmse_ = mounting_position_rmse;
  if (mounting_position_rmse) {
    
  } else {
    
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:osi3.GenericSensorViewConfiguration.mounting_position_rmse)
}
inline ::osi3::MountingPosition* GenericSensorViewConfiguration::release_mounting_position_rmse() {
  
  ::osi3::MountingPosition* temp = mounting_position_rmse_;
  mounting_position_rmse_ = nullptr;
  if (GetArena() != nullptr) {
    temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  }
  return temp;
}
inline ::osi3::MountingPosition* GenericSensorViewConfiguration::unsafe_arena_release_mounting_position_rmse() {
  // @@protoc_insertion_point(field_release:osi3.GenericSensorViewConfiguration.mounting_position_rmse)
  
  ::osi3::MountingPosition* temp = mounting_position_rmse_;
  mounting_position_rmse_ = nullptr;
  return temp;
}
inline ::osi3::MountingPosition* GenericSensorViewConfiguration::_internal_mutable_mounting_position_rmse() {
  
  if (mounting_position_rmse_ == nullptr) {
    auto* p = CreateMaybeMessage<::osi3::MountingPosition>(GetArena());
    mounting_position_rmse_ = p;
  }
  return mounting_position_rmse_;
}
inline ::osi3::MountingPosition* GenericSensorViewConfiguration::mutable_mounting_position_rmse() {
  // @@protoc_insertion_point(field_mutable:osi3.GenericSensorViewConfiguration.mounting_position_rmse)
  return _internal_mutable_mounting_position_rmse();
}
inline void GenericSensorViewConfiguration::set_allocated_mounting_position_rmse(::osi3::MountingPosition* mounting_position_rmse) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  if (message_arena == nullptr) {
    delete reinterpret_cast< ::PROTOBUF_NAMESPACE_ID::MessageLite*>(mounting_position_rmse_);
  }
  if (mounting_position_rmse) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(mounting_position_rmse)->GetArena();
    if (message_arena != submessage_arena) {
      mounting_position_rmse = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, mounting_position_rmse, submessage_arena);
    }
    
  } else {
    
  }
  mounting_position_rmse_ = mounting_position_rmse;
  // @@protoc_insertion_point(field_set_allocated:osi3.GenericSensorViewConfiguration.mounting_position_rmse)
}

// double field_of_view_horizontal = 4;
inline void GenericSensorViewConfiguration::clear_field_of_view_horizontal() {
  field_of_view_horizontal_ = 0;
}
inline double GenericSensorViewConfiguration::_internal_field_of_view_horizontal() const {
  return field_of_view_horizontal_;
}
inline double GenericSensorViewConfiguration::field_of_view_horizontal() const {
  // @@protoc_insertion_point(field_get:osi3.GenericSensorViewConfiguration.field_of_view_horizontal)
  return _internal_field_of_view_horizontal();
}
inline void GenericSensorViewConfiguration::_internal_set_field_of_view_horizontal(double value) {
  
  field_of_view_horizontal_ = value;
}
inline void GenericSensorViewConfiguration::set_field_of_view_horizontal(double value) {
  _internal_set_field_of_view_horizontal(value);
  // @@protoc_insertion_point(field_set:osi3.GenericSensorViewConfiguration.field_of_view_horizontal)
}

// double field_of_view_vertical = 5;
inline void GenericSensorViewConfiguration::clear_field_of_view_vertical() {
  field_of_view_vertical_ = 0;
}
inline double GenericSensorViewConfiguration::_internal_field_of_view_vertical() const {
  return field_of_view_vertical_;
}
inline double GenericSensorViewConfiguration::field_of_view_vertical() const {
  // @@protoc_insertion_point(field_get:osi3.GenericSensorViewConfiguration.field_of_view_vertical)
  return _internal_field_of_view_vertical();
}
inline void GenericSensorViewConfiguration::_internal_set_field_of_view_vertical(double value) {
  
  field_of_view_vertical_ = value;
}
inline void GenericSensorViewConfiguration::set_field_of_view_vertical(double value) {
  _internal_set_field_of_view_vertical(value);
  // @@protoc_insertion_point(field_set:osi3.GenericSensorViewConfiguration.field_of_view_vertical)
}

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

// RadarSensorViewConfiguration_AntennaDiagramEntry

// double horizontal_angle = 1;
inline void RadarSensorViewConfiguration_AntennaDiagramEntry::clear_horizontal_angle() {
  horizontal_angle_ = 0;
}
inline double RadarSensorViewConfiguration_AntennaDiagramEntry::_internal_horizontal_angle() const {
  return horizontal_angle_;
}
inline double RadarSensorViewConfiguration_AntennaDiagramEntry::horizontal_angle() const {
  // @@protoc_insertion_point(field_get:osi3.RadarSensorViewConfiguration.AntennaDiagramEntry.horizontal_angle)
  return _internal_horizontal_angle();
}
inline void RadarSensorViewConfiguration_AntennaDiagramEntry::_internal_set_horizontal_angle(double value) {
  
  horizontal_angle_ = value;
}
inline void RadarSensorViewConfiguration_AntennaDiagramEntry::set_horizontal_angle(double value) {
  _internal_set_horizontal_angle(value);
  // @@protoc_insertion_point(field_set:osi3.RadarSensorViewConfiguration.AntennaDiagramEntry.horizontal_angle)
}

// double vertical_angle = 2;
inline void RadarSensorViewConfiguration_AntennaDiagramEntry::clear_vertical_angle() {
  vertical_angle_ = 0;
}
inline double RadarSensorViewConfiguration_AntennaDiagramEntry::_internal_vertical_angle() const {
  return vertical_angle_;
}
inline double RadarSensorViewConfiguration_AntennaDiagramEntry::vertical_angle() const {
  // @@protoc_insertion_point(field_get:osi3.RadarSensorViewConfiguration.AntennaDiagramEntry.vertical_angle)
  return _internal_vertical_angle();
}
inline void RadarSensorViewConfiguration_AntennaDiagramEntry::_internal_set_vertical_angle(double value) {
  
  vertical_angle_ = value;
}
inline void RadarSensorViewConfiguration_AntennaDiagramEntry::set_vertical_angle(double value) {
  _internal_set_vertical_angle(value);
  // @@protoc_insertion_point(field_set:osi3.RadarSensorViewConfiguration.AntennaDiagramEntry.vertical_angle)
}

// double response = 3;
inline void RadarSensorViewConfiguration_AntennaDiagramEntry::clear_response() {
  response_ = 0;
}
inline double RadarSensorViewConfiguration_AntennaDiagramEntry::_internal_response() const {
  return response_;
}
inline double RadarSensorViewConfiguration_AntennaDiagramEntry::response() const {
  // @@protoc_insertion_point(field_get:osi3.RadarSensorViewConfiguration.AntennaDiagramEntry.response)
  return _internal_response();
}
inline void RadarSensorViewConfiguration_AntennaDiagramEntry::_internal_set_response(double value) {
  
  response_ = value;
}
inline void RadarSensorViewConfiguration_AntennaDiagramEntry::set_response(double value) {
  _internal_set_response(value);
  // @@protoc_insertion_point(field_set:osi3.RadarSensorViewConfiguration.AntennaDiagramEntry.response)
}

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

// RadarSensorViewConfiguration

// .osi3.Identifier sensor_id = 1;
inline bool RadarSensorViewConfiguration::_internal_has_sensor_id() const {
  return this != internal_default_instance() && sensor_id_ != nullptr;
}
inline bool RadarSensorViewConfiguration::has_sensor_id() const {
  return _internal_has_sensor_id();
}
inline const ::osi3::Identifier& RadarSensorViewConfiguration::_internal_sensor_id() const {
  const ::osi3::Identifier* p = sensor_id_;
  return p != nullptr ? *p : reinterpret_cast<const ::osi3::Identifier&>(
      ::osi3::_Identifier_default_instance_);
}
inline const ::osi3::Identifier& RadarSensorViewConfiguration::sensor_id() const {
  // @@protoc_insertion_point(field_get:osi3.RadarSensorViewConfiguration.sensor_id)
  return _internal_sensor_id();
}
inline void RadarSensorViewConfiguration::unsafe_arena_set_allocated_sensor_id(
    ::osi3::Identifier* sensor_id) {
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(sensor_id_);
  }
  sensor_id_ = sensor_id;
  if (sensor_id) {
    
  } else {
    
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:osi3.RadarSensorViewConfiguration.sensor_id)
}
inline ::osi3::Identifier* RadarSensorViewConfiguration::release_sensor_id() {
  
  ::osi3::Identifier* temp = sensor_id_;
  sensor_id_ = nullptr;
  if (GetArena() != nullptr) {
    temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  }
  return temp;
}
inline ::osi3::Identifier* RadarSensorViewConfiguration::unsafe_arena_release_sensor_id() {
  // @@protoc_insertion_point(field_release:osi3.RadarSensorViewConfiguration.sensor_id)
  
  ::osi3::Identifier* temp = sensor_id_;
  sensor_id_ = nullptr;
  return temp;
}
inline ::osi3::Identifier* RadarSensorViewConfiguration::_internal_mutable_sensor_id() {
  
  if (sensor_id_ == nullptr) {
    auto* p = CreateMaybeMessage<::osi3::Identifier>(GetArena());
    sensor_id_ = p;
  }
  return sensor_id_;
}
inline ::osi3::Identifier* RadarSensorViewConfiguration::mutable_sensor_id() {
  // @@protoc_insertion_point(field_mutable:osi3.RadarSensorViewConfiguration.sensor_id)
  return _internal_mutable_sensor_id();
}
inline void RadarSensorViewConfiguration::set_allocated_sensor_id(::osi3::Identifier* sensor_id) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  if (message_arena == nullptr) {
    delete reinterpret_cast< ::PROTOBUF_NAMESPACE_ID::MessageLite*>(sensor_id_);
  }
  if (sensor_id) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(sensor_id)->GetArena();
    if (message_arena != submessage_arena) {
      sensor_id = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, sensor_id, submessage_arena);
    }
    
  } else {
    
  }
  sensor_id_ = sensor_id;
  // @@protoc_insertion_point(field_set_allocated:osi3.RadarSensorViewConfiguration.sensor_id)
}

// .osi3.MountingPosition mounting_position = 2;
inline bool RadarSensorViewConfiguration::_internal_has_mounting_position() const {
  return this != internal_default_instance() && mounting_position_ != nullptr;
}
inline bool RadarSensorViewConfiguration::has_mounting_position() const {
  return _internal_has_mounting_position();
}
inline const ::osi3::MountingPosition& RadarSensorViewConfiguration::_internal_mounting_position() const {
  const ::osi3::MountingPosition* p = mounting_position_;
  return p != nullptr ? *p : reinterpret_cast<const ::osi3::MountingPosition&>(
      ::osi3::_MountingPosition_default_instance_);
}
inline const ::osi3::MountingPosition& RadarSensorViewConfiguration::mounting_position() const {
  // @@protoc_insertion_point(field_get:osi3.RadarSensorViewConfiguration.mounting_position)
  return _internal_mounting_position();
}
inline void RadarSensorViewConfiguration::unsafe_arena_set_allocated_mounting_position(
    ::osi3::MountingPosition* mounting_position) {
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(mounting_position_);
  }
  mounting_position_ = mounting_position;
  if (mounting_position) {
    
  } else {
    
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:osi3.RadarSensorViewConfiguration.mounting_position)
}
inline ::osi3::MountingPosition* RadarSensorViewConfiguration::release_mounting_position() {
  
  ::osi3::MountingPosition* temp = mounting_position_;
  mounting_position_ = nullptr;
  if (GetArena() != nullptr) {
    temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  }
  return temp;
}
inline ::osi3::MountingPosition* RadarSensorViewConfiguration::unsafe_arena_release_mounting_position() {
  // @@protoc_insertion_point(field_release:osi3.RadarSensorViewConfiguration.mounting_position)
  
  ::osi3::MountingPosition* temp = mounting_position_;
  mounting_position_ = nullptr;
  return temp;
}
inline ::osi3::MountingPosition* RadarSensorViewConfiguration::_internal_mutable_mounting_position() {
  
  if (mounting_position_ == nullptr) {
    auto* p = CreateMaybeMessage<::osi3::MountingPosition>(GetArena());
    mounting_position_ = p;
  }
  return mounting_position_;
}
inline ::osi3::MountingPosition* RadarSensorViewConfiguration::mutable_mounting_position() {
  // @@protoc_insertion_point(field_mutable:osi3.RadarSensorViewConfiguration.mounting_position)
  return _internal_mutable_mounting_position();
}
inline void RadarSensorViewConfiguration::set_allocated_mounting_position(::osi3::MountingPosition* mounting_position) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  if (message_arena == nullptr) {
    delete reinterpret_cast< ::PROTOBUF_NAMESPACE_ID::MessageLite*>(mounting_position_);
  }
  if (mounting_position) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(mounting_position)->GetArena();
    if (message_arena != submessage_arena) {
      mounting_position = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, mounting_position, submessage_arena);
    }
    
  } else {
    
  }
  mounting_position_ = mounting_position;
  // @@protoc_insertion_point(field_set_allocated:osi3.RadarSensorViewConfiguration.mounting_position)
}

// .osi3.MountingPosition mounting_position_rmse = 3;
inline bool RadarSensorViewConfiguration::_internal_has_mounting_position_rmse() const {
  return this != internal_default_instance() && mounting_position_rmse_ != nullptr;
}
inline bool RadarSensorViewConfiguration::has_mounting_position_rmse() const {
  return _internal_has_mounting_position_rmse();
}
inline const ::osi3::MountingPosition& RadarSensorViewConfiguration::_internal_mounting_position_rmse() const {
  const ::osi3::MountingPosition* p = mounting_position_rmse_;
  return p != nullptr ? *p : reinterpret_cast<const ::osi3::MountingPosition&>(
      ::osi3::_MountingPosition_default_instance_);
}
inline const ::osi3::MountingPosition& RadarSensorViewConfiguration::mounting_position_rmse() const {
  // @@protoc_insertion_point(field_get:osi3.RadarSensorViewConfiguration.mounting_position_rmse)
  return _internal_mounting_position_rmse();
}
inline void RadarSensorViewConfiguration::unsafe_arena_set_allocated_mounting_position_rmse(
    ::osi3::MountingPosition* mounting_position_rmse) {
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(mounting_position_rmse_);
  }
  mounting_position_rmse_ = mounting_position_rmse;
  if (mounting_position_rmse) {
    
  } else {
    
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:osi3.RadarSensorViewConfiguration.mounting_position_rmse)
}
inline ::osi3::MountingPosition* RadarSensorViewConfiguration::release_mounting_position_rmse() {
  
  ::osi3::MountingPosition* temp = mounting_position_rmse_;
  mounting_position_rmse_ = nullptr;
  if (GetArena() != nullptr) {
    temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  }
  return temp;
}
inline ::osi3::MountingPosition* RadarSensorViewConfiguration::unsafe_arena_release_mounting_position_rmse() {
  // @@protoc_insertion_point(field_release:osi3.RadarSensorViewConfiguration.mounting_position_rmse)
  
  ::osi3::MountingPosition* temp = mounting_position_rmse_;
  mounting_position_rmse_ = nullptr;
  return temp;
}
inline ::osi3::MountingPosition* RadarSensorViewConfiguration::_internal_mutable_mounting_position_rmse() {
  
  if (mounting_position_rmse_ == nullptr) {
    auto* p = CreateMaybeMessage<::osi3::MountingPosition>(GetArena());
    mounting_position_rmse_ = p;
  }
  return mounting_position_rmse_;
}
inline ::osi3::MountingPosition* RadarSensorViewConfiguration::mutable_mounting_position_rmse() {
  // @@protoc_insertion_point(field_mutable:osi3.RadarSensorViewConfiguration.mounting_position_rmse)
  return _internal_mutable_mounting_position_rmse();
}
inline void RadarSensorViewConfiguration::set_allocated_mounting_position_rmse(::osi3::MountingPosition* mounting_position_rmse) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  if (message_arena == nullptr) {
    delete reinterpret_cast< ::PROTOBUF_NAMESPACE_ID::MessageLite*>(mounting_position_rmse_);
  }
  if (mounting_position_rmse) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(mounting_position_rmse)->GetArena();
    if (message_arena != submessage_arena) {
      mounting_position_rmse = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, mounting_position_rmse, submessage_arena);
    }
    
  } else {
    
  }
  mounting_position_rmse_ = mounting_position_rmse;
  // @@protoc_insertion_point(field_set_allocated:osi3.RadarSensorViewConfiguration.mounting_position_rmse)
}

// double field_of_view_horizontal = 4;
inline void RadarSensorViewConfiguration::clear_field_of_view_horizontal() {
  field_of_view_horizontal_ = 0;
}
inline double RadarSensorViewConfiguration::_internal_field_of_view_horizontal() const {
  return field_of_view_horizontal_;
}
inline double RadarSensorViewConfiguration::field_of_view_horizontal() const {
  // @@protoc_insertion_point(field_get:osi3.RadarSensorViewConfiguration.field_of_view_horizontal)
  return _internal_field_of_view_horizontal();
}
inline void RadarSensorViewConfiguration::_internal_set_field_of_view_horizontal(double value) {
  
  field_of_view_horizontal_ = value;
}
inline void RadarSensorViewConfiguration::set_field_of_view_horizontal(double value) {
  _internal_set_field_of_view_horizontal(value);
  // @@protoc_insertion_point(field_set:osi3.RadarSensorViewConfiguration.field_of_view_horizontal)
}

// double field_of_view_vertical = 5;
inline void RadarSensorViewConfiguration::clear_field_of_view_vertical() {
  field_of_view_vertical_ = 0;
}
inline double RadarSensorViewConfiguration::_internal_field_of_view_vertical() const {
  return field_of_view_vertical_;
}
inline double RadarSensorViewConfiguration::field_of_view_vertical() const {
  // @@protoc_insertion_point(field_get:osi3.RadarSensorViewConfiguration.field_of_view_vertical)
  return _internal_field_of_view_vertical();
}
inline void RadarSensorViewConfiguration::_internal_set_field_of_view_vertical(double value) {
  
  field_of_view_vertical_ = value;
}
inline void RadarSensorViewConfiguration::set_field_of_view_vertical(double value) {
  _internal_set_field_of_view_vertical(value);
  // @@protoc_insertion_point(field_set:osi3.RadarSensorViewConfiguration.field_of_view_vertical)
}

// uint32 number_of_rays_horizontal = 6;
inline void RadarSensorViewConfiguration::clear_number_of_rays_horizontal() {
  number_of_rays_horizontal_ = 0u;
}
inline ::PROTOBUF_NAMESPACE_ID::uint32 RadarSensorViewConfiguration::_internal_number_of_rays_horizontal() const {
  return number_of_rays_horizontal_;
}
inline ::PROTOBUF_NAMESPACE_ID::uint32 RadarSensorViewConfiguration::number_of_rays_horizontal() const {
  // @@protoc_insertion_point(field_get:osi3.RadarSensorViewConfiguration.number_of_rays_horizontal)
  return _internal_number_of_rays_horizontal();
}
inline void RadarSensorViewConfiguration::_internal_set_number_of_rays_horizontal(::PROTOBUF_NAMESPACE_ID::uint32 value) {
  
  number_of_rays_horizontal_ = value;
}
inline void RadarSensorViewConfiguration::set_number_of_rays_horizontal(::PROTOBUF_NAMESPACE_ID::uint32 value) {
  _internal_set_number_of_rays_horizontal(value);
  // @@protoc_insertion_point(field_set:osi3.RadarSensorViewConfiguration.number_of_rays_horizontal)
}

// uint32 number_of_rays_vertical = 7;
inline void RadarSensorViewConfiguration::clear_number_of_rays_vertical() {
  number_of_rays_vertical_ = 0u;
}
inline ::PROTOBUF_NAMESPACE_ID::uint32 RadarSensorViewConfiguration::_internal_number_of_rays_vertical() const {
  return number_of_rays_vertical_;
}
inline ::PROTOBUF_NAMESPACE_ID::uint32 RadarSensorViewConfiguration::number_of_rays_vertical() const {
  // @@protoc_insertion_point(field_get:osi3.RadarSensorViewConfiguration.number_of_rays_vertical)
  return _internal_number_of_rays_vertical();
}
inline void RadarSensorViewConfiguration::_internal_set_number_of_rays_vertical(::PROTOBUF_NAMESPACE_ID::uint32 value) {
  
  number_of_rays_vertical_ = value;
}
inline void RadarSensorViewConfiguration::set_number_of_rays_vertical(::PROTOBUF_NAMESPACE_ID::uint32 value) {
  _internal_set_number_of_rays_vertical(value);
  // @@protoc_insertion_point(field_set:osi3.RadarSensorViewConfiguration.number_of_rays_vertical)
}

// uint32 max_number_of_interactions = 8;
inline void RadarSensorViewConfiguration::clear_max_number_of_interactions() {
  max_number_of_interactions_ = 0u;
}
inline ::PROTOBUF_NAMESPACE_ID::uint32 RadarSensorViewConfiguration::_internal_max_number_of_interactions() const {
  return max_number_of_interactions_;
}
inline ::PROTOBUF_NAMESPACE_ID::uint32 RadarSensorViewConfiguration::max_number_of_interactions() const {
  // @@protoc_insertion_point(field_get:osi3.RadarSensorViewConfiguration.max_number_of_interactions)
  return _internal_max_number_of_interactions();
}
inline void RadarSensorViewConfiguration::_internal_set_max_number_of_interactions(::PROTOBUF_NAMESPACE_ID::uint32 value) {
  
  max_number_of_interactions_ = value;
}
inline void RadarSensorViewConfiguration::set_max_number_of_interactions(::PROTOBUF_NAMESPACE_ID::uint32 value) {
  _internal_set_max_number_of_interactions(value);
  // @@protoc_insertion_point(field_set:osi3.RadarSensorViewConfiguration.max_number_of_interactions)
}

// double emitter_frequency = 9;
inline void RadarSensorViewConfiguration::clear_emitter_frequency() {
  emitter_frequency_ = 0;
}
inline double RadarSensorViewConfiguration::_internal_emitter_frequency() const {
  return emitter_frequency_;
}
inline double RadarSensorViewConfiguration::emitter_frequency() const {
  // @@protoc_insertion_point(field_get:osi3.RadarSensorViewConfiguration.emitter_frequency)
  return _internal_emitter_frequency();
}
inline void RadarSensorViewConfiguration::_internal_set_emitter_frequency(double value) {
  
  emitter_frequency_ = value;
}
inline void RadarSensorViewConfiguration::set_emitter_frequency(double value) {
  _internal_set_emitter_frequency(value);
  // @@protoc_insertion_point(field_set:osi3.RadarSensorViewConfiguration.emitter_frequency)
}

// repeated .osi3.RadarSensorViewConfiguration.AntennaDiagramEntry tx_antenna_diagram = 10;
inline int RadarSensorViewConfiguration::_internal_tx_antenna_diagram_size() const {
  return tx_antenna_diagram_.size();
}
inline int RadarSensorViewConfiguration::tx_antenna_diagram_size() const {
  return _internal_tx_antenna_diagram_size();
}
inline void RadarSensorViewConfiguration::clear_tx_antenna_diagram() {
  tx_antenna_diagram_.Clear();
}
inline ::osi3::RadarSensorViewConfiguration_AntennaDiagramEntry* RadarSensorViewConfiguration::mutable_tx_antenna_diagram(int index) {
  // @@protoc_insertion_point(field_mutable:osi3.RadarSensorViewConfiguration.tx_antenna_diagram)
  return tx_antenna_diagram_.Mutable(index);
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::osi3::RadarSensorViewConfiguration_AntennaDiagramEntry >*
RadarSensorViewConfiguration::mutable_tx_antenna_diagram() {
  // @@protoc_insertion_point(field_mutable_list:osi3.RadarSensorViewConfiguration.tx_antenna_diagram)
  return &tx_antenna_diagram_;
}
inline const ::osi3::RadarSensorViewConfiguration_AntennaDiagramEntry& RadarSensorViewConfiguration::_internal_tx_antenna_diagram(int index) const {
  return tx_antenna_diagram_.Get(index);
}
inline const ::osi3::RadarSensorViewConfiguration_AntennaDiagramEntry& RadarSensorViewConfiguration::tx_antenna_diagram(int index) const {
  // @@protoc_insertion_point(field_get:osi3.RadarSensorViewConfiguration.tx_antenna_diagram)
  return _internal_tx_antenna_diagram(index);
}
inline ::osi3::RadarSensorViewConfiguration_AntennaDiagramEntry* RadarSensorViewConfiguration::_internal_add_tx_antenna_diagram() {
  return tx_antenna_diagram_.Add();
}
inline ::osi3::RadarSensorViewConfiguration_AntennaDiagramEntry* RadarSensorViewConfiguration::add_tx_antenna_diagram() {
  // @@protoc_insertion_point(field_add:osi3.RadarSensorViewConfiguration.tx_antenna_diagram)
  return _internal_add_tx_antenna_diagram();
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::osi3::RadarSensorViewConfiguration_AntennaDiagramEntry >&
RadarSensorViewConfiguration::tx_antenna_diagram() const {
  // @@protoc_insertion_point(field_list:osi3.RadarSensorViewConfiguration.tx_antenna_diagram)
  return tx_antenna_diagram_;
}

// repeated .osi3.RadarSensorViewConfiguration.AntennaDiagramEntry rx_antenna_diagram = 11;
inline int RadarSensorViewConfiguration::_internal_rx_antenna_diagram_size() const {
  return rx_antenna_diagram_.size();
}
inline int RadarSensorViewConfiguration::rx_antenna_diagram_size() const {
  return _internal_rx_antenna_diagram_size();
}
inline void RadarSensorViewConfiguration::clear_rx_antenna_diagram() {
  rx_antenna_diagram_.Clear();
}
inline ::osi3::RadarSensorViewConfiguration_AntennaDiagramEntry* RadarSensorViewConfiguration::mutable_rx_antenna_diagram(int index) {
  // @@protoc_insertion_point(field_mutable:osi3.RadarSensorViewConfiguration.rx_antenna_diagram)
  return rx_antenna_diagram_.Mutable(index);
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::osi3::RadarSensorViewConfiguration_AntennaDiagramEntry >*
RadarSensorViewConfiguration::mutable_rx_antenna_diagram() {
  // @@protoc_insertion_point(field_mutable_list:osi3.RadarSensorViewConfiguration.rx_antenna_diagram)
  return &rx_antenna_diagram_;
}
inline const ::osi3::RadarSensorViewConfiguration_AntennaDiagramEntry& RadarSensorViewConfiguration::_internal_rx_antenna_diagram(int index) const {
  return rx_antenna_diagram_.Get(index);
}
inline const ::osi3::RadarSensorViewConfiguration_AntennaDiagramEntry& RadarSensorViewConfiguration::rx_antenna_diagram(int index) const {
  // @@protoc_insertion_point(field_get:osi3.RadarSensorViewConfiguration.rx_antenna_diagram)
  return _internal_rx_antenna_diagram(index);
}
inline ::osi3::RadarSensorViewConfiguration_AntennaDiagramEntry* RadarSensorViewConfiguration::_internal_add_rx_antenna_diagram() {
  return rx_antenna_diagram_.Add();
}
inline ::osi3::RadarSensorViewConfiguration_AntennaDiagramEntry* RadarSensorViewConfiguration::add_rx_antenna_diagram() {
  // @@protoc_insertion_point(field_add:osi3.RadarSensorViewConfiguration.rx_antenna_diagram)
  return _internal_add_rx_antenna_diagram();
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::osi3::RadarSensorViewConfiguration_AntennaDiagramEntry >&
RadarSensorViewConfiguration::rx_antenna_diagram() const {
  // @@protoc_insertion_point(field_list:osi3.RadarSensorViewConfiguration.rx_antenna_diagram)
  return rx_antenna_diagram_;
}

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

// LidarSensorViewConfiguration

// .osi3.Identifier sensor_id = 1;
inline bool LidarSensorViewConfiguration::_internal_has_sensor_id() const {
  return this != internal_default_instance() && sensor_id_ != nullptr;
}
inline bool LidarSensorViewConfiguration::has_sensor_id() const {
  return _internal_has_sensor_id();
}
inline const ::osi3::Identifier& LidarSensorViewConfiguration::_internal_sensor_id() const {
  const ::osi3::Identifier* p = sensor_id_;
  return p != nullptr ? *p : reinterpret_cast<const ::osi3::Identifier&>(
      ::osi3::_Identifier_default_instance_);
}
inline const ::osi3::Identifier& LidarSensorViewConfiguration::sensor_id() const {
  // @@protoc_insertion_point(field_get:osi3.LidarSensorViewConfiguration.sensor_id)
  return _internal_sensor_id();
}
inline void LidarSensorViewConfiguration::unsafe_arena_set_allocated_sensor_id(
    ::osi3::Identifier* sensor_id) {
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(sensor_id_);
  }
  sensor_id_ = sensor_id;
  if (sensor_id) {
    
  } else {
    
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:osi3.LidarSensorViewConfiguration.sensor_id)
}
inline ::osi3::Identifier* LidarSensorViewConfiguration::release_sensor_id() {
  
  ::osi3::Identifier* temp = sensor_id_;
  sensor_id_ = nullptr;
  if (GetArena() != nullptr) {
    temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  }
  return temp;
}
inline ::osi3::Identifier* LidarSensorViewConfiguration::unsafe_arena_release_sensor_id() {
  // @@protoc_insertion_point(field_release:osi3.LidarSensorViewConfiguration.sensor_id)
  
  ::osi3::Identifier* temp = sensor_id_;
  sensor_id_ = nullptr;
  return temp;
}
inline ::osi3::Identifier* LidarSensorViewConfiguration::_internal_mutable_sensor_id() {
  
  if (sensor_id_ == nullptr) {
    auto* p = CreateMaybeMessage<::osi3::Identifier>(GetArena());
    sensor_id_ = p;
  }
  return sensor_id_;
}
inline ::osi3::Identifier* LidarSensorViewConfiguration::mutable_sensor_id() {
  // @@protoc_insertion_point(field_mutable:osi3.LidarSensorViewConfiguration.sensor_id)
  return _internal_mutable_sensor_id();
}
inline void LidarSensorViewConfiguration::set_allocated_sensor_id(::osi3::Identifier* sensor_id) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  if (message_arena == nullptr) {
    delete reinterpret_cast< ::PROTOBUF_NAMESPACE_ID::MessageLite*>(sensor_id_);
  }
  if (sensor_id) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(sensor_id)->GetArena();
    if (message_arena != submessage_arena) {
      sensor_id = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, sensor_id, submessage_arena);
    }
    
  } else {
    
  }
  sensor_id_ = sensor_id;
  // @@protoc_insertion_point(field_set_allocated:osi3.LidarSensorViewConfiguration.sensor_id)
}

// .osi3.MountingPosition mounting_position = 2;
inline bool LidarSensorViewConfiguration::_internal_has_mounting_position() const {
  return this != internal_default_instance() && mounting_position_ != nullptr;
}
inline bool LidarSensorViewConfiguration::has_mounting_position() const {
  return _internal_has_mounting_position();
}
inline const ::osi3::MountingPosition& LidarSensorViewConfiguration::_internal_mounting_position() const {
  const ::osi3::MountingPosition* p = mounting_position_;
  return p != nullptr ? *p : reinterpret_cast<const ::osi3::MountingPosition&>(
      ::osi3::_MountingPosition_default_instance_);
}
inline const ::osi3::MountingPosition& LidarSensorViewConfiguration::mounting_position() const {
  // @@protoc_insertion_point(field_get:osi3.LidarSensorViewConfiguration.mounting_position)
  return _internal_mounting_position();
}
inline void LidarSensorViewConfiguration::unsafe_arena_set_allocated_mounting_position(
    ::osi3::MountingPosition* mounting_position) {
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(mounting_position_);
  }
  mounting_position_ = mounting_position;
  if (mounting_position) {
    
  } else {
    
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:osi3.LidarSensorViewConfiguration.mounting_position)
}
inline ::osi3::MountingPosition* LidarSensorViewConfiguration::release_mounting_position() {
  
  ::osi3::MountingPosition* temp = mounting_position_;
  mounting_position_ = nullptr;
  if (GetArena() != nullptr) {
    temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  }
  return temp;
}
inline ::osi3::MountingPosition* LidarSensorViewConfiguration::unsafe_arena_release_mounting_position() {
  // @@protoc_insertion_point(field_release:osi3.LidarSensorViewConfiguration.mounting_position)
  
  ::osi3::MountingPosition* temp = mounting_position_;
  mounting_position_ = nullptr;
  return temp;
}
inline ::osi3::MountingPosition* LidarSensorViewConfiguration::_internal_mutable_mounting_position() {
  
  if (mounting_position_ == nullptr) {
    auto* p = CreateMaybeMessage<::osi3::MountingPosition>(GetArena());
    mounting_position_ = p;
  }
  return mounting_position_;
}
inline ::osi3::MountingPosition* LidarSensorViewConfiguration::mutable_mounting_position() {
  // @@protoc_insertion_point(field_mutable:osi3.LidarSensorViewConfiguration.mounting_position)
  return _internal_mutable_mounting_position();
}
inline void LidarSensorViewConfiguration::set_allocated_mounting_position(::osi3::MountingPosition* mounting_position) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  if (message_arena == nullptr) {
    delete reinterpret_cast< ::PROTOBUF_NAMESPACE_ID::MessageLite*>(mounting_position_);
  }
  if (mounting_position) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(mounting_position)->GetArena();
    if (message_arena != submessage_arena) {
      mounting_position = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, mounting_position, submessage_arena);
    }
    
  } else {
    
  }
  mounting_position_ = mounting_position;
  // @@protoc_insertion_point(field_set_allocated:osi3.LidarSensorViewConfiguration.mounting_position)
}

// .osi3.MountingPosition mounting_position_rmse = 3;
inline bool LidarSensorViewConfiguration::_internal_has_mounting_position_rmse() const {
  return this != internal_default_instance() && mounting_position_rmse_ != nullptr;
}
inline bool LidarSensorViewConfiguration::has_mounting_position_rmse() const {
  return _internal_has_mounting_position_rmse();
}
inline const ::osi3::MountingPosition& LidarSensorViewConfiguration::_internal_mounting_position_rmse() const {
  const ::osi3::MountingPosition* p = mounting_position_rmse_;
  return p != nullptr ? *p : reinterpret_cast<const ::osi3::MountingPosition&>(
      ::osi3::_MountingPosition_default_instance_);
}
inline const ::osi3::MountingPosition& LidarSensorViewConfiguration::mounting_position_rmse() const {
  // @@protoc_insertion_point(field_get:osi3.LidarSensorViewConfiguration.mounting_position_rmse)
  return _internal_mounting_position_rmse();
}
inline void LidarSensorViewConfiguration::unsafe_arena_set_allocated_mounting_position_rmse(
    ::osi3::MountingPosition* mounting_position_rmse) {
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(mounting_position_rmse_);
  }
  mounting_position_rmse_ = mounting_position_rmse;
  if (mounting_position_rmse) {
    
  } else {
    
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:osi3.LidarSensorViewConfiguration.mounting_position_rmse)
}
inline ::osi3::MountingPosition* LidarSensorViewConfiguration::release_mounting_position_rmse() {
  
  ::osi3::MountingPosition* temp = mounting_position_rmse_;
  mounting_position_rmse_ = nullptr;
  if (GetArena() != nullptr) {
    temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  }
  return temp;
}
inline ::osi3::MountingPosition* LidarSensorViewConfiguration::unsafe_arena_release_mounting_position_rmse() {
  // @@protoc_insertion_point(field_release:osi3.LidarSensorViewConfiguration.mounting_position_rmse)
  
  ::osi3::MountingPosition* temp = mounting_position_rmse_;
  mounting_position_rmse_ = nullptr;
  return temp;
}
inline ::osi3::MountingPosition* LidarSensorViewConfiguration::_internal_mutable_mounting_position_rmse() {
  
  if (mounting_position_rmse_ == nullptr) {
    auto* p = CreateMaybeMessage<::osi3::MountingPosition>(GetArena());
    mounting_position_rmse_ = p;
  }
  return mounting_position_rmse_;
}
inline ::osi3::MountingPosition* LidarSensorViewConfiguration::mutable_mounting_position_rmse() {
  // @@protoc_insertion_point(field_mutable:osi3.LidarSensorViewConfiguration.mounting_position_rmse)
  return _internal_mutable_mounting_position_rmse();
}
inline void LidarSensorViewConfiguration::set_allocated_mounting_position_rmse(::osi3::MountingPosition* mounting_position_rmse) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  if (message_arena == nullptr) {
    delete reinterpret_cast< ::PROTOBUF_NAMESPACE_ID::MessageLite*>(mounting_position_rmse_);
  }
  if (mounting_position_rmse) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(mounting_position_rmse)->GetArena();
    if (message_arena != submessage_arena) {
      mounting_position_rmse = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, mounting_position_rmse, submessage_arena);
    }
    
  } else {
    
  }
  mounting_position_rmse_ = mounting_position_rmse;
  // @@protoc_insertion_point(field_set_allocated:osi3.LidarSensorViewConfiguration.mounting_position_rmse)
}

// double field_of_view_horizontal = 4;
inline void LidarSensorViewConfiguration::clear_field_of_view_horizontal() {
  field_of_view_horizontal_ = 0;
}
inline double LidarSensorViewConfiguration::_internal_field_of_view_horizontal() const {
  return field_of_view_horizontal_;
}
inline double LidarSensorViewConfiguration::field_of_view_horizontal() const {
  // @@protoc_insertion_point(field_get:osi3.LidarSensorViewConfiguration.field_of_view_horizontal)
  return _internal_field_of_view_horizontal();
}
inline void LidarSensorViewConfiguration::_internal_set_field_of_view_horizontal(double value) {
  
  field_of_view_horizontal_ = value;
}
inline void LidarSensorViewConfiguration::set_field_of_view_horizontal(double value) {
  _internal_set_field_of_view_horizontal(value);
  // @@protoc_insertion_point(field_set:osi3.LidarSensorViewConfiguration.field_of_view_horizontal)
}

// double field_of_view_vertical = 5;
inline void LidarSensorViewConfiguration::clear_field_of_view_vertical() {
  field_of_view_vertical_ = 0;
}
inline double LidarSensorViewConfiguration::_internal_field_of_view_vertical() const {
  return field_of_view_vertical_;
}
inline double LidarSensorViewConfiguration::field_of_view_vertical() const {
  // @@protoc_insertion_point(field_get:osi3.LidarSensorViewConfiguration.field_of_view_vertical)
  return _internal_field_of_view_vertical();
}
inline void LidarSensorViewConfiguration::_internal_set_field_of_view_vertical(double value) {
  
  field_of_view_vertical_ = value;
}
inline void LidarSensorViewConfiguration::set_field_of_view_vertical(double value) {
  _internal_set_field_of_view_vertical(value);
  // @@protoc_insertion_point(field_set:osi3.LidarSensorViewConfiguration.field_of_view_vertical)
}

// uint32 number_of_rays_horizontal = 6;
inline void LidarSensorViewConfiguration::clear_number_of_rays_horizontal() {
  number_of_rays_horizontal_ = 0u;
}
inline ::PROTOBUF_NAMESPACE_ID::uint32 LidarSensorViewConfiguration::_internal_number_of_rays_horizontal() const {
  return number_of_rays_horizontal_;
}
inline ::PROTOBUF_NAMESPACE_ID::uint32 LidarSensorViewConfiguration::number_of_rays_horizontal() const {
  // @@protoc_insertion_point(field_get:osi3.LidarSensorViewConfiguration.number_of_rays_horizontal)
  return _internal_number_of_rays_horizontal();
}
inline void LidarSensorViewConfiguration::_internal_set_number_of_rays_horizontal(::PROTOBUF_NAMESPACE_ID::uint32 value) {
  
  number_of_rays_horizontal_ = value;
}
inline void LidarSensorViewConfiguration::set_number_of_rays_horizontal(::PROTOBUF_NAMESPACE_ID::uint32 value) {
  _internal_set_number_of_rays_horizontal(value);
  // @@protoc_insertion_point(field_set:osi3.LidarSensorViewConfiguration.number_of_rays_horizontal)
}

// uint32 number_of_rays_vertical = 7;
inline void LidarSensorViewConfiguration::clear_number_of_rays_vertical() {
  number_of_rays_vertical_ = 0u;
}
inline ::PROTOBUF_NAMESPACE_ID::uint32 LidarSensorViewConfiguration::_internal_number_of_rays_vertical() const {
  return number_of_rays_vertical_;
}
inline ::PROTOBUF_NAMESPACE_ID::uint32 LidarSensorViewConfiguration::number_of_rays_vertical() const {
  // @@protoc_insertion_point(field_get:osi3.LidarSensorViewConfiguration.number_of_rays_vertical)
  return _internal_number_of_rays_vertical();
}
inline void LidarSensorViewConfiguration::_internal_set_number_of_rays_vertical(::PROTOBUF_NAMESPACE_ID::uint32 value) {
  
  number_of_rays_vertical_ = value;
}
inline void LidarSensorViewConfiguration::set_number_of_rays_vertical(::PROTOBUF_NAMESPACE_ID::uint32 value) {
  _internal_set_number_of_rays_vertical(value);
  // @@protoc_insertion_point(field_set:osi3.LidarSensorViewConfiguration.number_of_rays_vertical)
}

// uint32 max_number_of_interactions = 8;
inline void LidarSensorViewConfiguration::clear_max_number_of_interactions() {
  max_number_of_interactions_ = 0u;
}
inline ::PROTOBUF_NAMESPACE_ID::uint32 LidarSensorViewConfiguration::_internal_max_number_of_interactions() const {
  return max_number_of_interactions_;
}
inline ::PROTOBUF_NAMESPACE_ID::uint32 LidarSensorViewConfiguration::max_number_of_interactions() const {
  // @@protoc_insertion_point(field_get:osi3.LidarSensorViewConfiguration.max_number_of_interactions)
  return _internal_max_number_of_interactions();
}
inline void LidarSensorViewConfiguration::_internal_set_max_number_of_interactions(::PROTOBUF_NAMESPACE_ID::uint32 value) {
  
  max_number_of_interactions_ = value;
}
inline void LidarSensorViewConfiguration::set_max_number_of_interactions(::PROTOBUF_NAMESPACE_ID::uint32 value) {
  _internal_set_max_number_of_interactions(value);
  // @@protoc_insertion_point(field_set:osi3.LidarSensorViewConfiguration.max_number_of_interactions)
}

// double emitter_frequency = 9;
inline void LidarSensorViewConfiguration::clear_emitter_frequency() {
  emitter_frequency_ = 0;
}
inline double LidarSensorViewConfiguration::_internal_emitter_frequency() const {
  return emitter_frequency_;
}
inline double LidarSensorViewConfiguration::emitter_frequency() const {
  // @@protoc_insertion_point(field_get:osi3.LidarSensorViewConfiguration.emitter_frequency)
  return _internal_emitter_frequency();
}
inline void LidarSensorViewConfiguration::_internal_set_emitter_frequency(double value) {
  
  emitter_frequency_ = value;
}
inline void LidarSensorViewConfiguration::set_emitter_frequency(double value) {
  _internal_set_emitter_frequency(value);
  // @@protoc_insertion_point(field_set:osi3.LidarSensorViewConfiguration.emitter_frequency)
}

// uint32 num_of_pixels = 10;
inline void LidarSensorViewConfiguration::clear_num_of_pixels() {
  num_of_pixels_ = 0u;
}
inline ::PROTOBUF_NAMESPACE_ID::uint32 LidarSensorViewConfiguration::_internal_num_of_pixels() const {
  return num_of_pixels_;
}
inline ::PROTOBUF_NAMESPACE_ID::uint32 LidarSensorViewConfiguration::num_of_pixels() const {
  // @@protoc_insertion_point(field_get:osi3.LidarSensorViewConfiguration.num_of_pixels)
  return _internal_num_of_pixels();
}
inline void LidarSensorViewConfiguration::_internal_set_num_of_pixels(::PROTOBUF_NAMESPACE_ID::uint32 value) {
  
  num_of_pixels_ = value;
}
inline void LidarSensorViewConfiguration::set_num_of_pixels(::PROTOBUF_NAMESPACE_ID::uint32 value) {
  _internal_set_num_of_pixels(value);
  // @@protoc_insertion_point(field_set:osi3.LidarSensorViewConfiguration.num_of_pixels)
}

// repeated .osi3.Vector3d directions = 11;
inline int LidarSensorViewConfiguration::_internal_directions_size() const {
  return directions_.size();
}
inline int LidarSensorViewConfiguration::directions_size() const {
  return _internal_directions_size();
}
inline ::osi3::Vector3d* LidarSensorViewConfiguration::mutable_directions(int index) {
  // @@protoc_insertion_point(field_mutable:osi3.LidarSensorViewConfiguration.directions)
  return directions_.Mutable(index);
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::osi3::Vector3d >*
LidarSensorViewConfiguration::mutable_directions() {
  // @@protoc_insertion_point(field_mutable_list:osi3.LidarSensorViewConfiguration.directions)
  return &directions_;
}
inline const ::osi3::Vector3d& LidarSensorViewConfiguration::_internal_directions(int index) const {
  return directions_.Get(index);
}
inline const ::osi3::Vector3d& LidarSensorViewConfiguration::directions(int index) const {
  // @@protoc_insertion_point(field_get:osi3.LidarSensorViewConfiguration.directions)
  return _internal_directions(index);
}
inline ::osi3::Vector3d* LidarSensorViewConfiguration::_internal_add_directions() {
  return directions_.Add();
}
inline ::osi3::Vector3d* LidarSensorViewConfiguration::add_directions() {
  // @@protoc_insertion_point(field_add:osi3.LidarSensorViewConfiguration.directions)
  return _internal_add_directions();
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::osi3::Vector3d >&
LidarSensorViewConfiguration::directions() const {
  // @@protoc_insertion_point(field_list:osi3.LidarSensorViewConfiguration.directions)
  return directions_;
}

// repeated uint32 timings = 12;
inline int LidarSensorViewConfiguration::_internal_timings_size() const {
  return timings_.size();
}
inline int LidarSensorViewConfiguration::timings_size() const {
  return _internal_timings_size();
}
inline void LidarSensorViewConfiguration::clear_timings() {
  timings_.Clear();
}
inline ::PROTOBUF_NAMESPACE_ID::uint32 LidarSensorViewConfiguration::_internal_timings(int index) const {
  return timings_.Get(index);
}
inline ::PROTOBUF_NAMESPACE_ID::uint32 LidarSensorViewConfiguration::timings(int index) const {
  // @@protoc_insertion_point(field_get:osi3.LidarSensorViewConfiguration.timings)
  return _internal_timings(index);
}
inline void LidarSensorViewConfiguration::set_timings(int index, ::PROTOBUF_NAMESPACE_ID::uint32 value) {
  timings_.Set(index, value);
  // @@protoc_insertion_point(field_set:osi3.LidarSensorViewConfiguration.timings)
}
inline void LidarSensorViewConfiguration::_internal_add_timings(::PROTOBUF_NAMESPACE_ID::uint32 value) {
  timings_.Add(value);
}
inline void LidarSensorViewConfiguration::add_timings(::PROTOBUF_NAMESPACE_ID::uint32 value) {
  _internal_add_timings(value);
  // @@protoc_insertion_point(field_add:osi3.LidarSensorViewConfiguration.timings)
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedField< ::PROTOBUF_NAMESPACE_ID::uint32 >&
LidarSensorViewConfiguration::_internal_timings() const {
  return timings_;
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedField< ::PROTOBUF_NAMESPACE_ID::uint32 >&
LidarSensorViewConfiguration::timings() const {
  // @@protoc_insertion_point(field_list:osi3.LidarSensorViewConfiguration.timings)
  return _internal_timings();
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedField< ::PROTOBUF_NAMESPACE_ID::uint32 >*
LidarSensorViewConfiguration::_internal_mutable_timings() {
  return &timings_;
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedField< ::PROTOBUF_NAMESPACE_ID::uint32 >*
LidarSensorViewConfiguration::mutable_timings() {
  // @@protoc_insertion_point(field_mutable_list:osi3.LidarSensorViewConfiguration.timings)
  return _internal_mutable_timings();
}

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

// CameraSensorViewConfiguration

// .osi3.Identifier sensor_id = 1;
inline bool CameraSensorViewConfiguration::_internal_has_sensor_id() const {
  return this != internal_default_instance() && sensor_id_ != nullptr;
}
inline bool CameraSensorViewConfiguration::has_sensor_id() const {
  return _internal_has_sensor_id();
}
inline const ::osi3::Identifier& CameraSensorViewConfiguration::_internal_sensor_id() const {
  const ::osi3::Identifier* p = sensor_id_;
  return p != nullptr ? *p : reinterpret_cast<const ::osi3::Identifier&>(
      ::osi3::_Identifier_default_instance_);
}
inline const ::osi3::Identifier& CameraSensorViewConfiguration::sensor_id() const {
  // @@protoc_insertion_point(field_get:osi3.CameraSensorViewConfiguration.sensor_id)
  return _internal_sensor_id();
}
inline void CameraSensorViewConfiguration::unsafe_arena_set_allocated_sensor_id(
    ::osi3::Identifier* sensor_id) {
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(sensor_id_);
  }
  sensor_id_ = sensor_id;
  if (sensor_id) {
    
  } else {
    
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:osi3.CameraSensorViewConfiguration.sensor_id)
}
inline ::osi3::Identifier* CameraSensorViewConfiguration::release_sensor_id() {
  
  ::osi3::Identifier* temp = sensor_id_;
  sensor_id_ = nullptr;
  if (GetArena() != nullptr) {
    temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  }
  return temp;
}
inline ::osi3::Identifier* CameraSensorViewConfiguration::unsafe_arena_release_sensor_id() {
  // @@protoc_insertion_point(field_release:osi3.CameraSensorViewConfiguration.sensor_id)
  
  ::osi3::Identifier* temp = sensor_id_;
  sensor_id_ = nullptr;
  return temp;
}
inline ::osi3::Identifier* CameraSensorViewConfiguration::_internal_mutable_sensor_id() {
  
  if (sensor_id_ == nullptr) {
    auto* p = CreateMaybeMessage<::osi3::Identifier>(GetArena());
    sensor_id_ = p;
  }
  return sensor_id_;
}
inline ::osi3::Identifier* CameraSensorViewConfiguration::mutable_sensor_id() {
  // @@protoc_insertion_point(field_mutable:osi3.CameraSensorViewConfiguration.sensor_id)
  return _internal_mutable_sensor_id();
}
inline void CameraSensorViewConfiguration::set_allocated_sensor_id(::osi3::Identifier* sensor_id) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  if (message_arena == nullptr) {
    delete reinterpret_cast< ::PROTOBUF_NAMESPACE_ID::MessageLite*>(sensor_id_);
  }
  if (sensor_id) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(sensor_id)->GetArena();
    if (message_arena != submessage_arena) {
      sensor_id = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, sensor_id, submessage_arena);
    }
    
  } else {
    
  }
  sensor_id_ = sensor_id;
  // @@protoc_insertion_point(field_set_allocated:osi3.CameraSensorViewConfiguration.sensor_id)
}

// .osi3.MountingPosition mounting_position = 2;
inline bool CameraSensorViewConfiguration::_internal_has_mounting_position() const {
  return this != internal_default_instance() && mounting_position_ != nullptr;
}
inline bool CameraSensorViewConfiguration::has_mounting_position() const {
  return _internal_has_mounting_position();
}
inline const ::osi3::MountingPosition& CameraSensorViewConfiguration::_internal_mounting_position() const {
  const ::osi3::MountingPosition* p = mounting_position_;
  return p != nullptr ? *p : reinterpret_cast<const ::osi3::MountingPosition&>(
      ::osi3::_MountingPosition_default_instance_);
}
inline const ::osi3::MountingPosition& CameraSensorViewConfiguration::mounting_position() const {
  // @@protoc_insertion_point(field_get:osi3.CameraSensorViewConfiguration.mounting_position)
  return _internal_mounting_position();
}
inline void CameraSensorViewConfiguration::unsafe_arena_set_allocated_mounting_position(
    ::osi3::MountingPosition* mounting_position) {
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(mounting_position_);
  }
  mounting_position_ = mounting_position;
  if (mounting_position) {
    
  } else {
    
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:osi3.CameraSensorViewConfiguration.mounting_position)
}
inline ::osi3::MountingPosition* CameraSensorViewConfiguration::release_mounting_position() {
  
  ::osi3::MountingPosition* temp = mounting_position_;
  mounting_position_ = nullptr;
  if (GetArena() != nullptr) {
    temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  }
  return temp;
}
inline ::osi3::MountingPosition* CameraSensorViewConfiguration::unsafe_arena_release_mounting_position() {
  // @@protoc_insertion_point(field_release:osi3.CameraSensorViewConfiguration.mounting_position)
  
  ::osi3::MountingPosition* temp = mounting_position_;
  mounting_position_ = nullptr;
  return temp;
}
inline ::osi3::MountingPosition* CameraSensorViewConfiguration::_internal_mutable_mounting_position() {
  
  if (mounting_position_ == nullptr) {
    auto* p = CreateMaybeMessage<::osi3::MountingPosition>(GetArena());
    mounting_position_ = p;
  }
  return mounting_position_;
}
inline ::osi3::MountingPosition* CameraSensorViewConfiguration::mutable_mounting_position() {
  // @@protoc_insertion_point(field_mutable:osi3.CameraSensorViewConfiguration.mounting_position)
  return _internal_mutable_mounting_position();
}
inline void CameraSensorViewConfiguration::set_allocated_mounting_position(::osi3::MountingPosition* mounting_position) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  if (message_arena == nullptr) {
    delete reinterpret_cast< ::PROTOBUF_NAMESPACE_ID::MessageLite*>(mounting_position_);
  }
  if (mounting_position) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(mounting_position)->GetArena();
    if (message_arena != submessage_arena) {
      mounting_position = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, mounting_position, submessage_arena);
    }
    
  } else {
    
  }
  mounting_position_ = mounting_position;
  // @@protoc_insertion_point(field_set_allocated:osi3.CameraSensorViewConfiguration.mounting_position)
}

// .osi3.MountingPosition mounting_position_rmse = 3;
inline bool CameraSensorViewConfiguration::_internal_has_mounting_position_rmse() const {
  return this != internal_default_instance() && mounting_position_rmse_ != nullptr;
}
inline bool CameraSensorViewConfiguration::has_mounting_position_rmse() const {
  return _internal_has_mounting_position_rmse();
}
inline const ::osi3::MountingPosition& CameraSensorViewConfiguration::_internal_mounting_position_rmse() const {
  const ::osi3::MountingPosition* p = mounting_position_rmse_;
  return p != nullptr ? *p : reinterpret_cast<const ::osi3::MountingPosition&>(
      ::osi3::_MountingPosition_default_instance_);
}
inline const ::osi3::MountingPosition& CameraSensorViewConfiguration::mounting_position_rmse() const {
  // @@protoc_insertion_point(field_get:osi3.CameraSensorViewConfiguration.mounting_position_rmse)
  return _internal_mounting_position_rmse();
}
inline void CameraSensorViewConfiguration::unsafe_arena_set_allocated_mounting_position_rmse(
    ::osi3::MountingPosition* mounting_position_rmse) {
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(mounting_position_rmse_);
  }
  mounting_position_rmse_ = mounting_position_rmse;
  if (mounting_position_rmse) {
    
  } else {
    
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:osi3.CameraSensorViewConfiguration.mounting_position_rmse)
}
inline ::osi3::MountingPosition* CameraSensorViewConfiguration::release_mounting_position_rmse() {
  
  ::osi3::MountingPosition* temp = mounting_position_rmse_;
  mounting_position_rmse_ = nullptr;
  if (GetArena() != nullptr) {
    temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  }
  return temp;
}
inline ::osi3::MountingPosition* CameraSensorViewConfiguration::unsafe_arena_release_mounting_position_rmse() {
  // @@protoc_insertion_point(field_release:osi3.CameraSensorViewConfiguration.mounting_position_rmse)
  
  ::osi3::MountingPosition* temp = mounting_position_rmse_;
  mounting_position_rmse_ = nullptr;
  return temp;
}
inline ::osi3::MountingPosition* CameraSensorViewConfiguration::_internal_mutable_mounting_position_rmse() {
  
  if (mounting_position_rmse_ == nullptr) {
    auto* p = CreateMaybeMessage<::osi3::MountingPosition>(GetArena());
    mounting_position_rmse_ = p;
  }
  return mounting_position_rmse_;
}
inline ::osi3::MountingPosition* CameraSensorViewConfiguration::mutable_mounting_position_rmse() {
  // @@protoc_insertion_point(field_mutable:osi3.CameraSensorViewConfiguration.mounting_position_rmse)
  return _internal_mutable_mounting_position_rmse();
}
inline void CameraSensorViewConfiguration::set_allocated_mounting_position_rmse(::osi3::MountingPosition* mounting_position_rmse) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  if (message_arena == nullptr) {
    delete reinterpret_cast< ::PROTOBUF_NAMESPACE_ID::MessageLite*>(mounting_position_rmse_);
  }
  if (mounting_position_rmse) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(mounting_position_rmse)->GetArena();
    if (message_arena != submessage_arena) {
      mounting_position_rmse = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, mounting_position_rmse, submessage_arena);
    }
    
  } else {
    
  }
  mounting_position_rmse_ = mounting_position_rmse;
  // @@protoc_insertion_point(field_set_allocated:osi3.CameraSensorViewConfiguration.mounting_position_rmse)
}

// double field_of_view_horizontal = 4;
inline void CameraSensorViewConfiguration::clear_field_of_view_horizontal() {
  field_of_view_horizontal_ = 0;
}
inline double CameraSensorViewConfiguration::_internal_field_of_view_horizontal() const {
  return field_of_view_horizontal_;
}
inline double CameraSensorViewConfiguration::field_of_view_horizontal() const {
  // @@protoc_insertion_point(field_get:osi3.CameraSensorViewConfiguration.field_of_view_horizontal)
  return _internal_field_of_view_horizontal();
}
inline void CameraSensorViewConfiguration::_internal_set_field_of_view_horizontal(double value) {
  
  field_of_view_horizontal_ = value;
}
inline void CameraSensorViewConfiguration::set_field_of_view_horizontal(double value) {
  _internal_set_field_of_view_horizontal(value);
  // @@protoc_insertion_point(field_set:osi3.CameraSensorViewConfiguration.field_of_view_horizontal)
}

// double field_of_view_vertical = 5;
inline void CameraSensorViewConfiguration::clear_field_of_view_vertical() {
  field_of_view_vertical_ = 0;
}
inline double CameraSensorViewConfiguration::_internal_field_of_view_vertical() const {
  return field_of_view_vertical_;
}
inline double CameraSensorViewConfiguration::field_of_view_vertical() const {
  // @@protoc_insertion_point(field_get:osi3.CameraSensorViewConfiguration.field_of_view_vertical)
  return _internal_field_of_view_vertical();
}
inline void CameraSensorViewConfiguration::_internal_set_field_of_view_vertical(double value) {
  
  field_of_view_vertical_ = value;
}
inline void CameraSensorViewConfiguration::set_field_of_view_vertical(double value) {
  _internal_set_field_of_view_vertical(value);
  // @@protoc_insertion_point(field_set:osi3.CameraSensorViewConfiguration.field_of_view_vertical)
}

// uint32 number_of_pixels_horizontal = 6;
inline void CameraSensorViewConfiguration::clear_number_of_pixels_horizontal() {
  number_of_pixels_horizontal_ = 0u;
}
inline ::PROTOBUF_NAMESPACE_ID::uint32 CameraSensorViewConfiguration::_internal_number_of_pixels_horizontal() const {
  return number_of_pixels_horizontal_;
}
inline ::PROTOBUF_NAMESPACE_ID::uint32 CameraSensorViewConfiguration::number_of_pixels_horizontal() const {
  // @@protoc_insertion_point(field_get:osi3.CameraSensorViewConfiguration.number_of_pixels_horizontal)
  return _internal_number_of_pixels_horizontal();
}
inline void CameraSensorViewConfiguration::_internal_set_number_of_pixels_horizontal(::PROTOBUF_NAMESPACE_ID::uint32 value) {
  
  number_of_pixels_horizontal_ = value;
}
inline void CameraSensorViewConfiguration::set_number_of_pixels_horizontal(::PROTOBUF_NAMESPACE_ID::uint32 value) {
  _internal_set_number_of_pixels_horizontal(value);
  // @@protoc_insertion_point(field_set:osi3.CameraSensorViewConfiguration.number_of_pixels_horizontal)
}

// uint32 number_of_pixels_vertical = 7;
inline void CameraSensorViewConfiguration::clear_number_of_pixels_vertical() {
  number_of_pixels_vertical_ = 0u;
}
inline ::PROTOBUF_NAMESPACE_ID::uint32 CameraSensorViewConfiguration::_internal_number_of_pixels_vertical() const {
  return number_of_pixels_vertical_;
}
inline ::PROTOBUF_NAMESPACE_ID::uint32 CameraSensorViewConfiguration::number_of_pixels_vertical() const {
  // @@protoc_insertion_point(field_get:osi3.CameraSensorViewConfiguration.number_of_pixels_vertical)
  return _internal_number_of_pixels_vertical();
}
inline void CameraSensorViewConfiguration::_internal_set_number_of_pixels_vertical(::PROTOBUF_NAMESPACE_ID::uint32 value) {
  
  number_of_pixels_vertical_ = value;
}
inline void CameraSensorViewConfiguration::set_number_of_pixels_vertical(::PROTOBUF_NAMESPACE_ID::uint32 value) {
  _internal_set_number_of_pixels_vertical(value);
  // @@protoc_insertion_point(field_set:osi3.CameraSensorViewConfiguration.number_of_pixels_vertical)
}

// repeated .osi3.CameraSensorViewConfiguration.ChannelFormat channel_format = 8;
inline int CameraSensorViewConfiguration::_internal_channel_format_size() const {
  return channel_format_.size();
}
inline int CameraSensorViewConfiguration::channel_format_size() const {
  return _internal_channel_format_size();
}
inline void CameraSensorViewConfiguration::clear_channel_format() {
  channel_format_.Clear();
}
inline ::osi3::CameraSensorViewConfiguration_ChannelFormat CameraSensorViewConfiguration::_internal_channel_format(int index) const {
  return static_cast< ::osi3::CameraSensorViewConfiguration_ChannelFormat >(channel_format_.Get(index));
}
inline ::osi3::CameraSensorViewConfiguration_ChannelFormat CameraSensorViewConfiguration::channel_format(int index) const {
  // @@protoc_insertion_point(field_get:osi3.CameraSensorViewConfiguration.channel_format)
  return _internal_channel_format(index);
}
inline void CameraSensorViewConfiguration::set_channel_format(int index, ::osi3::CameraSensorViewConfiguration_ChannelFormat value) {
  channel_format_.Set(index, value);
  // @@protoc_insertion_point(field_set:osi3.CameraSensorViewConfiguration.channel_format)
}
inline void CameraSensorViewConfiguration::_internal_add_channel_format(::osi3::CameraSensorViewConfiguration_ChannelFormat value) {
  channel_format_.Add(value);
}
inline void CameraSensorViewConfiguration::add_channel_format(::osi3::CameraSensorViewConfiguration_ChannelFormat value) {
  // @@protoc_insertion_point(field_add:osi3.CameraSensorViewConfiguration.channel_format)
  _internal_add_channel_format(value);
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedField<int>&
CameraSensorViewConfiguration::channel_format() const {
  // @@protoc_insertion_point(field_list:osi3.CameraSensorViewConfiguration.channel_format)
  return channel_format_;
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedField<int>*
CameraSensorViewConfiguration::_internal_mutable_channel_format() {
  return &channel_format_;
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedField<int>*
CameraSensorViewConfiguration::mutable_channel_format() {
  // @@protoc_insertion_point(field_mutable_list:osi3.CameraSensorViewConfiguration.channel_format)
  return _internal_mutable_channel_format();
}

// uint32 samples_per_pixel = 9;
inline void CameraSensorViewConfiguration::clear_samples_per_pixel() {
  samples_per_pixel_ = 0u;
}
inline ::PROTOBUF_NAMESPACE_ID::uint32 CameraSensorViewConfiguration::_internal_samples_per_pixel() const {
  return samples_per_pixel_;
}
inline ::PROTOBUF_NAMESPACE_ID::uint32 CameraSensorViewConfiguration::samples_per_pixel() const {
  // @@protoc_insertion_point(field_get:osi3.CameraSensorViewConfiguration.samples_per_pixel)
  return _internal_samples_per_pixel();
}
inline void CameraSensorViewConfiguration::_internal_set_samples_per_pixel(::PROTOBUF_NAMESPACE_ID::uint32 value) {
  
  samples_per_pixel_ = value;
}
inline void CameraSensorViewConfiguration::set_samples_per_pixel(::PROTOBUF_NAMESPACE_ID::uint32 value) {
  _internal_set_samples_per_pixel(value);
  // @@protoc_insertion_point(field_set:osi3.CameraSensorViewConfiguration.samples_per_pixel)
}

// uint32 max_number_of_interactions = 10;
inline void CameraSensorViewConfiguration::clear_max_number_of_interactions() {
  max_number_of_interactions_ = 0u;
}
inline ::PROTOBUF_NAMESPACE_ID::uint32 CameraSensorViewConfiguration::_internal_max_number_of_interactions() const {
  return max_number_of_interactions_;
}
inline ::PROTOBUF_NAMESPACE_ID::uint32 CameraSensorViewConfiguration::max_number_of_interactions() const {
  // @@protoc_insertion_point(field_get:osi3.CameraSensorViewConfiguration.max_number_of_interactions)
  return _internal_max_number_of_interactions();
}
inline void CameraSensorViewConfiguration::_internal_set_max_number_of_interactions(::PROTOBUF_NAMESPACE_ID::uint32 value) {
  
  max_number_of_interactions_ = value;
}
inline void CameraSensorViewConfiguration::set_max_number_of_interactions(::PROTOBUF_NAMESPACE_ID::uint32 value) {
  _internal_set_max_number_of_interactions(value);
  // @@protoc_insertion_point(field_set:osi3.CameraSensorViewConfiguration.max_number_of_interactions)
}

// repeated .osi3.WavelengthData wavelength_data = 11;
inline int CameraSensorViewConfiguration::_internal_wavelength_data_size() const {
  return wavelength_data_.size();
}
inline int CameraSensorViewConfiguration::wavelength_data_size() const {
  return _internal_wavelength_data_size();
}
inline ::osi3::WavelengthData* CameraSensorViewConfiguration::mutable_wavelength_data(int index) {
  // @@protoc_insertion_point(field_mutable:osi3.CameraSensorViewConfiguration.wavelength_data)
  return wavelength_data_.Mutable(index);
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::osi3::WavelengthData >*
CameraSensorViewConfiguration::mutable_wavelength_data() {
  // @@protoc_insertion_point(field_mutable_list:osi3.CameraSensorViewConfiguration.wavelength_data)
  return &wavelength_data_;
}
inline const ::osi3::WavelengthData& CameraSensorViewConfiguration::_internal_wavelength_data(int index) const {
  return wavelength_data_.Get(index);
}
inline const ::osi3::WavelengthData& CameraSensorViewConfiguration::wavelength_data(int index) const {
  // @@protoc_insertion_point(field_get:osi3.CameraSensorViewConfiguration.wavelength_data)
  return _internal_wavelength_data(index);
}
inline ::osi3::WavelengthData* CameraSensorViewConfiguration::_internal_add_wavelength_data() {
  return wavelength_data_.Add();
}
inline ::osi3::WavelengthData* CameraSensorViewConfiguration::add_wavelength_data() {
  // @@protoc_insertion_point(field_add:osi3.CameraSensorViewConfiguration.wavelength_data)
  return _internal_add_wavelength_data();
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::osi3::WavelengthData >&
CameraSensorViewConfiguration::wavelength_data() const {
  // @@protoc_insertion_point(field_list:osi3.CameraSensorViewConfiguration.wavelength_data)
  return wavelength_data_;
}

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

// UltrasonicSensorViewConfiguration

// .osi3.Identifier sensor_id = 1;
inline bool UltrasonicSensorViewConfiguration::_internal_has_sensor_id() const {
  return this != internal_default_instance() && sensor_id_ != nullptr;
}
inline bool UltrasonicSensorViewConfiguration::has_sensor_id() const {
  return _internal_has_sensor_id();
}
inline const ::osi3::Identifier& UltrasonicSensorViewConfiguration::_internal_sensor_id() const {
  const ::osi3::Identifier* p = sensor_id_;
  return p != nullptr ? *p : reinterpret_cast<const ::osi3::Identifier&>(
      ::osi3::_Identifier_default_instance_);
}
inline const ::osi3::Identifier& UltrasonicSensorViewConfiguration::sensor_id() const {
  // @@protoc_insertion_point(field_get:osi3.UltrasonicSensorViewConfiguration.sensor_id)
  return _internal_sensor_id();
}
inline void UltrasonicSensorViewConfiguration::unsafe_arena_set_allocated_sensor_id(
    ::osi3::Identifier* sensor_id) {
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(sensor_id_);
  }
  sensor_id_ = sensor_id;
  if (sensor_id) {
    
  } else {
    
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:osi3.UltrasonicSensorViewConfiguration.sensor_id)
}
inline ::osi3::Identifier* UltrasonicSensorViewConfiguration::release_sensor_id() {
  
  ::osi3::Identifier* temp = sensor_id_;
  sensor_id_ = nullptr;
  if (GetArena() != nullptr) {
    temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  }
  return temp;
}
inline ::osi3::Identifier* UltrasonicSensorViewConfiguration::unsafe_arena_release_sensor_id() {
  // @@protoc_insertion_point(field_release:osi3.UltrasonicSensorViewConfiguration.sensor_id)
  
  ::osi3::Identifier* temp = sensor_id_;
  sensor_id_ = nullptr;
  return temp;
}
inline ::osi3::Identifier* UltrasonicSensorViewConfiguration::_internal_mutable_sensor_id() {
  
  if (sensor_id_ == nullptr) {
    auto* p = CreateMaybeMessage<::osi3::Identifier>(GetArena());
    sensor_id_ = p;
  }
  return sensor_id_;
}
inline ::osi3::Identifier* UltrasonicSensorViewConfiguration::mutable_sensor_id() {
  // @@protoc_insertion_point(field_mutable:osi3.UltrasonicSensorViewConfiguration.sensor_id)
  return _internal_mutable_sensor_id();
}
inline void UltrasonicSensorViewConfiguration::set_allocated_sensor_id(::osi3::Identifier* sensor_id) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  if (message_arena == nullptr) {
    delete reinterpret_cast< ::PROTOBUF_NAMESPACE_ID::MessageLite*>(sensor_id_);
  }
  if (sensor_id) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(sensor_id)->GetArena();
    if (message_arena != submessage_arena) {
      sensor_id = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, sensor_id, submessage_arena);
    }
    
  } else {
    
  }
  sensor_id_ = sensor_id;
  // @@protoc_insertion_point(field_set_allocated:osi3.UltrasonicSensorViewConfiguration.sensor_id)
}

// .osi3.MountingPosition mounting_position = 2;
inline bool UltrasonicSensorViewConfiguration::_internal_has_mounting_position() const {
  return this != internal_default_instance() && mounting_position_ != nullptr;
}
inline bool UltrasonicSensorViewConfiguration::has_mounting_position() const {
  return _internal_has_mounting_position();
}
inline const ::osi3::MountingPosition& UltrasonicSensorViewConfiguration::_internal_mounting_position() const {
  const ::osi3::MountingPosition* p = mounting_position_;
  return p != nullptr ? *p : reinterpret_cast<const ::osi3::MountingPosition&>(
      ::osi3::_MountingPosition_default_instance_);
}
inline const ::osi3::MountingPosition& UltrasonicSensorViewConfiguration::mounting_position() const {
  // @@protoc_insertion_point(field_get:osi3.UltrasonicSensorViewConfiguration.mounting_position)
  return _internal_mounting_position();
}
inline void UltrasonicSensorViewConfiguration::unsafe_arena_set_allocated_mounting_position(
    ::osi3::MountingPosition* mounting_position) {
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(mounting_position_);
  }
  mounting_position_ = mounting_position;
  if (mounting_position) {
    
  } else {
    
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:osi3.UltrasonicSensorViewConfiguration.mounting_position)
}
inline ::osi3::MountingPosition* UltrasonicSensorViewConfiguration::release_mounting_position() {
  
  ::osi3::MountingPosition* temp = mounting_position_;
  mounting_position_ = nullptr;
  if (GetArena() != nullptr) {
    temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  }
  return temp;
}
inline ::osi3::MountingPosition* UltrasonicSensorViewConfiguration::unsafe_arena_release_mounting_position() {
  // @@protoc_insertion_point(field_release:osi3.UltrasonicSensorViewConfiguration.mounting_position)
  
  ::osi3::MountingPosition* temp = mounting_position_;
  mounting_position_ = nullptr;
  return temp;
}
inline ::osi3::MountingPosition* UltrasonicSensorViewConfiguration::_internal_mutable_mounting_position() {
  
  if (mounting_position_ == nullptr) {
    auto* p = CreateMaybeMessage<::osi3::MountingPosition>(GetArena());
    mounting_position_ = p;
  }
  return mounting_position_;
}
inline ::osi3::MountingPosition* UltrasonicSensorViewConfiguration::mutable_mounting_position() {
  // @@protoc_insertion_point(field_mutable:osi3.UltrasonicSensorViewConfiguration.mounting_position)
  return _internal_mutable_mounting_position();
}
inline void UltrasonicSensorViewConfiguration::set_allocated_mounting_position(::osi3::MountingPosition* mounting_position) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  if (message_arena == nullptr) {
    delete reinterpret_cast< ::PROTOBUF_NAMESPACE_ID::MessageLite*>(mounting_position_);
  }
  if (mounting_position) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(mounting_position)->GetArena();
    if (message_arena != submessage_arena) {
      mounting_position = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, mounting_position, submessage_arena);
    }
    
  } else {
    
  }
  mounting_position_ = mounting_position;
  // @@protoc_insertion_point(field_set_allocated:osi3.UltrasonicSensorViewConfiguration.mounting_position)
}

// .osi3.MountingPosition mounting_position_rmse = 3;
inline bool UltrasonicSensorViewConfiguration::_internal_has_mounting_position_rmse() const {
  return this != internal_default_instance() && mounting_position_rmse_ != nullptr;
}
inline bool UltrasonicSensorViewConfiguration::has_mounting_position_rmse() const {
  return _internal_has_mounting_position_rmse();
}
inline const ::osi3::MountingPosition& UltrasonicSensorViewConfiguration::_internal_mounting_position_rmse() const {
  const ::osi3::MountingPosition* p = mounting_position_rmse_;
  return p != nullptr ? *p : reinterpret_cast<const ::osi3::MountingPosition&>(
      ::osi3::_MountingPosition_default_instance_);
}
inline const ::osi3::MountingPosition& UltrasonicSensorViewConfiguration::mounting_position_rmse() const {
  // @@protoc_insertion_point(field_get:osi3.UltrasonicSensorViewConfiguration.mounting_position_rmse)
  return _internal_mounting_position_rmse();
}
inline void UltrasonicSensorViewConfiguration::unsafe_arena_set_allocated_mounting_position_rmse(
    ::osi3::MountingPosition* mounting_position_rmse) {
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(mounting_position_rmse_);
  }
  mounting_position_rmse_ = mounting_position_rmse;
  if (mounting_position_rmse) {
    
  } else {
    
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:osi3.UltrasonicSensorViewConfiguration.mounting_position_rmse)
}
inline ::osi3::MountingPosition* UltrasonicSensorViewConfiguration::release_mounting_position_rmse() {
  
  ::osi3::MountingPosition* temp = mounting_position_rmse_;
  mounting_position_rmse_ = nullptr;
  if (GetArena() != nullptr) {
    temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  }
  return temp;
}
inline ::osi3::MountingPosition* UltrasonicSensorViewConfiguration::unsafe_arena_release_mounting_position_rmse() {
  // @@protoc_insertion_point(field_release:osi3.UltrasonicSensorViewConfiguration.mounting_position_rmse)
  
  ::osi3::MountingPosition* temp = mounting_position_rmse_;
  mounting_position_rmse_ = nullptr;
  return temp;
}
inline ::osi3::MountingPosition* UltrasonicSensorViewConfiguration::_internal_mutable_mounting_position_rmse() {
  
  if (mounting_position_rmse_ == nullptr) {
    auto* p = CreateMaybeMessage<::osi3::MountingPosition>(GetArena());
    mounting_position_rmse_ = p;
  }
  return mounting_position_rmse_;
}
inline ::osi3::MountingPosition* UltrasonicSensorViewConfiguration::mutable_mounting_position_rmse() {
  // @@protoc_insertion_point(field_mutable:osi3.UltrasonicSensorViewConfiguration.mounting_position_rmse)
  return _internal_mutable_mounting_position_rmse();
}
inline void UltrasonicSensorViewConfiguration::set_allocated_mounting_position_rmse(::osi3::MountingPosition* mounting_position_rmse) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
  if (message_arena == nullptr) {
    delete reinterpret_cast< ::PROTOBUF_NAMESPACE_ID::MessageLite*>(mounting_position_rmse_);
  }
  if (mounting_position_rmse) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(mounting_position_rmse)->GetArena();
    if (message_arena != submessage_arena) {
      mounting_position_rmse = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, mounting_position_rmse, submessage_arena);
    }
    
  } else {
    
  }
  mounting_position_rmse_ = mounting_position_rmse;
  // @@protoc_insertion_point(field_set_allocated:osi3.UltrasonicSensorViewConfiguration.mounting_position_rmse)
}

// double field_of_view_horizontal = 4;
inline void UltrasonicSensorViewConfiguration::clear_field_of_view_horizontal() {
  field_of_view_horizontal_ = 0;
}
inline double UltrasonicSensorViewConfiguration::_internal_field_of_view_horizontal() const {
  return field_of_view_horizontal_;
}
inline double UltrasonicSensorViewConfiguration::field_of_view_horizontal() const {
  // @@protoc_insertion_point(field_get:osi3.UltrasonicSensorViewConfiguration.field_of_view_horizontal)
  return _internal_field_of_view_horizontal();
}
inline void UltrasonicSensorViewConfiguration::_internal_set_field_of_view_horizontal(double value) {
  
  field_of_view_horizontal_ = value;
}
inline void UltrasonicSensorViewConfiguration::set_field_of_view_horizontal(double value) {
  _internal_set_field_of_view_horizontal(value);
  // @@protoc_insertion_point(field_set:osi3.UltrasonicSensorViewConfiguration.field_of_view_horizontal)
}

// double field_of_view_vertical = 5;
inline void UltrasonicSensorViewConfiguration::clear_field_of_view_vertical() {
  field_of_view_vertical_ = 0;
}
inline double UltrasonicSensorViewConfiguration::_internal_field_of_view_vertical() const {
  return field_of_view_vertical_;
}
inline double UltrasonicSensorViewConfiguration::field_of_view_vertical() const {
  // @@protoc_insertion_point(field_get:osi3.UltrasonicSensorViewConfiguration.field_of_view_vertical)
  return _internal_field_of_view_vertical();
}
inline void UltrasonicSensorViewConfiguration::_internal_set_field_of_view_vertical(double value) {
  
  field_of_view_vertical_ = value;
}
inline void UltrasonicSensorViewConfiguration::set_field_of_view_vertical(double value) {
  _internal_set_field_of_view_vertical(value);
  // @@protoc_insertion_point(field_set:osi3.UltrasonicSensorViewConfiguration.field_of_view_vertical)
}

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

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

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

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

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

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


// @@protoc_insertion_point(namespace_scope)

}  // namespace osi3

PROTOBUF_NAMESPACE_OPEN

template <> struct is_proto_enum< ::osi3::CameraSensorViewConfiguration_ChannelFormat> : ::std::true_type {};
template <>
inline const EnumDescriptor* GetEnumDescriptor< ::osi3::CameraSensorViewConfiguration_ChannelFormat>() {
  return ::osi3::CameraSensorViewConfiguration_ChannelFormat_descriptor();
}

PROTOBUF_NAMESPACE_CLOSE

// @@protoc_insertion_point(global_scope)

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