text: // Generated by the protocol buffer compiler.  DO NOT EDIT!
  
  #define INTERNAL_SUPPRESS_PROTOBUF_FIELD_DEPRECATION
  #include "BumpTop.pb.h"
  
  #include <algorithm>
  
  #include <google/protobuf/stubs/once.h>
  #include <google/protobuf/io/coded_stream.h>
  #include <google/protobuf/wire_format_lite_inl.h>
  #include <google/protobuf/descriptor.h>
  #include <google/protobuf/reflection_ops.h>
  #include <google/protobuf/wire_format.h>
  // @@protoc_insertion_point(includes)
  
  namespace {
  
  const ::google::protobuf::Descriptor* PbBumpTop_descriptor_ = NULL;
  const ::google::protobuf::internal::GeneratedMessageReflection*
    PbBumpTop_reflection_ = NULL;
  const ::google::protobuf::Descriptor* PbHeader_descriptor_ = NULL;
  const ::google::protobuf::internal::GeneratedMessageReflection*
    PbHeader_reflection_ = NULL;
  const ::google::protobuf::Descriptor* PbScene_descriptor_ = NULL;
  const ::google::protobuf::internal::GeneratedMessageReflection*
    PbScene_reflection_ = NULL;
  const ::google::protobuf::Descriptor* PbBumpObject_descriptor_ = NULL;
  const ::google::protobuf::internal::GeneratedMessageReflection*
    PbBumpObject_reflection_ = NULL;
  const ::google::protobuf::Descriptor* PbPile_descriptor_ = NULL;
  const ::google::protobuf::internal::GeneratedMessageReflection*
    PbPile_reflection_ = NULL;
  const ::google::protobuf::Descriptor* PbPile_PbPileItem_descriptor_ = NULL;
  const ::google::protobuf::internal::GeneratedMessageReflection*
    PbPile_PbPileItem_reflection_ = NULL;
  const ::google::protobuf::Descriptor* PbActor_descriptor_ = NULL;
  const ::google::protobuf::internal::GeneratedMessageReflection*
    PbActor_reflection_ = NULL;
  const ::google::protobuf::Descriptor* PbFileSystemActor_descriptor_ = NULL;
  const ::google::protobuf::internal::GeneratedMessageReflection*
    PbFileSystemActor_reflection_ = NULL;
  const ::google::protobuf::Descriptor* PbFileSystemActor_PbCachedFilePathDims_descriptor_ = NULL;
  const ::google::protobuf::internal::GeneratedMessageReflection*
    PbFileSystemActor_PbCachedFilePathDims_reflection_ = NULL;
  const ::google::protobuf::Descriptor* PbCustomActor_descriptor_ = NULL;
  const ::google::protobuf::internal::GeneratedMessageReflection*
    PbCustomActor_reflection_ = NULL;
  const ::google::protobuf::Descriptor* PbPhotoFrameActor_descriptor_ = NULL;
  const ::google::protobuf::internal::GeneratedMessageReflection*
    PbPhotoFrameActor_reflection_ = NULL;
  const ::google::protobuf::Descriptor* PbWebActor_descriptor_ = NULL;
  const ::google::protobuf::internal::GeneratedMessageReflection*
    PbWebActor_reflection_ = NULL;
  const ::google::protobuf::Descriptor* PbCamera_descriptor_ = NULL;
  const ::google::protobuf::internal::GeneratedMessageReflection*
    PbCamera_reflection_ = NULL;
  
  }  // namespace
  
  
  void protobuf_AssignDesc_BumpTop_2eproto() {
    protobuf_AddDesc_BumpTop_2eproto();
    const ::google::protobuf::FileDescriptor* file =
      ::google::protobuf::DescriptorPool::generated_pool()->FindFileByName(
        "BumpTop.proto");
    GOOGLE_CHECK(file != NULL);
    PbBumpTop_descriptor_ = file->message_type(0);
    static const int PbBumpTop_offsets_[2] = {
      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(PbBumpTop, header_),
      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(PbBumpTop, scene_),
    };
    PbBumpTop_reflection_ =
      new ::google::protobuf::internal::GeneratedMessageReflection(
        PbBumpTop_descriptor_,
        PbBumpTop::default_instance_,
        PbBumpTop_offsets_,
        GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(PbBumpTop, _has_bits_[0]),
        GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(PbBumpTop, _unknown_fields_),
        -1,
        ::google::protobuf::DescriptorPool::generated_pool(),
        ::google::protobuf::MessageFactory::generated_factory(),
        sizeof(PbBumpTop));
    PbHeader_descriptor_ = file->message_type(1);
    static const int PbHeader_offsets_[2] = {
      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(PbHeader, build_),
      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(PbHeader, version_),
    };
    PbHeader_reflection_ =
      new ::google::protobuf::internal::GeneratedMessageReflection(
        PbHeader_descriptor_,
        PbHeader::default_instance_,
        PbHeader_offsets_,
        GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(PbHeader, _has_bits_[0]),
        GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(PbHeader, _unknown_fields_),
        -1,
        ::google::protobuf::DescriptorPool::generated_pool(),
        ::google::protobuf::MessageFactory::generated_factory(),
        sizeof(PbHeader));
    PbScene_descriptor_ = file->message_type(2);
    static const int PbScene_offsets_[4] = {
      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(PbScene, working_directory_),
      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(PbScene, free_objects_),
      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(PbScene, piles_),
      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(PbScene, camera_),
    };
    PbScene_reflection_ =
      new ::google::protobuf::internal::GeneratedMessageReflection(
        PbScene_descriptor_,
        PbScene::default_instance_,
        PbScene_offsets_,
        GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(PbScene, _has_bits_[0]),
        GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(PbScene, _unknown_fields_),
        -1,
        ::google::protobuf::DescriptorPool::generated_pool(),
        ::google::protobuf::MessageFactory::generated_factory(),
        sizeof(PbScene));
    PbBumpObject_descriptor_ = file->message_type(3);
    static const int PbBumpObject_offsets_[8] = {
      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(PbBumpObject, class_name_),
      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(PbBumpObject, type_),
      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(PbBumpObject, pose_dims_),
      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(PbBumpObject, text_),
      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(PbBumpObject, text_visible_),
      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(PbBumpObject, pin_point_world_),
      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(PbBumpObject, pin_point_actor_),
      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(PbBumpObject, pinned_),
    };
    PbBumpObject_reflection_ =
      new ::google::protobuf::internal::GeneratedMessageReflection(
        PbBumpObject_descriptor_,
        PbBumpObject::default_instance_,
        PbBumpObject_offsets_,
        GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(PbBumpObject, _has_bits_[0]),
        GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(PbBumpObject, _unknown_fields_),
        GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(PbBumpObject, _extensions_),
        ::google::protobuf::DescriptorPool::generated_pool(),
        ::google::protobuf::MessageFactory::generated_factory(),
        sizeof(PbBumpObject));
    PbPile_descriptor_ = file->message_type(4);
    static const int PbPile_offsets_[1] = {
    };
    PbPile_reflection_ =
      new ::google::protobuf::internal::GeneratedMessageReflection(
        PbPile_descriptor_,
        PbPile::default_instance_,
        PbPile_offsets_,
        GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(PbPile, _has_bits_[0]),
        GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(PbPile, _unknown_fields_),
        -1,
        ::google::protobuf::DescriptorPool::generated_pool(),
        ::google::protobuf::MessageFactory::generated_factory(),
        sizeof(PbPile));
    PbPile_PbPileItem_descriptor_ = PbPile_descriptor_->nested_type(0);
    static const int PbPile_PbPileItem_offsets_[2] = {
      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(PbPile_PbPileItem, item_),
      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(PbPile_PbPileItem, original_world_pose_),
    };
    PbPile_PbPileItem_reflection_ =
      new ::google::protobuf::internal::GeneratedMessageReflection(
        PbPile_PbPileItem_descriptor_,
        PbPile_PbPileItem::default_instance_,
        PbPile_PbPileItem_offsets_,
        GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(PbPile_PbPileItem, _has_bits_[0]),
        GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(PbPile_PbPileItem, _unknown_fields_),
        -1,
        ::google::protobuf::DescriptorPool::generated_pool(),
        ::google::protobuf::MessageFactory::generated_factory(),
        sizeof(PbPile_PbPileItem));
    PbActor_descriptor_ = file->message_type(5);
    static const int PbActor_offsets_[1] = {
    };
    PbActor_reflection_ =
      new ::google::protobuf::internal::GeneratedMessageReflection(
        PbActor_descriptor_,
        PbActor::default_instance_,
        PbActor_offsets_,
        GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(PbActor, _has_bits_[0]),
        GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(PbActor, _unknown_fields_),
        -1,
        ::google::protobuf::DescriptorPool::generated_pool(),
        ::google::protobuf::MessageFactory::generated_factory(),
        sizeof(PbActor));
    PbFileSystemActor_descriptor_ = file->message_type(6);
    static const int PbFileSystemActor_offsets_[1] = {
    };
    PbFileSystemActor_reflection_ =
      new ::google::protobuf::internal::GeneratedMessageReflection(
        PbFileSystemActor_descriptor_,
        PbFileSystemActor::default_instance_,
        PbFileSystemActor_offsets_,
        GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(PbFileSystemActor, _has_bits_[0]),
        GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(PbFileSystemActor, _unknown_fields_),
        -1,
        ::google::protobuf::DescriptorPool::generated_pool(),
        ::google::protobuf::MessageFactory::generated_factory(),
        sizeof(PbFileSystemActor));
    PbFileSystemActor_PbCachedFilePathDims_descriptor_ = PbFileSystemActor_descriptor_->nested_type(0);
    static const int PbFileSystemActor_PbCachedFilePathDims_offsets_[2] = {
      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(PbFileSystemActor_PbCachedFilePathDims, file_path_),
      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(PbFileSystemActor_PbCachedFilePathDims, dims_),
    };
    PbFileSystemActor_PbCachedFilePathDims_reflection_ =
      new ::google::protobuf::internal::GeneratedMessageReflection(
        PbFileSystemActor_PbCachedFilePathDims_descriptor_,
        PbFileSystemActor_PbCachedFilePathDims::default_instance_,
        PbFileSystemActor_PbCachedFilePathDims_offsets_,
        GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(PbFileSystemActor_PbCachedFilePathDims, _has_bits_[0]),
        GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(PbFileSystemActor_PbCachedFilePathDims, _unknown_fields_),
        -1,
        ::google::protobuf::DescriptorPool::generated_pool(),
        ::google::protobuf::MessageFactory::generated_factory(),
        sizeof(PbFileSystemActor_PbCachedFilePathDims));
    PbCustomActor_descriptor_ = file->message_type(7);
    static const int PbCustomActor_offsets_[1] = {
    };
    PbCustomActor_reflection_ =
      new ::google::protobuf::internal::GeneratedMessageReflection(
        PbCustomActor_descriptor_,
        PbCustomActor::default_instance_,
        PbCustomActor_offsets_,
        GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(PbCustomActor, _has_bits_[0]),
        GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(PbCustomActor, _unknown_fields_),
        -1,
        ::google::protobuf::DescriptorPool::generated_pool(),
        ::google::protobuf::MessageFactory::generated_factory(),
        sizeof(PbCustomActor));
    PbPhotoFrameActor_descriptor_ = file->message_type(8);
    static const int PbPhotoFrameActor_offsets_[1] = {
    };
    PbPhotoFrameActor_reflection_ =
      new ::google::protobuf::internal::GeneratedMessageReflection(
        PbPhotoFrameActor_descriptor_,
        PbPhotoFrameActor::default_instance_,
        PbPhotoFrameActor_offsets_,
        GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(PbPhotoFrameActor, _has_bits_[0]),
        GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(PbPhotoFrameActor, _unknown_fields_),
        -1,
        ::google::protobuf::DescriptorPool::generated_pool(),
        ::google::protobuf::MessageFactory::generated_factory(),
        sizeof(PbPhotoFrameActor));
    PbWebActor_descriptor_ = file->message_type(9);
    static const int PbWebActor_offsets_[1] = {
    };
    PbWebActor_reflection_ =
      new ::google::protobuf::internal::GeneratedMessageReflection(
        PbWebActor_descriptor_,
        PbWebActor::default_instance_,
        PbWebActor_offsets_,
        GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(PbWebActor, _has_bits_[0]),
        GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(PbWebActor, _unknown_fields_),
        -1,
        ::google::protobuf::DescriptorPool::generated_pool(),
        ::google::protobuf::MessageFactory::generated_factory(),
        sizeof(PbWebActor));
    PbCamera_descriptor_ = file->message_type(10);
    static const int PbCamera_offsets_[3] = {
      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(PbCamera, eye_),
      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(PbCamera, up_),
      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(PbCamera, dir_),
    };
    PbCamera_reflection_ =
      new ::google::protobuf::internal::GeneratedMessageReflection(
        PbCamera_descriptor_,
        PbCamera::default_instance_,
        PbCamera_offsets_,
        GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(PbCamera, _has_bits_[0]),
        GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(PbCamera, _unknown_fields_),
        -1,
        ::google::protobuf::DescriptorPool::generated_pool(),
        ::google::protobuf::MessageFactory::generated_factory(),
        sizeof(PbCamera));
  }
  
  namespace {
  
  GOOGLE_PROTOBUF_DECLARE_ONCE(protobuf_AssignDescriptors_once_);
  inline void protobuf_AssignDescriptorsOnce() {
    ::google::protobuf::GoogleOnceInit(&protobuf_AssignDescriptors_once_,
                   &protobuf_AssignDesc_BumpTop_2eproto);
  }
  
  void protobuf_RegisterTypes(const ::std::string&) {
    protobuf_AssignDescriptorsOnce();
    ::google::protobuf::MessageFactory::InternalRegisterGeneratedMessage(
      PbBumpTop_descriptor_, &PbBumpTop::default_instance());
    ::google::protobuf::MessageFactory::InternalRegisterGeneratedMessage(
      PbHeader_descriptor_, &PbHeader::default_instance());
    ::google::protobuf::MessageFactory::InternalRegisterGeneratedMessage(
      PbScene_descriptor_, &PbScene::default_instance());
    ::google::protobuf::MessageFactory::InternalRegisterGeneratedMessage(
      PbBumpObject_descriptor_, &PbBumpObject::default_instance());
    ::google::protobuf::MessageFactory::InternalRegisterGeneratedMessage(
      PbPile_descriptor_, &PbPile::default_instance());
    ::google::protobuf::MessageFactory::InternalRegisterGeneratedMessage(
      PbPile_PbPileItem_descriptor_, &PbPile_PbPileItem::default_instance());
    ::google::protobuf::MessageFactory::InternalRegisterGeneratedMessage(
      PbActor_descriptor_, &PbActor::default_instance());
    ::google::protobuf::MessageFactory::InternalRegisterGeneratedMessage(
      PbFileSystemActor_descriptor_, &PbFileSystemActor::default_instance());
    ::google::protobuf::MessageFactory::InternalRegisterGeneratedMessage(
      PbFileSystemActor_PbCachedFilePathDims_descriptor_, &PbFileSystemActor_PbCachedFilePathDims::default_instance());
    ::google::protobuf::MessageFactory::InternalRegisterGeneratedMessage(
      PbCustomActor_descriptor_, &PbCustomActor::default_instance());
    ::google::protobuf::MessageFactory::InternalRegisterGeneratedMessage(
      PbPhotoFrameActor_descriptor_, &PbPhotoFrameActor::default_instance());
    ::google::protobuf::MessageFactory::InternalRegisterGeneratedMessage(
      PbWebActor_descriptor_, &PbWebActor::default_instance());
    ::google::protobuf::MessageFactory::InternalRegisterGeneratedMessage(
      PbCamera_descriptor_, &PbCamera::default_instance());
  }
  
  }  // namespace
  
  void protobuf_ShutdownFile_BumpTop_2eproto() {
    delete PbBumpTop::default_instance_;
    delete PbBumpTop_reflection_;
    delete PbHeader::default_instance_;
    delete PbHeader_reflection_;
    delete PbScene::default_instance_;
    delete PbScene_reflection_;
    delete PbBumpObject::default_instance_;
    delete PbBumpObject_reflection_;
    delete PbPile::default_instance_;
    delete PbPile_reflection_;
    delete PbPile_PbPileItem::default_instance_;
    delete PbPile_PbPileItem_reflection_;
    delete PbActor::default_instance_;
    delete PbActor_reflection_;
    delete PbFileSystemActor::default_instance_;
    delete PbFileSystemActor_reflection_;
    delete PbFileSystemActor_PbCachedFilePathDims::default_instance_;
    delete PbFileSystemActor_PbCachedFilePathDims_reflection_;
    delete PbCustomActor::default_instance_;
    delete PbCustomActor_reflection_;
    delete PbPhotoFrameActor::default_instance_;
    delete PbPhotoFrameActor_reflection_;
    delete PbWebActor::default_instance_;
    delete PbWebActor_reflection_;
    delete PbCamera::default_instance_;
    delete PbCamera_reflection_;
  }
  
  void protobuf_AddDesc_BumpTop_2eproto() {
    static bool already_here = false;
    if (already_here) return;
    already_here = true;
    GOOGLE_PROTOBUF_VERIFY_VERSION;
  
    ::protobuf_AddDesc_Nx_2eproto();
    ::protobuf_AddDesc_PhotoFrameSource_2eproto();
    ::google::protobuf::DescriptorPool::InternalAddGeneratedFile(
      "\n\rBumpTop.proto\032\010Nx.proto\032\026PhotoFrameSou"
      "rce.proto\"\?\n\tPbBumpTop\022\031\n\006header\030\001 \001(\0132\t"
      ".PbHeader\022\027\n\005scene\030\002 \001(\0132\010.PbScene\"*\n\010Pb"
      "Header\022\r\n\005build\030\001 \001(\t\022\017\n\007version\030\002 \001(\005\"\202"
      "\001\n\007PbScene\022\031\n\021working_directory\030\001 \001(\t\022#\n"
      "\014free_objects\030\n \003(\0132\r.PbBumpObject\022\034\n\005pi"
      "les\030\013 \003(\0132\r.PbBumpObject\022\031\n\006camera\030\014 \001(\013"
      "2\t.PbCamera\"\317\001\n\014PbBumpObject\022\022\n\nclass_na"
      "me\030\001 \001(\t\022\014\n\004type\030\002 \001(\007\022\036\n\tpose_Dims\030\003 \001("
      "\0132\013.PbPoseDims\022\014\n\004text\030\n \001(\t\022\024\n\014text_vis"
      "ible\030\013 \001(\010\022 \n\017pin_point_world\030\017 \001(\0132\007.Pb"
      "Vec3\022 \n\017pin_point_actor\030\020 \001(\0132\007.PbVec3\022\016"
      "\n\006pinned\030\021 \001(\010*\005\010d\020\210\'\"\263\001\n\006PbPile\032P\n\nPbPi"
      "leItem\022\033\n\004item\030\001 \001(\0132\r.PbBumpObject\022%\n\023o"
      "riginal_world_pose\030\002 \001(\0132\010.PbMat342\"\n\013ex"
      "t_min_tag\022\r.PbBumpObject\030d \001(\r23\n\010childr"
      "en\022\r.PbBumpObject\030o \003(\0132\022.PbPile.PbPileI"
      "tem\".\n\007PbActor2#\n\013ext_min_tag\022\r.PbBumpOb"
      "ject\030\310\001 \001(\r\"\307\003\n\021PbFileSystemActor\032@\n\024PbC"
      "achedFilePathDims\022\021\n\tfile_path\030\001 \001(\t\022\025\n\004"
      "dims\030\002 \001(\0132\007.PbVec32#\n\013ext_min_tag\022\r.PbB"
      "umpObject\030\254\002 \001(\r2!\n\tfull_path\022\r.PbBumpOb"
      "ject\030\266\002 \001(\t2,\n\024launch_override_path\022\r.Pb"
      "BumpObject\030\267\002 \001(\t2-\n\025texture_override_pa"
      "th\022\r.PbBumpObject\030\270\002 \001(\t2 \n\010pileized\022\r.P"
      "bBumpObject\030\300\002 \001(\0102%\n\rthumbnailized\022\r.Pb"
      "BumpObject\030\301\002 \001(\0102$\n\014launch_count\022\r.PbBu"
      "mpObject\030\312\002 \001(\r2\\\n\033prev_pileized_childre"
      "n_dims\022\r.PbBumpObject\030\324\002 \003(\0132\'.PbFileSys"
      "temActor.PbCachedFilePathDims\"]\n\rPbCusto"
      "mActor2#\n\013ext_min_tag\022\r.PbBumpObject\030\220\003 "
      "\001(\r2\'\n\017impl_class_name\022\r.PbBumpObject\030\221\003"
      " \001(\t\"\222\001\n\021PbPhotoFrameActor2#\n\013ext_min_ta"
      "g\022\r.PbBumpObject\030\364\003 \001(\r2#\n\013source_type\022\r"
      ".PbBumpObject\030\365\003 \001(\r23\n\006source\022\r.PbBumpO"
      "bject\030\366\003 \001(\0132\023.PbPhotoFrameSource\"p\n\nPbW"
      "ebActor2#\n\013ext_min_tag\022\r.PbBumpObject\030\330\004"
      " \001(\r2\034\n\004type\022\r.PbBumpObject\030\331\004 \001(\r2\037\n\007co"
      "ntent\022\r.PbBumpObject\030\332\004 \001(\t\"K\n\010PbCamera\022"
      "\024\n\003eye\030\001 \001(\0132\007.PbVec3\022\023\n\002up\030\002 \001(\0132\007.PbVe"
      "c3\022\024\n\003dir\030\003 \001(\0132\007.PbVec3", 1624);
    ::google::protobuf::MessageFactory::InternalRegisterGeneratedFile(
      "BumpTop.proto", &protobuf_RegisterTypes);
    PbBumpTop::default_instance_ = new PbBumpTop();
    PbHeader::default_instance_ = new PbHeader();
    PbScene::default_instance_ = new PbScene();
    PbBumpObject::default_instance_ = new PbBumpObject();
    PbPile::default_instance_ = new PbPile();
    PbPile_PbPileItem::default_instance_ = new PbPile_PbPileItem();
    PbActor::default_instance_ = new PbActor();
    PbFileSystemActor::default_instance_ = new PbFileSystemActor();
    PbFileSystemActor_PbCachedFilePathDims::default_instance_ = new PbFileSystemActor_PbCachedFilePathDims();
    PbCustomActor::default_instance_ = new PbCustomActor();
    PbPhotoFrameActor::default_instance_ = new PbPhotoFrameActor();
    PbWebActor::default_instance_ = new PbWebActor();
    PbCamera::default_instance_ = new PbCamera();
    PbBumpTop::default_instance_->InitAsDefaultInstance();
    PbHeader::default_instance_->InitAsDefaultInstance();
    PbScene::default_instance_->InitAsDefaultInstance();
    PbBumpObject::default_instance_->InitAsDefaultInstance();
    PbPile::default_instance_->InitAsDefaultInstance();
    ::google::protobuf::internal::ExtensionSet::RegisterExtension(
      &::PbBumpObject::default_instance(),
      100, 13, false, false);
    ::google::protobuf::internal::ExtensionSet::RegisterMessageExtension(
      &::PbBumpObject::default_instance(),
      111, 11, true, false,
      &::PbPile_PbPileItem::default_instance());
    PbPile_PbPileItem::default_instance_->InitAsDefaultInstance();
    PbActor::default_instance_->InitAsDefaultInstance();
    ::google::protobuf::internal::ExtensionSet::RegisterExtension(
      &::PbBumpObject::default_instance(),
      200, 13, false, false);
    PbFileSystemActor::default_instance_->InitAsDefaultInstance();
    ::google::protobuf::internal::ExtensionSet::RegisterExtension(
      &::PbBumpObject::default_instance(),
      300, 13, false, false);
    ::google::protobuf::internal::ExtensionSet::RegisterExtension(
      &::PbBumpObject::default_instance(),
      310, 9, false, false);
    ::google::protobuf::internal::ExtensionSet::RegisterExtension(
      &::PbBumpObject::default_instance(),
      311, 9, false, false);
    ::google::protobuf::internal::ExtensionSet::RegisterExtension(
      &::PbBumpObject::default_instance(),
      312, 9, false, false);
    ::google::protobuf::internal::ExtensionSet::RegisterExtension(
      &::PbBumpObject::default_instance(),
      320, 8, false, false);
    ::google::protobuf::internal::ExtensionSet::RegisterExtension(
      &::PbBumpObject::default_instance(),
      321, 8, false, false);
    ::google::protobuf::internal::ExtensionSet::RegisterExtension(
      &::PbBumpObject::default_instance(),
      330, 13, false, false);
    ::google::protobuf::internal::ExtensionSet::RegisterMessageExtension(
      &::PbBumpObject::default_instance(),
      340, 11, true, false,
      &::PbFileSystemActor_PbCachedFilePathDims::default_instance());
    PbFileSystemActor_PbCachedFilePathDims::default_instance_->InitAsDefaultInstance();
    PbCustomActor::default_instance_->InitAsDefaultInstance();
    ::google::protobuf::internal::ExtensionSet::RegisterExtension(
      &::PbBumpObject::default_instance(),
      400, 13, false, false);
    ::google::protobuf::internal::ExtensionSet::RegisterExtension(
      &::PbBumpObject::default_instance(),
      401, 9, false, false);
    PbPhotoFrameActor::default_instance_->InitAsDefaultInstance();
    ::google::protobuf::internal::ExtensionSet::RegisterExtension(
      &::PbBumpObject::default_instance(),
      500, 13, false, false);
    ::google::protobuf::internal::ExtensionSet::RegisterExtension(
      &::PbBumpObject::default_instance(),
      501, 13, false, false);
    ::google::protobuf::internal::ExtensionSet::RegisterMessageExtension(
      &::PbBumpObject::default_instance(),
      502, 11, false, false,
      &::PbPhotoFrameSource::default_instance());
    PbWebActor::default_instance_->InitAsDefaultInstance();
    ::google::protobuf::internal::ExtensionSet::RegisterExtension(
      &::PbBumpObject::default_instance(),
      600, 13, false, false);
    ::google::protobuf::internal::ExtensionSet::RegisterExtension(
      &::PbBumpObject::default_instance(),
      601, 13, false, false);
    ::google::protobuf::internal::ExtensionSet::RegisterExtension(
      &::PbBumpObject::default_instance(),
      602, 9, false, false);
    PbCamera::default_instance_->InitAsDefaultInstance();
    ::google::protobuf::internal::OnShutdown(&protobuf_ShutdownFile_BumpTop_2eproto);
  }
  
  // Force AddDescriptors() to be called at static initialization time.
  struct StaticDescriptorInitializer_BumpTop_2eproto {
    StaticDescriptorInitializer_BumpTop_2eproto() {
      protobuf_AddDesc_BumpTop_2eproto();
    }
  } static_descriptor_initializer_BumpTop_2eproto_;
  
  
  // ===================================================================
  
  #ifndef _MSC_VER
  const int PbBumpTop::kHeaderFieldNumber;
  const int PbBumpTop::kSceneFieldNumber;
  #endif  // !_MSC_VER
  
  PbBumpTop::PbBumpTop()
    : ::google::protobuf::Message() {
    SharedCtor();
  }
  
  void PbBumpTop::InitAsDefaultInstance() {
    header_ = const_cast< ::PbHeader*>(&::PbHeader::default_instance());
    scene_ = const_cast< ::PbScene*>(&::PbScene::default_instance());
  }
  
  PbBumpTop::PbBumpTop(const PbBumpTop& from)
    : ::google::protobuf::Message() {
    SharedCtor();
    MergeFrom(from);
  }
  
  void PbBumpTop::SharedCtor() {
    _cached_size_ = 0;
    header_ = NULL;
    scene_ = NULL;
    ::memset(_has_bits_, 0, sizeof(_has_bits_));
  }
  
  PbBumpTop::~PbBumpTop() {
    SharedDtor();
  }
  
  void PbBumpTop::SharedDtor() {
    if (this != default_instance_) {
      delete header_;
      delete scene_;
    }
  }
  
  void PbBumpTop::SetCachedSize(int size) const {
    GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
    _cached_size_ = size;
    GOOGLE_SAFE_CONCURRENT_WRITES_END();
  }
  const ::google::protobuf::Descriptor* PbBumpTop::descriptor() {
    protobuf_AssignDescriptorsOnce();
    return PbBumpTop_descriptor_;
  }
  
  const PbBumpTop& PbBumpTop::default_instance() {
    if (default_instance_ == NULL) protobuf_AddDesc_BumpTop_2eproto();  return *default_instance_;
  }
  
  PbBumpTop* PbBumpTop::default_instance_ = NULL;
  
  PbBumpTop* PbBumpTop::New() const {
    return new PbBumpTop;
  }
  
  void PbBumpTop::Clear() {
    if (_has_bits_[0 / 32] & (0xffu << (0 % 32))) {
      if (has_header()) {
        if (header_ != NULL) header_->::PbHeader::Clear();
      }
      if (has_scene()) {
        if (scene_ != NULL) scene_->::PbScene::Clear();
      }
    }
    ::memset(_has_bits_, 0, sizeof(_has_bits_));
    mutable_unknown_fields()->Clear();
  }
  
  bool PbBumpTop::MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input) {
  #define DO_(EXPRESSION) if (!(EXPRESSION)) return false
    ::google::protobuf::uint32 tag;
    while ((tag = input->ReadTag()) != 0) {
      switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
        // optional .PbHeader header = 1;
        case 1: {
          if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
              ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED) {
            DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
                 input, mutable_header()));
          } else {
            goto handle_uninterpreted;
          }
          if (input->ExpectTag(18)) goto parse_scene;
          break;
        }
        
        // optional .PbScene scene = 2;
        case 2: {
          if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
              ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED) {
           parse_scene:
            DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
                 input, mutable_scene()));
          } else {
            goto handle_uninterpreted;
          }
          if (input->ExpectAtEnd()) return true;
          break;
        }
        
        default: {
        handle_uninterpreted:
          if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
              ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
            return true;
          }
          DO_(::google::protobuf::internal::WireFormat::SkipField(
                input, tag, mutable_unknown_fields()));
          break;
        }
      }
    }
    return true;
  #undef DO_
  }
  
  void PbBumpTop::SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const {
    // optional .PbHeader header = 1;
    if (has_header()) {
      ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
        1, this->header(), output);
    }
    
    // optional .PbScene scene = 2;
    if (has_scene()) {
      ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
        2, this->scene(), output);
    }
    
    if (!unknown_fields().empty()) {
      ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
          unknown_fields(), output);
    }
  }
  
  ::google::protobuf::uint8* PbBumpTop::SerializeWithCachedSizesToArray(
      ::google::protobuf::uint8* target) const {
    // optional .PbHeader header = 1;
    if (has_header()) {
      target = ::google::protobuf::internal::WireFormatLite::
        WriteMessageNoVirtualToArray(
          1, this->header(), target);
    }
    
    // optional .PbScene scene = 2;
    if (has_scene()) {
      target = ::google::protobuf::internal::WireFormatLite::
        WriteMessageNoVirtualToArray(
          2, this->scene(), target);
    }
    
    if (!unknown_fields().empty()) {
      target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
          unknown_fields(), target);
    }
    return target;
  }
  
  int PbBumpTop::ByteSize() const {
    int total_size = 0;
    
    if (_has_bits_[0 / 32] & (0xffu << (0 % 32))) {
      // optional .PbHeader header = 1;
      if (has_header()) {
        total_size += 1 +
          ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
            this->header());
      }
      
      // optional .PbScene scene = 2;
      if (has_scene()) {
        total_size += 1 +
          ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
            this->scene());
      }
      
    }
    if (!unknown_fields().empty()) {
      total_size +=
        ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
          unknown_fields());
    }
    GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
    _cached_size_ = total_size;
    GOOGLE_SAFE_CONCURRENT_WRITES_END();
    return total_size;
  }
  
  void PbBumpTop::MergeFrom(const ::google::protobuf::Message& from) {
    GOOGLE_CHECK_NE(&from, this);
    const PbBumpTop* source =
      ::google::protobuf::internal::dynamic_cast_if_available<const PbBumpTop*>(
        &from);
    if (source == NULL) {
      ::google::protobuf::internal::ReflectionOps::Merge(from, this);
    } else {
      MergeFrom(*source);
    }
  }
  
  void PbBumpTop::MergeFrom(const PbBumpTop& from) {
    GOOGLE_CHECK_NE(&from, this);
    if (from._has_bits_[0 / 32] & (0xffu << (0 % 32))) {
      if (from.has_header()) {
        mutable_header()->::PbHeader::MergeFrom(from.header());
      }
      if (from.has_scene()) {
        mutable_scene()->::PbScene::MergeFrom(from.scene());
      }
    }
    mutable_unknown_fields()->MergeFrom(from.unknown_fields());
  }
  
  void PbBumpTop::CopyFrom(const ::google::protobuf::Message& from) {
    if (&from == this) return;
    Clear();
    MergeFrom(from);
  }
  
  void PbBumpTop::CopyFrom(const PbBumpTop& from) {
    if (&from == this) return;
    Clear();
    MergeFrom(from);
  }
  
  bool PbBumpTop::IsInitialized() const {
    
    if (has_scene()) {
      if (!this->scene().IsInitialized()) return false;
    }
    return true;
  }
  
  void PbBumpTop::Swap(PbBumpTop* other) {
    if (other != this) {
      std::swap(header_, other->header_);
      std::swap(scene_, other->scene_);
      std::swap(_has_bits_[0], other->_has_bits_[0]);
      _unknown_fields_.Swap(&other->_unknown_fields_);
      std::swap(_cached_size_, other->_cached_size_);
    }
  }
  
  ::google::protobuf::Metadata PbBumpTop::GetMetadata() const {
    protobuf_AssignDescriptorsOnce();
    ::google::protobuf::Metadata metadata;
    metadata.descriptor = PbBumpTop_descriptor_;
    metadata.reflection = PbBumpTop_reflection_;
    return metadata;
  }
  
  
  // ===================================================================
  
  #ifndef _MSC_VER
  const int PbHeader::kBuildFieldNumber;
  const int PbHeader::kVersionFieldNumber;
  #endif  // !_MSC_VER
  
  PbHeader::PbHeader()
    : ::google::protobuf::Message() {
    SharedCtor();
  }
  
  void PbHeader::InitAsDefaultInstance() {
  }
  
  PbHeader::PbHeader(const PbHeader& from)
    : ::google::protobuf::Message() {
    SharedCtor();
    MergeFrom(from);
  }
  
  void PbHeader::SharedCtor() {
    _cached_size_ = 0;
    build_ = const_cast< ::std::string*>(&::google::protobuf::internal::kEmptyString);
    version_ = 0;
    ::memset(_has_bits_, 0, sizeof(_has_bits_));
  }
  
  PbHeader::~PbHeader() {
    SharedDtor();
  }
  
  void PbHeader::SharedDtor() {
    if (build_ != &::google::protobuf::internal::kEmptyString) {
      delete build_;
    }
    if (this != default_instance_) {
    }
  }
  
  void PbHeader::SetCachedSize(int size) const {
    GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
    _cached_size_ = size;
    GOOGLE_SAFE_CONCURRENT_WRITES_END();
  }
  const ::google::protobuf::Descriptor* PbHeader::descriptor() {
    protobuf_AssignDescriptorsOnce();
    return PbHeader_descriptor_;
  }
  
  const PbHeader& PbHeader::default_instance() {
    if (default_instance_ == NULL) protobuf_AddDesc_BumpTop_2eproto();  return *default_instance_;
  }
  
  PbHeader* PbHeader::default_instance_ = NULL;
  
  PbHeader* PbHeader::New() const {
    return new PbHeader;
  }
  
  void PbHeader::Clear() {
    if (_has_bits_[0 / 32] & (0xffu << (0 % 32))) {
      if (has_build()) {
        if (build_ != &::google::protobuf::internal::kEmptyString) {
          build_->clear();
        }
      }
      version_ = 0;
    }
    ::memset(_has_bits_, 0, sizeof(_has_bits_));
    mutable_unknown_fields()->Clear();
  }
  
  bool PbHeader::MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input) {
  #define DO_(EXPRESSION) if (!(EXPRESSION)) return false
    ::google::protobuf::uint32 tag;
    while ((tag = input->ReadTag()) != 0) {
      switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
        // optional string build = 1;
        case 1: {
          if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
              ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED) {
            DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                  input, this->mutable_build()));
            ::google::protobuf::internal::WireFormat::VerifyUTF8String(
              this->build().data(), this->build().length(),
              ::google::protobuf::internal::WireFormat::PARSE);
          } else {
            goto handle_uninterpreted;
          }
          if (input->ExpectTag(16)) goto parse_version;
          break;
        }
        
        // optional int32 version = 2;
        case 2: {
          if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
              ::google::protobuf::internal::WireFormatLite::WIRETYPE_VARINT) {
           parse_version:
            DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                     ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
                   input, &version_)));
            set_has_version();
          } else {
            goto handle_uninterpreted;
          }
          if (input->ExpectAtEnd()) return true;
          break;
        }
        
        default: {
        handle_uninterpreted:
          if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
              ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
            return true;
          }
          DO_(::google::protobuf::internal::WireFormat::SkipField(
                input, tag, mutable_unknown_fields()));
          break;
        }
      }
    }
    return true;
  #undef DO_
  }
  
  void PbHeader::SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const {
    // optional string build = 1;
    if (has_build()) {
      ::google::protobuf::internal::WireFormat::VerifyUTF8String(
        this->build().data(), this->build().length(),
        ::google::protobuf::internal::WireFormat::SERIALIZE);
      ::google::protobuf::internal::WireFormatLite::WriteString(
        1, this->build(), output);
    }
    
    // optional int32 version = 2;
    if (has_version()) {
      ::google::protobuf::internal::WireFormatLite::WriteInt32(2, this->version(), output);
    }
    
    if (!unknown_fields().empty()) {
      ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
          unknown_fields(), output);
    }
  }
  
  ::google::protobuf::uint8* PbHeader::SerializeWithCachedSizesToArray(
      ::google::protobuf::uint8* target) const {
    // optional string build = 1;
    if (has_build()) {
      ::google::protobuf::internal::WireFormat::VerifyUTF8String(
        this->build().data(), this->build().length(),
        ::google::protobuf::internal::WireFormat::SERIALIZE);
      target =
        ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
          1, this->build(), target);
    }
    
    // optional int32 version = 2;
    if (has_version()) {
      target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(2, this->version(), target);
    }
    
    if (!unknown_fields().empty()) {
      target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
          unknown_fields(), target);
    }
    return target;
  }
  
  int PbHeader::ByteSize() const {
    int total_size = 0;
    
    if (_has_bits_[0 / 32] & (0xffu << (0 % 32))) {
      // optional string build = 1;
      if (has_build()) {
        total_size += 1 +
          ::google::protobuf::internal::WireFormatLite::StringSize(
            this->build());
      }
      
      // optional int32 version = 2;
      if (has_version()) {
        total_size += 1 +
          ::google::protobuf::internal::WireFormatLite::Int32Size(
            this->version());
      }
      
    }
    if (!unknown_fields().empty()) {
      total_size +=
        ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
          unknown_fields());
    }
    GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
    _cached_size_ = total_size;
    GOOGLE_SAFE_CONCURRENT_WRITES_END();
    return total_size;
  }
  
  void PbHeader::MergeFrom(const ::google::protobuf::Message& from) {
    GOOGLE_CHECK_NE(&from, this);
    const PbHeader* source =
      ::google::protobuf::internal::dynamic_cast_if_available<const PbHeader*>(
        &from);
    if (source == NULL) {
      ::google::protobuf::internal::ReflectionOps::Merge(from, this);
    } else {
      MergeFrom(*source);
    }
  }
  
  void PbHeader::MergeFrom(const PbHeader& from) {
    GOOGLE_CHECK_NE(&from, this);
    if (from._has_bits_[0 / 32] & (0xffu << (0 % 32))) {
      if (from.has_build()) {
        set_build(from.build());
      }
      if (from.has_version()) {
        set_version(from.version());
      }
    }
    mutable_unknown_fields()->MergeFrom(from.unknown_fields());
  }
  
  void PbHeader::CopyFrom(const ::google::protobuf::Message& from) {
    if (&from == this) return;
    Clear();
    MergeFrom(from);
  }
  
  void PbHeader::CopyFrom(const PbHeader& from) {
    if (&from == this) return;
    Clear();
    MergeFrom(from);
  }
  
  bool PbHeader::IsInitialized() const {
    
    return true;
  }
  
  void PbHeader::Swap(PbHeader* other) {
    if (other != this) {
      std::swap(build_, other->build_);
      std::swap(version_, other->version_);
      std::swap(_has_bits_[0], other->_has_bits_[0]);
      _unknown_fields_.Swap(&other->_unknown_fields_);
      std::swap(_cached_size_, other->_cached_size_);
    }
  }
  
  ::google::protobuf::Metadata PbHeader::GetMetadata() const {
    protobuf_AssignDescriptorsOnce();
    ::google::protobuf::Metadata metadata;
    metadata.descriptor = PbHeader_descriptor_;
    metadata.reflection = PbHeader_reflection_;
    return metadata;
  }
  
  
  // ===================================================================
  
  #ifndef _MSC_VER
  const int PbScene::kWorkingDirectoryFieldNumber;
  const int PbScene::kFreeObjectsFieldNumber;
  const int PbScene::kPilesFieldNumber;
  const int PbScene::kCameraFieldNumber;
  #endif  // !_MSC_VER
  
  PbScene::PbScene()
    : ::google::protobuf::Message() {
    SharedCtor();
  }
  
  void PbScene::InitAsDefaultInstance() {
    camera_ = const_cast< ::PbCamera*>(&::PbCamera::default_instance());
  }
  
  PbScene::PbScene(const PbScene& from)
    : ::google::protobuf::Message() {
    SharedCtor();
    MergeFrom(from);
  }
  
  void PbScene::SharedCtor() {
    _cached_size_ = 0;
    working_directory_ = const_cast< ::std::string*>(&::google::protobuf::internal::kEmptyString);
    camera_ = NULL;
    ::memset(_has_bits_, 0, sizeof(_has_bits_));
  }
  
  PbScene::~PbScene() {
    SharedDtor();
  }
  
  void PbScene::SharedDtor() {
    if (working_directory_ != &::google::protobuf::internal::kEmptyString) {
      delete working_directory_;
    }
    if (this != default_instance_) {
      delete camera_;
    }
  }
  
  void PbScene::SetCachedSize(int size) const {
    GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
    _cached_size_ = size;
    GOOGLE_SAFE_CONCURRENT_WRITES_END();
  }
  const ::google::protobuf::Descriptor* PbScene::descriptor() {
    protobuf_AssignDescriptorsOnce();
    return PbScene_descriptor_;
  }
  
  const PbScene& PbScene::default_instance() {
    if (default_instance_ == NULL) protobuf_AddDesc_BumpTop_2eproto();  return *default_instance_;
  }
  
  PbScene* PbScene::default_instance_ = NULL;
  
  PbScene* PbScene::New() const {
    return new PbScene;
  }
  
  void PbScene::Clear() {
    if (_has_bits_[0 / 32] & (0xffu << (0 % 32))) {
      if (has_working_directory()) {
        if (working_directory_ != &::google::protobuf::internal::kEmptyString) {
          working_directory_->clear();
        }
      }
      if (has_camera()) {
        if (camera_ != NULL) camera_->::PbCamera::Clear();
      }
    }
    free_objects_.Clear();
    piles_.Clear();
    ::memset(_has_bits_, 0, sizeof(_has_bits_));
    mutable_unknown_fields()->Clear();
  }
  
  bool PbScene::MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input) {
  #define DO_(EXPRESSION) if (!(EXPRESSION)) return false
    ::google::protobuf::uint32 tag;
    while ((tag = input->ReadTag()) != 0) {
      switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
        // optional string working_directory = 1;
        case 1: {
          if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
              ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED) {
            DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                  input, this->mutable_working_directory()));
            ::google::protobuf::internal::WireFormat::VerifyUTF8String(
              this->working_directory().data(), this->working_directory().length(),
              ::google::protobuf::internal::WireFormat::PARSE);
          } else {
            goto handle_uninterpreted;
          }
          if (input->ExpectTag(82)) goto parse_free_objects;
          break;
        }
        
        // repeated .PbBumpObject free_objects = 10;
        case 10: {
          if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
              ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED) {
           parse_free_objects:
            DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
                  input, add_free_objects()));
          } else {
            goto handle_uninterpreted;
          }
          if (input->ExpectTag(82)) goto parse_free_objects;
          if (input->ExpectTag(90)) goto parse_piles;
          break;
        }
        
        // repeated .PbBumpObject piles = 11;
        case 11: {
          if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
              ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED) {
           parse_piles:
            DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
                  input, add_piles()));
          } else {
            goto handle_uninterpreted;
          }
          if (input->ExpectTag(90)) goto parse_piles;
          if (input->ExpectTag(98)) goto parse_camera;
          break;
        }
        
        // optional .PbCamera camera = 12;
        case 12: {
          if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
              ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED) {
           parse_camera:
            DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
                 input, mutable_camera()));
          } else {
            goto handle_uninterpreted;
          }
          if (input->ExpectAtEnd()) return true;
          break;
        }
        
        default: {
        handle_uninterpreted:
          if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
              ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
            return true;
          }
          DO_(::google::protobuf::internal::WireFormat::SkipField(
                input, tag, mutable_unknown_fields()));
          break;
        }
      }
    }
    return true;
  #undef DO_
  }
  
  void PbScene::SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const {
    // optional string working_directory = 1;
    if (has_working_directory()) {
      ::google::protobuf::internal::WireFormat::VerifyUTF8String(
        this->working_directory().data(), this->working_directory().length(),
        ::google::protobuf::internal::WireFormat::SERIALIZE);
      ::google::protobuf::internal::WireFormatLite::WriteString(
        1, this->working_directory(), output);
    }
    
    // repeated .PbBumpObject free_objects = 10;
    for (int i = 0; i < this->free_objects_size(); i++) {
      ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
        10, this->free_objects(i), output);
    }
    
    // repeated .PbBumpObject piles = 11;
    for (int i = 0; i < this->piles_size(); i++) {
      ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
        11, this->piles(i), output);
    }
    
    // optional .PbCamera camera = 12;
    if (has_camera()) {
      ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
        12, this->camera(), output);
    }
    
    if (!unknown_fields().empty()) {
      ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
          unknown_fields(), output);
    }
  }
  
  ::google::protobuf::uint8* PbScene::SerializeWithCachedSizesToArray(
      ::google::protobuf::uint8* target) const {
    // optional string working_directory = 1;
    if (has_working_directory()) {
      ::google::protobuf::internal::WireFormat::VerifyUTF8String(
        this->working_directory().data(), this->working_directory().length(),
        ::google::protobuf::internal::WireFormat::SERIALIZE);
      target =
        ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
          1, this->working_directory(), target);
    }
    
    // repeated .PbBumpObject free_objects = 10;
    for (int i = 0; i < this->free_objects_size(); i++) {
      target = ::google::protobuf::internal::WireFormatLite::
        WriteMessageNoVirtualToArray(
          10, this->free_objects(i), target);
    }
    
    // repeated .PbBumpObject piles = 11;
    for (int i = 0; i < this->piles_size(); i++) {
      target = ::google::protobuf::internal::WireFormatLite::
        WriteMessageNoVirtualToArray(
          11, this->piles(i), target);
    }
    
    // optional .PbCamera camera = 12;
    if (has_camera()) {
      target = ::google::protobuf::internal::WireFormatLite::
        WriteMessageNoVirtualToArray(
          12, this->camera(), target);
    }
    
    if (!unknown_fields().empty()) {
      target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
          unknown_fields(), target);
    }
    return target;
  }
  
  int PbScene::ByteSize() const {
    int total_size = 0;
    
    if (_has_bits_[0 / 32] & (0xffu << (0 % 32))) {
      // optional string working_directory = 1;
      if (has_working_directory()) {
        total_size += 1 +
          ::google::protobuf::internal::WireFormatLite::StringSize(
            this->working_directory());
      }
      
      // optional .PbCamera camera = 12;
      if (has_camera()) {
        total_size += 1 +
          ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
            this->camera());
      }
      
    }
    // repeated .PbBumpObject free_objects = 10;
    total_size += 1 * this->free_objects_size();
    for (int i = 0; i < this->free_objects_size(); i++) {
      total_size +=
        ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
          this->free_objects(i));
    }
    
    // repeated .PbBumpObject piles = 11;
    total_size += 1 * this->piles_size();
    for (int i = 0; i < this->piles_size(); i++) {
      total_size +=
        ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
          this->piles(i));
    }
    
    if (!unknown_fields().empty()) {
      total_size +=
        ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
          unknown_fields());
    }
    GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
    _cached_size_ = total_size;
    GOOGLE_SAFE_CONCURRENT_WRITES_END();
    return total_size;
  }
  
  void PbScene::MergeFrom(const ::google::protobuf::Message& from) {
    GOOGLE_CHECK_NE(&from, this);
    const PbScene* source =
      ::google::protobuf::internal::dynamic_cast_if_available<const PbScene*>(
        &from);
    if (source == NULL) {
      ::google::protobuf::internal::ReflectionOps::Merge(from, this);
    } else {
      MergeFrom(*source);
    }
  }
  
  void PbScene::MergeFrom(const PbScene& from) {
    GOOGLE_CHECK_NE(&from, this);
    free_objects_.MergeFrom(from.free_objects_);
    piles_.MergeFrom(from.piles_);
    if (from._has_bits_[0 / 32] & (0xffu << (0 % 32))) {
      if (from.has_working_directory()) {
        set_working_directory(from.working_directory());
      }
      if (from.has_camera()) {
        mutable_camera()->::PbCamera::MergeFrom(from.camera());
      }
    }
    mutable_unknown_fields()->MergeFrom(from.unknown_fields());
  }
  
  void PbScene::CopyFrom(const ::google::protobuf::Message& from) {
    if (&from == this) return;
    Clear();
    MergeFrom(from);
  }
  
  void PbScene::CopyFrom(const PbScene& from) {
    if (&from == this) return;
    Clear();
    MergeFrom(from);
  }
  
  bool PbScene::IsInitialized() const {
    
    for (int i = 0; i < free_objects_size(); i++) {
      if (!this->free_objects(i).IsInitialized()) return false;
    }
    for (int i = 0; i < piles_size(); i++) {
      if (!this->piles(i).IsInitialized()) return false;
    }
    if (has_camera()) {
      if (!this->camera().IsInitialized()) return false;
    }
    return true;
  }
  
  void PbScene::Swap(PbScene* other) {
    if (other != this) {
      std::swap(working_directory_, other->working_directory_);
      free_objects_.Swap(&other->free_objects_);
      piles_.Swap(&other->piles_);
      std::swap(camera_, other->camera_);
      std::swap(_has_bits_[0], other->_has_bits_[0]);
      _unknown_fields_.Swap(&other->_unknown_fields_);
      std::swap(_cached_size_, other->_cached_size_);
    }
  }
  
  ::google::protobuf::Metadata PbScene::GetMetadata() const {
    protobuf_AssignDescriptorsOnce();
    ::google::protobuf::Metadata metadata;
    metadata.descriptor = PbScene_descriptor_;
    metadata.reflection = PbScene_reflection_;
    return metadata;
  }
  
  
  // ===================================================================
  
  #ifndef _MSC_VER
  const int PbBumpObject::kClassNameFieldNumber;
  const int PbBumpObject::kTypeFieldNumber;
  const int PbBumpObject::kPoseDimsFieldNumber;
  const int PbBumpObject::kTextFieldNumber;
  const int PbBumpObject::kTextVisibleFieldNumber;
  const int PbBumpObject::kPinPointWorldFieldNumber;
  const int PbBumpObject::kPinPointActorFieldNumber;
  const int PbBumpObject::kPinnedFieldNumber;
  #endif  // !_MSC_VER
  
  PbBumpObject::PbBumpObject()
    : ::google::protobuf::Message() {
    SharedCtor();
  }
  
  void PbBumpObject::InitAsDefaultInstance() {
    pose_dims_ = const_cast< ::PbPoseDims*>(&::PbPoseDims::default_instance());
    pin_point_world_ = const_cast< ::PbVec3*>(&::PbVec3::default_instance());
    pin_point_actor_ = const_cast< ::PbVec3*>(&::PbVec3::default_instance());
  }
  
  PbBumpObject::PbBumpObject(const PbBumpObject& from)
    : ::google::protobuf::Message() {
    SharedCtor();
    MergeFrom(from);
  }
  
  void PbBumpObject::SharedCtor() {
    _cached_size_ = 0;
    class_name_ = const_cast< ::std::string*>(&::google::protobuf::internal::kEmptyString);
    type_ = 0u;
    pose_dims_ = NULL;
    text_ = const_cast< ::std::string*>(&::google::protobuf::internal::kEmptyString);
    text_visible_ = false;
    pin_point_world_ = NULL;
    pin_point_actor_ = NULL;
    pinned_ = false;
    ::memset(_has_bits_, 0, sizeof(_has_bits_));
  }
  
  PbBumpObject::~PbBumpObject() {
    SharedDtor();
  }
  
  void PbBumpObject::SharedDtor() {
    if (class_name_ != &::google::protobuf::internal::kEmptyString) {
      delete class_name_;
    }
    if (text_ != &::google::protobuf::internal::kEmptyString) {
      delete text_;
    }
    if (this != default_instance_) {
      delete pose_dims_;
      delete pin_point_world_;
      delete pin_point_actor_;
    }
  }
  
  void PbBumpObject::SetCachedSize(int size) const {
    GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
    _cached_size_ = size;
    GOOGLE_SAFE_CONCURRENT_WRITES_END();
  }
  const ::google::protobuf::Descriptor* PbBumpObject::descriptor() {
    protobuf_AssignDescriptorsOnce();
    return PbBumpObject_descriptor_;
  }
  
  const PbBumpObject& PbBumpObject::default_instance() {
    if (default_instance_ == NULL) protobuf_AddDesc_BumpTop_2eproto();  return *default_instance_;
  }
  
  PbBumpObject* PbBumpObject::default_instance_ = NULL;
  
  PbBumpObject* PbBumpObject::New() const {
    return new PbBumpObject;
  }
  
  void PbBumpObject::Clear() {
    _extensions_.Clear();
    if (_has_bits_[0 / 32] & (0xffu << (0 % 32))) {
      if (has_class_name()) {
        if (class_name_ != &::google::protobuf::internal::kEmptyString) {
          class_name_->clear();
        }
      }
      type_ = 0u;
      if (has_pose_dims()) {
        if (pose_dims_ != NULL) pose_dims_->::PbPoseDims::Clear();
      }
      if (has_text()) {
        if (text_ != &::google::protobuf::internal::kEmptyString) {
          text_->clear();
        }
      }
      text_visible_ = false;
      if (has_pin_point_world()) {
        if (pin_point_world_ != NULL) pin_point_world_->::PbVec3::Clear();
      }
      if (has_pin_point_actor()) {
        if (pin_point_actor_ != NULL) pin_point_actor_->::PbVec3::Clear();
      }
      pinned_ = false;
    }
    ::memset(_has_bits_, 0, sizeof(_has_bits_));
    mutable_unknown_fields()->Clear();
  }
  
  bool PbBumpObject::MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input) {
  #define DO_(EXPRESSION) if (!(EXPRESSION)) return false
    ::google::protobuf::uint32 tag;
    while ((tag = input->ReadTag()) != 0) {
      switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
        // optional string class_name = 1;
        case 1: {
          if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
              ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED) {
            DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                  input, this->mutable_class_name()));
            ::google::protobuf::internal::WireFormat::VerifyUTF8String(
              this->class_name().data(), this->class_name().length(),
              ::google::protobuf::internal::WireFormat::PARSE);
          } else {
            goto handle_uninterpreted;
          }
          if (input->ExpectTag(21)) goto parse_type;
          break;
        }
        
        // optional fixed32 type = 2;
        case 2: {
          if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
              ::google::protobuf::internal::WireFormatLite::WIRETYPE_FIXED32) {
           parse_type:
            DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                     ::google::protobuf::uint32, ::google::protobuf::internal::WireFormatLite::TYPE_FIXED32>(
                   input, &type_)));
            set_has_type();
          } else {
            goto handle_uninterpreted;
          }
          if (input->ExpectTag(26)) goto parse_pose_Dims;
          break;
        }
        
        // optional .PbPoseDims pose_Dims = 3;
        case 3: {
          if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
              ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED) {
           parse_pose_Dims:
            DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
                 input, mutable_pose_dims()));
          } else {
            goto handle_uninterpreted;
          }
          if (input->ExpectTag(82)) goto parse_text;
          break;
        }
        
        // optional string text = 10;
        case 10: {
          if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
              ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED) {
           parse_text:
            DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                  input, this->mutable_text()));
            ::google::protobuf::internal::WireFormat::VerifyUTF8String(
              this->text().data(), this->text().length(),
              ::google::protobuf::internal::WireFormat::PARSE);
          } else {
            goto handle_uninterpreted;
          }
          if (input->ExpectTag(88)) goto parse_text_visible;
          break;
        }
        
        // optional bool text_visible = 11;
        case 11: {
          if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
              ::google::protobuf::internal::WireFormatLite::WIRETYPE_VARINT) {
           parse_text_visible:
            DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                     bool, ::google::protobuf::internal::WireFormatLite::TYPE_BOOL>(
                   input, &text_visible_)));
            set_has_text_visible();
          } else {
            goto handle_uninterpreted;
          }
          if (input->ExpectTag(122)) goto parse_pin_point_world;
          break;
        }
        
        // optional .PbVec3 pin_point_world = 15;
        case 15: {
          if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
              ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED) {
           parse_pin_point_world:
            DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
                 input, mutable_pin_point_world()));
          } else {
            goto handle_uninterpreted;
          }
          if (input->ExpectTag(130)) goto parse_pin_point_actor;
          break;
        }
        
        // optional .PbVec3 pin_point_actor = 16;
        case 16: {
          if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
              ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED) {
           parse_pin_point_actor:
            DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
                 input, mutable_pin_point_actor()));
          } else {
            goto handle_uninterpreted;
          }
          if (input->ExpectTag(136)) goto parse_pinned;
          break;
        }
        
        // optional bool pinned = 17;
        case 17: {
          if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
              ::google::protobuf::internal::WireFormatLite::WIRETYPE_VARINT) {
           parse_pinned:
            DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                     bool, ::google::protobuf::internal::WireFormatLite::TYPE_BOOL>(
                   input, &pinned_)));
            set_has_pinned();
          } else {
            goto handle_uninterpreted;
          }
          if (input->ExpectAtEnd()) return true;
          break;
        }
        
        default: {
        handle_uninterpreted:
          if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
              ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
            return true;
          }
          if ((800u <= tag && tag < 40000u)) {
            DO_(_extensions_.ParseField(tag, input, default_instance_,
                                        mutable_unknown_fields()));
            continue;
          }
          DO_(::google::protobuf::internal::WireFormat::SkipField(
                input, tag, mutable_unknown_fields()));
          break;
        }
      }
    }
    return true;
  #undef DO_
  }
  
  void PbBumpObject::SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const {
    // optional string class_name = 1;
    if (has_class_name()) {
      ::google::protobuf::internal::WireFormat::VerifyUTF8String(
        this->class_name().data(), this->class_name().length(),
        ::google::protobuf::internal::WireFormat::SERIALIZE);
      ::google::protobuf::internal::WireFormatLite::WriteString(
        1, this->class_name(), output);
    }
    
    // optional fixed32 type = 2;
    if (has_type()) {
      ::google::protobuf::internal::WireFormatLite::WriteFixed32(2, this->type(), output);
    }
    
    // optional .PbPoseDims pose_Dims = 3;
    if (has_pose_dims()) {
      ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
        3, this->pose_dims(), output);
    }
    
    // optional string text = 10;
    if (has_text()) {
      ::google::protobuf::internal::WireFormat::VerifyUTF8String(
        this->text().data(), this->text().length(),
        ::google::protobuf::internal::WireFormat::SERIALIZE);
      ::google::protobuf::internal::WireFormatLite::WriteString(
        10, this->text(), output);
    }
    
    // optional bool text_visible = 11;
    if (has_text_visible()) {
      ::google::protobuf::internal::WireFormatLite::WriteBool(11, this->text_visible(), output);
    }
    
    // optional .PbVec3 pin_point_world = 15;
    if (has_pin_point_world()) {
      ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
        15, this->pin_point_world(), output);
    }
    
    // optional .PbVec3 pin_point_actor = 16;
    if (has_pin_point_actor()) {
      ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
        16, this->pin_point_actor(), output);
    }
    
    // optional bool pinned = 17;
    if (has_pinned()) {
      ::google::protobuf::internal::WireFormatLite::WriteBool(17, this->pinned(), output);
    }
    
    // Extension range [100, 5000)
    _extensions_.SerializeWithCachedSizes(
        100, 5000, output);
    
    if (!unknown_fields().empty()) {
      ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
          unknown_fields(), output);
    }
  }
  
  ::google::protobuf::uint8* PbBumpObject::SerializeWithCachedSizesToArray(
      ::google::protobuf::uint8* target) const {
    // optional string class_name = 1;
    if (has_class_name()) {
      ::google::protobuf::internal::WireFormat::VerifyUTF8String(
        this->class_name().data(), this->class_name().length(),
        ::google::protobuf::internal::WireFormat::SERIALIZE);
      target =
        ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
          1, this->class_name(), target);
    }
    
    // optional fixed32 type = 2;
    if (has_type()) {
      target = ::google::protobuf::internal::WireFormatLite::WriteFixed32ToArray(2, this->type(), target);
    }
    
    // optional .PbPoseDims pose_Dims = 3;
    if (has_pose_dims()) {
      target = ::google::protobuf::internal::WireFormatLite::
        WriteMessageNoVirtualToArray(
          3, this->pose_dims(), target);
    }
    
    // optional string text = 10;
    if (has_text()) {
      ::google::protobuf::internal::WireFormat::VerifyUTF8String(
        this->text().data(), this->text().length(),
        ::google::protobuf::internal::WireFormat::SERIALIZE);
      target =
        ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
          10, this->text(), target);
    }
    
    // optional bool text_visible = 11;
    if (has_text_visible()) {
      target = ::google::protobuf::internal::WireFormatLite::WriteBoolToArray(11, this->text_visible(), target);
    }
    
    // optional .PbVec3 pin_point_world = 15;
    if (has_pin_point_world()) {
      target = ::google::protobuf::internal::WireFormatLite::
        WriteMessageNoVirtualToArray(
          15, this->pin_point_world(), target);
    }
    
    // optional .PbVec3 pin_point_actor = 16;
    if (has_pin_point_actor()) {
      target = ::google::protobuf::internal::WireFormatLite::
        WriteMessageNoVirtualToArray(
          16, this->pin_point_actor(), target);
    }
    
    // optional bool pinned = 17;
    if (has_pinned()) {
      target = ::google::protobuf::internal::WireFormatLite::WriteBoolToArray(17, this->pinned(), target);
    }
    
    // Extension range [100, 5000)
    target = _extensions_.SerializeWithCachedSizesToArray(
        100, 5000, target);
    
    if (!unknown_fields().empty()) {
      target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
          unknown_fields(), target);
    }
    return target;
  }
  
  int PbBumpObject::ByteSize() const {
    int total_size = 0;
    
    if (_has_bits_[0 / 32] & (0xffu << (0 % 32))) {
      // optional string class_name = 1;
      if (has_class_name()) {
        total_size += 1 +
          ::google::protobuf::internal::WireFormatLite::StringSize(
            this->class_name());
      }
      
      // optional fixed32 type = 2;
      if (has_type()) {
        total_size += 1 + 4;
      }
      
      // optional .PbPoseDims pose_Dims = 3;
      if (has_pose_dims()) {
        total_size += 1 +
          ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
            this->pose_dims());
      }
      
      // optional string text = 10;
      if (has_text()) {
        total_size += 1 +
          ::google::protobuf::internal::WireFormatLite::StringSize(
            this->text());
      }
      
      // optional bool text_visible = 11;
      if (has_text_visible()) {
        total_size += 1 + 1;
      }
      
      // optional .PbVec3 pin_point_world = 15;
      if (has_pin_point_world()) {
        total_size += 1 +
          ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
            this->pin_point_world());
      }
      
      // optional .PbVec3 pin_point_actor = 16;
      if (has_pin_point_actor()) {
        total_size += 2 +
          ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
            this->pin_point_actor());
      }
      
      // optional bool pinned = 17;
      if (has_pinned()) {
        total_size += 2 + 1;
      }
      
    }
    total_size += _extensions_.ByteSize();
    
    if (!unknown_fields().empty()) {
      total_size +=
        ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
          unknown_fields());
    }
    GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
    _cached_size_ = total_size;
    GOOGLE_SAFE_CONCURRENT_WRITES_END();
    return total_size;
  }
  
  void PbBumpObject::MergeFrom(const ::google::protobuf::Message& from) {
    GOOGLE_CHECK_NE(&from, this);
    const PbBumpObject* source =
      ::google::protobuf::internal::dynamic_cast_if_available<const PbBumpObject*>(
        &from);
    if (source == NULL) {
      ::google::protobuf::internal::ReflectionOps::Merge(from, this);
    } else {
      MergeFrom(*source);
    }
  }
  
  void PbBumpObject::MergeFrom(const PbBumpObject& from) {
    GOOGLE_CHECK_NE(&from, this);
    if (from._has_bits_[0 / 32] & (0xffu << (0 % 32))) {
      if (from.has_class_name()) {
        set_class_name(from.class_name());
      }
      if (from.has_type()) {
        set_type(from.type());
      }
      if (from.has_pose_dims()) {
        mutable_pose_dims()->::PbPoseDims::MergeFrom(from.pose_dims());
      }
      if (from.has_text()) {
        set_text(from.text());
      }
      if (from.has_text_visible()) {
        set_text_visible(from.text_visible());
      }
      if (from.has_pin_point_world()) {
        mutable_pin_point_world()->::PbVec3::MergeFrom(from.pin_point_world());
      }
      if (from.has_pin_point_actor()) {
        mutable_pin_point_actor()->::PbVec3::MergeFrom(from.pin_point_actor());
      }
      if (from.has_pinned()) {
        set_pinned(from.pinned());
      }
    }
    _extensions_.MergeFrom(from._extensions_);
    mutable_unknown_fields()->MergeFrom(from.unknown_fields());
  }
  
  void PbBumpObject::CopyFrom(const ::google::protobuf::Message& from) {
    if (&from == this) return;
    Clear();
    MergeFrom(from);
  }
  
  void PbBumpObject::CopyFrom(const PbBumpObject& from) {
    if (&from == this) return;
    Clear();
    MergeFrom(from);
  }
  
  bool PbBumpObject::IsInitialized() const {
    
    if (has_pose_dims()) {
      if (!this->pose_dims().IsInitialized()) return false;
    }
    if (has_pin_point_world()) {
      if (!this->pin_point_world().IsInitialized()) return false;
    }
    if (has_pin_point_actor()) {
      if (!this->pin_point_actor().IsInitialized()) return false;
    }
    
    if (!_extensions_.IsInitialized()) return false;  return true;
  }
  
  void PbBumpObject::Swap(PbBumpObject* other) {
    if (other != this) {
      std::swap(class_name_, other->class_name_);
      std::swap(type_, other->type_);
      std::swap(pose_dims_, other->pose_dims_);
      std::swap(text_, other->text_);
      std::swap(text_visible_, other->text_visible_);
      std::swap(pin_point_world_, other->pin_point_world_);
      std::swap(pin_point_actor_, other->pin_point_actor_);
      std::swap(pinned_, other->pinned_);
      std::swap(_has_bits_[0], other->_has_bits_[0]);
      _unknown_fields_.Swap(&other->_unknown_fields_);
      std::swap(_cached_size_, other->_cached_size_);
      _extensions_.Swap(&other->_extensions_);
    }
  }
  
  ::google::protobuf::Metadata PbBumpObject::GetMetadata() const {
    protobuf_AssignDescriptorsOnce();
    ::google::protobuf::Metadata metadata;
    metadata.descriptor = PbBumpObject_descriptor_;
    metadata.reflection = PbBumpObject_reflection_;
    return metadata;
  }
  
  
  // ===================================================================
  
  #ifndef _MSC_VER
  const int PbPile_PbPileItem::kItemFieldNumber;
  const int PbPile_PbPileItem::kOriginalWorldPoseFieldNumber;
  #endif  // !_MSC_VER
  
  PbPile_PbPileItem::PbPile_PbPileItem()
    : ::google::protobuf::Message() {
    SharedCtor();
  }
  
  void PbPile_PbPileItem::InitAsDefaultInstance() {
    item_ = const_cast< ::PbBumpObject*>(&::PbBumpObject::default_instance());
    original_world_pose_ = const_cast< ::PbMat34*>(&::PbMat34::default_instance());
  }
  
  PbPile_PbPileItem::PbPile_PbPileItem(const PbPile_PbPileItem& from)
    : ::google::protobuf::Message() {
    SharedCtor();
    MergeFrom(from);
  }
  
  void PbPile_PbPileItem::SharedCtor() {
    _cached_size_ = 0;
    item_ = NULL;
    original_world_pose_ = NULL;
    ::memset(_has_bits_, 0, sizeof(_has_bits_));
  }
  
  PbPile_PbPileItem::~PbPile_PbPileItem() {
    SharedDtor();
  }
  
  void PbPile_PbPileItem::SharedDtor() {
    if (this != default_instance_) {
      delete item_;
      delete original_world_pose_;
    }
  }
  
  void PbPile_PbPileItem::SetCachedSize(int size) const {
    GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
    _cached_size_ = size;
    GOOGLE_SAFE_CONCURRENT_WRITES_END();
  }
  const ::google::protobuf::Descriptor* PbPile_PbPileItem::descriptor() {
    protobuf_AssignDescriptorsOnce();
    return PbPile_PbPileItem_descriptor_;
  }
  
  const PbPile_PbPileItem& PbPile_PbPileItem::default_instance() {
    if (default_instance_ == NULL) protobuf_AddDesc_BumpTop_2eproto();  return *default_instance_;
  }
  
  PbPile_PbPileItem* PbPile_PbPileItem::default_instance_ = NULL;
  
  PbPile_PbPileItem* PbPile_PbPileItem::New() const {
    return new PbPile_PbPileItem;
  }
  
  void PbPile_PbPileItem::Clear() {
    if (_has_bits_[0 / 32] & (0xffu << (0 % 32))) {
      if (has_item()) {
        if (item_ != NULL) item_->::PbBumpObject::Clear();
      }
      if (has_original_world_pose()) {
        if (original_world_pose_ != NULL) original_world_pose_->::PbMat34::Clear();
      }
    }
    ::memset(_has_bits_, 0, sizeof(_has_bits_));
    mutable_unknown_fields()->Clear();
  }
  
  bool PbPile_PbPileItem::MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input) {
  #define DO_(EXPRESSION) if (!(EXPRESSION)) return false
    ::google::protobuf::uint32 tag;
    while ((tag = input->ReadTag()) != 0) {
      switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
        // optional .PbBumpObject item = 1;
        case 1: {
          if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
              ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED) {
            DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
                 input, mutable_item()));
          } else {
            goto handle_uninterpreted;
          }
          if (input->ExpectTag(18)) goto parse_original_world_pose;
          break;
        }
        
        // optional .PbMat34 original_world_pose = 2;
        case 2: {
          if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
              ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED) {
           parse_original_world_pose:
            DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
                 input, mutable_original_world_pose()));
          } else {
            goto handle_uninterpreted;
          }
          if (input->ExpectAtEnd()) return true;
          break;
        }
        
        default: {
        handle_uninterpreted:
          if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
              ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
            return true;
          }
          DO_(::google::protobuf::internal::WireFormat::SkipField(
                input, tag, mutable_unknown_fields()));
          break;
        }
      }
    }
    return true;
  #undef DO_
  }
  
  void PbPile_PbPileItem::SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const {
    // optional .PbBumpObject item = 1;
    if (has_item()) {
      ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
        1, this->item(), output);
    }
    
    // optional .PbMat34 original_world_pose = 2;
    if (has_original_world_pose()) {
      ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
        2, this->original_world_pose(), output);
    }
    
    if (!unknown_fields().empty()) {
      ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
          unknown_fields(), output);
    }
  }
  
  ::google::protobuf::uint8* PbPile_PbPileItem::SerializeWithCachedSizesToArray(
      ::google::protobuf::uint8* target) const {
    // optional .PbBumpObject item = 1;
    if (has_item()) {
      target = ::google::protobuf::internal::WireFormatLite::
        WriteMessageNoVirtualToArray(
          1, this->item(), target);
    }
    
    // optional .PbMat34 original_world_pose = 2;
    if (has_original_world_pose()) {
      target = ::google::protobuf::internal::WireFormatLite::
        WriteMessageNoVirtualToArray(
          2, this->original_world_pose(), target);
    }
    
    if (!unknown_fields().empty()) {
      target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
          unknown_fields(), target);
    }
    return target;
  }
  
  int PbPile_PbPileItem::ByteSize() const {
    int total_size = 0;
    
    if (_has_bits_[0 / 32] & (0xffu << (0 % 32))) {
      // optional .PbBumpObject item = 1;
      if (has_item()) {
        total_size += 1 +
          ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
            this->item());
      }
      
      // optional .PbMat34 original_world_pose = 2;
      if (has_original_world_pose()) {
        total_size += 1 +
          ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
            this->original_world_pose());
      }
      
    }
    if (!unknown_fields().empty()) {
      total_size +=
        ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
          unknown_fields());
    }
    GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
    _cached_size_ = total_size;
    GOOGLE_SAFE_CONCURRENT_WRITES_END();
    return total_size;
  }
  
  void PbPile_PbPileItem::MergeFrom(const ::google::protobuf::Message& from) {
    GOOGLE_CHECK_NE(&from, this);
    const PbPile_PbPileItem* source =
      ::google::protobuf::internal::dynamic_cast_if_available<const PbPile_PbPileItem*>(
        &from);
    if (source == NULL) {
      ::google::protobuf::internal::ReflectionOps::Merge(from, this);
    } else {
      MergeFrom(*source);
    }
  }
  
  void PbPile_PbPileItem::MergeFrom(const PbPile_PbPileItem& from) {
    GOOGLE_CHECK_NE(&from, this);
    if (from._has_bits_[0 / 32] & (0xffu << (0 % 32))) {
      if (from.has_item()) {
        mutable_item()->::PbBumpObject::MergeFrom(from.item());
      }
      if (from.has_original_world_pose()) {
        mutable_original_world_pose()->::PbMat34::MergeFrom(from.original_world_pose());
      }
    }
    mutable_unknown_fields()->MergeFrom(from.unknown_fields());
  }
  
  void PbPile_PbPileItem::CopyFrom(const ::google::protobuf::Message& from) {
    if (&from == this) return;
    Clear();
    MergeFrom(from);
  }
  
  void PbPile_PbPileItem::CopyFrom(const PbPile_PbPileItem& from) {
    if (&from == this) return;
    Clear();
    MergeFrom(from);
  }
  
  bool PbPile_PbPileItem::IsInitialized() const {
    
    if (has_item()) {
      if (!this->item().IsInitialized()) return false;
    }
    if (has_original_world_pose()) {
      if (!this->original_world_pose().IsInitialized()) return false;
    }
    return true;
  }
  
  void PbPile_PbPileItem::Swap(PbPile_PbPileItem* other) {
    if (other != this) {
      std::swap(item_, other->item_);
      std::swap(original_world_pose_, other->original_world_pose_);
      std::swap(_has_bits_[0], other->_has_bits_[0]);
      _unknown_fields_.Swap(&other->_unknown_fields_);
      std::swap(_cached_size_, other->_cached_size_);
    }
  }
  
  ::google::protobuf::Metadata PbPile_PbPileItem::GetMetadata() const {
    protobuf_AssignDescriptorsOnce();
    ::google::protobuf::Metadata metadata;
    metadata.descriptor = PbPile_PbPileItem_descriptor_;
    metadata.reflection = PbPile_PbPileItem_reflection_;
    return metadata;
  }
  
  
  // -------------------------------------------------------------------
  
  #ifndef _MSC_VER
  #endif  // !_MSC_VER
  
  #ifndef _MSC_VER
  const int PbPile::kExtMinTagFieldNumber;
  #endif
  ::google::protobuf::internal::ExtensionIdentifier< ::PbBumpObject,
      ::google::protobuf::internal::PrimitiveTypeTraits< ::google::protobuf::uint32 >, 13, false >
    PbPile::ext_min_tag(kExtMinTagFieldNumber, 0u);
  #ifndef _MSC_VER
  const int PbPile::kChildrenFieldNumber;
  #endif
  ::google::protobuf::internal::ExtensionIdentifier< ::PbBumpObject,
      ::google::protobuf::internal::RepeatedMessageTypeTraits< ::PbPile_PbPileItem >, 11, false >
    PbPile::children(kChildrenFieldNumber, ::PbPile_PbPileItem::default_instance());
  PbPile::PbPile()
    : ::google::protobuf::Message() {
    SharedCtor();
  }
  
  void PbPile::InitAsDefaultInstance() {
  }
  
  PbPile::PbPile(const PbPile& from)
    : ::google::protobuf::Message() {
    SharedCtor();
    MergeFrom(from);
  }
  
  void PbPile::SharedCtor() {
    _cached_size_ = 0;
    ::memset(_has_bits_, 0, sizeof(_has_bits_));
  }
  
  PbPile::~PbPile() {
    SharedDtor();
  }
  
  void PbPile::SharedDtor() {
    if (this != default_instance_) {
    }
  }
  
  void PbPile::SetCachedSize(int size) const {
    GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
    _cached_size_ = size;
    GOOGLE_SAFE_CONCURRENT_WRITES_END();
  }
  const ::google::protobuf::Descriptor* PbPile::descriptor() {
    protobuf_AssignDescriptorsOnce();
    return PbPile_descriptor_;
  }
  
  const PbPile& PbPile::default_instance() {
    if (default_instance_ == NULL) protobuf_AddDesc_BumpTop_2eproto();  return *default_instance_;
  }
  
  PbPile* PbPile::default_instance_ = NULL;
  
  PbPile* PbPile::New() const {
    return new PbPile;
  }
  
  void PbPile::Clear() {
    ::memset(_has_bits_, 0, sizeof(_has_bits_));
    mutable_unknown_fields()->Clear();
  }
  
  bool PbPile::MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input) {
  #define DO_(EXPRESSION) if (!(EXPRESSION)) return false
    ::google::protobuf::uint32 tag;
    while ((tag = input->ReadTag()) != 0) {
      if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
          ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
        return true;
      }
      DO_(::google::protobuf::internal::WireFormat::SkipField(
            input, tag, mutable_unknown_fields()));
    }
    return true;
  #undef DO_
  }
  
  void PbPile::SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const {
    if (!unknown_fields().empty()) {
      ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
          unknown_fields(), output);
    }
  }
  
  ::google::protobuf::uint8* PbPile::SerializeWithCachedSizesToArray(
      ::google::protobuf::uint8* target) const {
    if (!unknown_fields().empty()) {
      target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
          unknown_fields(), target);
    }
    return target;
  }
  
  int PbPile::ByteSize() const {
    int total_size = 0;
    
    if (!unknown_fields().empty()) {
      total_size +=
        ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
          unknown_fields());
    }
    GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
    _cached_size_ = total_size;
    GOOGLE_SAFE_CONCURRENT_WRITES_END();
    return total_size;
  }
  
  void PbPile::MergeFrom(const ::google::protobuf::Message& from) {
    GOOGLE_CHECK_NE(&from, this);
    const PbPile* source =
      ::google::protobuf::internal::dynamic_cast_if_available<const PbPile*>(
        &from);
    if (source == NULL) {
      ::google::protobuf::internal::ReflectionOps::Merge(from, this);
    } else {
      MergeFrom(*source);
    }
  }
  
  void PbPile::MergeFrom(const PbPile& from) {
    GOOGLE_CHECK_NE(&from, this);
    mutable_unknown_fields()->MergeFrom(from.unknown_fields());
  }
  
  void PbPile::CopyFrom(const ::google::protobuf::Message& from) {
    if (&from == this) return;
    Clear();
    MergeFrom(from);
  }
  
  void PbPile::CopyFrom(const PbPile& from) {
    if (&from == this) return;
    Clear();
    MergeFrom(from);
  }
  
  bool PbPile::IsInitialized() const {
    
    return true;
  }
  
  void PbPile::Swap(PbPile* other) {
    if (other != this) {
      _unknown_fields_.Swap(&other->_unknown_fields_);
      std::swap(_cached_size_, other->_cached_size_);
    }
  }
  
  ::google::protobuf::Metadata PbPile::GetMetadata() const {
    protobuf_AssignDescriptorsOnce();
    ::google::protobuf::Metadata metadata;
    metadata.descriptor = PbPile_descriptor_;
    metadata.reflection = PbPile_reflection_;
    return metadata;
  }
  
  
  // ===================================================================
  
  #ifndef _MSC_VER
  #endif  // !_MSC_VER
  
  #ifndef _MSC_VER
  const int PbActor::kExtMinTagFieldNumber;
  #endif
  ::google::protobuf::internal::ExtensionIdentifier< ::PbBumpObject,
      ::google::protobuf::internal::PrimitiveTypeTraits< ::google::protobuf::uint32 >, 13, false >
    PbActor::ext_min_tag(kExtMinTagFieldNumber, 0u);
  PbActor::PbActor()
    : ::google::protobuf::Message() {
    SharedCtor();
  }
  
  void PbActor::InitAsDefaultInstance() {
  }
  
  PbActor::PbActor(const PbActor& from)
    : ::google::protobuf::Message() {
    SharedCtor();
    MergeFrom(from);
  }
  
  void PbActor::SharedCtor() {
    _cached_size_ = 0;
    ::memset(_has_bits_, 0, sizeof(_has_bits_));
  }
  
  PbActor::~PbActor() {
    SharedDtor();
  }
  
  void PbActor::SharedDtor() {
    if (this != default_instance_) {
    }
  }
  
  void PbActor::SetCachedSize(int size) const {
    GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
    _cached_size_ = size;
    GOOGLE_SAFE_CONCURRENT_WRITES_END();
  }
  const ::google::protobuf::Descriptor* PbActor::descriptor() {
    protobuf_AssignDescriptorsOnce();
    return PbActor_descriptor_;
  }
  
  const PbActor& PbActor::default_instance() {
    if (default_instance_ == NULL) protobuf_AddDesc_BumpTop_2eproto();  return *default_instance_;
  }
  
  PbActor* PbActor::default_instance_ = NULL;
  
  PbActor* PbActor::New() const {
    return new PbActor;
  }
  
  void PbActor::Clear() {
    ::memset(_has_bits_, 0, sizeof(_has_bits_));
    mutable_unknown_fields()->Clear();
  }
  
  bool PbActor::MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input) {
  #define DO_(EXPRESSION) if (!(EXPRESSION)) return false
    ::google::protobuf::uint32 tag;
    while ((tag = input->ReadTag()) != 0) {
      if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
          ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
        return true;
      }
      DO_(::google::protobuf::internal::WireFormat::SkipField(
            input, tag, mutable_unknown_fields()));
    }
    return true;
  #undef DO_
  }
  
  void PbActor::SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const {
    if (!unknown_fields().empty()) {
      ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
          unknown_fields(), output);
    }
  }
  
  ::google::protobuf::uint8* PbActor::SerializeWithCachedSizesToArray(
      ::google::protobuf::uint8* target) const {
    if (!unknown_fields().empty()) {
      target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
          unknown_fields(), target);
    }
    return target;
  }
  
  int PbActor::ByteSize() const {
    int total_size = 0;
    
    if (!unknown_fields().empty()) {
      total_size +=
        ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
          unknown_fields());
    }
    GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
    _cached_size_ = total_size;
    GOOGLE_SAFE_CONCURRENT_WRITES_END();
    return total_size;
  }
  
  void PbActor::MergeFrom(const ::google::protobuf::Message& from) {
    GOOGLE_CHECK_NE(&from, this);
    const PbActor* source =
      ::google::protobuf::internal::dynamic_cast_if_available<const PbActor*>(
        &from);
    if (source == NULL) {
      ::google::protobuf::internal::ReflectionOps::Merge(from, this);
    } else {
      MergeFrom(*source);
    }
  }
  
  void PbActor::MergeFrom(const PbActor& from) {
    GOOGLE_CHECK_NE(&from, this);
    mutable_unknown_fields()->MergeFrom(from.unknown_fields());
  }
  
  void PbActor::CopyFrom(const ::google::protobuf::Message& from) {
    if (&from == this) return;
    Clear();
    MergeFrom(from);
  }
  
  void PbActor::CopyFrom(const PbActor& from) {
    if (&from == this) return;
    Clear();
    MergeFrom(from);
  }
  
  bool PbActor::IsInitialized() const {
    
    return true;
  }
  
  void PbActor::Swap(PbActor* other) {
    if (other != this) {
      _unknown_fields_.Swap(&other->_unknown_fields_);
      std::swap(_cached_size_, other->_cached_size_);
    }
  }
  
  ::google::protobuf::Metadata PbActor::GetMetadata() const {
    protobuf_AssignDescriptorsOnce();
    ::google::protobuf::Metadata metadata;
    metadata.descriptor = PbActor_descriptor_;
    metadata.reflection = PbActor_reflection_;
    return metadata;
  }
  
  
  // ===================================================================
  
  #ifndef _MSC_VER
  const int PbFileSystemActor_PbCachedFilePathDims::kFilePathFieldNumber;
  const int PbFileSystemActor_PbCachedFilePathDims::kDimsFieldNumber;
  #endif  // !_MSC_VER
  
  PbFileSystemActor_PbCachedFilePathDims::PbFileSystemActor_PbCachedFilePathDims()
    : ::google::protobuf::Message() {
    SharedCtor();
  }
  
  void PbFileSystemActor_PbCachedFilePathDims::InitAsDefaultInstance() {
    dims_ = const_cast< ::PbVec3*>(&::PbVec3::default_instance());
  }
  
  PbFileSystemActor_PbCachedFilePathDims::PbFileSystemActor_PbCachedFilePathDims(const PbFileSystemActor_PbCachedFilePathDims& from)
    : ::google::protobuf::Message() {
    SharedCtor();
    MergeFrom(from);
  }
  
  void PbFileSystemActor_PbCachedFilePathDims::SharedCtor() {
    _cached_size_ = 0;
    file_path_ = const_cast< ::std::string*>(&::google::protobuf::internal::kEmptyString);
    dims_ = NULL;
    ::memset(_has_bits_, 0, sizeof(_has_bits_));
  }
  
  PbFileSystemActor_PbCachedFilePathDims::~PbFileSystemActor_PbCachedFilePathDims() {
    SharedDtor();
  }
  
  void PbFileSystemActor_PbCachedFilePathDims::SharedDtor() {
    if (file_path_ != &::google::protobuf::internal::kEmptyString) {
      delete file_path_;
    }
    if (this != default_instance_) {
      delete dims_;
    }
  }
  
  void PbFileSystemActor_PbCachedFilePathDims::SetCachedSize(int size) const {
    GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
    _cached_size_ = size;
    GOOGLE_SAFE_CONCURRENT_WRITES_END();
  }
  const ::google::protobuf::Descriptor* PbFileSystemActor_PbCachedFilePathDims::descriptor() {
    protobuf_AssignDescriptorsOnce();
    return PbFileSystemActor_PbCachedFilePathDims_descriptor_;
  }
  
  const PbFileSystemActor_PbCachedFilePathDims& PbFileSystemActor_PbCachedFilePathDims::default_instance() {
    if (default_instance_ == NULL) protobuf_AddDesc_BumpTop_2eproto();  return *default_instance_;
  }
  
  PbFileSystemActor_PbCachedFilePathDims* PbFileSystemActor_PbCachedFilePathDims::default_instance_ = NULL;
  
  PbFileSystemActor_PbCachedFilePathDims* PbFileSystemActor_PbCachedFilePathDims::New() const {
    return new PbFileSystemActor_PbCachedFilePathDims;
  }
  
  void PbFileSystemActor_PbCachedFilePathDims::Clear() {
    if (_has_bits_[0 / 32] & (0xffu << (0 % 32))) {
      if (has_file_path()) {
        if (file_path_ != &::google::protobuf::internal::kEmptyString) {
          file_path_->clear();
        }
      }
      if (has_dims()) {
        if (dims_ != NULL) dims_->::PbVec3::Clear();
      }
    }
    ::memset(_has_bits_, 0, sizeof(_has_bits_));
    mutable_unknown_fields()->Clear();
  }
  
  bool PbFileSystemActor_PbCachedFilePathDims::MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input) {
  #define DO_(EXPRESSION) if (!(EXPRESSION)) return false
    ::google::protobuf::uint32 tag;
    while ((tag = input->ReadTag()) != 0) {
      switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
        // optional string file_path = 1;
        case 1: {
          if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
              ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED) {
            DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                  input, this->mutable_file_path()));
            ::google::protobuf::internal::WireFormat::VerifyUTF8String(
              this->file_path().data(), this->file_path().length(),
              ::google::protobuf::internal::WireFormat::PARSE);
          } else {
            goto handle_uninterpreted;
          }
          if (input->ExpectTag(18)) goto parse_dims;
          break;
        }
        
        // optional .PbVec3 dims = 2;
        case 2: {
          if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
              ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED) {
           parse_dims:
            DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
                 input, mutable_dims()));
          } else {
            goto handle_uninterpreted;
          }
          if (input->ExpectAtEnd()) return true;
          break;
        }
        
        default: {
        handle_uninterpreted:
          if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
              ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
            return true;
          }
          DO_(::google::protobuf::internal::WireFormat::SkipField(
                input, tag, mutable_unknown_fields()));
          break;
        }
      }
    }
    return true;
  #undef DO_
  }
  
  void PbFileSystemActor_PbCachedFilePathDims::SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const {
    // optional string file_path = 1;
    if (has_file_path()) {
      ::google::protobuf::internal::WireFormat::VerifyUTF8String(
        this->file_path().data(), this->file_path().length(),
        ::google::protobuf::internal::WireFormat::SERIALIZE);
      ::google::protobuf::internal::WireFormatLite::WriteString(
        1, this->file_path(), output);
    }
    
    // optional .PbVec3 dims = 2;
    if (has_dims()) {
      ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
        2, this->dims(), output);
    }
    
    if (!unknown_fields().empty()) {
      ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
          unknown_fields(), output);
    }
  }
  
  ::google::protobuf::uint8* PbFileSystemActor_PbCachedFilePathDims::SerializeWithCachedSizesToArray(
      ::google::protobuf::uint8* target) const {
    // optional string file_path = 1;
    if (has_file_path()) {
      ::google::protobuf::internal::WireFormat::VerifyUTF8String(
        this->file_path().data(), this->file_path().length(),
        ::google::protobuf::internal::WireFormat::SERIALIZE);
      target =
        ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
          1, this->file_path(), target);
    }
    
    // optional .PbVec3 dims = 2;
    if (has_dims()) {
      target = ::google::protobuf::internal::WireFormatLite::
        WriteMessageNoVirtualToArray(
          2, this->dims(), target);
    }
    
    if (!unknown_fields().empty()) {
      target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
          unknown_fields(), target);
    }
    return target;
  }
  
  int PbFileSystemActor_PbCachedFilePathDims::ByteSize() const {
    int total_size = 0;
    
    if (_has_bits_[0 / 32] & (0xffu << (0 % 32))) {
      // optional string file_path = 1;
      if (has_file_path()) {
        total_size += 1 +
          ::google::protobuf::internal::WireFormatLite::StringSize(
            this->file_path());
      }
      
      // optional .PbVec3 dims = 2;
      if (has_dims()) {
        total_size += 1 +
          ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
            this->dims());
      }
      
    }
    if (!unknown_fields().empty()) {
      total_size +=
        ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
          unknown_fields());
    }
    GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
    _cached_size_ = total_size;
    GOOGLE_SAFE_CONCURRENT_WRITES_END();
    return total_size;
  }
  
  void PbFileSystemActor_PbCachedFilePathDims::MergeFrom(const ::google::protobuf::Message& from) {
    GOOGLE_CHECK_NE(&from, this);
    const PbFileSystemActor_PbCachedFilePathDims* source =
      ::google::protobuf::internal::dynamic_cast_if_available<const PbFileSystemActor_PbCachedFilePathDims*>(
        &from);
    if (source == NULL) {
      ::google::protobuf::internal::ReflectionOps::Merge(from, this);
    } else {
      MergeFrom(*source);
    }
  }
  
  void PbFileSystemActor_PbCachedFilePathDims::MergeFrom(const PbFileSystemActor_PbCachedFilePathDims& from) {
    GOOGLE_CHECK_NE(&from, this);
    if (from._has_bits_[0 / 32] & (0xffu << (0 % 32))) {
      if (from.has_file_path()) {
        set_file_path(from.file_path());
      }
      if (from.has_dims()) {
        mutable_dims()->::PbVec3::MergeFrom(from.dims());
      }
    }
    mutable_unknown_fields()->MergeFrom(from.unknown_fields());
  }
  
  void PbFileSystemActor_PbCachedFilePathDims::CopyFrom(const ::google::protobuf::Message& from) {
    if (&from == this) return;
    Clear();
    MergeFrom(from);
  }
  
  void PbFileSystemActor_PbCachedFilePathDims::CopyFrom(const PbFileSystemActor_PbCachedFilePathDims& from) {
    if (&from == this) return;
    Clear();
    MergeFrom(from);
  }
  
  bool PbFileSystemActor_PbCachedFilePathDims::IsInitialized() const {
    
    if (has_dims()) {
      if (!this->dims().IsInitialized()) return false;
    }
    return true;
  }
  
  void PbFileSystemActor_PbCachedFilePathDims::Swap(PbFileSystemActor_PbCachedFilePathDims* other) {
    if (other != this) {
      std::swap(file_path_, other->file_path_);
      std::swap(dims_, other->dims_);
      std::swap(_has_bits_[0], other->_has_bits_[0]);
      _unknown_fields_.Swap(&other->_unknown_fields_);
      std::swap(_cached_size_, other->_cached_size_);
    }
  }
  
  ::google::protobuf::Metadata PbFileSystemActor_PbCachedFilePathDims::GetMetadata() const {
    protobuf_AssignDescriptorsOnce();
    ::google::protobuf::Metadata metadata;
    metadata.descriptor = PbFileSystemActor_PbCachedFilePathDims_descriptor_;
    metadata.reflection = PbFileSystemActor_PbCachedFilePathDims_reflection_;
    return metadata;
  }
  
  
  // -------------------------------------------------------------------
  
  #ifndef _MSC_VER
  #endif  // !_MSC_VER
  
  #ifndef _MSC_VER
  const int PbFileSystemActor::kExtMinTagFieldNumber;
  #endif
  ::google::protobuf::internal::ExtensionIdentifier< ::PbBumpObject,
      ::google::protobuf::internal::PrimitiveTypeTraits< ::google::protobuf::uint32 >, 13, false >
    PbFileSystemActor::ext_min_tag(kExtMinTagFieldNumber, 0u);
  const ::std::string PbFileSystemActor_full_path_default("");
  #ifndef _MSC_VER
  const int PbFileSystemActor::kFullPathFieldNumber;
  #endif
  ::google::protobuf::internal::ExtensionIdentifier< ::PbBumpObject,
      ::google::protobuf::internal::StringTypeTraits, 9, false >
    PbFileSystemActor::full_path(kFullPathFieldNumber, PbFileSystemActor_full_path_default);
  const ::std::string PbFileSystemActor_launch_override_path_default("");
  #ifndef _MSC_VER
  const int PbFileSystemActor::kLaunchOverridePathFieldNumber;
  #endif
  ::google::protobuf::internal::ExtensionIdentifier< ::PbBumpObject,
      ::google::protobuf::internal::StringTypeTraits, 9, false >
    PbFileSystemActor::launch_override_path(kLaunchOverridePathFieldNumber, PbFileSystemActor_launch_override_path_default);
  const ::std::string PbFileSystemActor_texture_override_path_default("");
  #ifndef _MSC_VER
  const int PbFileSystemActor::kTextureOverridePathFieldNumber;
  #endif
  ::google::protobuf::internal::ExtensionIdentifier< ::PbBumpObject,
      ::google::protobuf::internal::StringTypeTraits, 9, false >
    PbFileSystemActor::texture_override_path(kTextureOverridePathFieldNumber, PbFileSystemActor_texture_override_path_default);
  #ifndef _MSC_VER
  const int PbFileSystemActor::kPileizedFieldNumber;
  #endif
  ::google::protobuf::internal::ExtensionIdentifier< ::PbBumpObject,
      ::google::protobuf::internal::PrimitiveTypeTraits< bool >, 8, false >
    PbFileSystemActor::pileized(kPileizedFieldNumber, false);
  #ifndef _MSC_VER
  const int PbFileSystemActor::kThumbnailizedFieldNumber;
  #endif
  ::google::protobuf::internal::ExtensionIdentifier< ::PbBumpObject,
      ::google::protobuf::internal::PrimitiveTypeTraits< bool >, 8, false >
    PbFileSystemActor::thumbnailized(kThumbnailizedFieldNumber, false);
  #ifndef _MSC_VER
  const int PbFileSystemActor::kLaunchCountFieldNumber;
  #endif
  ::google::protobuf::internal::ExtensionIdentifier< ::PbBumpObject,
      ::google::protobuf::internal::PrimitiveTypeTraits< ::google::protobuf::uint32 >, 13, false >
    PbFileSystemActor::launch_count(kLaunchCountFieldNumber, 0u);
  #ifndef _MSC_VER
  const int PbFileSystemActor::kPrevPileizedChildrenDimsFieldNumber;
  #endif
  ::google::protobuf::internal::ExtensionIdentifier< ::PbBumpObject,
      ::google::protobuf::internal::RepeatedMessageTypeTraits< ::PbFileSystemActor_PbCachedFilePathDims >, 11, false >
    PbFileSystemActor::prev_pileized_children_dims(kPrevPileizedChildrenDimsFieldNumber, ::PbFileSystemActor_PbCachedFilePathDims::default_instance());
  PbFileSystemActor::PbFileSystemActor()
    : ::google::protobuf::Message() {
    SharedCtor();
  }
  
  void PbFileSystemActor::InitAsDefaultInstance() {
  }
  
  PbFileSystemActor::PbFileSystemActor(const PbFileSystemActor& from)
    : ::google::protobuf::Message() {
    SharedCtor();
    MergeFrom(from);
  }
  
  void PbFileSystemActor::SharedCtor() {
    _cached_size_ = 0;
    ::memset(_has_bits_, 0, sizeof(_has_bits_));
  }
  
  PbFileSystemActor::~PbFileSystemActor() {
    SharedDtor();
  }
  
  void PbFileSystemActor::SharedDtor() {
    if (this != default_instance_) {
    }
  }
  
  void PbFileSystemActor::SetCachedSize(int size) const {
    GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
    _cached_size_ = size;
    GOOGLE_SAFE_CONCURRENT_WRITES_END();
  }
  const ::google::protobuf::Descriptor* PbFileSystemActor::descriptor() {
    protobuf_AssignDescriptorsOnce();
    return PbFileSystemActor_descriptor_;
  }
  
  const PbFileSystemActor& PbFileSystemActor::default_instance() {
    if (default_instance_ == NULL) protobuf_AddDesc_BumpTop_2eproto();  return *default_instance_;
  }
  
  PbFileSystemActor* PbFileSystemActor::default_instance_ = NULL;
  
  PbFileSystemActor* PbFileSystemActor::New() const {
    return new PbFileSystemActor;
  }
  
  void PbFileSystemActor::Clear() {
    ::memset(_has_bits_, 0, sizeof(_has_bits_));
    mutable_unknown_fields()->Clear();
  }
  
  bool PbFileSystemActor::MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input) {
  #define DO_(EXPRESSION) if (!(EXPRESSION)) return false
    ::google::protobuf::uint32 tag;
    while ((tag = input->ReadTag()) != 0) {
      if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
          ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
        return true;
      }
      DO_(::google::protobuf::internal::WireFormat::SkipField(
            input, tag, mutable_unknown_fields()));
    }
    return true;
  #undef DO_
  }
  
  void PbFileSystemActor::SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const {
    if (!unknown_fields().empty()) {
      ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
          unknown_fields(), output);
    }
  }
  
  ::google::protobuf::uint8* PbFileSystemActor::SerializeWithCachedSizesToArray(
      ::google::protobuf::uint8* target) const {
    if (!unknown_fields().empty()) {
      target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
          unknown_fields(), target);
    }
    return target;
  }
  
  int PbFileSystemActor::ByteSize() const {
    int total_size = 0;
    
    if (!unknown_fields().empty()) {
      total_size +=
        ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
          unknown_fields());
    }
    GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
    _cached_size_ = total_size;
    GOOGLE_SAFE_CONCURRENT_WRITES_END();
    return total_size;
  }
  
  void PbFileSystemActor::MergeFrom(const ::google::protobuf::Message& from) {
    GOOGLE_CHECK_NE(&from, this);
    const PbFileSystemActor* source =
      ::google::protobuf::internal::dynamic_cast_if_available<const PbFileSystemActor*>(
        &from);
    if (source == NULL) {
      ::google::protobuf::internal::ReflectionOps::Merge(from, this);
    } else {
      MergeFrom(*source);
    }
  }
  
  void PbFileSystemActor::MergeFrom(const PbFileSystemActor& from) {
    GOOGLE_CHECK_NE(&from, this);
    mutable_unknown_fields()->MergeFrom(from.unknown_fields());
  }
  
  void PbFileSystemActor::CopyFrom(const ::google::protobuf::Message& from) {
    if (&from == this) return;
    Clear();
    MergeFrom(from);
  }
  
  void PbFileSystemActor::CopyFrom(const PbFileSystemActor& from) {
    if (&from == this) return;
    Clear();
    MergeFrom(from);
  }
  
  bool PbFileSystemActor::IsInitialized() const {
    
    return true;
  }
  
  void PbFileSystemActor::Swap(PbFileSystemActor* other) {
    if (other != this) {
      _unknown_fields_.Swap(&other->_unknown_fields_);
      std::swap(_cached_size_, other->_cached_size_);
    }
  }
  
  ::google::protobuf::Metadata PbFileSystemActor::GetMetadata() const {
    protobuf_AssignDescriptorsOnce();
    ::google::protobuf::Metadata metadata;
    metadata.descriptor = PbFileSystemActor_descriptor_;
    metadata.reflection = PbFileSystemActor_reflection_;
    return metadata;
  }
  
  
  // ===================================================================
  
  #ifndef _MSC_VER
  #endif  // !_MSC_VER
  
  #ifndef _MSC_VER
  const int PbCustomActor::kExtMinTagFieldNumber;
  #endif
  ::google::protobuf::internal::ExtensionIdentifier< ::PbBumpObject,
      ::google::protobuf::internal::PrimitiveTypeTraits< ::google::protobuf::uint32 >, 13, false >
    PbCustomActor::ext_min_tag(kExtMinTagFieldNumber, 0u);
  const ::std::string PbCustomActor_impl_class_name_default("");
  #ifndef _MSC_VER
  const int PbCustomActor::kImplClassNameFieldNumber;
  #endif
  ::google::protobuf::internal::ExtensionIdentifier< ::PbBumpObject,
      ::google::protobuf::internal::StringTypeTraits, 9, false >
    PbCustomActor::impl_class_name(kImplClassNameFieldNumber, PbCustomActor_impl_class_name_default);
  PbCustomActor::PbCustomActor()
    : ::google::protobuf::Message() {
    SharedCtor();
  }
  
  void PbCustomActor::InitAsDefaultInstance() {
  }
  
  PbCustomActor::PbCustomActor(const PbCustomActor& from)
    : ::google::protobuf::Message() {
    SharedCtor();
    MergeFrom(from);
  }
  
  void PbCustomActor::SharedCtor() {
    _cached_size_ = 0;
    ::memset(_has_bits_, 0, sizeof(_has_bits_));
  }
  
  PbCustomActor::~PbCustomActor() {
    SharedDtor();
  }
  
  void PbCustomActor::SharedDtor() {
    if (this != default_instance_) {
    }
  }
  
  void PbCustomActor::SetCachedSize(int size) const {
    GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
    _cached_size_ = size;
    GOOGLE_SAFE_CONCURRENT_WRITES_END();
  }
  const ::google::protobuf::Descriptor* PbCustomActor::descriptor() {
    protobuf_AssignDescriptorsOnce();
    return PbCustomActor_descriptor_;
  }
  
  const PbCustomActor& PbCustomActor::default_instance() {
    if (default_instance_ == NULL) protobuf_AddDesc_BumpTop_2eproto();  return *default_instance_;
  }
  
  PbCustomActor* PbCustomActor::default_instance_ = NULL;
  
  PbCustomActor* PbCustomActor::New() const {
    return new PbCustomActor;
  }
  
  void PbCustomActor::Clear() {
    ::memset(_has_bits_, 0, sizeof(_has_bits_));
    mutable_unknown_fields()->Clear();
  }
  
  bool PbCustomActor::MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input) {
  #define DO_(EXPRESSION) if (!(EXPRESSION)) return false
    ::google::protobuf::uint32 tag;
    while ((tag = input->ReadTag()) != 0) {
      if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
          ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
        return true;
      }
      DO_(::google::protobuf::internal::WireFormat::SkipField(
            input, tag, mutable_unknown_fields()));
    }
    return true;
  #undef DO_
  }
  
  void PbCustomActor::SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const {
    if (!unknown_fields().empty()) {
      ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
          unknown_fields(), output);
    }
  }
  
  ::google::protobuf::uint8* PbCustomActor::SerializeWithCachedSizesToArray(
      ::google::protobuf::uint8* target) const {
    if (!unknown_fields().empty()) {
      target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
          unknown_fields(), target);
    }
    return target;
  }
  
  int PbCustomActor::ByteSize() const {
    int total_size = 0;
    
    if (!unknown_fields().empty()) {
      total_size +=
        ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
          unknown_fields());
    }
    GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
    _cached_size_ = total_size;
    GOOGLE_SAFE_CONCURRENT_WRITES_END();
    return total_size;
  }
  
  void PbCustomActor::MergeFrom(const ::google::protobuf::Message& from) {
    GOOGLE_CHECK_NE(&from, this);
    const PbCustomActor* source =
      ::google::protobuf::internal::dynamic_cast_if_available<const PbCustomActor*>(
        &from);
    if (source == NULL) {
      ::google::protobuf::internal::ReflectionOps::Merge(from, this);
    } else {
      MergeFrom(*source);
    }
  }
  
  void PbCustomActor::MergeFrom(const PbCustomActor& from) {
    GOOGLE_CHECK_NE(&from, this);
    mutable_unknown_fields()->MergeFrom(from.unknown_fields());
  }
  
  void PbCustomActor::CopyFrom(const ::google::protobuf::Message& from) {
    if (&from == this) return;
    Clear();
    MergeFrom(from);
  }
  
  void PbCustomActor::CopyFrom(const PbCustomActor& from) {
    if (&from == this) return;
    Clear();
    MergeFrom(from);
  }
  
  bool PbCustomActor::IsInitialized() const {
    
    return true;
  }
  
  void PbCustomActor::Swap(PbCustomActor* other) {
    if (other != this) {
      _unknown_fields_.Swap(&other->_unknown_fields_);
      std::swap(_cached_size_, other->_cached_size_);
    }
  }
  
  ::google::protobuf::Metadata PbCustomActor::GetMetadata() const {
    protobuf_AssignDescriptorsOnce();
    ::google::protobuf::Metadata metadata;
    metadata.descriptor = PbCustomActor_descriptor_;
    metadata.reflection = PbCustomActor_reflection_;
    return metadata;
  }
  
  
  // ===================================================================
  
  #ifndef _MSC_VER
  #endif  // !_MSC_VER
  
  #ifndef _MSC_VER
  const int PbPhotoFrameActor::kExtMinTagFieldNumber;
  #endif
  ::google::protobuf::internal::ExtensionIdentifier< ::PbBumpObject,
      ::google::protobuf::internal::PrimitiveTypeTraits< ::google::protobuf::uint32 >, 13, false >
    PbPhotoFrameActor::ext_min_tag(kExtMinTagFieldNumber, 0u);
  #ifndef _MSC_VER
  const int PbPhotoFrameActor::kSourceTypeFieldNumber;
  #endif
  ::google::protobuf::internal::ExtensionIdentifier< ::PbBumpObject,
      ::google::protobuf::internal::PrimitiveTypeTraits< ::google::protobuf::uint32 >, 13, false >
    PbPhotoFrameActor::source_type(kSourceTypeFieldNumber, 0u);
  #ifndef _MSC_VER
  const int PbPhotoFrameActor::kSourceFieldNumber;
  #endif
  ::google::protobuf::internal::ExtensionIdentifier< ::PbBumpObject,
      ::google::protobuf::internal::MessageTypeTraits< ::PbPhotoFrameSource >, 11, false >
    PbPhotoFrameActor::source(kSourceFieldNumber, ::PbPhotoFrameSource::default_instance());
  PbPhotoFrameActor::PbPhotoFrameActor()
    : ::google::protobuf::Message() {
    SharedCtor();
  }
  
  void PbPhotoFrameActor::InitAsDefaultInstance() {
  }
  
  PbPhotoFrameActor::PbPhotoFrameActor(const PbPhotoFrameActor& from)
    : ::google::protobuf::Message() {
    SharedCtor();
    MergeFrom(from);
  }
  
  void PbPhotoFrameActor::SharedCtor() {
    _cached_size_ = 0;
    ::memset(_has_bits_, 0, sizeof(_has_bits_));
  }
  
  PbPhotoFrameActor::~PbPhotoFrameActor() {
    SharedDtor();
  }
  
  void PbPhotoFrameActor::SharedDtor() {
    if (this != default_instance_) {
    }
  }
  
  void PbPhotoFrameActor::SetCachedSize(int size) const {
    GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
    _cached_size_ = size;
    GOOGLE_SAFE_CONCURRENT_WRITES_END();
  }
  const ::google::protobuf::Descriptor* PbPhotoFrameActor::descriptor() {
    protobuf_AssignDescriptorsOnce();
    return PbPhotoFrameActor_descriptor_;
  }
  
  const PbPhotoFrameActor& PbPhotoFrameActor::default_instance() {
    if (default_instance_ == NULL) protobuf_AddDesc_BumpTop_2eproto();  return *default_instance_;
  }
  
  PbPhotoFrameActor* PbPhotoFrameActor::default_instance_ = NULL;
  
  PbPhotoFrameActor* PbPhotoFrameActor::New() const {
    return new PbPhotoFrameActor;
  }
  
  void PbPhotoFrameActor::Clear() {
    ::memset(_has_bits_, 0, sizeof(_has_bits_));
    mutable_unknown_fields()->Clear();
  }
  
  bool PbPhotoFrameActor::MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input) {
  #define DO_(EXPRESSION) if (!(EXPRESSION)) return false
    ::google::protobuf::uint32 tag;
    while ((tag = input->ReadTag()) != 0) {
      if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
          ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
        return true;
      }
      DO_(::google::protobuf::internal::WireFormat::SkipField(
            input, tag, mutable_unknown_fields()));
    }
    return true;
  #undef DO_
  }
  
  void PbPhotoFrameActor::SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const {
    if (!unknown_fields().empty()) {
      ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
          unknown_fields(), output);
    }
  }
  
  ::google::protobuf::uint8* PbPhotoFrameActor::SerializeWithCachedSizesToArray(
      ::google::protobuf::uint8* target) const {
    if (!unknown_fields().empty()) {
      target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
          unknown_fields(), target);
    }
    return target;
  }
  
  int PbPhotoFrameActor::ByteSize() const {
    int total_size = 0;
    
    if (!unknown_fields().empty()) {
      total_size +=
        ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
          unknown_fields());
    }
    GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
    _cached_size_ = total_size;
    GOOGLE_SAFE_CONCURRENT_WRITES_END();
    return total_size;
  }
  
  void PbPhotoFrameActor::MergeFrom(const ::google::protobuf::Message& from) {
    GOOGLE_CHECK_NE(&from, this);
    const PbPhotoFrameActor* source =
      ::google::protobuf::internal::dynamic_cast_if_available<const PbPhotoFrameActor*>(
        &from);
    if (source == NULL) {
      ::google::protobuf::internal::ReflectionOps::Merge(from, this);
    } else {
      MergeFrom(*source);
    }
  }
  
  void PbPhotoFrameActor::MergeFrom(const PbPhotoFrameActor& from) {
    GOOGLE_CHECK_NE(&from, this);
    mutable_unknown_fields()->MergeFrom(from.unknown_fields());
  }
  
  void PbPhotoFrameActor::CopyFrom(const ::google::protobuf::Message& from) {
    if (&from == this) return;
    Clear();
    MergeFrom(from);
  }
  
  void PbPhotoFrameActor::CopyFrom(const PbPhotoFrameActor& from) {
    if (&from == this) return;
    Clear();
    MergeFrom(from);
  }
  
  bool PbPhotoFrameActor::IsInitialized() const {
    
    return true;
  }
  
  void PbPhotoFrameActor::Swap(PbPhotoFrameActor* other) {
    if (other != this) {
      _unknown_fields_.Swap(&other->_unknown_fields_);
      std::swap(_cached_size_, other->_cached_size_);
    }
  }
  
  ::google::protobuf::Metadata PbPhotoFrameActor::GetMetadata() const {
    protobuf_AssignDescriptorsOnce();
    ::google::protobuf::Metadata metadata;
    metadata.descriptor = PbPhotoFrameActor_descriptor_;
    metadata.reflection = PbPhotoFrameActor_reflection_;
    return metadata;
  }
  
  
  // ===================================================================
  
  #ifndef _MSC_VER
  #endif  // !_MSC_VER
  
  #ifndef _MSC_VER
  const int PbWebActor::kExtMinTagFieldNumber;
  #endif
  ::google::protobuf::internal::ExtensionIdentifier< ::PbBumpObject,
      ::google::protobuf::internal::PrimitiveTypeTraits< ::google::protobuf::uint32 >, 13, false >
    PbWebActor::ext_min_tag(kExtMinTagFieldNumber, 0u);
  #ifndef _MSC_VER
  const int PbWebActor::kTypeFieldNumber;
  #endif
  ::google::protobuf::internal::ExtensionIdentifier< ::PbBumpObject,
      ::google::protobuf::internal::PrimitiveTypeTraits< ::google::protobuf::uint32 >, 13, false >
    PbWebActor::type(kTypeFieldNumber, 0u);
  const ::std::string PbWebActor_content_default("");
  #ifndef _MSC_VER
  const int PbWebActor::kContentFieldNumber;
  #endif
  ::google::protobuf::internal::ExtensionIdentifier< ::PbBumpObject,
      ::google::protobuf::internal::StringTypeTraits, 9, false >
    PbWebActor::content(kContentFieldNumber, PbWebActor_content_default);
  PbWebActor::PbWebActor()
    : ::google::protobuf::Message() {
    SharedCtor();
  }
  
  void PbWebActor::InitAsDefaultInstance() {
  }
  
  PbWebActor::PbWebActor(const PbWebActor& from)
    : ::google::protobuf::Message() {
    SharedCtor();
    MergeFrom(from);
  }
  
  void PbWebActor::SharedCtor() {
    _cached_size_ = 0;
    ::memset(_has_bits_, 0, sizeof(_has_bits_));
  }
  
  PbWebActor::~PbWebActor() {
    SharedDtor();
  }
  
  void PbWebActor::SharedDtor() {
    if (this != default_instance_) {
    }
  }
  
  void PbWebActor::SetCachedSize(int size) const {
    GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
    _cached_size_ = size;
    GOOGLE_SAFE_CONCURRENT_WRITES_END();
  }
  const ::google::protobuf::Descriptor* PbWebActor::descriptor() {
    protobuf_AssignDescriptorsOnce();
    return PbWebActor_descriptor_;
  }
  
  const PbWebActor& PbWebActor::default_instance() {
    if (default_instance_ == NULL) protobuf_AddDesc_BumpTop_2eproto();  return *default_instance_;
  }
  
  PbWebActor* PbWebActor::default_instance_ = NULL;
  
  PbWebActor* PbWebActor::New() const {
    return new PbWebActor;
  }
  
  void PbWebActor::Clear() {
    ::memset(_has_bits_, 0, sizeof(_has_bits_));
    mutable_unknown_fields()->Clear();
  }
  
  bool PbWebActor::MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input) {
  #define DO_(EXPRESSION) if (!(EXPRESSION)) return false
    ::google::protobuf::uint32 tag;
    while ((tag = input->ReadTag()) != 0) {
      if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
          ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
        return true;
      }
      DO_(::google::protobuf::internal::WireFormat::SkipField(
            input, tag, mutable_unknown_fields()));
    }
    return true;
  #undef DO_
  }
  
  void PbWebActor::SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const {
    if (!unknown_fields().empty()) {
      ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
          unknown_fields(), output);
    }
  }
  
  ::google::protobuf::uint8* PbWebActor::SerializeWithCachedSizesToArray(
      ::google::protobuf::uint8* target) const {
    if (!unknown_fields().empty()) {
      target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
          unknown_fields(), target);
    }
    return target;
  }
  
  int PbWebActor::ByteSize() const {
    int total_size = 0;
    
    if (!unknown_fields().empty()) {
      total_size +=
        ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
          unknown_fields());
    }
    GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
    _cached_size_ = total_size;
    GOOGLE_SAFE_CONCURRENT_WRITES_END();
    return total_size;
  }
  
  void PbWebActor::MergeFrom(const ::google::protobuf::Message& from) {
    GOOGLE_CHECK_NE(&from, this);
    const PbWebActor* source =
      ::google::protobuf::internal::dynamic_cast_if_available<const PbWebActor*>(
        &from);
    if (source == NULL) {
      ::google::protobuf::internal::ReflectionOps::Merge(from, this);
    } else {
      MergeFrom(*source);
    }
  }
  
  void PbWebActor::MergeFrom(const PbWebActor& from) {
    GOOGLE_CHECK_NE(&from, this);
    mutable_unknown_fields()->MergeFrom(from.unknown_fields());
  }
  
  void PbWebActor::CopyFrom(const ::google::protobuf::Message& from) {
    if (&from == this) return;
    Clear();
    MergeFrom(from);
  }
  
  void PbWebActor::CopyFrom(const PbWebActor& from) {
    if (&from == this) return;
    Clear();
    MergeFrom(from);
  }
  
  bool PbWebActor::IsInitialized() const {
    
    return true;
  }
  
  void PbWebActor::Swap(PbWebActor* other) {
    if (other != this) {
      _unknown_fields_.Swap(&other->_unknown_fields_);
      std::swap(_cached_size_, other->_cached_size_);
    }
  }
  
  ::google::protobuf::Metadata PbWebActor::GetMetadata() const {
    protobuf_AssignDescriptorsOnce();
    ::google::protobuf::Metadata metadata;
    metadata.descriptor = PbWebActor_descriptor_;
    metadata.reflection = PbWebActor_reflection_;
    return metadata;
  }
  
  
  // ===================================================================
  
  #ifndef _MSC_VER
  const int PbCamera::kEyeFieldNumber;
  const int PbCamera::kUpFieldNumber;
  const int PbCamera::kDirFieldNumber;
  #endif  // !_MSC_VER
  
  PbCamera::PbCamera()
    : ::google::protobuf::Message() {
    SharedCtor();
  }
  
  void PbCamera::InitAsDefaultInstance() {
    eye_ = const_cast< ::PbVec3*>(&::PbVec3::default_instance());
    up_ = const_cast< ::PbVec3*>(&::PbVec3::default_instance());
    dir_ = const_cast< ::PbVec3*>(&::PbVec3::default_instance());
  }
  
  PbCamera::PbCamera(const PbCamera& from)
    : ::google::protobuf::Message() {
    SharedCtor();
    MergeFrom(from);
  }
  
  void PbCamera::SharedCtor() {
    _cached_size_ = 0;
    eye_ = NULL;
    up_ = NULL;
    dir_ = NULL;
    ::memset(_has_bits_, 0, sizeof(_has_bits_));
  }
  
  PbCamera::~PbCamera() {
    SharedDtor();
  }
  
  void PbCamera::SharedDtor() {
    if (this != default_instance_) {
      delete eye_;
      delete up_;
      delete dir_;
    }
  }
  
  void PbCamera::SetCachedSize(int size) const {
    GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
    _cached_size_ = size;
    GOOGLE_SAFE_CONCURRENT_WRITES_END();
  }
  const ::google::protobuf::Descriptor* PbCamera::descriptor() {
    protobuf_AssignDescriptorsOnce();
    return PbCamera_descriptor_;
  }
  
  const PbCamera& PbCamera::default_instance() {
    if (default_instance_ == NULL) protobuf_AddDesc_BumpTop_2eproto();  return *default_instance_;
  }
  
  PbCamera* PbCamera::default_instance_ = NULL;
  
  PbCamera* PbCamera::New() const {
    return new PbCamera;
  }
  
  void PbCamera::Clear() {
    if (_has_bits_[0 / 32] & (0xffu << (0 % 32))) {
      if (has_eye()) {
        if (eye_ != NULL) eye_->::PbVec3::Clear();
      }
      if (has_up()) {
        if (up_ != NULL) up_->::PbVec3::Clear();
      }
      if (has_dir()) {
        if (dir_ != NULL) dir_->::PbVec3::Clear();
      }
    }
    ::memset(_has_bits_, 0, sizeof(_has_bits_));
    mutable_unknown_fields()->Clear();
  }
  
  bool PbCamera::MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input) {
  #define DO_(EXPRESSION) if (!(EXPRESSION)) return false
    ::google::protobuf::uint32 tag;
    while ((tag = input->ReadTag()) != 0) {
      switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
        // optional .PbVec3 eye = 1;
        case 1: {
          if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
              ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED) {
            DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
                 input, mutable_eye()));
          } else {
            goto handle_uninterpreted;
          }
          if (input->ExpectTag(18)) goto parse_up;
          break;
        }
        
        // optional .PbVec3 up = 2;
        case 2: {
          if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
              ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED) {
           parse_up:
            DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
                 input, mutable_up()));
          } else {
            goto handle_uninterpreted;
          }
          if (input->ExpectTag(26)) goto parse_dir;
          break;
        }
        
        // optional .PbVec3 dir = 3;
        case 3: {
          if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
              ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED) {
           parse_dir:
            DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
                 input, mutable_dir()));
          } else {
            goto handle_uninterpreted;
          }
          if (input->ExpectAtEnd()) return true;
          break;
        }
        
        default: {
        handle_uninterpreted:
          if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
              ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
            return true;
          }
          DO_(::google::protobuf::internal::WireFormat::SkipField(
                input, tag, mutable_unknown_fields()));
          break;
        }
      }
    }
    return true;
  #undef DO_
  }
  
  void PbCamera::SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const {
    // optional .PbVec3 eye = 1;
    if (has_eye()) {
      ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
        1, this->eye(), output);
    }
    
    // optional .PbVec3 up = 2;
    if (has_up()) {
      ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
        2, this->up(), output);
    }
    
    // optional .PbVec3 dir = 3;
    if (has_dir()) {
      ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
        3, this->dir(), output);
    }
    
    if (!unknown_fields().empty()) {
      ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
          unknown_fields(), output);
    }
  }
  
  ::google::protobuf::uint8* PbCamera::SerializeWithCachedSizesToArray(
      ::google::protobuf::uint8* target) const {
    // optional .PbVec3 eye = 1;
    if (has_eye()) {
      target = ::google::protobuf::internal::WireFormatLite::
        WriteMessageNoVirtualToArray(
          1, this->eye(), target);
    }
    
    // optional .PbVec3 up = 2;
    if (has_up()) {
      target = ::google::protobuf::internal::WireFormatLite::
        WriteMessageNoVirtualToArray(
          2, this->up(), target);
    }
    
    // optional .PbVec3 dir = 3;
    if (has_dir()) {
      target = ::google::protobuf::internal::WireFormatLite::
        WriteMessageNoVirtualToArray(
          3, this->dir(), target);
    }
    
    if (!unknown_fields().empty()) {
      target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
          unknown_fields(), target);
    }
    return target;
  }
  
  int PbCamera::ByteSize() const {
    int total_size = 0;
    
    if (_has_bits_[0 / 32] & (0xffu << (0 % 32))) {
      // optional .PbVec3 eye = 1;
      if (has_eye()) {
        total_size += 1 +
          ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
            this->eye());
      }
      
      // optional .PbVec3 up = 2;
      if (has_up()) {
        total_size += 1 +
          ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
            this->up());
      }
      
      // optional .PbVec3 dir = 3;
      if (has_dir()) {
        total_size += 1 +
          ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
            this->dir());
      }
      
    }
    if (!unknown_fields().empty()) {
      total_size +=
        ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
          unknown_fields());
    }
    GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
    _cached_size_ = total_size;
    GOOGLE_SAFE_CONCURRENT_WRITES_END();
    return total_size;
  }
  
  void PbCamera::MergeFrom(const ::google::protobuf::Message& from) {
    GOOGLE_CHECK_NE(&from, this);
    const PbCamera* source =
      ::google::protobuf::internal::dynamic_cast_if_available<const PbCamera*>(
        &from);
    if (source == NULL) {
      ::google::protobuf::internal::ReflectionOps::Merge(from, this);
    } else {
      MergeFrom(*source);
    }
  }
  
  void PbCamera::MergeFrom(const PbCamera& from) {
    GOOGLE_CHECK_NE(&from, this);
    if (from._has_bits_[0 / 32] & (0xffu << (0 % 32))) {
      if (from.has_eye()) {
        mutable_eye()->::PbVec3::MergeFrom(from.eye());
      }
      if (from.has_up()) {
        mutable_up()->::PbVec3::MergeFrom(from.up());
      }
      if (from.has_dir()) {
        mutable_dir()->::PbVec3::MergeFrom(from.dir());
      }
    }
    mutable_unknown_fields()->MergeFrom(from.unknown_fields());
  }
  
  void PbCamera::CopyFrom(const ::google::protobuf::Message& from) {
    if (&from == this) return;
    Clear();
    MergeFrom(from);
  }
  
  void PbCamera::CopyFrom(const PbCamera& from) {
    if (&from == this) return;
    Clear();
    MergeFrom(from);
  }
  
  bool PbCamera::IsInitialized() const {
    
    if (has_eye()) {
      if (!this->eye().IsInitialized()) return false;
    }
    if (has_up()) {
      if (!this->up().IsInitialized()) return false;
    }
    if (has_dir()) {
      if (!this->dir().IsInitialized()) return false;
    }
    return true;
  }
  
  void PbCamera::Swap(PbCamera* other) {
    if (other != this) {
      std::swap(eye_, other->eye_);
      std::swap(up_, other->up_);
      std::swap(dir_, other->dir_);
      std::swap(_has_bits_[0], other->_has_bits_[0]);
      _unknown_fields_.Swap(&other->_unknown_fields_);
      std::swap(_cached_size_, other->_cached_size_);
    }
  }
  
  ::google::protobuf::Metadata PbCamera::GetMetadata() const {
    protobuf_AssignDescriptorsOnce();
    ::google::protobuf::Metadata metadata;
    metadata.descriptor = PbCamera_descriptor_;
    metadata.reflection = PbCamera_reflection_;
    return metadata;
  }
  
  
  // @@protoc_insertion_point(namespace_scope)
  
  // @@protoc_insertion_point(global_scope)
  