From 711878567ad17274ff0881eef2e7e68892429e83 Mon Sep 17 00:00:00 2001 From: Alexander Gessler Date: Sat, 21 Jul 2012 01:00:26 +0200 Subject: [PATCH] - more fine-grained import settings. --- code/FBXConverter.cpp | 4 ++-- code/FBXImportSettings.h | 22 +++++++++++++++++++++- 2 files changed, 23 insertions(+), 3 deletions(-) diff --git a/code/FBXConverter.cpp b/code/FBXConverter.cpp index 68e2cd765..c66d726a6 100644 --- a/code/FBXConverter.cpp +++ b/code/FBXConverter.cpp @@ -261,7 +261,7 @@ private: // one material per mesh maps easily to aiMesh. Multiple material // meshes need to be split. const std::vector& mindices = mesh.GetMaterialIndices(); - if (!mindices.empty()) { + if (doc.Settings().readMaterials && !mindices.empty()) { const unsigned int base = mindices[0]; BOOST_FOREACH(unsigned int index, mindices) { if(index != base) { @@ -408,7 +408,7 @@ private: std::copy(colors.begin(),colors.end(),out_mesh->mColors[i]); } - if(mindices.empty()) { + if(!doc.Settings().readMaterials || mindices.empty()) { FBXImporter::LogError("no material assigned to mesh, setting default material"); out_mesh->mMaterialIndex = GetDefaultMaterial(); } diff --git a/code/FBXImportSettings.h b/code/FBXImportSettings.h index 020ba9820..dd36af417 100644 --- a/code/FBXImportSettings.h +++ b/code/FBXImportSettings.h @@ -53,6 +53,10 @@ struct ImportSettings ImportSettings() : readAllLayers(true) , readAllMaterials() + , readMaterials(true) + , readCameras(true) + , readLights(true) + , readAnimations(true) {} /** specifies whether all geometry layers are read and scanned for @@ -66,8 +70,24 @@ struct ImportSettings /** specifies whether all materials are read, or only those that * are referenced by at least one mesh. Reading all materials * may make FBX reading a lot slower since all objects - * need to be processed .*/ + * need to be processed . + * This bit is ignored unless readMaterials=true*/ bool readAllMaterials; + + + /** import materials (true) or skip them and assign a default + * material. The default value is true.*/ + bool readMaterials; + + /** import cameras? Default value is true.*/ + bool readCameras; + + /** import light sources? Default value is true.*/ + bool readLights; + + /** import animations (i.e. animation curves, the node + * skeleton is always imported)? Default value is true. */ + bool readAnimations; };