From d1f8bfe48bee695b70cb25ef8fccbd5089dc9dda Mon Sep 17 00:00:00 2001 From: sabrina-shanman Date: Mon, 26 Nov 2018 17:45:55 -0800 Subject: [PATCH] Move definition of supported file types into ModelLoader --- .../src/model-networking/ModelCache.cpp | 19 ---------------- .../src/model-networking/ModelLoader.cpp | 22 +++++++++++++++++++ .../src/model-networking/ModelLoader.h | 2 ++ 3 files changed, 24 insertions(+), 19 deletions(-) diff --git a/libraries/model-networking/src/model-networking/ModelCache.cpp b/libraries/model-networking/src/model-networking/ModelCache.cpp index 81188031e1..22835de59d 100644 --- a/libraries/model-networking/src/model-networking/ModelCache.cpp +++ b/libraries/model-networking/src/model-networking/ModelCache.cpp @@ -12,9 +12,6 @@ #include "ModelCache.h" #include #include -#include "FBXSerializer.h" -#include "OBJSerializer.h" -#include "GLTFSerializer.h" #include #include @@ -311,22 +308,6 @@ ModelCache::ModelCache() { const qint64 GEOMETRY_DEFAULT_UNUSED_MAX_SIZE = DEFAULT_UNUSED_MAX_SIZE; setUnusedResourceCacheSize(GEOMETRY_DEFAULT_UNUSED_MAX_SIZE); setObjectName("ModelCache"); - - // Add supported model formats - - ModelLoader::MIMEType fbxMIMEType("fbx"); - fbxMIMEType.extensions.push_back("fbx"); - fbxMIMEType.fileSignatures.emplace_back("Kaydara FBX Binary \x00", 0); - _modelLoader.addSupportedFormat(fbxMIMEType); - - ModelLoader::MIMEType objMIMEType("obj"); - objMIMEType.extensions.push_back("obj"); - _modelLoader.addSupportedFormat(objMIMEType); - - ModelLoader::MIMEType gltfMIMEType("gltf"); - gltfMIMEType.extensions.push_back("gltf"); - gltfMIMEType.webMediaTypes.push_back("model/gltf+json"); - _modelLoader.addSupportedFormat(gltfMIMEType); } QSharedPointer ModelCache::createResource(const QUrl& url, const QSharedPointer& fallback, diff --git a/libraries/model-networking/src/model-networking/ModelLoader.cpp b/libraries/model-networking/src/model-networking/ModelLoader.cpp index 3eb1bec9f0..04384acd39 100644 --- a/libraries/model-networking/src/model-networking/ModelLoader.cpp +++ b/libraries/model-networking/src/model-networking/ModelLoader.cpp @@ -11,6 +11,28 @@ #include "ModelLoader.h" +#include "FBXSerializer.h" +#include "OBJSerializer.h" +#include "GLTFSerializer.h" + +ModelLoader::ModelLoader() { + // Add supported model formats + + MIMEType fbxMIMEType("fbx"); + fbxMIMEType.extensions.push_back("fbx"); + fbxMIMEType.fileSignatures.emplace_back("Kaydara FBX Binary \x00", 0); + addSupportedFormat(fbxMIMEType); + + MIMEType objMIMEType("obj"); + objMIMEType.extensions.push_back("obj"); + addSupportedFormat(objMIMEType); + + MIMEType gltfMIMEType("gltf"); + gltfMIMEType.extensions.push_back("gltf"); + gltfMIMEType.webMediaTypes.push_back("model/gltf+json"); + addSupportedFormat(gltfMIMEType); +} + hfm::Model::Pointer ModelLoader::load(const hifi::ByteArray& data, const hifi::VariantHash& mapping, const hifi::URL& url, const std::string& webMediaType) const { // Check file contents for (auto& supportedFormat : supportedFormats) { diff --git a/libraries/model-networking/src/model-networking/ModelLoader.h b/libraries/model-networking/src/model-networking/ModelLoader.h index 1a8901e8da..2cd5460f84 100644 --- a/libraries/model-networking/src/model-networking/ModelLoader.h +++ b/libraries/model-networking/src/model-networking/ModelLoader.h @@ -47,6 +47,8 @@ public: std::vector fileSignatures; }; + ModelLoader(); + // T is a subclass of hfm::Serializer template void addSupportedFormat(const MIMEType& mimeType) {