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

#include "meta.pb.h"

#include <algorithm>

#include <google/protobuf/io/coded_stream.h>
#include <google/protobuf/extension_set.h>
#include <google/protobuf/wire_format_lite.h>
#include <google/protobuf/descriptor.h>
#include <google/protobuf/generated_message_reflection.h>
#include <google/protobuf/reflection_ops.h>
#include <google/protobuf/wire_format.h>
// @@protoc_insertion_point(includes)
#include <google/protobuf/port_def.inc>

PROTOBUF_PRAGMA_INIT_SEG

namespace _pb = ::PROTOBUF_NAMESPACE_ID;
namespace _pbi = _pb::internal;

namespace Messages {
PROTOBUF_CONSTEXPR GraphicsControl::GraphicsControl(
    ::_pbi::ConstantInitialized)
  : color_()
  , mode_(0u)
  , style_(0u)
  , alpha_(0)
  , point_width_(0)
  , line_width_(0)
  , visible_(false){}
struct GraphicsControlDefaultTypeInternal {
  PROTOBUF_CONSTEXPR GraphicsControlDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~GraphicsControlDefaultTypeInternal() {}
  union {
    GraphicsControl _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 GraphicsControlDefaultTypeInternal _GraphicsControl_default_instance_;
PROTOBUF_CONSTEXPR Representation::Representation(
    ::_pbi::ConstantInitialized)
  : range_()
  , property_key_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{})
  , color_map_(0u)
  , component_(0u)
  , auto_range_(false)
  , use_default_key_(false)
  , color_out_of_range_(false)
  , use_magnitude_(false)
  , displacement_multiplier_(0){}
struct RepresentationDefaultTypeInternal {
  PROTOBUF_CONSTEXPR RepresentationDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~RepresentationDefaultTypeInternal() {}
  union {
    Representation _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 RepresentationDefaultTypeInternal _Representation_default_instance_;
PROTOBUF_CONSTEXPR Visual::Visual(
    ::_pbi::ConstantInitialized)
  : points_()
  , _points_cached_byte_size_(0)
  , lines_()
  , _lines_cached_byte_size_(0)
  , triangles_()
  , _triangles_cached_byte_size_(0)
  , indices_per_element_()
  , _indices_per_element_cached_byte_size_(0)
  , elements_to_indices_()
  , _elements_to_indices_cached_byte_size_(0)
  , indices_to_elements_()
  , _indices_to_elements_cached_byte_size_(0)
  , extras_()
  , region_(nullptr)
  , control_(nullptr)
  , representation_(nullptr){}
struct VisualDefaultTypeInternal {
  PROTOBUF_CONSTEXPR VisualDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~VisualDefaultTypeInternal() {}
  union {
    Visual _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 VisualDefaultTypeInternal _Visual_default_instance_;
PROTOBUF_CONSTEXPR Meta::Meta(
    ::_pbi::ConstantInitialized)
  : children_()
  , _children_cached_byte_size_(0)
  , groups_()
  , _groups_cached_byte_size_(0)
  , loops_()
  , _loops_cached_byte_size_(0)
  , surfaces_()
  , _surfaces_cached_byte_size_(0)
  , volumes_()
  , _volumes_cached_byte_size_(0)
  , global_transform_()
  , global_rate_()
  , global_accel_()
  , properties_()
  , media_()
  , symbol_transform_()
  , name_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{})
  , directory_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{})
  , symbol_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{})
  , owner_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{})
  , comments_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{})
  , series_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{})
  , sys_info_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{})
  , geom_info_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{})
  , url_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{})
  , revision_(nullptr)
  , version_(nullptr)
  , bounds_(nullptr)
  , appearance_(nullptr)
  , uid_(int64_t{0})
  , parent_(int64_t{0})
  , created_(int64_t{0})
  , saved_(int64_t{0})
  , modified_(int64_t{0})
  , iteration_(uint64_t{0u})
  , save_interval_(uint64_t{0u})
  , enabled_(false)
  , locked_(false)
  , auto_save_(false)
  , lightweight_(false)
  , length_units_(0u){}
struct MetaDefaultTypeInternal {
  PROTOBUF_CONSTEXPR MetaDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~MetaDefaultTypeInternal() {}
  union {
    Meta _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 MetaDefaultTypeInternal _Meta_default_instance_;
PROTOBUF_CONSTEXPR SliceControl::SliceControl(
    ::_pbi::ConstantInitialized)
  : center_()
  , normal_()
  , name_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{})
  , intersect_(false)
  , negative_(false)
  , positive_(false){}
struct SliceControlDefaultTypeInternal {
  PROTOBUF_CONSTEXPR SliceControlDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~SliceControlDefaultTypeInternal() {}
  union {
    SliceControl _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 SliceControlDefaultTypeInternal _SliceControl_default_instance_;
PROTOBUF_CONSTEXPR CameraControl::CameraControl(
    ::_pbi::ConstantInitialized)
  : subject_()
  , offset_()
  , angle_()
  , resolution_()
  , _resolution_cached_byte_size_(0)
  , scene_time_(0)
  , magnification_(0)
  , time_constant_(0)
  , pan_sensitivity_(0)
  , rotation_sensitivity_(0)
  , zoom_sensitivity_(0)
  , znear_(0)
  , zfar_(0)
  , aov_(0)
  , perspective_(false)
  , smooth_(false)
  , orbit_(false)
  , follow_(false){}
struct CameraControlDefaultTypeInternal {
  PROTOBUF_CONSTEXPR CameraControlDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~CameraControlDefaultTypeInternal() {}
  union {
    CameraControl _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 CameraControlDefaultTypeInternal _CameraControl_default_instance_;
}  // namespace Messages
static ::_pb::Metadata file_level_metadata_meta_2eproto[6];
static constexpr ::_pb::EnumDescriptor const** file_level_enum_descriptors_meta_2eproto = nullptr;
static constexpr ::_pb::ServiceDescriptor const** file_level_service_descriptors_meta_2eproto = nullptr;

const uint32_t TableStruct_meta_2eproto::offsets[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = {
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Messages::GraphicsControl, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::Messages::GraphicsControl, mode_),
  PROTOBUF_FIELD_OFFSET(::Messages::GraphicsControl, style_),
  PROTOBUF_FIELD_OFFSET(::Messages::GraphicsControl, color_),
  PROTOBUF_FIELD_OFFSET(::Messages::GraphicsControl, alpha_),
  PROTOBUF_FIELD_OFFSET(::Messages::GraphicsControl, point_width_),
  PROTOBUF_FIELD_OFFSET(::Messages::GraphicsControl, line_width_),
  PROTOBUF_FIELD_OFFSET(::Messages::GraphicsControl, visible_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Messages::Representation, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::Messages::Representation, property_key_),
  PROTOBUF_FIELD_OFFSET(::Messages::Representation, color_map_),
  PROTOBUF_FIELD_OFFSET(::Messages::Representation, component_),
  PROTOBUF_FIELD_OFFSET(::Messages::Representation, auto_range_),
  PROTOBUF_FIELD_OFFSET(::Messages::Representation, use_default_key_),
  PROTOBUF_FIELD_OFFSET(::Messages::Representation, color_out_of_range_),
  PROTOBUF_FIELD_OFFSET(::Messages::Representation, use_magnitude_),
  PROTOBUF_FIELD_OFFSET(::Messages::Representation, displacement_multiplier_),
  PROTOBUF_FIELD_OFFSET(::Messages::Representation, range_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Messages::Visual, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::Messages::Visual, region_),
  PROTOBUF_FIELD_OFFSET(::Messages::Visual, control_),
  PROTOBUF_FIELD_OFFSET(::Messages::Visual, representation_),
  PROTOBUF_FIELD_OFFSET(::Messages::Visual, points_),
  PROTOBUF_FIELD_OFFSET(::Messages::Visual, lines_),
  PROTOBUF_FIELD_OFFSET(::Messages::Visual, triangles_),
  PROTOBUF_FIELD_OFFSET(::Messages::Visual, indices_per_element_),
  PROTOBUF_FIELD_OFFSET(::Messages::Visual, elements_to_indices_),
  PROTOBUF_FIELD_OFFSET(::Messages::Visual, indices_to_elements_),
  PROTOBUF_FIELD_OFFSET(::Messages::Visual, extras_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Messages::Meta, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::Messages::Meta, name_),
  PROTOBUF_FIELD_OFFSET(::Messages::Meta, uid_),
  PROTOBUF_FIELD_OFFSET(::Messages::Meta, directory_),
  PROTOBUF_FIELD_OFFSET(::Messages::Meta, symbol_),
  PROTOBUF_FIELD_OFFSET(::Messages::Meta, owner_),
  PROTOBUF_FIELD_OFFSET(::Messages::Meta, comments_),
  PROTOBUF_FIELD_OFFSET(::Messages::Meta, series_),
  PROTOBUF_FIELD_OFFSET(::Messages::Meta, sys_info_),
  PROTOBUF_FIELD_OFFSET(::Messages::Meta, geom_info_),
  PROTOBUF_FIELD_OFFSET(::Messages::Meta, parent_),
  PROTOBUF_FIELD_OFFSET(::Messages::Meta, created_),
  PROTOBUF_FIELD_OFFSET(::Messages::Meta, saved_),
  PROTOBUF_FIELD_OFFSET(::Messages::Meta, modified_),
  PROTOBUF_FIELD_OFFSET(::Messages::Meta, iteration_),
  PROTOBUF_FIELD_OFFSET(::Messages::Meta, save_interval_),
  PROTOBUF_FIELD_OFFSET(::Messages::Meta, enabled_),
  PROTOBUF_FIELD_OFFSET(::Messages::Meta, locked_),
  PROTOBUF_FIELD_OFFSET(::Messages::Meta, auto_save_),
  PROTOBUF_FIELD_OFFSET(::Messages::Meta, lightweight_),
  PROTOBUF_FIELD_OFFSET(::Messages::Meta, revision_),
  PROTOBUF_FIELD_OFFSET(::Messages::Meta, version_),
  PROTOBUF_FIELD_OFFSET(::Messages::Meta, bounds_),
  PROTOBUF_FIELD_OFFSET(::Messages::Meta, url_),
  PROTOBUF_FIELD_OFFSET(::Messages::Meta, appearance_),
  PROTOBUF_FIELD_OFFSET(::Messages::Meta, children_),
  PROTOBUF_FIELD_OFFSET(::Messages::Meta, groups_),
  PROTOBUF_FIELD_OFFSET(::Messages::Meta, loops_),
  PROTOBUF_FIELD_OFFSET(::Messages::Meta, surfaces_),
  PROTOBUF_FIELD_OFFSET(::Messages::Meta, volumes_),
  PROTOBUF_FIELD_OFFSET(::Messages::Meta, global_transform_),
  PROTOBUF_FIELD_OFFSET(::Messages::Meta, global_rate_),
  PROTOBUF_FIELD_OFFSET(::Messages::Meta, global_accel_),
  PROTOBUF_FIELD_OFFSET(::Messages::Meta, properties_),
  PROTOBUF_FIELD_OFFSET(::Messages::Meta, media_),
  PROTOBUF_FIELD_OFFSET(::Messages::Meta, symbol_transform_),
  PROTOBUF_FIELD_OFFSET(::Messages::Meta, length_units_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Messages::SliceControl, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::Messages::SliceControl, name_),
  PROTOBUF_FIELD_OFFSET(::Messages::SliceControl, center_),
  PROTOBUF_FIELD_OFFSET(::Messages::SliceControl, normal_),
  PROTOBUF_FIELD_OFFSET(::Messages::SliceControl, intersect_),
  PROTOBUF_FIELD_OFFSET(::Messages::SliceControl, negative_),
  PROTOBUF_FIELD_OFFSET(::Messages::SliceControl, positive_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::Messages::CameraControl, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::Messages::CameraControl, subject_),
  PROTOBUF_FIELD_OFFSET(::Messages::CameraControl, offset_),
  PROTOBUF_FIELD_OFFSET(::Messages::CameraControl, angle_),
  PROTOBUF_FIELD_OFFSET(::Messages::CameraControl, scene_time_),
  PROTOBUF_FIELD_OFFSET(::Messages::CameraControl, magnification_),
  PROTOBUF_FIELD_OFFSET(::Messages::CameraControl, time_constant_),
  PROTOBUF_FIELD_OFFSET(::Messages::CameraControl, pan_sensitivity_),
  PROTOBUF_FIELD_OFFSET(::Messages::CameraControl, rotation_sensitivity_),
  PROTOBUF_FIELD_OFFSET(::Messages::CameraControl, zoom_sensitivity_),
  PROTOBUF_FIELD_OFFSET(::Messages::CameraControl, znear_),
  PROTOBUF_FIELD_OFFSET(::Messages::CameraControl, zfar_),
  PROTOBUF_FIELD_OFFSET(::Messages::CameraControl, aov_),
  PROTOBUF_FIELD_OFFSET(::Messages::CameraControl, resolution_),
  PROTOBUF_FIELD_OFFSET(::Messages::CameraControl, perspective_),
  PROTOBUF_FIELD_OFFSET(::Messages::CameraControl, smooth_),
  PROTOBUF_FIELD_OFFSET(::Messages::CameraControl, orbit_),
  PROTOBUF_FIELD_OFFSET(::Messages::CameraControl, follow_),
};
static const ::_pbi::MigrationSchema schemas[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = {
  { 0, -1, -1, sizeof(::Messages::GraphicsControl)},
  { 13, -1, -1, sizeof(::Messages::Representation)},
  { 28, -1, -1, sizeof(::Messages::Visual)},
  { 44, -1, -1, sizeof(::Messages::Meta)},
  { 86, -1, -1, sizeof(::Messages::SliceControl)},
  { 98, -1, -1, sizeof(::Messages::CameraControl)},
};

static const ::_pb::Message* const file_default_instances[] = {
  &::Messages::_GraphicsControl_default_instance_._instance,
  &::Messages::_Representation_default_instance_._instance,
  &::Messages::_Visual_default_instance_._instance,
  &::Messages::_Meta_default_instance_._instance,
  &::Messages::_SliceControl_default_instance_._instance,
  &::Messages::_CameraControl_default_instance_._instance,
};

const char descriptor_table_protodef_meta_2eproto[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) =
  "\n\nmeta.proto\022\010Messages\032\014vector.proto\032\rsp"
  "atial.proto\"\206\001\n\017GraphicsControl\022\014\n\004mode\030"
  "\001 \001(\r\022\r\n\005style\030\002 \001(\r\022\r\n\005color\030\004 \003(\002\022\r\n\005a"
  "lpha\030\005 \001(\002\022\023\n\013point_width\030\006 \001(\002\022\022\n\nline_"
  "width\030\007 \001(\002\022\017\n\007visible\030\n \001(\010\"\334\001\n\016Represe"
  "ntation\022\024\n\014property_key\030\001 \001(\t\022\021\n\tcolor_m"
  "ap\030\002 \001(\r\022\021\n\tcomponent\030\003 \001(\r\022\022\n\nauto_rang"
  "e\030\004 \001(\010\022\027\n\017use_default_key\030\005 \001(\010\022\032\n\022colo"
  "r_out_of_range\030\006 \001(\010\022\025\n\ruse_magnitude\030\007 "
  "\001(\010\022\037\n\027displacement_multiplier\030\t \001(\002\022\r\n\005"
  "range\030\n \003(\002\"\263\002\n\006Visual\022\036\n\006region\030\001 \001(\0132\016"
  ".Messages.Zone\022*\n\007control\030\002 \001(\0132\031.Messag"
  "es.GraphicsControl\0220\n\016representation\030\003 \001"
  "(\0132\030.Messages.Representation\022\016\n\006points\030\005"
  " \003(\r\022\r\n\005lines\030\006 \003(\r\022\021\n\ttriangles\030\007 \003(\r\022\033"
  "\n\023indices_per_element\030\010 \003(\r\022\033\n\023elements_"
  "to_indices\030\t \003(\r\022\033\n\023indices_to_elements\030"
  "\n \003(\r\022\"\n\006extras\030\017 \003(\0132\022.Messages.Vector3"
  "2\"\367\005\n\004Meta\022\014\n\004name\030\001 \001(\t\022\013\n\003uid\030\002 \001(\003\022\021\n"
  "\tdirectory\030\003 \001(\t\022\016\n\006symbol\030\004 \001(\t\022\r\n\005owne"
  "r\030\005 \001(\t\022\020\n\010comments\030\006 \001(\t\022\016\n\006series\030\007 \001("
  "\t\022\020\n\010sys_info\030\010 \001(\t\022\021\n\tgeom_info\030\t \001(\t\022\016"
  "\n\006parent\030\n \001(\003\022\017\n\007created\030\013 \001(\003\022\r\n\005saved"
  "\030\014 \001(\003\022\020\n\010modified\030\r \001(\003\022\021\n\titeration\030\016 "
  "\001(\004\022\025\n\rsave_interval\030\017 \001(\004\022\017\n\007enabled\030\020 "
  "\001(\010\022\016\n\006locked\030\021 \001(\010\022\021\n\tauto_save\030\022 \001(\010\022\023"
  "\n\013lightweight\030\023 \001(\010\022$\n\010revision\030\024 \001(\0132\022."
  "Messages.Revision\022#\n\007version\030\025 \001(\0132\022.Mes"
  "sages.Revision\022!\n\006bounds\030\026 \001(\0132\021.Message"
  "s.Extrema\022\013\n\003url\030\027 \001(\t\022-\n\nappearance\030\030 \001"
  "(\0132\031.Messages.GraphicsControl\022\020\n\010childre"
  "n\030\031 \003(\003\022\016\n\006groups\030\032 \003(\005\022\r\n\005loops\030\033 \003(\005\022\020"
  "\n\010surfaces\030\034 \003(\005\022\017\n\007volumes\030\035 \003(\005\022\030\n\020glo"
  "bal_transform\030\036 \003(\001\022\023\n\013global_rate\030\037 \003(\001"
  "\022\024\n\014global_accel\030  \003(\001\022\022\n\nproperties\030! \003"
  "(\t\022\037\n\005media\030\" \003(\0132\020.Messages.Visual\022\030\n\020s"
  "ymbol_transform\030# \003(\002\022\024\n\014length_units\030( "
  "\001(\r\"s\n\014SliceControl\022\014\n\004name\030\001 \001(\t\022\016\n\006cen"
  "ter\030\002 \003(\001\022\016\n\006normal\030\003 \003(\001\022\021\n\tintersect\030\004"
  " \001(\010\022\020\n\010negative\030\005 \001(\010\022\020\n\010positive\030\006 \001(\010"
  "\"\324\002\n\rCameraControl\022\017\n\007subject\030\001 \003(\002\022\016\n\006o"
  "ffset\030\002 \003(\002\022\r\n\005angle\030\003 \003(\002\022\022\n\nscene_time"
  "\030\004 \001(\002\022\025\n\rmagnification\030\005 \001(\002\022\025\n\rtime_co"
  "nstant\030\006 \001(\002\022\027\n\017pan_sensitivity\030\007 \001(\002\022\034\n"
  "\024rotation_sensitivity\030\010 \001(\002\022\030\n\020zoom_sens"
  "itivity\030\t \001(\002\022\r\n\005znear\030\n \001(\002\022\014\n\004zfar\030\013 \001"
  "(\002\022\013\n\003aov\030\014 \001(\002\022\022\n\nresolution\030\r \003(\r\022\023\n\013p"
  "erspective\030\017 \001(\010\022\016\n\006smooth\030\020 \001(\010\022\r\n\005orbi"
  "t\030\021 \001(\010\022\016\n\006follow\030\022 \001(\010b\006proto3"
  ;
static const ::_pbi::DescriptorTable* const descriptor_table_meta_2eproto_deps[2] = {
  &::descriptor_table_spatial_2eproto,
  &::descriptor_table_vector_2eproto,
};
static ::_pbi::once_flag descriptor_table_meta_2eproto_once;
const ::_pbi::DescriptorTable descriptor_table_meta_2eproto = {
    false, false, 1951, descriptor_table_protodef_meta_2eproto,
    "meta.proto",
    &descriptor_table_meta_2eproto_once, descriptor_table_meta_2eproto_deps, 2, 6,
    schemas, file_default_instances, TableStruct_meta_2eproto::offsets,
    file_level_metadata_meta_2eproto, file_level_enum_descriptors_meta_2eproto,
    file_level_service_descriptors_meta_2eproto,
};
PROTOBUF_ATTRIBUTE_WEAK const ::_pbi::DescriptorTable* descriptor_table_meta_2eproto_getter() {
  return &descriptor_table_meta_2eproto;
}

// Force running AddDescriptors() at dynamic initialization time.
PROTOBUF_ATTRIBUTE_INIT_PRIORITY2 static ::_pbi::AddDescriptorsRunner dynamic_init_dummy_meta_2eproto(&descriptor_table_meta_2eproto);
namespace Messages {

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

class GraphicsControl::_Internal {
 public:
};

GraphicsControl::GraphicsControl(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned),
  color_(arena) {
  SharedCtor();
  // @@protoc_insertion_point(arena_constructor:Messages.GraphicsControl)
}
GraphicsControl::GraphicsControl(const GraphicsControl& from)
  : ::PROTOBUF_NAMESPACE_ID::Message(),
      color_(from.color_) {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  ::memcpy(&mode_, &from.mode_,
    static_cast<size_t>(reinterpret_cast<char*>(&visible_) -
    reinterpret_cast<char*>(&mode_)) + sizeof(visible_));
  // @@protoc_insertion_point(copy_constructor:Messages.GraphicsControl)
}

inline void GraphicsControl::SharedCtor() {
::memset(reinterpret_cast<char*>(this) + static_cast<size_t>(
    reinterpret_cast<char*>(&mode_) - reinterpret_cast<char*>(this)),
    0, static_cast<size_t>(reinterpret_cast<char*>(&visible_) -
    reinterpret_cast<char*>(&mode_)) + sizeof(visible_));
}

GraphicsControl::~GraphicsControl() {
  // @@protoc_insertion_point(destructor:Messages.GraphicsControl)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void GraphicsControl::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
}

void GraphicsControl::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}

void GraphicsControl::Clear() {
// @@protoc_insertion_point(message_clear_start:Messages.GraphicsControl)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  color_.Clear();
  ::memset(&mode_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&visible_) -
      reinterpret_cast<char*>(&mode_)) + sizeof(visible_));
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* GraphicsControl::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // uint32 mode = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 8)) {
          mode_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // uint32 style = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 16)) {
          style_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // repeated float color = 4;
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 34)) {
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedFloatParser(_internal_mutable_color(), ptr, ctx);
          CHK_(ptr);
        } else if (static_cast<uint8_t>(tag) == 37) {
          _internal_add_color(::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr));
          ptr += sizeof(float);
        } else
          goto handle_unusual;
        continue;
      // float alpha = 5;
      case 5:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 45)) {
          alpha_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else
          goto handle_unusual;
        continue;
      // float point_width = 6;
      case 6:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 53)) {
          point_width_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else
          goto handle_unusual;
        continue;
      // float line_width = 7;
      case 7:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 61)) {
          line_width_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else
          goto handle_unusual;
        continue;
      // bool visible = 10;
      case 10:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 80)) {
          visible_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* GraphicsControl::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:Messages.GraphicsControl)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // uint32 mode = 1;
  if (this->_internal_mode() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteUInt32ToArray(1, this->_internal_mode(), target);
  }

  // uint32 style = 2;
  if (this->_internal_style() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteUInt32ToArray(2, this->_internal_style(), target);
  }

  // repeated float color = 4;
  if (this->_internal_color_size() > 0) {
    target = stream->WriteFixedPacked(4, _internal_color(), target);
  }

  // float alpha = 5;
  static_assert(sizeof(uint32_t) == sizeof(float), "Code assumes uint32_t and float are the same size.");
  float tmp_alpha = this->_internal_alpha();
  uint32_t raw_alpha;
  memcpy(&raw_alpha, &tmp_alpha, sizeof(tmp_alpha));
  if (raw_alpha != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteFloatToArray(5, this->_internal_alpha(), target);
  }

  // float point_width = 6;
  static_assert(sizeof(uint32_t) == sizeof(float), "Code assumes uint32_t and float are the same size.");
  float tmp_point_width = this->_internal_point_width();
  uint32_t raw_point_width;
  memcpy(&raw_point_width, &tmp_point_width, sizeof(tmp_point_width));
  if (raw_point_width != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteFloatToArray(6, this->_internal_point_width(), target);
  }

  // float line_width = 7;
  static_assert(sizeof(uint32_t) == sizeof(float), "Code assumes uint32_t and float are the same size.");
  float tmp_line_width = this->_internal_line_width();
  uint32_t raw_line_width;
  memcpy(&raw_line_width, &tmp_line_width, sizeof(tmp_line_width));
  if (raw_line_width != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteFloatToArray(7, this->_internal_line_width(), target);
  }

  // bool visible = 10;
  if (this->_internal_visible() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteBoolToArray(10, this->_internal_visible(), target);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:Messages.GraphicsControl)
  return target;
}

size_t GraphicsControl::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Messages.GraphicsControl)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // repeated float color = 4;
  {
    unsigned int count = static_cast<unsigned int>(this->_internal_color_size());
    size_t data_size = 4UL * count;
    if (data_size > 0) {
      total_size += 1 +
        ::_pbi::WireFormatLite::Int32Size(static_cast<int32_t>(data_size));
    }
    total_size += data_size;
  }

  // uint32 mode = 1;
  if (this->_internal_mode() != 0) {
    total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(this->_internal_mode());
  }

  // uint32 style = 2;
  if (this->_internal_style() != 0) {
    total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(this->_internal_style());
  }

  // float alpha = 5;
  static_assert(sizeof(uint32_t) == sizeof(float), "Code assumes uint32_t and float are the same size.");
  float tmp_alpha = this->_internal_alpha();
  uint32_t raw_alpha;
  memcpy(&raw_alpha, &tmp_alpha, sizeof(tmp_alpha));
  if (raw_alpha != 0) {
    total_size += 1 + 4;
  }

  // float point_width = 6;
  static_assert(sizeof(uint32_t) == sizeof(float), "Code assumes uint32_t and float are the same size.");
  float tmp_point_width = this->_internal_point_width();
  uint32_t raw_point_width;
  memcpy(&raw_point_width, &tmp_point_width, sizeof(tmp_point_width));
  if (raw_point_width != 0) {
    total_size += 1 + 4;
  }

  // float line_width = 7;
  static_assert(sizeof(uint32_t) == sizeof(float), "Code assumes uint32_t and float are the same size.");
  float tmp_line_width = this->_internal_line_width();
  uint32_t raw_line_width;
  memcpy(&raw_line_width, &tmp_line_width, sizeof(tmp_line_width));
  if (raw_line_width != 0) {
    total_size += 1 + 4;
  }

  // bool visible = 10;
  if (this->_internal_visible() != 0) {
    total_size += 1 + 1;
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData GraphicsControl::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
    GraphicsControl::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GraphicsControl::GetClassData() const { return &_class_data_; }

void GraphicsControl::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
                      const ::PROTOBUF_NAMESPACE_ID::Message& from) {
  static_cast<GraphicsControl *>(to)->MergeFrom(
      static_cast<const GraphicsControl &>(from));
}


void GraphicsControl::MergeFrom(const GraphicsControl& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:Messages.GraphicsControl)
  GOOGLE_DCHECK_NE(&from, this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  color_.MergeFrom(from.color_);
  if (from._internal_mode() != 0) {
    _internal_set_mode(from._internal_mode());
  }
  if (from._internal_style() != 0) {
    _internal_set_style(from._internal_style());
  }
  static_assert(sizeof(uint32_t) == sizeof(float), "Code assumes uint32_t and float are the same size.");
  float tmp_alpha = from._internal_alpha();
  uint32_t raw_alpha;
  memcpy(&raw_alpha, &tmp_alpha, sizeof(tmp_alpha));
  if (raw_alpha != 0) {
    _internal_set_alpha(from._internal_alpha());
  }
  static_assert(sizeof(uint32_t) == sizeof(float), "Code assumes uint32_t and float are the same size.");
  float tmp_point_width = from._internal_point_width();
  uint32_t raw_point_width;
  memcpy(&raw_point_width, &tmp_point_width, sizeof(tmp_point_width));
  if (raw_point_width != 0) {
    _internal_set_point_width(from._internal_point_width());
  }
  static_assert(sizeof(uint32_t) == sizeof(float), "Code assumes uint32_t and float are the same size.");
  float tmp_line_width = from._internal_line_width();
  uint32_t raw_line_width;
  memcpy(&raw_line_width, &tmp_line_width, sizeof(tmp_line_width));
  if (raw_line_width != 0) {
    _internal_set_line_width(from._internal_line_width());
  }
  if (from._internal_visible() != 0) {
    _internal_set_visible(from._internal_visible());
  }
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void GraphicsControl::CopyFrom(const GraphicsControl& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Messages.GraphicsControl)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool GraphicsControl::IsInitialized() const {
  return true;
}

void GraphicsControl::InternalSwap(GraphicsControl* other) {
  using std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  color_.InternalSwap(&other->color_);
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(GraphicsControl, visible_)
      + sizeof(GraphicsControl::visible_)
      - PROTOBUF_FIELD_OFFSET(GraphicsControl, mode_)>(
          reinterpret_cast<char*>(&mode_),
          reinterpret_cast<char*>(&other->mode_));
}

::PROTOBUF_NAMESPACE_ID::Metadata GraphicsControl::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_meta_2eproto_getter, &descriptor_table_meta_2eproto_once,
      file_level_metadata_meta_2eproto[0]);
}

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

class Representation::_Internal {
 public:
};

Representation::Representation(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned),
  range_(arena) {
  SharedCtor();
  // @@protoc_insertion_point(arena_constructor:Messages.Representation)
}
Representation::Representation(const Representation& from)
  : ::PROTOBUF_NAMESPACE_ID::Message(),
      range_(from.range_) {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  property_key_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    property_key_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_property_key().empty()) {
    property_key_.Set(from._internal_property_key(), 
      GetArenaForAllocation());
  }
  ::memcpy(&color_map_, &from.color_map_,
    static_cast<size_t>(reinterpret_cast<char*>(&displacement_multiplier_) -
    reinterpret_cast<char*>(&color_map_)) + sizeof(displacement_multiplier_));
  // @@protoc_insertion_point(copy_constructor:Messages.Representation)
}

inline void Representation::SharedCtor() {
property_key_.InitDefault();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  property_key_.Set("", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
::memset(reinterpret_cast<char*>(this) + static_cast<size_t>(
    reinterpret_cast<char*>(&color_map_) - reinterpret_cast<char*>(this)),
    0, static_cast<size_t>(reinterpret_cast<char*>(&displacement_multiplier_) -
    reinterpret_cast<char*>(&color_map_)) + sizeof(displacement_multiplier_));
}

Representation::~Representation() {
  // @@protoc_insertion_point(destructor:Messages.Representation)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void Representation::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  property_key_.Destroy();
}

void Representation::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}

void Representation::Clear() {
// @@protoc_insertion_point(message_clear_start:Messages.Representation)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  range_.Clear();
  property_key_.ClearToEmpty();
  ::memset(&color_map_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&displacement_multiplier_) -
      reinterpret_cast<char*>(&color_map_)) + sizeof(displacement_multiplier_));
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* Representation::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // string property_key = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          auto str = _internal_mutable_property_key();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "Messages.Representation.property_key"));
        } else
          goto handle_unusual;
        continue;
      // uint32 color_map = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 16)) {
          color_map_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // uint32 component = 3;
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 24)) {
          component_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // bool auto_range = 4;
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 32)) {
          auto_range_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // bool use_default_key = 5;
      case 5:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 40)) {
          use_default_key_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // bool color_out_of_range = 6;
      case 6:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 48)) {
          color_out_of_range_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // bool use_magnitude = 7;
      case 7:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 56)) {
          use_magnitude_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // float displacement_multiplier = 9;
      case 9:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 77)) {
          displacement_multiplier_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else
          goto handle_unusual;
        continue;
      // repeated float range = 10;
      case 10:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 82)) {
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedFloatParser(_internal_mutable_range(), ptr, ctx);
          CHK_(ptr);
        } else if (static_cast<uint8_t>(tag) == 85) {
          _internal_add_range(::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr));
          ptr += sizeof(float);
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* Representation::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:Messages.Representation)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // string property_key = 1;
  if (!this->_internal_property_key().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_property_key().data(), static_cast<int>(this->_internal_property_key().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "Messages.Representation.property_key");
    target = stream->WriteStringMaybeAliased(
        1, this->_internal_property_key(), target);
  }

  // uint32 color_map = 2;
  if (this->_internal_color_map() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteUInt32ToArray(2, this->_internal_color_map(), target);
  }

  // uint32 component = 3;
  if (this->_internal_component() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteUInt32ToArray(3, this->_internal_component(), target);
  }

  // bool auto_range = 4;
  if (this->_internal_auto_range() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteBoolToArray(4, this->_internal_auto_range(), target);
  }

  // bool use_default_key = 5;
  if (this->_internal_use_default_key() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteBoolToArray(5, this->_internal_use_default_key(), target);
  }

  // bool color_out_of_range = 6;
  if (this->_internal_color_out_of_range() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteBoolToArray(6, this->_internal_color_out_of_range(), target);
  }

  // bool use_magnitude = 7;
  if (this->_internal_use_magnitude() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteBoolToArray(7, this->_internal_use_magnitude(), target);
  }

  // float displacement_multiplier = 9;
  static_assert(sizeof(uint32_t) == sizeof(float), "Code assumes uint32_t and float are the same size.");
  float tmp_displacement_multiplier = this->_internal_displacement_multiplier();
  uint32_t raw_displacement_multiplier;
  memcpy(&raw_displacement_multiplier, &tmp_displacement_multiplier, sizeof(tmp_displacement_multiplier));
  if (raw_displacement_multiplier != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteFloatToArray(9, this->_internal_displacement_multiplier(), target);
  }

  // repeated float range = 10;
  if (this->_internal_range_size() > 0) {
    target = stream->WriteFixedPacked(10, _internal_range(), target);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:Messages.Representation)
  return target;
}

size_t Representation::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Messages.Representation)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // repeated float range = 10;
  {
    unsigned int count = static_cast<unsigned int>(this->_internal_range_size());
    size_t data_size = 4UL * count;
    if (data_size > 0) {
      total_size += 1 +
        ::_pbi::WireFormatLite::Int32Size(static_cast<int32_t>(data_size));
    }
    total_size += data_size;
  }

  // string property_key = 1;
  if (!this->_internal_property_key().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_property_key());
  }

  // uint32 color_map = 2;
  if (this->_internal_color_map() != 0) {
    total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(this->_internal_color_map());
  }

  // uint32 component = 3;
  if (this->_internal_component() != 0) {
    total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(this->_internal_component());
  }

  // bool auto_range = 4;
  if (this->_internal_auto_range() != 0) {
    total_size += 1 + 1;
  }

  // bool use_default_key = 5;
  if (this->_internal_use_default_key() != 0) {
    total_size += 1 + 1;
  }

  // bool color_out_of_range = 6;
  if (this->_internal_color_out_of_range() != 0) {
    total_size += 1 + 1;
  }

  // bool use_magnitude = 7;
  if (this->_internal_use_magnitude() != 0) {
    total_size += 1 + 1;
  }

  // float displacement_multiplier = 9;
  static_assert(sizeof(uint32_t) == sizeof(float), "Code assumes uint32_t and float are the same size.");
  float tmp_displacement_multiplier = this->_internal_displacement_multiplier();
  uint32_t raw_displacement_multiplier;
  memcpy(&raw_displacement_multiplier, &tmp_displacement_multiplier, sizeof(tmp_displacement_multiplier));
  if (raw_displacement_multiplier != 0) {
    total_size += 1 + 4;
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData Representation::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
    Representation::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*Representation::GetClassData() const { return &_class_data_; }

void Representation::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
                      const ::PROTOBUF_NAMESPACE_ID::Message& from) {
  static_cast<Representation *>(to)->MergeFrom(
      static_cast<const Representation &>(from));
}


void Representation::MergeFrom(const Representation& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:Messages.Representation)
  GOOGLE_DCHECK_NE(&from, this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  range_.MergeFrom(from.range_);
  if (!from._internal_property_key().empty()) {
    _internal_set_property_key(from._internal_property_key());
  }
  if (from._internal_color_map() != 0) {
    _internal_set_color_map(from._internal_color_map());
  }
  if (from._internal_component() != 0) {
    _internal_set_component(from._internal_component());
  }
  if (from._internal_auto_range() != 0) {
    _internal_set_auto_range(from._internal_auto_range());
  }
  if (from._internal_use_default_key() != 0) {
    _internal_set_use_default_key(from._internal_use_default_key());
  }
  if (from._internal_color_out_of_range() != 0) {
    _internal_set_color_out_of_range(from._internal_color_out_of_range());
  }
  if (from._internal_use_magnitude() != 0) {
    _internal_set_use_magnitude(from._internal_use_magnitude());
  }
  static_assert(sizeof(uint32_t) == sizeof(float), "Code assumes uint32_t and float are the same size.");
  float tmp_displacement_multiplier = from._internal_displacement_multiplier();
  uint32_t raw_displacement_multiplier;
  memcpy(&raw_displacement_multiplier, &tmp_displacement_multiplier, sizeof(tmp_displacement_multiplier));
  if (raw_displacement_multiplier != 0) {
    _internal_set_displacement_multiplier(from._internal_displacement_multiplier());
  }
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void Representation::CopyFrom(const Representation& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Messages.Representation)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool Representation::IsInitialized() const {
  return true;
}

void Representation::InternalSwap(Representation* other) {
  using std::swap;
  auto* lhs_arena = GetArenaForAllocation();
  auto* rhs_arena = other->GetArenaForAllocation();
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  range_.InternalSwap(&other->range_);
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &property_key_, lhs_arena,
      &other->property_key_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(Representation, displacement_multiplier_)
      + sizeof(Representation::displacement_multiplier_)
      - PROTOBUF_FIELD_OFFSET(Representation, color_map_)>(
          reinterpret_cast<char*>(&color_map_),
          reinterpret_cast<char*>(&other->color_map_));
}

::PROTOBUF_NAMESPACE_ID::Metadata Representation::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_meta_2eproto_getter, &descriptor_table_meta_2eproto_once,
      file_level_metadata_meta_2eproto[1]);
}

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

class Visual::_Internal {
 public:
  static const ::Messages::Zone& region(const Visual* msg);
  static const ::Messages::GraphicsControl& control(const Visual* msg);
  static const ::Messages::Representation& representation(const Visual* msg);
};

const ::Messages::Zone&
Visual::_Internal::region(const Visual* msg) {
  return *msg->region_;
}
const ::Messages::GraphicsControl&
Visual::_Internal::control(const Visual* msg) {
  return *msg->control_;
}
const ::Messages::Representation&
Visual::_Internal::representation(const Visual* msg) {
  return *msg->representation_;
}
void Visual::clear_region() {
  if (GetArenaForAllocation() == nullptr && region_ != nullptr) {
    delete region_;
  }
  region_ = nullptr;
}
void Visual::clear_extras() {
  extras_.Clear();
}
Visual::Visual(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned),
  points_(arena),
  lines_(arena),
  triangles_(arena),
  indices_per_element_(arena),
  elements_to_indices_(arena),
  indices_to_elements_(arena),
  extras_(arena) {
  SharedCtor();
  // @@protoc_insertion_point(arena_constructor:Messages.Visual)
}
Visual::Visual(const Visual& from)
  : ::PROTOBUF_NAMESPACE_ID::Message(),
      points_(from.points_),
      lines_(from.lines_),
      triangles_(from.triangles_),
      indices_per_element_(from.indices_per_element_),
      elements_to_indices_(from.elements_to_indices_),
      indices_to_elements_(from.indices_to_elements_),
      extras_(from.extras_) {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  if (from._internal_has_region()) {
    region_ = new ::Messages::Zone(*from.region_);
  } else {
    region_ = nullptr;
  }
  if (from._internal_has_control()) {
    control_ = new ::Messages::GraphicsControl(*from.control_);
  } else {
    control_ = nullptr;
  }
  if (from._internal_has_representation()) {
    representation_ = new ::Messages::Representation(*from.representation_);
  } else {
    representation_ = nullptr;
  }
  // @@protoc_insertion_point(copy_constructor:Messages.Visual)
}

inline void Visual::SharedCtor() {
::memset(reinterpret_cast<char*>(this) + static_cast<size_t>(
    reinterpret_cast<char*>(&region_) - reinterpret_cast<char*>(this)),
    0, static_cast<size_t>(reinterpret_cast<char*>(&representation_) -
    reinterpret_cast<char*>(&region_)) + sizeof(representation_));
}

Visual::~Visual() {
  // @@protoc_insertion_point(destructor:Messages.Visual)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void Visual::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  if (this != internal_default_instance()) delete region_;
  if (this != internal_default_instance()) delete control_;
  if (this != internal_default_instance()) delete representation_;
}

void Visual::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}

void Visual::Clear() {
// @@protoc_insertion_point(message_clear_start:Messages.Visual)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  points_.Clear();
  lines_.Clear();
  triangles_.Clear();
  indices_per_element_.Clear();
  elements_to_indices_.Clear();
  indices_to_elements_.Clear();
  extras_.Clear();
  if (GetArenaForAllocation() == nullptr && region_ != nullptr) {
    delete region_;
  }
  region_ = nullptr;
  if (GetArenaForAllocation() == nullptr && control_ != nullptr) {
    delete control_;
  }
  control_ = nullptr;
  if (GetArenaForAllocation() == nullptr && representation_ != nullptr) {
    delete representation_;
  }
  representation_ = nullptr;
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* Visual::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // .Messages.Zone region = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          ptr = ctx->ParseMessage(_internal_mutable_region(), ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // .Messages.GraphicsControl control = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 18)) {
          ptr = ctx->ParseMessage(_internal_mutable_control(), ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // .Messages.Representation representation = 3;
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 26)) {
          ptr = ctx->ParseMessage(_internal_mutable_representation(), ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // repeated uint32 points = 5;
      case 5:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 42)) {
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedUInt32Parser(_internal_mutable_points(), ptr, ctx);
          CHK_(ptr);
        } else if (static_cast<uint8_t>(tag) == 40) {
          _internal_add_points(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr));
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // repeated uint32 lines = 6;
      case 6:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 50)) {
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedUInt32Parser(_internal_mutable_lines(), ptr, ctx);
          CHK_(ptr);
        } else if (static_cast<uint8_t>(tag) == 48) {
          _internal_add_lines(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr));
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // repeated uint32 triangles = 7;
      case 7:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 58)) {
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedUInt32Parser(_internal_mutable_triangles(), ptr, ctx);
          CHK_(ptr);
        } else if (static_cast<uint8_t>(tag) == 56) {
          _internal_add_triangles(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr));
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // repeated uint32 indices_per_element = 8;
      case 8:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 66)) {
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedUInt32Parser(_internal_mutable_indices_per_element(), ptr, ctx);
          CHK_(ptr);
        } else if (static_cast<uint8_t>(tag) == 64) {
          _internal_add_indices_per_element(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr));
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // repeated uint32 elements_to_indices = 9;
      case 9:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 74)) {
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedUInt32Parser(_internal_mutable_elements_to_indices(), ptr, ctx);
          CHK_(ptr);
        } else if (static_cast<uint8_t>(tag) == 72) {
          _internal_add_elements_to_indices(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr));
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // repeated uint32 indices_to_elements = 10;
      case 10:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 82)) {
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedUInt32Parser(_internal_mutable_indices_to_elements(), ptr, ctx);
          CHK_(ptr);
        } else if (static_cast<uint8_t>(tag) == 80) {
          _internal_add_indices_to_elements(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr));
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // repeated .Messages.Vector32 extras = 15;
      case 15:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 122)) {
          ptr -= 1;
          do {
            ptr += 1;
            ptr = ctx->ParseMessage(_internal_add_extras(), ptr);
            CHK_(ptr);
            if (!ctx->DataAvailable(ptr)) break;
          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<122>(ptr));
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* Visual::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:Messages.Visual)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // .Messages.Zone region = 1;
  if (this->_internal_has_region()) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(1, _Internal::region(this),
        _Internal::region(this).GetCachedSize(), target, stream);
  }

  // .Messages.GraphicsControl control = 2;
  if (this->_internal_has_control()) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(2, _Internal::control(this),
        _Internal::control(this).GetCachedSize(), target, stream);
  }

  // .Messages.Representation representation = 3;
  if (this->_internal_has_representation()) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(3, _Internal::representation(this),
        _Internal::representation(this).GetCachedSize(), target, stream);
  }

  // repeated uint32 points = 5;
  {
    int byte_size = _points_cached_byte_size_.load(std::memory_order_relaxed);
    if (byte_size > 0) {
      target = stream->WriteUInt32Packed(
          5, _internal_points(), byte_size, target);
    }
  }

  // repeated uint32 lines = 6;
  {
    int byte_size = _lines_cached_byte_size_.load(std::memory_order_relaxed);
    if (byte_size > 0) {
      target = stream->WriteUInt32Packed(
          6, _internal_lines(), byte_size, target);
    }
  }

  // repeated uint32 triangles = 7;
  {
    int byte_size = _triangles_cached_byte_size_.load(std::memory_order_relaxed);
    if (byte_size > 0) {
      target = stream->WriteUInt32Packed(
          7, _internal_triangles(), byte_size, target);
    }
  }

  // repeated uint32 indices_per_element = 8;
  {
    int byte_size = _indices_per_element_cached_byte_size_.load(std::memory_order_relaxed);
    if (byte_size > 0) {
      target = stream->WriteUInt32Packed(
          8, _internal_indices_per_element(), byte_size, target);
    }
  }

  // repeated uint32 elements_to_indices = 9;
  {
    int byte_size = _elements_to_indices_cached_byte_size_.load(std::memory_order_relaxed);
    if (byte_size > 0) {
      target = stream->WriteUInt32Packed(
          9, _internal_elements_to_indices(), byte_size, target);
    }
  }

  // repeated uint32 indices_to_elements = 10;
  {
    int byte_size = _indices_to_elements_cached_byte_size_.load(std::memory_order_relaxed);
    if (byte_size > 0) {
      target = stream->WriteUInt32Packed(
          10, _internal_indices_to_elements(), byte_size, target);
    }
  }

  // repeated .Messages.Vector32 extras = 15;
  for (unsigned i = 0,
      n = static_cast<unsigned>(this->_internal_extras_size()); i < n; i++) {
    const auto& repfield = this->_internal_extras(i);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
        InternalWriteMessage(15, repfield, repfield.GetCachedSize(), target, stream);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:Messages.Visual)
  return target;
}

size_t Visual::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Messages.Visual)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // repeated uint32 points = 5;
  {
    size_t data_size = ::_pbi::WireFormatLite::
      UInt32Size(this->points_);
    if (data_size > 0) {
      total_size += 1 +
        ::_pbi::WireFormatLite::Int32Size(static_cast<int32_t>(data_size));
    }
    int cached_size = ::_pbi::ToCachedSize(data_size);
    _points_cached_byte_size_.store(cached_size,
                                    std::memory_order_relaxed);
    total_size += data_size;
  }

  // repeated uint32 lines = 6;
  {
    size_t data_size = ::_pbi::WireFormatLite::
      UInt32Size(this->lines_);
    if (data_size > 0) {
      total_size += 1 +
        ::_pbi::WireFormatLite::Int32Size(static_cast<int32_t>(data_size));
    }
    int cached_size = ::_pbi::ToCachedSize(data_size);
    _lines_cached_byte_size_.store(cached_size,
                                    std::memory_order_relaxed);
    total_size += data_size;
  }

  // repeated uint32 triangles = 7;
  {
    size_t data_size = ::_pbi::WireFormatLite::
      UInt32Size(this->triangles_);
    if (data_size > 0) {
      total_size += 1 +
        ::_pbi::WireFormatLite::Int32Size(static_cast<int32_t>(data_size));
    }
    int cached_size = ::_pbi::ToCachedSize(data_size);
    _triangles_cached_byte_size_.store(cached_size,
                                    std::memory_order_relaxed);
    total_size += data_size;
  }

  // repeated uint32 indices_per_element = 8;
  {
    size_t data_size = ::_pbi::WireFormatLite::
      UInt32Size(this->indices_per_element_);
    if (data_size > 0) {
      total_size += 1 +
        ::_pbi::WireFormatLite::Int32Size(static_cast<int32_t>(data_size));
    }
    int cached_size = ::_pbi::ToCachedSize(data_size);
    _indices_per_element_cached_byte_size_.store(cached_size,
                                    std::memory_order_relaxed);
    total_size += data_size;
  }

  // repeated uint32 elements_to_indices = 9;
  {
    size_t data_size = ::_pbi::WireFormatLite::
      UInt32Size(this->elements_to_indices_);
    if (data_size > 0) {
      total_size += 1 +
        ::_pbi::WireFormatLite::Int32Size(static_cast<int32_t>(data_size));
    }
    int cached_size = ::_pbi::ToCachedSize(data_size);
    _elements_to_indices_cached_byte_size_.store(cached_size,
                                    std::memory_order_relaxed);
    total_size += data_size;
  }

  // repeated uint32 indices_to_elements = 10;
  {
    size_t data_size = ::_pbi::WireFormatLite::
      UInt32Size(this->indices_to_elements_);
    if (data_size > 0) {
      total_size += 1 +
        ::_pbi::WireFormatLite::Int32Size(static_cast<int32_t>(data_size));
    }
    int cached_size = ::_pbi::ToCachedSize(data_size);
    _indices_to_elements_cached_byte_size_.store(cached_size,
                                    std::memory_order_relaxed);
    total_size += data_size;
  }

  // repeated .Messages.Vector32 extras = 15;
  total_size += 1UL * this->_internal_extras_size();
  for (const auto& msg : this->extras_) {
    total_size +=
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg);
  }

  // .Messages.Zone region = 1;
  if (this->_internal_has_region()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
        *region_);
  }

  // .Messages.GraphicsControl control = 2;
  if (this->_internal_has_control()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
        *control_);
  }

  // .Messages.Representation representation = 3;
  if (this->_internal_has_representation()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
        *representation_);
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData Visual::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
    Visual::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*Visual::GetClassData() const { return &_class_data_; }

void Visual::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
                      const ::PROTOBUF_NAMESPACE_ID::Message& from) {
  static_cast<Visual *>(to)->MergeFrom(
      static_cast<const Visual &>(from));
}


void Visual::MergeFrom(const Visual& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:Messages.Visual)
  GOOGLE_DCHECK_NE(&from, this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  points_.MergeFrom(from.points_);
  lines_.MergeFrom(from.lines_);
  triangles_.MergeFrom(from.triangles_);
  indices_per_element_.MergeFrom(from.indices_per_element_);
  elements_to_indices_.MergeFrom(from.elements_to_indices_);
  indices_to_elements_.MergeFrom(from.indices_to_elements_);
  extras_.MergeFrom(from.extras_);
  if (from._internal_has_region()) {
    _internal_mutable_region()->::Messages::Zone::MergeFrom(from._internal_region());
  }
  if (from._internal_has_control()) {
    _internal_mutable_control()->::Messages::GraphicsControl::MergeFrom(from._internal_control());
  }
  if (from._internal_has_representation()) {
    _internal_mutable_representation()->::Messages::Representation::MergeFrom(from._internal_representation());
  }
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void Visual::CopyFrom(const Visual& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Messages.Visual)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool Visual::IsInitialized() const {
  return true;
}

void Visual::InternalSwap(Visual* other) {
  using std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  points_.InternalSwap(&other->points_);
  lines_.InternalSwap(&other->lines_);
  triangles_.InternalSwap(&other->triangles_);
  indices_per_element_.InternalSwap(&other->indices_per_element_);
  elements_to_indices_.InternalSwap(&other->elements_to_indices_);
  indices_to_elements_.InternalSwap(&other->indices_to_elements_);
  extras_.InternalSwap(&other->extras_);
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(Visual, representation_)
      + sizeof(Visual::representation_)
      - PROTOBUF_FIELD_OFFSET(Visual, region_)>(
          reinterpret_cast<char*>(&region_),
          reinterpret_cast<char*>(&other->region_));
}

::PROTOBUF_NAMESPACE_ID::Metadata Visual::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_meta_2eproto_getter, &descriptor_table_meta_2eproto_once,
      file_level_metadata_meta_2eproto[2]);
}

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

class Meta::_Internal {
 public:
  static const ::Messages::Revision& revision(const Meta* msg);
  static const ::Messages::Revision& version(const Meta* msg);
  static const ::Messages::Extrema& bounds(const Meta* msg);
  static const ::Messages::GraphicsControl& appearance(const Meta* msg);
};

const ::Messages::Revision&
Meta::_Internal::revision(const Meta* msg) {
  return *msg->revision_;
}
const ::Messages::Revision&
Meta::_Internal::version(const Meta* msg) {
  return *msg->version_;
}
const ::Messages::Extrema&
Meta::_Internal::bounds(const Meta* msg) {
  return *msg->bounds_;
}
const ::Messages::GraphicsControl&
Meta::_Internal::appearance(const Meta* msg) {
  return *msg->appearance_;
}
void Meta::clear_revision() {
  if (GetArenaForAllocation() == nullptr && revision_ != nullptr) {
    delete revision_;
  }
  revision_ = nullptr;
}
void Meta::clear_version() {
  if (GetArenaForAllocation() == nullptr && version_ != nullptr) {
    delete version_;
  }
  version_ = nullptr;
}
void Meta::clear_bounds() {
  if (GetArenaForAllocation() == nullptr && bounds_ != nullptr) {
    delete bounds_;
  }
  bounds_ = nullptr;
}
Meta::Meta(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned),
  children_(arena),
  groups_(arena),
  loops_(arena),
  surfaces_(arena),
  volumes_(arena),
  global_transform_(arena),
  global_rate_(arena),
  global_accel_(arena),
  properties_(arena),
  media_(arena),
  symbol_transform_(arena) {
  SharedCtor();
  // @@protoc_insertion_point(arena_constructor:Messages.Meta)
}
Meta::Meta(const Meta& from)
  : ::PROTOBUF_NAMESPACE_ID::Message(),
      children_(from.children_),
      groups_(from.groups_),
      loops_(from.loops_),
      surfaces_(from.surfaces_),
      volumes_(from.volumes_),
      global_transform_(from.global_transform_),
      global_rate_(from.global_rate_),
      global_accel_(from.global_accel_),
      properties_(from.properties_),
      media_(from.media_),
      symbol_transform_(from.symbol_transform_) {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  name_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    name_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_name().empty()) {
    name_.Set(from._internal_name(), 
      GetArenaForAllocation());
  }
  directory_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    directory_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_directory().empty()) {
    directory_.Set(from._internal_directory(), 
      GetArenaForAllocation());
  }
  symbol_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    symbol_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_symbol().empty()) {
    symbol_.Set(from._internal_symbol(), 
      GetArenaForAllocation());
  }
  owner_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    owner_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_owner().empty()) {
    owner_.Set(from._internal_owner(), 
      GetArenaForAllocation());
  }
  comments_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    comments_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_comments().empty()) {
    comments_.Set(from._internal_comments(), 
      GetArenaForAllocation());
  }
  series_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    series_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_series().empty()) {
    series_.Set(from._internal_series(), 
      GetArenaForAllocation());
  }
  sys_info_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    sys_info_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_sys_info().empty()) {
    sys_info_.Set(from._internal_sys_info(), 
      GetArenaForAllocation());
  }
  geom_info_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    geom_info_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_geom_info().empty()) {
    geom_info_.Set(from._internal_geom_info(), 
      GetArenaForAllocation());
  }
  url_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    url_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_url().empty()) {
    url_.Set(from._internal_url(), 
      GetArenaForAllocation());
  }
  if (from._internal_has_revision()) {
    revision_ = new ::Messages::Revision(*from.revision_);
  } else {
    revision_ = nullptr;
  }
  if (from._internal_has_version()) {
    version_ = new ::Messages::Revision(*from.version_);
  } else {
    version_ = nullptr;
  }
  if (from._internal_has_bounds()) {
    bounds_ = new ::Messages::Extrema(*from.bounds_);
  } else {
    bounds_ = nullptr;
  }
  if (from._internal_has_appearance()) {
    appearance_ = new ::Messages::GraphicsControl(*from.appearance_);
  } else {
    appearance_ = nullptr;
  }
  ::memcpy(&uid_, &from.uid_,
    static_cast<size_t>(reinterpret_cast<char*>(&length_units_) -
    reinterpret_cast<char*>(&uid_)) + sizeof(length_units_));
  // @@protoc_insertion_point(copy_constructor:Messages.Meta)
}

inline void Meta::SharedCtor() {
name_.InitDefault();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  name_.Set("", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
directory_.InitDefault();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  directory_.Set("", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
symbol_.InitDefault();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  symbol_.Set("", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
owner_.InitDefault();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  owner_.Set("", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
comments_.InitDefault();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  comments_.Set("", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
series_.InitDefault();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  series_.Set("", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
sys_info_.InitDefault();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  sys_info_.Set("", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
geom_info_.InitDefault();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  geom_info_.Set("", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
url_.InitDefault();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  url_.Set("", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
::memset(reinterpret_cast<char*>(this) + static_cast<size_t>(
    reinterpret_cast<char*>(&revision_) - reinterpret_cast<char*>(this)),
    0, static_cast<size_t>(reinterpret_cast<char*>(&length_units_) -
    reinterpret_cast<char*>(&revision_)) + sizeof(length_units_));
}

Meta::~Meta() {
  // @@protoc_insertion_point(destructor:Messages.Meta)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void Meta::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  name_.Destroy();
  directory_.Destroy();
  symbol_.Destroy();
  owner_.Destroy();
  comments_.Destroy();
  series_.Destroy();
  sys_info_.Destroy();
  geom_info_.Destroy();
  url_.Destroy();
  if (this != internal_default_instance()) delete revision_;
  if (this != internal_default_instance()) delete version_;
  if (this != internal_default_instance()) delete bounds_;
  if (this != internal_default_instance()) delete appearance_;
}

void Meta::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}

void Meta::Clear() {
// @@protoc_insertion_point(message_clear_start:Messages.Meta)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  children_.Clear();
  groups_.Clear();
  loops_.Clear();
  surfaces_.Clear();
  volumes_.Clear();
  global_transform_.Clear();
  global_rate_.Clear();
  global_accel_.Clear();
  properties_.Clear();
  media_.Clear();
  symbol_transform_.Clear();
  name_.ClearToEmpty();
  directory_.ClearToEmpty();
  symbol_.ClearToEmpty();
  owner_.ClearToEmpty();
  comments_.ClearToEmpty();
  series_.ClearToEmpty();
  sys_info_.ClearToEmpty();
  geom_info_.ClearToEmpty();
  url_.ClearToEmpty();
  if (GetArenaForAllocation() == nullptr && revision_ != nullptr) {
    delete revision_;
  }
  revision_ = nullptr;
  if (GetArenaForAllocation() == nullptr && version_ != nullptr) {
    delete version_;
  }
  version_ = nullptr;
  if (GetArenaForAllocation() == nullptr && bounds_ != nullptr) {
    delete bounds_;
  }
  bounds_ = nullptr;
  if (GetArenaForAllocation() == nullptr && appearance_ != nullptr) {
    delete appearance_;
  }
  appearance_ = nullptr;
  ::memset(&uid_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&length_units_) -
      reinterpret_cast<char*>(&uid_)) + sizeof(length_units_));
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* Meta::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // string name = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          auto str = _internal_mutable_name();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "Messages.Meta.name"));
        } else
          goto handle_unusual;
        continue;
      // int64 uid = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 16)) {
          uid_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // string directory = 3;
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 26)) {
          auto str = _internal_mutable_directory();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "Messages.Meta.directory"));
        } else
          goto handle_unusual;
        continue;
      // string symbol = 4;
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 34)) {
          auto str = _internal_mutable_symbol();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "Messages.Meta.symbol"));
        } else
          goto handle_unusual;
        continue;
      // string owner = 5;
      case 5:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 42)) {
          auto str = _internal_mutable_owner();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "Messages.Meta.owner"));
        } else
          goto handle_unusual;
        continue;
      // string comments = 6;
      case 6:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 50)) {
          auto str = _internal_mutable_comments();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "Messages.Meta.comments"));
        } else
          goto handle_unusual;
        continue;
      // string series = 7;
      case 7:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 58)) {
          auto str = _internal_mutable_series();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "Messages.Meta.series"));
        } else
          goto handle_unusual;
        continue;
      // string sys_info = 8;
      case 8:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 66)) {
          auto str = _internal_mutable_sys_info();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "Messages.Meta.sys_info"));
        } else
          goto handle_unusual;
        continue;
      // string geom_info = 9;
      case 9:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 74)) {
          auto str = _internal_mutable_geom_info();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "Messages.Meta.geom_info"));
        } else
          goto handle_unusual;
        continue;
      // int64 parent = 10;
      case 10:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 80)) {
          parent_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // int64 created = 11;
      case 11:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 88)) {
          created_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // int64 saved = 12;
      case 12:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 96)) {
          saved_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // int64 modified = 13;
      case 13:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 104)) {
          modified_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // uint64 iteration = 14;
      case 14:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 112)) {
          iteration_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // uint64 save_interval = 15;
      case 15:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 120)) {
          save_interval_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // bool enabled = 16;
      case 16:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 128)) {
          enabled_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // bool locked = 17;
      case 17:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 136)) {
          locked_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // bool auto_save = 18;
      case 18:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 144)) {
          auto_save_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // bool lightweight = 19;
      case 19:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 152)) {
          lightweight_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // .Messages.Revision revision = 20;
      case 20:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 162)) {
          ptr = ctx->ParseMessage(_internal_mutable_revision(), ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // .Messages.Revision version = 21;
      case 21:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 170)) {
          ptr = ctx->ParseMessage(_internal_mutable_version(), ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // .Messages.Extrema bounds = 22;
      case 22:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 178)) {
          ptr = ctx->ParseMessage(_internal_mutable_bounds(), ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // string url = 23;
      case 23:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 186)) {
          auto str = _internal_mutable_url();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "Messages.Meta.url"));
        } else
          goto handle_unusual;
        continue;
      // .Messages.GraphicsControl appearance = 24;
      case 24:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 194)) {
          ptr = ctx->ParseMessage(_internal_mutable_appearance(), ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // repeated int64 children = 25;
      case 25:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 202)) {
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt64Parser(_internal_mutable_children(), ptr, ctx);
          CHK_(ptr);
        } else if (static_cast<uint8_t>(tag) == 200) {
          _internal_add_children(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // repeated int32 groups = 26;
      case 26:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 210)) {
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_groups(), ptr, ctx);
          CHK_(ptr);
        } else if (static_cast<uint8_t>(tag) == 208) {
          _internal_add_groups(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr));
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // repeated int32 loops = 27;
      case 27:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 218)) {
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_loops(), ptr, ctx);
          CHK_(ptr);
        } else if (static_cast<uint8_t>(tag) == 216) {
          _internal_add_loops(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr));
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // repeated int32 surfaces = 28;
      case 28:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 226)) {
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_surfaces(), ptr, ctx);
          CHK_(ptr);
        } else if (static_cast<uint8_t>(tag) == 224) {
          _internal_add_surfaces(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr));
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // repeated int32 volumes = 29;
      case 29:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 234)) {
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_volumes(), ptr, ctx);
          CHK_(ptr);
        } else if (static_cast<uint8_t>(tag) == 232) {
          _internal_add_volumes(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr));
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // repeated double global_transform = 30;
      case 30:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 242)) {
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedDoubleParser(_internal_mutable_global_transform(), ptr, ctx);
          CHK_(ptr);
        } else if (static_cast<uint8_t>(tag) == 241) {
          _internal_add_global_transform(::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr));
          ptr += sizeof(double);
        } else
          goto handle_unusual;
        continue;
      // repeated double global_rate = 31;
      case 31:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 250)) {
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedDoubleParser(_internal_mutable_global_rate(), ptr, ctx);
          CHK_(ptr);
        } else if (static_cast<uint8_t>(tag) == 249) {
          _internal_add_global_rate(::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr));
          ptr += sizeof(double);
        } else
          goto handle_unusual;
        continue;
      // repeated double global_accel = 32;
      case 32:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 2)) {
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedDoubleParser(_internal_mutable_global_accel(), ptr, ctx);
          CHK_(ptr);
        } else if (static_cast<uint8_t>(tag) == 1) {
          _internal_add_global_accel(::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr));
          ptr += sizeof(double);
        } else
          goto handle_unusual;
        continue;
      // repeated string properties = 33;
      case 33:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          ptr -= 2;
          do {
            ptr += 2;
            auto str = _internal_add_properties();
            ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
            CHK_(ptr);
            CHK_(::_pbi::VerifyUTF8(str, "Messages.Meta.properties"));
            if (!ctx->DataAvailable(ptr)) break;
          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<266>(ptr));
        } else
          goto handle_unusual;
        continue;
      // repeated .Messages.Visual media = 34;
      case 34:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 18)) {
          ptr -= 2;
          do {
            ptr += 2;
            ptr = ctx->ParseMessage(_internal_add_media(), ptr);
            CHK_(ptr);
            if (!ctx->DataAvailable(ptr)) break;
          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<274>(ptr));
        } else
          goto handle_unusual;
        continue;
      // repeated float symbol_transform = 35;
      case 35:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 26)) {
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedFloatParser(_internal_mutable_symbol_transform(), ptr, ctx);
          CHK_(ptr);
        } else if (static_cast<uint8_t>(tag) == 29) {
          _internal_add_symbol_transform(::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr));
          ptr += sizeof(float);
        } else
          goto handle_unusual;
        continue;
      // uint32 length_units = 40;
      case 40:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 64)) {
          length_units_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* Meta::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:Messages.Meta)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // string name = 1;
  if (!this->_internal_name().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_name().data(), static_cast<int>(this->_internal_name().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "Messages.Meta.name");
    target = stream->WriteStringMaybeAliased(
        1, this->_internal_name(), target);
  }

  // int64 uid = 2;
  if (this->_internal_uid() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteInt64ToArray(2, this->_internal_uid(), target);
  }

  // string directory = 3;
  if (!this->_internal_directory().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_directory().data(), static_cast<int>(this->_internal_directory().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "Messages.Meta.directory");
    target = stream->WriteStringMaybeAliased(
        3, this->_internal_directory(), target);
  }

  // string symbol = 4;
  if (!this->_internal_symbol().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_symbol().data(), static_cast<int>(this->_internal_symbol().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "Messages.Meta.symbol");
    target = stream->WriteStringMaybeAliased(
        4, this->_internal_symbol(), target);
  }

  // string owner = 5;
  if (!this->_internal_owner().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_owner().data(), static_cast<int>(this->_internal_owner().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "Messages.Meta.owner");
    target = stream->WriteStringMaybeAliased(
        5, this->_internal_owner(), target);
  }

  // string comments = 6;
  if (!this->_internal_comments().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_comments().data(), static_cast<int>(this->_internal_comments().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "Messages.Meta.comments");
    target = stream->WriteStringMaybeAliased(
        6, this->_internal_comments(), target);
  }

  // string series = 7;
  if (!this->_internal_series().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_series().data(), static_cast<int>(this->_internal_series().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "Messages.Meta.series");
    target = stream->WriteStringMaybeAliased(
        7, this->_internal_series(), target);
  }

  // string sys_info = 8;
  if (!this->_internal_sys_info().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_sys_info().data(), static_cast<int>(this->_internal_sys_info().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "Messages.Meta.sys_info");
    target = stream->WriteStringMaybeAliased(
        8, this->_internal_sys_info(), target);
  }

  // string geom_info = 9;
  if (!this->_internal_geom_info().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_geom_info().data(), static_cast<int>(this->_internal_geom_info().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "Messages.Meta.geom_info");
    target = stream->WriteStringMaybeAliased(
        9, this->_internal_geom_info(), target);
  }

  // int64 parent = 10;
  if (this->_internal_parent() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteInt64ToArray(10, this->_internal_parent(), target);
  }

  // int64 created = 11;
  if (this->_internal_created() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteInt64ToArray(11, this->_internal_created(), target);
  }

  // int64 saved = 12;
  if (this->_internal_saved() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteInt64ToArray(12, this->_internal_saved(), target);
  }

  // int64 modified = 13;
  if (this->_internal_modified() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteInt64ToArray(13, this->_internal_modified(), target);
  }

  // uint64 iteration = 14;
  if (this->_internal_iteration() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteUInt64ToArray(14, this->_internal_iteration(), target);
  }

  // uint64 save_interval = 15;
  if (this->_internal_save_interval() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteUInt64ToArray(15, this->_internal_save_interval(), target);
  }

  // bool enabled = 16;
  if (this->_internal_enabled() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteBoolToArray(16, this->_internal_enabled(), target);
  }

  // bool locked = 17;
  if (this->_internal_locked() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteBoolToArray(17, this->_internal_locked(), target);
  }

  // bool auto_save = 18;
  if (this->_internal_auto_save() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteBoolToArray(18, this->_internal_auto_save(), target);
  }

  // bool lightweight = 19;
  if (this->_internal_lightweight() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteBoolToArray(19, this->_internal_lightweight(), target);
  }

  // .Messages.Revision revision = 20;
  if (this->_internal_has_revision()) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(20, _Internal::revision(this),
        _Internal::revision(this).GetCachedSize(), target, stream);
  }

  // .Messages.Revision version = 21;
  if (this->_internal_has_version()) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(21, _Internal::version(this),
        _Internal::version(this).GetCachedSize(), target, stream);
  }

  // .Messages.Extrema bounds = 22;
  if (this->_internal_has_bounds()) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(22, _Internal::bounds(this),
        _Internal::bounds(this).GetCachedSize(), target, stream);
  }

  // string url = 23;
  if (!this->_internal_url().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_url().data(), static_cast<int>(this->_internal_url().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "Messages.Meta.url");
    target = stream->WriteStringMaybeAliased(
        23, this->_internal_url(), target);
  }

  // .Messages.GraphicsControl appearance = 24;
  if (this->_internal_has_appearance()) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(24, _Internal::appearance(this),
        _Internal::appearance(this).GetCachedSize(), target, stream);
  }

  // repeated int64 children = 25;
  {
    int byte_size = _children_cached_byte_size_.load(std::memory_order_relaxed);
    if (byte_size > 0) {
      target = stream->WriteInt64Packed(
          25, _internal_children(), byte_size, target);
    }
  }

  // repeated int32 groups = 26;
  {
    int byte_size = _groups_cached_byte_size_.load(std::memory_order_relaxed);
    if (byte_size > 0) {
      target = stream->WriteInt32Packed(
          26, _internal_groups(), byte_size, target);
    }
  }

  // repeated int32 loops = 27;
  {
    int byte_size = _loops_cached_byte_size_.load(std::memory_order_relaxed);
    if (byte_size > 0) {
      target = stream->WriteInt32Packed(
          27, _internal_loops(), byte_size, target);
    }
  }

  // repeated int32 surfaces = 28;
  {
    int byte_size = _surfaces_cached_byte_size_.load(std::memory_order_relaxed);
    if (byte_size > 0) {
      target = stream->WriteInt32Packed(
          28, _internal_surfaces(), byte_size, target);
    }
  }

  // repeated int32 volumes = 29;
  {
    int byte_size = _volumes_cached_byte_size_.load(std::memory_order_relaxed);
    if (byte_size > 0) {
      target = stream->WriteInt32Packed(
          29, _internal_volumes(), byte_size, target);
    }
  }

  // repeated double global_transform = 30;
  if (this->_internal_global_transform_size() > 0) {
    target = stream->WriteFixedPacked(30, _internal_global_transform(), target);
  }

  // repeated double global_rate = 31;
  if (this->_internal_global_rate_size() > 0) {
    target = stream->WriteFixedPacked(31, _internal_global_rate(), target);
  }

  // repeated double global_accel = 32;
  if (this->_internal_global_accel_size() > 0) {
    target = stream->WriteFixedPacked(32, _internal_global_accel(), target);
  }

  // repeated string properties = 33;
  for (int i = 0, n = this->_internal_properties_size(); i < n; i++) {
    const auto& s = this->_internal_properties(i);
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      s.data(), static_cast<int>(s.length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "Messages.Meta.properties");
    target = stream->WriteString(33, s, target);
  }

  // repeated .Messages.Visual media = 34;
  for (unsigned i = 0,
      n = static_cast<unsigned>(this->_internal_media_size()); i < n; i++) {
    const auto& repfield = this->_internal_media(i);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
        InternalWriteMessage(34, repfield, repfield.GetCachedSize(), target, stream);
  }

  // repeated float symbol_transform = 35;
  if (this->_internal_symbol_transform_size() > 0) {
    target = stream->WriteFixedPacked(35, _internal_symbol_transform(), target);
  }

  // uint32 length_units = 40;
  if (this->_internal_length_units() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteUInt32ToArray(40, this->_internal_length_units(), target);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:Messages.Meta)
  return target;
}

size_t Meta::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Messages.Meta)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // repeated int64 children = 25;
  {
    size_t data_size = ::_pbi::WireFormatLite::
      Int64Size(this->children_);
    if (data_size > 0) {
      total_size += 2 +
        ::_pbi::WireFormatLite::Int32Size(static_cast<int32_t>(data_size));
    }
    int cached_size = ::_pbi::ToCachedSize(data_size);
    _children_cached_byte_size_.store(cached_size,
                                    std::memory_order_relaxed);
    total_size += data_size;
  }

  // repeated int32 groups = 26;
  {
    size_t data_size = ::_pbi::WireFormatLite::
      Int32Size(this->groups_);
    if (data_size > 0) {
      total_size += 2 +
        ::_pbi::WireFormatLite::Int32Size(static_cast<int32_t>(data_size));
    }
    int cached_size = ::_pbi::ToCachedSize(data_size);
    _groups_cached_byte_size_.store(cached_size,
                                    std::memory_order_relaxed);
    total_size += data_size;
  }

  // repeated int32 loops = 27;
  {
    size_t data_size = ::_pbi::WireFormatLite::
      Int32Size(this->loops_);
    if (data_size > 0) {
      total_size += 2 +
        ::_pbi::WireFormatLite::Int32Size(static_cast<int32_t>(data_size));
    }
    int cached_size = ::_pbi::ToCachedSize(data_size);
    _loops_cached_byte_size_.store(cached_size,
                                    std::memory_order_relaxed);
    total_size += data_size;
  }

  // repeated int32 surfaces = 28;
  {
    size_t data_size = ::_pbi::WireFormatLite::
      Int32Size(this->surfaces_);
    if (data_size > 0) {
      total_size += 2 +
        ::_pbi::WireFormatLite::Int32Size(static_cast<int32_t>(data_size));
    }
    int cached_size = ::_pbi::ToCachedSize(data_size);
    _surfaces_cached_byte_size_.store(cached_size,
                                    std::memory_order_relaxed);
    total_size += data_size;
  }

  // repeated int32 volumes = 29;
  {
    size_t data_size = ::_pbi::WireFormatLite::
      Int32Size(this->volumes_);
    if (data_size > 0) {
      total_size += 2 +
        ::_pbi::WireFormatLite::Int32Size(static_cast<int32_t>(data_size));
    }
    int cached_size = ::_pbi::ToCachedSize(data_size);
    _volumes_cached_byte_size_.store(cached_size,
                                    std::memory_order_relaxed);
    total_size += data_size;
  }

  // repeated double global_transform = 30;
  {
    unsigned int count = static_cast<unsigned int>(this->_internal_global_transform_size());
    size_t data_size = 8UL * count;
    if (data_size > 0) {
      total_size += 2 +
        ::_pbi::WireFormatLite::Int32Size(static_cast<int32_t>(data_size));
    }
    total_size += data_size;
  }

  // repeated double global_rate = 31;
  {
    unsigned int count = static_cast<unsigned int>(this->_internal_global_rate_size());
    size_t data_size = 8UL * count;
    if (data_size > 0) {
      total_size += 2 +
        ::_pbi::WireFormatLite::Int32Size(static_cast<int32_t>(data_size));
    }
    total_size += data_size;
  }

  // repeated double global_accel = 32;
  {
    unsigned int count = static_cast<unsigned int>(this->_internal_global_accel_size());
    size_t data_size = 8UL * count;
    if (data_size > 0) {
      total_size += 2 +
        ::_pbi::WireFormatLite::Int32Size(static_cast<int32_t>(data_size));
    }
    total_size += data_size;
  }

  // repeated string properties = 33;
  total_size += 2 *
      ::PROTOBUF_NAMESPACE_ID::internal::FromIntSize(properties_.size());
  for (int i = 0, n = properties_.size(); i < n; i++) {
    total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
      properties_.Get(i));
  }

  // repeated .Messages.Visual media = 34;
  total_size += 2UL * this->_internal_media_size();
  for (const auto& msg : this->media_) {
    total_size +=
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg);
  }

  // repeated float symbol_transform = 35;
  {
    unsigned int count = static_cast<unsigned int>(this->_internal_symbol_transform_size());
    size_t data_size = 4UL * count;
    if (data_size > 0) {
      total_size += 2 +
        ::_pbi::WireFormatLite::Int32Size(static_cast<int32_t>(data_size));
    }
    total_size += data_size;
  }

  // string name = 1;
  if (!this->_internal_name().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_name());
  }

  // string directory = 3;
  if (!this->_internal_directory().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_directory());
  }

  // string symbol = 4;
  if (!this->_internal_symbol().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_symbol());
  }

  // string owner = 5;
  if (!this->_internal_owner().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_owner());
  }

  // string comments = 6;
  if (!this->_internal_comments().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_comments());
  }

  // string series = 7;
  if (!this->_internal_series().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_series());
  }

  // string sys_info = 8;
  if (!this->_internal_sys_info().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_sys_info());
  }

  // string geom_info = 9;
  if (!this->_internal_geom_info().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_geom_info());
  }

  // string url = 23;
  if (!this->_internal_url().empty()) {
    total_size += 2 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_url());
  }

  // .Messages.Revision revision = 20;
  if (this->_internal_has_revision()) {
    total_size += 2 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
        *revision_);
  }

  // .Messages.Revision version = 21;
  if (this->_internal_has_version()) {
    total_size += 2 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
        *version_);
  }

  // .Messages.Extrema bounds = 22;
  if (this->_internal_has_bounds()) {
    total_size += 2 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
        *bounds_);
  }

  // .Messages.GraphicsControl appearance = 24;
  if (this->_internal_has_appearance()) {
    total_size += 2 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
        *appearance_);
  }

  // int64 uid = 2;
  if (this->_internal_uid() != 0) {
    total_size += ::_pbi::WireFormatLite::Int64SizePlusOne(this->_internal_uid());
  }

  // int64 parent = 10;
  if (this->_internal_parent() != 0) {
    total_size += ::_pbi::WireFormatLite::Int64SizePlusOne(this->_internal_parent());
  }

  // int64 created = 11;
  if (this->_internal_created() != 0) {
    total_size += ::_pbi::WireFormatLite::Int64SizePlusOne(this->_internal_created());
  }

  // int64 saved = 12;
  if (this->_internal_saved() != 0) {
    total_size += ::_pbi::WireFormatLite::Int64SizePlusOne(this->_internal_saved());
  }

  // int64 modified = 13;
  if (this->_internal_modified() != 0) {
    total_size += ::_pbi::WireFormatLite::Int64SizePlusOne(this->_internal_modified());
  }

  // uint64 iteration = 14;
  if (this->_internal_iteration() != 0) {
    total_size += ::_pbi::WireFormatLite::UInt64SizePlusOne(this->_internal_iteration());
  }

  // uint64 save_interval = 15;
  if (this->_internal_save_interval() != 0) {
    total_size += ::_pbi::WireFormatLite::UInt64SizePlusOne(this->_internal_save_interval());
  }

  // bool enabled = 16;
  if (this->_internal_enabled() != 0) {
    total_size += 2 + 1;
  }

  // bool locked = 17;
  if (this->_internal_locked() != 0) {
    total_size += 2 + 1;
  }

  // bool auto_save = 18;
  if (this->_internal_auto_save() != 0) {
    total_size += 2 + 1;
  }

  // bool lightweight = 19;
  if (this->_internal_lightweight() != 0) {
    total_size += 2 + 1;
  }

  // uint32 length_units = 40;
  if (this->_internal_length_units() != 0) {
    total_size += 2 +
      ::_pbi::WireFormatLite::UInt32Size(
        this->_internal_length_units());
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData Meta::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
    Meta::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*Meta::GetClassData() const { return &_class_data_; }

void Meta::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
                      const ::PROTOBUF_NAMESPACE_ID::Message& from) {
  static_cast<Meta *>(to)->MergeFrom(
      static_cast<const Meta &>(from));
}


void Meta::MergeFrom(const Meta& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:Messages.Meta)
  GOOGLE_DCHECK_NE(&from, this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  children_.MergeFrom(from.children_);
  groups_.MergeFrom(from.groups_);
  loops_.MergeFrom(from.loops_);
  surfaces_.MergeFrom(from.surfaces_);
  volumes_.MergeFrom(from.volumes_);
  global_transform_.MergeFrom(from.global_transform_);
  global_rate_.MergeFrom(from.global_rate_);
  global_accel_.MergeFrom(from.global_accel_);
  properties_.MergeFrom(from.properties_);
  media_.MergeFrom(from.media_);
  symbol_transform_.MergeFrom(from.symbol_transform_);
  if (!from._internal_name().empty()) {
    _internal_set_name(from._internal_name());
  }
  if (!from._internal_directory().empty()) {
    _internal_set_directory(from._internal_directory());
  }
  if (!from._internal_symbol().empty()) {
    _internal_set_symbol(from._internal_symbol());
  }
  if (!from._internal_owner().empty()) {
    _internal_set_owner(from._internal_owner());
  }
  if (!from._internal_comments().empty()) {
    _internal_set_comments(from._internal_comments());
  }
  if (!from._internal_series().empty()) {
    _internal_set_series(from._internal_series());
  }
  if (!from._internal_sys_info().empty()) {
    _internal_set_sys_info(from._internal_sys_info());
  }
  if (!from._internal_geom_info().empty()) {
    _internal_set_geom_info(from._internal_geom_info());
  }
  if (!from._internal_url().empty()) {
    _internal_set_url(from._internal_url());
  }
  if (from._internal_has_revision()) {
    _internal_mutable_revision()->::Messages::Revision::MergeFrom(from._internal_revision());
  }
  if (from._internal_has_version()) {
    _internal_mutable_version()->::Messages::Revision::MergeFrom(from._internal_version());
  }
  if (from._internal_has_bounds()) {
    _internal_mutable_bounds()->::Messages::Extrema::MergeFrom(from._internal_bounds());
  }
  if (from._internal_has_appearance()) {
    _internal_mutable_appearance()->::Messages::GraphicsControl::MergeFrom(from._internal_appearance());
  }
  if (from._internal_uid() != 0) {
    _internal_set_uid(from._internal_uid());
  }
  if (from._internal_parent() != 0) {
    _internal_set_parent(from._internal_parent());
  }
  if (from._internal_created() != 0) {
    _internal_set_created(from._internal_created());
  }
  if (from._internal_saved() != 0) {
    _internal_set_saved(from._internal_saved());
  }
  if (from._internal_modified() != 0) {
    _internal_set_modified(from._internal_modified());
  }
  if (from._internal_iteration() != 0) {
    _internal_set_iteration(from._internal_iteration());
  }
  if (from._internal_save_interval() != 0) {
    _internal_set_save_interval(from._internal_save_interval());
  }
  if (from._internal_enabled() != 0) {
    _internal_set_enabled(from._internal_enabled());
  }
  if (from._internal_locked() != 0) {
    _internal_set_locked(from._internal_locked());
  }
  if (from._internal_auto_save() != 0) {
    _internal_set_auto_save(from._internal_auto_save());
  }
  if (from._internal_lightweight() != 0) {
    _internal_set_lightweight(from._internal_lightweight());
  }
  if (from._internal_length_units() != 0) {
    _internal_set_length_units(from._internal_length_units());
  }
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void Meta::CopyFrom(const Meta& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Messages.Meta)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool Meta::IsInitialized() const {
  return true;
}

void Meta::InternalSwap(Meta* other) {
  using std::swap;
  auto* lhs_arena = GetArenaForAllocation();
  auto* rhs_arena = other->GetArenaForAllocation();
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  children_.InternalSwap(&other->children_);
  groups_.InternalSwap(&other->groups_);
  loops_.InternalSwap(&other->loops_);
  surfaces_.InternalSwap(&other->surfaces_);
  volumes_.InternalSwap(&other->volumes_);
  global_transform_.InternalSwap(&other->global_transform_);
  global_rate_.InternalSwap(&other->global_rate_);
  global_accel_.InternalSwap(&other->global_accel_);
  properties_.InternalSwap(&other->properties_);
  media_.InternalSwap(&other->media_);
  symbol_transform_.InternalSwap(&other->symbol_transform_);
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &name_, lhs_arena,
      &other->name_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &directory_, lhs_arena,
      &other->directory_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &symbol_, lhs_arena,
      &other->symbol_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &owner_, lhs_arena,
      &other->owner_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &comments_, lhs_arena,
      &other->comments_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &series_, lhs_arena,
      &other->series_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &sys_info_, lhs_arena,
      &other->sys_info_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &geom_info_, lhs_arena,
      &other->geom_info_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &url_, lhs_arena,
      &other->url_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(Meta, length_units_)
      + sizeof(Meta::length_units_)
      - PROTOBUF_FIELD_OFFSET(Meta, revision_)>(
          reinterpret_cast<char*>(&revision_),
          reinterpret_cast<char*>(&other->revision_));
}

::PROTOBUF_NAMESPACE_ID::Metadata Meta::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_meta_2eproto_getter, &descriptor_table_meta_2eproto_once,
      file_level_metadata_meta_2eproto[3]);
}

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

class SliceControl::_Internal {
 public:
};

SliceControl::SliceControl(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned),
  center_(arena),
  normal_(arena) {
  SharedCtor();
  // @@protoc_insertion_point(arena_constructor:Messages.SliceControl)
}
SliceControl::SliceControl(const SliceControl& from)
  : ::PROTOBUF_NAMESPACE_ID::Message(),
      center_(from.center_),
      normal_(from.normal_) {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  name_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    name_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_name().empty()) {
    name_.Set(from._internal_name(), 
      GetArenaForAllocation());
  }
  ::memcpy(&intersect_, &from.intersect_,
    static_cast<size_t>(reinterpret_cast<char*>(&positive_) -
    reinterpret_cast<char*>(&intersect_)) + sizeof(positive_));
  // @@protoc_insertion_point(copy_constructor:Messages.SliceControl)
}

inline void SliceControl::SharedCtor() {
name_.InitDefault();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  name_.Set("", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
::memset(reinterpret_cast<char*>(this) + static_cast<size_t>(
    reinterpret_cast<char*>(&intersect_) - reinterpret_cast<char*>(this)),
    0, static_cast<size_t>(reinterpret_cast<char*>(&positive_) -
    reinterpret_cast<char*>(&intersect_)) + sizeof(positive_));
}

SliceControl::~SliceControl() {
  // @@protoc_insertion_point(destructor:Messages.SliceControl)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void SliceControl::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  name_.Destroy();
}

void SliceControl::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}

void SliceControl::Clear() {
// @@protoc_insertion_point(message_clear_start:Messages.SliceControl)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  center_.Clear();
  normal_.Clear();
  name_.ClearToEmpty();
  ::memset(&intersect_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&positive_) -
      reinterpret_cast<char*>(&intersect_)) + sizeof(positive_));
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* SliceControl::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // string name = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          auto str = _internal_mutable_name();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "Messages.SliceControl.name"));
        } else
          goto handle_unusual;
        continue;
      // repeated double center = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 18)) {
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedDoubleParser(_internal_mutable_center(), ptr, ctx);
          CHK_(ptr);
        } else if (static_cast<uint8_t>(tag) == 17) {
          _internal_add_center(::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr));
          ptr += sizeof(double);
        } else
          goto handle_unusual;
        continue;
      // repeated double normal = 3;
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 26)) {
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedDoubleParser(_internal_mutable_normal(), ptr, ctx);
          CHK_(ptr);
        } else if (static_cast<uint8_t>(tag) == 25) {
          _internal_add_normal(::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr));
          ptr += sizeof(double);
        } else
          goto handle_unusual;
        continue;
      // bool intersect = 4;
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 32)) {
          intersect_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // bool negative = 5;
      case 5:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 40)) {
          negative_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // bool positive = 6;
      case 6:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 48)) {
          positive_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* SliceControl::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:Messages.SliceControl)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // string name = 1;
  if (!this->_internal_name().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_name().data(), static_cast<int>(this->_internal_name().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "Messages.SliceControl.name");
    target = stream->WriteStringMaybeAliased(
        1, this->_internal_name(), target);
  }

  // repeated double center = 2;
  if (this->_internal_center_size() > 0) {
    target = stream->WriteFixedPacked(2, _internal_center(), target);
  }

  // repeated double normal = 3;
  if (this->_internal_normal_size() > 0) {
    target = stream->WriteFixedPacked(3, _internal_normal(), target);
  }

  // bool intersect = 4;
  if (this->_internal_intersect() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteBoolToArray(4, this->_internal_intersect(), target);
  }

  // bool negative = 5;
  if (this->_internal_negative() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteBoolToArray(5, this->_internal_negative(), target);
  }

  // bool positive = 6;
  if (this->_internal_positive() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteBoolToArray(6, this->_internal_positive(), target);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:Messages.SliceControl)
  return target;
}

size_t SliceControl::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Messages.SliceControl)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // repeated double center = 2;
  {
    unsigned int count = static_cast<unsigned int>(this->_internal_center_size());
    size_t data_size = 8UL * count;
    if (data_size > 0) {
      total_size += 1 +
        ::_pbi::WireFormatLite::Int32Size(static_cast<int32_t>(data_size));
    }
    total_size += data_size;
  }

  // repeated double normal = 3;
  {
    unsigned int count = static_cast<unsigned int>(this->_internal_normal_size());
    size_t data_size = 8UL * count;
    if (data_size > 0) {
      total_size += 1 +
        ::_pbi::WireFormatLite::Int32Size(static_cast<int32_t>(data_size));
    }
    total_size += data_size;
  }

  // string name = 1;
  if (!this->_internal_name().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_name());
  }

  // bool intersect = 4;
  if (this->_internal_intersect() != 0) {
    total_size += 1 + 1;
  }

  // bool negative = 5;
  if (this->_internal_negative() != 0) {
    total_size += 1 + 1;
  }

  // bool positive = 6;
  if (this->_internal_positive() != 0) {
    total_size += 1 + 1;
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData SliceControl::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
    SliceControl::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*SliceControl::GetClassData() const { return &_class_data_; }

void SliceControl::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
                      const ::PROTOBUF_NAMESPACE_ID::Message& from) {
  static_cast<SliceControl *>(to)->MergeFrom(
      static_cast<const SliceControl &>(from));
}


void SliceControl::MergeFrom(const SliceControl& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:Messages.SliceControl)
  GOOGLE_DCHECK_NE(&from, this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  center_.MergeFrom(from.center_);
  normal_.MergeFrom(from.normal_);
  if (!from._internal_name().empty()) {
    _internal_set_name(from._internal_name());
  }
  if (from._internal_intersect() != 0) {
    _internal_set_intersect(from._internal_intersect());
  }
  if (from._internal_negative() != 0) {
    _internal_set_negative(from._internal_negative());
  }
  if (from._internal_positive() != 0) {
    _internal_set_positive(from._internal_positive());
  }
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void SliceControl::CopyFrom(const SliceControl& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Messages.SliceControl)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool SliceControl::IsInitialized() const {
  return true;
}

void SliceControl::InternalSwap(SliceControl* other) {
  using std::swap;
  auto* lhs_arena = GetArenaForAllocation();
  auto* rhs_arena = other->GetArenaForAllocation();
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  center_.InternalSwap(&other->center_);
  normal_.InternalSwap(&other->normal_);
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &name_, lhs_arena,
      &other->name_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(SliceControl, positive_)
      + sizeof(SliceControl::positive_)
      - PROTOBUF_FIELD_OFFSET(SliceControl, intersect_)>(
          reinterpret_cast<char*>(&intersect_),
          reinterpret_cast<char*>(&other->intersect_));
}

::PROTOBUF_NAMESPACE_ID::Metadata SliceControl::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_meta_2eproto_getter, &descriptor_table_meta_2eproto_once,
      file_level_metadata_meta_2eproto[4]);
}

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

class CameraControl::_Internal {
 public:
};

CameraControl::CameraControl(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned),
  subject_(arena),
  offset_(arena),
  angle_(arena),
  resolution_(arena) {
  SharedCtor();
  // @@protoc_insertion_point(arena_constructor:Messages.CameraControl)
}
CameraControl::CameraControl(const CameraControl& from)
  : ::PROTOBUF_NAMESPACE_ID::Message(),
      subject_(from.subject_),
      offset_(from.offset_),
      angle_(from.angle_),
      resolution_(from.resolution_) {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  ::memcpy(&scene_time_, &from.scene_time_,
    static_cast<size_t>(reinterpret_cast<char*>(&follow_) -
    reinterpret_cast<char*>(&scene_time_)) + sizeof(follow_));
  // @@protoc_insertion_point(copy_constructor:Messages.CameraControl)
}

inline void CameraControl::SharedCtor() {
::memset(reinterpret_cast<char*>(this) + static_cast<size_t>(
    reinterpret_cast<char*>(&scene_time_) - reinterpret_cast<char*>(this)),
    0, static_cast<size_t>(reinterpret_cast<char*>(&follow_) -
    reinterpret_cast<char*>(&scene_time_)) + sizeof(follow_));
}

CameraControl::~CameraControl() {
  // @@protoc_insertion_point(destructor:Messages.CameraControl)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void CameraControl::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
}

void CameraControl::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}

void CameraControl::Clear() {
// @@protoc_insertion_point(message_clear_start:Messages.CameraControl)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  subject_.Clear();
  offset_.Clear();
  angle_.Clear();
  resolution_.Clear();
  ::memset(&scene_time_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&follow_) -
      reinterpret_cast<char*>(&scene_time_)) + sizeof(follow_));
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* CameraControl::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // repeated float subject = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedFloatParser(_internal_mutable_subject(), ptr, ctx);
          CHK_(ptr);
        } else if (static_cast<uint8_t>(tag) == 13) {
          _internal_add_subject(::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr));
          ptr += sizeof(float);
        } else
          goto handle_unusual;
        continue;
      // repeated float offset = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 18)) {
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedFloatParser(_internal_mutable_offset(), ptr, ctx);
          CHK_(ptr);
        } else if (static_cast<uint8_t>(tag) == 21) {
          _internal_add_offset(::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr));
          ptr += sizeof(float);
        } else
          goto handle_unusual;
        continue;
      // repeated float angle = 3;
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 26)) {
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedFloatParser(_internal_mutable_angle(), ptr, ctx);
          CHK_(ptr);
        } else if (static_cast<uint8_t>(tag) == 29) {
          _internal_add_angle(::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr));
          ptr += sizeof(float);
        } else
          goto handle_unusual;
        continue;
      // float scene_time = 4;
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 37)) {
          scene_time_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else
          goto handle_unusual;
        continue;
      // float magnification = 5;
      case 5:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 45)) {
          magnification_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else
          goto handle_unusual;
        continue;
      // float time_constant = 6;
      case 6:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 53)) {
          time_constant_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else
          goto handle_unusual;
        continue;
      // float pan_sensitivity = 7;
      case 7:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 61)) {
          pan_sensitivity_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else
          goto handle_unusual;
        continue;
      // float rotation_sensitivity = 8;
      case 8:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 69)) {
          rotation_sensitivity_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else
          goto handle_unusual;
        continue;
      // float zoom_sensitivity = 9;
      case 9:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 77)) {
          zoom_sensitivity_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else
          goto handle_unusual;
        continue;
      // float znear = 10;
      case 10:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 85)) {
          znear_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else
          goto handle_unusual;
        continue;
      // float zfar = 11;
      case 11:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 93)) {
          zfar_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else
          goto handle_unusual;
        continue;
      // float aov = 12;
      case 12:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 101)) {
          aov_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else
          goto handle_unusual;
        continue;
      // repeated uint32 resolution = 13;
      case 13:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 106)) {
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedUInt32Parser(_internal_mutable_resolution(), ptr, ctx);
          CHK_(ptr);
        } else if (static_cast<uint8_t>(tag) == 104) {
          _internal_add_resolution(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr));
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // bool perspective = 15;
      case 15:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 120)) {
          perspective_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // bool smooth = 16;
      case 16:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 128)) {
          smooth_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // bool orbit = 17;
      case 17:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 136)) {
          orbit_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // bool follow = 18;
      case 18:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 144)) {
          follow_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* CameraControl::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:Messages.CameraControl)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // repeated float subject = 1;
  if (this->_internal_subject_size() > 0) {
    target = stream->WriteFixedPacked(1, _internal_subject(), target);
  }

  // repeated float offset = 2;
  if (this->_internal_offset_size() > 0) {
    target = stream->WriteFixedPacked(2, _internal_offset(), target);
  }

  // repeated float angle = 3;
  if (this->_internal_angle_size() > 0) {
    target = stream->WriteFixedPacked(3, _internal_angle(), target);
  }

  // float scene_time = 4;
  static_assert(sizeof(uint32_t) == sizeof(float), "Code assumes uint32_t and float are the same size.");
  float tmp_scene_time = this->_internal_scene_time();
  uint32_t raw_scene_time;
  memcpy(&raw_scene_time, &tmp_scene_time, sizeof(tmp_scene_time));
  if (raw_scene_time != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteFloatToArray(4, this->_internal_scene_time(), target);
  }

  // float magnification = 5;
  static_assert(sizeof(uint32_t) == sizeof(float), "Code assumes uint32_t and float are the same size.");
  float tmp_magnification = this->_internal_magnification();
  uint32_t raw_magnification;
  memcpy(&raw_magnification, &tmp_magnification, sizeof(tmp_magnification));
  if (raw_magnification != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteFloatToArray(5, this->_internal_magnification(), target);
  }

  // float time_constant = 6;
  static_assert(sizeof(uint32_t) == sizeof(float), "Code assumes uint32_t and float are the same size.");
  float tmp_time_constant = this->_internal_time_constant();
  uint32_t raw_time_constant;
  memcpy(&raw_time_constant, &tmp_time_constant, sizeof(tmp_time_constant));
  if (raw_time_constant != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteFloatToArray(6, this->_internal_time_constant(), target);
  }

  // float pan_sensitivity = 7;
  static_assert(sizeof(uint32_t) == sizeof(float), "Code assumes uint32_t and float are the same size.");
  float tmp_pan_sensitivity = this->_internal_pan_sensitivity();
  uint32_t raw_pan_sensitivity;
  memcpy(&raw_pan_sensitivity, &tmp_pan_sensitivity, sizeof(tmp_pan_sensitivity));
  if (raw_pan_sensitivity != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteFloatToArray(7, this->_internal_pan_sensitivity(), target);
  }

  // float rotation_sensitivity = 8;
  static_assert(sizeof(uint32_t) == sizeof(float), "Code assumes uint32_t and float are the same size.");
  float tmp_rotation_sensitivity = this->_internal_rotation_sensitivity();
  uint32_t raw_rotation_sensitivity;
  memcpy(&raw_rotation_sensitivity, &tmp_rotation_sensitivity, sizeof(tmp_rotation_sensitivity));
  if (raw_rotation_sensitivity != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteFloatToArray(8, this->_internal_rotation_sensitivity(), target);
  }

  // float zoom_sensitivity = 9;
  static_assert(sizeof(uint32_t) == sizeof(float), "Code assumes uint32_t and float are the same size.");
  float tmp_zoom_sensitivity = this->_internal_zoom_sensitivity();
  uint32_t raw_zoom_sensitivity;
  memcpy(&raw_zoom_sensitivity, &tmp_zoom_sensitivity, sizeof(tmp_zoom_sensitivity));
  if (raw_zoom_sensitivity != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteFloatToArray(9, this->_internal_zoom_sensitivity(), target);
  }

  // float znear = 10;
  static_assert(sizeof(uint32_t) == sizeof(float), "Code assumes uint32_t and float are the same size.");
  float tmp_znear = this->_internal_znear();
  uint32_t raw_znear;
  memcpy(&raw_znear, &tmp_znear, sizeof(tmp_znear));
  if (raw_znear != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteFloatToArray(10, this->_internal_znear(), target);
  }

  // float zfar = 11;
  static_assert(sizeof(uint32_t) == sizeof(float), "Code assumes uint32_t and float are the same size.");
  float tmp_zfar = this->_internal_zfar();
  uint32_t raw_zfar;
  memcpy(&raw_zfar, &tmp_zfar, sizeof(tmp_zfar));
  if (raw_zfar != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteFloatToArray(11, this->_internal_zfar(), target);
  }

  // float aov = 12;
  static_assert(sizeof(uint32_t) == sizeof(float), "Code assumes uint32_t and float are the same size.");
  float tmp_aov = this->_internal_aov();
  uint32_t raw_aov;
  memcpy(&raw_aov, &tmp_aov, sizeof(tmp_aov));
  if (raw_aov != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteFloatToArray(12, this->_internal_aov(), target);
  }

  // repeated uint32 resolution = 13;
  {
    int byte_size = _resolution_cached_byte_size_.load(std::memory_order_relaxed);
    if (byte_size > 0) {
      target = stream->WriteUInt32Packed(
          13, _internal_resolution(), byte_size, target);
    }
  }

  // bool perspective = 15;
  if (this->_internal_perspective() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteBoolToArray(15, this->_internal_perspective(), target);
  }

  // bool smooth = 16;
  if (this->_internal_smooth() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteBoolToArray(16, this->_internal_smooth(), target);
  }

  // bool orbit = 17;
  if (this->_internal_orbit() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteBoolToArray(17, this->_internal_orbit(), target);
  }

  // bool follow = 18;
  if (this->_internal_follow() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteBoolToArray(18, this->_internal_follow(), target);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:Messages.CameraControl)
  return target;
}

size_t CameraControl::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Messages.CameraControl)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // repeated float subject = 1;
  {
    unsigned int count = static_cast<unsigned int>(this->_internal_subject_size());
    size_t data_size = 4UL * count;
    if (data_size > 0) {
      total_size += 1 +
        ::_pbi::WireFormatLite::Int32Size(static_cast<int32_t>(data_size));
    }
    total_size += data_size;
  }

  // repeated float offset = 2;
  {
    unsigned int count = static_cast<unsigned int>(this->_internal_offset_size());
    size_t data_size = 4UL * count;
    if (data_size > 0) {
      total_size += 1 +
        ::_pbi::WireFormatLite::Int32Size(static_cast<int32_t>(data_size));
    }
    total_size += data_size;
  }

  // repeated float angle = 3;
  {
    unsigned int count = static_cast<unsigned int>(this->_internal_angle_size());
    size_t data_size = 4UL * count;
    if (data_size > 0) {
      total_size += 1 +
        ::_pbi::WireFormatLite::Int32Size(static_cast<int32_t>(data_size));
    }
    total_size += data_size;
  }

  // repeated uint32 resolution = 13;
  {
    size_t data_size = ::_pbi::WireFormatLite::
      UInt32Size(this->resolution_);
    if (data_size > 0) {
      total_size += 1 +
        ::_pbi::WireFormatLite::Int32Size(static_cast<int32_t>(data_size));
    }
    int cached_size = ::_pbi::ToCachedSize(data_size);
    _resolution_cached_byte_size_.store(cached_size,
                                    std::memory_order_relaxed);
    total_size += data_size;
  }

  // float scene_time = 4;
  static_assert(sizeof(uint32_t) == sizeof(float), "Code assumes uint32_t and float are the same size.");
  float tmp_scene_time = this->_internal_scene_time();
  uint32_t raw_scene_time;
  memcpy(&raw_scene_time, &tmp_scene_time, sizeof(tmp_scene_time));
  if (raw_scene_time != 0) {
    total_size += 1 + 4;
  }

  // float magnification = 5;
  static_assert(sizeof(uint32_t) == sizeof(float), "Code assumes uint32_t and float are the same size.");
  float tmp_magnification = this->_internal_magnification();
  uint32_t raw_magnification;
  memcpy(&raw_magnification, &tmp_magnification, sizeof(tmp_magnification));
  if (raw_magnification != 0) {
    total_size += 1 + 4;
  }

  // float time_constant = 6;
  static_assert(sizeof(uint32_t) == sizeof(float), "Code assumes uint32_t and float are the same size.");
  float tmp_time_constant = this->_internal_time_constant();
  uint32_t raw_time_constant;
  memcpy(&raw_time_constant, &tmp_time_constant, sizeof(tmp_time_constant));
  if (raw_time_constant != 0) {
    total_size += 1 + 4;
  }

  // float pan_sensitivity = 7;
  static_assert(sizeof(uint32_t) == sizeof(float), "Code assumes uint32_t and float are the same size.");
  float tmp_pan_sensitivity = this->_internal_pan_sensitivity();
  uint32_t raw_pan_sensitivity;
  memcpy(&raw_pan_sensitivity, &tmp_pan_sensitivity, sizeof(tmp_pan_sensitivity));
  if (raw_pan_sensitivity != 0) {
    total_size += 1 + 4;
  }

  // float rotation_sensitivity = 8;
  static_assert(sizeof(uint32_t) == sizeof(float), "Code assumes uint32_t and float are the same size.");
  float tmp_rotation_sensitivity = this->_internal_rotation_sensitivity();
  uint32_t raw_rotation_sensitivity;
  memcpy(&raw_rotation_sensitivity, &tmp_rotation_sensitivity, sizeof(tmp_rotation_sensitivity));
  if (raw_rotation_sensitivity != 0) {
    total_size += 1 + 4;
  }

  // float zoom_sensitivity = 9;
  static_assert(sizeof(uint32_t) == sizeof(float), "Code assumes uint32_t and float are the same size.");
  float tmp_zoom_sensitivity = this->_internal_zoom_sensitivity();
  uint32_t raw_zoom_sensitivity;
  memcpy(&raw_zoom_sensitivity, &tmp_zoom_sensitivity, sizeof(tmp_zoom_sensitivity));
  if (raw_zoom_sensitivity != 0) {
    total_size += 1 + 4;
  }

  // float znear = 10;
  static_assert(sizeof(uint32_t) == sizeof(float), "Code assumes uint32_t and float are the same size.");
  float tmp_znear = this->_internal_znear();
  uint32_t raw_znear;
  memcpy(&raw_znear, &tmp_znear, sizeof(tmp_znear));
  if (raw_znear != 0) {
    total_size += 1 + 4;
  }

  // float zfar = 11;
  static_assert(sizeof(uint32_t) == sizeof(float), "Code assumes uint32_t and float are the same size.");
  float tmp_zfar = this->_internal_zfar();
  uint32_t raw_zfar;
  memcpy(&raw_zfar, &tmp_zfar, sizeof(tmp_zfar));
  if (raw_zfar != 0) {
    total_size += 1 + 4;
  }

  // float aov = 12;
  static_assert(sizeof(uint32_t) == sizeof(float), "Code assumes uint32_t and float are the same size.");
  float tmp_aov = this->_internal_aov();
  uint32_t raw_aov;
  memcpy(&raw_aov, &tmp_aov, sizeof(tmp_aov));
  if (raw_aov != 0) {
    total_size += 1 + 4;
  }

  // bool perspective = 15;
  if (this->_internal_perspective() != 0) {
    total_size += 1 + 1;
  }

  // bool smooth = 16;
  if (this->_internal_smooth() != 0) {
    total_size += 2 + 1;
  }

  // bool orbit = 17;
  if (this->_internal_orbit() != 0) {
    total_size += 2 + 1;
  }

  // bool follow = 18;
  if (this->_internal_follow() != 0) {
    total_size += 2 + 1;
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData CameraControl::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
    CameraControl::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*CameraControl::GetClassData() const { return &_class_data_; }

void CameraControl::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
                      const ::PROTOBUF_NAMESPACE_ID::Message& from) {
  static_cast<CameraControl *>(to)->MergeFrom(
      static_cast<const CameraControl &>(from));
}


void CameraControl::MergeFrom(const CameraControl& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:Messages.CameraControl)
  GOOGLE_DCHECK_NE(&from, this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  subject_.MergeFrom(from.subject_);
  offset_.MergeFrom(from.offset_);
  angle_.MergeFrom(from.angle_);
  resolution_.MergeFrom(from.resolution_);
  static_assert(sizeof(uint32_t) == sizeof(float), "Code assumes uint32_t and float are the same size.");
  float tmp_scene_time = from._internal_scene_time();
  uint32_t raw_scene_time;
  memcpy(&raw_scene_time, &tmp_scene_time, sizeof(tmp_scene_time));
  if (raw_scene_time != 0) {
    _internal_set_scene_time(from._internal_scene_time());
  }
  static_assert(sizeof(uint32_t) == sizeof(float), "Code assumes uint32_t and float are the same size.");
  float tmp_magnification = from._internal_magnification();
  uint32_t raw_magnification;
  memcpy(&raw_magnification, &tmp_magnification, sizeof(tmp_magnification));
  if (raw_magnification != 0) {
    _internal_set_magnification(from._internal_magnification());
  }
  static_assert(sizeof(uint32_t) == sizeof(float), "Code assumes uint32_t and float are the same size.");
  float tmp_time_constant = from._internal_time_constant();
  uint32_t raw_time_constant;
  memcpy(&raw_time_constant, &tmp_time_constant, sizeof(tmp_time_constant));
  if (raw_time_constant != 0) {
    _internal_set_time_constant(from._internal_time_constant());
  }
  static_assert(sizeof(uint32_t) == sizeof(float), "Code assumes uint32_t and float are the same size.");
  float tmp_pan_sensitivity = from._internal_pan_sensitivity();
  uint32_t raw_pan_sensitivity;
  memcpy(&raw_pan_sensitivity, &tmp_pan_sensitivity, sizeof(tmp_pan_sensitivity));
  if (raw_pan_sensitivity != 0) {
    _internal_set_pan_sensitivity(from._internal_pan_sensitivity());
  }
  static_assert(sizeof(uint32_t) == sizeof(float), "Code assumes uint32_t and float are the same size.");
  float tmp_rotation_sensitivity = from._internal_rotation_sensitivity();
  uint32_t raw_rotation_sensitivity;
  memcpy(&raw_rotation_sensitivity, &tmp_rotation_sensitivity, sizeof(tmp_rotation_sensitivity));
  if (raw_rotation_sensitivity != 0) {
    _internal_set_rotation_sensitivity(from._internal_rotation_sensitivity());
  }
  static_assert(sizeof(uint32_t) == sizeof(float), "Code assumes uint32_t and float are the same size.");
  float tmp_zoom_sensitivity = from._internal_zoom_sensitivity();
  uint32_t raw_zoom_sensitivity;
  memcpy(&raw_zoom_sensitivity, &tmp_zoom_sensitivity, sizeof(tmp_zoom_sensitivity));
  if (raw_zoom_sensitivity != 0) {
    _internal_set_zoom_sensitivity(from._internal_zoom_sensitivity());
  }
  static_assert(sizeof(uint32_t) == sizeof(float), "Code assumes uint32_t and float are the same size.");
  float tmp_znear = from._internal_znear();
  uint32_t raw_znear;
  memcpy(&raw_znear, &tmp_znear, sizeof(tmp_znear));
  if (raw_znear != 0) {
    _internal_set_znear(from._internal_znear());
  }
  static_assert(sizeof(uint32_t) == sizeof(float), "Code assumes uint32_t and float are the same size.");
  float tmp_zfar = from._internal_zfar();
  uint32_t raw_zfar;
  memcpy(&raw_zfar, &tmp_zfar, sizeof(tmp_zfar));
  if (raw_zfar != 0) {
    _internal_set_zfar(from._internal_zfar());
  }
  static_assert(sizeof(uint32_t) == sizeof(float), "Code assumes uint32_t and float are the same size.");
  float tmp_aov = from._internal_aov();
  uint32_t raw_aov;
  memcpy(&raw_aov, &tmp_aov, sizeof(tmp_aov));
  if (raw_aov != 0) {
    _internal_set_aov(from._internal_aov());
  }
  if (from._internal_perspective() != 0) {
    _internal_set_perspective(from._internal_perspective());
  }
  if (from._internal_smooth() != 0) {
    _internal_set_smooth(from._internal_smooth());
  }
  if (from._internal_orbit() != 0) {
    _internal_set_orbit(from._internal_orbit());
  }
  if (from._internal_follow() != 0) {
    _internal_set_follow(from._internal_follow());
  }
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void CameraControl::CopyFrom(const CameraControl& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Messages.CameraControl)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool CameraControl::IsInitialized() const {
  return true;
}

void CameraControl::InternalSwap(CameraControl* other) {
  using std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  subject_.InternalSwap(&other->subject_);
  offset_.InternalSwap(&other->offset_);
  angle_.InternalSwap(&other->angle_);
  resolution_.InternalSwap(&other->resolution_);
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(CameraControl, follow_)
      + sizeof(CameraControl::follow_)
      - PROTOBUF_FIELD_OFFSET(CameraControl, scene_time_)>(
          reinterpret_cast<char*>(&scene_time_),
          reinterpret_cast<char*>(&other->scene_time_));
}

::PROTOBUF_NAMESPACE_ID::Metadata CameraControl::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_meta_2eproto_getter, &descriptor_table_meta_2eproto_once,
      file_level_metadata_meta_2eproto[5]);
}

// @@protoc_insertion_point(namespace_scope)
}  // namespace Messages
PROTOBUF_NAMESPACE_OPEN
template<> PROTOBUF_NOINLINE ::Messages::GraphicsControl*
Arena::CreateMaybeMessage< ::Messages::GraphicsControl >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Messages::GraphicsControl >(arena);
}
template<> PROTOBUF_NOINLINE ::Messages::Representation*
Arena::CreateMaybeMessage< ::Messages::Representation >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Messages::Representation >(arena);
}
template<> PROTOBUF_NOINLINE ::Messages::Visual*
Arena::CreateMaybeMessage< ::Messages::Visual >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Messages::Visual >(arena);
}
template<> PROTOBUF_NOINLINE ::Messages::Meta*
Arena::CreateMaybeMessage< ::Messages::Meta >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Messages::Meta >(arena);
}
template<> PROTOBUF_NOINLINE ::Messages::SliceControl*
Arena::CreateMaybeMessage< ::Messages::SliceControl >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Messages::SliceControl >(arena);
}
template<> PROTOBUF_NOINLINE ::Messages::CameraControl*
Arena::CreateMaybeMessage< ::Messages::CameraControl >(Arena* arena) {
  return Arena::CreateMessageInternal< ::Messages::CameraControl >(arena);
}
PROTOBUF_NAMESPACE_CLOSE

// @@protoc_insertion_point(global_scope)
#include <google/protobuf/port_undef.inc>
