From b428c66f3931d6c7ea2be0437b735b2506722a5e Mon Sep 17 00:00:00 2001 From: Giuseppe Barbieri Date: Fri, 17 Nov 2017 23:10:05 +0100 Subject: [PATCH 1/5] Update ValidateDataStructure.h --- code/ValidateDataStructure.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/ValidateDataStructure.h b/code/ValidateDataStructure.h index 6daf9b87d..c53207483 100644 --- a/code/ValidateDataStructure.h +++ b/code/ValidateDataStructure.h @@ -165,7 +165,7 @@ private: inline void DoValidation(T** array, unsigned int size, const char* firstName, const char* secondName); - // extended version: checks whethr T::mName occurs twice + // extended version: checks whether T::mName occurs twice template inline void DoValidationEx(T** array, unsigned int size, const char* firstName, const char* secondName); From fc360b9cc8c69f2817a9f65eb5f6acc8600b7175 Mon Sep 17 00:00:00 2001 From: Giuseppe Barbieri Date: Sat, 18 Nov 2017 00:05:17 +0100 Subject: [PATCH 2/5] Update ValidateDataStructure.h --- code/ValidateDataStructure.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/ValidateDataStructure.h b/code/ValidateDataStructure.h index 6daf9b87d..188950e0e 100644 --- a/code/ValidateDataStructure.h +++ b/code/ValidateDataStructure.h @@ -91,7 +91,7 @@ protected: // ------------------------------------------------------------------- /** Report a validation warning. This won't throw an exception, - * control will return to the callera. + * control will return to the caller. * @param msg Format string for sprintf().*/ void ReportWarning(const char* msg,...); From 6cbfd5b977486fe419dcc218a3180d88c68f024a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Patrick=20D=C3=A4hne?= Date: Mon, 20 Nov 2017 14:59:05 +0100 Subject: [PATCH 3/5] [glTF2] Implemented reading binary glTF2 (glb) files --- code/glTF2Asset.h | 29 +++++++++++-- code/glTF2Asset.inl | 99 ++++++++++++++++++++++++++++++++++++++---- code/glTF2Importer.cpp | 8 ++-- 3 files changed, 120 insertions(+), 16 deletions(-) diff --git a/code/glTF2Asset.h b/code/glTF2Asset.h index 877b59ba3..0283ea0d8 100644 --- a/code/glTF2Asset.h +++ b/code/glTF2Asset.h @@ -192,15 +192,31 @@ namespace glTF2 #include "./../include/assimp/Compiler/pushpack1.h" #endif + //! For binary .glb files + //! 12-byte header (+ the JSON + a "body" data section) + struct GLB_Header + { + uint8_t magic[4]; //!< Magic number: "glTF" + uint32_t version; //!< Version number (always 2 as of the last update) + uint32_t length; //!< Total length of the Binary glTF, including header, scene, and body, in bytes + } PACK_STRUCT; + + struct GLB_Chunk + { + uint32_t chunkLength; + uint32_t chunkType; + } PACK_STRUCT; + #ifdef ASSIMP_API #include "./../include/assimp/Compiler/poppack1.h" #endif - //! Values for the GLB_Header::sceneFormat field - enum SceneFormat + //! Values for the GLB_Chunk::chunkType field + enum ChunkType { - SceneFormat_JSON = 0 + ChunkType_JSON = 0x4E4F534A, + ChunkType_BIN = 0x004E4942 }; //! Values for the mesh primitive modes @@ -1086,7 +1102,10 @@ namespace glTF2 } //! Main function - void Load(const std::string& file); + void Load(const std::string& file, bool isBinary = false); + + //! Enables binary encoding on the asset + void SetAsBinary(); //! Search for an available name, starting from the given strings std::string FindUniqueID(const std::string& str, const char* suffix); @@ -1095,6 +1114,8 @@ namespace glTF2 { return mBodyBuffer; } private: + void ReadBinaryHeader(IOStream& stream, std::vector& sceneData); + void ReadExtensionsUsed(Document& doc); IOStream* OpenFile(std::string path, const char* mode, bool absolute = false); diff --git a/code/glTF2Asset.inl b/code/glTF2Asset.inl index 09b049add..72fdf9580 100644 --- a/code/glTF2Asset.inl +++ b/code/glTF2Asset.inl @@ -1037,7 +1037,72 @@ inline void AssetMetadata::Read(Document& doc) // Asset methods implementation // -inline void Asset::Load(const std::string& pFile) +inline void Asset::ReadBinaryHeader(IOStream& stream, std::vector& sceneData) +{ + GLB_Header header; + if (stream.Read(&header, sizeof(header), 1) != 1) { + throw DeadlyImportError("GLTF: Unable to read the file header"); + } + + if (strncmp((char*)header.magic, AI_GLB_MAGIC_NUMBER, sizeof(header.magic)) != 0) { + throw DeadlyImportError("GLTF: Invalid binary glTF file"); + } + + AI_SWAP4(header.version); + asset.version = to_string(header.version); + if (header.version != 2) { + throw DeadlyImportError("GLTF: Unsupported binary glTF version"); + } + + GLB_Chunk chunk; + if (stream.Read(&chunk, sizeof(chunk), 1) != 1) { + throw DeadlyImportError("GLTF: Unable to read JSON chunk"); + } + + AI_SWAP4(chunk.chunkLength); + AI_SWAP4(chunk.chunkType); + + if (chunk.chunkType != ChunkType_JSON) { + throw DeadlyImportError("GLTF: JSON chunk missing"); + } + + // read the scene data + + mSceneLength = chunk.chunkLength; + sceneData.resize(mSceneLength + 1); + sceneData[mSceneLength] = '\0'; + + if (stream.Read(&sceneData[0], 1, mSceneLength) != mSceneLength) { + throw DeadlyImportError("GLTF: Could not read the file contents"); + } + + uint32_t padding = ((chunk.chunkLength + 3) & ~3) - chunk.chunkLength; + if (padding > 0) { + stream.Seek(padding, aiOrigin_CUR); + } + + AI_SWAP4(header.length); + mBodyOffset = 12 + 8 + chunk.chunkLength + padding + 8; + if (header.length >= mBodyOffset) { + if (stream.Read(&chunk, sizeof(chunk), 1) != 1) { + throw DeadlyImportError("GLTF: Unable to read BIN chunk"); + } + + AI_SWAP4(chunk.chunkLength); + AI_SWAP4(chunk.chunkType); + + if (chunk.chunkType != ChunkType_BIN) { + throw DeadlyImportError("GLTF: BIN chunk missing"); + } + + mBodyLength = chunk.chunkLength; + } + else { + mBodyOffset = mBodyLength = 0; + } +} + +inline void Asset::Load(const std::string& pFile, bool isBinary) { mCurrentAssetDir.clear(); int pos = std::max(int(pFile.rfind('/')), int(pFile.rfind('\\'))); @@ -1048,16 +1113,25 @@ inline void Asset::Load(const std::string& pFile) throw DeadlyImportError("GLTF: Could not open file for reading"); } - mSceneLength = stream->FileSize(); - mBodyLength = 0; + // is binary? then read the header + std::vector sceneData; + if (isBinary) { + SetAsBinary(); // also creates the body buffer + ReadBinaryHeader(*stream, sceneData); + } + else { + mSceneLength = stream->FileSize(); + mBodyLength = 0; - // read the scene data - std::vector sceneData(mSceneLength + 1); - sceneData[mSceneLength] = '\0'; + // read the scene data - if (stream->Read(&sceneData[0], 1, mSceneLength) != mSceneLength) { - throw DeadlyImportError("GLTF: Could not read the file contents"); + sceneData.resize(mSceneLength + 1); + sceneData[mSceneLength] = '\0'; + + if (stream->Read(&sceneData[0], 1, mSceneLength) != mSceneLength) { + throw DeadlyImportError("GLTF: Could not read the file contents"); + } } @@ -1110,6 +1184,15 @@ inline void Asset::Load(const std::string& pFile) } } +inline void Asset::SetAsBinary() +{ + if (!mBodyBuffer) { + mBodyBuffer = buffers.Create("binary_glTF"); + mBodyBuffer->MarkAsSpecial(); + } +} + + inline void Asset::ReadExtensionsUsed(Document& doc) { Value* extsUsed = FindArray(doc, "extensionsUsed"); diff --git a/code/glTF2Importer.cpp b/code/glTF2Importer.cpp index 5d40d75bc..297f2bc72 100644 --- a/code/glTF2Importer.cpp +++ b/code/glTF2Importer.cpp @@ -74,7 +74,7 @@ static const aiImporterDesc desc = { "", "", "", - aiImporterFlags_SupportTextFlavour | aiImporterFlags_LimitedSupport | aiImporterFlags_Experimental, + aiImporterFlags_SupportTextFlavour | aiImporterFlags_SupportBinaryFlavour | aiImporterFlags_LimitedSupport | aiImporterFlags_Experimental, 0, 0, 0, @@ -103,13 +103,13 @@ bool glTF2Importer::CanRead(const std::string& pFile, IOSystem* pIOHandler, bool { const std::string &extension = GetExtension(pFile); - if (extension != "gltf") // We currently can't read glTF2 binary files (.glb), yet + if (extension != "gltf" && extension != "glb") return false; if (checkSig && pIOHandler) { glTF2::Asset asset(pIOHandler); try { - asset.Load(pFile); + asset.Load(pFile, extension == "glb"); std::string version = asset.asset.version; return !version.empty() && version[0] == '2'; } catch (...) { @@ -639,7 +639,7 @@ void glTF2Importer::InternReadFile(const std::string& pFile, aiScene* pScene, IO // read the asset file glTF2::Asset asset(pIOHandler); - asset.Load(pFile); + asset.Load(pFile, GetExtension(pFile) == "glb"); // // Copy the data out From a05d74a281dd786b41e5ef9daf3c0ebea1988797 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Patrick=20D=C3=A4hne?= Date: Mon, 20 Nov 2017 19:01:28 +0100 Subject: [PATCH 4/5] [glTF2] Moved byteStride from accessor to bufferView --- code/glTF2Asset.h | 2 +- code/glTF2Asset.inl | 6 +++--- code/glTF2AssetWriter.inl | 7 +++---- code/glTF2Exporter.cpp | 2 +- 4 files changed, 8 insertions(+), 9 deletions(-) diff --git a/code/glTF2Asset.h b/code/glTF2Asset.h index 0283ea0d8..765f5e0f8 100644 --- a/code/glTF2Asset.h +++ b/code/glTF2Asset.h @@ -436,7 +436,6 @@ namespace glTF2 { Ref bufferView; //!< The ID of the bufferView. (required) unsigned int byteOffset; //!< The offset relative to the start of the bufferView in bytes. (required) - unsigned int byteStride; //!< The stride, in bytes, between attributes referenced by this accessor. (default: 0) ComponentType componentType; //!< The datatype of components in the attribute. (required) unsigned int count; //!< The number of attributes referenced by this accessor. (required) AttribType::Value type; //!< Specifies if the attribute is a scalar, vector, or matrix. (required) @@ -627,6 +626,7 @@ namespace glTF2 Ref buffer; //! The ID of the buffer. (required) size_t byteOffset; //! The offset into the buffer in bytes. (required) size_t byteLength; //! The length of the bufferView in bytes. (default: 0) + unsigned int byteStride; //!< The stride, in bytes, between attributes referenced by this accessor. (default: 0) BufferViewTarget target; //! The target that the WebGL buffer should be bound to. diff --git a/code/glTF2Asset.inl b/code/glTF2Asset.inl index 72fdf9580..ca18e87e0 100644 --- a/code/glTF2Asset.inl +++ b/code/glTF2Asset.inl @@ -512,6 +512,7 @@ inline void BufferView::Read(Value& obj, Asset& r) byteOffset = MemberOrDefault(obj, "byteOffset", 0u); byteLength = MemberOrDefault(obj, "byteLength", 0u); + byteStride = MemberOrDefault(obj, "byteStride", 0u); } // @@ -526,7 +527,6 @@ inline void Accessor::Read(Value& obj, Asset& r) } byteOffset = MemberOrDefault(obj, "byteOffset", 0u); - byteStride = MemberOrDefault(obj, "byteStride", 0u); componentType = MemberOrDefault(obj, "componentType", ComponentType_BYTE); count = MemberOrDefault(obj, "count", 0u); @@ -601,7 +601,7 @@ bool Accessor::ExtractData(T*& outData) const size_t elemSize = GetElementSize(); const size_t totalSize = elemSize * count; - const size_t stride = byteStride ? byteStride : elemSize; + const size_t stride = bufferView && bufferView->byteStride ? bufferView->byteStride : elemSize; const size_t targetElemSize = sizeof(T); ai_assert(elemSize <= targetElemSize); @@ -641,7 +641,7 @@ inline Accessor::Indexer::Indexer(Accessor& acc) : accessor(acc) , data(acc.GetPointer()) , elemSize(acc.GetElementSize()) - , stride(acc.byteStride ? acc.byteStride : elemSize) + , stride(acc.bufferView && acc.bufferView->byteStride ? acc.bufferView->byteStride : elemSize) { } diff --git a/code/glTF2AssetWriter.inl b/code/glTF2AssetWriter.inl index 8583462ce..8b2769a37 100644 --- a/code/glTF2AssetWriter.inl +++ b/code/glTF2AssetWriter.inl @@ -98,10 +98,6 @@ namespace glTF2 { obj.AddMember("bufferView", a.bufferView->index, w.mAl); obj.AddMember("byteOffset", a.byteOffset, w.mAl); - if (a.byteStride != 0) { - obj.AddMember("byteStride", a.byteStride, w.mAl); - } - obj.AddMember("componentType", int(a.componentType), w.mAl); obj.AddMember("count", a.count, w.mAl); obj.AddMember("type", StringRef(AttribType::ToString(a.type)), w.mAl); @@ -168,6 +164,9 @@ namespace glTF2 { obj.AddMember("buffer", bv.buffer->index, w.mAl); obj.AddMember("byteOffset", static_cast(bv.byteOffset), w.mAl); obj.AddMember("byteLength", static_cast(bv.byteLength), w.mAl); + if (bv.byteStride != 0) { + obj.AddMember("byteStride", bv.byteStride, w.mAl); + } obj.AddMember("target", int(bv.target), w.mAl); } diff --git a/code/glTF2Exporter.cpp b/code/glTF2Exporter.cpp index ed6814b7f..e6d4d1a3b 100644 --- a/code/glTF2Exporter.cpp +++ b/code/glTF2Exporter.cpp @@ -170,13 +170,13 @@ inline Ref ExportData(Asset& a, std::string& meshName, Ref& bu bv->buffer = buffer; bv->byteOffset = unsigned(offset); bv->byteLength = length; //! The target that the WebGL buffer should be bound to. + bv->byteStride = 0; bv->target = isIndices ? BufferViewTarget_ELEMENT_ARRAY_BUFFER : BufferViewTarget_ARRAY_BUFFER; // accessor Ref acc = a.accessors.Create(a.FindUniqueID(meshName, "accessor")); acc->bufferView = bv; acc->byteOffset = 0; - acc->byteStride = 0; acc->componentType = compType; acc->count = count; acc->type = typeOut; From 127705d347b97d21d66252daea447eca7c7c6129 Mon Sep 17 00:00:00 2001 From: Turo Lamminen Date: Tue, 21 Nov 2017 18:04:22 +0200 Subject: [PATCH 5/5] Unit tests: Enable data structure validation in cases where it doesn't cause failures --- test/unit/ut3DImportExport.cpp | 3 ++- test/unit/ut3DSImportExport.cpp | 3 ++- test/unit/utACImportExport.cpp | 3 ++- test/unit/utAMFImportExport.cpp | 3 ++- test/unit/utASEImportExport.cpp | 3 ++- test/unit/utB3DImportExport.cpp | 3 ++- test/unit/utBVHImportExport.cpp | 3 ++- test/unit/utBlendImportAreaLight.cpp | 3 ++- test/unit/utBlendImportMaterials.cpp | 3 ++- test/unit/utBlenderImportExport.cpp | 3 ++- test/unit/utCSMImportExport.cpp | 3 ++- test/unit/utColladaExportCamera.cpp | 5 +++-- test/unit/utColladaExportLight.cpp | 5 +++-- test/unit/utColladaImportExport.cpp | 3 ++- test/unit/utD3MFImportExport.cpp | 3 ++- test/unit/utDXFImporterExporter.cpp | 3 ++- test/unit/utExport.cpp | 4 ++-- test/unit/utFBXImporterExporter.cpp | 3 ++- test/unit/utHMPImportExport.cpp | 3 ++- test/unit/utIFCImportExport.cpp | 3 ++- test/unit/utIssues.cpp | 3 ++- test/unit/utObjImportExport.cpp | 6 +++--- test/unit/utPMXImporter.cpp | 2 +- test/unit/utQ3DImportExport.cpp | 3 ++- test/unit/utSIBImporter.cpp | 3 ++- test/unit/utSMDImportExport.cpp | 5 +++-- test/unit/utSTLImportExport.cpp | 5 +++-- test/unit/utX3DImportExport.cpp | 3 ++- test/unit/utXImporterExporter.cpp | 3 ++- test/unit/utglTF2ImportExport.cpp | 5 +++-- test/unit/utglTFImportExport.cpp | 3 ++- 31 files changed, 67 insertions(+), 39 deletions(-) diff --git a/test/unit/ut3DImportExport.cpp b/test/unit/ut3DImportExport.cpp index b55bf9c4c..6becbd866 100644 --- a/test/unit/ut3DImportExport.cpp +++ b/test/unit/ut3DImportExport.cpp @@ -45,6 +45,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #include "AbstractImportExportBase.h" #include +#include using namespace Assimp; @@ -52,7 +53,7 @@ class ut3DImportExport : public AbstractImportExportBase { public: virtual bool importerTest() { Assimp::Importer importer; - const aiScene *scene = importer.ReadFile( ASSIMP_TEST_MODELS_DIR "/3D/box_a.3d", 0 ); + const aiScene *scene = importer.ReadFile( ASSIMP_TEST_MODELS_DIR "/3D/box_a.3d", aiProcess_ValidateDataStructure ); return nullptr != scene; } }; diff --git a/test/unit/ut3DSImportExport.cpp b/test/unit/ut3DSImportExport.cpp index 1e9bfe0d0..69e889ae6 100644 --- a/test/unit/ut3DSImportExport.cpp +++ b/test/unit/ut3DSImportExport.cpp @@ -45,6 +45,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #include "AbstractImportExportBase.h" #include +#include using namespace Assimp; @@ -52,7 +53,7 @@ class ut3DSImportExport : public AbstractImportExportBase { public: virtual bool importerTest() { Assimp::Importer importer; - const aiScene *scene = importer.ReadFile( ASSIMP_TEST_MODELS_DIR "/3DS/fels.3ds", 0 ); + const aiScene *scene = importer.ReadFile( ASSIMP_TEST_MODELS_DIR "/3DS/fels.3ds", aiProcess_ValidateDataStructure ); #ifndef ASSIMP_BUILD_NO_3DS_IMPORTER return nullptr != scene; #else diff --git a/test/unit/utACImportExport.cpp b/test/unit/utACImportExport.cpp index 3c3dcaa7b..178816532 100644 --- a/test/unit/utACImportExport.cpp +++ b/test/unit/utACImportExport.cpp @@ -45,6 +45,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #include "AbstractImportExportBase.h" #include +#include using namespace Assimp; @@ -52,7 +53,7 @@ class utACImportExport : public AbstractImportExportBase { public: virtual bool importerTest() { Assimp::Importer importer; - const aiScene *scene = importer.ReadFile( ASSIMP_TEST_MODELS_DIR "/AC/Wuson.ac", 0 ); + const aiScene *scene = importer.ReadFile( ASSIMP_TEST_MODELS_DIR "/AC/Wuson.ac", aiProcess_ValidateDataStructure ); return nullptr != scene; } }; diff --git a/test/unit/utAMFImportExport.cpp b/test/unit/utAMFImportExport.cpp index e4ee5605a..35afd375c 100644 --- a/test/unit/utAMFImportExport.cpp +++ b/test/unit/utAMFImportExport.cpp @@ -45,6 +45,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #include "AbstractImportExportBase.h" #include +#include using namespace Assimp; @@ -52,7 +53,7 @@ class utAMFImportExport : public AbstractImportExportBase { public: virtual bool importerTest() { Assimp::Importer importer; - const aiScene *scene = importer.ReadFile( ASSIMP_TEST_MODELS_DIR "/AMF/test1.amf", 0 ); + const aiScene *scene = importer.ReadFile( ASSIMP_TEST_MODELS_DIR "/AMF/test1.amf", aiProcess_ValidateDataStructure ); return nullptr != scene; } }; diff --git a/test/unit/utASEImportExport.cpp b/test/unit/utASEImportExport.cpp index 841aff549..1f62d3385 100644 --- a/test/unit/utASEImportExport.cpp +++ b/test/unit/utASEImportExport.cpp @@ -45,6 +45,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #include "AbstractImportExportBase.h" #include +#include using namespace Assimp; @@ -52,7 +53,7 @@ class utASEImportExport : public AbstractImportExportBase { public: virtual bool importerTest() { Assimp::Importer importer; - const aiScene *scene = importer.ReadFile( ASSIMP_TEST_MODELS_DIR "/ASE/ThreeCubesGreen.ASE", 0 ); + const aiScene *scene = importer.ReadFile( ASSIMP_TEST_MODELS_DIR "/ASE/ThreeCubesGreen.ASE", aiProcess_ValidateDataStructure ); #ifndef ASSIMP_BUILD_NO_3DS_IMPORTER return nullptr != scene; #else diff --git a/test/unit/utB3DImportExport.cpp b/test/unit/utB3DImportExport.cpp index 0a800ccb6..eaa56beed 100644 --- a/test/unit/utB3DImportExport.cpp +++ b/test/unit/utB3DImportExport.cpp @@ -45,6 +45,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #include "AbstractImportExportBase.h" #include +#include using namespace Assimp; @@ -52,7 +53,7 @@ class utB3DImportExport : public AbstractImportExportBase { public: virtual bool importerTest() { Assimp::Importer importer; - const aiScene *scene = importer.ReadFile( ASSIMP_TEST_MODELS_DIR "/B3D/WusonBlitz.b3d", 0 ); + const aiScene *scene = importer.ReadFile( ASSIMP_TEST_MODELS_DIR "/B3D/WusonBlitz.b3d", aiProcess_ValidateDataStructure ); return nullptr != scene; } }; diff --git a/test/unit/utBVHImportExport.cpp b/test/unit/utBVHImportExport.cpp index 48281c667..a080ca3a4 100644 --- a/test/unit/utBVHImportExport.cpp +++ b/test/unit/utBVHImportExport.cpp @@ -43,6 +43,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #include "AbstractImportExportBase.h" #include +#include using namespace Assimp; @@ -50,7 +51,7 @@ class utBVHImportExport : public AbstractImportExportBase { public: virtual bool importerTest() { Assimp::Importer importer; - const aiScene *scene = importer.ReadFile( ASSIMP_TEST_MODELS_DIR "/BVH/01_01.bvh", 0 ); + const aiScene *scene = importer.ReadFile( ASSIMP_TEST_MODELS_DIR "/BVH/01_01.bvh", aiProcess_ValidateDataStructure ); return nullptr != scene; } }; diff --git a/test/unit/utBlendImportAreaLight.cpp b/test/unit/utBlendImportAreaLight.cpp index 04cc8cbcf..55a68b040 100644 --- a/test/unit/utBlendImportAreaLight.cpp +++ b/test/unit/utBlendImportAreaLight.cpp @@ -45,6 +45,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #include #include #include +#include class BlendImportAreaLight : public ::testing::Test { public: @@ -67,7 +68,7 @@ protected: // ------------------------------------------------------------------------------------------------ TEST_F(BlendImportAreaLight, testImportLight) { - const aiScene* pTest = im->ReadFile(ASSIMP_TEST_MODELS_DIR "/BLEND/AreaLight_269.blend",0); + const aiScene* pTest = im->ReadFile(ASSIMP_TEST_MODELS_DIR "/BLEND/AreaLight_269.blend", aiProcess_ValidateDataStructure); ASSERT_TRUE(pTest != NULL); ASSERT_TRUE(pTest->HasLights()); diff --git a/test/unit/utBlendImportMaterials.cpp b/test/unit/utBlendImportMaterials.cpp index 6e1033453..4387243c4 100644 --- a/test/unit/utBlendImportMaterials.cpp +++ b/test/unit/utBlendImportMaterials.cpp @@ -44,6 +44,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #include #include #include +#include class BlendImportMaterials : public ::testing::Test { public: @@ -66,7 +67,7 @@ protected: // ------------------------------------------------------------------------------------------------ TEST_F(BlendImportMaterials, testImportMaterial) { - const aiScene* pTest = im->ReadFile(ASSIMP_TEST_MODELS_DIR "/BLEND/BlenderMaterial_269.blend", 0); + const aiScene* pTest = im->ReadFile(ASSIMP_TEST_MODELS_DIR "/BLEND/BlenderMaterial_269.blend", aiProcess_ValidateDataStructure); ASSERT_TRUE(pTest != NULL); ASSERT_TRUE(pTest->HasMaterials()); diff --git a/test/unit/utBlenderImportExport.cpp b/test/unit/utBlenderImportExport.cpp index a120fdcc5..6d7ca8dd7 100644 --- a/test/unit/utBlenderImportExport.cpp +++ b/test/unit/utBlenderImportExport.cpp @@ -43,6 +43,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #include "AbstractImportExportBase.h" #include +#include using namespace Assimp; @@ -50,7 +51,7 @@ class utBlenderImporterExporter : public AbstractImportExportBase { public: virtual bool importerTest() { Assimp::Importer importer; - const aiScene *scene = importer.ReadFile( ASSIMP_TEST_MODELS_DIR "/BLEND/box.blend", 0 ); + const aiScene *scene = importer.ReadFile( ASSIMP_TEST_MODELS_DIR "/BLEND/box.blend", aiProcess_ValidateDataStructure ); return nullptr != scene; } }; diff --git a/test/unit/utCSMImportExport.cpp b/test/unit/utCSMImportExport.cpp index eb6672a44..74cdfcf94 100644 --- a/test/unit/utCSMImportExport.cpp +++ b/test/unit/utCSMImportExport.cpp @@ -43,6 +43,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #include "AbstractImportExportBase.h" #include +#include using namespace Assimp; @@ -50,7 +51,7 @@ class utCSMImportExport : public AbstractImportExportBase { public: virtual bool importerTest() { Assimp::Importer importer; - const aiScene *scene = importer.ReadFile( ASSIMP_TEST_MODELS_DIR "/CSM/ThomasFechten.csm", 0 ); + const aiScene *scene = importer.ReadFile( ASSIMP_TEST_MODELS_DIR "/CSM/ThomasFechten.csm", aiProcess_ValidateDataStructure ); return nullptr != scene; } }; diff --git a/test/unit/utColladaExportCamera.cpp b/test/unit/utColladaExportCamera.cpp index 4949efc83..cbb491204 100644 --- a/test/unit/utColladaExportCamera.cpp +++ b/test/unit/utColladaExportCamera.cpp @@ -45,6 +45,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #include #include #include +#include #ifndef ASSIMP_BUILD_NO_EXPORT @@ -73,7 +74,7 @@ TEST_F(ColladaExportCamera, testExportCamera) { const char* file = "cameraExp.dae"; - const aiScene* pTest = im->ReadFile(ASSIMP_TEST_MODELS_DIR "/Collada/cameras.dae",0); + const aiScene* pTest = im->ReadFile(ASSIMP_TEST_MODELS_DIR "/Collada/cameras.dae", aiProcess_ValidateDataStructure); ASSERT_TRUE(pTest!=NULL); ASSERT_TRUE(pTest->HasCameras()); @@ -95,7 +96,7 @@ TEST_F(ColladaExportCamera, testExportCamera) names[ i ] = orig->mName; pos[ i ] = orig->mPosition; } - const aiScene* imported = im->ReadFile(file,0); + const aiScene* imported = im->ReadFile(file, aiProcess_ValidateDataStructure); ASSERT_TRUE(imported!=NULL); diff --git a/test/unit/utColladaExportLight.cpp b/test/unit/utColladaExportLight.cpp index ccff1a31e..5c4801d32 100644 --- a/test/unit/utColladaExportLight.cpp +++ b/test/unit/utColladaExportLight.cpp @@ -45,6 +45,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #include #include #include +#include #ifndef ASSIMP_BUILD_NO_EXPORT @@ -72,7 +73,7 @@ TEST_F(ColladaExportLight, testExportLight) { const char* file = "lightsExp.dae"; - const aiScene* pTest = im->ReadFile(ASSIMP_TEST_MODELS_DIR "/Collada/lights.dae",0); + const aiScene* pTest = im->ReadFile(ASSIMP_TEST_MODELS_DIR "/Collada/lights.dae", aiProcess_ValidateDataStructure); ASSERT_TRUE(pTest!=NULL); ASSERT_TRUE(pTest->HasLights()); @@ -86,7 +87,7 @@ TEST_F(ColladaExportLight, testExportLight) EXPECT_EQ(AI_SUCCESS,ex->Export(pTest,"collada",file)); - const aiScene* imported = im->ReadFile(file,0); + const aiScene* imported = im->ReadFile(file, aiProcess_ValidateDataStructure); ASSERT_TRUE(imported!=NULL); diff --git a/test/unit/utColladaImportExport.cpp b/test/unit/utColladaImportExport.cpp index 997fca188..97cb5c2ca 100644 --- a/test/unit/utColladaImportExport.cpp +++ b/test/unit/utColladaImportExport.cpp @@ -43,6 +43,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #include "AbstractImportExportBase.h" #include +#include using namespace Assimp; @@ -50,7 +51,7 @@ class utColladaImportExport : public AbstractImportExportBase { public: virtual bool importerTest() { Assimp::Importer importer; - const aiScene *scene = importer.ReadFile( ASSIMP_TEST_MODELS_DIR "/Collada/duck.dae", 0 ); + const aiScene *scene = importer.ReadFile( ASSIMP_TEST_MODELS_DIR "/Collada/duck.dae", aiProcess_ValidateDataStructure ); return nullptr != scene; } }; diff --git a/test/unit/utD3MFImportExport.cpp b/test/unit/utD3MFImportExport.cpp index 0c322420c..5c155da4b 100644 --- a/test/unit/utD3MFImportExport.cpp +++ b/test/unit/utD3MFImportExport.cpp @@ -44,12 +44,13 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #include #include +#include class utD3MFImporterExporter : public AbstractImportExportBase { public: virtual bool importerTest() { Assimp::Importer importer; - const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/3MF/box.3mf", 0); + const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/3MF/box.3mf", aiProcess_ValidateDataStructure); EXPECT_EQ( 1u, scene->mNumMeshes ); aiMesh *mesh = scene->mMeshes[ 0 ]; EXPECT_NE( nullptr, mesh ); diff --git a/test/unit/utDXFImporterExporter.cpp b/test/unit/utDXFImporterExporter.cpp index 389284608..b75db3ec4 100644 --- a/test/unit/utDXFImporterExporter.cpp +++ b/test/unit/utDXFImporterExporter.cpp @@ -45,6 +45,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #include "AbstractImportExportBase.h" #include +#include using namespace Assimp; @@ -52,7 +53,7 @@ class utDXFImporterExporter : public AbstractImportExportBase { public: virtual bool importerTest() { Assimp::Importer importer; - const aiScene *scene = importer.ReadFile( ASSIMP_TEST_MODELS_DIR "/DXF/PinkEggFromLW.dxf", 0 ); + const aiScene *scene = importer.ReadFile( ASSIMP_TEST_MODELS_DIR "/DXF/PinkEggFromLW.dxf", aiProcess_ValidateDataStructure ); return nullptr != scene; } }; diff --git a/test/unit/utExport.cpp b/test/unit/utExport.cpp index f810e3dce..b3ab5e372 100644 --- a/test/unit/utExport.cpp +++ b/test/unit/utExport.cpp @@ -14,7 +14,7 @@ public: ex = new Assimp::Exporter(); im = new Assimp::Importer(); - pTest = im->ReadFile(ASSIMP_TEST_MODELS_DIR "/X/test.x",0); + pTest = im->ReadFile(ASSIMP_TEST_MODELS_DIR "/X/test.x", aiProcess_ValidateDataStructure); } virtual void TearDown() @@ -37,7 +37,7 @@ TEST_F(ExporterTest, testExportToFile) EXPECT_EQ(AI_SUCCESS,ex->Export(pTest,"collada",file)); // check if we can read it again - EXPECT_TRUE(im->ReadFile(file,0)); + EXPECT_TRUE(im->ReadFile(file, aiProcess_ValidateDataStructure)); } // ------------------------------------------------------------------------------------------------ diff --git a/test/unit/utFBXImporterExporter.cpp b/test/unit/utFBXImporterExporter.cpp index f335bc682..2807f801c 100644 --- a/test/unit/utFBXImporterExporter.cpp +++ b/test/unit/utFBXImporterExporter.cpp @@ -45,6 +45,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #include "AbstractImportExportBase.h" #include +#include using namespace Assimp; @@ -52,7 +53,7 @@ class utFBXImporterExporter : public AbstractImportExportBase { public: virtual bool importerTest() { Assimp::Importer importer; - const aiScene *scene = importer.ReadFile( ASSIMP_TEST_MODELS_DIR "/FBX/spider.fbx", 0 ); + const aiScene *scene = importer.ReadFile( ASSIMP_TEST_MODELS_DIR "/FBX/spider.fbx", aiProcess_ValidateDataStructure ); return nullptr != scene; } }; diff --git a/test/unit/utHMPImportExport.cpp b/test/unit/utHMPImportExport.cpp index 2b71c7211..35bc0bb01 100644 --- a/test/unit/utHMPImportExport.cpp +++ b/test/unit/utHMPImportExport.cpp @@ -43,6 +43,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #include "AbstractImportExportBase.h" #include +#include using namespace Assimp; @@ -50,7 +51,7 @@ class utHMPImportExport : public AbstractImportExportBase { public: virtual bool importerTest() { Assimp::Importer importer; - const aiScene *scene = importer.ReadFile( ASSIMP_TEST_MODELS_DIR "/HMP/terrain.hmp", 0 ); + const aiScene *scene = importer.ReadFile( ASSIMP_TEST_MODELS_DIR "/HMP/terrain.hmp", aiProcess_ValidateDataStructure ); return nullptr != scene; return true; diff --git a/test/unit/utIFCImportExport.cpp b/test/unit/utIFCImportExport.cpp index 79edb8e01..20a11ca57 100644 --- a/test/unit/utIFCImportExport.cpp +++ b/test/unit/utIFCImportExport.cpp @@ -43,6 +43,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #include "AbstractImportExportBase.h" #include +#include using namespace Assimp; @@ -50,7 +51,7 @@ class utIFCImportExport : public AbstractImportExportBase { public: virtual bool importerTest() { Assimp::Importer importer; - const aiScene *scene = importer.ReadFile( ASSIMP_TEST_MODELS_DIR "/IFC/AC14-FZK-Haus.ifc", 0 ); + const aiScene *scene = importer.ReadFile( ASSIMP_TEST_MODELS_DIR "/IFC/AC14-FZK-Haus.ifc", aiProcess_ValidateDataStructure ); return nullptr != scene; return true; diff --git a/test/unit/utIssues.cpp b/test/unit/utIssues.cpp index 2feef922b..a05adc856 100644 --- a/test/unit/utIssues.cpp +++ b/test/unit/utIssues.cpp @@ -44,6 +44,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #include #include #include +#include #include "TestModelFactory.h" @@ -66,7 +67,7 @@ TEST_F( utIssues, OpacityBugWhenExporting_727 ) { EXPECT_NE( desc, nullptr ); path.append( desc->fileExtension ); EXPECT_EQ( AI_SUCCESS, exporter.Export( scene, desc->id, path ) ); - const aiScene *newScene( importer.ReadFile( path, 0 ) ); + const aiScene *newScene( importer.ReadFile( path, aiProcess_ValidateDataStructure ) ); EXPECT_TRUE( NULL != newScene ); float newOpacity; if ( newScene->mNumMaterials > 0 ) { diff --git a/test/unit/utObjImportExport.cpp b/test/unit/utObjImportExport.cpp index d9df779ac..dd8adcd80 100644 --- a/test/unit/utObjImportExport.cpp +++ b/test/unit/utObjImportExport.cpp @@ -193,7 +193,7 @@ protected: virtual bool importerTest() { ::Assimp::Importer importer; - const aiScene *scene = importer.ReadFile( ASSIMP_TEST_MODELS_DIR "/OBJ/spider.obj", 0 ); + const aiScene *scene = importer.ReadFile( ASSIMP_TEST_MODELS_DIR "/OBJ/spider.obj", aiProcess_ValidateDataStructure ); return nullptr != scene; } @@ -202,7 +202,7 @@ protected: virtual bool exporterTest() { ::Assimp::Importer importer; ::Assimp::Exporter exporter; - const aiScene *scene = importer.ReadFile( ASSIMP_TEST_MODELS_DIR "/OBJ/spider.obj", 0 ); + const aiScene *scene = importer.ReadFile( ASSIMP_TEST_MODELS_DIR "/OBJ/spider.obj", aiProcess_ValidateDataStructure ); EXPECT_NE( nullptr, scene ); EXPECT_EQ( aiReturn_SUCCESS, exporter.Export( scene, "obj", ASSIMP_TEST_MODELS_DIR "/OBJ/spider_test.obj" ) ); EXPECT_EQ( aiReturn_SUCCESS, exporter.Export( scene, "objnomtl", ASSIMP_TEST_MODELS_DIR "/OBJ/spider_nomtl_test.obj" ) ); @@ -257,7 +257,7 @@ TEST_F( utObjImportExport, issue1111_no_mat_name_Test ) { TEST_F( utObjImportExport, issue809_vertex_color_Test ) { ::Assimp::Importer importer; - const aiScene *scene = importer.ReadFile( ASSIMP_TEST_MODELS_DIR "/OBJ/cube_with_vertexcolors.obj", 0 ); + const aiScene *scene = importer.ReadFile( ASSIMP_TEST_MODELS_DIR "/OBJ/cube_with_vertexcolors.obj", aiProcess_ValidateDataStructure ); EXPECT_NE( nullptr, scene ); #ifndef ASSIMP_BUILD_NO_EXPORT diff --git a/test/unit/utPMXImporter.cpp b/test/unit/utPMXImporter.cpp index 72916b8ef..3a1ce1f6a 100644 --- a/test/unit/utPMXImporter.cpp +++ b/test/unit/utPMXImporter.cpp @@ -52,7 +52,7 @@ class utPMXImporter : public AbstractImportExportBase { public: virtual bool importerTest() { Assimp::Importer importer; - /*const aiScene *scene = importer.ReadFile( ASSIMP_TEST_MODELS_DIR "/../models-nonbsd/MMD/Alicia_blade.pmx", 0 ); + /*const aiScene *scene = importer.ReadFile( ASSIMP_TEST_MODELS_DIR "/../models-nonbsd/MMD/Alicia_blade.pmx", aiProcess_ValidateDataStructure ); return nullptr != scene;*/ return true; } diff --git a/test/unit/utQ3DImportExport.cpp b/test/unit/utQ3DImportExport.cpp index d8195309f..e656bc53c 100644 --- a/test/unit/utQ3DImportExport.cpp +++ b/test/unit/utQ3DImportExport.cpp @@ -44,6 +44,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #include "AbstractImportExportBase.h" #include +#include using namespace Assimp; @@ -51,7 +52,7 @@ class utQ3DImportExport : public AbstractImportExportBase { public: virtual bool importerTest() { Assimp::Importer importer; - const aiScene *scene = importer.ReadFile( ASSIMP_TEST_MODELS_DIR "/Q3D/earth.q3o", 0 ); + const aiScene *scene = importer.ReadFile( ASSIMP_TEST_MODELS_DIR "/Q3D/earth.q3o", aiProcess_ValidateDataStructure ); return nullptr != scene; } }; diff --git a/test/unit/utSIBImporter.cpp b/test/unit/utSIBImporter.cpp index ecaa92f26..affa3c9ad 100644 --- a/test/unit/utSIBImporter.cpp +++ b/test/unit/utSIBImporter.cpp @@ -43,6 +43,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #include "SIBImporter.h" #include +#include #include "AbstractImportExportBase.h" using namespace ::Assimp; @@ -51,7 +52,7 @@ class utSIBImporter : public AbstractImportExportBase { public: virtual bool importerTest() { Assimp::Importer importer; - const aiScene *scene = importer.ReadFile( ASSIMP_TEST_MODELS_DIR "/SIB/heffalump.sib", 0 ); + const aiScene *scene = importer.ReadFile( ASSIMP_TEST_MODELS_DIR "/SIB/heffalump.sib", aiProcess_ValidateDataStructure ); return nullptr != scene; } }; diff --git a/test/unit/utSMDImportExport.cpp b/test/unit/utSMDImportExport.cpp index 9139bb922..610d0c5d4 100644 --- a/test/unit/utSMDImportExport.cpp +++ b/test/unit/utSMDImportExport.cpp @@ -43,6 +43,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #include "SMDLoader.h" #include +#include #include "AbstractImportExportBase.h" using namespace ::Assimp; @@ -51,7 +52,7 @@ class utSMDImporter : public AbstractImportExportBase { public: virtual bool importerTest() { Assimp::Importer importer; - const aiScene *scene = importer.ReadFile( ASSIMP_TEST_MODELS_DIR "/SMD/triangle.smd", 0 ); + const aiScene *scene = importer.ReadFile( ASSIMP_TEST_MODELS_DIR "/SMD/triangle.smd", aiProcess_ValidateDataStructure ); return nullptr != scene; } }; @@ -73,6 +74,6 @@ TEST_F( utSMDImporter, importTest ) { TEST_F( utSMDImporter, issue_899_Texture_garbage_at_end_of_string_Test ) { Assimp::Importer importer; - const aiScene *scene = importer.ReadFile( ASSIMP_TEST_MODELS_DIR "/SMD/holy_grailref.smd", 0 ); + const aiScene *scene = importer.ReadFile( ASSIMP_TEST_MODELS_DIR "/SMD/holy_grailref.smd", aiProcess_ValidateDataStructure ); EXPECT_NE( nullptr, scene ); } diff --git a/test/unit/utSTLImportExport.cpp b/test/unit/utSTLImportExport.cpp index 0ee3de955..2a3cceaf0 100644 --- a/test/unit/utSTLImportExport.cpp +++ b/test/unit/utSTLImportExport.cpp @@ -45,6 +45,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #include "AbstractImportExportBase.h" #include +#include using namespace Assimp; @@ -52,7 +53,7 @@ class utSTLImporterExporter : public AbstractImportExportBase { public: virtual bool importerTest() { Assimp::Importer importer; - const aiScene *scene = importer.ReadFile( ASSIMP_TEST_MODELS_DIR "/STL/Spider_ascii.stl", 0 ); + const aiScene *scene = importer.ReadFile( ASSIMP_TEST_MODELS_DIR "/STL/Spider_ascii.stl", aiProcess_ValidateDataStructure ); return nullptr != scene; } }; @@ -63,6 +64,6 @@ TEST_F( utSTLImporterExporter, importXFromFileTest ) { TEST_F( utSTLImporterExporter, test_with_two_solids ) { Assimp::Importer importer; - const aiScene *scene = importer.ReadFile( ASSIMP_TEST_MODELS_DIR "/STL/triangle_with_two_solids.stl", 0 ); + const aiScene *scene = importer.ReadFile( ASSIMP_TEST_MODELS_DIR "/STL/triangle_with_two_solids.stl", aiProcess_ValidateDataStructure ); EXPECT_NE( nullptr, scene ); } diff --git a/test/unit/utX3DImportExport.cpp b/test/unit/utX3DImportExport.cpp index a84c58efc..cb53b3292 100644 --- a/test/unit/utX3DImportExport.cpp +++ b/test/unit/utX3DImportExport.cpp @@ -45,6 +45,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #include "AbstractImportExportBase.h" #include +#include using namespace Assimp; @@ -52,7 +53,7 @@ class utX3DImportExport : public AbstractImportExportBase { public: virtual bool importerTest() { Assimp::Importer importer; - const aiScene *scene = importer.ReadFile( ASSIMP_TEST_MODELS_DIR "/X3D/ComputerKeyboard.x3d", 0 ); + const aiScene *scene = importer.ReadFile( ASSIMP_TEST_MODELS_DIR "/X3D/ComputerKeyboard.x3d", aiProcess_ValidateDataStructure ); return nullptr != scene; } }; diff --git a/test/unit/utXImporterExporter.cpp b/test/unit/utXImporterExporter.cpp index 042853d3d..4a6300d19 100644 --- a/test/unit/utXImporterExporter.cpp +++ b/test/unit/utXImporterExporter.cpp @@ -45,6 +45,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #include "AbstractImportExportBase.h" #include +#include using namespace Assimp; @@ -52,7 +53,7 @@ class utXImporterExporter : public AbstractImportExportBase { public: virtual bool importerTest() { Assimp::Importer importer; - const aiScene *scene = importer.ReadFile( ASSIMP_TEST_MODELS_DIR "/X/test.x", 0 ); + const aiScene *scene = importer.ReadFile( ASSIMP_TEST_MODELS_DIR "/X/test.x", aiProcess_ValidateDataStructure ); return nullptr != scene; } }; diff --git a/test/unit/utglTF2ImportExport.cpp b/test/unit/utglTF2ImportExport.cpp index fa69d648a..c6ccde406 100644 --- a/test/unit/utglTF2ImportExport.cpp +++ b/test/unit/utglTF2ImportExport.cpp @@ -44,6 +44,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #include #include +#include using namespace Assimp; @@ -51,7 +52,7 @@ class utglTF2ImportExport : public AbstractImportExportBase { public: virtual bool importerTest() { Assimp::Importer importer; - const aiScene *scene = importer.ReadFile( ASSIMP_TEST_MODELS_DIR "/glTF2/BoxTextured-glTF/BoxTextured.gltf", 0); + const aiScene *scene = importer.ReadFile( ASSIMP_TEST_MODELS_DIR "/glTF2/BoxTextured-glTF/BoxTextured.gltf", aiProcess_ValidateDataStructure); return nullptr != scene; } @@ -59,7 +60,7 @@ public: virtual bool exporterTest() { Assimp::Importer importer; Assimp::Exporter exporter; - const aiScene *scene = importer.ReadFile( ASSIMP_TEST_MODELS_DIR "/glTF2/BoxTextured-glTF/BoxTextured.gltf", 0 ); + const aiScene *scene = importer.ReadFile( ASSIMP_TEST_MODELS_DIR "/glTF2/BoxTextured-glTF/BoxTextured.gltf", aiProcess_ValidateDataStructure ); EXPECT_NE( nullptr, scene ); EXPECT_EQ( aiReturn_SUCCESS, exporter.Export( scene, "gltf2", ASSIMP_TEST_MODELS_DIR "/glTF2/BoxTextured-glTF/BoxTextured_out.gltf" ) ); diff --git a/test/unit/utglTFImportExport.cpp b/test/unit/utglTFImportExport.cpp index 18c348299..4e1f765a1 100644 --- a/test/unit/utglTFImportExport.cpp +++ b/test/unit/utglTFImportExport.cpp @@ -43,6 +43,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #include "AbstractImportExportBase.h" #include +#include using namespace Assimp; @@ -50,7 +51,7 @@ class utglTFImportExport : public AbstractImportExportBase { public: virtual bool importerTest() { Assimp::Importer importer; - const aiScene *scene = importer.ReadFile( ASSIMP_TEST_MODELS_DIR "/glTF/TwoBoxes/TwoBoxes.gltf", 0 ); + const aiScene *scene = importer.ReadFile( ASSIMP_TEST_MODELS_DIR "/glTF/TwoBoxes/TwoBoxes.gltf", aiProcess_ValidateDataStructure ); return nullptr != scene; } };