From 625357685cdf78295a281a0dba6a6a3f1468d64a Mon Sep 17 00:00:00 2001 From: Kim Kulling Date: Thu, 9 Jan 2020 22:04:46 +0100 Subject: [PATCH 01/85] Update EmbedTexturesProcess.cpp closes https://github.com/assimp/assimp/issues/2874 : fix leaked texture buffer. --- code/PostProcessing/EmbedTexturesProcess.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/code/PostProcessing/EmbedTexturesProcess.cpp b/code/PostProcessing/EmbedTexturesProcess.cpp index 739382a05..c83738563 100644 --- a/code/PostProcessing/EmbedTexturesProcess.cpp +++ b/code/PostProcessing/EmbedTexturesProcess.cpp @@ -128,7 +128,8 @@ bool EmbedTexturesProcess::addTexture(aiScene* pScene, std::string path) const { auto oldTextures = pScene->mTextures; pScene->mTextures = new aiTexture*[pScene->mNumTextures]; ::memmove(pScene->mTextures, oldTextures, sizeof(aiTexture*) * (pScene->mNumTextures - 1u)); - + delete [] oldTextures; + // Add the new texture auto pTexture = new aiTexture; pTexture->mHeight = 0; // Means that this is still compressed From 13a2f22835cfe4093860de3e3d33782f854a2e58 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lo=C3=AFc?= Date: Tue, 14 Jan 2020 16:26:24 +0100 Subject: [PATCH 02/85] Fix Assimp patch version to match the last bug fix release --- CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 23b6f6d61..e14c4aa21 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -51,7 +51,7 @@ IF(HUNTER_ENABLED) add_definitions(-DASSIMP_USE_HUNTER) ENDIF(HUNTER_ENABLED) -PROJECT( Assimp VERSION 5.0.0 ) +PROJECT( Assimp VERSION 5.0.1 ) # All supported options ############################################### From cc40963e1a9a4734180246096ca2f81a80e15c24 Mon Sep 17 00:00:00 2001 From: Matthias Moulin Date: Fri, 17 Jan 2020 16:07:50 +0100 Subject: [PATCH 03/85] Removed name of unreferenced local variable in catch block --- code/FBX/FBXConverter.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/FBX/FBXConverter.cpp b/code/FBX/FBXConverter.cpp index 5b34868ba..d672afe56 100644 --- a/code/FBX/FBXConverter.cpp +++ b/code/FBX/FBXConverter.cpp @@ -1564,7 +1564,7 @@ namespace Assimp { bone_map.clear(); } - catch (std::exception&e) { + catch (std::exception&) { std::for_each(bones.begin(), bones.end(), Util::delete_fun()); throw; } From 247667233dac4ce9d164f1a876f1ad32390f8e12 Mon Sep 17 00:00:00 2001 From: Marc-Antoine Lortie Date: Sat, 18 Jan 2020 14:58:19 -0500 Subject: [PATCH 04/85] Fixed memory leak in MDLLoader.cpp If one of the MDL importer implementations throw an exception, the memory allocated at mBuffer may never be freed. This fix should prevent further memory leaks. --- code/MDL/MDLLoader.cpp | 167 ++++++++++++++++++++++------------------- 1 file changed, 89 insertions(+), 78 deletions(-) diff --git a/code/MDL/MDLLoader.cpp b/code/MDL/MDLLoader.cpp index eb629d35a..78dc9d77f 100644 --- a/code/MDL/MDLLoader.cpp +++ b/code/MDL/MDLLoader.cpp @@ -184,88 +184,99 @@ void MDLImporter::InternReadFile( const std::string& pFile, if( iFileSize < sizeof(MDL::HalfLife::SequenceHeader_HL1)) { throw DeadlyImportError( "MDL File is too small."); } - - // Allocate storage and copy the contents of the file to a memory buffer - mBuffer =new unsigned char[iFileSize+1]; - file->Read( (void*)mBuffer, 1, iFileSize); - - // Append a binary zero to the end of the buffer. - // this is just for safety that string parsing routines - // find the end of the buffer ... - mBuffer[iFileSize] = '\0'; - const uint32_t iMagicWord = *((uint32_t*)mBuffer); - - // Determine the file subtype and call the appropriate member function - - // Original Quake1 format - if (AI_MDL_MAGIC_NUMBER_BE == iMagicWord || AI_MDL_MAGIC_NUMBER_LE == iMagicWord) { - ASSIMP_LOG_DEBUG("MDL subtype: Quake 1, magic word is IDPO"); - iGSFileVersion = 0; - InternReadFile_Quake1(); - } - // GameStudio A MDL2 format - used by some test models that come with 3DGS - else if (AI_MDL_MAGIC_NUMBER_BE_GS3 == iMagicWord || AI_MDL_MAGIC_NUMBER_LE_GS3 == iMagicWord) { - ASSIMP_LOG_DEBUG("MDL subtype: 3D GameStudio A2, magic word is MDL2"); - iGSFileVersion = 2; - InternReadFile_Quake1(); - } - // GameStudio A4 MDL3 format - else if (AI_MDL_MAGIC_NUMBER_BE_GS4 == iMagicWord || AI_MDL_MAGIC_NUMBER_LE_GS4 == iMagicWord) { - ASSIMP_LOG_DEBUG("MDL subtype: 3D GameStudio A4, magic word is MDL3"); - iGSFileVersion = 3; - InternReadFile_3DGS_MDL345(); - } - // GameStudio A5+ MDL4 format - else if (AI_MDL_MAGIC_NUMBER_BE_GS5a == iMagicWord || AI_MDL_MAGIC_NUMBER_LE_GS5a == iMagicWord) { - ASSIMP_LOG_DEBUG("MDL subtype: 3D GameStudio A4, magic word is MDL4"); - iGSFileVersion = 4; - InternReadFile_3DGS_MDL345(); - } - // GameStudio A5+ MDL5 format - else if (AI_MDL_MAGIC_NUMBER_BE_GS5b == iMagicWord || AI_MDL_MAGIC_NUMBER_LE_GS5b == iMagicWord) { - ASSIMP_LOG_DEBUG("MDL subtype: 3D GameStudio A5, magic word is MDL5"); - iGSFileVersion = 5; - InternReadFile_3DGS_MDL345(); - } - // GameStudio A7 MDL7 format - else if (AI_MDL_MAGIC_NUMBER_BE_GS7 == iMagicWord || AI_MDL_MAGIC_NUMBER_LE_GS7 == iMagicWord) { - ASSIMP_LOG_DEBUG("MDL subtype: 3D GameStudio A7, magic word is MDL7"); - iGSFileVersion = 7; - InternReadFile_3DGS_MDL7(); - } - // IDST/IDSQ Format (CS:S/HL^2, etc ...) - else if (AI_MDL_MAGIC_NUMBER_BE_HL2a == iMagicWord || AI_MDL_MAGIC_NUMBER_LE_HL2a == iMagicWord || - AI_MDL_MAGIC_NUMBER_BE_HL2b == iMagicWord || AI_MDL_MAGIC_NUMBER_LE_HL2b == iMagicWord) - { - iGSFileVersion = 0; - - HalfLife::HalfLifeMDLBaseHeader *pHeader = (HalfLife::HalfLifeMDLBaseHeader *)mBuffer; - if (pHeader->version == AI_MDL_HL1_VERSION) - { - ASSIMP_LOG_DEBUG("MDL subtype: Half-Life 1/Goldsrc Engine, magic word is IDST/IDSQ"); - InternReadFile_HL1(pFile, iMagicWord); + + // delete the file buffer and cleanup. + auto DeleteBufferAndCleanup = [&]() { + if (mBuffer) { + delete mBuffer; + mBuffer = nullptr; } - else - { - ASSIMP_LOG_DEBUG("MDL subtype: Source(tm) Engine, magic word is IDST/IDSQ"); - InternReadFile_HL2(); + AI_DEBUG_INVALIDATE_PTR(pIOHandler); + AI_DEBUG_INVALIDATE_PTR(pScene); + }; + + try { + // Allocate storage and copy the contents of the file to a memory buffer + mBuffer = new unsigned char[iFileSize+1]; + file->Read( (void*)mBuffer, 1, iFileSize); + + // Append a binary zero to the end of the buffer. + // this is just for safety that string parsing routines + // find the end of the buffer ... + mBuffer[iFileSize] = '\0'; + const uint32_t iMagicWord = *((uint32_t*)mBuffer); + + // Determine the file subtype and call the appropriate member function + + // Original Quake1 format + if (AI_MDL_MAGIC_NUMBER_BE == iMagicWord || AI_MDL_MAGIC_NUMBER_LE == iMagicWord) { + ASSIMP_LOG_DEBUG("MDL subtype: Quake 1, magic word is IDPO"); + iGSFileVersion = 0; + InternReadFile_Quake1(); } - } - else { - // print the magic word to the log file - throw DeadlyImportError( "Unknown MDL subformat " + pFile + - ". Magic word (" + std::string((char*)&iMagicWord,4) + ") is not known"); - } + // GameStudio A MDL2 format - used by some test models that come with 3DGS + else if (AI_MDL_MAGIC_NUMBER_BE_GS3 == iMagicWord || AI_MDL_MAGIC_NUMBER_LE_GS3 == iMagicWord) { + ASSIMP_LOG_DEBUG("MDL subtype: 3D GameStudio A2, magic word is MDL2"); + iGSFileVersion = 2; + InternReadFile_Quake1(); + } + // GameStudio A4 MDL3 format + else if (AI_MDL_MAGIC_NUMBER_BE_GS4 == iMagicWord || AI_MDL_MAGIC_NUMBER_LE_GS4 == iMagicWord) { + ASSIMP_LOG_DEBUG("MDL subtype: 3D GameStudio A4, magic word is MDL3"); + iGSFileVersion = 3; + InternReadFile_3DGS_MDL345(); + } + // GameStudio A5+ MDL4 format + else if (AI_MDL_MAGIC_NUMBER_BE_GS5a == iMagicWord || AI_MDL_MAGIC_NUMBER_LE_GS5a == iMagicWord) { + ASSIMP_LOG_DEBUG("MDL subtype: 3D GameStudio A4, magic word is MDL4"); + iGSFileVersion = 4; + InternReadFile_3DGS_MDL345(); + } + // GameStudio A5+ MDL5 format + else if (AI_MDL_MAGIC_NUMBER_BE_GS5b == iMagicWord || AI_MDL_MAGIC_NUMBER_LE_GS5b == iMagicWord) { + ASSIMP_LOG_DEBUG("MDL subtype: 3D GameStudio A5, magic word is MDL5"); + iGSFileVersion = 5; + InternReadFile_3DGS_MDL345(); + } + // GameStudio A7 MDL7 format + else if (AI_MDL_MAGIC_NUMBER_BE_GS7 == iMagicWord || AI_MDL_MAGIC_NUMBER_LE_GS7 == iMagicWord) { + ASSIMP_LOG_DEBUG("MDL subtype: 3D GameStudio A7, magic word is MDL7"); + iGSFileVersion = 7; + InternReadFile_3DGS_MDL7(); + } + // IDST/IDSQ Format (CS:S/HL^2, etc ...) + else if (AI_MDL_MAGIC_NUMBER_BE_HL2a == iMagicWord || AI_MDL_MAGIC_NUMBER_LE_HL2a == iMagicWord || + AI_MDL_MAGIC_NUMBER_BE_HL2b == iMagicWord || AI_MDL_MAGIC_NUMBER_LE_HL2b == iMagicWord) + { + iGSFileVersion = 0; - // Now rotate the whole scene 90 degrees around the x axis to convert to internal coordinate system - pScene->mRootNode->mTransformation = aiMatrix4x4(1.f,0.f,0.f,0.f, - 0.f,0.f,1.f,0.f,0.f,-1.f,0.f,0.f,0.f,0.f,0.f,1.f); + HalfLife::HalfLifeMDLBaseHeader *pHeader = (HalfLife::HalfLifeMDLBaseHeader *)mBuffer; + if (pHeader->version == AI_MDL_HL1_VERSION) + { + ASSIMP_LOG_DEBUG("MDL subtype: Half-Life 1/Goldsrc Engine, magic word is IDST/IDSQ"); + InternReadFile_HL1(pFile, iMagicWord); + } + else + { + ASSIMP_LOG_DEBUG("MDL subtype: Source(tm) Engine, magic word is IDST/IDSQ"); + InternReadFile_HL2(); + } + } + else { + // print the magic word to the log file + throw DeadlyImportError( "Unknown MDL subformat " + pFile + + ". Magic word (" + std::string((char*)&iMagicWord,4) + ") is not known"); + } - // delete the file buffer and cleanup - delete [] mBuffer; - mBuffer= nullptr; - AI_DEBUG_INVALIDATE_PTR(pIOHandler); - AI_DEBUG_INVALIDATE_PTR(pScene); + // Now rotate the whole scene 90 degrees around the x axis to convert to internal coordinate system + pScene->mRootNode->mTransformation = aiMatrix4x4(1.f,0.f,0.f,0.f, + 0.f,0.f,1.f,0.f,0.f,-1.f,0.f,0.f,0.f,0.f,0.f,1.f); + + DeleteBufferAndCleanup(); + } catch(...) { + DeleteBufferAndCleanup(); + throw; + } } // ------------------------------------------------------------------------------------------------ From b74562f8a08ab889e10b5f37cfac3b957cce52f8 Mon Sep 17 00:00:00 2001 From: Marc-Antoine Lortie Date: Sat, 18 Jan 2020 15:16:03 -0500 Subject: [PATCH 05/85] Fixed delete operator. --- code/MDL/MDLLoader.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/MDL/MDLLoader.cpp b/code/MDL/MDLLoader.cpp index 78dc9d77f..0c80abfc3 100644 --- a/code/MDL/MDLLoader.cpp +++ b/code/MDL/MDLLoader.cpp @@ -188,7 +188,7 @@ void MDLImporter::InternReadFile( const std::string& pFile, // delete the file buffer and cleanup. auto DeleteBufferAndCleanup = [&]() { if (mBuffer) { - delete mBuffer; + delete [] mBuffer; mBuffer = nullptr; } AI_DEBUG_INVALIDATE_PTR(pIOHandler); From 9deb8fb78630032e6e88c6bf0fd505045965b510 Mon Sep 17 00:00:00 2001 From: Marc-Antoine Lortie Date: Sun, 19 Jan 2020 12:48:45 -0500 Subject: [PATCH 06/85] Fixed child nodes not deleted if the importer failed to add them to the scene root node. --- code/MDL/HalfLife/HL1MDLLoader.cpp | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/code/MDL/HalfLife/HL1MDLLoader.cpp b/code/MDL/HalfLife/HL1MDLLoader.cpp index 90a1479a3..ea156316f 100644 --- a/code/MDL/HalfLife/HL1MDLLoader.cpp +++ b/code/MDL/HalfLife/HL1MDLLoader.cpp @@ -124,6 +124,17 @@ void HL1MDLLoader::release_resources() { delete[] anim_headers_; anim_headers_ = nullptr; } + + if (rootnode_children_.size()) { + // Here, it means that the nodes were not added to the + // scene root node. We still have to delete them. + for (auto it = rootnode_children_.begin(); it != rootnode_children_.end(); ++it) { + if (*it) + delete *it; + } + // Ensure this happens only once. + rootnode_children_.clear(); + } } // ------------------------------------------------------------------------------------------------ @@ -171,6 +182,10 @@ void HL1MDLLoader::load_file() { scene_->mRootNode->addChildren( static_cast(rootnode_children_.size()), rootnode_children_.data()); + + // Clear the list of nodes so they will not be destroyed + // when resources are released. + rootnode_children_.clear(); } release_resources(); From b7e51a38ef671aff02878c6dee74b88d4f477f70 Mon Sep 17 00:00:00 2001 From: Kim Kulling Date: Sun, 19 Jan 2020 20:16:13 +0100 Subject: [PATCH 07/85] Update HL1MDLLoader.cpp Minor findings. --- code/MDL/HalfLife/HL1MDLLoader.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/code/MDL/HalfLife/HL1MDLLoader.cpp b/code/MDL/HalfLife/HL1MDLLoader.cpp index ea156316f..edba58617 100644 --- a/code/MDL/HalfLife/HL1MDLLoader.cpp +++ b/code/MDL/HalfLife/HL1MDLLoader.cpp @@ -125,12 +125,14 @@ void HL1MDLLoader::release_resources() { anim_headers_ = nullptr; } - if (rootnode_children_.size()) { + // Root has some children ndoes. so let's proceed them + if (!rootnode_children_.empty()) { // Here, it means that the nodes were not added to the // scene root node. We still have to delete them. for (auto it = rootnode_children_.begin(); it != rootnode_children_.end(); ++it) { - if (*it) + if (*it) { delete *it; + } } // Ensure this happens only once. rootnode_children_.clear(); From 0c228806f707ff640d4df0cc85ee9f667b44cdef Mon Sep 17 00:00:00 2001 From: Turo Lamminen Date: Fri, 17 Jan 2020 14:17:26 +0200 Subject: [PATCH 08/85] Add all shipped .blend files to unit tests --- test/unit/utBlenderImportExport.cpp | 172 ++++++++++++++++++++++++++++ 1 file changed, 172 insertions(+) diff --git a/test/unit/utBlenderImportExport.cpp b/test/unit/utBlenderImportExport.cpp index b2d268497..f6d557e0c 100644 --- a/test/unit/utBlenderImportExport.cpp +++ b/test/unit/utBlenderImportExport.cpp @@ -60,3 +60,175 @@ public: TEST_F( utBlenderImporterExporter, importBlenFromFileTest ) { EXPECT_TRUE( importerTest() ); } + + +TEST( utBlenderImporter, import4cubes ) { + Assimp::Importer importer; + const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/BLEND/4Cubes4Mats_248.blend", aiProcess_ValidateDataStructure); + // FIXME: this is probably not right, loading this should succeed + ASSERT_EQ(nullptr, scene); +} + + +TEST( utBlenderImporter, import269_regress1 ) { + Assimp::Importer importer; + const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/BLEND/blender_269_regress1.blend", aiProcess_ValidateDataStructure); + ASSERT_NE(nullptr, scene); +} + + +TEST( utBlenderImporter, importBlenderDefault248 ) { + Assimp::Importer importer; + const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/BLEND/BlenderDefault_248.blend", aiProcess_ValidateDataStructure); + // FIXME: this is probably not right, loading this should succeed + ASSERT_EQ(nullptr, scene); +} + + +TEST( utBlenderImporter, importBlenderDefault250 ) { + Assimp::Importer importer; + const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/BLEND/BlenderDefault_250.blend", aiProcess_ValidateDataStructure); + // FIXME: this is probably not right, loading this should succeed + ASSERT_EQ(nullptr, scene); +} + + +TEST( utBlenderImporter, importBlenderDefault250Compressed ) { + Assimp::Importer importer; + const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/BLEND/BlenderDefault_250_Compressed.blend", aiProcess_ValidateDataStructure); + // FIXME: this is probably not right, loading this should succeed + ASSERT_EQ(nullptr, scene); +} + + +TEST( utBlenderImporter, importBlenderDefault262 ) { + Assimp::Importer importer; + const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/BLEND/BlenderDefault_262.blend", aiProcess_ValidateDataStructure); + // FIXME: this is probably not right, loading this should succeed + ASSERT_EQ(nullptr, scene); +} + + +TEST( utBlenderImporter, importBlenderDefault269 ) { + Assimp::Importer importer; + const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/BLEND/BlenderDefault_269.blend", aiProcess_ValidateDataStructure); + ASSERT_NE(nullptr, scene); +} + + +TEST( utBlenderImporter, importBlenderDefault271 ) { + Assimp::Importer importer; + const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/BLEND/BlenderDefault_271.blend", aiProcess_ValidateDataStructure); + ASSERT_NE(nullptr, scene); +} + + +TEST( utBlenderImporter, importCubeHierarchy_248 ) { + Assimp::Importer importer; + const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/BLEND/CubeHierarchy_248.blend", aiProcess_ValidateDataStructure); + // FIXME: this is probably not right, loading this should succeed + ASSERT_EQ(nullptr, scene); +} + + +TEST( utBlenderImporter, importHuman ) { + Assimp::Importer importer; + const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/BLEND/HUMAN.blend", aiProcess_ValidateDataStructure); + // FIXME: this is probably not right, loading this should succeed + ASSERT_EQ(nullptr, scene); +} + + +TEST( utBlenderImporter, importMirroredCube_252 ) { + Assimp::Importer importer; + const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/BLEND/MirroredCube_252.blend", aiProcess_ValidateDataStructure); + // FIXME: this is probably not right, loading this should succeed + ASSERT_EQ(nullptr, scene); +} + + +TEST( utBlenderImporter, importNoisyTexturedCube_VoronoiGlob_248 ) { + Assimp::Importer importer; + const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/BLEND/NoisyTexturedCube_VoronoiGlob_248.blend", aiProcess_ValidateDataStructure); + // FIXME: this is probably not right, loading this should succeed + ASSERT_EQ(nullptr, scene); +} + + +TEST( utBlenderImporter, importSmoothVsSolidCube_248 ) { + Assimp::Importer importer; + const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/BLEND/SmoothVsSolidCube_248.blend", aiProcess_ValidateDataStructure); + // FIXME: this is probably not right, loading this should succeed + ASSERT_EQ(nullptr, scene); +} + + +TEST( utBlenderImporter, importSuzanne_248 ) { + Assimp::Importer importer; + const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/BLEND/Suzanne_248.blend", aiProcess_ValidateDataStructure); + // FIXME: this is probably not right, loading this should succeed + ASSERT_EQ(nullptr, scene); +} + + +TEST( utBlenderImporter, importSuzanneSubdiv_252 ) { + Assimp::Importer importer; + const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/BLEND/SuzanneSubdiv_252.blend", aiProcess_ValidateDataStructure); + // FIXME: this is probably not right, loading this should succeed + ASSERT_EQ(nullptr, scene); +} + + +TEST( utBlenderImporter, importTexturedCube_ImageGlob_248 ) { + Assimp::Importer importer; + const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/BLEND/TexturedCube_ImageGlob_248.blend", aiProcess_ValidateDataStructure); + // FIXME: this is probably not right, loading this should succeed + ASSERT_EQ(nullptr, scene); +} + + +TEST( utBlenderImporter, importTexturedPlane_ImageUv_248 ) { + Assimp::Importer importer; + const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/BLEND/TexturedPlane_ImageUv_248.blend", aiProcess_ValidateDataStructure); + // FIXME: this is probably not right, loading this should succeed + ASSERT_EQ(nullptr, scene); +} + + +TEST( utBlenderImporter, importTexturedPlane_ImageUvPacked_248 ) { + Assimp::Importer importer; + const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/BLEND/TexturedPlane_ImageUvPacked_248.blend", aiProcess_ValidateDataStructure); + // FIXME: this is probably not right, loading this should succeed + ASSERT_EQ(nullptr, scene); +} + + +TEST( utBlenderImporter, importTorusLightsCams_250_compressed ) { + Assimp::Importer importer; + const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/BLEND/TorusLightsCams_250_compressed.blend", aiProcess_ValidateDataStructure); + // FIXME: this is probably not right, loading this should succeed + ASSERT_EQ(nullptr, scene); +} + + +TEST( utBlenderImporter, import_yxa_1 ) { + Assimp::Importer importer; + const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/BLEND/yxa_1.blend", aiProcess_ValidateDataStructure); + // FIXME: this is probably not right, loading this should succeed + ASSERT_EQ(nullptr, scene); +} + + +TEST( utBlenderImporter, importBob ) { + Assimp::Importer importer; + const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_NONBSD_DIR "/BLEND/Bob.blend", aiProcess_ValidateDataStructure); + // FIXME: this is probably not right, loading this should succeed + ASSERT_EQ(nullptr, scene); +} + + +TEST( utBlenderImporter, importFleurOptonl ) { + Assimp::Importer importer; + const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_NONBSD_DIR "/BLEND/fleurOptonl.blend", aiProcess_ValidateDataStructure); + ASSERT_NE(nullptr, scene); +} From 6e4b2086591d0e0a9d576f948b53875693bc30a2 Mon Sep 17 00:00:00 2001 From: Turo Lamminen Date: Mon, 20 Jan 2020 14:14:17 +0200 Subject: [PATCH 09/85] Revert QuickDraw--Chasis.lwo to working version --- .../LWO2/LWSReferences/QuickDraw--Chasis.lwo | Bin 90970 -> 90974 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/test/models-nonbsd/LWO/LWO2/LWSReferences/QuickDraw--Chasis.lwo b/test/models-nonbsd/LWO/LWO2/LWSReferences/QuickDraw--Chasis.lwo index d8fbd397b4e6dd429ae315f36796ecb83a3a73c4..056ad233cf161cb125c1b9a63ff83f36082dc171 100644 GIT binary patch delta 36 qcmcb0jP>3z)(uv77 Date: Mon, 20 Jan 2020 14:22:18 +0200 Subject: [PATCH 10/85] Revert broken FBX models to working versions --- .../models-nonbsd/FBX/2013_BINARY/Granate.fbx | Bin 42991 -> 42992 bytes test/models-nonbsd/FBX/2013_BINARY/duck.fbx | Bin 960527 -> 960528 bytes test/models-nonbsd/FBX/2013_BINARY/jeep1.fbx | Bin 155791 -> 155792 bytes .../FBX/2013_BINARY/kwxport_test_vcolors.fbx | Bin 616062 -> 617536 bytes .../FBX/2013_BINARY/mar_rifle.fbx | Bin 247144 -> 247184 bytes .../models-nonbsd/FBX/2013_BINARY/pyramob.fbx | Bin 846765 -> 846768 bytes 6 files changed, 0 insertions(+), 0 deletions(-) diff --git a/test/models-nonbsd/FBX/2013_BINARY/Granate.fbx b/test/models-nonbsd/FBX/2013_BINARY/Granate.fbx index d1efbf2f677a05e363af9978a4739b06a70bf17e..1e25c223b568063a24adc00e05b7a49731b7d7ca 100644 GIT binary patch delta 16 YcmaEVp6SDRrVWoh7DT^6-+kpfSGXXI(5VHU=D-g2*F*^`*05K;Ja{)0o5c2>r@AfH+ H`Knm}bpRhK delta 69 zcmbPm!K(j)Rl^p>DT~{uE@lK`CLm@8Viq7~1!6WJW(Q&pAm#*OE+FOxVjdvo-9B|O HUo{H=XgVJ% diff --git a/test/models-nonbsd/FBX/2013_BINARY/jeep1.fbx b/test/models-nonbsd/FBX/2013_BINARY/jeep1.fbx index 33607b99382b3eda2d49cb789e105f1c34148be9..8d35f7f1699bda436ff419d105b1d73bf505f74f 100644 GIT binary patch delta 21 dcmeA_$T{I4XG06)7N!k$jJ(@7*fHH#1OQ%R2oeAQ delta 19 bcmbPmkhA|FXG06)7N!k$+c(-V-B$zvQ%(p4 diff --git a/test/models-nonbsd/FBX/2013_BINARY/kwxport_test_vcolors.fbx b/test/models-nonbsd/FBX/2013_BINARY/kwxport_test_vcolors.fbx index 686d273eca798d6e6d5f7caecaae2b04892f904d..f3cd463e224fb95f53aea9d1d79a012a2c8998d3 100644 GIT binary patch delta 8515 zcmd5>4Rlo15kB|v?js8ul9L(?Y*>jA3dTTkP%sc!#0enYnXkzL`5Sd#QRz)yW|hM@8@GKEIH^;>cgrVT#^3J4UZM;i3JbqKfs}-R?MZ z)&6RutUKhuaQE%dhD(QeO_;krgQC4DLCFv7km~4vw4bS z@aQ#1lJwff#fIzwVPu;;{?Y?=%8>BODaEOaE0^pzR*qj#i(3})8>Q?7oG?kAFrU7D zT#X8+I8C^V4PD-1=XR)ES^?3cM&#u$=f0hUFnx1o%TV~bsYler=)g1YC zbf+AsMczd`IfNuucwj2G-gfK<{X7e{OS;%suNFN8=e+S)1J?UA?zlIrtjhN5Y=(T5ElrxmY`Fnqmt3*;~C>Fc>Fnf!@o+rz30 zP|&V)_JUq@estxzI3=;`7C|H9;b|}5;IBHL=S)RKx9}n;b)EnH3%<*cCVs81Hb`r~ z%2pg~Q8j`+47wz}rOoZHZJ!z06dwPcj)HEcFr4P0ie%;%e^pp+WPXD(f#wcpn%K)( zcBBKqaQAMzkJ6tp9AI*Z@+g+2gbN_i(TCNCb%2E7r_rn~;^MJbc1E$qi1gTzL{Cef$5MmO< zlEG|_a*Y#u5OyKv^5`8+9@?D5;;1p1#S4Ej^EmiLAnaC$cWj)1yB_S$D^v3|3bmxN zHzQ+909$nqmJ%{wW&nag*ahaO88uuMwa&SyfkxXav1^japH zX)b|!}AP-Y+T8F z-ujjXWC#->-Cu2YR*G@X`{g;a^rX@0$0c??QZNhL zTj!l30XI_r;3?gNQ)bfX0yd%By(BRjYnt8HsoyE4ov&xI%nLqsd|`3vS@M$?Ebd}bOBV-_HGQio@0yFLn) z&f@ucPDTQ?&*Ialv5-aCHLWd1+6eUo;3v{F4rE?@n!RQxE-huV6pG!z)*{liZnCg^ zpRruhh3SU@CR<4-K>QW*mHfX@`c5DdY&2|R9#}m{q_Zcg?d;%KqudFMgyj+G1N9sjiVL$sz($rP&anU3edz(Q8h7Z zvHG{pmEbOJF}1){v&;5zB72$oUKoyeG2>zN?_n42_*vM61d;uy+MC2rg1B&57lO?u7&D56fT?w7V$P)Eci3{ZGNz_`;xe1~( z{>Ir87;T=fu63D|Ag0_^s*egj0Cb{_9YBPPC5dR_BdXax(5mU??e~pnH1i15v{}79 zL_p3Kbsauv*rMKU9s;@?$No8{lG@>qYNUpz%G6tf*9dGjM4^giwa7Xdd~*xZk9V88 zPcg-u+OFOlcq&tU5ZKBLj+l;)j^M$i=@t6ca&_2nU(;SKW%%-qIvNk8Rh)zP)O5 z-z%3b<&`9q|95!+7jmtfOf0WePX;xo4HPbOP@+0mw;A#ik&MkbRiDYfuv*V?t)n$CJkrVMAo(y_b z7*Zt|N=#UBJ3$Rl+Nn*pq61GMILseB z2W8>G$_gm`jIc{>;8E7*b~^K!R_x@1EOS_zOf@wDk~NxJ$)iHcl)xVL>?z?@DedSc z?>TjXaq8e_S+s5skAfo%A`$b2%6pl1K_8YSdnVDP5W)@uqlPx;HttVe-sarGN;y`q z7at5xD!-X)v@eB4Irn?eV616F91J7C_I{DgD7(@joj?M^^|D^pboYh6-K-b147xpq z^|h=Y{5VZEXBxTV!dPAsp|&(ym!+4ywDBtbK-hb^Up$XI!MJ!euX8Xi@J#2TS&_eS z_H&Ffqfz`DJ+d!_jq;dT-b7EAS5ZBPp9yvcgh_-B5w9^ht{Y{vx0utWr7E~(*0-nB~_-%pF7 z@r7&-y?2o3QS3iCsu>O!)(+%6lAHnQy%&&g9A6Y+EGZ#{7(P6nzvVcmL4FVz31V>a z_C)S?hBSiVxP#x}P6QRQ-0s`>i{ZcyVBkWgk@vB9I2Nh6dErUdgo3$QJp&o@~K zfV@BA!Ew70Gde;XA(JIpB2F@nMzV};W`S=GFqb!?7=!s~GB@?>;oL&9BD7=z&{KBj z^>Auod=27~-Gp&i2vqlj|TT|ehr*|N0EqM$?wPNS-K45HD&`9`!^%Zo?!xp z1mL5hCTF6B%_!`oWu9mbA+!~AMsXOSlEd_7ompQ*s^gBz($cAVs}6J~Jt*9OFBipr z42?0g71i7LcJ{v(Z;(`NiFAv-J9wqj_fGZ#PN0;0r~Az%OG10OMu304wSy)~{rrnS zTN+%Tj1xRYl)b{w$w5Kq$I%~iH;wy*&w-K$#hb74CtX(#U7h=g6>sr9S9n@voY+eR zCosnR@!Ndowkz+FS`d9r5~aP1!eHrK)onEzmR-H%J7!~Z zi`|F$bjc=10%3{gi5HIWdm@qu$lDuv6-q{4H7rE1(B$>yJb~beG&p+$JygdZGvf+s zXKI*rAS3Ig2bv5dNxB8J=|k=kFQ4L50(e4eoDm3H8E|q+a?m74$hgGBMqnGq#4sS! z7+>HyFg6L00h?}$`W!Fiuk&01`F93HV|+H+5N&oFi1jKN)|lgrGY!{lZX^*afY{0a zU+Wou69_P+@IjkD8bsoT&-fe6x*h1;Sw1}Y21AC^1`((=fL}Ix zn@NSa%EYKx{Hryi)yU|WI(2HY z$%Ldt8-mZ|RxJt{Tc=jzHfwuR1$9eeM@s_1kkZj0Iv5QT0e`C17VUT6dw2g=iB`nj zckj99_dDmF^E}cz_*TPUPcye9yexj$rLQaxdE1L0RJ8sF{+whi%7245>-O5^viS5i z)tyno$hl`89j<8Y#V*ZJzpZ~Txqie~e^SW^U3Cn9d*q4_R_^`$ef$Mi-_d4eNEk`U z?)kr}f9un8jko2WLth>ew8t71(+X{C!w|2pp;1XN&N^^_`I1N`HAx#A6{}>cRW%Rt z`kI@S!E!}@I`X!B{}%^ef+~h2^KeU>@}MMZ@1DylfeSqix!mF8R1$hAlx z@ZYCnIV^veJBMnzlo{Q2_NJ5cV?!P$1=_+cJ8#S+r%5>d-pA={pm*|x+3-UIMiX8Z z>LV4j&x%)oPC6~;u1<4lrDvUpwM84%K9cjH#3k(shMi5Ddpemf9!8!I^`$HuL}3jX zw2=LR5*raqaB~4G@D5Ca^BOSqs!K?E~kHV1#lPzI|@jrxJ{sH+s-1TPJ#BTQ- zGMi0bN~Xa?r?#&yDI|Y+)6*nIp%kXh7N!=7Q<0YXW{|tpOYVD?^toVi-z*YRF}bf8 z3(-p^_myBTq-Jv80to9{(d51#Bb_1;>93mHw}eC~o7}gQMAS`wd^r{){DZsV0l;Mu znWrs`x3KA}$hr{EOB7y4h@R7l>}>iHlFK%%Ay0(`88l!2jO^l-YsqaRi5b4;15N`K z_RR}qu_0n5$xUkOI*mI^VoH)Z{F*?>Dl%aJE|98*?YK|EDOFG!>Ljx{n@9nxdYxFM zI;PNDgnd;;4u`G&8%qA1EHhMDPNwN6{U(c>l=;eui#3%K3qMs(T9k*R@MxdXKi!0N z?xMM@e;ygjo~s}weLD3GVXY-}o;D-bDa?4*CPg^>O4#_RP2`v?9DLt9NHNnSUb&OZ zQCQC^Yc3nVjVuUSo*!5)63z~)72?!S8*5^1tc|s?F4o3+wIB7PTZE7AdR6UEoUtOwJ!NW(k`-%PuCw)f z)LeM#U0znM_6paEAGUFWI!JzZU!-F|v4xjyRBw_*u`k?@eAcQjW;1u0YKb>%0Iz*Z zJ)$UJQ1gX4CZYRUx84*Q&qsOLCRj&x2CQ-y$)&jbV94Rk>H!hF0wb7u@K9?|g>DT* zfyz2Si>x{&1T)X8YCgp!j&qRl9VLjy%nb*toJ zUU3*ZTX!snV}}Qr&mCcUE z?_2;qH)t!YUSL}7>5X5U4rqiZ6_ChxA5U_N(e<HtZC11monmaWFi#J)@Q-h*`vn0!=1WAfAjtW(x zG<;$}xE5v75JopC%#%zLWd)bkf25$bwxpmUghWjDtJ%S$k*p^{+7>>t@x3m3GGcLiW|YN>Y$^vt%z1$U5kuS~0&&Ce0><@j1)0g*xz@3% zQFESQY}^6IZzt@?_pGHXs}7A@RU)wu3<9WhJ%^Yl@LFfT!FA%}bXG(Y%^^M7cv?Fq zs;eOymsImO`gO3Ujn$sN(~+!yF`2+J8t7~ol&n?V2pxuG%LyJQ$Hp&XdHHmC*kHwL z^WnQlJv{~Vj$32H(f_X$#G!d7J#0VK?+hrkYv8%5?zHeV2{v*u2f{lF$u&`X@%6T!7gaRI-lH z+064AO^k#JW=Q=lq)qGpN2fuZQBM~O0g=R*E%ofPv!0IyezQm>8}Sld7eVRu)jy)J zwD+v32Fnqz(APr%Ai;qOXQYB)Wv0SNUDdFh0U@%WkYzOL=`xl#ttEI3+g{v{^?XK$ z8M>r5)49m6MGEiONZ*OO_eSDvx<$Fy(@+3oYs)iq3QKRJh4_Y%Jed)^_R&0gX?Jez!C_7a$GD@2EW$0hY2`qx(mBT!koCA%f-)2ZV z0a75YAUHWqE?>mn`e*E|Q?a*BV=E8>WO^n=Z;2Y}t3Si5&(c#Q4(+7)kBeMt035w+ zogxB1!JPAf50G8}sfZn>{yfpl0oq5<3tpsoFr|Z6cL6`fe+S^QV3ljgP|^Ka#asq- zU7}}AHOjBhN8?S1iUAczuhMg5P@w+C`i7Zv7inY&mYr?APKUDU>*y|h*XeO`hY9@# kFgGxgC5GIC>d7!>Y|Lev{Kko1ieC$UkBLY2jb!KZ~y=R diff --git a/test/models-nonbsd/FBX/2013_BINARY/mar_rifle.fbx b/test/models-nonbsd/FBX/2013_BINARY/mar_rifle.fbx index 5e5d05118919368ac32b5e2b18981cc61e8b4ff2..96431196c9dc045ba7ac208e25800199fcfca6f4 100644 GIT binary patch delta 293 zcmaFS#Xq5&e}hCUBkyL3SfL~qUM_Cl%{u!(Gcoc`PJAJ<+4ztWH&8D0thfY3F7GKw zZgb)bL3>8t?M3R0mo(Wynz*=lw|fLKss{o^^A|B5=VjvM-EOvl(WDM2kfq18pNE;3 zi($IqT1KhK4(y!U{j8Z*+W>V6@o@0-ZvR)##1jNm$aRY8A}bp&FUZ90ch58Z0ot|w z<|QU>W+46KDw8({P>P3#gNK`gi-(hoce>R*CR0Y<>G}7VQo-)qe(fGp4wD#Akq|Gx zq>!krm^2Vc2#E>u^7Bp)d&pD>H0bz4rglvr?Z?f0iw8(+NHA+N0_k8$W=^1m(_^HW Qm4T-5@NRFEW`4dB0HuLSS^xk5 delta 228 zcmbQx&Hti{e}hEqX31EgBqlEI&HDR4Gi_ErWX8QY>a4f~NTl>BP$ct(p#Ao0b;e7Y zEL_}NT-!qe8Px-~*DPW@&b!@p1EWdZ_9{K5{XEQE42+WvHI=rk;7sV(#rdB0P%M0o1-3sQ>@~ delta 64 zcmdmR-FWSF Date: Mon, 20 Jan 2020 14:27:06 +0200 Subject: [PATCH 11/85] Revert broken HMP test model to working version --- .../models-nonbsd/HMP/terrain_withtexture.hmp | Bin 605686 -> 605688 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/test/models-nonbsd/HMP/terrain_withtexture.hmp b/test/models-nonbsd/HMP/terrain_withtexture.hmp index aa4a2e129cc6d15cd11466ddf885607a2c23515b..b78b32917e9c483665ea637cea0c9ac121301b0e 100644 GIT binary patch delta 49 zcmezNTjj@Zm4+6^Elk{>7E`H&fiS%8=oh}nRceY@vFjy delta 45 vcmezITjkqtm4+6^Elk{>w)1>qvU}g|{g4@mS%8=oh}nRceY^KVj Date: Mon, 20 Jan 2020 14:30:51 +0200 Subject: [PATCH 12/85] Revert broken 3DS test model to working version --- test/models-nonbsd/3DS/pyramob.3DS | Bin 693758 -> 693769 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/test/models-nonbsd/3DS/pyramob.3DS b/test/models-nonbsd/3DS/pyramob.3DS index f4f5af4f3487724d718a0e147adeb5dd0d4a3c5c..c880bdf43aa5c41c923916b42e24a74da1d36fb6 100644 GIT binary patch delta 145 zcmeyjTB~!7RznM83sVbo3rh>@7B&qpc3v)a1`aOX>AGHQs=B;ff?PsC0X{A+E>0lL z&&3U7u`>v8@c>!u41!#|Ko&cL5KxwPdyN-cpE}S0UZ4rQ)A@_o+_`}qP9T?`mz%de hzK9Ko*@2j2dwdb6jx8ha_U`qZKUjfu^H$F42LK}y8^{0v delta 104 zcmeBNqxEmKRznM83sVbo3rh>@7B&qpRxWl14zB6?UTmt>MQlLK4#XVWGm1EMY`0Hc&-sIOd*4>h>IVQd Cvm0{& From e876afeaab2791ff908388288939626ff292016a Mon Sep 17 00:00:00 2001 From: Turo Lamminen Date: Mon, 20 Jan 2020 14:33:18 +0200 Subject: [PATCH 13/85] Revert broken XGL test model to working version --- test/models/XGL/Spider_ascii.zgl | Bin 59944 -> 59945 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/test/models/XGL/Spider_ascii.zgl b/test/models/XGL/Spider_ascii.zgl index 218322dc66e2fa7ed208fa087caa7ec28a9c99fa..3816eae879e58b5aa4e77d95087a98027e0d2dd4 100644 GIT binary patch delta 16 YcmZ2+g?Z%_<_&eJjJ%ucQdhMA06`T8WdHyG delta 14 WcmZ2^g?Ysl<_&eJo9k0owEzG&p$Aw1 From 808a0a54129e8e091bfc33bad0d5f4375000bd0a Mon Sep 17 00:00:00 2001 From: Turo Lamminen Date: Mon, 20 Jan 2020 14:41:25 +0200 Subject: [PATCH 14/85] Revert broken STL test model to working version --- test/models/STL/3DSMaxExport.STL | Bin 100083 -> 100084 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/test/models/STL/3DSMaxExport.STL b/test/models/STL/3DSMaxExport.STL index d420fd6e7ab7d46d06d4577f621c1730e7b6e5ad..2576dbb7b2883bdd1058d272320dc482bd486023 100644 GIT binary patch delta 16 Ycmey|%l4(0ZA0m5M&8Y(tLtt907UKx7ytkO delta 14 Wcmey;%l5gKZA0nm&1I|WZUX>1 Date: Mon, 20 Jan 2020 14:42:25 +0200 Subject: [PATCH 15/85] Revert broken terragen model to working version --- test/models/TER/RealisticTerrain_Large.ter | Bin 526412 -> 526424 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/test/models/TER/RealisticTerrain_Large.ter b/test/models/TER/RealisticTerrain_Large.ter index d8613d1c54ada137aa8233807638f65c19af1625..f51986ac8c34f4a46c738712813e2ac08afd17a9 100644 GIT binary patch delta 109 zcmX>zLE**(g$=*fGV*TzwRU*}Bk%TwdW<~*OuW3?b?X^#c>x93PcibvGxD~JYBFsX z)ntB>4HWx1g*j#)kPZ!I(d7oxO>r#M`9L*)&$4X)dzO{&IFQXfm2ErsRQB{dpnMTC H$1N5Bsr)7v delta 85 zcmV-b0IL7kkRZ&EAh7zav-_>5fVZPA0gO<$F@FKtO1BKk0S;e>8z};}8z}?iYqpgG rT)wwmQv@vww~Jl`dvAva&IGpy&IJy~hZdCvw-%KLXKuHC0|?p#ZAK#3 From 1eeecb7ca74f23a05e6c1564200aff67076cf9d7 Mon Sep 17 00:00:00 2001 From: Turo Lamminen Date: Mon, 20 Jan 2020 15:30:49 +0200 Subject: [PATCH 16/85] Revert broken Q3D test models to working versions --- test/models/Q3D/WusonOrange.q3o | Bin 144224 -> 144230 bytes test/models/Q3D/WusonOrange.q3s | Bin 144430 -> 144436 bytes 2 files changed, 0 insertions(+), 0 deletions(-) diff --git a/test/models/Q3D/WusonOrange.q3o b/test/models/Q3D/WusonOrange.q3o index 9f99fd0e46db161b404364b8532937898a467940..78394d799c6b3c548bf5c19aaafba78cf1be991f 100644 GIT binary patch delta 75 zcmaFxjN{oej)pCa&NiaFTnr5SKr8^IL44lrp*D=gEV3Xr9}ovaaVSU*hy_9P_D2qk Gb)NthV+^4H delta 69 zcmaF%jN`#Gj)pCa&Nf0^3=I50EC8i})blT?`Na delta 69 zcmdn;f@9qaj)pCa&Nf0^3=I50EC8i})bR From 4e7e47bd436f4a97775be22dcdb8e99f5c158606 Mon Sep 17 00:00:00 2001 From: Marc-Antoine Lortie Date: Mon, 20 Jan 2020 08:53:12 -0500 Subject: [PATCH 17/85] Updated copyright dates. Changed copyright end year to 2020 in every reference "Copyright (c) 2006-XXXX, assimp team". Changed copyright end year to 2020 in every reference "Copyright (c) 2006-XXXX, ASSIMP Development Team". Changed copyright end year to 2020 in LICENCE.rtf. Changed copyright end year in CMakeFiles.txt files and any other places referencing Assimp with a copyright start and end year. --- .travis.sh | 2 +- CMakeLists.txt | 2 +- LICENSE | 2 +- assimp-config-version.cmake.in | 2 +- code/3DS/3DSConverter.cpp | 2 +- code/3DS/3DSExporter.cpp | 2 +- code/3DS/3DSExporter.h | 2 +- code/3DS/3DSHelper.h | 2 +- code/3DS/3DSLoader.cpp | 2 +- code/3DS/3DSLoader.h | 2 +- code/3MF/3MFXmlTags.h | 2 +- code/3MF/D3MFExporter.cpp | 2 +- code/3MF/D3MFExporter.h | 2 +- code/3MF/D3MFImporter.cpp | 2 +- code/3MF/D3MFImporter.h | 2 +- code/3MF/D3MFOpcPackage.cpp | 2 +- code/3MF/D3MFOpcPackage.h | 2 +- code/AC/ACLoader.cpp | 2 +- code/AC/ACLoader.h | 2 +- code/AMF/AMFImporter.cpp | 2 +- code/AMF/AMFImporter.hpp | 2 +- code/AMF/AMFImporter_Geometry.cpp | 2 +- code/AMF/AMFImporter_Macro.hpp | 2 +- code/AMF/AMFImporter_Material.cpp | 2 +- code/AMF/AMFImporter_Node.hpp | 2 +- code/AMF/AMFImporter_Postprocess.cpp | 2 +- code/ASE/ASELoader.cpp | 2 +- code/ASE/ASELoader.h | 2 +- code/ASE/ASEParser.cpp | 2 +- code/ASE/ASEParser.h | 2 +- code/Assbin/AssbinExporter.cpp | 2 +- code/Assbin/AssbinExporter.h | 2 +- code/Assbin/AssbinLoader.cpp | 2 +- code/Assbin/AssbinLoader.h | 2 +- code/Assxml/AssxmlExporter.cpp | 2 +- code/Assxml/AssxmlExporter.h | 2 +- code/B3D/B3DImporter.cpp | 2 +- code/B3D/B3DImporter.h | 2 +- code/BVH/BVHLoader.cpp | 2 +- code/BVH/BVHLoader.h | 2 +- code/Blender/BlenderBMesh.cpp | 2 +- code/Blender/BlenderBMesh.h | 2 +- code/Blender/BlenderDNA.cpp | 2 +- code/Blender/BlenderDNA.h | 2 +- code/Blender/BlenderDNA.inl | 2 +- code/Blender/BlenderIntermediate.h | 2 +- code/Blender/BlenderLoader.cpp | 2 +- code/Blender/BlenderLoader.h | 2 +- code/Blender/BlenderModifier.cpp | 2 +- code/Blender/BlenderModifier.h | 2 +- code/Blender/BlenderScene.cpp | 2 +- code/Blender/BlenderScene.h | 2 +- code/Blender/BlenderSceneGen.h | 2 +- code/Blender/BlenderTessellator.cpp | 2 +- code/Blender/BlenderTessellator.h | 2 +- code/C4D/C4DImporter.cpp | 2 +- code/C4D/C4DImporter.h | 2 +- code/CApi/AssimpCExport.cpp | 2 +- code/CApi/CInterfaceIOWrapper.cpp | 2 +- code/CApi/CInterfaceIOWrapper.h | 2 +- code/CMakeLists.txt | 2 +- code/COB/COBLoader.cpp | 2 +- code/COB/COBLoader.h | 2 +- code/COB/COBScene.h | 2 +- code/CSM/CSMLoader.cpp | 2 +- code/CSM/CSMLoader.h | 2 +- code/Collada/ColladaExporter.cpp | 2 +- code/Collada/ColladaExporter.h | 2 +- code/Collada/ColladaHelper.cpp | 2 +- code/Collada/ColladaHelper.h | 2 +- code/Collada/ColladaLoader.cpp | 2 +- code/Collada/ColladaLoader.h | 2 +- code/Collada/ColladaParser.cpp | 2 +- code/Collada/ColladaParser.h | 2 +- code/Common/Assimp.cpp | 2 +- code/Common/BaseImporter.cpp | 2 +- code/Common/BaseProcess.cpp | 2 +- code/Common/BaseProcess.h | 2 +- code/Common/Bitmap.cpp | 2 +- code/Common/CreateAnimMesh.cpp | 2 +- code/Common/DefaultIOStream.cpp | 2 +- code/Common/DefaultIOSystem.cpp | 2 +- code/Common/DefaultLogger.cpp | 2 +- code/Common/DefaultProgressHandler.h | 2 +- code/Common/Exporter.cpp | 2 +- code/Common/FileLogStream.h | 2 +- code/Common/FileSystemFilter.h | 2 +- code/Common/Importer.cpp | 2 +- code/Common/Importer.h | 2 +- code/Common/ImporterRegistry.cpp | 2 +- code/Common/PolyTools.h | 2 +- code/Common/PostStepRegistry.cpp | 2 +- code/Common/RemoveComments.cpp | 2 +- code/Common/SGSpatialSort.cpp | 2 +- code/Common/SceneCombiner.cpp | 2 +- code/Common/ScenePreprocessor.cpp | 2 +- code/Common/ScenePreprocessor.h | 2 +- code/Common/ScenePrivate.h | 2 +- code/Common/SkeletonMeshBuilder.cpp | 2 +- code/Common/SpatialSort.cpp | 2 +- code/Common/SplitByBoneCountProcess.cpp | 2 +- code/Common/SplitByBoneCountProcess.h | 2 +- code/Common/StandardShapes.cpp | 2 +- code/Common/StdOStreamLogStream.h | 2 +- code/Common/Subdivision.cpp | 2 +- code/Common/TargetAnimation.cpp | 2 +- code/Common/TargetAnimation.h | 2 +- code/Common/Version.cpp | 4 ++-- code/Common/VertexTriangleAdjacency.cpp | 2 +- code/Common/VertexTriangleAdjacency.h | 2 +- code/Common/Win32DebugLogStream.h | 2 +- code/Common/ZipArchiveIOSystem.cpp | 2 +- code/Common/scene.cpp | 2 +- code/Common/simd.cpp | 2 +- code/Common/simd.h | 2 +- code/DXF/DXFHelper.h | 2 +- code/DXF/DXFLoader.cpp | 2 +- code/DXF/DXFLoader.h | 2 +- code/FBX/FBXAnimation.cpp | 2 +- code/FBX/FBXBinaryTokenizer.cpp | 2 +- code/FBX/FBXCommon.h | 2 +- code/FBX/FBXCompileConfig.h | 2 +- code/FBX/FBXConverter.cpp | 2 +- code/FBX/FBXConverter.h | 2 +- code/FBX/FBXDeformer.cpp | 2 +- code/FBX/FBXDocument.cpp | 2 +- code/FBX/FBXDocument.h | 2 +- code/FBX/FBXDocumentUtil.cpp | 2 +- code/FBX/FBXDocumentUtil.h | 2 +- code/FBX/FBXExportNode.cpp | 2 +- code/FBX/FBXExportNode.h | 2 +- code/FBX/FBXExportProperty.cpp | 2 +- code/FBX/FBXExportProperty.h | 2 +- code/FBX/FBXExporter.cpp | 2 +- code/FBX/FBXExporter.h | 2 +- code/FBX/FBXImportSettings.h | 2 +- code/FBX/FBXImporter.cpp | 2 +- code/FBX/FBXImporter.h | 2 +- code/FBX/FBXMaterial.cpp | 2 +- code/FBX/FBXMeshGeometry.cpp | 2 +- code/FBX/FBXMeshGeometry.h | 2 +- code/FBX/FBXModel.cpp | 2 +- code/FBX/FBXNodeAttribute.cpp | 2 +- code/FBX/FBXParser.cpp | 2 +- code/FBX/FBXParser.h | 2 +- code/FBX/FBXProperties.cpp | 2 +- code/FBX/FBXProperties.h | 2 +- code/FBX/FBXTokenizer.cpp | 2 +- code/FBX/FBXTokenizer.h | 2 +- code/FBX/FBXUtil.cpp | 2 +- code/FBX/FBXUtil.h | 2 +- code/HMP/HMPFileData.h | 2 +- code/HMP/HMPLoader.cpp | 2 +- code/HMP/HMPLoader.h | 2 +- code/HMP/HalfLifeFileData.h | 2 +- code/Importer/IFC/IFCBoolean.cpp | 2 +- code/Importer/IFC/IFCCurve.cpp | 2 +- code/Importer/IFC/IFCGeometry.cpp | 2 +- code/Importer/IFC/IFCLoader.cpp | 2 +- code/Importer/IFC/IFCLoader.h | 2 +- code/Importer/IFC/IFCMaterial.cpp | 2 +- code/Importer/IFC/IFCOpenings.cpp | 2 +- code/Importer/IFC/IFCProfile.cpp | 2 +- code/Importer/IFC/IFCReaderGen1_2x3.cpp | 2 +- code/Importer/IFC/IFCReaderGen2_2x3.cpp | 2 +- code/Importer/IFC/IFCReaderGen_2x3.h | 2 +- code/Importer/IFC/IFCReaderGen_4.cpp | 2 +- code/Importer/IFC/IFCReaderGen_4.h | 2 +- code/Importer/IFC/IFCUtil.cpp | 2 +- code/Importer/IFC/IFCUtil.h | 2 +- code/Importer/STEPParser/STEPFileEncoding.cpp | 2 +- code/Importer/STEPParser/STEPFileEncoding.h | 2 +- code/Importer/STEPParser/STEPFileReader.cpp | 2 +- code/Importer/STEPParser/STEPFileReader.h | 2 +- code/Importer/StepFile/StepFileGen1.cpp | 2 +- code/Importer/StepFile/StepFileGen2.cpp | 2 +- code/Importer/StepFile/StepFileGen3.cpp | 2 +- code/Importer/StepFile/StepFileImporter.cpp | 2 +- code/Importer/StepFile/StepFileImporter.h | 2 +- code/Importer/StepFile/StepReaderGen.h | 2 +- code/Irr/IRRLoader.cpp | 2 +- code/Irr/IRRLoader.h | 2 +- code/Irr/IRRMeshLoader.cpp | 2 +- code/Irr/IRRMeshLoader.h | 2 +- code/Irr/IRRShared.cpp | 2 +- code/LWO/LWOAnimation.cpp | 2 +- code/LWO/LWOAnimation.h | 2 +- code/LWO/LWOBLoader.cpp | 2 +- code/LWO/LWOFileData.h | 2 +- code/LWO/LWOLoader.cpp | 2 +- code/LWO/LWOLoader.h | 2 +- code/LWO/LWOMaterial.cpp | 2 +- code/LWS/LWSLoader.cpp | 2 +- code/LWS/LWSLoader.h | 2 +- code/M3D/M3DExporter.cpp | 2 +- code/M3D/M3DExporter.h | 2 +- code/M3D/M3DImporter.cpp | 2 +- code/M3D/M3DImporter.h | 2 +- code/M3D/M3DMaterials.h | 2 +- code/M3D/M3DWrapper.cpp | 2 +- code/M3D/M3DWrapper.h | 2 +- code/MD2/MD2FileData.h | 2 +- code/MD2/MD2Loader.cpp | 2 +- code/MD2/MD2Loader.h | 2 +- code/MD2/MD2NormalTable.h | 2 +- code/MD3/MD3FileData.h | 2 +- code/MD3/MD3Loader.cpp | 2 +- code/MD3/MD3Loader.h | 2 +- code/MD4/MD4FileData.h | 2 +- code/MD5/MD5Loader.cpp | 2 +- code/MD5/MD5Loader.h | 2 +- code/MD5/MD5Parser.cpp | 2 +- code/MD5/MD5Parser.h | 2 +- code/MDC/MDCFileData.h | 2 +- code/MDC/MDCLoader.cpp | 2 +- code/MDC/MDCLoader.h | 2 +- code/MDL/HalfLife/HL1FileData.h | 2 +- code/MDL/HalfLife/HL1ImportDefinitions.h | 2 +- code/MDL/HalfLife/HL1ImportSettings.h | 2 +- code/MDL/HalfLife/HL1MDLLoader.cpp | 2 +- code/MDL/HalfLife/HL1MDLLoader.h | 2 +- code/MDL/HalfLife/HL1MeshTrivert.h | 2 +- code/MDL/HalfLife/HalfLifeMDLBaseHeader.h | 2 +- code/MDL/HalfLife/LogFunctions.h | 2 +- code/MDL/HalfLife/UniqueNameGenerator.cpp | 2 +- code/MDL/HalfLife/UniqueNameGenerator.h | 2 +- code/MDL/MDLDefaultColorMap.h | 2 +- code/MDL/MDLFileData.h | 2 +- code/MDL/MDLLoader.cpp | 2 +- code/MDL/MDLLoader.h | 2 +- code/MDL/MDLMaterialLoader.cpp | 2 +- code/MMD/MMDCpp14.h | 2 +- code/MMD/MMDImporter.cpp | 2 +- code/MMD/MMDImporter.h | 2 +- code/MMD/MMDPmdParser.h | 2 +- code/MMD/MMDPmxParser.cpp | 2 +- code/MMD/MMDPmxParser.h | 2 +- code/MMD/MMDVmdParser.h | 2 +- code/MS3D/MS3DLoader.cpp | 2 +- code/MS3D/MS3DLoader.h | 2 +- code/Material/MaterialSystem.cpp | 2 +- code/Material/MaterialSystem.h | 2 +- code/NDO/NDOLoader.cpp | 2 +- code/NDO/NDOLoader.h | 2 +- code/NFF/NFFLoader.cpp | 2 +- code/NFF/NFFLoader.h | 2 +- code/OFF/OFFLoader.cpp | 2 +- code/OFF/OFFLoader.h | 2 +- code/Obj/ObjExporter.cpp | 2 +- code/Obj/ObjExporter.h | 2 +- code/Obj/ObjFileData.h | 2 +- code/Obj/ObjFileImporter.cpp | 2 +- code/Obj/ObjFileImporter.h | 2 +- code/Obj/ObjFileMtlImporter.cpp | 2 +- code/Obj/ObjFileMtlImporter.h | 2 +- code/Obj/ObjFileParser.cpp | 2 +- code/Obj/ObjFileParser.h | 2 +- code/Obj/ObjTools.h | 2 +- code/Ogre/OgreBinarySerializer.cpp | 2 +- code/Ogre/OgreBinarySerializer.h | 2 +- code/Ogre/OgreImporter.cpp | 2 +- code/Ogre/OgreImporter.h | 2 +- code/Ogre/OgreMaterial.cpp | 2 +- code/Ogre/OgreParsingUtils.h | 2 +- code/Ogre/OgreStructs.cpp | 2 +- code/Ogre/OgreStructs.h | 2 +- code/Ogre/OgreXmlSerializer.cpp | 2 +- code/Ogre/OgreXmlSerializer.h | 2 +- code/OpenGEX/OpenGEXExporter.cpp | 2 +- code/OpenGEX/OpenGEXExporter.h | 2 +- code/OpenGEX/OpenGEXImporter.cpp | 2 +- code/OpenGEX/OpenGEXImporter.h | 2 +- code/OpenGEX/OpenGEXStructs.h | 2 +- code/Ply/PlyExporter.cpp | 2 +- code/Ply/PlyExporter.h | 2 +- code/Ply/PlyLoader.cpp | 2 +- code/Ply/PlyLoader.h | 2 +- code/Ply/PlyParser.cpp | 2 +- code/Ply/PlyParser.h | 2 +- code/PostProcessing/ArmaturePopulate.cpp | 2 +- code/PostProcessing/ArmaturePopulate.h | 2 +- code/PostProcessing/CalcTangentsProcess.cpp | 2 +- code/PostProcessing/CalcTangentsProcess.h | 2 +- .../ComputeUVMappingProcess.cpp | 2 +- code/PostProcessing/ComputeUVMappingProcess.h | 2 +- code/PostProcessing/ConvertToLHProcess.cpp | 2 +- code/PostProcessing/ConvertToLHProcess.h | 2 +- code/PostProcessing/DeboneProcess.cpp | 2 +- code/PostProcessing/DeboneProcess.h | 2 +- .../PostProcessing/DropFaceNormalsProcess.cpp | 2 +- code/PostProcessing/DropFaceNormalsProcess.h | 2 +- code/PostProcessing/EmbedTexturesProcess.cpp | 2 +- code/PostProcessing/EmbedTexturesProcess.h | 2 +- code/PostProcessing/FindDegenerates.cpp | 2 +- code/PostProcessing/FindDegenerates.h | 2 +- code/PostProcessing/FindInstancesProcess.cpp | 2 +- code/PostProcessing/FindInstancesProcess.h | 2 +- .../PostProcessing/FindInvalidDataProcess.cpp | 2 +- code/PostProcessing/FindInvalidDataProcess.h | 2 +- code/PostProcessing/FixNormalsStep.cpp | 2 +- code/PostProcessing/FixNormalsStep.h | 2 +- .../GenBoundingBoxesProcess.cpp | 2 +- code/PostProcessing/GenBoundingBoxesProcess.h | 2 +- code/PostProcessing/GenFaceNormalsProcess.cpp | 2 +- code/PostProcessing/GenFaceNormalsProcess.h | 2 +- .../GenVertexNormalsProcess.cpp | 2 +- code/PostProcessing/GenVertexNormalsProcess.h | 2 +- code/PostProcessing/ImproveCacheLocality.cpp | 2 +- code/PostProcessing/ImproveCacheLocality.h | 2 +- code/PostProcessing/JoinVerticesProcess.cpp | 2 +- code/PostProcessing/JoinVerticesProcess.h | 2 +- .../LimitBoneWeightsProcess.cpp | 2 +- code/PostProcessing/LimitBoneWeightsProcess.h | 2 +- code/PostProcessing/MakeVerboseFormat.cpp | 2 +- code/PostProcessing/MakeVerboseFormat.h | 2 +- code/PostProcessing/OptimizeGraph.cpp | 2 +- code/PostProcessing/OptimizeGraph.h | 2 +- code/PostProcessing/OptimizeMeshes.cpp | 2 +- code/PostProcessing/OptimizeMeshes.h | 2 +- code/PostProcessing/PretransformVertices.cpp | 2 +- code/PostProcessing/PretransformVertices.h | 2 +- code/PostProcessing/ProcessHelper.cpp | 2 +- code/PostProcessing/ProcessHelper.h | 2 +- .../RemoveRedundantMaterials.cpp | 2 +- .../PostProcessing/RemoveRedundantMaterials.h | 2 +- code/PostProcessing/RemoveVCProcess.cpp | 2 +- code/PostProcessing/RemoveVCProcess.h | 2 +- code/PostProcessing/ScaleProcess.cpp | 2 +- code/PostProcessing/ScaleProcess.h | 2 +- code/PostProcessing/SortByPTypeProcess.cpp | 2 +- code/PostProcessing/SortByPTypeProcess.h | 2 +- code/PostProcessing/SplitLargeMeshes.cpp | 2 +- code/PostProcessing/SplitLargeMeshes.h | 2 +- code/PostProcessing/TextureTransform.cpp | 2 +- code/PostProcessing/TextureTransform.h | 2 +- code/PostProcessing/TriangulateProcess.cpp | 2 +- code/PostProcessing/TriangulateProcess.h | 2 +- code/PostProcessing/ValidateDataStructure.cpp | 2 +- code/PostProcessing/ValidateDataStructure.h | 2 +- code/Q3BSP/Q3BSPFileData.h | 2 +- code/Q3BSP/Q3BSPFileImporter.cpp | 2 +- code/Q3BSP/Q3BSPFileImporter.h | 2 +- code/Q3BSP/Q3BSPFileParser.cpp | 2 +- code/Q3BSP/Q3BSPFileParser.h | 2 +- code/Q3D/Q3DLoader.cpp | 2 +- code/Q3D/Q3DLoader.h | 2 +- code/Raw/RawLoader.cpp | 2 +- code/Raw/RawLoader.h | 2 +- code/SIB/SIBImporter.cpp | 2 +- code/SIB/SIBImporter.h | 2 +- code/SMD/SMDLoader.cpp | 2 +- code/SMD/SMDLoader.h | 2 +- code/STL/STLExporter.cpp | 2 +- code/STL/STLExporter.h | 2 +- code/STL/STLLoader.cpp | 2 +- code/STL/STLLoader.h | 2 +- code/Step/STEPFile.h | 2 +- code/Step/StepExporter.cpp | 2 +- code/Step/StepExporter.h | 2 +- code/Terragen/TerragenLoader.cpp | 2 +- code/Terragen/TerragenLoader.h | 2 +- code/Unreal/UnrealLoader.cpp | 2 +- code/Unreal/UnrealLoader.h | 2 +- code/X/XFileExporter.cpp | 2 +- code/X/XFileExporter.h | 2 +- code/X/XFileHelper.h | 2 +- code/X/XFileImporter.cpp | 2 +- code/X/XFileImporter.h | 2 +- code/X/XFileParser.cpp | 2 +- code/X/XFileParser.h | 2 +- code/X3D/FIReader.cpp | 2 +- code/X3D/FIReader.hpp | 2 +- code/X3D/X3DImporter.cpp | 2 +- code/X3D/X3DImporter.hpp | 2 +- code/X3D/X3DImporter_Geometry2D.cpp | 2 +- code/X3D/X3DImporter_Geometry3D.cpp | 2 +- code/X3D/X3DImporter_Group.cpp | 2 +- code/X3D/X3DImporter_Light.cpp | 2 +- code/X3D/X3DImporter_Macro.hpp | 2 +- code/X3D/X3DImporter_Metadata.cpp | 2 +- code/X3D/X3DImporter_Networking.cpp | 2 +- code/X3D/X3DImporter_Node.hpp | 2 +- code/X3D/X3DImporter_Postprocess.cpp | 2 +- code/X3D/X3DImporter_Rendering.cpp | 2 +- code/X3D/X3DImporter_Shape.cpp | 2 +- code/X3D/X3DImporter_Texturing.cpp | 2 +- code/X3D/X3DVocabulary.cpp | 2 +- code/XGL/XGLLoader.cpp | 2 +- code/XGL/XGLLoader.h | 2 +- code/glTF/glTFAsset.h | 2 +- code/glTF/glTFAsset.inl | 2 +- code/glTF/glTFAssetWriter.h | 2 +- code/glTF/glTFAssetWriter.inl | 2 +- code/glTF/glTFCommon.cpp | 2 +- code/glTF/glTFCommon.h | 2 +- code/glTF/glTFExporter.cpp | 2 +- code/glTF/glTFExporter.h | 2 +- code/glTF/glTFImporter.cpp | 2 +- code/glTF/glTFImporter.h | 2 +- code/glTF2/glTF2Asset.h | 2 +- code/glTF2/glTF2Asset.inl | 2 +- code/glTF2/glTF2AssetWriter.h | 2 +- code/glTF2/glTF2AssetWriter.inl | 2 +- code/glTF2/glTF2Exporter.cpp | 2 +- code/glTF2/glTF2Exporter.h | 2 +- code/glTF2/glTF2Importer.cpp | 2 +- code/glTF2/glTF2Importer.h | 2 +- code/res/assimp.rc | 2 +- doc/Preamble.txt | 2 +- include/assimp/BaseImporter.h | 2 +- include/assimp/Bitmap.h | 2 +- include/assimp/BlobIOSystem.h | 2 +- include/assimp/ByteSwapper.h | 2 +- include/assimp/CreateAnimMesh.h | 2 +- include/assimp/DefaultIOStream.h | 2 +- include/assimp/DefaultIOSystem.h | 2 +- include/assimp/DefaultLogger.hpp | 2 +- include/assimp/Defines.h | 2 +- include/assimp/Exceptional.h | 2 +- include/assimp/Exporter.hpp | 2 +- include/assimp/GenericProperty.h | 2 +- include/assimp/Hash.h | 2 +- include/assimp/IOStream.hpp | 2 +- include/assimp/IOStreamBuffer.h | 2 +- include/assimp/IOSystem.hpp | 2 +- include/assimp/Importer.hpp | 2 +- include/assimp/LineSplitter.h | 2 +- include/assimp/LogAux.h | 2 +- include/assimp/LogStream.hpp | 2 +- include/assimp/Logger.hpp | 2 +- include/assimp/MathFunctions.h | 2 +- include/assimp/MemoryIOWrapper.h | 2 +- include/assimp/NullLogger.hpp | 2 +- include/assimp/ParsingUtils.h | 2 +- include/assimp/Profiler.h | 2 +- include/assimp/ProgressHandler.hpp | 2 +- include/assimp/RemoveComments.h | 2 +- include/assimp/SGSpatialSort.h | 2 +- include/assimp/SceneCombiner.h | 2 +- include/assimp/SkeletonMeshBuilder.h | 2 +- include/assimp/SmoothingGroups.h | 2 +- include/assimp/SmoothingGroups.inl | 2 +- include/assimp/SpatialSort.h | 2 +- include/assimp/StandardShapes.h | 2 +- include/assimp/StreamReader.h | 2 +- include/assimp/StreamWriter.h | 2 +- include/assimp/StringComparison.h | 2 +- include/assimp/StringUtils.h | 2 +- include/assimp/Subdivision.h | 2 +- include/assimp/TinyFormatter.h | 2 +- include/assimp/Vertex.h | 2 +- include/assimp/XMLTools.h | 2 +- include/assimp/ZipArchiveIOSystem.h | 2 +- include/assimp/aabb.h | 2 +- include/assimp/ai_assert.h | 2 +- include/assimp/anim.h | 2 +- include/assimp/camera.h | 2 +- include/assimp/cexport.h | 2 +- include/assimp/cfileio.h | 2 +- include/assimp/cimport.h | 2 +- include/assimp/color4.h | 2 +- include/assimp/color4.inl | 2 +- include/assimp/commonMetaData.h | 2 +- include/assimp/config.h.in | 2 +- include/assimp/defs.h | 2 +- include/assimp/importerdesc.h | 2 +- include/assimp/irrXMLWrapper.h | 2 +- include/assimp/light.h | 2 +- include/assimp/material.h | 2 +- include/assimp/material.inl | 2 +- include/assimp/matrix3x3.h | 2 +- include/assimp/matrix3x3.inl | 2 +- include/assimp/matrix4x4.h | 2 +- include/assimp/matrix4x4.inl | 2 +- include/assimp/mesh.h | 2 +- include/assimp/metadata.h | 2 +- include/assimp/pbrmaterial.h | 2 +- .../port/AndroidJNI/AndroidJNIIOSystem.h | 2 +- include/assimp/postprocess.h | 2 +- include/assimp/qnan.h | 2 +- include/assimp/quaternion.h | 2 +- include/assimp/quaternion.inl | 2 +- include/assimp/scene.h | 2 +- include/assimp/texture.h | 2 +- include/assimp/types.h | 2 +- include/assimp/vector2.h | 2 +- include/assimp/vector2.inl | 2 +- include/assimp/vector3.h | 2 +- include/assimp/vector3.inl | 2 +- include/assimp/version.h | 2 +- packaging/windows-innosetup/LICENSE.rtf | Bin 2260 -> 2260 bytes port/AndroidJNI/AndroidJNIIOSystem.cpp | 2 +- port/PyAssimp/gen/materialgen.py | 2 +- port/PyAssimp/gen/structsgen.py | 2 +- port/dAssimp/assimp/animation.d | 2 +- port/dAssimp/assimp/api.d | 2 +- port/dAssimp/assimp/assimp.d | 2 +- port/dAssimp/assimp/camera.d | 2 +- port/dAssimp/assimp/config.d | 2 +- port/dAssimp/assimp/fileIO.d | 2 +- port/dAssimp/assimp/light.d | 2 +- port/dAssimp/assimp/loader.d | 2 +- port/dAssimp/assimp/material.d | 2 +- port/dAssimp/assimp/math.d | 2 +- port/dAssimp/assimp/mesh.d | 2 +- port/dAssimp/assimp/postprocess.d | 2 +- port/dAssimp/assimp/scene.d | 2 +- port/dAssimp/assimp/texture.d | 2 +- port/dAssimp/assimp/types.d | 2 +- port/dAssimp/assimp/versionInfo.d | 2 +- .../jassimp/src/jassimp/AiAnimBehavior.java | 2 +- .../jassimp/src/jassimp/AiAnimation.java | 2 +- .../jassimp/src/jassimp/AiBlendMode.java | 2 +- port/jassimp/jassimp/src/jassimp/AiBone.java | 2 +- .../jassimp/src/jassimp/AiBoneWeight.java | 2 +- .../src/jassimp/AiBuiltInWrapperProvider.java | 2 +- .../jassimp/jassimp/src/jassimp/AiCamera.java | 2 +- .../src/jassimp/AiClassLoaderIOSystem.java | 2 +- port/jassimp/jassimp/src/jassimp/AiColor.java | 2 +- .../jassimp/src/jassimp/AiIOStream.java | 2 +- .../jassimp/src/jassimp/AiIOSystem.java | 2 +- .../src/jassimp/AiInputStreamIOStream.java | 2 +- port/jassimp/jassimp/src/jassimp/AiLight.java | 2 +- .../jassimp/src/jassimp/AiLightType.java | 2 +- .../jassimp/src/jassimp/AiMaterial.java | 2 +- .../jassimp/src/jassimp/AiMatrix4f.java | 2 +- port/jassimp/jassimp/src/jassimp/AiMesh.java | 2 +- .../jassimp/src/jassimp/AiMeshAnim.java | 2 +- .../jassimp/src/jassimp/AiMetadataEntry.java | 2 +- port/jassimp/jassimp/src/jassimp/AiNode.java | 2 +- .../jassimp/src/jassimp/AiNodeAnim.java | 2 +- .../src/jassimp/AiPostProcessSteps.java | 2 +- .../jassimp/src/jassimp/AiPrimitiveType.java | 2 +- .../src/jassimp/AiProgressHandler.java | 2 +- .../jassimp/src/jassimp/AiQuaternion.java | 2 +- port/jassimp/jassimp/src/jassimp/AiScene.java | 2 +- .../jassimp/src/jassimp/AiSceneFlag.java | 2 +- .../jassimp/src/jassimp/AiShadingMode.java | 2 +- .../jassimp/src/jassimp/AiTextureInfo.java | 2 +- .../jassimp/src/jassimp/AiTextureMapMode.java | 2 +- .../jassimp/src/jassimp/AiTextureMapping.java | 2 +- .../jassimp/src/jassimp/AiTextureOp.java | 2 +- .../jassimp/src/jassimp/AiTextureType.java | 2 +- .../jassimp/jassimp/src/jassimp/AiVector.java | 2 +- .../src/jassimp/AiWrapperProvider.java | 2 +- .../jassimp/jassimp/src/jassimp/JaiDebug.java | 2 +- port/jassimp/jassimp/src/jassimp/Jassimp.java | 2 +- .../jassimp/src/jassimp/JassimpConfig.java | 2 +- .../src/jassimp/JassimpLibraryLoader.java | 2 +- .../jassimp/src/jassimp/package-info.java | 2 +- .../BlenderImporter/BlenderScene.cpp.template | 2 +- .../BlenderSceneGen.h.template | 2 +- scripts/BlenderImporter/genblenddna.py | 2 +- scripts/StepImporter/CppGenerator.py | 2 +- scripts/StepImporter/ExpressReader.py | 2 +- .../StepImporter/IFCReaderGen.cpp.template | 2 +- scripts/StepImporter/IFCReaderGen.h.template | 2 +- .../StepImporter/StepReaderGen.cpp.template | 2 +- scripts/StepImporter/StepReaderGen.h.template | 2 +- scripts/StepImporter/extract_step_token.py | 2 +- test/CMakeLists.txt | 2 +- test/regression/ai_regression_ui.py | 2 +- test/regression/gen_db.py | 2 +- test/regression/result_checker.py | 2 +- test/regression/run.py | 2 +- test/regression/settings.py | 2 +- test/regression/utils.py | 2 +- test/unit/AbstractImportExportBase.cpp | 2 +- test/unit/AbstractImportExportBase.h | 2 +- test/unit/AssimpAPITest.cpp | 2 +- test/unit/Common/utLineSplitter.cpp | 2 +- test/unit/ImportExport/MDL/MDLHL1TestFiles.h | 2 +- .../MDL/utMDLImporter_HL1_ImportSettings.cpp | 2 +- .../MDL/utMDLImporter_HL1_Materials.cpp | 2 +- .../MDL/utMDLImporter_HL1_Nodes.cpp | 2 +- .../ImportExport/utAssjsonImportExport.cpp | 2 +- test/unit/ImportExport/utCOBImportExport.cpp | 2 +- test/unit/ImportExport/utExporter.cpp | 2 +- test/unit/ImportExport/utMDLImporter.cpp | 2 +- test/unit/ImportExport/utNFFImportExport.cpp | 2 +- test/unit/ImportExport/utOFFImportExport.cpp | 2 +- test/unit/ImportExport/utOgreImportExport.cpp | 2 +- .../ImportExport/utQ3BSPFileImportExport.cpp | 2 +- test/unit/ImportExport/utXGLImportExport.cpp | 2 +- test/unit/SceneDiffer.cpp | 2 +- test/unit/SceneDiffer.h | 2 +- test/unit/TestIOStream.h | 2 +- test/unit/TestIOSystem.h | 2 +- test/unit/TestModelFactory.h | 2 +- test/unit/UTLogStream.h | 2 +- test/unit/UnitTestFileGenerator.h | 2 +- test/unit/UnitTestPCH.h | 2 +- test/unit/ut3DImportExport.cpp | 2 +- test/unit/ut3DSImportExport.cpp | 2 +- test/unit/utACImportExport.cpp | 2 +- test/unit/utAMFImportExport.cpp | 2 +- test/unit/utASEImportExport.cpp | 2 +- test/unit/utAnim.cpp | 2 +- test/unit/utArmaturePopulate.cpp | 2 +- test/unit/utAssbinImportExport.cpp | 2 +- test/unit/utB3DImportExport.cpp | 2 +- test/unit/utBVHImportExport.cpp | 2 +- test/unit/utBatchLoader.cpp | 2 +- test/unit/utBlendImportAreaLight.cpp | 2 +- test/unit/utBlendImportMaterials.cpp | 2 +- test/unit/utBlenderImportExport.cpp | 2 +- test/unit/utBlenderIntermediate.cpp | 2 +- test/unit/utBlenderWork.cpp | 2 +- test/unit/utCSMImportExport.cpp | 2 +- test/unit/utColladaExportCamera.cpp | 2 +- test/unit/utColladaExportLight.cpp | 2 +- test/unit/utColladaImportExport.cpp | 2 +- test/unit/utD3MFImportExport.cpp | 2 +- test/unit/utDXFImporterExporter.cpp | 2 +- test/unit/utDefaultIOStream.cpp | 2 +- test/unit/utFBXImporterExporter.cpp | 2 +- test/unit/utFastAtof.cpp | 2 +- test/unit/utFindDegenerates.cpp | 2 +- test/unit/utFindInvalidData.cpp | 2 +- test/unit/utFixInfacingNormals.cpp | 2 +- test/unit/utGenBoundingBoxesProcess.cpp | 2 +- test/unit/utGenNormals.cpp | 2 +- test/unit/utHMPImportExport.cpp | 2 +- test/unit/utIFCImportExport.cpp | 2 +- test/unit/utIOStreamBuffer.cpp | 2 +- test/unit/utIOSystem.cpp | 2 +- test/unit/utImporter.cpp | 2 +- test/unit/utImproveCacheLocality.cpp | 2 +- test/unit/utIssues.cpp | 2 +- test/unit/utJoinVertices.cpp | 2 +- test/unit/utLWOImportExport.cpp | 2 +- test/unit/utLWSImportExport.cpp | 2 +- test/unit/utLimitBoneWeights.cpp | 2 +- test/unit/utM3DImportExport.cpp | 2 +- test/unit/utMDCImportExport.cpp | 2 +- test/unit/utMaterialSystem.cpp | 2 +- test/unit/utMatrix3x3.cpp | 2 +- test/unit/utMatrix4x4.cpp | 2 +- test/unit/utMetadata.cpp | 2 +- test/unit/utNoBoostTest.cpp | 2 +- test/unit/utObjImportExport.cpp | 2 +- test/unit/utObjTools.cpp | 2 +- test/unit/utOpenGEXImportExport.cpp | 2 +- test/unit/utPLYImportExport.cpp | 2 +- test/unit/utPMXImporter.cpp | 2 +- test/unit/utPretransformVertices.cpp | 2 +- test/unit/utProfiler.cpp | 2 +- test/unit/utQ3DImportExport.cpp | 2 +- test/unit/utRemoveComments.cpp | 2 +- test/unit/utRemoveComponent.cpp | 2 +- test/unit/utRemoveRedundantMaterials.cpp | 2 +- test/unit/utRemoveVCProcess.cpp | 2 +- test/unit/utSIBImporter.cpp | 2 +- test/unit/utSMDImportExport.cpp | 2 +- test/unit/utSTLImportExport.cpp | 2 +- test/unit/utScaleProcess.cpp | 2 +- test/unit/utScene.cpp | 2 +- test/unit/utSceneCombiner.cpp | 2 +- test/unit/utScenePreprocessor.cpp | 2 +- test/unit/utSharedPPData.cpp | 2 +- test/unit/utSimd.cpp | 2 +- test/unit/utSortByPType.cpp | 2 +- test/unit/utSplitLargeMeshes.cpp | 2 +- test/unit/utStringUtils.cpp | 2 +- test/unit/utTargetAnimation.cpp | 2 +- test/unit/utTextureTransform.cpp | 2 +- test/unit/utTriangulate.cpp | 2 +- test/unit/utTypes.cpp | 2 +- test/unit/utValidateDataStructure.cpp | 2 +- test/unit/utVector3.cpp | 2 +- test/unit/utVersion.cpp | 2 +- test/unit/utVertexTriangleAdjacency.cpp | 2 +- test/unit/utX3DImportExport.cpp | 2 +- test/unit/utXImporterExporter.cpp | 2 +- test/unit/utglTF2ImportExport.cpp | 2 +- test/unit/utglTFImportExport.cpp | 2 +- tools/assimp_cmd/CMakeLists.txt | 2 +- tools/assimp_cmd/CompareDump.cpp | 2 +- tools/assimp_cmd/Export.cpp | 2 +- tools/assimp_cmd/ImageExtractor.cpp | 2 +- tools/assimp_cmd/Info.cpp | 2 +- tools/assimp_cmd/Main.cpp | 2 +- tools/assimp_cmd/Main.h | 2 +- tools/assimp_cmd/WriteDumb.cpp | 2 +- tools/assimp_view/AnimEvaluator.cpp | 2 +- tools/assimp_view/AnimEvaluator.h | 2 +- tools/assimp_view/AssetHelper.h | 2 +- tools/assimp_view/Background.cpp | 2 +- tools/assimp_view/Background.h | 2 +- tools/assimp_view/CMakeLists.txt | 2 +- tools/assimp_view/Camera.h | 2 +- tools/assimp_view/Display.cpp | 2 +- tools/assimp_view/Display.h | 2 +- tools/assimp_view/HelpDialog.cpp | 2 +- tools/assimp_view/Input.cpp | 2 +- tools/assimp_view/LogDisplay.cpp | 2 +- tools/assimp_view/LogDisplay.h | 2 +- tools/assimp_view/LogWindow.cpp | 2 +- tools/assimp_view/LogWindow.h | 2 +- tools/assimp_view/Material.cpp | 2 +- tools/assimp_view/MaterialManager.h | 2 +- tools/assimp_view/MeshRenderer.cpp | 2 +- tools/assimp_view/MeshRenderer.h | 2 +- tools/assimp_view/MessageProc.cpp | 2 +- tools/assimp_view/Normals.cpp | 2 +- tools/assimp_view/RenderOptions.h | 2 +- tools/assimp_view/SceneAnimator.cpp | 2 +- tools/assimp_view/SceneAnimator.h | 2 +- tools/assimp_view/Shaders.cpp | 2 +- tools/assimp_view/Shaders.h | 2 +- tools/assimp_view/assimp_view.cpp | 2 +- tools/assimp_view/assimp_view.h | 2 +- tools/assimp_view/assimp_view.rc | 2 +- tools/coverity/assimp_modeling.cpp | 2 +- 714 files changed, 714 insertions(+), 714 deletions(-) diff --git a/.travis.sh b/.travis.sh index f0f0f5d70..3be5d26b4 100755 --- a/.travis.sh +++ b/.travis.sh @@ -1,7 +1,7 @@ #--------------------------------------------------------------------------- #Open Asset Import Library (assimp) #--------------------------------------------------------------------------- -# Copyright (c) 2006-2017, assimp team +# Copyright (c) 2006-2020, assimp team # # License see LICENSE file # diff --git a/CMakeLists.txt b/CMakeLists.txt index 23b6f6d61..0395f874e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,6 +1,6 @@ # Open Asset Import Library (assimp) # ---------------------------------------------------------------------- -# Copyright (c) 2006-2019, assimp team +# Copyright (c) 2006-2020, assimp team # # All rights reserved. # diff --git a/LICENSE b/LICENSE index 262606aff..dc8e24706 100644 --- a/LICENSE +++ b/LICENSE @@ -1,6 +1,6 @@ Open Asset Import Library (assimp) -Copyright (c) 2006-2016, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. Redistribution and use of this software in source and binary forms, diff --git a/assimp-config-version.cmake.in b/assimp-config-version.cmake.in index 923a38798..68366820a 100644 --- a/assimp-config-version.cmake.in +++ b/assimp-config-version.cmake.in @@ -1,6 +1,6 @@ # Open Asset Import Library (assimp) # ---------------------------------------------------------------------- -# Copyright (c) 2006-2017, assimp team +# Copyright (c) 2006-2020, assimp team # All rights reserved. # # Redistribution and use of this software in source and binary forms, diff --git a/code/3DS/3DSConverter.cpp b/code/3DS/3DSConverter.cpp index 3c3da36a3..3f0e20bb0 100644 --- a/code/3DS/3DSConverter.cpp +++ b/code/3DS/3DSConverter.cpp @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team diff --git a/code/3DS/3DSExporter.cpp b/code/3DS/3DSExporter.cpp index 1117a52ef..14810cbff 100644 --- a/code/3DS/3DSExporter.cpp +++ b/code/3DS/3DSExporter.cpp @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/3DS/3DSExporter.h b/code/3DS/3DSExporter.h index 035b562cf..9dcd92d58 100644 --- a/code/3DS/3DSExporter.h +++ b/code/3DS/3DSExporter.h @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/3DS/3DSHelper.h b/code/3DS/3DSHelper.h index 8eb4cd97c..e483f1a25 100644 --- a/code/3DS/3DSHelper.h +++ b/code/3DS/3DSHelper.h @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/3DS/3DSLoader.cpp b/code/3DS/3DSLoader.cpp index 3c659d0b0..3e8e08967 100644 --- a/code/3DS/3DSLoader.cpp +++ b/code/3DS/3DSLoader.cpp @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team diff --git a/code/3DS/3DSLoader.h b/code/3DS/3DSLoader.h index f57e6a8e3..9181294b3 100644 --- a/code/3DS/3DSLoader.h +++ b/code/3DS/3DSLoader.h @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/3MF/3MFXmlTags.h b/code/3MF/3MFXmlTags.h index ea6aeede0..3f1fc01ed 100644 --- a/code/3MF/3MFXmlTags.h +++ b/code/3MF/3MFXmlTags.h @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/3MF/D3MFExporter.cpp b/code/3MF/D3MFExporter.cpp index 1f388ad3e..9d71a54f2 100644 --- a/code/3MF/D3MFExporter.cpp +++ b/code/3MF/D3MFExporter.cpp @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/3MF/D3MFExporter.h b/code/3MF/D3MFExporter.h index e82120247..6a447236b 100644 --- a/code/3MF/D3MFExporter.h +++ b/code/3MF/D3MFExporter.h @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/3MF/D3MFImporter.cpp b/code/3MF/D3MFImporter.cpp index 682de684a..2f30c4fc0 100644 --- a/code/3MF/D3MFImporter.cpp +++ b/code/3MF/D3MFImporter.cpp @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/3MF/D3MFImporter.h b/code/3MF/D3MFImporter.h index 3dbdf07bf..638971247 100644 --- a/code/3MF/D3MFImporter.h +++ b/code/3MF/D3MFImporter.h @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/3MF/D3MFOpcPackage.cpp b/code/3MF/D3MFOpcPackage.cpp index 873ba8ee8..565790656 100644 --- a/code/3MF/D3MFOpcPackage.cpp +++ b/code/3MF/D3MFOpcPackage.cpp @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/3MF/D3MFOpcPackage.h b/code/3MF/D3MFOpcPackage.h index 87d172116..291f8ad53 100644 --- a/code/3MF/D3MFOpcPackage.h +++ b/code/3MF/D3MFOpcPackage.h @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/AC/ACLoader.cpp b/code/AC/ACLoader.cpp index d4c4bd1a6..ea533743f 100644 --- a/code/AC/ACLoader.cpp +++ b/code/AC/ACLoader.cpp @@ -4,7 +4,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team diff --git a/code/AC/ACLoader.h b/code/AC/ACLoader.h index cab2c3ae5..1fc654f3c 100644 --- a/code/AC/ACLoader.h +++ b/code/AC/ACLoader.h @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/AMF/AMFImporter.cpp b/code/AMF/AMFImporter.cpp index dedb6dcdd..df4324d4d 100644 --- a/code/AMF/AMFImporter.cpp +++ b/code/AMF/AMFImporter.cpp @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team diff --git a/code/AMF/AMFImporter.hpp b/code/AMF/AMFImporter.hpp index 2b8086a06..5994717b8 100644 --- a/code/AMF/AMFImporter.hpp +++ b/code/AMF/AMFImporter.hpp @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team diff --git a/code/AMF/AMFImporter_Geometry.cpp b/code/AMF/AMFImporter_Geometry.cpp index f1538e3fb..e9a50b656 100644 --- a/code/AMF/AMFImporter_Geometry.cpp +++ b/code/AMF/AMFImporter_Geometry.cpp @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team diff --git a/code/AMF/AMFImporter_Macro.hpp b/code/AMF/AMFImporter_Macro.hpp index f60c5fbbb..ec06cb999 100644 --- a/code/AMF/AMFImporter_Macro.hpp +++ b/code/AMF/AMFImporter_Macro.hpp @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team diff --git a/code/AMF/AMFImporter_Material.cpp b/code/AMF/AMFImporter_Material.cpp index 2f36df061..64da12dda 100644 --- a/code/AMF/AMFImporter_Material.cpp +++ b/code/AMF/AMFImporter_Material.cpp @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team diff --git a/code/AMF/AMFImporter_Node.hpp b/code/AMF/AMFImporter_Node.hpp index a1bf9f008..b7b7836f3 100644 --- a/code/AMF/AMFImporter_Node.hpp +++ b/code/AMF/AMFImporter_Node.hpp @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team diff --git a/code/AMF/AMFImporter_Postprocess.cpp b/code/AMF/AMFImporter_Postprocess.cpp index 79b5e15e2..8496d8ded 100644 --- a/code/AMF/AMFImporter_Postprocess.cpp +++ b/code/AMF/AMFImporter_Postprocess.cpp @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team diff --git a/code/ASE/ASELoader.cpp b/code/ASE/ASELoader.cpp index 8e99214a8..b2155d5e5 100644 --- a/code/ASE/ASELoader.cpp +++ b/code/ASE/ASELoader.cpp @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team diff --git a/code/ASE/ASELoader.h b/code/ASE/ASELoader.h index b497aa48b..bb7707bb6 100644 --- a/code/ASE/ASELoader.h +++ b/code/ASE/ASELoader.h @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/ASE/ASEParser.cpp b/code/ASE/ASEParser.cpp index 913e7b118..efc6ecd0d 100644 --- a/code/ASE/ASEParser.cpp +++ b/code/ASE/ASEParser.cpp @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team diff --git a/code/ASE/ASEParser.h b/code/ASE/ASEParser.h index 988cbda8d..e55949f99 100644 --- a/code/ASE/ASEParser.h +++ b/code/ASE/ASEParser.h @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/Assbin/AssbinExporter.cpp b/code/Assbin/AssbinExporter.cpp index 76c823f82..aa0c246be 100644 --- a/code/Assbin/AssbinExporter.cpp +++ b/code/Assbin/AssbinExporter.cpp @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/Assbin/AssbinExporter.h b/code/Assbin/AssbinExporter.h index 3e13639bb..350ed85e3 100644 --- a/code/Assbin/AssbinExporter.h +++ b/code/Assbin/AssbinExporter.h @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/Assbin/AssbinLoader.cpp b/code/Assbin/AssbinLoader.cpp index becc3f8fc..8a9751018 100644 --- a/code/Assbin/AssbinLoader.cpp +++ b/code/Assbin/AssbinLoader.cpp @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team diff --git a/code/Assbin/AssbinLoader.h b/code/Assbin/AssbinLoader.h index 9f2dde125..e6e99f26e 100644 --- a/code/Assbin/AssbinLoader.h +++ b/code/Assbin/AssbinLoader.h @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/Assxml/AssxmlExporter.cpp b/code/Assxml/AssxmlExporter.cpp index afdecbaf6..6ebff3582 100644 --- a/code/Assxml/AssxmlExporter.cpp +++ b/code/Assxml/AssxmlExporter.cpp @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/Assxml/AssxmlExporter.h b/code/Assxml/AssxmlExporter.h index 8ca887eea..a2b40ada1 100644 --- a/code/Assxml/AssxmlExporter.h +++ b/code/Assxml/AssxmlExporter.h @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/B3D/B3DImporter.cpp b/code/B3D/B3DImporter.cpp index c9eb89ebc..07336df65 100644 --- a/code/B3D/B3DImporter.cpp +++ b/code/B3D/B3DImporter.cpp @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/B3D/B3DImporter.h b/code/B3D/B3DImporter.h index d52dac34a..f0568dd16 100644 --- a/code/B3D/B3DImporter.h +++ b/code/B3D/B3DImporter.h @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/BVH/BVHLoader.cpp b/code/BVH/BVHLoader.cpp index cd9ab0843..1110754c2 100644 --- a/code/BVH/BVHLoader.cpp +++ b/code/BVH/BVHLoader.cpp @@ -4,7 +4,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team diff --git a/code/BVH/BVHLoader.h b/code/BVH/BVHLoader.h index 33b4e2453..93a3e5e83 100644 --- a/code/BVH/BVHLoader.h +++ b/code/BVH/BVHLoader.h @@ -4,7 +4,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/Blender/BlenderBMesh.cpp b/code/Blender/BlenderBMesh.cpp index 8a13819a6..039302e12 100644 --- a/code/Blender/BlenderBMesh.cpp +++ b/code/Blender/BlenderBMesh.cpp @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2013, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. Redistribution and use of this software in source and binary forms, diff --git a/code/Blender/BlenderBMesh.h b/code/Blender/BlenderBMesh.h index 5b65fb503..893128606 100644 --- a/code/Blender/BlenderBMesh.h +++ b/code/Blender/BlenderBMesh.h @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2013, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. Redistribution and use of this software in source and binary forms, diff --git a/code/Blender/BlenderDNA.cpp b/code/Blender/BlenderDNA.cpp index f274e02f9..53fb84824 100644 --- a/code/Blender/BlenderDNA.cpp +++ b/code/Blender/BlenderDNA.cpp @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/Blender/BlenderDNA.h b/code/Blender/BlenderDNA.h index 375d0c4bf..16ce960e2 100644 --- a/code/Blender/BlenderDNA.h +++ b/code/Blender/BlenderDNA.h @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/Blender/BlenderDNA.inl b/code/Blender/BlenderDNA.inl index 65bc1374c..fd9993008 100644 --- a/code/Blender/BlenderDNA.inl +++ b/code/Blender/BlenderDNA.inl @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/Blender/BlenderIntermediate.h b/code/Blender/BlenderIntermediate.h index 95fdf0f03..2c480b848 100644 --- a/code/Blender/BlenderIntermediate.h +++ b/code/Blender/BlenderIntermediate.h @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/Blender/BlenderLoader.cpp b/code/Blender/BlenderLoader.cpp index d39cb9699..93e6d1589 100644 --- a/code/Blender/BlenderLoader.cpp +++ b/code/Blender/BlenderLoader.cpp @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/Blender/BlenderLoader.h b/code/Blender/BlenderLoader.h index d85a82842..8110ac946 100644 --- a/code/Blender/BlenderLoader.h +++ b/code/Blender/BlenderLoader.h @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/Blender/BlenderModifier.cpp b/code/Blender/BlenderModifier.cpp index cc7acc929..6f8a5d7ee 100644 --- a/code/Blender/BlenderModifier.cpp +++ b/code/Blender/BlenderModifier.cpp @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/Blender/BlenderModifier.h b/code/Blender/BlenderModifier.h index c260ba1f6..ad6fad68d 100644 --- a/code/Blender/BlenderModifier.h +++ b/code/Blender/BlenderModifier.h @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/Blender/BlenderScene.cpp b/code/Blender/BlenderScene.cpp index 39c2793d5..1391a2833 100644 --- a/code/Blender/BlenderScene.cpp +++ b/code/Blender/BlenderScene.cpp @@ -2,7 +2,7 @@ Open Asset Import Library (ASSIMP) ---------------------------------------------------------------------- -Copyright (c) 2006-2016, ASSIMP Development Team +Copyright (c) 2006-2020, ASSIMP Development Team All rights reserved. Redistribution and use of this software in source and binary forms, diff --git a/code/Blender/BlenderScene.h b/code/Blender/BlenderScene.h index dd3f1444c..afa168d49 100644 --- a/code/Blender/BlenderScene.h +++ b/code/Blender/BlenderScene.h @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/Blender/BlenderSceneGen.h b/code/Blender/BlenderSceneGen.h index ce94d0dc2..0c93d17a3 100644 --- a/code/Blender/BlenderSceneGen.h +++ b/code/Blender/BlenderSceneGen.h @@ -2,7 +2,7 @@ Open Asset Import Library (ASSIMP) ---------------------------------------------------------------------- -Copyright (c) 2006-2016, ASSIMP Development Team +Copyright (c) 2006-2020, ASSIMP Development Team All rights reserved. Redistribution and use of this software in source and binary forms, diff --git a/code/Blender/BlenderTessellator.cpp b/code/Blender/BlenderTessellator.cpp index d98c2e865..3c1cd6ea8 100644 --- a/code/Blender/BlenderTessellator.cpp +++ b/code/Blender/BlenderTessellator.cpp @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/Blender/BlenderTessellator.h b/code/Blender/BlenderTessellator.h index 518e56c72..63ea1f828 100644 --- a/code/Blender/BlenderTessellator.h +++ b/code/Blender/BlenderTessellator.h @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/C4D/C4DImporter.cpp b/code/C4D/C4DImporter.cpp index 6e5b7d39b..24fd6f622 100644 --- a/code/C4D/C4DImporter.cpp +++ b/code/C4D/C4DImporter.cpp @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. Redistribution and use of this software in source and binary forms, diff --git a/code/C4D/C4DImporter.h b/code/C4D/C4DImporter.h index f3b1351f6..f9406c3e0 100644 --- a/code/C4D/C4DImporter.h +++ b/code/C4D/C4DImporter.h @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. Redistribution and use of this software in source and binary forms, diff --git a/code/CApi/AssimpCExport.cpp b/code/CApi/AssimpCExport.cpp index 7557edcfc..137cc2894 100644 --- a/code/CApi/AssimpCExport.cpp +++ b/code/CApi/AssimpCExport.cpp @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team diff --git a/code/CApi/CInterfaceIOWrapper.cpp b/code/CApi/CInterfaceIOWrapper.cpp index 5a3a49565..91dd07f37 100644 --- a/code/CApi/CInterfaceIOWrapper.cpp +++ b/code/CApi/CInterfaceIOWrapper.cpp @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team diff --git a/code/CApi/CInterfaceIOWrapper.h b/code/CApi/CInterfaceIOWrapper.h index 216232030..298847494 100644 --- a/code/CApi/CInterfaceIOWrapper.h +++ b/code/CApi/CInterfaceIOWrapper.h @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team diff --git a/code/CMakeLists.txt b/code/CMakeLists.txt index bace9d18c..67def907c 100644 --- a/code/CMakeLists.txt +++ b/code/CMakeLists.txt @@ -1,7 +1,7 @@ # Open Asset Import Library (assimp) # ---------------------------------------------------------------------- # -# Copyright (c) 2006-2019, assimp team +# Copyright (c) 2006-2020, assimp team # # All rights reserved. # diff --git a/code/COB/COBLoader.cpp b/code/COB/COBLoader.cpp index 19e3cd59e..7b82ab662 100644 --- a/code/COB/COBLoader.cpp +++ b/code/COB/COBLoader.cpp @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/COB/COBLoader.h b/code/COB/COBLoader.h index 40fed324b..8b3110a32 100644 --- a/code/COB/COBLoader.h +++ b/code/COB/COBLoader.h @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/COB/COBScene.h b/code/COB/COBScene.h index 90349be70..87f4f4570 100644 --- a/code/COB/COBScene.h +++ b/code/COB/COBScene.h @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/CSM/CSMLoader.cpp b/code/CSM/CSMLoader.cpp index 7fea06727..fbabea12e 100644 --- a/code/CSM/CSMLoader.cpp +++ b/code/CSM/CSMLoader.cpp @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team diff --git a/code/CSM/CSMLoader.h b/code/CSM/CSMLoader.h index 31a814b52..907c7aa43 100644 --- a/code/CSM/CSMLoader.h +++ b/code/CSM/CSMLoader.h @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/Collada/ColladaExporter.cpp b/code/Collada/ColladaExporter.cpp index 3e63990b8..99cdc097b 100644 --- a/code/Collada/ColladaExporter.cpp +++ b/code/Collada/ColladaExporter.cpp @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/Collada/ColladaExporter.h b/code/Collada/ColladaExporter.h index 0b4fa59a3..f6c66e279 100644 --- a/code/Collada/ColladaExporter.h +++ b/code/Collada/ColladaExporter.h @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/Collada/ColladaHelper.cpp b/code/Collada/ColladaHelper.cpp index 510ac657e..6f1fed366 100644 --- a/code/Collada/ColladaHelper.cpp +++ b/code/Collada/ColladaHelper.cpp @@ -4,7 +4,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/Collada/ColladaHelper.h b/code/Collada/ColladaHelper.h index 76d39c197..c6e2e7ddd 100644 --- a/code/Collada/ColladaHelper.h +++ b/code/Collada/ColladaHelper.h @@ -4,7 +4,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/Collada/ColladaLoader.cpp b/code/Collada/ColladaLoader.cpp index 0d8aa47c4..b78fc0e3b 100644 --- a/code/Collada/ColladaLoader.cpp +++ b/code/Collada/ColladaLoader.cpp @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/Collada/ColladaLoader.h b/code/Collada/ColladaLoader.h index d8d3f4f52..198b7a215 100644 --- a/code/Collada/ColladaLoader.h +++ b/code/Collada/ColladaLoader.h @@ -4,7 +4,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/Collada/ColladaParser.cpp b/code/Collada/ColladaParser.cpp index cced255f5..d0f71d95a 100644 --- a/code/Collada/ColladaParser.cpp +++ b/code/Collada/ColladaParser.cpp @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team diff --git a/code/Collada/ColladaParser.h b/code/Collada/ColladaParser.h index f421172c7..d1e812bd2 100644 --- a/code/Collada/ColladaParser.h +++ b/code/Collada/ColladaParser.h @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- - Copyright (c) 2006-2019, assimp team + Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/Common/Assimp.cpp b/code/Common/Assimp.cpp index 178b2c01d..66588f0bc 100644 --- a/code/Common/Assimp.cpp +++ b/code/Common/Assimp.cpp @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team diff --git a/code/Common/BaseImporter.cpp b/code/Common/BaseImporter.cpp index 5c1e60554..660a6a965 100644 --- a/code/Common/BaseImporter.cpp +++ b/code/Common/BaseImporter.cpp @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team diff --git a/code/Common/BaseProcess.cpp b/code/Common/BaseProcess.cpp index e247be418..974af68db 100644 --- a/code/Common/BaseProcess.cpp +++ b/code/Common/BaseProcess.cpp @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team diff --git a/code/Common/BaseProcess.h b/code/Common/BaseProcess.h index 4d5c7a76b..a7e48bba3 100644 --- a/code/Common/BaseProcess.h +++ b/code/Common/BaseProcess.h @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/Common/Bitmap.cpp b/code/Common/Bitmap.cpp index b22b71ea9..7d8225704 100644 --- a/code/Common/Bitmap.cpp +++ b/code/Common/Bitmap.cpp @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team diff --git a/code/Common/CreateAnimMesh.cpp b/code/Common/CreateAnimMesh.cpp index 98b60e531..7317dc45b 100644 --- a/code/Common/CreateAnimMesh.cpp +++ b/code/Common/CreateAnimMesh.cpp @@ -4,7 +4,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- Copyright (C) 2016 The Qt Company Ltd. -Copyright (c) 2006-2012, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/Common/DefaultIOStream.cpp b/code/Common/DefaultIOStream.cpp index 829b44731..205f19e37 100644 --- a/code/Common/DefaultIOStream.cpp +++ b/code/Common/DefaultIOStream.cpp @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team diff --git a/code/Common/DefaultIOSystem.cpp b/code/Common/DefaultIOSystem.cpp index 6fdc24dd8..0343cb289 100644 --- a/code/Common/DefaultIOSystem.cpp +++ b/code/Common/DefaultIOSystem.cpp @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team diff --git a/code/Common/DefaultLogger.cpp b/code/Common/DefaultLogger.cpp index eee53bd7c..adb9ba160 100644 --- a/code/Common/DefaultLogger.cpp +++ b/code/Common/DefaultLogger.cpp @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team diff --git a/code/Common/DefaultProgressHandler.h b/code/Common/DefaultProgressHandler.h index bd2cce00b..ebf7f118c 100644 --- a/code/Common/DefaultProgressHandler.h +++ b/code/Common/DefaultProgressHandler.h @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/Common/Exporter.cpp b/code/Common/Exporter.cpp index 784c803b0..9f9a33b58 100644 --- a/code/Common/Exporter.cpp +++ b/code/Common/Exporter.cpp @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team diff --git a/code/Common/FileLogStream.h b/code/Common/FileLogStream.h index 740c50319..ecff03a7e 100644 --- a/code/Common/FileLogStream.h +++ b/code/Common/FileLogStream.h @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/Common/FileSystemFilter.h b/code/Common/FileSystemFilter.h index 9923cdbdd..1440cf97d 100644 --- a/code/Common/FileSystemFilter.h +++ b/code/Common/FileSystemFilter.h @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2008, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. Redistribution and use of this software in source and binary forms, diff --git a/code/Common/Importer.cpp b/code/Common/Importer.cpp index 9564f6ab7..5601298f1 100644 --- a/code/Common/Importer.cpp +++ b/code/Common/Importer.cpp @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/Common/Importer.h b/code/Common/Importer.h index a439d99c2..c31f67caa 100644 --- a/code/Common/Importer.h +++ b/code/Common/Importer.h @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/Common/ImporterRegistry.cpp b/code/Common/ImporterRegistry.cpp index b9f28f035..41aa21979 100644 --- a/code/Common/ImporterRegistry.cpp +++ b/code/Common/ImporterRegistry.cpp @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team diff --git a/code/Common/PolyTools.h b/code/Common/PolyTools.h index fbbda0e7d..1b8972877 100644 --- a/code/Common/PolyTools.h +++ b/code/Common/PolyTools.h @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/Common/PostStepRegistry.cpp b/code/Common/PostStepRegistry.cpp index 8ff4af040..21bd2af95 100644 --- a/code/Common/PostStepRegistry.cpp +++ b/code/Common/PostStepRegistry.cpp @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team diff --git a/code/Common/RemoveComments.cpp b/code/Common/RemoveComments.cpp index 91700a769..f7e735c16 100644 --- a/code/Common/RemoveComments.cpp +++ b/code/Common/RemoveComments.cpp @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/Common/SGSpatialSort.cpp b/code/Common/SGSpatialSort.cpp index 120070b0a..35ffaae58 100644 --- a/code/Common/SGSpatialSort.cpp +++ b/code/Common/SGSpatialSort.cpp @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team diff --git a/code/Common/SceneCombiner.cpp b/code/Common/SceneCombiner.cpp index f7b13cc95..9471907de 100644 --- a/code/Common/SceneCombiner.cpp +++ b/code/Common/SceneCombiner.cpp @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/Common/ScenePreprocessor.cpp b/code/Common/ScenePreprocessor.cpp index 432a3d766..25b225111 100644 --- a/code/Common/ScenePreprocessor.cpp +++ b/code/Common/ScenePreprocessor.cpp @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/Common/ScenePreprocessor.h b/code/Common/ScenePreprocessor.h index 3f4c8d7c3..e059d1c95 100644 --- a/code/Common/ScenePreprocessor.h +++ b/code/Common/ScenePreprocessor.h @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/Common/ScenePrivate.h b/code/Common/ScenePrivate.h index f336aafc9..f66f48856 100644 --- a/code/Common/ScenePrivate.h +++ b/code/Common/ScenePrivate.h @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/Common/SkeletonMeshBuilder.cpp b/code/Common/SkeletonMeshBuilder.cpp index 06cfe034e..724359f99 100644 --- a/code/Common/SkeletonMeshBuilder.cpp +++ b/code/Common/SkeletonMeshBuilder.cpp @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/Common/SpatialSort.cpp b/code/Common/SpatialSort.cpp index a4f3a4e4b..604b086b7 100644 --- a/code/Common/SpatialSort.cpp +++ b/code/Common/SpatialSort.cpp @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team diff --git a/code/Common/SplitByBoneCountProcess.cpp b/code/Common/SplitByBoneCountProcess.cpp index 2ef66a9af..b472cb359 100644 --- a/code/Common/SplitByBoneCountProcess.cpp +++ b/code/Common/SplitByBoneCountProcess.cpp @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/Common/SplitByBoneCountProcess.h b/code/Common/SplitByBoneCountProcess.h index 6c904a9df..7185d0330 100644 --- a/code/Common/SplitByBoneCountProcess.h +++ b/code/Common/SplitByBoneCountProcess.h @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/Common/StandardShapes.cpp b/code/Common/StandardShapes.cpp index 2e5100130..d474c6129 100644 --- a/code/Common/StandardShapes.cpp +++ b/code/Common/StandardShapes.cpp @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/Common/StdOStreamLogStream.h b/code/Common/StdOStreamLogStream.h index 893e261a2..4f5999775 100644 --- a/code/Common/StdOStreamLogStream.h +++ b/code/Common/StdOStreamLogStream.h @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team diff --git a/code/Common/Subdivision.cpp b/code/Common/Subdivision.cpp index 60c54939f..08408f867 100644 --- a/code/Common/Subdivision.cpp +++ b/code/Common/Subdivision.cpp @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/Common/TargetAnimation.cpp b/code/Common/TargetAnimation.cpp index b8062499f..3c61d2176 100644 --- a/code/Common/TargetAnimation.cpp +++ b/code/Common/TargetAnimation.cpp @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/Common/TargetAnimation.h b/code/Common/TargetAnimation.h index 91634ab5a..5b9c1881d 100644 --- a/code/Common/TargetAnimation.h +++ b/code/Common/TargetAnimation.h @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/Common/Version.cpp b/code/Common/Version.cpp index ea4c996f0..f04d12233 100644 --- a/code/Common/Version.cpp +++ b/code/Common/Version.cpp @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. @@ -55,7 +55,7 @@ static const char* LEGAL_INFORMATION = "Open Asset Import Library (Assimp).\n" "A free C/C++ library to import various 3D file formats into applications\n\n" -"(c) 2006-2019, assimp team\n" +"(c) 2006-2020, assimp team\n" "License under the terms and conditions of the 3-clause BSD license\n" "http://assimp.org\n" ; diff --git a/code/Common/VertexTriangleAdjacency.cpp b/code/Common/VertexTriangleAdjacency.cpp index 83558f697..e588dc2a4 100644 --- a/code/Common/VertexTriangleAdjacency.cpp +++ b/code/Common/VertexTriangleAdjacency.cpp @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team diff --git a/code/Common/VertexTriangleAdjacency.h b/code/Common/VertexTriangleAdjacency.h index f3be47612..2226fc1c4 100644 --- a/code/Common/VertexTriangleAdjacency.h +++ b/code/Common/VertexTriangleAdjacency.h @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/Common/Win32DebugLogStream.h b/code/Common/Win32DebugLogStream.h index a6063a261..3a9d89c73 100644 --- a/code/Common/Win32DebugLogStream.h +++ b/code/Common/Win32DebugLogStream.h @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team diff --git a/code/Common/ZipArchiveIOSystem.cpp b/code/Common/ZipArchiveIOSystem.cpp index 7c37a05f9..e83d3e50d 100644 --- a/code/Common/ZipArchiveIOSystem.cpp +++ b/code/Common/ZipArchiveIOSystem.cpp @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/Common/scene.cpp b/code/Common/scene.cpp index d15619acf..f56562b1c 100644 --- a/code/Common/scene.cpp +++ b/code/Common/scene.cpp @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team diff --git a/code/Common/simd.cpp b/code/Common/simd.cpp index 04615f408..305445970 100644 --- a/code/Common/simd.cpp +++ b/code/Common/simd.cpp @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team diff --git a/code/Common/simd.h b/code/Common/simd.h index 3eecdd458..17856fe72 100644 --- a/code/Common/simd.h +++ b/code/Common/simd.h @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team diff --git a/code/DXF/DXFHelper.h b/code/DXF/DXFHelper.h index 0ec8e130b..8140d00c6 100644 --- a/code/DXF/DXFHelper.h +++ b/code/DXF/DXFHelper.h @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/DXF/DXFLoader.cpp b/code/DXF/DXFLoader.cpp index baf315485..ea877a484 100644 --- a/code/DXF/DXFLoader.cpp +++ b/code/DXF/DXFLoader.cpp @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team diff --git a/code/DXF/DXFLoader.h b/code/DXF/DXFLoader.h index 044cf6bcb..5c4f1787e 100644 --- a/code/DXF/DXFLoader.h +++ b/code/DXF/DXFLoader.h @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/FBX/FBXAnimation.cpp b/code/FBX/FBXAnimation.cpp index 874914431..9a54f61a0 100644 --- a/code/FBX/FBXAnimation.cpp +++ b/code/FBX/FBXAnimation.cpp @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/FBX/FBXBinaryTokenizer.cpp b/code/FBX/FBXBinaryTokenizer.cpp index a4a2bc8e7..7faa0518b 100644 --- a/code/FBX/FBXBinaryTokenizer.cpp +++ b/code/FBX/FBXBinaryTokenizer.cpp @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/FBX/FBXCommon.h b/code/FBX/FBXCommon.h index b28601c74..7f70eb784 100644 --- a/code/FBX/FBXCommon.h +++ b/code/FBX/FBXCommon.h @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/FBX/FBXCompileConfig.h b/code/FBX/FBXCompileConfig.h index 03536a182..5cdaa6960 100644 --- a/code/FBX/FBXCompileConfig.h +++ b/code/FBX/FBXCompileConfig.h @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/FBX/FBXConverter.cpp b/code/FBX/FBXConverter.cpp index d672afe56..22616a480 100644 --- a/code/FBX/FBXConverter.cpp +++ b/code/FBX/FBXConverter.cpp @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/FBX/FBXConverter.h b/code/FBX/FBXConverter.h index d47416223..c5ad47059 100644 --- a/code/FBX/FBXConverter.h +++ b/code/FBX/FBXConverter.h @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/FBX/FBXDeformer.cpp b/code/FBX/FBXDeformer.cpp index 692755345..4b76cd0fa 100644 --- a/code/FBX/FBXDeformer.cpp +++ b/code/FBX/FBXDeformer.cpp @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/FBX/FBXDocument.cpp b/code/FBX/FBXDocument.cpp index 506fd978d..ddb971b3f 100644 --- a/code/FBX/FBXDocument.cpp +++ b/code/FBX/FBXDocument.cpp @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/FBX/FBXDocument.h b/code/FBX/FBXDocument.h index a60d7d9ef..8984b3df7 100644 --- a/code/FBX/FBXDocument.h +++ b/code/FBX/FBXDocument.h @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/FBX/FBXDocumentUtil.cpp b/code/FBX/FBXDocumentUtil.cpp index f84691479..7178e9f26 100644 --- a/code/FBX/FBXDocumentUtil.cpp +++ b/code/FBX/FBXDocumentUtil.cpp @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/FBX/FBXDocumentUtil.h b/code/FBX/FBXDocumentUtil.h index 2450109e5..2d76ee031 100644 --- a/code/FBX/FBXDocumentUtil.h +++ b/code/FBX/FBXDocumentUtil.h @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2012, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. Redistribution and use of this software in source and binary forms, diff --git a/code/FBX/FBXExportNode.cpp b/code/FBX/FBXExportNode.cpp index 9b29995cc..53aa719f4 100644 --- a/code/FBX/FBXExportNode.cpp +++ b/code/FBX/FBXExportNode.cpp @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/FBX/FBXExportNode.h b/code/FBX/FBXExportNode.h index ef3bc781a..2e8f491a1 100644 --- a/code/FBX/FBXExportNode.h +++ b/code/FBX/FBXExportNode.h @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/FBX/FBXExportProperty.cpp b/code/FBX/FBXExportProperty.cpp index f2a63b72b..11ee35003 100644 --- a/code/FBX/FBXExportProperty.cpp +++ b/code/FBX/FBXExportProperty.cpp @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/FBX/FBXExportProperty.h b/code/FBX/FBXExportProperty.h index d692fe6ee..6baae8b69 100644 --- a/code/FBX/FBXExportProperty.h +++ b/code/FBX/FBXExportProperty.h @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/FBX/FBXExporter.cpp b/code/FBX/FBXExporter.cpp index 413d1d6c8..594951e78 100644 --- a/code/FBX/FBXExporter.cpp +++ b/code/FBX/FBXExporter.cpp @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/FBX/FBXExporter.h b/code/FBX/FBXExporter.h index 1ae727eda..eb8bfaf3b 100644 --- a/code/FBX/FBXExporter.h +++ b/code/FBX/FBXExporter.h @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/FBX/FBXImportSettings.h b/code/FBX/FBXImportSettings.h index 1a4c80f8b..974931b4c 100644 --- a/code/FBX/FBXImportSettings.h +++ b/code/FBX/FBXImportSettings.h @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/FBX/FBXImporter.cpp b/code/FBX/FBXImporter.cpp index afcc1ddc7..571f60883 100644 --- a/code/FBX/FBXImporter.cpp +++ b/code/FBX/FBXImporter.cpp @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/FBX/FBXImporter.h b/code/FBX/FBXImporter.h index c365b2cdd..63375e40d 100644 --- a/code/FBX/FBXImporter.h +++ b/code/FBX/FBXImporter.h @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/FBX/FBXMaterial.cpp b/code/FBX/FBXMaterial.cpp index f43a8b84b..88ac9db16 100644 --- a/code/FBX/FBXMaterial.cpp +++ b/code/FBX/FBXMaterial.cpp @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/FBX/FBXMeshGeometry.cpp b/code/FBX/FBXMeshGeometry.cpp index 1386e2383..70e35ccb3 100644 --- a/code/FBX/FBXMeshGeometry.cpp +++ b/code/FBX/FBXMeshGeometry.cpp @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/FBX/FBXMeshGeometry.h b/code/FBX/FBXMeshGeometry.h index d6d451217..97265e4b2 100644 --- a/code/FBX/FBXMeshGeometry.h +++ b/code/FBX/FBXMeshGeometry.h @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/FBX/FBXModel.cpp b/code/FBX/FBXModel.cpp index 589af36ac..e34f3a610 100644 --- a/code/FBX/FBXModel.cpp +++ b/code/FBX/FBXModel.cpp @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/FBX/FBXNodeAttribute.cpp b/code/FBX/FBXNodeAttribute.cpp index b72e5637e..2ebf917e3 100644 --- a/code/FBX/FBXNodeAttribute.cpp +++ b/code/FBX/FBXNodeAttribute.cpp @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/FBX/FBXParser.cpp b/code/FBX/FBXParser.cpp index 4a9346040..215ff7484 100644 --- a/code/FBX/FBXParser.cpp +++ b/code/FBX/FBXParser.cpp @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/FBX/FBXParser.h b/code/FBX/FBXParser.h index 7b0cf7203..5d8d00307 100644 --- a/code/FBX/FBXParser.h +++ b/code/FBX/FBXParser.h @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/FBX/FBXProperties.cpp b/code/FBX/FBXProperties.cpp index 8d7036b6a..f6b804894 100644 --- a/code/FBX/FBXProperties.cpp +++ b/code/FBX/FBXProperties.cpp @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/FBX/FBXProperties.h b/code/FBX/FBXProperties.h index 58755542f..209d5e940 100644 --- a/code/FBX/FBXProperties.h +++ b/code/FBX/FBXProperties.h @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/FBX/FBXTokenizer.cpp b/code/FBX/FBXTokenizer.cpp index 252cce355..831c40061 100644 --- a/code/FBX/FBXTokenizer.cpp +++ b/code/FBX/FBXTokenizer.cpp @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/FBX/FBXTokenizer.h b/code/FBX/FBXTokenizer.h index afa588a47..cadc82770 100644 --- a/code/FBX/FBXTokenizer.h +++ b/code/FBX/FBXTokenizer.h @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/FBX/FBXUtil.cpp b/code/FBX/FBXUtil.cpp index c10e057c8..50dd78a4c 100644 --- a/code/FBX/FBXUtil.cpp +++ b/code/FBX/FBXUtil.cpp @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/FBX/FBXUtil.h b/code/FBX/FBXUtil.h index b63441885..77bb0ad30 100644 --- a/code/FBX/FBXUtil.h +++ b/code/FBX/FBXUtil.h @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/HMP/HMPFileData.h b/code/HMP/HMPFileData.h index ab4100174..bad8dde5c 100644 --- a/code/HMP/HMPFileData.h +++ b/code/HMP/HMPFileData.h @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/HMP/HMPLoader.cpp b/code/HMP/HMPLoader.cpp index d5469181e..0d1334fdd 100644 --- a/code/HMP/HMPLoader.cpp +++ b/code/HMP/HMPLoader.cpp @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team diff --git a/code/HMP/HMPLoader.h b/code/HMP/HMPLoader.h index 421826c91..0371a608b 100644 --- a/code/HMP/HMPLoader.h +++ b/code/HMP/HMPLoader.h @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/HMP/HalfLifeFileData.h b/code/HMP/HalfLifeFileData.h index ef328edf8..d7db1476c 100644 --- a/code/HMP/HalfLifeFileData.h +++ b/code/HMP/HalfLifeFileData.h @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/Importer/IFC/IFCBoolean.cpp b/code/Importer/IFC/IFCBoolean.cpp index 10e7bf3af..01fd43cd2 100644 --- a/code/Importer/IFC/IFCBoolean.cpp +++ b/code/Importer/IFC/IFCBoolean.cpp @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2010, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. Redistribution and use of this software in source and binary forms, diff --git a/code/Importer/IFC/IFCCurve.cpp b/code/Importer/IFC/IFCCurve.cpp index a817b4f9f..6ff330052 100644 --- a/code/Importer/IFC/IFCCurve.cpp +++ b/code/Importer/IFC/IFCCurve.cpp @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/Importer/IFC/IFCGeometry.cpp b/code/Importer/IFC/IFCGeometry.cpp index 7949f9a58..bb4d74758 100644 --- a/code/Importer/IFC/IFCGeometry.cpp +++ b/code/Importer/IFC/IFCGeometry.cpp @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2010, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. Redistribution and use of this software in source and binary forms, diff --git a/code/Importer/IFC/IFCLoader.cpp b/code/Importer/IFC/IFCLoader.cpp index 5c705c256..5dd19f320 100644 --- a/code/Importer/IFC/IFCLoader.cpp +++ b/code/Importer/IFC/IFCLoader.cpp @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/Importer/IFC/IFCLoader.h b/code/Importer/IFC/IFCLoader.h index 678c60343..4abfe00f1 100644 --- a/code/Importer/IFC/IFCLoader.h +++ b/code/Importer/IFC/IFCLoader.h @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/Importer/IFC/IFCMaterial.cpp b/code/Importer/IFC/IFCMaterial.cpp index 5fda0a1de..832712cd4 100644 --- a/code/Importer/IFC/IFCMaterial.cpp +++ b/code/Importer/IFC/IFCMaterial.cpp @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/Importer/IFC/IFCOpenings.cpp b/code/Importer/IFC/IFCOpenings.cpp index d6c40b383..2c6754287 100644 --- a/code/Importer/IFC/IFCOpenings.cpp +++ b/code/Importer/IFC/IFCOpenings.cpp @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2010, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. Redistribution and use of this software in source and binary forms, diff --git a/code/Importer/IFC/IFCProfile.cpp b/code/Importer/IFC/IFCProfile.cpp index daafc9afe..a1a1b3967 100644 --- a/code/Importer/IFC/IFCProfile.cpp +++ b/code/Importer/IFC/IFCProfile.cpp @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/Importer/IFC/IFCReaderGen1_2x3.cpp b/code/Importer/IFC/IFCReaderGen1_2x3.cpp index f4dbed1d1..58ff47113 100644 --- a/code/Importer/IFC/IFCReaderGen1_2x3.cpp +++ b/code/Importer/IFC/IFCReaderGen1_2x3.cpp @@ -2,7 +2,7 @@ Open Asset Import Library (ASSIMP) ---------------------------------------------------------------------- -Copyright (c) 2006-2010, ASSIMP Development Team +Copyright (c) 2006-2020, ASSIMP Development Team All rights reserved. Redistribution and use of this software in source and binary forms, diff --git a/code/Importer/IFC/IFCReaderGen2_2x3.cpp b/code/Importer/IFC/IFCReaderGen2_2x3.cpp index 7dabe278e..e6687014d 100644 --- a/code/Importer/IFC/IFCReaderGen2_2x3.cpp +++ b/code/Importer/IFC/IFCReaderGen2_2x3.cpp @@ -2,7 +2,7 @@ Open Asset Import Library (ASSIMP) ---------------------------------------------------------------------- -Copyright (c) 2006-2010, ASSIMP Development Team +Copyright (c) 2006-2020, ASSIMP Development Team All rights reserved. Redistribution and use of this software in source and binary forms, diff --git a/code/Importer/IFC/IFCReaderGen_2x3.h b/code/Importer/IFC/IFCReaderGen_2x3.h index 8b39ccdc2..4605b94cf 100644 --- a/code/Importer/IFC/IFCReaderGen_2x3.h +++ b/code/Importer/IFC/IFCReaderGen_2x3.h @@ -2,7 +2,7 @@ Open Asset Import Library (ASSIMP) ---------------------------------------------------------------------- -Copyright (c) 2006-2010, ASSIMP Development Team +Copyright (c) 2006-2020, ASSIMP Development Team All rights reserved. Redistribution and use of this software in source and binary forms, diff --git a/code/Importer/IFC/IFCReaderGen_4.cpp b/code/Importer/IFC/IFCReaderGen_4.cpp index fdefedb18..9eb3e2446 100644 --- a/code/Importer/IFC/IFCReaderGen_4.cpp +++ b/code/Importer/IFC/IFCReaderGen_4.cpp @@ -2,7 +2,7 @@ Open Asset Import Library (ASSIMP) ---------------------------------------------------------------------- -Copyright (c) 2006-2010, ASSIMP Development Team +Copyright (c) 2006-2020, ASSIMP Development Team All rights reserved. Redistribution and use of this software in source and binary forms, diff --git a/code/Importer/IFC/IFCReaderGen_4.h b/code/Importer/IFC/IFCReaderGen_4.h index ccfcb6ea0..0f184cd02 100644 --- a/code/Importer/IFC/IFCReaderGen_4.h +++ b/code/Importer/IFC/IFCReaderGen_4.h @@ -2,7 +2,7 @@ Open Asset Import Library (ASSIMP) ---------------------------------------------------------------------- -Copyright (c) 2006-2010, ASSIMP Development Team +Copyright (c) 2006-2020, ASSIMP Development Team All rights reserved. Redistribution and use of this software in source and binary forms, diff --git a/code/Importer/IFC/IFCUtil.cpp b/code/Importer/IFC/IFCUtil.cpp index f6bca91f5..3557b4baa 100644 --- a/code/Importer/IFC/IFCUtil.cpp +++ b/code/Importer/IFC/IFCUtil.cpp @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/Importer/IFC/IFCUtil.h b/code/Importer/IFC/IFCUtil.h index 32ae1e07f..cf8c94293 100644 --- a/code/Importer/IFC/IFCUtil.h +++ b/code/Importer/IFC/IFCUtil.h @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/Importer/STEPParser/STEPFileEncoding.cpp b/code/Importer/STEPParser/STEPFileEncoding.cpp index 101dcdfd7..d917c28f3 100644 --- a/code/Importer/STEPParser/STEPFileEncoding.cpp +++ b/code/Importer/STEPParser/STEPFileEncoding.cpp @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/Importer/STEPParser/STEPFileEncoding.h b/code/Importer/STEPParser/STEPFileEncoding.h index 09f16ba33..a076d1ce9 100644 --- a/code/Importer/STEPParser/STEPFileEncoding.h +++ b/code/Importer/STEPParser/STEPFileEncoding.h @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/Importer/STEPParser/STEPFileReader.cpp b/code/Importer/STEPParser/STEPFileReader.cpp index f099d2be7..72f882d6e 100644 --- a/code/Importer/STEPParser/STEPFileReader.cpp +++ b/code/Importer/STEPParser/STEPFileReader.cpp @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/Importer/STEPParser/STEPFileReader.h b/code/Importer/STEPParser/STEPFileReader.h index 9c4b77241..62292792a 100644 --- a/code/Importer/STEPParser/STEPFileReader.h +++ b/code/Importer/STEPParser/STEPFileReader.h @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/Importer/StepFile/StepFileGen1.cpp b/code/Importer/StepFile/StepFileGen1.cpp index 50c54818e..234300700 100644 --- a/code/Importer/StepFile/StepFileGen1.cpp +++ b/code/Importer/StepFile/StepFileGen1.cpp @@ -2,7 +2,7 @@ Open Asset Import Library (ASSIMP) ---------------------------------------------------------------------- -Copyright (c) 2006-2018, ASSIMP Development Team +Copyright (c) 2006-2020, ASSIMP Development Team All rights reserved. Redistribution and use of this software in source and binary forms, diff --git a/code/Importer/StepFile/StepFileGen2.cpp b/code/Importer/StepFile/StepFileGen2.cpp index eca09e4e1..a80bb69ef 100644 --- a/code/Importer/StepFile/StepFileGen2.cpp +++ b/code/Importer/StepFile/StepFileGen2.cpp @@ -2,7 +2,7 @@ Open Asset Import Library (ASSIMP) ---------------------------------------------------------------------- -Copyright (c) 2006-2010, ASSIMP Development Team +Copyright (c) 2006-2020, ASSIMP Development Team All rights reserved. Redistribution and use of this software in source and binary forms, diff --git a/code/Importer/StepFile/StepFileGen3.cpp b/code/Importer/StepFile/StepFileGen3.cpp index d8d81141f..2f25683a8 100644 --- a/code/Importer/StepFile/StepFileGen3.cpp +++ b/code/Importer/StepFile/StepFileGen3.cpp @@ -2,7 +2,7 @@ Open Asset Import Library (ASSIMP) ---------------------------------------------------------------------- -Copyright (c) 2006-2010, ASSIMP Development Team +Copyright (c) 2006-2020, ASSIMP Development Team All rights reserved. Redistribution and use of this software in source and binary forms, diff --git a/code/Importer/StepFile/StepFileImporter.cpp b/code/Importer/StepFile/StepFileImporter.cpp index 26c456ac9..28744c785 100644 --- a/code/Importer/StepFile/StepFileImporter.cpp +++ b/code/Importer/StepFile/StepFileImporter.cpp @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team diff --git a/code/Importer/StepFile/StepFileImporter.h b/code/Importer/StepFile/StepFileImporter.h index 70f65fdcf..c6ac08bb6 100644 --- a/code/Importer/StepFile/StepFileImporter.h +++ b/code/Importer/StepFile/StepFileImporter.h @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team diff --git a/code/Importer/StepFile/StepReaderGen.h b/code/Importer/StepFile/StepReaderGen.h index 9eb86c332..cb1034e2b 100644 --- a/code/Importer/StepFile/StepReaderGen.h +++ b/code/Importer/StepFile/StepReaderGen.h @@ -2,7 +2,7 @@ Open Asset Import Library (ASSIMP) ---------------------------------------------------------------------- -Copyright (c) 2006-2018, ASSIMP Development Team +Copyright (c) 2006-2020, ASSIMP Development Team All rights reserved. Redistribution and use of this software in source and binary forms, diff --git a/code/Irr/IRRLoader.cpp b/code/Irr/IRRLoader.cpp index e94fd85a4..4361d578a 100644 --- a/code/Irr/IRRLoader.cpp +++ b/code/Irr/IRRLoader.cpp @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team diff --git a/code/Irr/IRRLoader.h b/code/Irr/IRRLoader.h index b3ad81a7d..fc6f77031 100644 --- a/code/Irr/IRRLoader.h +++ b/code/Irr/IRRLoader.h @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/Irr/IRRMeshLoader.cpp b/code/Irr/IRRMeshLoader.cpp index 057218464..13db70e91 100644 --- a/code/Irr/IRRMeshLoader.cpp +++ b/code/Irr/IRRMeshLoader.cpp @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team diff --git a/code/Irr/IRRMeshLoader.h b/code/Irr/IRRMeshLoader.h index d8b42d78d..f0d249f71 100644 --- a/code/Irr/IRRMeshLoader.h +++ b/code/Irr/IRRMeshLoader.h @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/Irr/IRRShared.cpp b/code/Irr/IRRShared.cpp index ecac031ab..5dacc2ae1 100644 --- a/code/Irr/IRRShared.cpp +++ b/code/Irr/IRRShared.cpp @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team diff --git a/code/LWO/LWOAnimation.cpp b/code/LWO/LWOAnimation.cpp index 3a0d2c392..ae9c4c13b 100644 --- a/code/LWO/LWOAnimation.cpp +++ b/code/LWO/LWOAnimation.cpp @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/LWO/LWOAnimation.h b/code/LWO/LWOAnimation.h index dd29695cc..a46787965 100644 --- a/code/LWO/LWOAnimation.h +++ b/code/LWO/LWOAnimation.h @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/LWO/LWOBLoader.cpp b/code/LWO/LWOBLoader.cpp index b24957072..fe542df1b 100644 --- a/code/LWO/LWOBLoader.cpp +++ b/code/LWO/LWOBLoader.cpp @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team diff --git a/code/LWO/LWOFileData.h b/code/LWO/LWOFileData.h index 7d1f6b1df..33fac8c39 100644 --- a/code/LWO/LWOFileData.h +++ b/code/LWO/LWOFileData.h @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/LWO/LWOLoader.cpp b/code/LWO/LWOLoader.cpp index 242538056..cb581f7f5 100644 --- a/code/LWO/LWOLoader.cpp +++ b/code/LWO/LWOLoader.cpp @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team diff --git a/code/LWO/LWOLoader.h b/code/LWO/LWOLoader.h index 05b958fd2..680f82923 100644 --- a/code/LWO/LWOLoader.h +++ b/code/LWO/LWOLoader.h @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/LWO/LWOMaterial.cpp b/code/LWO/LWOMaterial.cpp index b54c21c26..b2304a6be 100644 --- a/code/LWO/LWOMaterial.cpp +++ b/code/LWO/LWOMaterial.cpp @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team diff --git a/code/LWS/LWSLoader.cpp b/code/LWS/LWSLoader.cpp index b52cafa6d..4a9cec4ec 100644 --- a/code/LWS/LWSLoader.cpp +++ b/code/LWS/LWSLoader.cpp @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team diff --git a/code/LWS/LWSLoader.h b/code/LWS/LWSLoader.h index eed0491f3..c1321af37 100644 --- a/code/LWS/LWSLoader.h +++ b/code/LWS/LWSLoader.h @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/M3D/M3DExporter.cpp b/code/M3D/M3DExporter.cpp index fbb03a591..08a0e4ad8 100644 --- a/code/M3D/M3DExporter.cpp +++ b/code/M3D/M3DExporter.cpp @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team Copyright (c) 2019 bzt All rights reserved. diff --git a/code/M3D/M3DExporter.h b/code/M3D/M3DExporter.h index fce89b9de..40fce44d0 100644 --- a/code/M3D/M3DExporter.h +++ b/code/M3D/M3DExporter.h @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team Copyright (c) 2019 bzt All rights reserved. diff --git a/code/M3D/M3DImporter.cpp b/code/M3D/M3DImporter.cpp index a77e75a27..c34c82515 100644 --- a/code/M3D/M3DImporter.cpp +++ b/code/M3D/M3DImporter.cpp @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team Copyright (c) 2019 bzt All rights reserved. diff --git a/code/M3D/M3DImporter.h b/code/M3D/M3DImporter.h index e8e3a65ed..5c9d4fad8 100644 --- a/code/M3D/M3DImporter.h +++ b/code/M3D/M3DImporter.h @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team Copyright (c) 2019 bzt All rights reserved. diff --git a/code/M3D/M3DMaterials.h b/code/M3D/M3DMaterials.h index 4aeba59e4..469ddf52b 100644 --- a/code/M3D/M3DMaterials.h +++ b/code/M3D/M3DMaterials.h @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team Copyright (c) 2019 bzt All rights reserved. diff --git a/code/M3D/M3DWrapper.cpp b/code/M3D/M3DWrapper.cpp index 28eda845f..6ab59b2f0 100644 --- a/code/M3D/M3DWrapper.cpp +++ b/code/M3D/M3DWrapper.cpp @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team Copyright (c) 2019 bzt All rights reserved. diff --git a/code/M3D/M3DWrapper.h b/code/M3D/M3DWrapper.h index b4f90ff1f..bf3ab7bc9 100644 --- a/code/M3D/M3DWrapper.h +++ b/code/M3D/M3DWrapper.h @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team Copyright (c) 2019 bzt All rights reserved. diff --git a/code/MD2/MD2FileData.h b/code/MD2/MD2FileData.h index 9fcb8b0e2..911cd4b98 100644 --- a/code/MD2/MD2FileData.h +++ b/code/MD2/MD2FileData.h @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/MD2/MD2Loader.cpp b/code/MD2/MD2Loader.cpp index 7023c0fa3..473ab99bc 100644 --- a/code/MD2/MD2Loader.cpp +++ b/code/MD2/MD2Loader.cpp @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team diff --git a/code/MD2/MD2Loader.h b/code/MD2/MD2Loader.h index a3863f366..cbebc90a4 100644 --- a/code/MD2/MD2Loader.h +++ b/code/MD2/MD2Loader.h @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/MD2/MD2NormalTable.h b/code/MD2/MD2NormalTable.h index f82b57683..c5c790872 100644 --- a/code/MD2/MD2NormalTable.h +++ b/code/MD2/MD2NormalTable.h @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/MD3/MD3FileData.h b/code/MD3/MD3FileData.h index 2acd6631f..a98af199c 100644 --- a/code/MD3/MD3FileData.h +++ b/code/MD3/MD3FileData.h @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/MD3/MD3Loader.cpp b/code/MD3/MD3Loader.cpp index 7d6c7ef4b..2051ecdda 100644 --- a/code/MD3/MD3Loader.cpp +++ b/code/MD3/MD3Loader.cpp @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team diff --git a/code/MD3/MD3Loader.h b/code/MD3/MD3Loader.h index 01b840228..8d8304345 100644 --- a/code/MD3/MD3Loader.h +++ b/code/MD3/MD3Loader.h @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/MD4/MD4FileData.h b/code/MD4/MD4FileData.h index ed3dc65e7..880df3230 100644 --- a/code/MD4/MD4FileData.h +++ b/code/MD4/MD4FileData.h @@ -2,7 +2,7 @@ Open Asset Import Library (ASSIMP) ---------------------------------------------------------------------- -Copyright (c) 2006-2010, ASSIMP Development Team +Copyright (c) 2006-2020, ASSIMP Development Team All rights reserved. Redistribution and use of this software in source and binary forms, diff --git a/code/MD5/MD5Loader.cpp b/code/MD5/MD5Loader.cpp index a4aed8d70..8c41794e7 100644 --- a/code/MD5/MD5Loader.cpp +++ b/code/MD5/MD5Loader.cpp @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team diff --git a/code/MD5/MD5Loader.h b/code/MD5/MD5Loader.h index e15cc3fb9..196ffb69a 100644 --- a/code/MD5/MD5Loader.h +++ b/code/MD5/MD5Loader.h @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/MD5/MD5Parser.cpp b/code/MD5/MD5Parser.cpp index 37490212f..0d3b9c74a 100644 --- a/code/MD5/MD5Parser.cpp +++ b/code/MD5/MD5Parser.cpp @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team diff --git a/code/MD5/MD5Parser.h b/code/MD5/MD5Parser.h index f7ff5303f..692cb72ba 100644 --- a/code/MD5/MD5Parser.h +++ b/code/MD5/MD5Parser.h @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/MDC/MDCFileData.h b/code/MDC/MDCFileData.h index 052473158..9ec73c170 100644 --- a/code/MDC/MDCFileData.h +++ b/code/MDC/MDCFileData.h @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/MDC/MDCLoader.cpp b/code/MDC/MDCLoader.cpp index 42e1877f3..db4cdef54 100644 --- a/code/MDC/MDCLoader.cpp +++ b/code/MDC/MDCLoader.cpp @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team diff --git a/code/MDC/MDCLoader.h b/code/MDC/MDCLoader.h index a21b8a55a..abd23bb19 100644 --- a/code/MDC/MDCLoader.h +++ b/code/MDC/MDCLoader.h @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/MDL/HalfLife/HL1FileData.h b/code/MDL/HalfLife/HL1FileData.h index 4248b1237..a3cbb3439 100644 --- a/code/MDL/HalfLife/HL1FileData.h +++ b/code/MDL/HalfLife/HL1FileData.h @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/MDL/HalfLife/HL1ImportDefinitions.h b/code/MDL/HalfLife/HL1ImportDefinitions.h index f70f40699..29b1cdceb 100644 --- a/code/MDL/HalfLife/HL1ImportDefinitions.h +++ b/code/MDL/HalfLife/HL1ImportDefinitions.h @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/MDL/HalfLife/HL1ImportSettings.h b/code/MDL/HalfLife/HL1ImportSettings.h index 229303e2c..50be1f366 100644 --- a/code/MDL/HalfLife/HL1ImportSettings.h +++ b/code/MDL/HalfLife/HL1ImportSettings.h @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/MDL/HalfLife/HL1MDLLoader.cpp b/code/MDL/HalfLife/HL1MDLLoader.cpp index 90a1479a3..1de39b868 100644 --- a/code/MDL/HalfLife/HL1MDLLoader.cpp +++ b/code/MDL/HalfLife/HL1MDLLoader.cpp @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/MDL/HalfLife/HL1MDLLoader.h b/code/MDL/HalfLife/HL1MDLLoader.h index 8e356235f..c4293259c 100644 --- a/code/MDL/HalfLife/HL1MDLLoader.h +++ b/code/MDL/HalfLife/HL1MDLLoader.h @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/MDL/HalfLife/HL1MeshTrivert.h b/code/MDL/HalfLife/HL1MeshTrivert.h index 38bd371a0..b61765663 100644 --- a/code/MDL/HalfLife/HL1MeshTrivert.h +++ b/code/MDL/HalfLife/HL1MeshTrivert.h @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/MDL/HalfLife/HalfLifeMDLBaseHeader.h b/code/MDL/HalfLife/HalfLifeMDLBaseHeader.h index 964ade4ae..f26f8735d 100644 --- a/code/MDL/HalfLife/HalfLifeMDLBaseHeader.h +++ b/code/MDL/HalfLife/HalfLifeMDLBaseHeader.h @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/MDL/HalfLife/LogFunctions.h b/code/MDL/HalfLife/LogFunctions.h index db82a2604..5e18a8df7 100644 --- a/code/MDL/HalfLife/LogFunctions.h +++ b/code/MDL/HalfLife/LogFunctions.h @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/MDL/HalfLife/UniqueNameGenerator.cpp b/code/MDL/HalfLife/UniqueNameGenerator.cpp index 1efc3238c..417a6baef 100644 --- a/code/MDL/HalfLife/UniqueNameGenerator.cpp +++ b/code/MDL/HalfLife/UniqueNameGenerator.cpp @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/MDL/HalfLife/UniqueNameGenerator.h b/code/MDL/HalfLife/UniqueNameGenerator.h index 1da21f724..131a46dc4 100644 --- a/code/MDL/HalfLife/UniqueNameGenerator.h +++ b/code/MDL/HalfLife/UniqueNameGenerator.h @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/MDL/MDLDefaultColorMap.h b/code/MDL/MDLDefaultColorMap.h index 58f642884..8c60d1b58 100644 --- a/code/MDL/MDLDefaultColorMap.h +++ b/code/MDL/MDLDefaultColorMap.h @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/MDL/MDLFileData.h b/code/MDL/MDLFileData.h index f33a57731..8ccaf90a2 100644 --- a/code/MDL/MDLFileData.h +++ b/code/MDL/MDLFileData.h @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/MDL/MDLLoader.cpp b/code/MDL/MDLLoader.cpp index 0c80abfc3..21a6bc29b 100644 --- a/code/MDL/MDLLoader.cpp +++ b/code/MDL/MDLLoader.cpp @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/MDL/MDLLoader.h b/code/MDL/MDLLoader.h index 35e78d9ec..0bb78a2b1 100644 --- a/code/MDL/MDLLoader.h +++ b/code/MDL/MDLLoader.h @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/MDL/MDLMaterialLoader.cpp b/code/MDL/MDLMaterialLoader.cpp index 79b57128a..38ff5bbb1 100644 --- a/code/MDL/MDLMaterialLoader.cpp +++ b/code/MDL/MDLMaterialLoader.cpp @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team diff --git a/code/MMD/MMDCpp14.h b/code/MMD/MMDCpp14.h index 638b0bfd2..779b6c288 100644 --- a/code/MMD/MMDCpp14.h +++ b/code/MMD/MMDCpp14.h @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/MMD/MMDImporter.cpp b/code/MMD/MMDImporter.cpp index e7744e4cd..3cc618633 100644 --- a/code/MMD/MMDImporter.cpp +++ b/code/MMD/MMDImporter.cpp @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2016, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/MMD/MMDImporter.h b/code/MMD/MMDImporter.h index 4ee94eeb0..1cc91c782 100644 --- a/code/MMD/MMDImporter.h +++ b/code/MMD/MMDImporter.h @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2016, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. Redistribution and use of this software in source and binary forms, diff --git a/code/MMD/MMDPmdParser.h b/code/MMD/MMDPmdParser.h index d2f2224aa..dad9ed4bc 100644 --- a/code/MMD/MMDPmdParser.h +++ b/code/MMD/MMDPmdParser.h @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/MMD/MMDPmxParser.cpp b/code/MMD/MMDPmxParser.cpp index 80f0986dd..6421f38cb 100644 --- a/code/MMD/MMDPmxParser.cpp +++ b/code/MMD/MMDPmxParser.cpp @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/MMD/MMDPmxParser.h b/code/MMD/MMDPmxParser.h index cf523a129..9c9fb3ad7 100644 --- a/code/MMD/MMDPmxParser.h +++ b/code/MMD/MMDPmxParser.h @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/MMD/MMDVmdParser.h b/code/MMD/MMDVmdParser.h index 947c3a242..7d15e32d4 100644 --- a/code/MMD/MMDVmdParser.h +++ b/code/MMD/MMDVmdParser.h @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/MS3D/MS3DLoader.cpp b/code/MS3D/MS3DLoader.cpp index c0d0eddbe..5a29df2ee 100644 --- a/code/MS3D/MS3DLoader.cpp +++ b/code/MS3D/MS3DLoader.cpp @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team diff --git a/code/MS3D/MS3DLoader.h b/code/MS3D/MS3DLoader.h index 3e39dc79f..522664b9a 100644 --- a/code/MS3D/MS3DLoader.h +++ b/code/MS3D/MS3DLoader.h @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/Material/MaterialSystem.cpp b/code/Material/MaterialSystem.cpp index befdb43d2..1c034e55f 100644 --- a/code/Material/MaterialSystem.cpp +++ b/code/Material/MaterialSystem.cpp @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/Material/MaterialSystem.h b/code/Material/MaterialSystem.h index 67d53578c..6df9818a3 100644 --- a/code/Material/MaterialSystem.h +++ b/code/Material/MaterialSystem.h @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/NDO/NDOLoader.cpp b/code/NDO/NDOLoader.cpp index d33f40c75..efb942b9c 100644 --- a/code/NDO/NDOLoader.cpp +++ b/code/NDO/NDOLoader.cpp @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team diff --git a/code/NDO/NDOLoader.h b/code/NDO/NDOLoader.h index f2212edab..4d3f47b25 100644 --- a/code/NDO/NDOLoader.h +++ b/code/NDO/NDOLoader.h @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2008, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. Redistribution and use of this software in source and binary forms, diff --git a/code/NFF/NFFLoader.cpp b/code/NFF/NFFLoader.cpp index 10a7d1aff..ca10f7a03 100644 --- a/code/NFF/NFFLoader.cpp +++ b/code/NFF/NFFLoader.cpp @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team diff --git a/code/NFF/NFFLoader.h b/code/NFF/NFFLoader.h index bc4840e14..02f0f82d5 100644 --- a/code/NFF/NFFLoader.h +++ b/code/NFF/NFFLoader.h @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/OFF/OFFLoader.cpp b/code/OFF/OFFLoader.cpp index afd44a539..79f006fca 100644 --- a/code/OFF/OFFLoader.cpp +++ b/code/OFF/OFFLoader.cpp @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team diff --git a/code/OFF/OFFLoader.h b/code/OFF/OFFLoader.h index 3fca77e1b..f0f40d9d5 100644 --- a/code/OFF/OFFLoader.h +++ b/code/OFF/OFFLoader.h @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/Obj/ObjExporter.cpp b/code/Obj/ObjExporter.cpp index 0a0dbd62c..56eb4d9b8 100644 --- a/code/Obj/ObjExporter.cpp +++ b/code/Obj/ObjExporter.cpp @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/Obj/ObjExporter.h b/code/Obj/ObjExporter.h index 0d2b48d6b..3a46da780 100644 --- a/code/Obj/ObjExporter.h +++ b/code/Obj/ObjExporter.h @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/Obj/ObjFileData.h b/code/Obj/ObjFileData.h index a2d9f2cc7..985a49a42 100644 --- a/code/Obj/ObjFileData.h +++ b/code/Obj/ObjFileData.h @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/Obj/ObjFileImporter.cpp b/code/Obj/ObjFileImporter.cpp index 26cc6d1f9..7e2df0fc5 100644 --- a/code/Obj/ObjFileImporter.cpp +++ b/code/Obj/ObjFileImporter.cpp @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team diff --git a/code/Obj/ObjFileImporter.h b/code/Obj/ObjFileImporter.h index 0df2ef731..87b724837 100644 --- a/code/Obj/ObjFileImporter.h +++ b/code/Obj/ObjFileImporter.h @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/Obj/ObjFileMtlImporter.cpp b/code/Obj/ObjFileMtlImporter.cpp index dd9cc3ce2..cdd60f03c 100644 --- a/code/Obj/ObjFileMtlImporter.cpp +++ b/code/Obj/ObjFileMtlImporter.cpp @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team diff --git a/code/Obj/ObjFileMtlImporter.h b/code/Obj/ObjFileMtlImporter.h index 731952359..2a7fcba7b 100644 --- a/code/Obj/ObjFileMtlImporter.h +++ b/code/Obj/ObjFileMtlImporter.h @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/Obj/ObjFileParser.cpp b/code/Obj/ObjFileParser.cpp index 699aafe6a..7e3b11b23 100644 --- a/code/Obj/ObjFileParser.cpp +++ b/code/Obj/ObjFileParser.cpp @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team diff --git a/code/Obj/ObjFileParser.h b/code/Obj/ObjFileParser.h index 7d1b806ce..124527413 100644 --- a/code/Obj/ObjFileParser.h +++ b/code/Obj/ObjFileParser.h @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/Obj/ObjTools.h b/code/Obj/ObjTools.h index 3f4c41033..331277333 100644 --- a/code/Obj/ObjTools.h +++ b/code/Obj/ObjTools.h @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/Ogre/OgreBinarySerializer.cpp b/code/Ogre/OgreBinarySerializer.cpp index 589e69c7e..c7b7e0b5e 100644 --- a/code/Ogre/OgreBinarySerializer.cpp +++ b/code/Ogre/OgreBinarySerializer.cpp @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/Ogre/OgreBinarySerializer.h b/code/Ogre/OgreBinarySerializer.h index 8bab00ce9..0b88641aa 100644 --- a/code/Ogre/OgreBinarySerializer.h +++ b/code/Ogre/OgreBinarySerializer.h @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/Ogre/OgreImporter.cpp b/code/Ogre/OgreImporter.cpp index c2c328a47..6ef9aa462 100644 --- a/code/Ogre/OgreImporter.cpp +++ b/code/Ogre/OgreImporter.cpp @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/Ogre/OgreImporter.h b/code/Ogre/OgreImporter.h index 321d58763..ad614b4f4 100644 --- a/code/Ogre/OgreImporter.h +++ b/code/Ogre/OgreImporter.h @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/Ogre/OgreMaterial.cpp b/code/Ogre/OgreMaterial.cpp index 47cb17eb0..6f2e62958 100644 --- a/code/Ogre/OgreMaterial.cpp +++ b/code/Ogre/OgreMaterial.cpp @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/Ogre/OgreParsingUtils.h b/code/Ogre/OgreParsingUtils.h index 8786521e4..3fbfd5c31 100644 --- a/code/Ogre/OgreParsingUtils.h +++ b/code/Ogre/OgreParsingUtils.h @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/Ogre/OgreStructs.cpp b/code/Ogre/OgreStructs.cpp index 7962202c1..69cfae1cd 100644 --- a/code/Ogre/OgreStructs.cpp +++ b/code/Ogre/OgreStructs.cpp @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/Ogre/OgreStructs.h b/code/Ogre/OgreStructs.h index 6ea211e10..2a1121dab 100644 --- a/code/Ogre/OgreStructs.h +++ b/code/Ogre/OgreStructs.h @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/Ogre/OgreXmlSerializer.cpp b/code/Ogre/OgreXmlSerializer.cpp index 19fd3ad61..a93f1b207 100644 --- a/code/Ogre/OgreXmlSerializer.cpp +++ b/code/Ogre/OgreXmlSerializer.cpp @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/Ogre/OgreXmlSerializer.h b/code/Ogre/OgreXmlSerializer.h index 7e5e83fec..e81599f9c 100644 --- a/code/Ogre/OgreXmlSerializer.h +++ b/code/Ogre/OgreXmlSerializer.h @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/OpenGEX/OpenGEXExporter.cpp b/code/OpenGEX/OpenGEXExporter.cpp index 635174185..164a191a2 100644 --- a/code/OpenGEX/OpenGEXExporter.cpp +++ b/code/OpenGEX/OpenGEXExporter.cpp @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/OpenGEX/OpenGEXExporter.h b/code/OpenGEX/OpenGEXExporter.h index b9b54c208..4e4798f2c 100644 --- a/code/OpenGEX/OpenGEXExporter.h +++ b/code/OpenGEX/OpenGEXExporter.h @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/OpenGEX/OpenGEXImporter.cpp b/code/OpenGEX/OpenGEXImporter.cpp index 07d3efd5e..4ee746716 100644 --- a/code/OpenGEX/OpenGEXImporter.cpp +++ b/code/OpenGEX/OpenGEXImporter.cpp @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/OpenGEX/OpenGEXImporter.h b/code/OpenGEX/OpenGEXImporter.h index 22b5cabef..98f7a3e89 100644 --- a/code/OpenGEX/OpenGEXImporter.h +++ b/code/OpenGEX/OpenGEXImporter.h @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/OpenGEX/OpenGEXStructs.h b/code/OpenGEX/OpenGEXStructs.h index 2c83e8660..7b0b65c1d 100644 --- a/code/OpenGEX/OpenGEXStructs.h +++ b/code/OpenGEX/OpenGEXStructs.h @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/Ply/PlyExporter.cpp b/code/Ply/PlyExporter.cpp index a7498983b..28ff0c602 100644 --- a/code/Ply/PlyExporter.cpp +++ b/code/Ply/PlyExporter.cpp @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/Ply/PlyExporter.h b/code/Ply/PlyExporter.h index b82498cbd..dc53497f6 100644 --- a/code/Ply/PlyExporter.h +++ b/code/Ply/PlyExporter.h @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/Ply/PlyLoader.cpp b/code/Ply/PlyLoader.cpp index ca1ec22f8..cd52b74f2 100644 --- a/code/Ply/PlyLoader.cpp +++ b/code/Ply/PlyLoader.cpp @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/Ply/PlyLoader.h b/code/Ply/PlyLoader.h index 201c463b2..41620e6b0 100644 --- a/code/Ply/PlyLoader.h +++ b/code/Ply/PlyLoader.h @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/Ply/PlyParser.cpp b/code/Ply/PlyParser.cpp index 2a6f00ad6..d47ca5b6f 100644 --- a/code/Ply/PlyParser.cpp +++ b/code/Ply/PlyParser.cpp @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/Ply/PlyParser.h b/code/Ply/PlyParser.h index a11b411d1..e05490649 100644 --- a/code/Ply/PlyParser.h +++ b/code/Ply/PlyParser.h @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/PostProcessing/ArmaturePopulate.cpp b/code/PostProcessing/ArmaturePopulate.cpp index 75daeb6b5..c339bebe0 100644 --- a/code/PostProcessing/ArmaturePopulate.cpp +++ b/code/PostProcessing/ArmaturePopulate.cpp @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/PostProcessing/ArmaturePopulate.h b/code/PostProcessing/ArmaturePopulate.h index aa1ad7c80..8985e1d1d 100644 --- a/code/PostProcessing/ArmaturePopulate.h +++ b/code/PostProcessing/ArmaturePopulate.h @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/PostProcessing/CalcTangentsProcess.cpp b/code/PostProcessing/CalcTangentsProcess.cpp index a3f7dd255..4af335d2f 100644 --- a/code/PostProcessing/CalcTangentsProcess.cpp +++ b/code/PostProcessing/CalcTangentsProcess.cpp @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team diff --git a/code/PostProcessing/CalcTangentsProcess.h b/code/PostProcessing/CalcTangentsProcess.h index 3568a624f..bdd5ca7fa 100644 --- a/code/PostProcessing/CalcTangentsProcess.h +++ b/code/PostProcessing/CalcTangentsProcess.h @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/PostProcessing/ComputeUVMappingProcess.cpp b/code/PostProcessing/ComputeUVMappingProcess.cpp index df4d44337..1ebf798bd 100644 --- a/code/PostProcessing/ComputeUVMappingProcess.cpp +++ b/code/PostProcessing/ComputeUVMappingProcess.cpp @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/PostProcessing/ComputeUVMappingProcess.h b/code/PostProcessing/ComputeUVMappingProcess.h index a6d36e06e..b4ad0f501 100644 --- a/code/PostProcessing/ComputeUVMappingProcess.h +++ b/code/PostProcessing/ComputeUVMappingProcess.h @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/PostProcessing/ConvertToLHProcess.cpp b/code/PostProcessing/ConvertToLHProcess.cpp index b7cd4f0bc..6ca73f10e 100644 --- a/code/PostProcessing/ConvertToLHProcess.cpp +++ b/code/PostProcessing/ConvertToLHProcess.cpp @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team diff --git a/code/PostProcessing/ConvertToLHProcess.h b/code/PostProcessing/ConvertToLHProcess.h index 0c4a3a091..de984a105 100644 --- a/code/PostProcessing/ConvertToLHProcess.h +++ b/code/PostProcessing/ConvertToLHProcess.h @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/PostProcessing/DeboneProcess.cpp b/code/PostProcessing/DeboneProcess.cpp index 83b8336bc..9d6313f71 100644 --- a/code/PostProcessing/DeboneProcess.cpp +++ b/code/PostProcessing/DeboneProcess.cpp @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/PostProcessing/DeboneProcess.h b/code/PostProcessing/DeboneProcess.h index 8b64c2acc..31955f2bd 100644 --- a/code/PostProcessing/DeboneProcess.h +++ b/code/PostProcessing/DeboneProcess.h @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/PostProcessing/DropFaceNormalsProcess.cpp b/code/PostProcessing/DropFaceNormalsProcess.cpp index b11615bb8..1d7cf33b0 100644 --- a/code/PostProcessing/DropFaceNormalsProcess.cpp +++ b/code/PostProcessing/DropFaceNormalsProcess.cpp @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team diff --git a/code/PostProcessing/DropFaceNormalsProcess.h b/code/PostProcessing/DropFaceNormalsProcess.h index c710c5a5e..b9e942d55 100644 --- a/code/PostProcessing/DropFaceNormalsProcess.h +++ b/code/PostProcessing/DropFaceNormalsProcess.h @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/PostProcessing/EmbedTexturesProcess.cpp b/code/PostProcessing/EmbedTexturesProcess.cpp index 739382a05..f60ec1d5e 100644 --- a/code/PostProcessing/EmbedTexturesProcess.cpp +++ b/code/PostProcessing/EmbedTexturesProcess.cpp @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/PostProcessing/EmbedTexturesProcess.h b/code/PostProcessing/EmbedTexturesProcess.h index 3c4b2eab4..bbe2656f5 100644 --- a/code/PostProcessing/EmbedTexturesProcess.h +++ b/code/PostProcessing/EmbedTexturesProcess.h @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/PostProcessing/FindDegenerates.cpp b/code/PostProcessing/FindDegenerates.cpp index 50fac46db..dfdfec6cc 100644 --- a/code/PostProcessing/FindDegenerates.cpp +++ b/code/PostProcessing/FindDegenerates.cpp @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team diff --git a/code/PostProcessing/FindDegenerates.h b/code/PostProcessing/FindDegenerates.h index 7a15e77cf..1edaab657 100644 --- a/code/PostProcessing/FindDegenerates.h +++ b/code/PostProcessing/FindDegenerates.h @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/PostProcessing/FindInstancesProcess.cpp b/code/PostProcessing/FindInstancesProcess.cpp index 64907458a..9a4c6f53b 100644 --- a/code/PostProcessing/FindInstancesProcess.cpp +++ b/code/PostProcessing/FindInstancesProcess.cpp @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team diff --git a/code/PostProcessing/FindInstancesProcess.h b/code/PostProcessing/FindInstancesProcess.h index 64b838d7c..dcac4bf83 100644 --- a/code/PostProcessing/FindInstancesProcess.h +++ b/code/PostProcessing/FindInstancesProcess.h @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/PostProcessing/FindInvalidDataProcess.cpp b/code/PostProcessing/FindInvalidDataProcess.cpp index 016884c6e..c557d7f70 100644 --- a/code/PostProcessing/FindInvalidDataProcess.cpp +++ b/code/PostProcessing/FindInvalidDataProcess.cpp @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team diff --git a/code/PostProcessing/FindInvalidDataProcess.h b/code/PostProcessing/FindInvalidDataProcess.h index ce7375f34..50a2fe04c 100644 --- a/code/PostProcessing/FindInvalidDataProcess.h +++ b/code/PostProcessing/FindInvalidDataProcess.h @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/PostProcessing/FixNormalsStep.cpp b/code/PostProcessing/FixNormalsStep.cpp index bbbe6899b..bb2aa06cc 100644 --- a/code/PostProcessing/FixNormalsStep.cpp +++ b/code/PostProcessing/FixNormalsStep.cpp @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team diff --git a/code/PostProcessing/FixNormalsStep.h b/code/PostProcessing/FixNormalsStep.h index f60ce596a..c022d0364 100644 --- a/code/PostProcessing/FixNormalsStep.h +++ b/code/PostProcessing/FixNormalsStep.h @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/PostProcessing/GenBoundingBoxesProcess.cpp b/code/PostProcessing/GenBoundingBoxesProcess.cpp index c013454fc..bfe016cf2 100644 --- a/code/PostProcessing/GenBoundingBoxesProcess.cpp +++ b/code/PostProcessing/GenBoundingBoxesProcess.cpp @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/PostProcessing/GenBoundingBoxesProcess.h b/code/PostProcessing/GenBoundingBoxesProcess.h index 4b43c82a4..d93489a5b 100644 --- a/code/PostProcessing/GenBoundingBoxesProcess.h +++ b/code/PostProcessing/GenBoundingBoxesProcess.h @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/PostProcessing/GenFaceNormalsProcess.cpp b/code/PostProcessing/GenFaceNormalsProcess.cpp index 028334dec..08a1d9aae 100644 --- a/code/PostProcessing/GenFaceNormalsProcess.cpp +++ b/code/PostProcessing/GenFaceNormalsProcess.cpp @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team diff --git a/code/PostProcessing/GenFaceNormalsProcess.h b/code/PostProcessing/GenFaceNormalsProcess.h index c641fd635..6e872af3a 100644 --- a/code/PostProcessing/GenFaceNormalsProcess.h +++ b/code/PostProcessing/GenFaceNormalsProcess.h @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/PostProcessing/GenVertexNormalsProcess.cpp b/code/PostProcessing/GenVertexNormalsProcess.cpp index 3f6c2f86b..1df333410 100644 --- a/code/PostProcessing/GenVertexNormalsProcess.cpp +++ b/code/PostProcessing/GenVertexNormalsProcess.cpp @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team diff --git a/code/PostProcessing/GenVertexNormalsProcess.h b/code/PostProcessing/GenVertexNormalsProcess.h index 2ceee17e8..38104b3bf 100644 --- a/code/PostProcessing/GenVertexNormalsProcess.h +++ b/code/PostProcessing/GenVertexNormalsProcess.h @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/PostProcessing/ImproveCacheLocality.cpp b/code/PostProcessing/ImproveCacheLocality.cpp index d0a016fa4..d72d15d3a 100644 --- a/code/PostProcessing/ImproveCacheLocality.cpp +++ b/code/PostProcessing/ImproveCacheLocality.cpp @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team diff --git a/code/PostProcessing/ImproveCacheLocality.h b/code/PostProcessing/ImproveCacheLocality.h index de25ecd9f..73e11f57b 100644 --- a/code/PostProcessing/ImproveCacheLocality.h +++ b/code/PostProcessing/ImproveCacheLocality.h @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/PostProcessing/JoinVerticesProcess.cpp b/code/PostProcessing/JoinVerticesProcess.cpp index f121fc60d..070c9636f 100644 --- a/code/PostProcessing/JoinVerticesProcess.cpp +++ b/code/PostProcessing/JoinVerticesProcess.cpp @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team diff --git a/code/PostProcessing/JoinVerticesProcess.h b/code/PostProcessing/JoinVerticesProcess.h index e017ae62d..76e7cf061 100644 --- a/code/PostProcessing/JoinVerticesProcess.h +++ b/code/PostProcessing/JoinVerticesProcess.h @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/PostProcessing/LimitBoneWeightsProcess.cpp b/code/PostProcessing/LimitBoneWeightsProcess.cpp index d560f1928..1f1abfabb 100644 --- a/code/PostProcessing/LimitBoneWeightsProcess.cpp +++ b/code/PostProcessing/LimitBoneWeightsProcess.cpp @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/PostProcessing/LimitBoneWeightsProcess.h b/code/PostProcessing/LimitBoneWeightsProcess.h index 73c2a68d5..8bc321a3c 100644 --- a/code/PostProcessing/LimitBoneWeightsProcess.h +++ b/code/PostProcessing/LimitBoneWeightsProcess.h @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/PostProcessing/MakeVerboseFormat.cpp b/code/PostProcessing/MakeVerboseFormat.cpp index 41f50a5ba..88bdb3124 100644 --- a/code/PostProcessing/MakeVerboseFormat.cpp +++ b/code/PostProcessing/MakeVerboseFormat.cpp @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team diff --git a/code/PostProcessing/MakeVerboseFormat.h b/code/PostProcessing/MakeVerboseFormat.h index 8565d5933..699cce30b 100644 --- a/code/PostProcessing/MakeVerboseFormat.h +++ b/code/PostProcessing/MakeVerboseFormat.h @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/PostProcessing/OptimizeGraph.cpp b/code/PostProcessing/OptimizeGraph.cpp index 43bd7a3ee..f3996c275 100644 --- a/code/PostProcessing/OptimizeGraph.cpp +++ b/code/PostProcessing/OptimizeGraph.cpp @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/PostProcessing/OptimizeGraph.h b/code/PostProcessing/OptimizeGraph.h index d2a6de9a2..34f70854f 100644 --- a/code/PostProcessing/OptimizeGraph.h +++ b/code/PostProcessing/OptimizeGraph.h @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/PostProcessing/OptimizeMeshes.cpp b/code/PostProcessing/OptimizeMeshes.cpp index 3f6765f6c..983d8001f 100644 --- a/code/PostProcessing/OptimizeMeshes.cpp +++ b/code/PostProcessing/OptimizeMeshes.cpp @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team diff --git a/code/PostProcessing/OptimizeMeshes.h b/code/PostProcessing/OptimizeMeshes.h index dec4ab52d..50dfe2957 100644 --- a/code/PostProcessing/OptimizeMeshes.h +++ b/code/PostProcessing/OptimizeMeshes.h @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/PostProcessing/PretransformVertices.cpp b/code/PostProcessing/PretransformVertices.cpp index fb6b458d8..293a5c0ea 100644 --- a/code/PostProcessing/PretransformVertices.cpp +++ b/code/PostProcessing/PretransformVertices.cpp @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team diff --git a/code/PostProcessing/PretransformVertices.h b/code/PostProcessing/PretransformVertices.h index 7898f6ae3..4a958def4 100644 --- a/code/PostProcessing/PretransformVertices.h +++ b/code/PostProcessing/PretransformVertices.h @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/PostProcessing/ProcessHelper.cpp b/code/PostProcessing/ProcessHelper.cpp index 59869fdff..41444afd8 100644 --- a/code/PostProcessing/ProcessHelper.cpp +++ b/code/PostProcessing/ProcessHelper.cpp @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/PostProcessing/ProcessHelper.h b/code/PostProcessing/ProcessHelper.h index 0afcc4142..7ff3a9c5f 100644 --- a/code/PostProcessing/ProcessHelper.h +++ b/code/PostProcessing/ProcessHelper.h @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/PostProcessing/RemoveRedundantMaterials.cpp b/code/PostProcessing/RemoveRedundantMaterials.cpp index 49ec8f5c4..0c4280410 100644 --- a/code/PostProcessing/RemoveRedundantMaterials.cpp +++ b/code/PostProcessing/RemoveRedundantMaterials.cpp @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team diff --git a/code/PostProcessing/RemoveRedundantMaterials.h b/code/PostProcessing/RemoveRedundantMaterials.h index 1f32a0abf..4b4f346c8 100644 --- a/code/PostProcessing/RemoveRedundantMaterials.h +++ b/code/PostProcessing/RemoveRedundantMaterials.h @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/PostProcessing/RemoveVCProcess.cpp b/code/PostProcessing/RemoveVCProcess.cpp index 99fd47a3a..5ff5b55fa 100644 --- a/code/PostProcessing/RemoveVCProcess.cpp +++ b/code/PostProcessing/RemoveVCProcess.cpp @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team diff --git a/code/PostProcessing/RemoveVCProcess.h b/code/PostProcessing/RemoveVCProcess.h index 7bb21a833..458b37ee0 100644 --- a/code/PostProcessing/RemoveVCProcess.h +++ b/code/PostProcessing/RemoveVCProcess.h @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/PostProcessing/ScaleProcess.cpp b/code/PostProcessing/ScaleProcess.cpp index ac770c41f..66714928b 100644 --- a/code/PostProcessing/ScaleProcess.cpp +++ b/code/PostProcessing/ScaleProcess.cpp @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/PostProcessing/ScaleProcess.h b/code/PostProcessing/ScaleProcess.h index 468a21673..9cc664c6a 100644 --- a/code/PostProcessing/ScaleProcess.h +++ b/code/PostProcessing/ScaleProcess.h @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/PostProcessing/SortByPTypeProcess.cpp b/code/PostProcessing/SortByPTypeProcess.cpp index be8405a17..c1b08c5a7 100644 --- a/code/PostProcessing/SortByPTypeProcess.cpp +++ b/code/PostProcessing/SortByPTypeProcess.cpp @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team diff --git a/code/PostProcessing/SortByPTypeProcess.h b/code/PostProcessing/SortByPTypeProcess.h index 1d7ccfc15..5135139ed 100644 --- a/code/PostProcessing/SortByPTypeProcess.h +++ b/code/PostProcessing/SortByPTypeProcess.h @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/PostProcessing/SplitLargeMeshes.cpp b/code/PostProcessing/SplitLargeMeshes.cpp index 1797b28d5..70960f4a8 100644 --- a/code/PostProcessing/SplitLargeMeshes.cpp +++ b/code/PostProcessing/SplitLargeMeshes.cpp @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/PostProcessing/SplitLargeMeshes.h b/code/PostProcessing/SplitLargeMeshes.h index 3f90576ea..fa6f77b2d 100644 --- a/code/PostProcessing/SplitLargeMeshes.h +++ b/code/PostProcessing/SplitLargeMeshes.h @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/PostProcessing/TextureTransform.cpp b/code/PostProcessing/TextureTransform.cpp index 8ae2ba721..cebbd8042 100644 --- a/code/PostProcessing/TextureTransform.cpp +++ b/code/PostProcessing/TextureTransform.cpp @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/PostProcessing/TextureTransform.h b/code/PostProcessing/TextureTransform.h index 2a5d623d7..2f6fc3edc 100644 --- a/code/PostProcessing/TextureTransform.h +++ b/code/PostProcessing/TextureTransform.h @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/PostProcessing/TriangulateProcess.cpp b/code/PostProcessing/TriangulateProcess.cpp index 1040836bb..64cc63bbd 100644 --- a/code/PostProcessing/TriangulateProcess.cpp +++ b/code/PostProcessing/TriangulateProcess.cpp @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/PostProcessing/TriangulateProcess.h b/code/PostProcessing/TriangulateProcess.h index 916b5103d..388952eb5 100644 --- a/code/PostProcessing/TriangulateProcess.h +++ b/code/PostProcessing/TriangulateProcess.h @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/PostProcessing/ValidateDataStructure.cpp b/code/PostProcessing/ValidateDataStructure.cpp index 1dc217663..36c33b29c 100644 --- a/code/PostProcessing/ValidateDataStructure.cpp +++ b/code/PostProcessing/ValidateDataStructure.cpp @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team diff --git a/code/PostProcessing/ValidateDataStructure.h b/code/PostProcessing/ValidateDataStructure.h index 7b309c925..4b5503ae0 100644 --- a/code/PostProcessing/ValidateDataStructure.h +++ b/code/PostProcessing/ValidateDataStructure.h @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/Q3BSP/Q3BSPFileData.h b/code/Q3BSP/Q3BSPFileData.h index 4e05bebf1..099253392 100644 --- a/code/Q3BSP/Q3BSPFileData.h +++ b/code/Q3BSP/Q3BSPFileData.h @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/Q3BSP/Q3BSPFileImporter.cpp b/code/Q3BSP/Q3BSPFileImporter.cpp index a492cc92a..15f574214 100644 --- a/code/Q3BSP/Q3BSPFileImporter.cpp +++ b/code/Q3BSP/Q3BSPFileImporter.cpp @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/Q3BSP/Q3BSPFileImporter.h b/code/Q3BSP/Q3BSPFileImporter.h index ee21fa48e..619f30863 100644 --- a/code/Q3BSP/Q3BSPFileImporter.h +++ b/code/Q3BSP/Q3BSPFileImporter.h @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/Q3BSP/Q3BSPFileParser.cpp b/code/Q3BSP/Q3BSPFileParser.cpp index bed2efe53..73f5ec7b8 100644 --- a/code/Q3BSP/Q3BSPFileParser.cpp +++ b/code/Q3BSP/Q3BSPFileParser.cpp @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/Q3BSP/Q3BSPFileParser.h b/code/Q3BSP/Q3BSPFileParser.h index fd73f5e10..eab87c76c 100644 --- a/code/Q3BSP/Q3BSPFileParser.h +++ b/code/Q3BSP/Q3BSPFileParser.h @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/Q3D/Q3DLoader.cpp b/code/Q3D/Q3DLoader.cpp index b8c8de716..f68d2ac32 100644 --- a/code/Q3D/Q3DLoader.cpp +++ b/code/Q3D/Q3DLoader.cpp @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team diff --git a/code/Q3D/Q3DLoader.h b/code/Q3D/Q3DLoader.h index 954d3105c..f1118eec7 100644 --- a/code/Q3D/Q3DLoader.h +++ b/code/Q3D/Q3DLoader.h @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/Raw/RawLoader.cpp b/code/Raw/RawLoader.cpp index d0da247e4..092323cc0 100644 --- a/code/Raw/RawLoader.cpp +++ b/code/Raw/RawLoader.cpp @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team diff --git a/code/Raw/RawLoader.h b/code/Raw/RawLoader.h index 8bfe8ef98..7f5926bd3 100644 --- a/code/Raw/RawLoader.h +++ b/code/Raw/RawLoader.h @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/SIB/SIBImporter.cpp b/code/SIB/SIBImporter.cpp index 20cdc8009..ac5646412 100644 --- a/code/SIB/SIBImporter.cpp +++ b/code/SIB/SIBImporter.cpp @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team diff --git a/code/SIB/SIBImporter.h b/code/SIB/SIBImporter.h index bb88c2255..2918a1197 100644 --- a/code/SIB/SIBImporter.h +++ b/code/SIB/SIBImporter.h @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/SMD/SMDLoader.cpp b/code/SMD/SMDLoader.cpp index aa1f26cc8..b7c98d68f 100644 --- a/code/SMD/SMDLoader.cpp +++ b/code/SMD/SMDLoader.cpp @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/SMD/SMDLoader.h b/code/SMD/SMDLoader.h index 85dac97d1..85dafdebc 100644 --- a/code/SMD/SMDLoader.h +++ b/code/SMD/SMDLoader.h @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/STL/STLExporter.cpp b/code/STL/STLExporter.cpp index 43bc752ae..06723cdba 100644 --- a/code/STL/STLExporter.cpp +++ b/code/STL/STLExporter.cpp @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/STL/STLExporter.h b/code/STL/STLExporter.h index cb5238e60..92fd8a8ab 100644 --- a/code/STL/STLExporter.h +++ b/code/STL/STLExporter.h @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/STL/STLLoader.cpp b/code/STL/STLLoader.cpp index 199a84a44..8155d5def 100644 --- a/code/STL/STLLoader.cpp +++ b/code/STL/STLLoader.cpp @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team diff --git a/code/STL/STLLoader.h b/code/STL/STLLoader.h index ca1011cb8..d2f4d6e9c 100644 --- a/code/STL/STLLoader.h +++ b/code/STL/STLLoader.h @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/Step/STEPFile.h b/code/Step/STEPFile.h index d99b34b3c..040a4fa21 100644 --- a/code/Step/STEPFile.h +++ b/code/Step/STEPFile.h @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/Step/StepExporter.cpp b/code/Step/StepExporter.cpp index 70035d9ea..56aedb96c 100644 --- a/code/Step/StepExporter.cpp +++ b/code/Step/StepExporter.cpp @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/Step/StepExporter.h b/code/Step/StepExporter.h index f96a0d2b5..683533854 100644 --- a/code/Step/StepExporter.h +++ b/code/Step/StepExporter.h @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/Terragen/TerragenLoader.cpp b/code/Terragen/TerragenLoader.cpp index 9b0873c68..d4a268a29 100644 --- a/code/Terragen/TerragenLoader.cpp +++ b/code/Terragen/TerragenLoader.cpp @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team diff --git a/code/Terragen/TerragenLoader.h b/code/Terragen/TerragenLoader.h index a478c0dcd..81823fc74 100644 --- a/code/Terragen/TerragenLoader.h +++ b/code/Terragen/TerragenLoader.h @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/Unreal/UnrealLoader.cpp b/code/Unreal/UnrealLoader.cpp index 00b6b812d..d165d7d24 100644 --- a/code/Unreal/UnrealLoader.cpp +++ b/code/Unreal/UnrealLoader.cpp @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team diff --git a/code/Unreal/UnrealLoader.h b/code/Unreal/UnrealLoader.h index 678aaa76b..c00dfd34e 100644 --- a/code/Unreal/UnrealLoader.h +++ b/code/Unreal/UnrealLoader.h @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/X/XFileExporter.cpp b/code/X/XFileExporter.cpp index ae9fd58fc..5b1c49eab 100644 --- a/code/X/XFileExporter.cpp +++ b/code/X/XFileExporter.cpp @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/X/XFileExporter.h b/code/X/XFileExporter.h index 322440af8..42cadc407 100644 --- a/code/X/XFileExporter.h +++ b/code/X/XFileExporter.h @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/X/XFileHelper.h b/code/X/XFileHelper.h index 0365280f0..461331921 100644 --- a/code/X/XFileHelper.h +++ b/code/X/XFileHelper.h @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/X/XFileImporter.cpp b/code/X/XFileImporter.cpp index 122033b08..2ebaf3eda 100644 --- a/code/X/XFileImporter.cpp +++ b/code/X/XFileImporter.cpp @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/X/XFileImporter.h b/code/X/XFileImporter.h index 7d12b6fdf..31abb6c0f 100644 --- a/code/X/XFileImporter.h +++ b/code/X/XFileImporter.h @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/X/XFileParser.cpp b/code/X/XFileParser.cpp index 8fcf87cf6..8847119c4 100644 --- a/code/X/XFileParser.cpp +++ b/code/X/XFileParser.cpp @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team diff --git a/code/X/XFileParser.h b/code/X/XFileParser.h index 993bae6a1..ea7aca266 100644 --- a/code/X/XFileParser.h +++ b/code/X/XFileParser.h @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/X3D/FIReader.cpp b/code/X3D/FIReader.cpp index 9bb2c69f6..359643440 100644 --- a/code/X3D/FIReader.cpp +++ b/code/X3D/FIReader.cpp @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/X3D/FIReader.hpp b/code/X3D/FIReader.hpp index 2c92239ac..e8b6c2f3a 100644 --- a/code/X3D/FIReader.hpp +++ b/code/X3D/FIReader.hpp @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/X3D/X3DImporter.cpp b/code/X3D/X3DImporter.cpp index 367d84fcf..c9f9a6b6d 100644 --- a/code/X3D/X3DImporter.cpp +++ b/code/X3D/X3DImporter.cpp @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/X3D/X3DImporter.hpp b/code/X3D/X3DImporter.hpp index a4afc1463..737a7f160 100644 --- a/code/X3D/X3DImporter.hpp +++ b/code/X3D/X3DImporter.hpp @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/X3D/X3DImporter_Geometry2D.cpp b/code/X3D/X3DImporter_Geometry2D.cpp index 350fd6c40..5879c3d50 100644 --- a/code/X3D/X3DImporter_Geometry2D.cpp +++ b/code/X3D/X3DImporter_Geometry2D.cpp @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/X3D/X3DImporter_Geometry3D.cpp b/code/X3D/X3DImporter_Geometry3D.cpp index e12cbd3ab..a6bad981a 100644 --- a/code/X3D/X3DImporter_Geometry3D.cpp +++ b/code/X3D/X3DImporter_Geometry3D.cpp @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/X3D/X3DImporter_Group.cpp b/code/X3D/X3DImporter_Group.cpp index de3610caf..d78778928 100644 --- a/code/X3D/X3DImporter_Group.cpp +++ b/code/X3D/X3DImporter_Group.cpp @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/X3D/X3DImporter_Light.cpp b/code/X3D/X3DImporter_Light.cpp index 842fffc04..5a482adcd 100644 --- a/code/X3D/X3DImporter_Light.cpp +++ b/code/X3D/X3DImporter_Light.cpp @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/X3D/X3DImporter_Macro.hpp b/code/X3D/X3DImporter_Macro.hpp index a6aca33fb..2463c7762 100644 --- a/code/X3D/X3DImporter_Macro.hpp +++ b/code/X3D/X3DImporter_Macro.hpp @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/X3D/X3DImporter_Metadata.cpp b/code/X3D/X3DImporter_Metadata.cpp index f888ac2b9..126eddb4c 100644 --- a/code/X3D/X3DImporter_Metadata.cpp +++ b/code/X3D/X3DImporter_Metadata.cpp @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/X3D/X3DImporter_Networking.cpp b/code/X3D/X3DImporter_Networking.cpp index a7a200675..688362ab9 100644 --- a/code/X3D/X3DImporter_Networking.cpp +++ b/code/X3D/X3DImporter_Networking.cpp @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/X3D/X3DImporter_Node.hpp b/code/X3D/X3DImporter_Node.hpp index 85208223d..ebc5200c3 100644 --- a/code/X3D/X3DImporter_Node.hpp +++ b/code/X3D/X3DImporter_Node.hpp @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/X3D/X3DImporter_Postprocess.cpp b/code/X3D/X3DImporter_Postprocess.cpp index 539563fcf..a8bc1a00c 100644 --- a/code/X3D/X3DImporter_Postprocess.cpp +++ b/code/X3D/X3DImporter_Postprocess.cpp @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/X3D/X3DImporter_Rendering.cpp b/code/X3D/X3DImporter_Rendering.cpp index 6e95c9441..a574d5549 100644 --- a/code/X3D/X3DImporter_Rendering.cpp +++ b/code/X3D/X3DImporter_Rendering.cpp @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/X3D/X3DImporter_Shape.cpp b/code/X3D/X3DImporter_Shape.cpp index 126d5905a..189ed145d 100644 --- a/code/X3D/X3DImporter_Shape.cpp +++ b/code/X3D/X3DImporter_Shape.cpp @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/X3D/X3DImporter_Texturing.cpp b/code/X3D/X3DImporter_Texturing.cpp index 2eaf3e6bc..0f8c75c41 100644 --- a/code/X3D/X3DImporter_Texturing.cpp +++ b/code/X3D/X3DImporter_Texturing.cpp @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/X3D/X3DVocabulary.cpp b/code/X3D/X3DVocabulary.cpp index c6ee113b3..b985a0d14 100644 --- a/code/X3D/X3DVocabulary.cpp +++ b/code/X3D/X3DVocabulary.cpp @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/XGL/XGLLoader.cpp b/code/XGL/XGLLoader.cpp index 32cfd72ca..24ed5d57c 100644 --- a/code/XGL/XGLLoader.cpp +++ b/code/XGL/XGLLoader.cpp @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team diff --git a/code/XGL/XGLLoader.h b/code/XGL/XGLLoader.h index bba2a643c..f227c5f0f 100644 --- a/code/XGL/XGLLoader.h +++ b/code/XGL/XGLLoader.h @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/glTF/glTFAsset.h b/code/glTF/glTFAsset.h index 38b0951da..d0b72703e 100644 --- a/code/glTF/glTFAsset.h +++ b/code/glTF/glTFAsset.h @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/glTF/glTFAsset.inl b/code/glTF/glTFAsset.inl index f93f195bb..00456edbf 100644 --- a/code/glTF/glTFAsset.inl +++ b/code/glTF/glTFAsset.inl @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/glTF/glTFAssetWriter.h b/code/glTF/glTFAssetWriter.h index 03aee7d4c..f166ee532 100644 --- a/code/glTF/glTFAssetWriter.h +++ b/code/glTF/glTFAssetWriter.h @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/glTF/glTFAssetWriter.inl b/code/glTF/glTFAssetWriter.inl index ed1f4c6bc..784264488 100644 --- a/code/glTF/glTFAssetWriter.inl +++ b/code/glTF/glTFAssetWriter.inl @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/glTF/glTFCommon.cpp b/code/glTF/glTFCommon.cpp index cd03224e4..9fac8de2d 100644 --- a/code/glTF/glTFCommon.cpp +++ b/code/glTF/glTFCommon.cpp @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/glTF/glTFCommon.h b/code/glTF/glTFCommon.h index b2e28d580..d942b4ba8 100644 --- a/code/glTF/glTFCommon.h +++ b/code/glTF/glTFCommon.h @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/glTF/glTFExporter.cpp b/code/glTF/glTFExporter.cpp index 4772c7dc6..c9b074b6c 100644 --- a/code/glTF/glTFExporter.cpp +++ b/code/glTF/glTFExporter.cpp @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/glTF/glTFExporter.h b/code/glTF/glTFExporter.h index ffa2ce42e..415992314 100644 --- a/code/glTF/glTFExporter.h +++ b/code/glTF/glTFExporter.h @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/glTF/glTFImporter.cpp b/code/glTF/glTFImporter.cpp index 9e743bf88..45c0e42a9 100644 --- a/code/glTF/glTFImporter.cpp +++ b/code/glTF/glTFImporter.cpp @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/glTF/glTFImporter.h b/code/glTF/glTFImporter.h index 84d74009b..a1e746808 100644 --- a/code/glTF/glTFImporter.h +++ b/code/glTF/glTFImporter.h @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/glTF2/glTF2Asset.h b/code/glTF2/glTF2Asset.h index ee8818b56..53774de7a 100644 --- a/code/glTF2/glTF2Asset.h +++ b/code/glTF2/glTF2Asset.h @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/glTF2/glTF2Asset.inl b/code/glTF2/glTF2Asset.inl index 3db37c72b..35ecfa62d 100644 --- a/code/glTF2/glTF2Asset.inl +++ b/code/glTF2/glTF2Asset.inl @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/glTF2/glTF2AssetWriter.h b/code/glTF2/glTF2AssetWriter.h index 928b6e71b..784ab2ea5 100644 --- a/code/glTF2/glTF2AssetWriter.h +++ b/code/glTF2/glTF2AssetWriter.h @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/glTF2/glTF2AssetWriter.inl b/code/glTF2/glTF2AssetWriter.inl index ae69f3908..02c14980d 100644 --- a/code/glTF2/glTF2AssetWriter.inl +++ b/code/glTF2/glTF2AssetWriter.inl @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/glTF2/glTF2Exporter.cpp b/code/glTF2/glTF2Exporter.cpp index ee40694f9..80361d4d4 100644 --- a/code/glTF2/glTF2Exporter.cpp +++ b/code/glTF2/glTF2Exporter.cpp @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/glTF2/glTF2Exporter.h b/code/glTF2/glTF2Exporter.h index b527c4bc9..421a4806e 100644 --- a/code/glTF2/glTF2Exporter.h +++ b/code/glTF2/glTF2Exporter.h @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/glTF2/glTF2Importer.cpp b/code/glTF2/glTF2Importer.cpp index 250c790b1..e5052d4d6 100644 --- a/code/glTF2/glTF2Importer.cpp +++ b/code/glTF2/glTF2Importer.cpp @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/glTF2/glTF2Importer.h b/code/glTF2/glTF2Importer.h index e62c38d21..5a093a662 100644 --- a/code/glTF2/glTF2Importer.h +++ b/code/glTF2/glTF2Importer.h @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/code/res/assimp.rc b/code/res/assimp.rc index daecf9cf5..9ae821b4b 100644 --- a/code/res/assimp.rc +++ b/code/res/assimp.rc @@ -52,7 +52,7 @@ BEGIN VALUE "FileDescription", "Open Asset Import Library" VALUE "FileVersion", VER_FILEVERSION VALUE "InternalName", "assimp " - VALUE "LegalCopyright", "Copyright (C) 2006-2019" + VALUE "LegalCopyright", "Copyright (C) 2006-2020" VALUE "OriginalFilename", VER_ORIGINAL_FILENAME_STR VALUE "ProductName", "Open Asset Import Library" VALUE "ProductVersion", VER_FILEVERSION_STR diff --git a/doc/Preamble.txt b/doc/Preamble.txt index 102b2792d..11759eabd 100644 --- a/doc/Preamble.txt +++ b/doc/Preamble.txt @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2017, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/include/assimp/BaseImporter.h b/include/assimp/BaseImporter.h index ad8a3dafd..7cf835174 100644 --- a/include/assimp/BaseImporter.h +++ b/include/assimp/BaseImporter.h @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/include/assimp/Bitmap.h b/include/assimp/Bitmap.h index 4c3f5a437..d0d94a6eb 100644 --- a/include/assimp/Bitmap.h +++ b/include/assimp/Bitmap.h @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team diff --git a/include/assimp/BlobIOSystem.h b/include/assimp/BlobIOSystem.h index d005e5c11..30d9b1ac3 100644 --- a/include/assimp/BlobIOSystem.h +++ b/include/assimp/BlobIOSystem.h @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team diff --git a/include/assimp/ByteSwapper.h b/include/assimp/ByteSwapper.h index 3f14c471a..7af78b61c 100644 --- a/include/assimp/ByteSwapper.h +++ b/include/assimp/ByteSwapper.h @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/include/assimp/CreateAnimMesh.h b/include/assimp/CreateAnimMesh.h index 1266d1de1..01a118ba3 100644 --- a/include/assimp/CreateAnimMesh.h +++ b/include/assimp/CreateAnimMesh.h @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/include/assimp/DefaultIOStream.h b/include/assimp/DefaultIOStream.h index c6d382c1b..05780def7 100644 --- a/include/assimp/DefaultIOStream.h +++ b/include/assimp/DefaultIOStream.h @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/include/assimp/DefaultIOSystem.h b/include/assimp/DefaultIOSystem.h index 46f6d447c..75dd97e7f 100644 --- a/include/assimp/DefaultIOSystem.h +++ b/include/assimp/DefaultIOSystem.h @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/include/assimp/DefaultLogger.hpp b/include/assimp/DefaultLogger.hpp index 1946e250a..789072a7c 100644 --- a/include/assimp/DefaultLogger.hpp +++ b/include/assimp/DefaultLogger.hpp @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/include/assimp/Defines.h b/include/assimp/Defines.h index be3e2fafd..959e4b1fb 100644 --- a/include/assimp/Defines.h +++ b/include/assimp/Defines.h @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2012, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. Redistribution and use of this software in source and binary forms, diff --git a/include/assimp/Exceptional.h b/include/assimp/Exceptional.h index f0d23d0f3..dcd5e2b2e 100644 --- a/include/assimp/Exceptional.h +++ b/include/assimp/Exceptional.h @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2008, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. Redistribution and use of this software in source and binary forms, diff --git a/include/assimp/Exporter.hpp b/include/assimp/Exporter.hpp index 20e7c6c6f..dc6661c11 100644 --- a/include/assimp/Exporter.hpp +++ b/include/assimp/Exporter.hpp @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/include/assimp/GenericProperty.h b/include/assimp/GenericProperty.h index 7796d595b..30f4988f9 100644 --- a/include/assimp/GenericProperty.h +++ b/include/assimp/GenericProperty.h @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/include/assimp/Hash.h b/include/assimp/Hash.h index 905644078..7c360b474 100644 --- a/include/assimp/Hash.h +++ b/include/assimp/Hash.h @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/include/assimp/IOStream.hpp b/include/assimp/IOStream.hpp index 39932cd94..c3271d007 100644 --- a/include/assimp/IOStream.hpp +++ b/include/assimp/IOStream.hpp @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team diff --git a/include/assimp/IOStreamBuffer.h b/include/assimp/IOStreamBuffer.h index 97c84b23e..6ca9be84a 100644 --- a/include/assimp/IOStreamBuffer.h +++ b/include/assimp/IOStreamBuffer.h @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/include/assimp/IOSystem.hpp b/include/assimp/IOSystem.hpp index f1fb3b0c2..291cd938f 100644 --- a/include/assimp/IOSystem.hpp +++ b/include/assimp/IOSystem.hpp @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team diff --git a/include/assimp/Importer.hpp b/include/assimp/Importer.hpp index bf449a9a2..7ec4f519c 100644 --- a/include/assimp/Importer.hpp +++ b/include/assimp/Importer.hpp @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team diff --git a/include/assimp/LineSplitter.h b/include/assimp/LineSplitter.h index 2fa61cba7..869585d92 100644 --- a/include/assimp/LineSplitter.h +++ b/include/assimp/LineSplitter.h @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/include/assimp/LogAux.h b/include/assimp/LogAux.h index bcead78dd..2265ff19c 100644 --- a/include/assimp/LogAux.h +++ b/include/assimp/LogAux.h @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/include/assimp/LogStream.hpp b/include/assimp/LogStream.hpp index d0281e2d0..243f13ee6 100644 --- a/include/assimp/LogStream.hpp +++ b/include/assimp/LogStream.hpp @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/include/assimp/Logger.hpp b/include/assimp/Logger.hpp index 89cade6c3..a0b798564 100644 --- a/include/assimp/Logger.hpp +++ b/include/assimp/Logger.hpp @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/include/assimp/MathFunctions.h b/include/assimp/MathFunctions.h index b6c5872a7..1880ce0a9 100644 --- a/include/assimp/MathFunctions.h +++ b/include/assimp/MathFunctions.h @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2016, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/include/assimp/MemoryIOWrapper.h b/include/assimp/MemoryIOWrapper.h index 5598d4fc5..2ad80cc85 100644 --- a/include/assimp/MemoryIOWrapper.h +++ b/include/assimp/MemoryIOWrapper.h @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/include/assimp/NullLogger.hpp b/include/assimp/NullLogger.hpp index c45d01bd4..7effca83a 100644 --- a/include/assimp/NullLogger.hpp +++ b/include/assimp/NullLogger.hpp @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/include/assimp/ParsingUtils.h b/include/assimp/ParsingUtils.h index 302560124..736952e26 100644 --- a/include/assimp/ParsingUtils.h +++ b/include/assimp/ParsingUtils.h @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/include/assimp/Profiler.h b/include/assimp/Profiler.h index 624029be9..ee6c5545f 100644 --- a/include/assimp/Profiler.h +++ b/include/assimp/Profiler.h @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/include/assimp/ProgressHandler.hpp b/include/assimp/ProgressHandler.hpp index 8991a6461..45d3f57cd 100644 --- a/include/assimp/ProgressHandler.hpp +++ b/include/assimp/ProgressHandler.hpp @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/include/assimp/RemoveComments.h b/include/assimp/RemoveComments.h index f12942053..5bb958257 100644 --- a/include/assimp/RemoveComments.h +++ b/include/assimp/RemoveComments.h @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/include/assimp/SGSpatialSort.h b/include/assimp/SGSpatialSort.h index fdb5ce817..9afe38f85 100644 --- a/include/assimp/SGSpatialSort.h +++ b/include/assimp/SGSpatialSort.h @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/include/assimp/SceneCombiner.h b/include/assimp/SceneCombiner.h index 0683c1e05..40aad0890 100644 --- a/include/assimp/SceneCombiner.h +++ b/include/assimp/SceneCombiner.h @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/include/assimp/SkeletonMeshBuilder.h b/include/assimp/SkeletonMeshBuilder.h index ad979a33f..8e1a9830f 100644 --- a/include/assimp/SkeletonMeshBuilder.h +++ b/include/assimp/SkeletonMeshBuilder.h @@ -4,7 +4,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/include/assimp/SmoothingGroups.h b/include/assimp/SmoothingGroups.h index c1a93947f..5d37f1bb5 100644 --- a/include/assimp/SmoothingGroups.h +++ b/include/assimp/SmoothingGroups.h @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/include/assimp/SmoothingGroups.inl b/include/assimp/SmoothingGroups.inl index 37ea083db..417ca4312 100644 --- a/include/assimp/SmoothingGroups.inl +++ b/include/assimp/SmoothingGroups.inl @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2012, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/include/assimp/SpatialSort.h b/include/assimp/SpatialSort.h index 9f9354315..c2d8bbbf8 100644 --- a/include/assimp/SpatialSort.h +++ b/include/assimp/SpatialSort.h @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/include/assimp/StandardShapes.h b/include/assimp/StandardShapes.h index c594cb63f..79bdae859 100644 --- a/include/assimp/StandardShapes.h +++ b/include/assimp/StandardShapes.h @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/include/assimp/StreamReader.h b/include/assimp/StreamReader.h index cb24f1595..4cad96f6e 100644 --- a/include/assimp/StreamReader.h +++ b/include/assimp/StreamReader.h @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team diff --git a/include/assimp/StreamWriter.h b/include/assimp/StreamWriter.h index 489e8adfe..de889b9f0 100644 --- a/include/assimp/StreamWriter.h +++ b/include/assimp/StreamWriter.h @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team diff --git a/include/assimp/StringComparison.h b/include/assimp/StringComparison.h index d3ca3e971..d7b8972e3 100644 --- a/include/assimp/StringComparison.h +++ b/include/assimp/StringComparison.h @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/include/assimp/StringUtils.h b/include/assimp/StringUtils.h index af481f819..31410a9fb 100644 --- a/include/assimp/StringUtils.h +++ b/include/assimp/StringUtils.h @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/include/assimp/Subdivision.h b/include/assimp/Subdivision.h index e9450267e..9a8bb9fd3 100644 --- a/include/assimp/Subdivision.h +++ b/include/assimp/Subdivision.h @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/include/assimp/TinyFormatter.h b/include/assimp/TinyFormatter.h index 6227e42c5..3c6ca66c6 100644 --- a/include/assimp/TinyFormatter.h +++ b/include/assimp/TinyFormatter.h @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/include/assimp/Vertex.h b/include/assimp/Vertex.h index 5e63db5fe..5d4242cbd 100644 --- a/include/assimp/Vertex.h +++ b/include/assimp/Vertex.h @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/include/assimp/XMLTools.h b/include/assimp/XMLTools.h index 95f12cdeb..845851308 100644 --- a/include/assimp/XMLTools.h +++ b/include/assimp/XMLTools.h @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/include/assimp/ZipArchiveIOSystem.h b/include/assimp/ZipArchiveIOSystem.h index 516ea84de..b0541fa59 100644 --- a/include/assimp/ZipArchiveIOSystem.h +++ b/include/assimp/ZipArchiveIOSystem.h @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team diff --git a/include/assimp/aabb.h b/include/assimp/aabb.h index 83bb62256..27a142c8e 100644 --- a/include/assimp/aabb.h +++ b/include/assimp/aabb.h @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/include/assimp/ai_assert.h b/include/assimp/ai_assert.h index 2b32b01d3..f430e4ad3 100644 --- a/include/assimp/ai_assert.h +++ b/include/assimp/ai_assert.h @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team diff --git a/include/assimp/anim.h b/include/assimp/anim.h index e208b11ad..a7af1034f 100644 --- a/include/assimp/anim.h +++ b/include/assimp/anim.h @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team diff --git a/include/assimp/camera.h b/include/assimp/camera.h index adb749ff5..2001a9354 100644 --- a/include/assimp/camera.h +++ b/include/assimp/camera.h @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/include/assimp/cexport.h b/include/assimp/cexport.h index cbc0253d5..959d4377e 100644 --- a/include/assimp/cexport.h +++ b/include/assimp/cexport.h @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/include/assimp/cfileio.h b/include/assimp/cfileio.h index be90999d8..627c700ad 100644 --- a/include/assimp/cfileio.h +++ b/include/assimp/cfileio.h @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team diff --git a/include/assimp/cimport.h b/include/assimp/cimport.h index 66b1c9a17..dab60584b 100644 --- a/include/assimp/cimport.h +++ b/include/assimp/cimport.h @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team diff --git a/include/assimp/color4.h b/include/assimp/color4.h index fa86128f4..505a3510c 100644 --- a/include/assimp/color4.h +++ b/include/assimp/color4.h @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team diff --git a/include/assimp/color4.inl b/include/assimp/color4.inl index d4a2a9810..964b8fbf9 100644 --- a/include/assimp/color4.inl +++ b/include/assimp/color4.inl @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team diff --git a/include/assimp/commonMetaData.h b/include/assimp/commonMetaData.h index cca21ed2a..f3f7d170a 100644 --- a/include/assimp/commonMetaData.h +++ b/include/assimp/commonMetaData.h @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team diff --git a/include/assimp/config.h.in b/include/assimp/config.h.in index 76682b0eb..e2f2a3888 100644 --- a/include/assimp/config.h.in +++ b/include/assimp/config.h.in @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2018, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/include/assimp/defs.h b/include/assimp/defs.h index d8fc98179..8e300e968 100644 --- a/include/assimp/defs.h +++ b/include/assimp/defs.h @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/include/assimp/importerdesc.h b/include/assimp/importerdesc.h index 0a6919c1a..e0f22a9d6 100644 --- a/include/assimp/importerdesc.h +++ b/include/assimp/importerdesc.h @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team diff --git a/include/assimp/irrXMLWrapper.h b/include/assimp/irrXMLWrapper.h index 77cfd5e47..65a7be298 100644 --- a/include/assimp/irrXMLWrapper.h +++ b/include/assimp/irrXMLWrapper.h @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/include/assimp/light.h b/include/assimp/light.h index bdb2368c4..84f2f7d0a 100644 --- a/include/assimp/light.h +++ b/include/assimp/light.h @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team diff --git a/include/assimp/material.h b/include/assimp/material.h index 19a7c6970..6c864e3d4 100644 --- a/include/assimp/material.h +++ b/include/assimp/material.h @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team diff --git a/include/assimp/material.inl b/include/assimp/material.inl index 8ae6b88d3..759134441 100644 --- a/include/assimp/material.inl +++ b/include/assimp/material.inl @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team diff --git a/include/assimp/matrix3x3.h b/include/assimp/matrix3x3.h index 2c26cf92b..f9880ab9e 100644 --- a/include/assimp/matrix3x3.h +++ b/include/assimp/matrix3x3.h @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team diff --git a/include/assimp/matrix3x3.inl b/include/assimp/matrix3x3.inl index 1ce8c9691..b11e036b1 100644 --- a/include/assimp/matrix3x3.inl +++ b/include/assimp/matrix3x3.inl @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team diff --git a/include/assimp/matrix4x4.h b/include/assimp/matrix4x4.h index 8fc216f66..456d285e6 100644 --- a/include/assimp/matrix4x4.h +++ b/include/assimp/matrix4x4.h @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team diff --git a/include/assimp/matrix4x4.inl b/include/assimp/matrix4x4.inl index 84079974f..e8a3c5305 100644 --- a/include/assimp/matrix4x4.inl +++ b/include/assimp/matrix4x4.inl @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/include/assimp/mesh.h b/include/assimp/mesh.h index fbf2a857a..8fd8c7f87 100644 --- a/include/assimp/mesh.h +++ b/include/assimp/mesh.h @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/include/assimp/metadata.h b/include/assimp/metadata.h index f3a5321d3..bddd04b1e 100644 --- a/include/assimp/metadata.h +++ b/include/assimp/metadata.h @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team diff --git a/include/assimp/pbrmaterial.h b/include/assimp/pbrmaterial.h index 892a6347f..cac4ab56b 100644 --- a/include/assimp/pbrmaterial.h +++ b/include/assimp/pbrmaterial.h @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/include/assimp/port/AndroidJNI/AndroidJNIIOSystem.h b/include/assimp/port/AndroidJNI/AndroidJNIIOSystem.h index 41d800487..01505d571 100644 --- a/include/assimp/port/AndroidJNI/AndroidJNIIOSystem.h +++ b/include/assimp/port/AndroidJNI/AndroidJNIIOSystem.h @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2016, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. Redistribution and use of this software in source and binary forms, diff --git a/include/assimp/postprocess.h b/include/assimp/postprocess.h index 4b6732e80..9997f0d60 100644 --- a/include/assimp/postprocess.h +++ b/include/assimp/postprocess.h @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/include/assimp/qnan.h b/include/assimp/qnan.h index 06780da5b..5ca80601d 100644 --- a/include/assimp/qnan.h +++ b/include/assimp/qnan.h @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team diff --git a/include/assimp/quaternion.h b/include/assimp/quaternion.h index ae45959b4..fd9abfd21 100644 --- a/include/assimp/quaternion.h +++ b/include/assimp/quaternion.h @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/include/assimp/quaternion.inl b/include/assimp/quaternion.inl index 3ce514d1b..e8bdb9aeb 100644 --- a/include/assimp/quaternion.inl +++ b/include/assimp/quaternion.inl @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team diff --git a/include/assimp/scene.h b/include/assimp/scene.h index b76709eb1..93d04eee6 100644 --- a/include/assimp/scene.h +++ b/include/assimp/scene.h @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team diff --git a/include/assimp/texture.h b/include/assimp/texture.h index 0867659f4..274185a30 100644 --- a/include/assimp/texture.h +++ b/include/assimp/texture.h @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/include/assimp/types.h b/include/assimp/types.h index e32cae331..1f47dad8f 100644 --- a/include/assimp/types.h +++ b/include/assimp/types.h @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team diff --git a/include/assimp/vector2.h b/include/assimp/vector2.h index c8b1ebbbc..a23e32e63 100644 --- a/include/assimp/vector2.h +++ b/include/assimp/vector2.h @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team diff --git a/include/assimp/vector2.inl b/include/assimp/vector2.inl index 4bbf432ff..19dbce291 100644 --- a/include/assimp/vector2.inl +++ b/include/assimp/vector2.inl @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team diff --git a/include/assimp/vector3.h b/include/assimp/vector3.h index fffeb12ad..8d3c82cf8 100644 --- a/include/assimp/vector3.h +++ b/include/assimp/vector3.h @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team diff --git a/include/assimp/vector3.inl b/include/assimp/vector3.inl index 6682d3b32..2765115a2 100644 --- a/include/assimp/vector3.inl +++ b/include/assimp/vector3.inl @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team diff --git a/include/assimp/version.h b/include/assimp/version.h index 90645a38f..6709eaf39 100644 --- a/include/assimp/version.h +++ b/include/assimp/version.h @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team diff --git a/packaging/windows-innosetup/LICENSE.rtf b/packaging/windows-innosetup/LICENSE.rtf index 48b00deab9270e1a426e86f6e5d6896301d1dcc3..d2e700fcd50d5f91dfeddc49d462def222fc9f05 100644 GIT binary patch delta 12 Tcmca2ctvo+Dn_G?t2H?QBHaYV delta 12 Tcmca2ctvo+Dn`SNt2H?QBG?4P diff --git a/port/AndroidJNI/AndroidJNIIOSystem.cpp b/port/AndroidJNI/AndroidJNIIOSystem.cpp index e276ea59f..db499a20b 100644 --- a/port/AndroidJNI/AndroidJNIIOSystem.cpp +++ b/port/AndroidJNI/AndroidJNIIOSystem.cpp @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2016, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/port/PyAssimp/gen/materialgen.py b/port/PyAssimp/gen/materialgen.py index d60bf4bc2..ef32d8e1c 100644 --- a/port/PyAssimp/gen/materialgen.py +++ b/port/PyAssimp/gen/materialgen.py @@ -5,7 +5,7 @@ # Open Asset Import Library (ASSIMP) # --------------------------------------------------------------------------- # -# Copyright (c) 2006-2010, ASSIMP Development Team +# Copyright (c) 2006-2020, ASSIMP Development Team # # All rights reserved. # diff --git a/port/PyAssimp/gen/structsgen.py b/port/PyAssimp/gen/structsgen.py index f2ee95eb5..f34ec1975 100644 --- a/port/PyAssimp/gen/structsgen.py +++ b/port/PyAssimp/gen/structsgen.py @@ -5,7 +5,7 @@ # Open Asset Import Library (ASSIMP) # --------------------------------------------------------------------------- # -# Copyright (c) 2006-2010, ASSIMP Development Team +# Copyright (c) 2006-2020, ASSIMP Development Team # # All rights reserved. # diff --git a/port/dAssimp/assimp/animation.d b/port/dAssimp/assimp/animation.d index fb716ee73..9a36940d6 100644 --- a/port/dAssimp/assimp/animation.d +++ b/port/dAssimp/assimp/animation.d @@ -3,7 +3,7 @@ Open Asset Import Library (ASSIMP) --------------------------------------------------------------------------- -Copyright (c) 2006-2009, ASSIMP Development Team +Copyright (c) 2006-2020, ASSIMP Development Team All rights reserved. diff --git a/port/dAssimp/assimp/api.d b/port/dAssimp/assimp/api.d index 9399b7f9d..bc7a15796 100644 --- a/port/dAssimp/assimp/api.d +++ b/port/dAssimp/assimp/api.d @@ -3,7 +3,7 @@ Open Asset Import Library (ASSIMP) --------------------------------------------------------------------------- -Copyright (c) 2006-2009, ASSIMP Development Team +Copyright (c) 2006-2020, ASSIMP Development Team All rights reserved. diff --git a/port/dAssimp/assimp/assimp.d b/port/dAssimp/assimp/assimp.d index f0474bebf..a147ee2eb 100644 --- a/port/dAssimp/assimp/assimp.d +++ b/port/dAssimp/assimp/assimp.d @@ -3,7 +3,7 @@ Open Asset Import Library (ASSIMP) --------------------------------------------------------------------------- -Copyright (c) 2006-2009, ASSIMP Development Team +Copyright (c) 2006-2020, ASSIMP Development Team All rights reserved. diff --git a/port/dAssimp/assimp/camera.d b/port/dAssimp/assimp/camera.d index 8a2c3c0b8..5567be2cc 100644 --- a/port/dAssimp/assimp/camera.d +++ b/port/dAssimp/assimp/camera.d @@ -3,7 +3,7 @@ Open Asset Import Library (ASSIMP) --------------------------------------------------------------------------- -Copyright (c) 2006-2009, ASSIMP Development Team +Copyright (c) 2006-2020, ASSIMP Development Team All rights reserved. diff --git a/port/dAssimp/assimp/config.d b/port/dAssimp/assimp/config.d index 9f8d222c7..761156b41 100644 --- a/port/dAssimp/assimp/config.d +++ b/port/dAssimp/assimp/config.d @@ -3,7 +3,7 @@ Open Asset Import Library (ASSIMP) --------------------------------------------------------------------------- -Copyright (c) 2006-2009, ASSIMP Development Team +Copyright (c) 2006-2020, ASSIMP Development Team All rights reserved. diff --git a/port/dAssimp/assimp/fileIO.d b/port/dAssimp/assimp/fileIO.d index d893016d8..108d883f0 100644 --- a/port/dAssimp/assimp/fileIO.d +++ b/port/dAssimp/assimp/fileIO.d @@ -3,7 +3,7 @@ Open Asset Import Library (ASSIMP) --------------------------------------------------------------------------- -Copyright (c) 2006-2009, ASSIMP Development Team +Copyright (c) 2006-2020, ASSIMP Development Team All rights reserved. diff --git a/port/dAssimp/assimp/light.d b/port/dAssimp/assimp/light.d index 8d782396d..0842d67c9 100644 --- a/port/dAssimp/assimp/light.d +++ b/port/dAssimp/assimp/light.d @@ -3,7 +3,7 @@ Open Asset Import Library (ASSIMP) --------------------------------------------------------------------------- -Copyright (c) 2006-2009, ASSIMP Development Team +Copyright (c) 2006-2020, ASSIMP Development Team All rights reserved. diff --git a/port/dAssimp/assimp/loader.d b/port/dAssimp/assimp/loader.d index 76fd44adf..279f0a7b2 100644 --- a/port/dAssimp/assimp/loader.d +++ b/port/dAssimp/assimp/loader.d @@ -3,7 +3,7 @@ Open Asset Import Library (ASSIMP) --------------------------------------------------------------------------- -Copyright (c) 2006-2009, ASSIMP Development Team +Copyright (c) 2006-2020, ASSIMP Development Team All rights reserved. diff --git a/port/dAssimp/assimp/material.d b/port/dAssimp/assimp/material.d index e0c480b24..f0eae8610 100644 --- a/port/dAssimp/assimp/material.d +++ b/port/dAssimp/assimp/material.d @@ -3,7 +3,7 @@ Open Asset Import Library (ASSIMP) --------------------------------------------------------------------------- -Copyright (c) 2006-2009, ASSIMP Development Team +Copyright (c) 2006-2020, ASSIMP Development Team All rights reserved. diff --git a/port/dAssimp/assimp/math.d b/port/dAssimp/assimp/math.d index f3cff743f..057bbd5f2 100644 --- a/port/dAssimp/assimp/math.d +++ b/port/dAssimp/assimp/math.d @@ -3,7 +3,7 @@ Open Asset Import Library (ASSIMP) --------------------------------------------------------------------------- -Copyright (c) 2006-2009, ASSIMP Development Team +Copyright (c) 2006-2020, ASSIMP Development Team All rights reserved. diff --git a/port/dAssimp/assimp/mesh.d b/port/dAssimp/assimp/mesh.d index da6193631..48162b705 100644 --- a/port/dAssimp/assimp/mesh.d +++ b/port/dAssimp/assimp/mesh.d @@ -3,7 +3,7 @@ Open Asset Import Library (ASSIMP) --------------------------------------------------------------------------- -Copyright (c) 2006-2009, ASSIMP Development Team +Copyright (c) 2006-2020, ASSIMP Development Team All rights reserved. diff --git a/port/dAssimp/assimp/postprocess.d b/port/dAssimp/assimp/postprocess.d index a720a8c63..343bb36dd 100644 --- a/port/dAssimp/assimp/postprocess.d +++ b/port/dAssimp/assimp/postprocess.d @@ -3,7 +3,7 @@ Open Asset Import Library (ASSIMP) --------------------------------------------------------------------------- -Copyright (c) 2006-2009, ASSIMP Development Team +Copyright (c) 2006-2020, ASSIMP Development Team All rights reserved. diff --git a/port/dAssimp/assimp/scene.d b/port/dAssimp/assimp/scene.d index ab545b192..deee75ae4 100644 --- a/port/dAssimp/assimp/scene.d +++ b/port/dAssimp/assimp/scene.d @@ -3,7 +3,7 @@ Open Asset Import Library (ASSIMP) --------------------------------------------------------------------------- -Copyright (c) 2006-2009, ASSIMP Development Team +Copyright (c) 2006-2020, ASSIMP Development Team All rights reserved. diff --git a/port/dAssimp/assimp/texture.d b/port/dAssimp/assimp/texture.d index 0f46ff551..83453b984 100644 --- a/port/dAssimp/assimp/texture.d +++ b/port/dAssimp/assimp/texture.d @@ -3,7 +3,7 @@ Open Asset Import Library (ASSIMP) --------------------------------------------------------------------------- -Copyright (c) 2006-2009, ASSIMP Development Team +Copyright (c) 2006-2020, ASSIMP Development Team All rights reserved. diff --git a/port/dAssimp/assimp/types.d b/port/dAssimp/assimp/types.d index d3c0b53de..5aa4d5410 100644 --- a/port/dAssimp/assimp/types.d +++ b/port/dAssimp/assimp/types.d @@ -3,7 +3,7 @@ Open Asset Import Library (ASSIMP) --------------------------------------------------------------------------- -Copyright (c) 2006-2009, ASSIMP Development Team +Copyright (c) 2006-2020, ASSIMP Development Team All rights reserved. diff --git a/port/dAssimp/assimp/versionInfo.d b/port/dAssimp/assimp/versionInfo.d index 498115524..5a7e9b9fd 100644 --- a/port/dAssimp/assimp/versionInfo.d +++ b/port/dAssimp/assimp/versionInfo.d @@ -3,7 +3,7 @@ Open Asset Import Library (ASSIMP) --------------------------------------------------------------------------- -Copyright (c) 2006-2009, ASSIMP Development Team +Copyright (c) 2006-2020, ASSIMP Development Team All rights reserved. diff --git a/port/jassimp/jassimp/src/jassimp/AiAnimBehavior.java b/port/jassimp/jassimp/src/jassimp/AiAnimBehavior.java index 7dd3fb560..ae4f04a69 100644 --- a/port/jassimp/jassimp/src/jassimp/AiAnimBehavior.java +++ b/port/jassimp/jassimp/src/jassimp/AiAnimBehavior.java @@ -3,7 +3,7 @@ Open Asset Import Library - Java Binding (jassimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2012, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/port/jassimp/jassimp/src/jassimp/AiAnimation.java b/port/jassimp/jassimp/src/jassimp/AiAnimation.java index 777d2a9fe..239820aaf 100644 --- a/port/jassimp/jassimp/src/jassimp/AiAnimation.java +++ b/port/jassimp/jassimp/src/jassimp/AiAnimation.java @@ -3,7 +3,7 @@ Open Asset Import Library - Java Binding (jassimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2012, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/port/jassimp/jassimp/src/jassimp/AiBlendMode.java b/port/jassimp/jassimp/src/jassimp/AiBlendMode.java index 941ace11e..78cc5a5ed 100644 --- a/port/jassimp/jassimp/src/jassimp/AiBlendMode.java +++ b/port/jassimp/jassimp/src/jassimp/AiBlendMode.java @@ -3,7 +3,7 @@ Open Asset Import Library - Java Binding (jassimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2012, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/port/jassimp/jassimp/src/jassimp/AiBone.java b/port/jassimp/jassimp/src/jassimp/AiBone.java index 1e6d49beb..eaaf481ff 100644 --- a/port/jassimp/jassimp/src/jassimp/AiBone.java +++ b/port/jassimp/jassimp/src/jassimp/AiBone.java @@ -3,7 +3,7 @@ Open Asset Import Library - Java Binding (jassimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2012, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/port/jassimp/jassimp/src/jassimp/AiBoneWeight.java b/port/jassimp/jassimp/src/jassimp/AiBoneWeight.java index 7d1d74bcc..7d7a183d0 100644 --- a/port/jassimp/jassimp/src/jassimp/AiBoneWeight.java +++ b/port/jassimp/jassimp/src/jassimp/AiBoneWeight.java @@ -3,7 +3,7 @@ Open Asset Import Library - Java Binding (jassimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2012, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/port/jassimp/jassimp/src/jassimp/AiBuiltInWrapperProvider.java b/port/jassimp/jassimp/src/jassimp/AiBuiltInWrapperProvider.java index 64fad515a..ebc23c0ae 100644 --- a/port/jassimp/jassimp/src/jassimp/AiBuiltInWrapperProvider.java +++ b/port/jassimp/jassimp/src/jassimp/AiBuiltInWrapperProvider.java @@ -3,7 +3,7 @@ Open Asset Import Library - Java Binding (jassimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2012, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/port/jassimp/jassimp/src/jassimp/AiCamera.java b/port/jassimp/jassimp/src/jassimp/AiCamera.java index 6378210f7..4445c34fc 100644 --- a/port/jassimp/jassimp/src/jassimp/AiCamera.java +++ b/port/jassimp/jassimp/src/jassimp/AiCamera.java @@ -3,7 +3,7 @@ Open Asset Import Library - Java Binding (jassimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2012, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/port/jassimp/jassimp/src/jassimp/AiClassLoaderIOSystem.java b/port/jassimp/jassimp/src/jassimp/AiClassLoaderIOSystem.java index 95afc2e02..687e9f37a 100644 --- a/port/jassimp/jassimp/src/jassimp/AiClassLoaderIOSystem.java +++ b/port/jassimp/jassimp/src/jassimp/AiClassLoaderIOSystem.java @@ -3,7 +3,7 @@ Open Asset Import Library - Java Binding (jassimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2017, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/port/jassimp/jassimp/src/jassimp/AiColor.java b/port/jassimp/jassimp/src/jassimp/AiColor.java index 6befeecbd..5cea22a9e 100644 --- a/port/jassimp/jassimp/src/jassimp/AiColor.java +++ b/port/jassimp/jassimp/src/jassimp/AiColor.java @@ -3,7 +3,7 @@ Open Asset Import Library - Java Binding (jassimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2012, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/port/jassimp/jassimp/src/jassimp/AiIOStream.java b/port/jassimp/jassimp/src/jassimp/AiIOStream.java index 6625b3740..71405e685 100644 --- a/port/jassimp/jassimp/src/jassimp/AiIOStream.java +++ b/port/jassimp/jassimp/src/jassimp/AiIOStream.java @@ -3,7 +3,7 @@ Open Asset Import Library - Java Binding (jassimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2017, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/port/jassimp/jassimp/src/jassimp/AiIOSystem.java b/port/jassimp/jassimp/src/jassimp/AiIOSystem.java index 213f95a12..7e15ee033 100644 --- a/port/jassimp/jassimp/src/jassimp/AiIOSystem.java +++ b/port/jassimp/jassimp/src/jassimp/AiIOSystem.java @@ -3,7 +3,7 @@ Open Asset Import Library - Java Binding (jassimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2017, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/port/jassimp/jassimp/src/jassimp/AiInputStreamIOStream.java b/port/jassimp/jassimp/src/jassimp/AiInputStreamIOStream.java index 0db1ea211..64aa40afb 100644 --- a/port/jassimp/jassimp/src/jassimp/AiInputStreamIOStream.java +++ b/port/jassimp/jassimp/src/jassimp/AiInputStreamIOStream.java @@ -3,7 +3,7 @@ Open Asset Import Library - Java Binding (jassimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2017, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/port/jassimp/jassimp/src/jassimp/AiLight.java b/port/jassimp/jassimp/src/jassimp/AiLight.java index 0b1dd2f67..e0a93dbef 100644 --- a/port/jassimp/jassimp/src/jassimp/AiLight.java +++ b/port/jassimp/jassimp/src/jassimp/AiLight.java @@ -3,7 +3,7 @@ Open Asset Import Library - Java Binding (jassimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2012, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/port/jassimp/jassimp/src/jassimp/AiLightType.java b/port/jassimp/jassimp/src/jassimp/AiLightType.java index ec3c39b02..33fd72284 100644 --- a/port/jassimp/jassimp/src/jassimp/AiLightType.java +++ b/port/jassimp/jassimp/src/jassimp/AiLightType.java @@ -3,7 +3,7 @@ Open Asset Import Library - Java Binding (jassimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2012, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/port/jassimp/jassimp/src/jassimp/AiMaterial.java b/port/jassimp/jassimp/src/jassimp/AiMaterial.java index 8582d881a..b571f1428 100644 --- a/port/jassimp/jassimp/src/jassimp/AiMaterial.java +++ b/port/jassimp/jassimp/src/jassimp/AiMaterial.java @@ -3,7 +3,7 @@ Open Asset Import Library - Java Binding (jassimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2012, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/port/jassimp/jassimp/src/jassimp/AiMatrix4f.java b/port/jassimp/jassimp/src/jassimp/AiMatrix4f.java index 19640888d..f78c951bf 100644 --- a/port/jassimp/jassimp/src/jassimp/AiMatrix4f.java +++ b/port/jassimp/jassimp/src/jassimp/AiMatrix4f.java @@ -3,7 +3,7 @@ Open Asset Import Library - Java Binding (jassimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2012, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/port/jassimp/jassimp/src/jassimp/AiMesh.java b/port/jassimp/jassimp/src/jassimp/AiMesh.java index 3f4a29760..eb2ff3c5c 100644 --- a/port/jassimp/jassimp/src/jassimp/AiMesh.java +++ b/port/jassimp/jassimp/src/jassimp/AiMesh.java @@ -3,7 +3,7 @@ Open Asset Import Library - Java Binding (jassimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2012, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/port/jassimp/jassimp/src/jassimp/AiMeshAnim.java b/port/jassimp/jassimp/src/jassimp/AiMeshAnim.java index bbccc71ac..7c893e065 100644 --- a/port/jassimp/jassimp/src/jassimp/AiMeshAnim.java +++ b/port/jassimp/jassimp/src/jassimp/AiMeshAnim.java @@ -3,7 +3,7 @@ Open Asset Import Library - Java Binding (jassimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2012, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/port/jassimp/jassimp/src/jassimp/AiMetadataEntry.java b/port/jassimp/jassimp/src/jassimp/AiMetadataEntry.java index dbdf1aae8..76e66640f 100644 --- a/port/jassimp/jassimp/src/jassimp/AiMetadataEntry.java +++ b/port/jassimp/jassimp/src/jassimp/AiMetadataEntry.java @@ -4,7 +4,7 @@ package jassimp; Open Asset Import Library - Java Binding (jassimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2012, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/port/jassimp/jassimp/src/jassimp/AiNode.java b/port/jassimp/jassimp/src/jassimp/AiNode.java index e585e0449..54baf9ccf 100644 --- a/port/jassimp/jassimp/src/jassimp/AiNode.java +++ b/port/jassimp/jassimp/src/jassimp/AiNode.java @@ -3,7 +3,7 @@ Open Asset Import Library - Java Binding (jassimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2012, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/port/jassimp/jassimp/src/jassimp/AiNodeAnim.java b/port/jassimp/jassimp/src/jassimp/AiNodeAnim.java index fb317a5b1..b07c7ce05 100644 --- a/port/jassimp/jassimp/src/jassimp/AiNodeAnim.java +++ b/port/jassimp/jassimp/src/jassimp/AiNodeAnim.java @@ -3,7 +3,7 @@ Open Asset Import Library - Java Binding (jassimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2015, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/port/jassimp/jassimp/src/jassimp/AiPostProcessSteps.java b/port/jassimp/jassimp/src/jassimp/AiPostProcessSteps.java index 905229190..7bb617b2c 100644 --- a/port/jassimp/jassimp/src/jassimp/AiPostProcessSteps.java +++ b/port/jassimp/jassimp/src/jassimp/AiPostProcessSteps.java @@ -3,7 +3,7 @@ Open Asset Import Library - Java Binding (jassimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2012, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/port/jassimp/jassimp/src/jassimp/AiPrimitiveType.java b/port/jassimp/jassimp/src/jassimp/AiPrimitiveType.java index bb8f9041d..af8aa284d 100644 --- a/port/jassimp/jassimp/src/jassimp/AiPrimitiveType.java +++ b/port/jassimp/jassimp/src/jassimp/AiPrimitiveType.java @@ -3,7 +3,7 @@ Open Asset Import Library - Java Binding (jassimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2012, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/port/jassimp/jassimp/src/jassimp/AiProgressHandler.java b/port/jassimp/jassimp/src/jassimp/AiProgressHandler.java index 5512942d9..7998d1bcc 100644 --- a/port/jassimp/jassimp/src/jassimp/AiProgressHandler.java +++ b/port/jassimp/jassimp/src/jassimp/AiProgressHandler.java @@ -3,7 +3,7 @@ Open Asset Import Library - Java Binding (jassimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2012, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/port/jassimp/jassimp/src/jassimp/AiQuaternion.java b/port/jassimp/jassimp/src/jassimp/AiQuaternion.java index 00630e644..af10e6f91 100644 --- a/port/jassimp/jassimp/src/jassimp/AiQuaternion.java +++ b/port/jassimp/jassimp/src/jassimp/AiQuaternion.java @@ -3,7 +3,7 @@ Open Asset Import Library - Java Binding (jassimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2012, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/port/jassimp/jassimp/src/jassimp/AiScene.java b/port/jassimp/jassimp/src/jassimp/AiScene.java index f13348dec..b4eed2ff7 100644 --- a/port/jassimp/jassimp/src/jassimp/AiScene.java +++ b/port/jassimp/jassimp/src/jassimp/AiScene.java @@ -3,7 +3,7 @@ Open Asset Import Library - Java Binding (jassimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2012, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/port/jassimp/jassimp/src/jassimp/AiSceneFlag.java b/port/jassimp/jassimp/src/jassimp/AiSceneFlag.java index af3ee5d5f..772b495f5 100644 --- a/port/jassimp/jassimp/src/jassimp/AiSceneFlag.java +++ b/port/jassimp/jassimp/src/jassimp/AiSceneFlag.java @@ -3,7 +3,7 @@ Open Asset Import Library - Java Binding (jassimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2012, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/port/jassimp/jassimp/src/jassimp/AiShadingMode.java b/port/jassimp/jassimp/src/jassimp/AiShadingMode.java index af90f98a1..fbf65738f 100644 --- a/port/jassimp/jassimp/src/jassimp/AiShadingMode.java +++ b/port/jassimp/jassimp/src/jassimp/AiShadingMode.java @@ -3,7 +3,7 @@ Open Asset Import Library - Java Binding (jassimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2012, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/port/jassimp/jassimp/src/jassimp/AiTextureInfo.java b/port/jassimp/jassimp/src/jassimp/AiTextureInfo.java index bfa09397b..509230363 100644 --- a/port/jassimp/jassimp/src/jassimp/AiTextureInfo.java +++ b/port/jassimp/jassimp/src/jassimp/AiTextureInfo.java @@ -3,7 +3,7 @@ Open Asset Import Library - Java Binding (jassimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2012, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/port/jassimp/jassimp/src/jassimp/AiTextureMapMode.java b/port/jassimp/jassimp/src/jassimp/AiTextureMapMode.java index df75c58c2..c08ca10cb 100644 --- a/port/jassimp/jassimp/src/jassimp/AiTextureMapMode.java +++ b/port/jassimp/jassimp/src/jassimp/AiTextureMapMode.java @@ -3,7 +3,7 @@ Open Asset Import Library - Java Binding (jassimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2012, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/port/jassimp/jassimp/src/jassimp/AiTextureMapping.java b/port/jassimp/jassimp/src/jassimp/AiTextureMapping.java index 3112ba4bd..48c219d9c 100644 --- a/port/jassimp/jassimp/src/jassimp/AiTextureMapping.java +++ b/port/jassimp/jassimp/src/jassimp/AiTextureMapping.java @@ -3,7 +3,7 @@ Open Asset Import Library - Java Binding (jassimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2012, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/port/jassimp/jassimp/src/jassimp/AiTextureOp.java b/port/jassimp/jassimp/src/jassimp/AiTextureOp.java index d928167ca..df87d968e 100644 --- a/port/jassimp/jassimp/src/jassimp/AiTextureOp.java +++ b/port/jassimp/jassimp/src/jassimp/AiTextureOp.java @@ -3,7 +3,7 @@ Open Asset Import Library - Java Binding (jassimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2012, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/port/jassimp/jassimp/src/jassimp/AiTextureType.java b/port/jassimp/jassimp/src/jassimp/AiTextureType.java index 8756c18ee..85b559c30 100644 --- a/port/jassimp/jassimp/src/jassimp/AiTextureType.java +++ b/port/jassimp/jassimp/src/jassimp/AiTextureType.java @@ -3,7 +3,7 @@ Open Asset Import Library - Java Binding (jassimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2012, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/port/jassimp/jassimp/src/jassimp/AiVector.java b/port/jassimp/jassimp/src/jassimp/AiVector.java index 3136f3888..440be20d6 100644 --- a/port/jassimp/jassimp/src/jassimp/AiVector.java +++ b/port/jassimp/jassimp/src/jassimp/AiVector.java @@ -3,7 +3,7 @@ Open Asset Import Library - Java Binding (jassimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2012, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/port/jassimp/jassimp/src/jassimp/AiWrapperProvider.java b/port/jassimp/jassimp/src/jassimp/AiWrapperProvider.java index e916ad260..a29f9d18f 100644 --- a/port/jassimp/jassimp/src/jassimp/AiWrapperProvider.java +++ b/port/jassimp/jassimp/src/jassimp/AiWrapperProvider.java @@ -3,7 +3,7 @@ Open Asset Import Library - Java Binding (jassimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2012, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/port/jassimp/jassimp/src/jassimp/JaiDebug.java b/port/jassimp/jassimp/src/jassimp/JaiDebug.java index f74a8967b..0ed112a1b 100644 --- a/port/jassimp/jassimp/src/jassimp/JaiDebug.java +++ b/port/jassimp/jassimp/src/jassimp/JaiDebug.java @@ -3,7 +3,7 @@ Open Asset Import Library - Java Binding (jassimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2012, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/port/jassimp/jassimp/src/jassimp/Jassimp.java b/port/jassimp/jassimp/src/jassimp/Jassimp.java index c33f95c0a..4610fb191 100644 --- a/port/jassimp/jassimp/src/jassimp/Jassimp.java +++ b/port/jassimp/jassimp/src/jassimp/Jassimp.java @@ -3,7 +3,7 @@ Open Asset Import Library - Java Binding (jassimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2012, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/port/jassimp/jassimp/src/jassimp/JassimpConfig.java b/port/jassimp/jassimp/src/jassimp/JassimpConfig.java index 8370bb9f0..7591f0e95 100644 --- a/port/jassimp/jassimp/src/jassimp/JassimpConfig.java +++ b/port/jassimp/jassimp/src/jassimp/JassimpConfig.java @@ -3,7 +3,7 @@ Open Asset Import Library - Java Binding (jassimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2012, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/port/jassimp/jassimp/src/jassimp/JassimpLibraryLoader.java b/port/jassimp/jassimp/src/jassimp/JassimpLibraryLoader.java index c299706b7..d87cc820c 100644 --- a/port/jassimp/jassimp/src/jassimp/JassimpLibraryLoader.java +++ b/port/jassimp/jassimp/src/jassimp/JassimpLibraryLoader.java @@ -3,7 +3,7 @@ Open Asset Import Library - Java Binding (jassimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2012, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/port/jassimp/jassimp/src/jassimp/package-info.java b/port/jassimp/jassimp/src/jassimp/package-info.java index fa2883824..7ec8c884f 100644 --- a/port/jassimp/jassimp/src/jassimp/package-info.java +++ b/port/jassimp/jassimp/src/jassimp/package-info.java @@ -3,7 +3,7 @@ Open Asset Import Library - Java Binding (jassimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2012, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/scripts/BlenderImporter/BlenderScene.cpp.template b/scripts/BlenderImporter/BlenderScene.cpp.template index 1dda00919..391528127 100644 --- a/scripts/BlenderImporter/BlenderScene.cpp.template +++ b/scripts/BlenderImporter/BlenderScene.cpp.template @@ -2,7 +2,7 @@ Open Asset Import Library (ASSIMP) ---------------------------------------------------------------------- -Copyright (c) 2006-2016, ASSIMP Development Team +Copyright (c) 2006-2020, ASSIMP Development Team All rights reserved. Redistribution and use of this software in source and binary forms, diff --git a/scripts/BlenderImporter/BlenderSceneGen.h.template b/scripts/BlenderImporter/BlenderSceneGen.h.template index 562b5bb72..f5b71c40c 100644 --- a/scripts/BlenderImporter/BlenderSceneGen.h.template +++ b/scripts/BlenderImporter/BlenderSceneGen.h.template @@ -2,7 +2,7 @@ Open Asset Import Library (ASSIMP) ---------------------------------------------------------------------- -Copyright (c) 2006-2016, ASSIMP Development Team +Copyright (c) 2006-2020, ASSIMP Development Team All rights reserved. Redistribution and use of this software in source and binary forms, diff --git a/scripts/BlenderImporter/genblenddna.py b/scripts/BlenderImporter/genblenddna.py index cca595eca..56e1b9894 100644 --- a/scripts/BlenderImporter/genblenddna.py +++ b/scripts/BlenderImporter/genblenddna.py @@ -5,7 +5,7 @@ # Open Asset Import Library (ASSIMP) # --------------------------------------------------------------------------- # -# Copyright (c) 2006-2016, ASSIMP Development Team +# Copyright (c) 2006-2020, ASSIMP Development Team # # All rights reserved. # diff --git a/scripts/StepImporter/CppGenerator.py b/scripts/StepImporter/CppGenerator.py index b9dba9902..b6c8ed542 100644 --- a/scripts/StepImporter/CppGenerator.py +++ b/scripts/StepImporter/CppGenerator.py @@ -5,7 +5,7 @@ # Open Asset Import Library (ASSIMP) # --------------------------------------------------------------------------- # -# Copyright (c) 2006-2018, ASSIMP Development Team +# Copyright (c) 2006-2020, ASSIMP Development Team # # All rights reserved. # diff --git a/scripts/StepImporter/ExpressReader.py b/scripts/StepImporter/ExpressReader.py index c2a39e70b..9cb3b72ad 100644 --- a/scripts/StepImporter/ExpressReader.py +++ b/scripts/StepImporter/ExpressReader.py @@ -5,7 +5,7 @@ # Open Asset Import Library (ASSIMP) # --------------------------------------------------------------------------- # -# Copyright (c) 2006-2010, ASSIMP Development Team +# Copyright (c) 2006-2020, ASSIMP Development Team # # All rights reserved. # diff --git a/scripts/StepImporter/IFCReaderGen.cpp.template b/scripts/StepImporter/IFCReaderGen.cpp.template index 562b69807..de1063de2 100644 --- a/scripts/StepImporter/IFCReaderGen.cpp.template +++ b/scripts/StepImporter/IFCReaderGen.cpp.template @@ -2,7 +2,7 @@ Open Asset Import Library (ASSIMP) ---------------------------------------------------------------------- -Copyright (c) 2006-2018, ASSIMP Development Team +Copyright (c) 2006-2020, ASSIMP Development Team All rights reserved. Redistribution and use of this software in source and binary forms, diff --git a/scripts/StepImporter/IFCReaderGen.h.template b/scripts/StepImporter/IFCReaderGen.h.template index abef2a1ab..2cad1542a 100644 --- a/scripts/StepImporter/IFCReaderGen.h.template +++ b/scripts/StepImporter/IFCReaderGen.h.template @@ -2,7 +2,7 @@ Open Asset Import Library (ASSIMP) ---------------------------------------------------------------------- -Copyright (c) 2006-2010, ASSIMP Development Team +Copyright (c) 2006-2020, ASSIMP Development Team All rights reserved. Redistribution and use of this software in source and binary forms, diff --git a/scripts/StepImporter/StepReaderGen.cpp.template b/scripts/StepImporter/StepReaderGen.cpp.template index f3240c099..5bb9bb98f 100644 --- a/scripts/StepImporter/StepReaderGen.cpp.template +++ b/scripts/StepImporter/StepReaderGen.cpp.template @@ -2,7 +2,7 @@ Open Asset Import Library (ASSIMP) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, ASSIMP Development Team +Copyright (c) 2006-2020, ASSIMP Development Team All rights reserved. Redistribution and use of this software in source and binary forms, diff --git a/scripts/StepImporter/StepReaderGen.h.template b/scripts/StepImporter/StepReaderGen.h.template index 7d4d77ef4..51ba55093 100644 --- a/scripts/StepImporter/StepReaderGen.h.template +++ b/scripts/StepImporter/StepReaderGen.h.template @@ -2,7 +2,7 @@ Open Asset Import Library (ASSIMP) ---------------------------------------------------------------------- -Copyright (c) 2006-2019, ASSIMP Development Team +Copyright (c) 2006-2020, ASSIMP Development Team All rights reserved. Redistribution and use of this software in source and binary forms, diff --git a/scripts/StepImporter/extract_step_token.py b/scripts/StepImporter/extract_step_token.py index c7f89537a..106cf58a9 100644 --- a/scripts/StepImporter/extract_step_token.py +++ b/scripts/StepImporter/extract_step_token.py @@ -5,7 +5,7 @@ # Open Asset Import Library (ASSIMP) # --------------------------------------------------------------------------- # -# Copyright (c) 2006-2018, ASSIMP Development Team +# Copyright (c) 2006-2020, ASSIMP Development Team # # All rights reserved. # diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index 3d382490c..71f3bf6f2 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -1,7 +1,7 @@ # Open Asset Import Library (assimp) # ---------------------------------------------------------------------- # -# Copyright (c) 2006-2019, assimp team +# Copyright (c) 2006-2020, assimp team # All rights reserved. diff --git a/test/regression/ai_regression_ui.py b/test/regression/ai_regression_ui.py index 063b51510..30c9b6883 100644 --- a/test/regression/ai_regression_ui.py +++ b/test/regression/ai_regression_ui.py @@ -5,7 +5,7 @@ # Open Asset Import Library (ASSIMP) # --------------------------------------------------------------------------- # -# Copyright (c) 2006-2016, ASSIMP Development Team +# Copyright (c) 2006-2020, ASSIMP Development Team # # All rights reserved. # diff --git a/test/regression/gen_db.py b/test/regression/gen_db.py index ab4e31c72..a704c3a8e 100644 --- a/test/regression/gen_db.py +++ b/test/regression/gen_db.py @@ -5,7 +5,7 @@ # Open Asset Import Library (ASSIMP) # --------------------------------------------------------------------------- # -# Copyright (c) 2006-2010, ASSIMP Development Team +# Copyright (c) 2006-2020, ASSIMP Development Team # # All rights reserved. # diff --git a/test/regression/result_checker.py b/test/regression/result_checker.py index 0155660bc..19772f8af 100644 --- a/test/regression/result_checker.py +++ b/test/regression/result_checker.py @@ -5,7 +5,7 @@ # Open Asset Import Library (ASSIMP) # --------------------------------------------------------------------------- # -# Copyright (c) 2006-2016, ASSIMP Development Team +# Copyright (c) 2006-2020, ASSIMP Development Team # # All rights reserved. # diff --git a/test/regression/run.py b/test/regression/run.py index 1ff46fb17..151d7a82e 100755 --- a/test/regression/run.py +++ b/test/regression/run.py @@ -5,7 +5,7 @@ # Open Asset Import Library (ASSIMP) # --------------------------------------------------------------------------- # -# Copyright (c) 2006-2010, ASSIMP Development Team +# Copyright (c) 2006-2020, ASSIMP Development Team # # All rights reserved. # diff --git a/test/regression/settings.py b/test/regression/settings.py index ad7e67a13..9d0a03664 100644 --- a/test/regression/settings.py +++ b/test/regression/settings.py @@ -5,7 +5,7 @@ # Open Asset Import Library (ASSIMP) # --------------------------------------------------------------------------- # -# Copyright (c) 2006-2010, ASSIMP Development Team +# Copyright (c) 2006-2020, ASSIMP Development Team # # All rights reserved. # diff --git a/test/regression/utils.py b/test/regression/utils.py index 7c759b795..f2c0c26f2 100644 --- a/test/regression/utils.py +++ b/test/regression/utils.py @@ -5,7 +5,7 @@ # Open Asset Import Library (ASSIMP) # --------------------------------------------------------------------------- # -# Copyright (c) 2006-2010, ASSIMP Development Team +# Copyright (c) 2006-2020, ASSIMP Development Team # # All rights reserved. # diff --git a/test/unit/AbstractImportExportBase.cpp b/test/unit/AbstractImportExportBase.cpp index bf89fa5d4..1e3e13fb3 100644 --- a/test/unit/AbstractImportExportBase.cpp +++ b/test/unit/AbstractImportExportBase.cpp @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team diff --git a/test/unit/AbstractImportExportBase.h b/test/unit/AbstractImportExportBase.h index d6ae37d60..72530aedc 100644 --- a/test/unit/AbstractImportExportBase.h +++ b/test/unit/AbstractImportExportBase.h @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/test/unit/AssimpAPITest.cpp b/test/unit/AssimpAPITest.cpp index 3e1d97314..c30f6f384 100644 --- a/test/unit/AssimpAPITest.cpp +++ b/test/unit/AssimpAPITest.cpp @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team diff --git a/test/unit/Common/utLineSplitter.cpp b/test/unit/Common/utLineSplitter.cpp index 2aa581add..15965904c 100644 --- a/test/unit/Common/utLineSplitter.cpp +++ b/test/unit/Common/utLineSplitter.cpp @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team diff --git a/test/unit/ImportExport/MDL/MDLHL1TestFiles.h b/test/unit/ImportExport/MDL/MDLHL1TestFiles.h index b4766b5e5..8a60c501a 100644 --- a/test/unit/ImportExport/MDL/MDLHL1TestFiles.h +++ b/test/unit/ImportExport/MDL/MDLHL1TestFiles.h @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team diff --git a/test/unit/ImportExport/MDL/utMDLImporter_HL1_ImportSettings.cpp b/test/unit/ImportExport/MDL/utMDLImporter_HL1_ImportSettings.cpp index eaf6e4eca..6411126cb 100644 --- a/test/unit/ImportExport/MDL/utMDLImporter_HL1_ImportSettings.cpp +++ b/test/unit/ImportExport/MDL/utMDLImporter_HL1_ImportSettings.cpp @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team diff --git a/test/unit/ImportExport/MDL/utMDLImporter_HL1_Materials.cpp b/test/unit/ImportExport/MDL/utMDLImporter_HL1_Materials.cpp index df008e115..79be7c280 100644 --- a/test/unit/ImportExport/MDL/utMDLImporter_HL1_Materials.cpp +++ b/test/unit/ImportExport/MDL/utMDLImporter_HL1_Materials.cpp @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team diff --git a/test/unit/ImportExport/MDL/utMDLImporter_HL1_Nodes.cpp b/test/unit/ImportExport/MDL/utMDLImporter_HL1_Nodes.cpp index 9b20b2caa..50e188833 100644 --- a/test/unit/ImportExport/MDL/utMDLImporter_HL1_Nodes.cpp +++ b/test/unit/ImportExport/MDL/utMDLImporter_HL1_Nodes.cpp @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team diff --git a/test/unit/ImportExport/utAssjsonImportExport.cpp b/test/unit/ImportExport/utAssjsonImportExport.cpp index 82dbf8b57..def7808c3 100644 --- a/test/unit/ImportExport/utAssjsonImportExport.cpp +++ b/test/unit/ImportExport/utAssjsonImportExport.cpp @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/test/unit/ImportExport/utCOBImportExport.cpp b/test/unit/ImportExport/utCOBImportExport.cpp index c01487c84..691ff9f3c 100644 --- a/test/unit/ImportExport/utCOBImportExport.cpp +++ b/test/unit/ImportExport/utCOBImportExport.cpp @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team diff --git a/test/unit/ImportExport/utExporter.cpp b/test/unit/ImportExport/utExporter.cpp index 43e711cb3..1ad1ec613 100644 --- a/test/unit/ImportExport/utExporter.cpp +++ b/test/unit/ImportExport/utExporter.cpp @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team diff --git a/test/unit/ImportExport/utMDLImporter.cpp b/test/unit/ImportExport/utMDLImporter.cpp index 4c7149f54..561b3009f 100644 --- a/test/unit/ImportExport/utMDLImporter.cpp +++ b/test/unit/ImportExport/utMDLImporter.cpp @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team diff --git a/test/unit/ImportExport/utNFFImportExport.cpp b/test/unit/ImportExport/utNFFImportExport.cpp index d2fc1df5f..f4d4b3f6a 100644 --- a/test/unit/ImportExport/utNFFImportExport.cpp +++ b/test/unit/ImportExport/utNFFImportExport.cpp @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team diff --git a/test/unit/ImportExport/utOFFImportExport.cpp b/test/unit/ImportExport/utOFFImportExport.cpp index eadd48b12..e642d64a2 100644 --- a/test/unit/ImportExport/utOFFImportExport.cpp +++ b/test/unit/ImportExport/utOFFImportExport.cpp @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team diff --git a/test/unit/ImportExport/utOgreImportExport.cpp b/test/unit/ImportExport/utOgreImportExport.cpp index 608d0b068..812bde7ce 100644 --- a/test/unit/ImportExport/utOgreImportExport.cpp +++ b/test/unit/ImportExport/utOgreImportExport.cpp @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team diff --git a/test/unit/ImportExport/utQ3BSPFileImportExport.cpp b/test/unit/ImportExport/utQ3BSPFileImportExport.cpp index 70d89f1d2..7cb02b3ea 100644 --- a/test/unit/ImportExport/utQ3BSPFileImportExport.cpp +++ b/test/unit/ImportExport/utQ3BSPFileImportExport.cpp @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team diff --git a/test/unit/ImportExport/utXGLImportExport.cpp b/test/unit/ImportExport/utXGLImportExport.cpp index 89e780e20..d4ea4f9f6 100644 --- a/test/unit/ImportExport/utXGLImportExport.cpp +++ b/test/unit/ImportExport/utXGLImportExport.cpp @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team diff --git a/test/unit/SceneDiffer.cpp b/test/unit/SceneDiffer.cpp index 684d9fee6..5a9184954 100644 --- a/test/unit/SceneDiffer.cpp +++ b/test/unit/SceneDiffer.cpp @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team diff --git a/test/unit/SceneDiffer.h b/test/unit/SceneDiffer.h index 2a8bdae33..98f7ddcdc 100644 --- a/test/unit/SceneDiffer.h +++ b/test/unit/SceneDiffer.h @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team diff --git a/test/unit/TestIOStream.h b/test/unit/TestIOStream.h index 3dbfc45e3..2f7280e2f 100644 --- a/test/unit/TestIOStream.h +++ b/test/unit/TestIOStream.h @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2016, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. Redistribution and use of this software in source and binary forms, diff --git a/test/unit/TestIOSystem.h b/test/unit/TestIOSystem.h index 5749df45b..25e7bc738 100644 --- a/test/unit/TestIOSystem.h +++ b/test/unit/TestIOSystem.h @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/test/unit/TestModelFactory.h b/test/unit/TestModelFactory.h index 0e48fb744..9a31a87a6 100644 --- a/test/unit/TestModelFactory.h +++ b/test/unit/TestModelFactory.h @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team diff --git a/test/unit/UTLogStream.h b/test/unit/UTLogStream.h index e679249df..b02dbac54 100644 --- a/test/unit/UTLogStream.h +++ b/test/unit/UTLogStream.h @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/test/unit/UnitTestFileGenerator.h b/test/unit/UnitTestFileGenerator.h index 2e4aede0f..91d69357f 100644 --- a/test/unit/UnitTestFileGenerator.h +++ b/test/unit/UnitTestFileGenerator.h @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2017, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/test/unit/UnitTestPCH.h b/test/unit/UnitTestPCH.h index 0d5f08992..d47371292 100644 --- a/test/unit/UnitTestPCH.h +++ b/test/unit/UnitTestPCH.h @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2017, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/test/unit/ut3DImportExport.cpp b/test/unit/ut3DImportExport.cpp index a3a3197cc..006fa2145 100644 --- a/test/unit/ut3DImportExport.cpp +++ b/test/unit/ut3DImportExport.cpp @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team diff --git a/test/unit/ut3DSImportExport.cpp b/test/unit/ut3DSImportExport.cpp index edec1d793..dce3ef88e 100644 --- a/test/unit/ut3DSImportExport.cpp +++ b/test/unit/ut3DSImportExport.cpp @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team diff --git a/test/unit/utACImportExport.cpp b/test/unit/utACImportExport.cpp index 192de16a0..9f627a7e0 100644 --- a/test/unit/utACImportExport.cpp +++ b/test/unit/utACImportExport.cpp @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team diff --git a/test/unit/utAMFImportExport.cpp b/test/unit/utAMFImportExport.cpp index 6eb0b4418..4c783db35 100644 --- a/test/unit/utAMFImportExport.cpp +++ b/test/unit/utAMFImportExport.cpp @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/test/unit/utASEImportExport.cpp b/test/unit/utASEImportExport.cpp index 313f0f83a..01bed091f 100644 --- a/test/unit/utASEImportExport.cpp +++ b/test/unit/utASEImportExport.cpp @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/test/unit/utAnim.cpp b/test/unit/utAnim.cpp index 7d4cff7d1..752b403fc 100644 --- a/test/unit/utAnim.cpp +++ b/test/unit/utAnim.cpp @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/test/unit/utArmaturePopulate.cpp b/test/unit/utArmaturePopulate.cpp index 8eb577d61..e70ed053a 100644 --- a/test/unit/utArmaturePopulate.cpp +++ b/test/unit/utArmaturePopulate.cpp @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team diff --git a/test/unit/utAssbinImportExport.cpp b/test/unit/utAssbinImportExport.cpp index 42504df56..b8839e4fe 100644 --- a/test/unit/utAssbinImportExport.cpp +++ b/test/unit/utAssbinImportExport.cpp @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/test/unit/utB3DImportExport.cpp b/test/unit/utB3DImportExport.cpp index ea75b1939..93b08d8a2 100644 --- a/test/unit/utB3DImportExport.cpp +++ b/test/unit/utB3DImportExport.cpp @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/test/unit/utBVHImportExport.cpp b/test/unit/utBVHImportExport.cpp index c4ed43cf8..137bcd376 100644 --- a/test/unit/utBVHImportExport.cpp +++ b/test/unit/utBVHImportExport.cpp @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team diff --git a/test/unit/utBatchLoader.cpp b/test/unit/utBatchLoader.cpp index 36dcbf288..c73508bf0 100644 --- a/test/unit/utBatchLoader.cpp +++ b/test/unit/utBatchLoader.cpp @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team diff --git a/test/unit/utBlendImportAreaLight.cpp b/test/unit/utBlendImportAreaLight.cpp index a259294aa..8d9c98d62 100644 --- a/test/unit/utBlendImportAreaLight.cpp +++ b/test/unit/utBlendImportAreaLight.cpp @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team diff --git a/test/unit/utBlendImportMaterials.cpp b/test/unit/utBlendImportMaterials.cpp index 151c614c0..d0676b026 100644 --- a/test/unit/utBlendImportMaterials.cpp +++ b/test/unit/utBlendImportMaterials.cpp @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team diff --git a/test/unit/utBlenderImportExport.cpp b/test/unit/utBlenderImportExport.cpp index b2d268497..f9c304cf2 100644 --- a/test/unit/utBlenderImportExport.cpp +++ b/test/unit/utBlenderImportExport.cpp @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team diff --git a/test/unit/utBlenderIntermediate.cpp b/test/unit/utBlenderIntermediate.cpp index 30f29017d..201d18e91 100644 --- a/test/unit/utBlenderIntermediate.cpp +++ b/test/unit/utBlenderIntermediate.cpp @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team diff --git a/test/unit/utBlenderWork.cpp b/test/unit/utBlenderWork.cpp index c0e3347ab..eb3208fe6 100644 --- a/test/unit/utBlenderWork.cpp +++ b/test/unit/utBlenderWork.cpp @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/test/unit/utCSMImportExport.cpp b/test/unit/utCSMImportExport.cpp index 7f6ae0f4e..e1b32fb6e 100644 --- a/test/unit/utCSMImportExport.cpp +++ b/test/unit/utCSMImportExport.cpp @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team diff --git a/test/unit/utColladaExportCamera.cpp b/test/unit/utColladaExportCamera.cpp index ff84422e5..954c19bca 100644 --- a/test/unit/utColladaExportCamera.cpp +++ b/test/unit/utColladaExportCamera.cpp @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team diff --git a/test/unit/utColladaExportLight.cpp b/test/unit/utColladaExportLight.cpp index c2aa17b2b..10b10852f 100644 --- a/test/unit/utColladaExportLight.cpp +++ b/test/unit/utColladaExportLight.cpp @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team diff --git a/test/unit/utColladaImportExport.cpp b/test/unit/utColladaImportExport.cpp index 749e57010..870c015b5 100644 --- a/test/unit/utColladaImportExport.cpp +++ b/test/unit/utColladaImportExport.cpp @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team diff --git a/test/unit/utD3MFImportExport.cpp b/test/unit/utD3MFImportExport.cpp index c9b17d898..a1f3e4c95 100644 --- a/test/unit/utD3MFImportExport.cpp +++ b/test/unit/utD3MFImportExport.cpp @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team diff --git a/test/unit/utDXFImporterExporter.cpp b/test/unit/utDXFImporterExporter.cpp index af57ffc79..922ee29b2 100644 --- a/test/unit/utDXFImporterExporter.cpp +++ b/test/unit/utDXFImporterExporter.cpp @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team diff --git a/test/unit/utDefaultIOStream.cpp b/test/unit/utDefaultIOStream.cpp index bfc82a620..fb65a4960 100644 --- a/test/unit/utDefaultIOStream.cpp +++ b/test/unit/utDefaultIOStream.cpp @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team diff --git a/test/unit/utFBXImporterExporter.cpp b/test/unit/utFBXImporterExporter.cpp index fd350850f..ab35ab768 100644 --- a/test/unit/utFBXImporterExporter.cpp +++ b/test/unit/utFBXImporterExporter.cpp @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team diff --git a/test/unit/utFastAtof.cpp b/test/unit/utFastAtof.cpp index ef1e72202..3eefbe3c3 100644 --- a/test/unit/utFastAtof.cpp +++ b/test/unit/utFastAtof.cpp @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team diff --git a/test/unit/utFindDegenerates.cpp b/test/unit/utFindDegenerates.cpp index 064031f34..d645655c0 100644 --- a/test/unit/utFindDegenerates.cpp +++ b/test/unit/utFindDegenerates.cpp @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/test/unit/utFindInvalidData.cpp b/test/unit/utFindInvalidData.cpp index 7c70a71a9..4b91104a5 100644 --- a/test/unit/utFindInvalidData.cpp +++ b/test/unit/utFindInvalidData.cpp @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/test/unit/utFixInfacingNormals.cpp b/test/unit/utFixInfacingNormals.cpp index 40b962dcb..d23064eab 100644 --- a/test/unit/utFixInfacingNormals.cpp +++ b/test/unit/utFixInfacingNormals.cpp @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team diff --git a/test/unit/utGenBoundingBoxesProcess.cpp b/test/unit/utGenBoundingBoxesProcess.cpp index 2c2f831bc..946bced84 100644 --- a/test/unit/utGenBoundingBoxesProcess.cpp +++ b/test/unit/utGenBoundingBoxesProcess.cpp @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/test/unit/utGenNormals.cpp b/test/unit/utGenNormals.cpp index 36f0b18bc..a51e81db6 100644 --- a/test/unit/utGenNormals.cpp +++ b/test/unit/utGenNormals.cpp @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team diff --git a/test/unit/utHMPImportExport.cpp b/test/unit/utHMPImportExport.cpp index 35f4583aa..899eea66c 100644 --- a/test/unit/utHMPImportExport.cpp +++ b/test/unit/utHMPImportExport.cpp @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team diff --git a/test/unit/utIFCImportExport.cpp b/test/unit/utIFCImportExport.cpp index 3f7cf7c8c..6e8862a2a 100644 --- a/test/unit/utIFCImportExport.cpp +++ b/test/unit/utIFCImportExport.cpp @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team diff --git a/test/unit/utIOStreamBuffer.cpp b/test/unit/utIOStreamBuffer.cpp index 6c6153135..10982b313 100644 --- a/test/unit/utIOStreamBuffer.cpp +++ b/test/unit/utIOStreamBuffer.cpp @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team diff --git a/test/unit/utIOSystem.cpp b/test/unit/utIOSystem.cpp index 80165fe79..c7bd6dc13 100644 --- a/test/unit/utIOSystem.cpp +++ b/test/unit/utIOSystem.cpp @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team diff --git a/test/unit/utImporter.cpp b/test/unit/utImporter.cpp index 3e88e3ff4..305d25339 100644 --- a/test/unit/utImporter.cpp +++ b/test/unit/utImporter.cpp @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team diff --git a/test/unit/utImproveCacheLocality.cpp b/test/unit/utImproveCacheLocality.cpp index 8564bb01d..66ce0d6d8 100644 --- a/test/unit/utImproveCacheLocality.cpp +++ b/test/unit/utImproveCacheLocality.cpp @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team diff --git a/test/unit/utIssues.cpp b/test/unit/utIssues.cpp index 0e30fa182..19d1815cb 100644 --- a/test/unit/utIssues.cpp +++ b/test/unit/utIssues.cpp @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team diff --git a/test/unit/utJoinVertices.cpp b/test/unit/utJoinVertices.cpp index 215b0dd90..e04e3af0d 100644 --- a/test/unit/utJoinVertices.cpp +++ b/test/unit/utJoinVertices.cpp @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/test/unit/utLWOImportExport.cpp b/test/unit/utLWOImportExport.cpp index c8655b664..8d970e465 100644 --- a/test/unit/utLWOImportExport.cpp +++ b/test/unit/utLWOImportExport.cpp @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team diff --git a/test/unit/utLWSImportExport.cpp b/test/unit/utLWSImportExport.cpp index b04424b48..e0e8b57cd 100644 --- a/test/unit/utLWSImportExport.cpp +++ b/test/unit/utLWSImportExport.cpp @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team diff --git a/test/unit/utLimitBoneWeights.cpp b/test/unit/utLimitBoneWeights.cpp index 927a9e37c..9dbd75836 100644 --- a/test/unit/utLimitBoneWeights.cpp +++ b/test/unit/utLimitBoneWeights.cpp @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/test/unit/utM3DImportExport.cpp b/test/unit/utM3DImportExport.cpp index 31028235d..29a4786b1 100644 --- a/test/unit/utM3DImportExport.cpp +++ b/test/unit/utM3DImportExport.cpp @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team diff --git a/test/unit/utMDCImportExport.cpp b/test/unit/utMDCImportExport.cpp index 30a4cfad1..fc4d6445c 100644 --- a/test/unit/utMDCImportExport.cpp +++ b/test/unit/utMDCImportExport.cpp @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team diff --git a/test/unit/utMaterialSystem.cpp b/test/unit/utMaterialSystem.cpp index 701b933e7..ff8960381 100644 --- a/test/unit/utMaterialSystem.cpp +++ b/test/unit/utMaterialSystem.cpp @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team diff --git a/test/unit/utMatrix3x3.cpp b/test/unit/utMatrix3x3.cpp index bff8ca1cd..dfd6d95b4 100644 --- a/test/unit/utMatrix3x3.cpp +++ b/test/unit/utMatrix3x3.cpp @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team diff --git a/test/unit/utMatrix4x4.cpp b/test/unit/utMatrix4x4.cpp index e94bf500c..8c060ffd5 100644 --- a/test/unit/utMatrix4x4.cpp +++ b/test/unit/utMatrix4x4.cpp @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team diff --git a/test/unit/utMetadata.cpp b/test/unit/utMetadata.cpp index 64b7dfe4c..a605107db 100644 --- a/test/unit/utMetadata.cpp +++ b/test/unit/utMetadata.cpp @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team diff --git a/test/unit/utNoBoostTest.cpp b/test/unit/utNoBoostTest.cpp index 51ad70ec0..cb6c391ed 100644 --- a/test/unit/utNoBoostTest.cpp +++ b/test/unit/utNoBoostTest.cpp @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2016, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/test/unit/utObjImportExport.cpp b/test/unit/utObjImportExport.cpp index b6cb72623..ba084ceb4 100644 --- a/test/unit/utObjImportExport.cpp +++ b/test/unit/utObjImportExport.cpp @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team diff --git a/test/unit/utObjTools.cpp b/test/unit/utObjTools.cpp index 2de45d962..1fc282808 100644 --- a/test/unit/utObjTools.cpp +++ b/test/unit/utObjTools.cpp @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team diff --git a/test/unit/utOpenGEXImportExport.cpp b/test/unit/utOpenGEXImportExport.cpp index 4e154f50f..bc3662997 100644 --- a/test/unit/utOpenGEXImportExport.cpp +++ b/test/unit/utOpenGEXImportExport.cpp @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team diff --git a/test/unit/utPLYImportExport.cpp b/test/unit/utPLYImportExport.cpp index 17d1b28de..6c3dd19f8 100644 --- a/test/unit/utPLYImportExport.cpp +++ b/test/unit/utPLYImportExport.cpp @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/test/unit/utPMXImporter.cpp b/test/unit/utPMXImporter.cpp index 62d3b0707..d70c4c64e 100644 --- a/test/unit/utPMXImporter.cpp +++ b/test/unit/utPMXImporter.cpp @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2016, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/test/unit/utPretransformVertices.cpp b/test/unit/utPretransformVertices.cpp index 0839740ac..0cfa6fabb 100644 --- a/test/unit/utPretransformVertices.cpp +++ b/test/unit/utPretransformVertices.cpp @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team diff --git a/test/unit/utProfiler.cpp b/test/unit/utProfiler.cpp index b86f1952c..5b5871135 100644 --- a/test/unit/utProfiler.cpp +++ b/test/unit/utProfiler.cpp @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team diff --git a/test/unit/utQ3DImportExport.cpp b/test/unit/utQ3DImportExport.cpp index 51fa4b70a..eefc5e774 100644 --- a/test/unit/utQ3DImportExport.cpp +++ b/test/unit/utQ3DImportExport.cpp @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team diff --git a/test/unit/utRemoveComments.cpp b/test/unit/utRemoveComments.cpp index cd3175f5a..1fdccf514 100644 --- a/test/unit/utRemoveComments.cpp +++ b/test/unit/utRemoveComments.cpp @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team diff --git a/test/unit/utRemoveComponent.cpp b/test/unit/utRemoveComponent.cpp index a1ae7ef47..f6633f6ab 100644 --- a/test/unit/utRemoveComponent.cpp +++ b/test/unit/utRemoveComponent.cpp @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team diff --git a/test/unit/utRemoveRedundantMaterials.cpp b/test/unit/utRemoveRedundantMaterials.cpp index 7810afbef..d5c729224 100644 --- a/test/unit/utRemoveRedundantMaterials.cpp +++ b/test/unit/utRemoveRedundantMaterials.cpp @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team diff --git a/test/unit/utRemoveVCProcess.cpp b/test/unit/utRemoveVCProcess.cpp index 8db5941d0..a84f84187 100644 --- a/test/unit/utRemoveVCProcess.cpp +++ b/test/unit/utRemoveVCProcess.cpp @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team diff --git a/test/unit/utSIBImporter.cpp b/test/unit/utSIBImporter.cpp index 582baef64..2cc0f0f8c 100644 --- a/test/unit/utSIBImporter.cpp +++ b/test/unit/utSIBImporter.cpp @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team diff --git a/test/unit/utSMDImportExport.cpp b/test/unit/utSMDImportExport.cpp index dae490508..464182a2d 100644 --- a/test/unit/utSMDImportExport.cpp +++ b/test/unit/utSMDImportExport.cpp @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team diff --git a/test/unit/utSTLImportExport.cpp b/test/unit/utSTLImportExport.cpp index 0f90aacf9..371c78cdd 100644 --- a/test/unit/utSTLImportExport.cpp +++ b/test/unit/utSTLImportExport.cpp @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team diff --git a/test/unit/utScaleProcess.cpp b/test/unit/utScaleProcess.cpp index fd2773c24..68ef21bf3 100644 --- a/test/unit/utScaleProcess.cpp +++ b/test/unit/utScaleProcess.cpp @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team diff --git a/test/unit/utScene.cpp b/test/unit/utScene.cpp index 8d630ce35..e989db7cb 100644 --- a/test/unit/utScene.cpp +++ b/test/unit/utScene.cpp @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2016, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/test/unit/utSceneCombiner.cpp b/test/unit/utSceneCombiner.cpp index e9be598e1..93b415cc7 100644 --- a/test/unit/utSceneCombiner.cpp +++ b/test/unit/utSceneCombiner.cpp @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team diff --git a/test/unit/utScenePreprocessor.cpp b/test/unit/utScenePreprocessor.cpp index 7233e1379..b5387caca 100644 --- a/test/unit/utScenePreprocessor.cpp +++ b/test/unit/utScenePreprocessor.cpp @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team diff --git a/test/unit/utSharedPPData.cpp b/test/unit/utSharedPPData.cpp index 53008a27a..43333d8e6 100644 --- a/test/unit/utSharedPPData.cpp +++ b/test/unit/utSharedPPData.cpp @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team diff --git a/test/unit/utSimd.cpp b/test/unit/utSimd.cpp index d6bd9fe90..58ce6b70e 100644 --- a/test/unit/utSimd.cpp +++ b/test/unit/utSimd.cpp @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/test/unit/utSortByPType.cpp b/test/unit/utSortByPType.cpp index fb637b004..390de2009 100644 --- a/test/unit/utSortByPType.cpp +++ b/test/unit/utSortByPType.cpp @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team diff --git a/test/unit/utSplitLargeMeshes.cpp b/test/unit/utSplitLargeMeshes.cpp index fb3f2a037..7f3578b62 100644 --- a/test/unit/utSplitLargeMeshes.cpp +++ b/test/unit/utSplitLargeMeshes.cpp @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team diff --git a/test/unit/utStringUtils.cpp b/test/unit/utStringUtils.cpp index 3791e8622..c5493c502 100644 --- a/test/unit/utStringUtils.cpp +++ b/test/unit/utStringUtils.cpp @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team diff --git a/test/unit/utTargetAnimation.cpp b/test/unit/utTargetAnimation.cpp index bbcacd2cb..52ccaaf08 100644 --- a/test/unit/utTargetAnimation.cpp +++ b/test/unit/utTargetAnimation.cpp @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team diff --git a/test/unit/utTextureTransform.cpp b/test/unit/utTextureTransform.cpp index bbcacd2cb..52ccaaf08 100644 --- a/test/unit/utTextureTransform.cpp +++ b/test/unit/utTextureTransform.cpp @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team diff --git a/test/unit/utTriangulate.cpp b/test/unit/utTriangulate.cpp index c65e24a95..c05c8f8d2 100644 --- a/test/unit/utTriangulate.cpp +++ b/test/unit/utTriangulate.cpp @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team diff --git a/test/unit/utTypes.cpp b/test/unit/utTypes.cpp index 6289c75e7..0e3c0a92f 100644 --- a/test/unit/utTypes.cpp +++ b/test/unit/utTypes.cpp @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team diff --git a/test/unit/utValidateDataStructure.cpp b/test/unit/utValidateDataStructure.cpp index 61fc93dd7..099c54d3a 100644 --- a/test/unit/utValidateDataStructure.cpp +++ b/test/unit/utValidateDataStructure.cpp @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team diff --git a/test/unit/utVector3.cpp b/test/unit/utVector3.cpp index adeb70615..414a2a7b5 100644 --- a/test/unit/utVector3.cpp +++ b/test/unit/utVector3.cpp @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/test/unit/utVersion.cpp b/test/unit/utVersion.cpp index 66e832baa..ca5462053 100644 --- a/test/unit/utVersion.cpp +++ b/test/unit/utVersion.cpp @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/test/unit/utVertexTriangleAdjacency.cpp b/test/unit/utVertexTriangleAdjacency.cpp index e48d3521e..0cf09a931 100644 --- a/test/unit/utVertexTriangleAdjacency.cpp +++ b/test/unit/utVertexTriangleAdjacency.cpp @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team diff --git a/test/unit/utX3DImportExport.cpp b/test/unit/utX3DImportExport.cpp index 2aa0ae3cc..b09311bcb 100644 --- a/test/unit/utX3DImportExport.cpp +++ b/test/unit/utX3DImportExport.cpp @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team diff --git a/test/unit/utXImporterExporter.cpp b/test/unit/utXImporterExporter.cpp index 53e156bcc..0ef6aba86 100644 --- a/test/unit/utXImporterExporter.cpp +++ b/test/unit/utXImporterExporter.cpp @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team diff --git a/test/unit/utglTF2ImportExport.cpp b/test/unit/utglTF2ImportExport.cpp index 2073a0003..8b91577f6 100644 --- a/test/unit/utglTF2ImportExport.cpp +++ b/test/unit/utglTF2ImportExport.cpp @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/test/unit/utglTFImportExport.cpp b/test/unit/utglTFImportExport.cpp index 321d58354..fe2491d66 100644 --- a/test/unit/utglTFImportExport.cpp +++ b/test/unit/utglTFImportExport.cpp @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team diff --git a/tools/assimp_cmd/CMakeLists.txt b/tools/assimp_cmd/CMakeLists.txt index 5ea4e1a24..ef7b7f054 100644 --- a/tools/assimp_cmd/CMakeLists.txt +++ b/tools/assimp_cmd/CMakeLists.txt @@ -1,7 +1,7 @@ # Open Asset Import Library (assimp) # ---------------------------------------------------------------------- # -# Copyright (c) 2006-2019, assimp team +# Copyright (c) 2006-2020, assimp team # All rights reserved. diff --git a/tools/assimp_cmd/CompareDump.cpp b/tools/assimp_cmd/CompareDump.cpp index db7e3aada..3250c528a 100644 --- a/tools/assimp_cmd/CompareDump.cpp +++ b/tools/assimp_cmd/CompareDump.cpp @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team diff --git a/tools/assimp_cmd/Export.cpp b/tools/assimp_cmd/Export.cpp index e29936e38..20dc91239 100644 --- a/tools/assimp_cmd/Export.cpp +++ b/tools/assimp_cmd/Export.cpp @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team diff --git a/tools/assimp_cmd/ImageExtractor.cpp b/tools/assimp_cmd/ImageExtractor.cpp index a587ab434..c587611cb 100644 --- a/tools/assimp_cmd/ImageExtractor.cpp +++ b/tools/assimp_cmd/ImageExtractor.cpp @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team diff --git a/tools/assimp_cmd/Info.cpp b/tools/assimp_cmd/Info.cpp index d730b9308..0f23c1f89 100644 --- a/tools/assimp_cmd/Info.cpp +++ b/tools/assimp_cmd/Info.cpp @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team diff --git a/tools/assimp_cmd/Main.cpp b/tools/assimp_cmd/Main.cpp index 9173a756b..ad08b0b11 100644 --- a/tools/assimp_cmd/Main.cpp +++ b/tools/assimp_cmd/Main.cpp @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team diff --git a/tools/assimp_cmd/Main.h b/tools/assimp_cmd/Main.h index 5dc4f7d28..460db2df9 100644 --- a/tools/assimp_cmd/Main.h +++ b/tools/assimp_cmd/Main.h @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/tools/assimp_cmd/WriteDumb.cpp b/tools/assimp_cmd/WriteDumb.cpp index 559bf08c6..5b5dfd2a1 100644 --- a/tools/assimp_cmd/WriteDumb.cpp +++ b/tools/assimp_cmd/WriteDumb.cpp @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team diff --git a/tools/assimp_view/AnimEvaluator.cpp b/tools/assimp_view/AnimEvaluator.cpp index 9d9481a77..710950fe2 100644 --- a/tools/assimp_view/AnimEvaluator.cpp +++ b/tools/assimp_view/AnimEvaluator.cpp @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/tools/assimp_view/AnimEvaluator.h b/tools/assimp_view/AnimEvaluator.h index 1b4d54186..9267853e1 100644 --- a/tools/assimp_view/AnimEvaluator.h +++ b/tools/assimp_view/AnimEvaluator.h @@ -4,7 +4,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/tools/assimp_view/AssetHelper.h b/tools/assimp_view/AssetHelper.h index f71d8f510..7731e44e5 100644 --- a/tools/assimp_view/AssetHelper.h +++ b/tools/assimp_view/AssetHelper.h @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2012, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/tools/assimp_view/Background.cpp b/tools/assimp_view/Background.cpp index b356a245b..e5f4e2b96 100644 --- a/tools/assimp_view/Background.cpp +++ b/tools/assimp_view/Background.cpp @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/tools/assimp_view/Background.h b/tools/assimp_view/Background.h index 54b21676f..bbefd1065 100644 --- a/tools/assimp_view/Background.h +++ b/tools/assimp_view/Background.h @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2015, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/tools/assimp_view/CMakeLists.txt b/tools/assimp_view/CMakeLists.txt index 8112c19e8..001444e0e 100644 --- a/tools/assimp_view/CMakeLists.txt +++ b/tools/assimp_view/CMakeLists.txt @@ -1,7 +1,7 @@ # Open Asset Import Library (assimp) # ---------------------------------------------------------------------- # -# Copyright (c) 2006-2019, assimp team +# Copyright (c) 2006-2020, assimp team # All rights reserved. diff --git a/tools/assimp_view/Camera.h b/tools/assimp_view/Camera.h index fa9308ed5..dd82af029 100644 --- a/tools/assimp_view/Camera.h +++ b/tools/assimp_view/Camera.h @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2012, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/tools/assimp_view/Display.cpp b/tools/assimp_view/Display.cpp index ab29c1d3e..f66f6bc92 100644 --- a/tools/assimp_view/Display.cpp +++ b/tools/assimp_view/Display.cpp @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/tools/assimp_view/Display.h b/tools/assimp_view/Display.h index 3382d38bb..f52e65e42 100644 --- a/tools/assimp_view/Display.h +++ b/tools/assimp_view/Display.h @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2012, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/tools/assimp_view/HelpDialog.cpp b/tools/assimp_view/HelpDialog.cpp index 1a9f08f5f..70b2ac866 100644 --- a/tools/assimp_view/HelpDialog.cpp +++ b/tools/assimp_view/HelpDialog.cpp @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/tools/assimp_view/Input.cpp b/tools/assimp_view/Input.cpp index 88e04b437..505433404 100644 --- a/tools/assimp_view/Input.cpp +++ b/tools/assimp_view/Input.cpp @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/tools/assimp_view/LogDisplay.cpp b/tools/assimp_view/LogDisplay.cpp index d24b9bf20..ff5ed8680 100644 --- a/tools/assimp_view/LogDisplay.cpp +++ b/tools/assimp_view/LogDisplay.cpp @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/tools/assimp_view/LogDisplay.h b/tools/assimp_view/LogDisplay.h index a6dd69fc2..e0878b841 100644 --- a/tools/assimp_view/LogDisplay.h +++ b/tools/assimp_view/LogDisplay.h @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2012, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/tools/assimp_view/LogWindow.cpp b/tools/assimp_view/LogWindow.cpp index ca9b88f95..ff6e71038 100644 --- a/tools/assimp_view/LogWindow.cpp +++ b/tools/assimp_view/LogWindow.cpp @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/tools/assimp_view/LogWindow.h b/tools/assimp_view/LogWindow.h index 5248139da..671d8be8f 100644 --- a/tools/assimp_view/LogWindow.h +++ b/tools/assimp_view/LogWindow.h @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2012, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/tools/assimp_view/Material.cpp b/tools/assimp_view/Material.cpp index 2c5316d81..0d504e9fb 100644 --- a/tools/assimp_view/Material.cpp +++ b/tools/assimp_view/Material.cpp @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/tools/assimp_view/MaterialManager.h b/tools/assimp_view/MaterialManager.h index 17e133821..fb3fcb38f 100644 --- a/tools/assimp_view/MaterialManager.h +++ b/tools/assimp_view/MaterialManager.h @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2012, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/tools/assimp_view/MeshRenderer.cpp b/tools/assimp_view/MeshRenderer.cpp index dfa249735..27bc6704f 100644 --- a/tools/assimp_view/MeshRenderer.cpp +++ b/tools/assimp_view/MeshRenderer.cpp @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/tools/assimp_view/MeshRenderer.h b/tools/assimp_view/MeshRenderer.h index e9da93f6b..38cfa6326 100644 --- a/tools/assimp_view/MeshRenderer.h +++ b/tools/assimp_view/MeshRenderer.h @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2012, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/tools/assimp_view/MessageProc.cpp b/tools/assimp_view/MessageProc.cpp index cbd8b2f1a..3000e557b 100644 --- a/tools/assimp_view/MessageProc.cpp +++ b/tools/assimp_view/MessageProc.cpp @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/tools/assimp_view/Normals.cpp b/tools/assimp_view/Normals.cpp index 0ebd3dd5b..35e89e5b1 100644 --- a/tools/assimp_view/Normals.cpp +++ b/tools/assimp_view/Normals.cpp @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/tools/assimp_view/RenderOptions.h b/tools/assimp_view/RenderOptions.h index 73468f11a..bd9e8a871 100644 --- a/tools/assimp_view/RenderOptions.h +++ b/tools/assimp_view/RenderOptions.h @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2012, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/tools/assimp_view/SceneAnimator.cpp b/tools/assimp_view/SceneAnimator.cpp index 86fe46a9c..b6f95329d 100644 --- a/tools/assimp_view/SceneAnimator.cpp +++ b/tools/assimp_view/SceneAnimator.cpp @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/tools/assimp_view/SceneAnimator.h b/tools/assimp_view/SceneAnimator.h index 00d9832b6..956edb3e3 100644 --- a/tools/assimp_view/SceneAnimator.h +++ b/tools/assimp_view/SceneAnimator.h @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/tools/assimp_view/Shaders.cpp b/tools/assimp_view/Shaders.cpp index 49ec5320d..f129b7cc6 100644 --- a/tools/assimp_view/Shaders.cpp +++ b/tools/assimp_view/Shaders.cpp @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/tools/assimp_view/Shaders.h b/tools/assimp_view/Shaders.h index 59a45ce13..506daa70b 100644 --- a/tools/assimp_view/Shaders.h +++ b/tools/assimp_view/Shaders.h @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2012, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. diff --git a/tools/assimp_view/assimp_view.cpp b/tools/assimp_view/assimp_view.cpp index 1bcdce967..b8f13b092 100644 --- a/tools/assimp_view/assimp_view.cpp +++ b/tools/assimp_view/assimp_view.cpp @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team diff --git a/tools/assimp_view/assimp_view.h b/tools/assimp_view/assimp_view.h index a32a62d04..3c519bb92 100644 --- a/tools/assimp_view/assimp_view.h +++ b/tools/assimp_view/assimp_view.h @@ -3,7 +3,7 @@ Open Asset Import Library (assimp) --------------------------------------------------------------------------- -Copyright (c) 2006-2019, assimp team +Copyright (c) 2006-2020, assimp team diff --git a/tools/assimp_view/assimp_view.rc b/tools/assimp_view/assimp_view.rc index aca323b09..48d7c3697 100644 --- a/tools/assimp_view/assimp_view.rc +++ b/tools/assimp_view/assimp_view.rc @@ -43,7 +43,7 @@ FONT 9, "Courier New", 400, 0, 0x0 BEGIN LTEXT "Open Asset Import Library (Assimp)",IDC_STATIC,30,14,144,9 LTEXT "A free C/C++ library to read various well-known 3D model formats into a straightforward in-memory format for easy processing by applications. Licensed under a 3-clause BSD license and totally awesome.",IDC_STATIC,31,34,204,24 - LTEXT "(c) 2008-2009. Assimp Development Team. See the CREDITS file for a list of all contributors.",IDC_STATIC,30,65,204,23 + LTEXT "(c) 2008-2020. Assimp Development Team. See the CREDITS file for a list of all contributors.",IDC_STATIC,30,65,204,23 CONTROL "",IDC_STATIC,"Static",SS_ETCHEDHORZ,0,27,282,1 LTEXT "http://assimp.sourceforge.net http://www.zfx.info",IDC_STATIC,31,101,127,22 DEFPUSHBUTTON "Love this library",IDOK,186,110,84,14 diff --git a/tools/coverity/assimp_modeling.cpp b/tools/coverity/assimp_modeling.cpp index cc09284f4..aeb83a259 100644 --- a/tools/coverity/assimp_modeling.cpp +++ b/tools/coverity/assimp_modeling.cpp @@ -2,7 +2,7 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2015, assimp team +Copyright (c) 2006-2020, assimp team All rights reserved. Redistribution and use of this software in source and binary forms, From 9aea72f70e3f10f7db903c24a2c19a7fd769e3b8 Mon Sep 17 00:00:00 2001 From: Marc-Antoine Lortie Date: Mon, 20 Jan 2020 09:14:04 -0500 Subject: [PATCH 18/85] Changed date in test aiGetLegalStringTest to the appropriate year. --- test/unit/utVersion.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/unit/utVersion.cpp b/test/unit/utVersion.cpp index ca5462053..aa75a26d8 100644 --- a/test/unit/utVersion.cpp +++ b/test/unit/utVersion.cpp @@ -48,7 +48,7 @@ TEST_F( utVersion, aiGetLegalStringTest ) { EXPECT_NE( lv, nullptr ); std::string text( lv ); - size_t pos( text.find( std::string( "2019" ) ) ); + size_t pos( text.find( std::string( "2020" ) ) ); EXPECT_NE( pos, std::string::npos ); } From 8619ff55b6d29176f4113fec3baf02ec0552947a Mon Sep 17 00:00:00 2001 From: Turo Lamminen Date: Tue, 21 Jan 2020 13:05:02 +0200 Subject: [PATCH 19/85] Revert broken .X test model to working version --- test/models/X/fromtruespace_bin32.x | Bin 372304 -> 372321 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/test/models/X/fromtruespace_bin32.x b/test/models/X/fromtruespace_bin32.x index d09fc15644985294205d1788cef888662e778bbd..0333a1a5d072709641d097e3c595d436b47a4caf 100644 GIT binary patch delta 258 zcmca`N9^Gpu?>B`jJ%usd`nI;@=m{A!Q3s%%f-OJ1;oq@3=H`|dLj_>ZeJkIn9d^! zlAFxQz%U7jLGpZ1KJRon6~=T`kTghY0#q8r2eHk8G)OtfSl;%UHsB`oBMrBPELPV!Q3s(#lXM?#LNr~4EaEMA`owHtYl8-5eKp+b22bY z0%DLXACy0xv5h%h3CICSOn^!Pxge%FkOrv*nb^KTg%OCEwr@~jHVC1EWk8FVzT0kZ JIl^-HB><5~EMfov From 963d47574808d5b618e3875c544708666aa209b1 Mon Sep 17 00:00:00 2001 From: Turo Lamminen Date: Tue, 21 Jan 2020 13:42:12 +0200 Subject: [PATCH 20/85] Add MD3 importer unit tests --- test/CMakeLists.txt | 1 + test/unit/ImportExport/utMD3Importer.cpp | 73 ++++++++++++++++++++++++ 2 files changed, 74 insertions(+) create mode 100644 test/unit/ImportExport/utMD3Importer.cpp diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index 3d382490c..f5e87b2b6 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -129,6 +129,7 @@ SET( IMPORTERS unit/ImportExport/utNFFImportExport.cpp unit/ImportExport/utXGLImportExport.cpp unit/ImportExport/utMD2Importer.cpp + unit/ImportExport/utMD3Importer.cpp unit/ImportExport/utMD5Importer.cpp unit/ImportExport/utMDLImporter.cpp unit/ImportExport/MDL/MDLHL1TestFiles.h diff --git a/test/unit/ImportExport/utMD3Importer.cpp b/test/unit/ImportExport/utMD3Importer.cpp new file mode 100644 index 000000000..212fb6338 --- /dev/null +++ b/test/unit/ImportExport/utMD3Importer.cpp @@ -0,0 +1,73 @@ +/* +--------------------------------------------------------------------------- +Open Asset Import Library (assimp) +--------------------------------------------------------------------------- + +Copyright (c) 2006-2020, assimp team + + + +All rights reserved. + +Redistribution and use of this software in source and binary forms, +with or without modification, are permitted provided that the following +conditions are met: + +* Redistributions of source code must retain the above +copyright notice, this list of conditions and the +following disclaimer. + +* Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the +following disclaimer in the documentation and/or other +materials provided with the distribution. + +* Neither the name of the assimp team, nor the names of its +contributors may be used to endorse or promote products +derived from this software without specific prior +written permission of the assimp team. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +--------------------------------------------------------------------------- +*/ + +#include "UnitTestPCH.h" + +#include +#include +#include + + +using namespace Assimp; + + + +TEST(utMD3Importer, importWatercan) { + Assimp::Importer importer; + const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_NONBSD_DIR "/MD3/watercan.md3", aiProcess_ValidateDataStructure); + ASSERT_NE(nullptr, scene); +} + + +TEST(utMD3Importer, importWatercan_dmg) { + Assimp::Importer importer; + const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_NONBSD_DIR "/MD3/watercan_dmg.md3", aiProcess_ValidateDataStructure); + ASSERT_NE(nullptr, scene); +} + + +TEST(utMD3Importer, importEuropean_fnt_v2) { + Assimp::Importer importer; + const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_NONBSD_DIR "/MD3/q3root/models/mapobjects/kt_kubalwagon/european_fnt_v2.md3", aiProcess_ValidateDataStructure); + ASSERT_NE(nullptr, scene); +} From 2875f7fd5f04a5d541b481b867c1de1f636aa961 Mon Sep 17 00:00:00 2001 From: Turo Lamminen Date: Tue, 21 Jan 2020 13:45:40 +0200 Subject: [PATCH 21/85] Refactor XGL unit test --- test/unit/ImportExport/utXGLImportExport.cpp | 18 ++++++------------ 1 file changed, 6 insertions(+), 12 deletions(-) diff --git a/test/unit/ImportExport/utXGLImportExport.cpp b/test/unit/ImportExport/utXGLImportExport.cpp index 89e780e20..8f5c4bdfe 100644 --- a/test/unit/ImportExport/utXGLImportExport.cpp +++ b/test/unit/ImportExport/utXGLImportExport.cpp @@ -42,22 +42,16 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ #include "UnitTestPCH.h" -#include "AbstractImportExportBase.h" #include #include + using namespace Assimp; -class utXGLImportExport : public AbstractImportExportBase { -public: - virtual bool importerTest() { - Assimp::Importer importer; - const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/XGL/sample_official.xgl", 0); - return true; - return nullptr != scene; - } -}; -TEST_F(utXGLImportExport, importXGLFromFileTest) { - EXPECT_TRUE(importerTest()); +TEST(utXGLImporter, importSample_official) { + Assimp::Importer importer; + const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/XGL/sample_official.xgl", aiProcess_ValidateDataStructure); + ASSERT_NE(nullptr, scene); } + From 69284bdef931dc8134be93a0a629b10fcff7115a Mon Sep 17 00:00:00 2001 From: Turo Lamminen Date: Tue, 21 Jan 2020 13:50:11 +0200 Subject: [PATCH 22/85] Add more XGL unit tests --- test/unit/ImportExport/utXGLImportExport.cpp | 48 ++++++++++++++++++++ 1 file changed, 48 insertions(+) diff --git a/test/unit/ImportExport/utXGLImportExport.cpp b/test/unit/ImportExport/utXGLImportExport.cpp index 8f5c4bdfe..4cace2904 100644 --- a/test/unit/ImportExport/utXGLImportExport.cpp +++ b/test/unit/ImportExport/utXGLImportExport.cpp @@ -49,9 +49,57 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. using namespace Assimp; +TEST(utXGLImporter, importBCN_Epileptic) { + Assimp::Importer importer; + const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/XGL/BCN_Epileptic.zgl", aiProcess_ValidateDataStructure); + ASSERT_NE(nullptr, scene); +} + + +TEST(utXGLImporter, importCubesWithAlpha) { + Assimp::Importer importer; + const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/XGL/cubes_with_alpha.zgl", aiProcess_ValidateDataStructure); + ASSERT_NE(nullptr, scene); +} + + TEST(utXGLImporter, importSample_official) { Assimp::Importer importer; const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/XGL/sample_official.xgl", aiProcess_ValidateDataStructure); ASSERT_NE(nullptr, scene); } + +TEST(utXGLImporter, importSample_official_asxml) { + Assimp::Importer importer; + const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/XGL/sample_official_asxml.xml", aiProcess_ValidateDataStructure); + ASSERT_NE(nullptr, scene); +} + + +TEST(utXGLImporter, importSphereWithMatGloss) { + Assimp::Importer importer; + const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/XGL/sphere_with_mat_gloss_10pc.zgl", aiProcess_ValidateDataStructure); + ASSERT_NE(nullptr, scene); +} + + +TEST(utXGLImporter, importSpiderASCII) { + Assimp::Importer importer; + const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/XGL/Spider_ascii.zgl", aiProcess_ValidateDataStructure); + ASSERT_NE(nullptr, scene); +} + + +TEST(utXGLImporter, importWuson) { + Assimp::Importer importer; + const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/XGL/Wuson.zgl", aiProcess_ValidateDataStructure); + ASSERT_NE(nullptr, scene); +} + + +TEST(utXGLImporter, importWusonDXF) { + Assimp::Importer importer; + const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/XGL/wuson_dxf.zgl", aiProcess_ValidateDataStructure); + ASSERT_NE(nullptr, scene); +} From 461f9923a7a70425d21f51f6903758034254d572 Mon Sep 17 00:00:00 2001 From: Turo Lamminen Date: Tue, 21 Jan 2020 14:09:29 +0200 Subject: [PATCH 23/85] Refactor 3D import unit test --- test/unit/ut3DImportExport.cpp | 17 +++++------------ 1 file changed, 5 insertions(+), 12 deletions(-) diff --git a/test/unit/ut3DImportExport.cpp b/test/unit/ut3DImportExport.cpp index a3a3197cc..2d42d2829 100644 --- a/test/unit/ut3DImportExport.cpp +++ b/test/unit/ut3DImportExport.cpp @@ -42,23 +42,16 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ #include "UnitTestPCH.h" -#include "SceneDiffer.h" -#include "AbstractImportExportBase.h" #include #include + using namespace Assimp; -class ut3DImportExport : public AbstractImportExportBase { -public: - virtual bool importerTest() { - Assimp::Importer importer; - const aiScene *scene = importer.ReadFile( ASSIMP_TEST_MODELS_DIR "/3D/box_a.3d", aiProcess_ValidateDataStructure ); - return nullptr != scene; - } -}; -TEST_F( ut3DImportExport, import3DFromFileTest ) { - EXPECT_TRUE( importerTest() ); +TEST(ut3DImportExport, importBoxA) { + Assimp::Importer importer; + const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/3D/box_a.3d", aiProcess_ValidateDataStructure); + ASSERT_NE(nullptr, scene); } From 0b776f16cb19c68655e5a135b0300cf190a51ffb Mon Sep 17 00:00:00 2001 From: Turo Lamminen Date: Tue, 21 Jan 2020 14:22:29 +0200 Subject: [PATCH 24/85] Add more 3D unit tests --- test/unit/ut3DImportExport.cpp | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/test/unit/ut3DImportExport.cpp b/test/unit/ut3DImportExport.cpp index 2d42d2829..922d8c747 100644 --- a/test/unit/ut3DImportExport.cpp +++ b/test/unit/ut3DImportExport.cpp @@ -55,3 +55,17 @@ TEST(ut3DImportExport, importBoxA) { const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/3D/box_a.3d", aiProcess_ValidateDataStructure); ASSERT_NE(nullptr, scene); } + + +TEST(ut3DImportExport, importBoxD) { + Assimp::Importer importer; + const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/3D/box_d.3d", aiProcess_ValidateDataStructure); + ASSERT_NE(nullptr, scene); +} + + +TEST(ut3DImportExport, importBoxUC) { + Assimp::Importer importer; + const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/3D/box.uc", aiProcess_ValidateDataStructure); + ASSERT_NE(nullptr, scene); +} From c407892c9c3f20ab292a79b0cc4c31c292167fca Mon Sep 17 00:00:00 2001 From: Turo Lamminen Date: Tue, 21 Jan 2020 14:43:20 +0200 Subject: [PATCH 25/85] Refactor AC unit test --- test/unit/utACImportExport.cpp | 19 +++++++------------ 1 file changed, 7 insertions(+), 12 deletions(-) diff --git a/test/unit/utACImportExport.cpp b/test/unit/utACImportExport.cpp index 192de16a0..4bac8bd3b 100644 --- a/test/unit/utACImportExport.cpp +++ b/test/unit/utACImportExport.cpp @@ -42,23 +42,18 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ #include "UnitTestPCH.h" -#include "SceneDiffer.h" -#include "AbstractImportExportBase.h" #include #include + using namespace Assimp; -class utACImportExport : public AbstractImportExportBase { -public: - virtual bool importerTest() { - Assimp::Importer importer; - const aiScene *scene = importer.ReadFile( ASSIMP_TEST_MODELS_DIR "/AC/Wuson.ac", aiProcess_ValidateDataStructure ); - return nullptr != scene; - } -}; -TEST_F( utACImportExport, importACFromFileTest ) { - EXPECT_TRUE( importerTest() ); +TEST(utACImportExport, importWuson) { + Assimp::Importer importer; + const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/AC/Wuson.ac", aiProcess_ValidateDataStructure); + ASSERT_NE(nullptr, scene); } + + From d4d19b7062dd1f3d20dd58e3cc76322b09feb9cf Mon Sep 17 00:00:00 2001 From: Turo Lamminen Date: Tue, 21 Jan 2020 14:48:37 +0200 Subject: [PATCH 26/85] Add more AC unit tests --- test/unit/utACImportExport.cpp | 63 ++++++++++++++++++++++++++++++++++ 1 file changed, 63 insertions(+) diff --git a/test/unit/utACImportExport.cpp b/test/unit/utACImportExport.cpp index 4bac8bd3b..8a685056d 100644 --- a/test/unit/utACImportExport.cpp +++ b/test/unit/utACImportExport.cpp @@ -50,6 +50,63 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. using namespace Assimp; +TEST(utACImportExport, importClosedLine) { + Assimp::Importer importer; + const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/AC/closedLine.ac", aiProcess_ValidateDataStructure); + ASSERT_NE(nullptr, scene); +} + + +TEST(utACImportExport, importNoSurfaces) { + Assimp::Importer importer; + const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/AC/nosurfaces.ac", aiProcess_ValidateDataStructure); + ASSERT_NE(nullptr, scene); +} + + +TEST(utACImportExport, importOpenLine) { + Assimp::Importer importer; + const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/AC/openLine.ac", aiProcess_ValidateDataStructure); + ASSERT_NE(nullptr, scene); +} + + +TEST(utACImportExport, importSampleSubdiv) { + Assimp::Importer importer; + const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/AC/sample_subdiv.ac", aiProcess_ValidateDataStructure); + ASSERT_NE(nullptr, scene); +} + + +TEST(utACImportExport, importSphereWithLight) { + Assimp::Importer importer; + const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/AC/SphereWithLight.ac", aiProcess_ValidateDataStructure); + ASSERT_NE(nullptr, scene); +} + + +TEST(utACImportExport, importSphereWithLightUTF16) { + Assimp::Importer importer; + const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/AC/SphereWithLight_UTF16LE.ac", aiProcess_ValidateDataStructure); + // FIXME: this is probably wrong, loading the file should succeed + ASSERT_EQ(nullptr, scene); +} + + +TEST(utACImportExport, importSphereWithLightUTF8BOM) { + Assimp::Importer importer; + const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/AC/SphereWithLight_UTF8BOM.ac", aiProcess_ValidateDataStructure); + ASSERT_NE(nullptr, scene); +} + + +TEST(utACImportExport, importSphereWithLightUvScaling4X) { + Assimp::Importer importer; + const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/AC/SphereWithLightUvScaling4X.ac", aiProcess_ValidateDataStructure); + ASSERT_NE(nullptr, scene); +} + + TEST(utACImportExport, importWuson) { Assimp::Importer importer; const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/AC/Wuson.ac", aiProcess_ValidateDataStructure); @@ -57,3 +114,9 @@ TEST(utACImportExport, importWuson) { } +TEST(utACImportExport, testFormatDetection) { + Assimp::Importer importer; + const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/AC/TestFormatDetection", aiProcess_ValidateDataStructure); + ASSERT_NE(nullptr, scene); +} + From c2a74c61f40bbf0ea2a9464103fc746f3b039e8b Mon Sep 17 00:00:00 2001 From: Turo Lamminen Date: Tue, 21 Jan 2020 14:56:31 +0200 Subject: [PATCH 27/85] Add more X unit tests --- test/unit/utXImporterExporter.cpp | 77 +++++++++++++++++++++++++++++++ 1 file changed, 77 insertions(+) diff --git a/test/unit/utXImporterExporter.cpp b/test/unit/utXImporterExporter.cpp index 53e156bcc..15e19cf01 100644 --- a/test/unit/utXImporterExporter.cpp +++ b/test/unit/utXImporterExporter.cpp @@ -67,3 +67,80 @@ TEST_F( utXImporterExporter, heap_overflow_in_tokenizer ) { Assimp::Importer importer; EXPECT_NO_THROW( importer.ReadFile( ASSIMP_TEST_MODELS_DIR "/X/OV_GetNextToken", 0 ) ); } + + +TEST(utXImporter, importAnimTest) { + Assimp::Importer importer; + const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/X/anim_test.x", aiProcess_ValidateDataStructure); + ASSERT_NE(nullptr, scene); +} + + +TEST(utXImporter, importBCNEpileptic) { + Assimp::Importer importer; + const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/X/BCN_Epileptic.X", aiProcess_ValidateDataStructure); + ASSERT_NE(nullptr, scene); +} + + +TEST(utXImporter, importFromTrueSpaceBin32) { + Assimp::Importer importer; + const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/X/fromtruespace_bin32.x", aiProcess_ValidateDataStructure); + ASSERT_NE(nullptr, scene); +} + + +TEST(utXImporter, import_kwxport_test_cubewithvcolors) { + Assimp::Importer importer; + const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/X/kwxport_test_cubewithvcolors.x", aiProcess_ValidateDataStructure); + ASSERT_NE(nullptr, scene); +} + + +TEST(utXImporter, importTestCubeBinary) { + Assimp::Importer importer; + const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/X/test_cube_binary.x", aiProcess_ValidateDataStructure); + ASSERT_NE(nullptr, scene); +} + + +TEST(utXImporter, importTestCubeCompressed) { + Assimp::Importer importer; + const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/X/test_cube_compressed.x", aiProcess_ValidateDataStructure); + ASSERT_NE(nullptr, scene); +} + + +TEST(utXImporter, importTestCubeText) { + Assimp::Importer importer; + const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/X/test_cube_text.x", aiProcess_ValidateDataStructure); + ASSERT_NE(nullptr, scene); +} + + +TEST(utXImporter, importTestWuson) { + Assimp::Importer importer; + const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/X/Testwuson.X", aiProcess_ValidateDataStructure); + ASSERT_NE(nullptr, scene); +} + + +TEST(utXImporter, TestFormatDetection) { + Assimp::Importer importer; + const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_DIR "/X/TestFormatDetection", aiProcess_ValidateDataStructure); + ASSERT_NE(nullptr, scene); +} + + +#if 0 // FIXME: disabled because it leaks memory + + +TEST(utXImporter, importDwarf) { + Assimp::Importer importer; + const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_NONBSD_DIR "/X/dwarf.x", aiProcess_ValidateDataStructure); + ASSERT_NE(nullptr, scene); +} + + +#endif // 0 + From e27b54f504923530f6d302a6725c5008a568f555 Mon Sep 17 00:00:00 2001 From: Kim Kulling Date: Tue, 21 Jan 2020 19:39:29 +0100 Subject: [PATCH 28/85] Update HL1MDLLoader.cpp Fix review findings. --- code/MDL/HalfLife/HL1MDLLoader.cpp | 120 ++++++++++++++++++----------- 1 file changed, 76 insertions(+), 44 deletions(-) diff --git a/code/MDL/HalfLife/HL1MDLLoader.cpp b/code/MDL/HalfLife/HL1MDLLoader.cpp index edba58617..79c7abfc2 100644 --- a/code/MDL/HalfLife/HL1MDLLoader.cpp +++ b/code/MDL/HalfLife/HL1MDLLoader.cpp @@ -125,7 +125,7 @@ void HL1MDLLoader::release_resources() { anim_headers_ = nullptr; } - // Root has some children ndoes. so let's proceed them + // Root has some children nodes. so let's proceed them if (!rootnode_children_.empty()) { // Here, it means that the nodes were not added to the // scene root node. We still have to delete them. @@ -141,7 +141,6 @@ void HL1MDLLoader::release_resources() { // ------------------------------------------------------------------------------------------------ void HL1MDLLoader::load_file() { - try { header_ = (const Header_HL1 *)buffer_; validate_header(header_, false); @@ -151,8 +150,9 @@ void HL1MDLLoader::load_file() { load_texture_file(); - if (import_settings_.read_animations) + if (import_settings_.read_animations) { load_sequence_groups_files(); + } read_textures(); read_skins(); @@ -168,14 +168,17 @@ void HL1MDLLoader::load_file() { read_sequence_transitions(); } - if (import_settings_.read_attachments) + if (import_settings_.read_attachments) { read_attachments(); + } - if (import_settings_.read_hitboxes) + if (import_settings_.read_hitboxes) { read_hitboxes(); + } - if (import_settings_.read_bone_controllers) + if (import_settings_.read_bone_controllers) { read_bone_controllers(); + } read_global_info(); @@ -202,46 +205,58 @@ void HL1MDLLoader::load_file() { void HL1MDLLoader::validate_header(const Header_HL1 *header, bool is_texture_header) { if (is_texture_header) { // Every single Half-Life model is assumed to have at least one texture. - if (!header->numtextures) + if (!header->numtextures) { throw DeadlyImportError(MDL_HALFLIFE_LOG_HEADER "There are no textures in the file"); + } - if (header->numtextures > AI_MDL_HL1_MAX_TEXTURES) + if (header->numtextures > AI_MDL_HL1_MAX_TEXTURES) { log_warning_limit_exceeded(header->numtextures, "textures"); + } - if (header->numskinfamilies > AI_MDL_HL1_MAX_SKIN_FAMILIES) + if (header->numskinfamilies > AI_MDL_HL1_MAX_SKIN_FAMILIES) { log_warning_limit_exceeded(header->numskinfamilies, "skin families"); + } } else { // Every single Half-Life model is assumed to have at least one bodypart. - if (!header->numbodyparts) + if (!header->numbodyparts) { throw DeadlyImportError(MDL_HALFLIFE_LOG_HEADER "Model has no bodyparts"); + } // Every single Half-Life model is assumed to have at least one bone. - if (!header->numbones) + if (!header->numbones) { throw DeadlyImportError(MDL_HALFLIFE_LOG_HEADER "Model has no bones"); + } // Every single Half-Life model is assumed to have at least one sequence group, // which is the "default" sequence group. - if (!header->numseqgroups) + if (!header->numseqgroups) { throw DeadlyImportError(MDL_HALFLIFE_LOG_HEADER "Model has no sequence groups"); + } - if (header->numbodyparts > AI_MDL_HL1_MAX_BODYPARTS) + if (header->numbodyparts > AI_MDL_HL1_MAX_BODYPARTS) { log_warning_limit_exceeded(header->numbodyparts, "bodyparts"); + } - if (header->numbones > AI_MDL_HL1_MAX_BONES) + if (header->numbones > AI_MDL_HL1_MAX_BONES) { log_warning_limit_exceeded(header->numbones, "bones"); + } - if (header->numbonecontrollers > AI_MDL_HL1_MAX_BONE_CONTROLLERS) + if (header->numbonecontrollers > AI_MDL_HL1_MAX_BONE_CONTROLLERS) { log_warning_limit_exceeded(header->numbonecontrollers, "bone controllers"); + } - if (header->numseq > AI_MDL_HL1_MAX_SEQUENCES) + if (header->numseq > AI_MDL_HL1_MAX_SEQUENCES) { log_warning_limit_exceeded(header->numseq, "sequences"); + } - if (header->numseqgroups > AI_MDL_HL1_MAX_SEQUENCE_GROUPS) + if (header->numseqgroups > AI_MDL_HL1_MAX_SEQUENCE_GROUPS) { log_warning_limit_exceeded(header->numseqgroups, "sequence groups"); + } - if (header->numattachments > AI_MDL_HL1_MAX_ATTACHMENTS) + if (header->numattachments > AI_MDL_HL1_MAX_ATTACHMENTS) { log_warning_limit_exceeded(header->numattachments, "attachments"); + } } } @@ -273,8 +288,7 @@ void HL1MDLLoader::load_texture_file() { load_file_into_buffer(texture_file_path, texture_buffer_); } else { - /* Model has no external texture file. This means the texture - is stored inside the main MDL file. */ + // Model has no external texture file. This means the texture is stored inside the main MDL file. texture_buffer_ = const_cast(buffer_); } @@ -301,16 +315,17 @@ void HL1MDLLoader::load_texture_file() { */ void HL1MDLLoader::load_sequence_groups_files() { - if (header_->numseqgroups <= 1) + if (header_->numseqgroups <= 1) { return; + } num_sequence_groups_ = header_->numseqgroups; anim_buffers_ = new unsigned char *[num_sequence_groups_]; anim_headers_ = new SequenceHeader_HL1 *[num_sequence_groups_]; for (int i = 0; i < num_sequence_groups_; ++i) { - anim_buffers_[i] = NULL; - anim_headers_[i] = NULL; + anim_buffers_[i] = nullptr; + anim_headers_[i] = nullptr; } std::string file_path_without_extension = @@ -344,21 +359,24 @@ void HL1MDLLoader::read_texture(const Texture_HL1 *ptexture, aiColor3D &last_palette_color) { int outwidth, outheight; int i, j; - int row1[256], row2[256], col1[256], col2[256]; + static size_t BuffenLen = 256; + int row1[BuffenLen], row2[BuffenLen], col1[BuffenLen], col2[BuffenLen]; unsigned char *pix1, *pix2, *pix3, *pix4; // convert texture to power of 2 for (outwidth = 1; outwidth < ptexture->width; outwidth <<= 1) ; - if (outwidth > 256) - outwidth = 256; + if (outwidth > BuffenLen) { + outwidth = BuffenLen; + } for (outheight = 1; outheight < ptexture->height; outheight <<= 1) ; - if (outheight > 256) - outheight = 256; + if (outheight > BuffenLen) { + outheight = BuffenLen; + } pResult->mFilename = ptexture->name; pResult->mWidth = outwidth; @@ -457,8 +475,9 @@ void HL1MDLLoader::read_textures() { // ------------------------------------------------------------------------------------------------ void HL1MDLLoader::read_skins() { // Read skins, if any. - if (texture_header_->numskinfamilies <= 1) + if (texture_header_->numskinfamilies <= 1) { return; + } // Pointer to base texture index. short *default_skin_ptr = (short *)((uint8_t *)texture_header_ + texture_header_->skinindex); @@ -482,8 +501,9 @@ void HL1MDLLoader::read_bones() { const Bone_HL1 *pbone = (const Bone_HL1 *)((uint8_t *)header_ + header_->boneindex); std::vector unique_bones_names(header_->numbones); - for (int i = 0; i < header_->numbones; ++i) + for (int i = 0; i < header_->numbones; ++i) { unique_bones_names[i] = pbone[i].name; + } // Ensure bones have unique names. unique_name_generator_.set_template_name("Bone"); @@ -600,14 +620,17 @@ void HL1MDLLoader::read_meshes() { } // Display limit infos. - if (total_verts > AI_MDL_HL1_MAX_VERTICES) + if (total_verts > AI_MDL_HL1_MAX_VERTICES) { log_warning_limit_exceeded(total_verts, "vertices"); + } - if (scene_->mNumMeshes > AI_MDL_HL1_MAX_MESHES) + if (scene_->mNumMeshes > AI_MDL_HL1_MAX_MESHES) { log_warning_limit_exceeded(scene_->mNumMeshes, "meshes"); + } - if (total_models_ > AI_MDL_HL1_MAX_MODELS) + if (total_models_ > AI_MDL_HL1_MAX_MODELS) { log_warning_limit_exceeded(total_models_, "models"); + } // Ensure bodyparts have unique names. unique_name_generator_.set_template_name("Bodypart"); @@ -934,8 +957,9 @@ void HL1MDLLoader::read_meshes() { } } - if (total_triangles > AI_MDL_HL1_MAX_TRIANGLES) + if (total_triangles > AI_MDL_HL1_MAX_TRIANGLES) { log_warning_limit_exceeded(total_triangles, "triangles"); + } } // ------------------------------------------------------------------------------------------------ @@ -976,10 +1000,11 @@ void HL1MDLLoader::read_animations() { for (int sequence = 0; sequence < header_->numseq; ++sequence, ++pseqdesc) { pseqgroup = (const SequenceGroup_HL1 *)((uint8_t *)header_ + header_->seqgroupindex) + pseqdesc->seqgroup; - if (pseqdesc->seqgroup == 0) + if (pseqdesc->seqgroup == 0) { panim = (const AnimValueOffset_HL1 *)((uint8_t *)header_ + pseqgroup->unused2 + pseqdesc->animindex); - else + } else { panim = (const AnimValueOffset_HL1 *)((uint8_t *)anim_headers_[pseqdesc->seqgroup] + pseqdesc->animindex); + } for (int blend = 0; blend < pseqdesc->numblends; ++blend, ++scene_animations_ptr) { @@ -1052,8 +1077,9 @@ void HL1MDLLoader::read_sequence_groups_info() { const SequenceGroup_HL1 *pseqgroup = (const SequenceGroup_HL1 *)((uint8_t *)header_ + header_->seqgroupindex); unique_sequence_groups_names_.resize(header_->numseqgroups); - for (int i = 0; i < header_->numseqgroups; ++i) + for (int i = 0; i < header_->numseqgroups; ++i) { unique_sequence_groups_names_[i] = pseqgroup[i].label; + } // Ensure sequence groups have unique names. unique_name_generator_.set_template_name("SequenceGroup"); @@ -1076,8 +1102,9 @@ void HL1MDLLoader::read_sequence_groups_info() { // ------------------------------------------------------------------------------------------------ void HL1MDLLoader::read_sequence_infos() { - if (!header_->numseq) + if (!header_->numseq) { return; + } const SequenceDesc_HL1 *pseqdesc = (const SequenceDesc_HL1 *)((uint8_t *)header_ + header_->seqindex); @@ -1180,8 +1207,9 @@ void HL1MDLLoader::read_sequence_infos() { // ------------------------------------------------------------------------------------------------ void HL1MDLLoader::read_sequence_transitions() { - if (!header_->numtransitions) + if (!header_->numtransitions) { return; + } // Read sequence transition graph. aiNode *transition_graph_node = new aiNode(AI_MDL_HL1_NODE_SEQUENCE_TRANSITION_GRAPH); @@ -1194,8 +1222,9 @@ void HL1MDLLoader::read_sequence_transitions() { } void HL1MDLLoader::read_attachments() { - if (!header_->numattachments) + if (!header_->numattachments) { return; + } const Attachment_HL1 *pattach = (const Attachment_HL1 *)((uint8_t *)header_ + header_->attachmentindex); @@ -1217,8 +1246,9 @@ void HL1MDLLoader::read_attachments() { // ------------------------------------------------------------------------------------------------ void HL1MDLLoader::read_hitboxes() { - if (!header_->numhitboxes) + if (!header_->numhitboxes) { return; + } const Hitbox_HL1 *phitbox = (const Hitbox_HL1 *)((uint8_t *)header_ + header_->hitboxindex); @@ -1243,8 +1273,9 @@ void HL1MDLLoader::read_hitboxes() { // ------------------------------------------------------------------------------------------------ void HL1MDLLoader::read_bone_controllers() { - if (!header_->numbonecontrollers) + if (!header_->numbonecontrollers) { return; + } const BoneController_HL1 *pbonecontroller = (const BoneController_HL1 *)((uint8_t *)header_ + header_->bonecontrollerindex); @@ -1323,10 +1354,11 @@ void HL1MDLLoader::extract_anim_value( } // Bah, missing blend! - if (panimvalue->num.valid > k) + if (panimvalue->num.valid > k) { value = panimvalue[k + 1].value * bone_scale; - else + } else { value = panimvalue[panimvalue->num.valid].value * bone_scale; + } } // ------------------------------------------------------------------------------------------------ From 6a5ab0381d0454422f98aa653d8c06b38f592a78 Mon Sep 17 00:00:00 2001 From: Kim Kulling Date: Wed, 22 Jan 2020 09:46:37 +0100 Subject: [PATCH 29/85] Update HL1MDLLoader.cpp Add missing const --- code/MDL/HalfLife/HL1MDLLoader.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/MDL/HalfLife/HL1MDLLoader.cpp b/code/MDL/HalfLife/HL1MDLLoader.cpp index 79c7abfc2..52a5a87e7 100644 --- a/code/MDL/HalfLife/HL1MDLLoader.cpp +++ b/code/MDL/HalfLife/HL1MDLLoader.cpp @@ -359,7 +359,7 @@ void HL1MDLLoader::read_texture(const Texture_HL1 *ptexture, aiColor3D &last_palette_color) { int outwidth, outheight; int i, j; - static size_t BuffenLen = 256; + static const size_t BuffenLen = 256; int row1[BuffenLen], row2[BuffenLen], col1[BuffenLen], col2[BuffenLen]; unsigned char *pix1, *pix2, *pix3, *pix4; From 3cf7d955f32f014ccaa72d6c0be8ced47e7d07b2 Mon Sep 17 00:00:00 2001 From: Kim Kulling Date: Wed, 22 Jan 2020 10:06:40 +0100 Subject: [PATCH 30/85] Update HL1MDLLoader.cpp Fix compiler warning --- code/MDL/HalfLife/HL1MDLLoader.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/MDL/HalfLife/HL1MDLLoader.cpp b/code/MDL/HalfLife/HL1MDLLoader.cpp index 52a5a87e7..f662c7eec 100644 --- a/code/MDL/HalfLife/HL1MDLLoader.cpp +++ b/code/MDL/HalfLife/HL1MDLLoader.cpp @@ -374,7 +374,7 @@ void HL1MDLLoader::read_texture(const Texture_HL1 *ptexture, for (outheight = 1; outheight < ptexture->height; outheight <<= 1) ; - if (outheight > BuffenLen) { + if (static_cast(outheight) > BuffenLen) { outheight = BuffenLen; } From 288a638a835ce3727d6c1c939b461e2956b5284d Mon Sep 17 00:00:00 2001 From: Turo Lamminen Date: Wed, 22 Jan 2020 12:19:05 +0200 Subject: [PATCH 31/85] X: Only create animation key arrays if there are some keys --- code/X/XFileImporter.cpp | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/code/X/XFileImporter.cpp b/code/X/XFileImporter.cpp index 122033b08..ff4ee1378 100644 --- a/code/X/XFileImporter.cpp +++ b/code/X/XFileImporter.cpp @@ -513,6 +513,7 @@ void XFileImporter::CreateAnimations( aiScene* pScene, const XFile::Scene* pData } else { // separate key sequences for position, rotation, scaling nbone->mNumPositionKeys = (unsigned int)bone->mPosKeys.size(); + if (nbone->mNumPositionKeys != 0) { nbone->mPositionKeys = new aiVectorKey[nbone->mNumPositionKeys]; for( unsigned int c = 0; c < nbone->mNumPositionKeys; ++c ) { aiVector3D pos = bone->mPosKeys[c].mValue; @@ -520,9 +521,11 @@ void XFileImporter::CreateAnimations( aiScene* pScene, const XFile::Scene* pData nbone->mPositionKeys[c].mTime = bone->mPosKeys[c].mTime; nbone->mPositionKeys[c].mValue = pos; } + } // rotation nbone->mNumRotationKeys = (unsigned int)bone->mRotKeys.size(); + if (nbone->mNumRotationKeys != 0) { nbone->mRotationKeys = new aiQuatKey[nbone->mNumRotationKeys]; for( unsigned int c = 0; c < nbone->mNumRotationKeys; ++c ) { aiMatrix3x3 rotmat = bone->mRotKeys[c].mValue.GetMatrix(); @@ -531,12 +534,15 @@ void XFileImporter::CreateAnimations( aiScene* pScene, const XFile::Scene* pData nbone->mRotationKeys[c].mValue = aiQuaternion( rotmat); nbone->mRotationKeys[c].mValue.w *= -1.0f; // needs quat inversion } + } // scaling nbone->mNumScalingKeys = (unsigned int)bone->mScaleKeys.size(); + if (nbone->mNumScalingKeys != 0) { nbone->mScalingKeys = new aiVectorKey[nbone->mNumScalingKeys]; for( unsigned int c = 0; c < nbone->mNumScalingKeys; c++) nbone->mScalingKeys[c] = bone->mScaleKeys[c]; + } // longest lasting key sequence determines duration if( bone->mPosKeys.size() > 0) From aee292e367658c5410d0a61a6ec1a4825c93eff6 Mon Sep 17 00:00:00 2001 From: Turo Lamminen Date: Wed, 22 Jan 2020 12:20:34 +0200 Subject: [PATCH 32/85] Whitespace --- code/X/XFileImporter.cpp | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/code/X/XFileImporter.cpp b/code/X/XFileImporter.cpp index ff4ee1378..70c6869b3 100644 --- a/code/X/XFileImporter.cpp +++ b/code/X/XFileImporter.cpp @@ -514,34 +514,34 @@ void XFileImporter::CreateAnimations( aiScene* pScene, const XFile::Scene* pData // separate key sequences for position, rotation, scaling nbone->mNumPositionKeys = (unsigned int)bone->mPosKeys.size(); if (nbone->mNumPositionKeys != 0) { - nbone->mPositionKeys = new aiVectorKey[nbone->mNumPositionKeys]; - for( unsigned int c = 0; c < nbone->mNumPositionKeys; ++c ) { - aiVector3D pos = bone->mPosKeys[c].mValue; + nbone->mPositionKeys = new aiVectorKey[nbone->mNumPositionKeys]; + for( unsigned int c = 0; c < nbone->mNumPositionKeys; ++c ) { + aiVector3D pos = bone->mPosKeys[c].mValue; - nbone->mPositionKeys[c].mTime = bone->mPosKeys[c].mTime; - nbone->mPositionKeys[c].mValue = pos; - } + nbone->mPositionKeys[c].mTime = bone->mPosKeys[c].mTime; + nbone->mPositionKeys[c].mValue = pos; + } } // rotation nbone->mNumRotationKeys = (unsigned int)bone->mRotKeys.size(); if (nbone->mNumRotationKeys != 0) { - nbone->mRotationKeys = new aiQuatKey[nbone->mNumRotationKeys]; - for( unsigned int c = 0; c < nbone->mNumRotationKeys; ++c ) { - aiMatrix3x3 rotmat = bone->mRotKeys[c].mValue.GetMatrix(); + nbone->mRotationKeys = new aiQuatKey[nbone->mNumRotationKeys]; + for( unsigned int c = 0; c < nbone->mNumRotationKeys; ++c ) { + aiMatrix3x3 rotmat = bone->mRotKeys[c].mValue.GetMatrix(); - nbone->mRotationKeys[c].mTime = bone->mRotKeys[c].mTime; - nbone->mRotationKeys[c].mValue = aiQuaternion( rotmat); - nbone->mRotationKeys[c].mValue.w *= -1.0f; // needs quat inversion - } + nbone->mRotationKeys[c].mTime = bone->mRotKeys[c].mTime; + nbone->mRotationKeys[c].mValue = aiQuaternion( rotmat); + nbone->mRotationKeys[c].mValue.w *= -1.0f; // needs quat inversion + } } // scaling nbone->mNumScalingKeys = (unsigned int)bone->mScaleKeys.size(); if (nbone->mNumScalingKeys != 0) { - nbone->mScalingKeys = new aiVectorKey[nbone->mNumScalingKeys]; - for( unsigned int c = 0; c < nbone->mNumScalingKeys; c++) - nbone->mScalingKeys[c] = bone->mScaleKeys[c]; + nbone->mScalingKeys = new aiVectorKey[nbone->mNumScalingKeys]; + for( unsigned int c = 0; c < nbone->mNumScalingKeys; c++) + nbone->mScalingKeys[c] = bone->mScaleKeys[c]; } // longest lasting key sequence determines duration From 1edb52c0de4006f7f0383670ef12aacedfd4edeb Mon Sep 17 00:00:00 2001 From: Turo Lamminen Date: Wed, 22 Jan 2020 12:20:49 +0200 Subject: [PATCH 33/85] ScenePreprocessor: Assert some properties about animation channels --- code/Common/ScenePreprocessor.cpp | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/code/Common/ScenePreprocessor.cpp b/code/Common/ScenePreprocessor.cpp index 432a3d766..a47053de4 100644 --- a/code/Common/ScenePreprocessor.cpp +++ b/code/Common/ScenePreprocessor.cpp @@ -217,6 +217,7 @@ void ScenePreprocessor::ProcessAnimation (aiAnimation* anim) // No rotation keys? Generate a dummy track if (!channel->mNumRotationKeys) { + ai_assert(!channel->mRotationKeys); channel->mNumRotationKeys = 1; channel->mRotationKeys = new aiQuatKey[1]; aiQuatKey& q = channel->mRotationKeys[0]; @@ -225,10 +226,13 @@ void ScenePreprocessor::ProcessAnimation (aiAnimation* anim) q.mValue = rotation; ASSIMP_LOG_DEBUG("ScenePreprocessor: Dummy rotation track has been generated"); + } else { + ai_assert(channel->mRotationKeys); } // No scaling keys? Generate a dummy track if (!channel->mNumScalingKeys) { + ai_assert(!channel->mScalingKeys); channel->mNumScalingKeys = 1; channel->mScalingKeys = new aiVectorKey[1]; aiVectorKey& q = channel->mScalingKeys[0]; @@ -237,10 +241,13 @@ void ScenePreprocessor::ProcessAnimation (aiAnimation* anim) q.mValue = scaling; ASSIMP_LOG_DEBUG("ScenePreprocessor: Dummy scaling track has been generated"); + } else { + ai_assert(channel->mScalingKeys); } // No position keys? Generate a dummy track if (!channel->mNumPositionKeys) { + ai_assert(!channel->mPositionKeys); channel->mNumPositionKeys = 1; channel->mPositionKeys = new aiVectorKey[1]; aiVectorKey& q = channel->mPositionKeys[0]; @@ -249,6 +256,8 @@ void ScenePreprocessor::ProcessAnimation (aiAnimation* anim) q.mValue = position; ASSIMP_LOG_DEBUG("ScenePreprocessor: Dummy position track has been generated"); + } else { + ai_assert(channel->mPositionKeys); } } } From a74e13d6b27a08f314e701eaca910a3f5e247802 Mon Sep 17 00:00:00 2001 From: Turo Lamminen Date: Wed, 22 Jan 2020 12:22:08 +0200 Subject: [PATCH 34/85] Re-enable dwarf.x import test --- test/unit/utXImporterExporter.cpp | 7 ------- 1 file changed, 7 deletions(-) diff --git a/test/unit/utXImporterExporter.cpp b/test/unit/utXImporterExporter.cpp index 15e19cf01..2c6830978 100644 --- a/test/unit/utXImporterExporter.cpp +++ b/test/unit/utXImporterExporter.cpp @@ -132,15 +132,8 @@ TEST(utXImporter, TestFormatDetection) { } -#if 0 // FIXME: disabled because it leaks memory - - TEST(utXImporter, importDwarf) { Assimp::Importer importer; const aiScene *scene = importer.ReadFile(ASSIMP_TEST_MODELS_NONBSD_DIR "/X/dwarf.x", aiProcess_ValidateDataStructure); ASSERT_NE(nullptr, scene); } - - -#endif // 0 - From 2ebafe06938b9e06bae67f793c8ca36fc0f80457 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lo=C3=AFc?= Date: Wed, 22 Jan 2020 12:40:57 +0100 Subject: [PATCH 35/85] Fix version revision formatting in glTF metadata --- code/glTF/glTFExporter.cpp | 2 +- code/glTF2/glTF2Exporter.cpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/code/glTF/glTFExporter.cpp b/code/glTF/glTFExporter.cpp index 4772c7dc6..cf891203a 100644 --- a/code/glTF/glTFExporter.cpp +++ b/code/glTF/glTFExporter.cpp @@ -869,7 +869,7 @@ void glTFExporter::ExportMetadata() asset.version = "1.0"; char buffer[256]; - ai_snprintf(buffer, 256, "Open Asset Import Library (assimp v%d.%d.%d)", + ai_snprintf(buffer, 256, "Open Asset Import Library (assimp v%d.%d.%x)", aiGetVersionMajor(), aiGetVersionMinor(), aiGetVersionRevision()); asset.generator = buffer; diff --git a/code/glTF2/glTF2Exporter.cpp b/code/glTF2/glTF2Exporter.cpp index ee40694f9..16ba69b9f 100644 --- a/code/glTF2/glTF2Exporter.cpp +++ b/code/glTF2/glTF2Exporter.cpp @@ -991,7 +991,7 @@ void glTF2Exporter::ExportMetadata() asset.version = "2.0"; char buffer[256]; - ai_snprintf(buffer, 256, "Open Asset Import Library (assimp v%d.%d.%d)", + ai_snprintf(buffer, 256, "Open Asset Import Library (assimp v%d.%d.%x)", aiGetVersionMajor(), aiGetVersionMinor(), aiGetVersionRevision()); asset.generator = buffer; From ff8a924ffbde41c2cc8054fc030aacaed92b4eac Mon Sep 17 00:00:00 2001 From: Marc-Antoine Lortie Date: Wed, 22 Jan 2020 09:09:39 -0500 Subject: [PATCH 36/85] [HL1 MDL] Removed downscale for textures with dimensions greater than 256. --- code/MDL/HalfLife/HL1MDLLoader.cpp | 60 ++++++------------------------ 1 file changed, 11 insertions(+), 49 deletions(-) diff --git a/code/MDL/HalfLife/HL1MDLLoader.cpp b/code/MDL/HalfLife/HL1MDLLoader.cpp index 90a1479a3..eff5b80b7 100644 --- a/code/MDL/HalfLife/HL1MDLLoader.cpp +++ b/code/MDL/HalfLife/HL1MDLLoader.cpp @@ -316,36 +316,14 @@ void HL1MDLLoader::load_sequence_groups_files() { } // ------------------------------------------------------------------------------------------------ -/** @brief Read an MDL texture. -* -* @note This method is taken from HL1 source code. -* source: file: studio_utils.c -* function(s): UploadTexture -*/ +// Read an MDL texture. void HL1MDLLoader::read_texture(const Texture_HL1 *ptexture, uint8_t *data, uint8_t *pal, aiTexture *pResult, aiColor3D &last_palette_color) { - int outwidth, outheight; - int i, j; - int row1[256], row2[256], col1[256], col2[256]; - unsigned char *pix1, *pix2, *pix3, *pix4; - - // convert texture to power of 2 - for (outwidth = 1; outwidth < ptexture->width; outwidth <<= 1) - ; - - if (outwidth > 256) - outwidth = 256; - - for (outheight = 1; outheight < ptexture->height; outheight <<= 1) - ; - - if (outheight > 256) - outheight = 256; pResult->mFilename = ptexture->name; - pResult->mWidth = outwidth; - pResult->mHeight = outheight; + pResult->mWidth = static_cast(ptexture->width); + pResult->mHeight = static_cast(ptexture->height); pResult->achFormatHint[0] = 'b'; pResult->achFormatHint[1] = 'g'; pResult->achFormatHint[2] = 'r'; @@ -356,31 +334,15 @@ void HL1MDLLoader::read_texture(const Texture_HL1 *ptexture, pResult->achFormatHint[7] = '8'; pResult->achFormatHint[8] = '\0'; - aiTexel *out = pResult->pcData = new aiTexel[outwidth * outheight]; + const size_t num_pixels = pResult->mWidth * pResult->mHeight; + aiTexel *out = pResult->pcData = new aiTexel[num_pixels]; - for (i = 0; i < outwidth; i++) { - col1[i] = (int)((i + 0.25) * (ptexture->width / (float)outwidth)); - col2[i] = (int)((i + 0.75) * (ptexture->width / (float)outwidth)); - } - - for (i = 0; i < outheight; i++) { - row1[i] = (int)((i + 0.25) * (ptexture->height / (float)outheight)) * ptexture->width; - row2[i] = (int)((i + 0.75) * (ptexture->height / (float)outheight)) * ptexture->width; - } - - // scale down and convert to 32bit RGB - for (i = 0; i < outheight; i++) { - for (j = 0; j < outwidth; j++, out++) { - pix1 = &pal[data[row1[i] + col1[j]] * 3]; - pix2 = &pal[data[row1[i] + col2[j]] * 3]; - pix3 = &pal[data[row2[i] + col1[j]] * 3]; - pix4 = &pal[data[row2[i] + col2[j]] * 3]; - - out->r = (pix1[0] + pix2[0] + pix3[0] + pix4[0]) >> 2; - out->g = (pix1[1] + pix2[1] + pix3[1] + pix4[1]) >> 2; - out->b = (pix1[2] + pix2[2] + pix3[2] + pix4[2]) >> 2; - out->a = 0xFF; - } + // Convert indexed 8 bit to 32 bit RGBA. + for (size_t i = 0; i < num_pixels; ++i, ++out) { + out->r = pal[data[i] * 3]; + out->g = pal[data[i] * 3 + 1]; + out->b = pal[data[i] * 3 + 2]; + out->a = 255; } // Get the last palette color. From 3e8a33aae3c65432213914b561fcf855477ba9e2 Mon Sep 17 00:00:00 2001 From: Marc-Antoine Lortie Date: Wed, 22 Jan 2020 10:02:38 -0500 Subject: [PATCH 37/85] Fixed wrong texture format used in HL1 MDL loader. --- code/MDL/HalfLife/HL1MDLLoader.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/MDL/HalfLife/HL1MDLLoader.cpp b/code/MDL/HalfLife/HL1MDLLoader.cpp index 90a1479a3..cc8d004f2 100644 --- a/code/MDL/HalfLife/HL1MDLLoader.cpp +++ b/code/MDL/HalfLife/HL1MDLLoader.cpp @@ -346,9 +346,9 @@ void HL1MDLLoader::read_texture(const Texture_HL1 *ptexture, pResult->mFilename = ptexture->name; pResult->mWidth = outwidth; pResult->mHeight = outheight; - pResult->achFormatHint[0] = 'b'; + pResult->achFormatHint[0] = 'r'; pResult->achFormatHint[1] = 'g'; - pResult->achFormatHint[2] = 'r'; + pResult->achFormatHint[2] = 'b'; pResult->achFormatHint[3] = 'a'; pResult->achFormatHint[4] = '8'; pResult->achFormatHint[5] = '8'; From 5b09758f15716ec81f271465c8d7c488170b3257 Mon Sep 17 00:00:00 2001 From: Kim Kulling Date: Thu, 23 Jan 2020 15:04:07 +0100 Subject: [PATCH 38/85] Update HL1MDLLoader.cpp Fix compiler warning --- code/MDL/HalfLife/HL1MDLLoader.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/MDL/HalfLife/HL1MDLLoader.cpp b/code/MDL/HalfLife/HL1MDLLoader.cpp index f662c7eec..ad4db204f 100644 --- a/code/MDL/HalfLife/HL1MDLLoader.cpp +++ b/code/MDL/HalfLife/HL1MDLLoader.cpp @@ -367,7 +367,7 @@ void HL1MDLLoader::read_texture(const Texture_HL1 *ptexture, for (outwidth = 1; outwidth < ptexture->width; outwidth <<= 1) ; - if (outwidth > BuffenLen) { + if ((size_t)outwidth > BuffenLen) { outwidth = BuffenLen; } From e5698312536cfc3bd3437e465796ab1439c8b8e4 Mon Sep 17 00:00:00 2001 From: Kim Kulling Date: Thu, 23 Jan 2020 16:20:34 +0100 Subject: [PATCH 39/85] Update HL1MDLLoader.cpp Fix possible x64 issue. --- code/MDL/HalfLife/HL1MDLLoader.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/MDL/HalfLife/HL1MDLLoader.cpp b/code/MDL/HalfLife/HL1MDLLoader.cpp index 0e44ff3ac..06ffd7801 100644 --- a/code/MDL/HalfLife/HL1MDLLoader.cpp +++ b/code/MDL/HalfLife/HL1MDLLoader.cpp @@ -367,7 +367,7 @@ void HL1MDLLoader::read_texture(const Texture_HL1 *ptexture, for (outwidth = 1; outwidth < ptexture->width; outwidth <<= 1) ; - if ((size_t)outwidth > BuffenLen) { + if ( outwidth > static_cast(BuffenLen)) { outwidth = BuffenLen; } From 770c82262183c169255f2f1c5a3989fbf02c15b3 Mon Sep 17 00:00:00 2001 From: Marc-Antoine Lortie Date: Thu, 23 Jan 2020 15:26:49 -0500 Subject: [PATCH 40/85] Updated places to achFormatHint referencing array size. --- code/Assbin/AssbinExporter.cpp | 3 ++- code/Assbin/AssbinLoader.cpp | 2 +- code/PostProcessing/ValidateDataStructure.cpp | 2 +- include/assimp/texture.h | 3 +-- tools/assimp_cmd/CompareDump.cpp | 4 ++++ tools/assimp_cmd/WriteDumb.cpp | 3 ++- 6 files changed, 11 insertions(+), 6 deletions(-) diff --git a/code/Assbin/AssbinExporter.cpp b/code/Assbin/AssbinExporter.cpp index aa0c246be..86a42c400 100644 --- a/code/Assbin/AssbinExporter.cpp +++ b/code/Assbin/AssbinExporter.cpp @@ -413,7 +413,8 @@ protected: Write(&chunk,tex->mWidth); Write(&chunk,tex->mHeight); - chunk.Write( tex->achFormatHint, sizeof(char), 4 ); + // Write the texture format, but don't include the null terminator. + chunk.Write( tex->achFormatHint, sizeof(char), HINTMAXTEXTURELEN - 1 ); if(!shortened) { if (!tex->mHeight) { diff --git a/code/Assbin/AssbinLoader.cpp b/code/Assbin/AssbinLoader.cpp index 8a9751018..71e35cb6a 100644 --- a/code/Assbin/AssbinLoader.cpp +++ b/code/Assbin/AssbinLoader.cpp @@ -535,7 +535,7 @@ void AssbinImporter::ReadBinaryTexture(IOStream * stream, aiTexture* tex) { tex->mWidth = Read(stream); tex->mHeight = Read(stream); - stream->Read( tex->achFormatHint, sizeof(char), 4 ); + stream->Read( tex->achFormatHint, sizeof(char), HINTMAXTEXTURELEN - 1 ); if(!shortened) { if (!tex->mHeight) { diff --git a/code/PostProcessing/ValidateDataStructure.cpp b/code/PostProcessing/ValidateDataStructure.cpp index 36c33b29c..a812efb0b 100644 --- a/code/PostProcessing/ValidateDataStructure.cpp +++ b/code/PostProcessing/ValidateDataStructure.cpp @@ -798,7 +798,7 @@ void ValidateDSProcess::Validate( const aiTexture* pTexture) if (!pTexture->mWidth) { ReportError("aiTexture::mWidth is zero (compressed texture)"); } - if ('\0' != pTexture->achFormatHint[3]) { + if ('\0' != pTexture->achFormatHint[HINTMAXTEXTURELEN - 1]) { ReportWarning("aiTexture::achFormatHint must be zero-terminated"); } else if ('.' == pTexture->achFormatHint[0]) { diff --git a/include/assimp/texture.h b/include/assimp/texture.h index 274185a30..5a4486431 100644 --- a/include/assimp/texture.h +++ b/include/assimp/texture.h @@ -207,8 +207,7 @@ struct aiTexture { , mHeight(0) , pcData(nullptr) , mFilename() { - achFormatHint[0] = achFormatHint[1] = 0; - achFormatHint[2] = achFormatHint[3] = 0; + memset(achFormatHint, 0, sizeof(achFormatHint)); } // Destruction diff --git a/tools/assimp_cmd/CompareDump.cpp b/tools/assimp_cmd/CompareDump.cpp index 3250c528a..86a9cfe4c 100644 --- a/tools/assimp_cmd/CompareDump.cpp +++ b/tools/assimp_cmd/CompareDump.cpp @@ -800,6 +800,10 @@ void CompareOnTheFlyTexture(comparer_context& comp) { comp.cmp("achFormatHint[1]"); comp.cmp("achFormatHint[2]"); comp.cmp("achFormatHint[3]"); + comp.cmp("achFormatHint[4]"); + comp.cmp("achFormatHint[5]"); + comp.cmp("achFormatHint[6]"); + comp.cmp("achFormatHint[7]"); } //////////////////////////////////////////////////////////////////////////////////////////////////// diff --git a/tools/assimp_cmd/WriteDumb.cpp b/tools/assimp_cmd/WriteDumb.cpp index 5b5dfd2a1..b4c22a439 100644 --- a/tools/assimp_cmd/WriteDumb.cpp +++ b/tools/assimp_cmd/WriteDumb.cpp @@ -312,7 +312,8 @@ uint32_t WriteBinaryTexture(const aiTexture* tex) len += Write(tex->mWidth); len += Write(tex->mHeight); - len += static_cast(fwrite(tex->achFormatHint,1,4,out)); + // Write the texture format, but don't include the null terminator. + len += static_cast(fwrite(tex->achFormatHint,sizeof(char),HINTMAXTEXTURELEN - 1,out)); if(!shortened) { if (!tex->mHeight) { From 48bb2978afa17c95d11df75701535e3ab0ed4266 Mon Sep 17 00:00:00 2001 From: Marc-Antoine Lortie Date: Fri, 24 Jan 2020 13:14:37 -0500 Subject: [PATCH 41/85] Added support to load HL1 MDL external texture files directly. --- code/MDL/HalfLife/HL1MDLLoader.cpp | 35 +++++++++++++----------- test/unit/ImportExport/utMDLImporter.cpp | 15 ++++++++-- 2 files changed, 32 insertions(+), 18 deletions(-) diff --git a/code/MDL/HalfLife/HL1MDLLoader.cpp b/code/MDL/HalfLife/HL1MDLLoader.cpp index 06ffd7801..a53004eb5 100644 --- a/code/MDL/HalfLife/HL1MDLLoader.cpp +++ b/code/MDL/HalfLife/HL1MDLLoader.cpp @@ -182,6 +182,13 @@ void HL1MDLLoader::load_file() { read_global_info(); + if (!header_->numbodyparts) { + // This could be an MDL external texture file. In this case, + // add this flag to allow the scene to be loaded even if it + // has no meshes. + scene_->mFlags |= AI_SCENE_FLAGS_INCOMPLETE; + } + // Append children to root node. if (rootnode_children_.size()) { scene_->mRootNode->addChildren( @@ -218,21 +225,6 @@ void HL1MDLLoader::validate_header(const Header_HL1 *header, bool is_texture_hea } } else { - // Every single Half-Life model is assumed to have at least one bodypart. - if (!header->numbodyparts) { - throw DeadlyImportError(MDL_HALFLIFE_LOG_HEADER "Model has no bodyparts"); - } - - // Every single Half-Life model is assumed to have at least one bone. - if (!header->numbones) { - throw DeadlyImportError(MDL_HALFLIFE_LOG_HEADER "Model has no bones"); - } - - // Every single Half-Life model is assumed to have at least one sequence group, - // which is the "default" sequence group. - if (!header->numseqgroups) { - throw DeadlyImportError(MDL_HALFLIFE_LOG_HEADER "Model has no sequence groups"); - } if (header->numbodyparts > AI_MDL_HL1_MAX_BODYPARTS) { log_warning_limit_exceeded(header->numbodyparts, "bodyparts"); @@ -498,6 +490,10 @@ void HL1MDLLoader::read_skins() { // ------------------------------------------------------------------------------------------------ void HL1MDLLoader::read_bones() { + if (!header_->numbones) { + return; + } + const Bone_HL1 *pbone = (const Bone_HL1 *)((uint8_t *)header_ + header_->boneindex); std::vector unique_bones_names(header_->numbones); @@ -588,6 +584,9 @@ void HL1MDLLoader::read_bones() { triangles, respectively (3 indices per face). */ void HL1MDLLoader::read_meshes() { + if (!header_->numbodyparts) { + return; + } int total_verts = 0; int total_triangles = 0; @@ -964,8 +963,9 @@ void HL1MDLLoader::read_meshes() { // ------------------------------------------------------------------------------------------------ void HL1MDLLoader::read_animations() { - if (!header_->numseq) + if (!header_->numseq) { return; + } const SequenceDesc_HL1 *pseqdesc = (const SequenceDesc_HL1 *)((uint8_t *)header_ + header_->seqindex); const SequenceGroup_HL1 *pseqgroup = nullptr; @@ -1067,6 +1067,9 @@ void HL1MDLLoader::read_animations() { // ------------------------------------------------------------------------------------------------ void HL1MDLLoader::read_sequence_groups_info() { + if (!header_->numseqgroups) { + return; + } aiNode *sequence_groups_node = new aiNode(AI_MDL_HL1_NODE_SEQUENCE_GROUPS); rootnode_children_.push_back(sequence_groups_node); diff --git a/test/unit/ImportExport/utMDLImporter.cpp b/test/unit/ImportExport/utMDLImporter.cpp index 561b3009f..aa188fd86 100644 --- a/test/unit/ImportExport/utMDLImporter.cpp +++ b/test/unit/ImportExport/utMDLImporter.cpp @@ -57,13 +57,24 @@ public: virtual bool importerTest() { Assimp::Importer importer; - const aiScene *scene = importer.ReadFile(MDL_HL1_FILE_MAN, 0); - EXPECT_NE(nullptr, scene); + importerTest_HL1(&importer); // Add further MDL tests... return true; } + +private: + void importerTest_HL1(Assimp::Importer* const importer) { + const aiScene *scene = importer->ReadFile(MDL_HL1_FILE_MAN, 0); + EXPECT_NE(nullptr, scene); + + // Test that the importer can directly load an HL1 MDL external texture file. + scene = importer->ReadFile(ASSIMP_TEST_MDL_HL1_MODELS_DIR "manT.mdl", aiProcess_ValidateDataStructure); + EXPECT_NE(nullptr, scene); + EXPECT_NE(0, scene->mNumTextures); + EXPECT_NE(0, scene->mNumMaterials); + } }; TEST_F(utMDLImporter, importMDLFromFileTest) { From fc4ae3586e1112648a356c3985b4293ee1d71a52 Mon Sep 17 00:00:00 2001 From: Kim Kulling Date: Sat, 25 Jan 2020 11:31:14 +0100 Subject: [PATCH 42/85] Update utMDLImporter.cpp unittests: Fix compiler warning: comparison between signed and unsigned. --- test/unit/ImportExport/utMDLImporter.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/test/unit/ImportExport/utMDLImporter.cpp b/test/unit/ImportExport/utMDLImporter.cpp index aa188fd86..b9a850175 100644 --- a/test/unit/ImportExport/utMDLImporter.cpp +++ b/test/unit/ImportExport/utMDLImporter.cpp @@ -72,8 +72,8 @@ private: // Test that the importer can directly load an HL1 MDL external texture file. scene = importer->ReadFile(ASSIMP_TEST_MDL_HL1_MODELS_DIR "manT.mdl", aiProcess_ValidateDataStructure); EXPECT_NE(nullptr, scene); - EXPECT_NE(0, scene->mNumTextures); - EXPECT_NE(0, scene->mNumMaterials); + EXPECT_NE(0u, scene->mNumTextures); + EXPECT_NE(0u, scene->mNumMaterials); } }; From b23c0b06378bc5b004c3de634a22a45a050edd40 Mon Sep 17 00:00:00 2001 From: Marc-Antoine Lortie Date: Sun, 26 Jan 2020 13:10:21 -0500 Subject: [PATCH 43/85] Uniformized error codes (return values) in assimp_cmd. --- tools/assimp_cmd/CompareDump.cpp | 16 +++--- tools/assimp_cmd/Export.cpp | 10 ++-- tools/assimp_cmd/ImageExtractor.cpp | 20 ++++---- tools/assimp_cmd/Info.cpp | 12 ++--- tools/assimp_cmd/Main.cpp | 26 +++++----- tools/assimp_cmd/Main.h | 77 ++++++++++++++++++++++++++--- tools/assimp_cmd/WriteDumb.cpp | 10 ++-- 7 files changed, 118 insertions(+), 53 deletions(-) diff --git a/tools/assimp_cmd/CompareDump.cpp b/tools/assimp_cmd/CompareDump.cpp index 86a9cfe4c..282097016 100644 --- a/tools/assimp_cmd/CompareDump.cpp +++ b/tools/assimp_cmd/CompareDump.cpp @@ -885,19 +885,19 @@ int Assimp_CompareDump (const char* const* params, unsigned int num) // --help if ((num == 1 && !strcmp( params[0], "-h")) || !strcmp( params[0], "--help") || !strcmp( params[0], "-?") ) { printf("%s",AICMD_MSG_CMPDUMP_HELP); - return 0; + return AssimpCmdError::Success; } // assimp cmpdump actual expected if (num < 2) { std::cout << "assimp cmpdump: Invalid number of arguments. " "See \'assimp cmpdump --help\'\r\n" << std::endl; - return 1; + return AssimpCmdError::InvalidNumberOfArguments; } if(!strcmp(params[0],params[1])) { std::cout << "assimp cmpdump: same file, same content." << std::endl; - return 0; + return AssimpCmdError::Success; } class file_ptr @@ -924,13 +924,13 @@ int Assimp_CompareDump (const char* const* params, unsigned int num) if (!actual) { std::cout << "assimp cmpdump: Failure reading ACTUAL data from " << params[0] << std::endl; - return -5; + return AssimpCmdError::FailedToLoadInputFile; } file_ptr expected(fopen(params[1],"rb")); if (!expected) { std::cout << "assimp cmpdump: Failure reading EXPECT data from " << params[1] << std::endl; - return -6; + return AssimpCmdCompareDumpError::FailedToLoadExpectedInputFile; } comparer_context comp(actual,expected); @@ -940,17 +940,17 @@ int Assimp_CompareDump (const char* const* params, unsigned int num) } catch(const compare_fails_exception& ex) { printf("%s",ex.what()); - return -1; + return AssimpCmdCompareDumpError::FileComparaisonFailure; } catch(...) { // we don't bother checking too rigourously here, so // we might end up here ... std::cout << "Unknown failure, are the input files well-defined?"; - return -3; + return AssimpCmdCompareDumpError::UnknownFailure; } std::cout << "Success (totally " << std::dec << comp.get_num_chunks() << " chunks)" << std::endl; - return 0; + return AssimpCmdError::Success; } diff --git a/tools/assimp_cmd/Export.cpp b/tools/assimp_cmd/Export.cpp index 20dc91239..65653c558 100644 --- a/tools/assimp_cmd/Export.cpp +++ b/tools/assimp_cmd/Export.cpp @@ -76,13 +76,13 @@ int Assimp_Export(const char* const* params, unsigned int num) const char* const invalid = "assimp export: Invalid number of arguments. See \'assimp export --help\'\n"; if (num < 1) { printf(invalid); - return 1; + return AssimpCmdError::InvalidNumberOfArguments; } // --help if (!strcmp( params[0], "-h") || !strcmp( params[0], "--help") || !strcmp( params[0], "-?") ) { printf("%s",AICMD_MSG_EXPORT_HELP_E); - return 0; + return AssimpCmdError::Success; } std::string in = std::string(params[0]); @@ -156,7 +156,7 @@ int Assimp_Export(const char* const* params, unsigned int num) // import the model const aiScene* scene = ImportModel(import,in); if (!scene) { - return -39; + return AssimpCmdExportError::FailedToImportModel; } // derive the final file name @@ -164,10 +164,10 @@ int Assimp_Export(const char* const* params, unsigned int num) // and call the export routine if(!ExportModel(scene, import, out,e->id)) { - return -25; + return AssimpCmdExportError::FailedToExportModel; } printf("assimp export: wrote output file: %s\n",out.c_str()); - return 0; + return AssimpCmdError::Success; } #endif // no export diff --git a/tools/assimp_cmd/ImageExtractor.cpp b/tools/assimp_cmd/ImageExtractor.cpp index c587611cb..8c3841838 100644 --- a/tools/assimp_cmd/ImageExtractor.cpp +++ b/tools/assimp_cmd/ImageExtractor.cpp @@ -219,9 +219,9 @@ int DoExport(const aiTexture* tx, FILE* p, const std::string& extension, } else { printf("assimp extract: No available texture encoder found for %s\n", extension.c_str()); - return 1; + return AssimpCmdExtractError::NoAvailableTextureEncoderFound; } - return 0; + return AssimpCmdError::Success; } // ----------------------------------------------------------------------------------- @@ -232,13 +232,13 @@ int Assimp_Extract (const char* const* params, unsigned int num) // assimp extract in out [options] if (num < 1) { printf(invalid); - return 1; + return AssimpCmdError::InvalidNumberOfArguments; } // --help if (!strcmp( params[0], "-h") || !strcmp( params[0], "--help") || !strcmp( params[0], "-?") ) { printf("%s",AICMD_MSG_DUMP_HELP_E); - return 0; + return AssimpCmdError::Success; } @@ -308,7 +308,7 @@ int Assimp_Extract (const char* const* params, unsigned int num) const aiScene* scene = ImportModel(import,in); if (!scene) { printf("assimp extract: Unable to load input file %s\n",in.c_str()); - return 5; + return AssimpCmdError::FailedToLoadInputFile; } // get the texture(s) to be exported @@ -318,7 +318,7 @@ int Assimp_Extract (const char* const* params, unsigned int num) if (texIdx >= scene->mNumTextures) { ::printf("assimp extract: Texture %i requested, but there are just %i textures\n", texIdx, scene->mNumTextures); - return 6; + return AssimpCmdExtractError::TextureIndexIsOutOfRange; } } else { @@ -358,12 +358,14 @@ int Assimp_Extract (const char* const* params, unsigned int num) FILE* p = ::fopen(out_cpy.c_str(),"wb"); if (!p) { printf("assimp extract: Unable to open output file %s\n",out_cpy.c_str()); - return 7; + return AssimpCmdError::FailedToOpenOutputFile; } int m; if (!tex->mHeight) { - m = (1 != fwrite(tex->pcData,tex->mWidth,1,p)); + m = (1 != fwrite(tex->pcData,tex->mWidth,1,p)) + ? AssimpCmdError::Success + : AssimpCmdExtractError::FailedToExportCompressedTexture; } else m = DoExport(tex,p,extension,flags); ::fclose(p); @@ -372,5 +374,5 @@ int Assimp_Extract (const char* const* params, unsigned int num) if (texIdx != 0xffffffff) return m; } - return 0; + return AssimpCmdError::Success; } diff --git a/tools/assimp_cmd/Info.cpp b/tools/assimp_cmd/Info.cpp index 0f23c1f89..1594235f9 100644 --- a/tools/assimp_cmd/Info.cpp +++ b/tools/assimp_cmd/Info.cpp @@ -283,14 +283,14 @@ int Assimp_Info (const char* const* params, unsigned int num) { // --help if (!strcmp( params[0],"-h")||!strcmp( params[0],"--help")||!strcmp( params[0],"-?") ) { printf("%s",AICMD_MSG_INFO_HELP_E); - return 0; + return AssimpCmdError::Success; } // asssimp info [-r] if (num < 1) { printf("assimp info: Invalid number of arguments. " "See \'assimp info --help\'\n"); - return 1; + return AssimpCmdError::InvalidNumberOfArguments; } const std::string in = std::string(params[0]); @@ -314,7 +314,7 @@ int Assimp_Info (const char* const* params, unsigned int num) { // Verbose and silent at the same time are not allowed if ( verbose && silent ) { printf("assimp info: Invalid arguments, verbose and silent at the same time are forbitten. "); - return 1; + return AssimpCmdInfoError::InvalidCombinaisonOfArguments; } // Parse post-processing flags unless -r was specified @@ -333,7 +333,7 @@ int Assimp_Info (const char* const* params, unsigned int num) { if (!scene) { printf("assimp info: Unable to load input file %s\n", in.c_str()); - return 5; + return AssimpCmdError::FailedToLoadInputFile; } aiMemoryInfo mem; @@ -391,7 +391,7 @@ int Assimp_Info (const char* const* params, unsigned int num) { if (silent) { printf("\n"); - return 0; + return AssimpCmdError::Success; } // meshes @@ -473,5 +473,5 @@ int Assimp_Info (const char* const* params, unsigned int num) { PrintHierarchy(scene->mRootNode,"",verbose); printf("\n"); - return 0; + return AssimpCmdError::Success; } diff --git a/tools/assimp_cmd/Main.cpp b/tools/assimp_cmd/Main.cpp index ad08b0b11..1037bd73c 100644 --- a/tools/assimp_cmd/Main.cpp +++ b/tools/assimp_cmd/Main.cpp @@ -85,7 +85,7 @@ int main (int argc, char* argv[]) { if (argc <= 1) { printf("assimp: No command specified. Use \'assimp help\' for a detailed command list\n"); - return 0; + return AssimpCmdError::Success; } // assimp version @@ -102,7 +102,7 @@ int main (int argc, char* argv[]) (flags & ASSIMP_CFLAGS_STLPORT ? "-stlport " : ""), aiGetVersionRevision()); - return 0; + return AssimpCmdError::Success; } // assimp help @@ -110,7 +110,7 @@ int main (int argc, char* argv[]) // because people could try them intuitively) if (!strcmp(argv[1], "help") || !strcmp(argv[1], "--help") || !strcmp(argv[1], "-h")) { printf("%s",AICMD_MSG_HELP); - return 0; + return AssimpCmdError::Success; } // assimp cmpdump @@ -137,7 +137,7 @@ int main (int argc, char* argv[]) imp.GetExtensionList(s); printf("%s\n",s.data); - return 0; + return AssimpCmdError::Success; } #ifndef ASSIMP_BUILD_NO_EXPORT @@ -155,7 +155,7 @@ int main (int argc, char* argv[]) } printf("%s\n",s.data); - return 0; + return AssimpCmdError::Success; } @@ -166,19 +166,19 @@ int main (int argc, char* argv[]) if (argc<3) { printf("Expected file format id\n"); - return -11; + return AssimpCmdError::NoFileFormatSpecified; } for(size_t i = 0, end = exp.GetExportFormatCount(); i < end; ++i) { const aiExportFormatDesc* const e = exp.GetExportFormatDescription(i); if (!strcmp(e->id,argv[2])) { printf("%s\n%s\n%s\n",e->id,e->fileExtension,e->description); - return 0; + return AssimpCmdError::Success; } } printf("Unknown file format id: \'%s\'\n",argv[2]); - return -12; + return AssimpCmdError::UnknownFileFormat; } // assimp export @@ -194,11 +194,11 @@ int main (int argc, char* argv[]) if (! strcmp(argv[1], "knowext")) { if (argc<3) { printf("Expected file extension"); - return -10; + return AssimpCmdError::NoFileExtensionSpecified; } const bool b = imp.IsExtensionSupported(argv[2]); printf("File extension \'%s\' is %sknown\n",argv[2],(b?"":"not ")); - return b?0:-1; + return b? AssimpCmdError::Success : AssimpCmdError::UnknownFileExtension; } // assimp info @@ -228,7 +228,7 @@ int main (int argc, char* argv[]) } printf("Unrecognized command. Use \'assimp help\' for a detailed command list\n"); - return 1; + return AssimpCmdError::UnrecognizedCommand; } @@ -505,7 +505,7 @@ int ProcessStandardArguments( fill.log = true; } - return 0; + return AssimpCmdError::Success; } // ------------------------------------------------------------------------------ @@ -517,5 +517,5 @@ int Assimp_TestBatchLoad ( globalImporter->ReadFile(params[i],aiProcessPreset_TargetRealtime_MaxQuality); // we're totally silent. scene destructs automatically. } - return 0; + return AssimpCmdError::Success; } diff --git a/tools/assimp_cmd/Main.h b/tools/assimp_cmd/Main.h index 460db2df9..bd070102c 100644 --- a/tools/assimp_cmd/Main.h +++ b/tools/assimp_cmd/Main.h @@ -114,13 +114,31 @@ struct ImportData { bool log; }; +/// \enum AssimpCmdError +/// \brief General error codes used among assimp_cmd's utilities. +enum AssimpCmdError { + Success = 0, + InvalidNumberOfArguments, + UnrecognizedCommand, + FailedToLoadInputFile, + FailedToOpenOutputFile, + NoFileFormatSpecified, + UnknownFileFormat, + NoFileExtensionSpecified, + UnknownFileExtension, + + // Add new error codes here... + + LastAssimpCmdError, // Must be last. +}; + // ------------------------------------------------------------------------------ /** Process standard arguments * * @param fill Filled by function * @param params Command line parameters to be processed * @param num NUmber of params - * @return 0 for success */ + * @return An #AssimpCmdError value. */ int ProcessStandardArguments(ImportData& fill, const char* const* params, unsigned int num); @@ -151,43 +169,88 @@ bool ExportModel(const aiScene* pOut, /** assimp_dump utility * @param params Command line parameters to 'assimp dumb' * @param Number of params - * @return 0 for success*/ + * @return An #AssimpCmdError value.*/ int Assimp_Dump ( const char* const* params, unsigned int num); +/// \enum AssimpCmdExportError +/// \brief Error codes used by the 'Export' utility. +enum AssimpCmdExportError { + FailedToImportModel = AssimpCmdError::LastAssimpCmdError, + FailedToExportModel, + + // Add new error codes here... + + LastAssimpCmdExportError, // Must be last. +}; + // ------------------------------------------------------------------------------ /** assimp_export utility * @param params Command line parameters to 'assimp export' * @param Number of params - * @return 0 for success*/ + * @return Either an #AssimpCmdError or #AssimpCmdExportError value. */ int Assimp_Export ( const char* const* params, unsigned int num); +/// \enum AssimpCmdExtractError +/// \brief Error codes used by the 'Image Extractor' utility. +enum AssimpCmdExtractError { + TextureIndexIsOutOfRange = AssimpCmdError::LastAssimpCmdError, + NoAvailableTextureEncoderFound, + FailedToExportCompressedTexture, + + // Add new error codes here... + + LastAssimpCmdExtractError, // Must be last. +}; + // ------------------------------------------------------------------------------ /** assimp_extract utility * @param params Command line parameters to 'assimp extract' * @param Number of params - * @return 0 for success*/ + * @return Either an #AssimpCmdError or #AssimpCmdExtractError value. */ int Assimp_Extract ( const char* const* params, unsigned int num); +/// \enum AssimpCmdCompareDumpError +/// \brief Error codes used by the 'Compare Dump' utility. +enum AssimpCmdCompareDumpError { + FailedToLoadExpectedInputFile = AssimpCmdError::LastAssimpCmdError, + FileComparaisonFailure, + UnknownFailure, + + // Add new error codes here... + + LastAssimpCmdCompareDumpError, // Must be last. +}; + // ------------------------------------------------------------------------------ /** assimp_cmpdump utility * @param params Command line parameters to 'assimp cmpdump' * @param Number of params - * @return 0 for success*/ + * @return Either an #AssimpCmdError or #AssimpCmdCompareDumpError. */ int Assimp_CompareDump ( const char* const* params, unsigned int num); +/// \enum AssimpCmdInfoError +/// \brief Error codes used by the 'Info' utility. +enum AssimpCmdInfoError { + InvalidCombinaisonOfArguments = AssimpCmdError::LastAssimpCmdError, + + // Add new error codes here... + + LastAssimpCmdInfoError, // Must be last. +}; + // ------------------------------------------------------------------------------ /** @brief assimp info utility * @param params Command line parameters to 'assimp info' * @param Number of params - * @return 0 for success */ + * @return Either an #AssimpCmdError or #AssimpCmdInfoError value. */ int Assimp_Info ( const char* const* params, unsigned int num); @@ -196,7 +259,7 @@ int Assimp_Info ( /** @brief assimp testbatchload utility * @param params Command line parameters to 'assimp testbatchload' * @param Number of params - * @return 0 for success */ + * @return An #AssimpCmdError value. */ int Assimp_TestBatchLoad ( const char* const* params, unsigned int num); diff --git a/tools/assimp_cmd/WriteDumb.cpp b/tools/assimp_cmd/WriteDumb.cpp index b4c22a439..f019cfd6e 100644 --- a/tools/assimp_cmd/WriteDumb.cpp +++ b/tools/assimp_cmd/WriteDumb.cpp @@ -1341,13 +1341,13 @@ int Assimp_Dump (const char* const* params, unsigned int num) // --help if (!strcmp( params[0], "-h") || !strcmp( params[0], "--help") || !strcmp( params[0], "-?") ) { printf("%s",AICMD_MSG_DUMP_HELP); - return 0; + return AssimpCmdError::Success; } // asssimp dump in out [options] if (num < 1) { printf("%s", fail); - return 1; + return AssimpCmdError::InvalidNumberOfArguments; } std::string in = std::string(params[0]); @@ -1405,14 +1405,14 @@ int Assimp_Dump (const char* const* params, unsigned int num) const aiScene* scene = ImportModel(import,in); if (!scene) { printf("assimp dump: Unable to load input file %s\n",in.c_str()); - return 5; + return AssimpCmdError::FailedToLoadInputFile; } // open the output file and build the dump FILE* o = ::fopen(out.c_str(),(binary ? "wb" : "wt")); if (!o) { printf("assimp dump: Unable to open output file %s\n",out.c_str()); - return 12; + return AssimpCmdError::FailedToOpenOutputFile; } if (binary) { @@ -1426,6 +1426,6 @@ int Assimp_Dump (const char* const* params, unsigned int num) } printf("assimp dump: Wrote output dump %s\n",out.c_str()); - return 0; + return AssimpCmdError::Success; } From ab284f7996c06fd3ba19bba2b8c8417dcd228c21 Mon Sep 17 00:00:00 2001 From: Marc-Antoine Lortie Date: Sun, 26 Jan 2020 14:02:16 -0500 Subject: [PATCH 44/85] Fixed enumeral mismatch error in build. --- tools/assimp_cmd/ImageExtractor.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tools/assimp_cmd/ImageExtractor.cpp b/tools/assimp_cmd/ImageExtractor.cpp index 8c3841838..62fa94f59 100644 --- a/tools/assimp_cmd/ImageExtractor.cpp +++ b/tools/assimp_cmd/ImageExtractor.cpp @@ -364,8 +364,8 @@ int Assimp_Extract (const char* const* params, unsigned int num) if (!tex->mHeight) { m = (1 != fwrite(tex->pcData,tex->mWidth,1,p)) - ? AssimpCmdError::Success - : AssimpCmdExtractError::FailedToExportCompressedTexture; + ? static_cast(AssimpCmdError::Success) + : static_cast(AssimpCmdExtractError::FailedToExportCompressedTexture); } else m = DoExport(tex,p,extension,flags); ::fclose(p); From 9e1eba7912c678a2f5ecf4ebaeed96a18b0f2d58 Mon Sep 17 00:00:00 2001 From: tellypresence Date: Mon, 27 Jan 2020 19:58:05 +0900 Subject: [PATCH 45/85] Revert image files corrupted by a8a1ca9 --- test/models-nonbsd/3DS/m_rifl.bmp | Bin 196623 -> 196662 bytes .../AMF/screenshot_3_bananas.jpeg | Bin 46917 -> 46918 bytes test/models-nonbsd/B3D/turtle1.png | Bin 270901 -> 270905 bytes .../FBX/2013_ASCII/duck_sample.jpg | Bin 14222 -> 14223 bytes test/models-nonbsd/FBX/2013_ASCII/m_rifl.bmp | Bin 196623 -> 196662 bytes .../IRR/skybox/default_skybox3.jpg | Bin 36116 -> 36117 bytes .../IRR/skybox/default_skyboxdn.jpg | Bin 11148 -> 11149 bytes .../IRR/skybox/default_skyboxup.jpg | Bin 9451 -> 9452 bytes .../mapobjects/kt_kubalwagon/euro_frnt_2.tga | Bin 279871 -> 280115 bytes .../mapobjects/kt_kubalwagon/european_fnt.tga | Bin 784342 -> 786450 bytes test/models-nonbsd/MD3/water_can.tga | Bin 98318 -> 98322 bytes test/models-nonbsd/MD5/guard1_body.png | Bin 233427 -> 233429 bytes test/models-nonbsd/MD5/guard1_face.png | Bin 121148 -> 121149 bytes test/models-nonbsd/MD5/guard1_helmet.png | Bin 47478 -> 47481 bytes test/models-nonbsd/MD5/iron_grill.png | Bin 65145 -> 65146 bytes test/models-nonbsd/MD5/round_grill.png | Bin 48668 -> 48671 bytes .../MDL/MDL7 (3DGS A7)/branchD_texture.png | Bin 126437 -> 126438 bytes test/models-nonbsd/Ogre/OgreSDK/fish.jpg | Bin 71255 -> 71256 bytes test/models/3DS/CWALL02.jpg | Bin 165339 -> 165342 bytes test/models/3DS/IMAGE2.jpg | Bin 283208 -> 283212 bytes .../UVTransformTest/UVTransformTestImg.png | Bin 3494 -> 3495 bytes test/models/3DS/test.png | Bin 23698 -> 23700 bytes test/models/Collada/duck_sample.jpg | Bin 14222 -> 14223 bytes test/models/Collada/teapots_reference.png | Bin 183471 -> 183476 bytes test/models/IRRMesh/1.png | Bin 28973 -> 28975 bytes .../LWO/LWO2/MappingModes/earthCylindric.jpg | Bin 624829 -> 624832 bytes .../LWO/LWO2/MappingModes/earthSpherical.jpg | Bin 422117 -> 422120 bytes test/models/LWO/LWO2/boxuv.png | Bin 14079 -> 14080 bytes test/models/LWO/LWO2/uvtest.png | Bin 16300 -> 16301 bytes test/models/MD2/faerie2.bmp | Bin 43527 -> 43538 bytes test/models/MD2/sydney.bmp | Bin 60516 -> 60522 bytes test/models/Ogre/TheThing/Reference.JPG | Bin 26714 -> 26718 bytes .../MappingModes/cylindrical.png | Bin 264669 -> 264673 bytes .../MappingModes/spherical.png | Bin 322844 -> 322849 bytes .../UVTransform/UVTransform_Normal.png | Bin 34367 -> 34368 bytes .../UVTransform_OffsetUV0.5-clampUV.png | Bin 39356 -> 39357 bytes .../UVTransform_OffsetUV0.5-mirrorUV.png | Bin 48964 -> 48965 bytes .../UVTransform/UVTransform_OffsetUV0.5.png | Bin 34622 -> 34623 bytes ...orm_ScaleUV1-2_OffsetUV0-0.9_Rotate-72.png | Bin 105642 -> 105643 bytes ...eUV1-2_OffsetUV0-0.9_Rotate-72_mirrorU.png | Bin 130735 -> 130740 bytes ...nsform_ScaleUV10-2_OffsetUV10-mirrorUV.png | Bin 97350 -> 97351 bytes .../UVTransform/UVTransform_ScaleUV2x.png | Bin 50278 -> 50279 bytes .../UVTransform_ScaleUV2x_Rotate45.png | Bin 111073 -> 111075 bytes test/models/SIB/This Way Up.png | Bin 5921 -> 5922 bytes test/models/SIB/UV Mapping.png | Bin 7068 -> 7069 bytes test/models/X/bottom.tga | Bin 196147 -> 196652 bytes test/models/X/test.png | Bin 23698 -> 23700 bytes test/models/X/top.tga | Bin 195683 -> 196652 bytes .../CesiumLogoFlat.png | Bin 22050 -> 22051 bytes .../glTF/BoxTextured-glTF/CesiumLogoFlat.png | Bin 22050 -> 22051 bytes .../glTF/CesiumMilkTruck/CesiumMilkTruck.png | Bin 923268 -> 923282 bytes .../CesiumLogoFlat.png | Bin 2432 -> 2433 bytes .../CesiumLogoFlat.png | Bin 2432 -> 2433 bytes .../glTF2/BoxTextured-glTF/CesiumLogoFlat.png | Bin 2432 -> 2433 bytes 54 files changed, 0 insertions(+), 0 deletions(-) diff --git a/test/models-nonbsd/3DS/m_rifl.bmp b/test/models-nonbsd/3DS/m_rifl.bmp index bb27dadb29f644d88b0c79a7f8a24665e7f4ed10..fc1d8c2819c1e0233782a2abd624a37e3e2cf56d 100644 GIT binary patch delta 278 zcmeBg;Mvx|v!O?rg_nz)cXOZcXC_A8&5dGa+(2r(qPPS^{DLJ&d~&0h$mZ)df9-&B zSE?^*vV-(+aq(_mwNyP2D0cDNab6}~-t9A37)|OJdAFZwV%*Qe%*(|vIq`w=_6_}v zt8IWzXKy2#4L%L_7UyS)n2AD}(kt<{;hnSr#M7LzvzP>P3# zgNK`gi-(hoclsP7CR0Y<=@*TdQo(N9Zeh%n!z2b&B*e=vDI_W@CJjUqLSllv{Jhh5 zm@*Xt4bn7YYS#qP8{(O6@c`+r942i>AiXu0i4$ny^nLkE%0Sb2c(*^!XVRGf0KEW2 A^Z)<= delta 220 zcmdniz|-Hrv!O?riHm#l1mVw2n_I-pxHs=s6qf*rT(bmh?iedNK{r#8i*u>!~}Wyr{6GTD%|d6#?-F4{Zc&BEuQUbbC|Rlx8KZV;$)is RIG;(GiHm1DR{@jG1OV2BL81Tv diff --git a/test/models-nonbsd/AMF/screenshot_3_bananas.jpeg b/test/models-nonbsd/AMF/screenshot_3_bananas.jpeg index faa2cac85098fbf03c0e4d1fcb45be9920f9fc13..976fcb03bcd63e85e399d5d643b0bf4c8999db79 100644 GIT binary patch delta 16 XcmX^5j_KGtrVYkLjJ%tTi-cSOLR1ER delta 14 VcmX^1j_K$-rVYkLn@x&@Tmd+Q25|rY diff --git a/test/models-nonbsd/B3D/turtle1.png b/test/models-nonbsd/B3D/turtle1.png index fbdcfb5b7938201eb192dc71502ba85745114725..42c43db31edc2e4da608708f218148ae146c2f85 100644 GIT binary patch delta 50 zcmdmbL}2F;0oKj{KX=}ZEKS^uyqnv&XRtH!Hp>aO%Ly|AG1GQAVdkW7jJ(?$I9awz F0052*4q*TQ delta 43 ycmdmaL}2R?0hZ1HKlhESP28J1xM#38D+;$O3Nr#R({@E+=A>`iTR2&^N&o;+*$zAa diff --git a/test/models-nonbsd/FBX/2013_ASCII/duck_sample.jpg b/test/models-nonbsd/FBX/2013_ASCII/duck_sample.jpg index 953d3e5fcd3313466c4246e7366da4c8fc19ea39..9ce7a59ca4539152ef2a08f67ef6d2d1b7c6c0f4 100644 GIT binary patch delta 14 VcmeCn@6X?`T9T1>^J>Y*vH&kf1@!;` delta 12 TcmeCr@5|q?T5|Im$;Yw)C>RCk diff --git a/test/models-nonbsd/FBX/2013_ASCII/m_rifl.bmp b/test/models-nonbsd/FBX/2013_ASCII/m_rifl.bmp index bb27dadb29f644d88b0c79a7f8a24665e7f4ed10..fc1d8c2819c1e0233782a2abd624a37e3e2cf56d 100644 GIT binary patch delta 278 zcmeBg;Mvx|v!O?rg_nz)cXOZcXC_A8&5dGa+(2r(qPPS^{DLJ&d~&0h$mZ)df9-&B zSE?^*vV-(+aq(_mwNyP2D0cDNab6}~-t9A37)|OJdAFZwV%*Qe%*(|vIq`w=_6_}v zt8IWzXKy2#4L%L_7UyS)n2AD}(kt<{;hnSr#M7LzvzP>P3# zgNK`gi-(hoclsP7CR0Y<=@*TdQo(N9Zeh%n!z2b&B*e=vDI_W@CJjUqLSllv{Jhh5 zm@*Xt4bn7YYS#qP8{(O6@c`+r942i>AiXu0i4$ny^nLkE%0Sb2c(*^!XVRGf0KEW2 A^Z)<= delta 220 zcmdniz|-Hrv!O?riHm#l1mVw2n_I-pxHs=s6qf*rT(bmh?iedNK{r#8i*u>!~}Wyr{6GTD%|d6#?-F4{Zc&BEuQUbbC|Rlx8KZV;$)is RIG;(GiHm1DR{@jG1OV2BL81Tv diff --git a/test/models-nonbsd/IRR/skybox/default_skybox3.jpg b/test/models-nonbsd/IRR/skybox/default_skybox3.jpg index c7dfe7c70a17c0fdd163934a51f24a91746e777b..e8107ff999877167133c1c32eb004b0f073c768b 100644 GIT binary patch delta 14 WcmbO-i)rdCrU`D0yc^xl^#A}U`~{Z) delta 12 UcmbO_i)qR%rU`Bv-Ou#^03u5TiU0rr diff --git a/test/models-nonbsd/IRR/skybox/default_skyboxdn.jpg b/test/models-nonbsd/IRR/skybox/default_skyboxdn.jpg index 8eb9870840eb981a27b8260747094ac32e28676c..af66a6176b2ff92a472b656017bce0c9cf6c24ee 100644 GIT binary patch delta 12 TcmeAP?+u?2&B(hk+E5z+9*_hn delta 10 RcmeAT?+Kp}y)nj68vq#S1RMYW diff --git a/test/models-nonbsd/IRR/skybox/default_skyboxup.jpg b/test/models-nonbsd/IRR/skybox/default_skyboxup.jpg index 730e5ec3eefbbd504f8ec203add25b2147409114..7959709fa3707a33010a76b4ec8acf815375e390 100644 GIT binary patch delta 12 TcmaFu`NnfXG$ZfE=m{zSCRqg| delta 10 RcmaFk`Py?r^v0M8DgYmC1r`7R diff --git a/test/models-nonbsd/MD3/q3root/models/mapobjects/kt_kubalwagon/euro_frnt_2.tga b/test/models-nonbsd/MD3/q3root/models/mapobjects/kt_kubalwagon/euro_frnt_2.tga index 3bb9f5097b73b231065e48c5986a33a186ef1aa5..47ff6d6208d3663502b0ca472fb86cd175137e10 100644 GIT binary patch delta 1777 zcmY*ZYitx%6wZC@Yj*C;mMtRkSV|kIlmG$|(3Wgz#Ybrnk*8J)G(0OCGy-j?1~3R1rA;&`2|n7W0p)f5&Mf|Lli736IXo2`IPow?U~bh)F0-h2!vlsBkje3nX0Tsjq-S1g@{Osz{-2}2o% zwxR|dXOt~~wXAHI$hw0o5)Nu364KEKFajSXvy@4RQstWw99*%1O0KGS1p}V)uXvm?#tB=F&GcO^es0O zwkTpmxlJ|W$b6`_mk%McWko?+M4OaJrS{d$LyCdA9>jFi?+8Lk?nE)E)XrjiOm%8LUZ15i1*s#6w!9Li{iH)DGEb$e7Tk&Hr>!n&meavK0%u?D$k(Nb1?`D{J!Y|y9gE=YNOlUaz0@1MqAN2vGQ4EP}{ z^BI?*%GsD?Pg-e;(`=yHQ%QCJG1Z0a7k;M zt8wTZ1I$F5y_1@~gW>eb8Q)?-p0jxa?SD3tmk)#N%;Qr6kb{$Xmyg1m#zRzZ=X4$? z$Ju-y3KKv6y-;3nF<%)bl*v*~SIO&}$5%2k6wc=j!F&AI0d1ix6^~guMuTY5i{bpV zn72@1-4Z^BjyU-=F9sIJDCZl=UR};F!|p7v;A2Uzui)D$POjzsm{sq}W^T@h|LSr6 zNV#9TxsVtxtka*y&$bLF5fugQnDI|B@78&Ki@3agk&lo$2(!>ugrq;{ z3aRKLyT5iGxWw_qeq45m&&I~GgeWS6+*gh#5wdlyu&EgbDn*AKqK*dycdBYcmh(k7 zm(HFVQGi-b*NEv5!CFy7WdrQoT9F`THq;4!IM=`GCv?^|ifnqejR>AbBbWvVJ#&by zhh}EbAbr#*5=8omH^p*f$k{E5i1Rgj#VV+$_KFr717~fs_yl_VZL!UU+_PVtTn)Lz zmJbr*J#l%1vNYW-2cgyum)D7zts~?`Mx@f4jC-+Yl)MIW>1ertW@%rx6u2K~LondH zpOm}2`|p)Asa@;GNsWMYx$-j2)DwAfo=?ye*-9H{&5-FklAkYaJbO+_vHa^_B~cI7 delta 1400 zcmYLJeQXp(6wkbwyWQK{+udugsX(O^iWFLc&=9ClxrQqiX#=&z(xgZ!ARtAmHi8Ki zkPmC6DY%dUHMEJEXf#?J;i+l-NW@A?RFEhp2>wB6BZ}1!5K9=}9vV0MGBa=9*YC}5 zM(vG%+7a*VF7SH_)+%%I9?$P8$x-i=Jj{Jwx=rmY^@M+*Y?9wsHbo7Vt>&t-e1xlt zg}Gw1rR}JxZOhcLXhgfQXnLfj>+h;sV9+E=qQ0wY<|TkC#;B$n1*(2OM7li$4MMNRbT9HslQ)g{VHx+mUf~Rh0kAJqqZ#1=Kj9M zT)(&RDV4u+11(lRr!v=^6>4aGH~8(%9V&CctBs9idTe}Wr39#5vtzO?UhpC^RIRjzxB&F)xI*F-EZ5JT0a-xJjqHPN4pWVLL z&)+eihIi}<`g*% zNApc}>+{Dzt^I-=)_rxG8+R&oRLiLwoKr5<{4Ln3<@_t2vVR+i`sU3GYUpM^sNP$3 z0!_vi39JpVi#&&nEgh6aLNm{a5vC|rOB+}lVaS6%(oc9Cc~^{$_sB9D`PU=RVr7gS z;qr>dl2{aHx4A6LV!1&XxFn1HVz}fGF+)1UnYL(-m3OnNJkVNZn0CU%j6j>m{^W7e z250(zPOP2Ceh)yoSTUImaG99OiqpX>r!pNtPuGjJ)0rW#VJ3T?FY%K-D3@Ai>z+L6gWa3a2bOW|8fhLB(RzpWP zn|SI{*NCf`o})c7b!<|}eaqko-dhg~IBsr$l#qRm@HiH&ghA@u8W@kW*T7DWee2+I z6klrvyIS_1fCtjOxOD<%fMp!bdxPQk{ji(KhLi9Ov;5Q9Svci=_A0{*1F$MkX z_O$U?@?0CApXSZDXL&9i;|@;elH5(cGTF%|(2Hb6!os$QGM{$lP?i2WQLW~Ict1wv!pWHAUhuShI5u&Y>fhj3bn QAl^+Y6|O1gm5Xct08F{{4*&oF diff --git a/test/models-nonbsd/MD3/q3root/models/mapobjects/kt_kubalwagon/european_fnt.tga b/test/models-nonbsd/MD3/q3root/models/mapobjects/kt_kubalwagon/european_fnt.tga index 292ff31c62393c803180b495d92c331458873aff..0621ca3a4a6d5b9d923c85358cc62c423ba71215 100644 GIT binary patch delta 14798 zcmY*g3A|0!{s;Rde%5F2eb!#yDIe|udr7YBDfC?$bZr#JlaCiA6}wH=;3-{l_mw#yCd<#x@^Ka5C8zIx zpP=6Bu?Gaq?HM;5`FgL5(6_r+MJNVxw$f6)S7T(!nm(En*7a?i3k1oy6L(D9b+Q8B zPrLWc%A+o!mq1#IM3qGM{h|o><$m=VL3vp|#DOd6u9QhgOtioSe)_YAFsS7CLl5di z;CWd-j3+%{(3P0@#vn@lkw=?pt0!8T&_D>Fn?g@-db}y5kewwB1~~W^h0zdtGU0kj z8dJ)LexPJfoX#C`D?r{eq_SxST6`}j@XKZe1!Z$!lh#(VpndX08xGE>PJ{vErSbr{ z^qQeHfjNNu$yWO3p%no-HtYb!|LarT@T1M}3k-fdHlpIWLLvau#Qg;M7fxs#G`IAU z5w!_S8m#Zz5wO{y6(3SS=zu8ax$(_e8yLM8=)FCr<~^g@WClH%0pgf=#*`eHXpK=UNFa#wT3v`^!ZhfTvsNqZ@Nx?x`*n6_RV>VaCQ3mpiM;tq%Zcrz%|V$o6WRrooJ_j7!a$y!Q_i}N zwGmuF24c zIy_*Fd96ri;gLLgh=$bh%Ga9$)PG-p5unB_$|2n8i)jULaasq$;^JPa6K9n+@B%#% zFyjOJEiYtB6p64$IY5_ZM#^0H1mz$)rn52rlsvX%3!Uh?<<)WRvm9nvGIM!H(s6u6 zk>#gyQ~-h~PKqSmB&v!*w@0TrsMA{vCE;5aqif?^7eMFfKUe)&*NTrELgjR8kcg~- z1d&X{aK$s^E?lM6>Z@t>Bpo(Y(q{DlTF%Zs3r!oLoPWb>jQwdlwnuT#- zXDi@p@b!}pMX>n0sz`z|JpI{sSBox73in*e$am}B_9Slpz6H3p`*FY-{eqH>KQ^cN zie*vb(!kI;`=3TFlb-p@>$tZ0^*LO3{8|q~F~YJG1kCXmTK?dFSiXRK#)Y6{>XF8( ziSV9rL`I7VPT{ur&m65~ivGWpMYtmBpF6S*|uvZv^e zm!IlP&ceT6rHD`vP>-w$TL07GRx3M+RcBN#@j%d7qXc#|(qkhkqNtb`!J#st9ml=W z$U*2q$LA1&2XO$?!)4kx;cZHzX3j+98-0nqv+k3>IB-u$_Z73 zTeF0k1wCa4(GLmLNWma-vKi3P5Dd;f2-t?6dIVVKd+H{FI3B2G_<32D`i6lM6Oo7P zECfzF7sS-dQB7|Y7Oj9SyEdR;4wx3HGdRKvBsfyLR&Q1+R4b$T83jg*b5s^3usTn* zqn7|J8nET(t5#xoVV8VWv7y+CjROEKsFVL|2tbXW=r4VU=H#obl<7l-s+a;>TB!Pn zz$&Q*Fa?AIU};xLom&wS_7V=uTSLh4E;54K)X{3IBDz z`UkgWwbXe56#U9qTer8Gg$RT&tIyR0QLc3CRf<_HY}ZU7W=8inQ}=Mt7cEp8KkvO-?WV|DwN%fbx(_$spl-pfT5E->ENt3Z z!S$kUtyP*HxY2-lgh64$(_J)pRm&#l5PY zfx4nz_bRRvqV~PjD9+#2S9RckhWD$VU^<}AVc}OC-q}wDR{wqbsUJDx0kxVlvInZN zgi!rKRm_=P9#Wlfd-Ean95NgnKpcjv6-06@hm0;0cQk?njgJi5`aSCNuo|8zvY~k7 ze!R!}fX2ym7MVv?TaEgTWtmh;)_J--uCP)J7e20@u|{c4K}s*CDBp8|RI4&5W^iwuO&g(|1M+k4-C{>WL z_#LBEKYAk|UOz@%jhAD`sAq61H&)ey+$k^^1X4ePQq+2^T1(saC#b`?ot&WR*(w3} zKpK=&E-wpMqE7VQlZ)tTIQXv8^{aNzC z8T6o_R7zHu5F<^fIY}LXf?(BH;X8i9NhRF?Em{@A zn=R)%UsUyg-<_=LRkt=E>o9-^e(QsxR4L^V6eo+I#!ps7)-s_HW(LvA`pF9A)1)b? z;EIenQF@-oIs}729tcNaX35XYEFFor7?yBjiFCIK<~ z+1P$@f^h81YCGaZcBsxb6{DfE)iPqcWRAKQas#ZF=BS&nY^U@kHCghx(3G{N1Z!cJ z-pt%p+MJs*bmzDwmlomHSgjt!@E2E0xF}T&)sH3%ylC@kRSk%uLu=JEA{@0|Js}m0fDXd! z4eAvrj$)UBrxZx|&IVP>F6@K}K-i#;fVgP)dlu5;AFBS4l(<%Ss1>-mTT~nC4_p*e zbBtp!ox8WFB8DP?LRM-1q#p4KaDiy@7S#X{KHQ={2l%O5RrO455U%}HT?X1pXGNzz zRhMV#n8w>wTv^pIrg4o)aidY$r8Wbq@AyJhrl|`~+0TOEpoJs8Q1w8fl^`q*geAhN zy;O6=fK-(F61l{#TEt6TwFtuTAxm0cVPEdUOp zxEBYt*|$MB=xf!$m+%8?N7a=c-~QV0#Mf#lh>gSX5H?Xm2GP^IP%5x|+WC#@!BlY7 z9#tUw7(@fma0Y_rW*vx)`s~3zD8xV*S**dJ_jnLJ_PuJ)5^d9usw-~w_NyWYmk?N@ zhPUol4K2e~S>f3IY9lm9C>W7S@*xL&K$8$R;6?)usB$qI&qw~ME(6eYzpCr4ebR@i z7~;+e!U_i!*MH)J;gttjp@rQK$}(fbLA9CGW?O2RD?sgChtv>y!gs%^oiw+Vzbo#} zK++O(Nwkll0^B>QYO}}+8y!^_U~IReOwZBdN7Y5xLiHfmOQXGisLu#z#c|afa6q07 znp7PnNDKE)2tgN|klfVigxUxJWq1gpIw#fo7zDx@S((}cuhA%HI(%qOtLDIQ^=VZb zxBE`3g(_HHL64)@=g0KJxK(j zOd0eY7#6jYWDKZr>JZZirPuT z3z0o;g}cY15jC{SJpz#@289!A>6#eDNEWWCrR#|4m3mobKb#u>tCps!Yt+_N8L1FM z;<1=Xzw>u~cz12x`+Q=gx#Y2|^}(_gK1|ooWL_zXqu*-lKBWDQ`WoB);h6fm6;c`C zF)~r0vFV;KAdT2Z(NQsCjIkl;WH zpeP6rHP8i63d9S-oJm*c+oTlgeWBiMFpbzyg*DQ3fof1AU4^1&jZU%v9*ewJ8fk7A zhRZI|jUX+W7+S*7N!I`>YryE#CHi}bWZyQ{qdB$t1*Ocq@b66FLl3Bo4L zG`Gna&E#MQUEP~e-qECH8k-+Mc>6V?&Zn-?3{VTM(StdG@l_Twa6N8i+wBJQ3)E&U zbrA;N-BMqN+rpN*3Mc?An_7w)s#YRd1{^;T4|8{^IuLDE*s+za0c&6b9Yb4boIOP| zTj^q~l)ZGrPcDvfuh*ASNUd(rsFkCEH|RS2IlZ;6f!jN+HTKuSL>tYbVsIOM2ZI%y z7V>sN?ETynUD#I7R|t$TfU6g|H|buS->;p~ezfssy^g_Z)NK-OKD-${Hix}%FOOG@v*TTe{^x%e}TCkXSp z>pIAnct+T@5zU(F4c*0%VMYVHYo5Cw706;Nu17Qvbbq@_s@sf@cR^6fs z((9f~g{LR$vXFM(6kQ(#GHcM0g7CU2`ev5qD7nS+;C9xbU!S6d3XTwaP%b&hi*JE&dJKl%|@jXJ@<+}WjDja zQFHZu)&Nh;)dyY7|M7LrZxNz>CAxjUNY|}pmFU)Y^fNi=-1Vt$Rt~}!YmTb@sMpiR zfA~pXOx5K7qPOSceo&cv2jIp7qB0Q7qqlC)4&8m==;3Fp~weooUZ;>`z?7s|rosGoxfp!r^StosZ8D zWbfm#LQ@+IWBeOS3E{bBEnvzLbsE zj%`hOW=T>KME!3vw@}ybwKw|+;MJQ=Pg!%}Ik$r;(lWWxZ6*z|haYq_*eZ_R>tucs zSd0E`4)YfmaqA(})HQ#fLlZ7Nz3cCB!RhCRyY z$bZZi!t(pW&BvHB{%P|$k#-+p_Fn}~akgNv4I`e6?R)ILX>0;ks#s8^QpLjjvW11^ z%0mo{5iWMZY#qI@~*u0~If#3nBSeIgOZpYMAJS1@5bq!2(xS^B$=G7Wi>Ak0OR zN14aygk_&IPttbMV-3rXony_TWcKE9w8`+uI8zQ&0&IN+J_BzMW<75j{+nQ=iFak3 ziaiK^l%4Itc@`CJapF`uzaTF^KQD7cj6>#ZI59?+4)EY}ATS&}$yA7DKX1k}*)*DH zSj-HWXjYM~%U>`vP)J)wfy#1OiYJ3sK!*K(GWp@UDkc?ntzz&I4S5KwPBL6ebeJTX zZyB0BV*2M#F;Aj<-V`&8SZYr-(|Lb?s+rAuuW6o$^zieK2>Y!6- zaq)=?bc1FolEIdo42R*Kd7!7uC=_!i=9yY_Ube7kzPS*EErS`Y1z@tmZu3p$@VgS@ zMnmVD1SsU1_x5P-tL8)MYT@hVJ`2?bwW#VMa~tjOkvGgjDz#{-*`h8H_@XDu>HjzA zDMJ83Kodz+_|#}rd70sfQnY@B*{lqvmlVr5{ZCF`M5itg(7Gw%P>Mze+{DJ@*^vFS`}Ln1=FfE*EsCG>{{n@n|r z7uzEGD>s?R;!WGPnq6YlBFhz@nkLlOZ=ae9*IT%vc1%P%W>Dj)B{uR=siJP-mCcSJ zd`aIj5$J3qy5^smPN)(npA4=27nus-TiX$Zf$o#-<~-hyZZ{3dUyZNKdgm-(2fneH zMs#2!tA%m~0dbu7t(oUoBMUeGU>Y$uS*?{KJxh}GLt{2U_8NY2*wo6{@Slgxm>9p0K=jBBk8CvMqZ!AHQq*G#F(c!((Y*iKm=z5^X|9oY z|IT0LAF=+mDrO&6$76Lahav257Tb$rJ^Hw3EQ<+mN8i|D2S%PulrNVTjvEv!4CfAr zHNu;n17ZtNF@(8BK~llXHT1KX&4V}JjbW7~z{YhQ`QB(b-CHP+3;o7b0R7=LYLtP!V1yWfw!&pC58#s2Hovh+eJ zva60bjkN{JK$eFr=DC!YpW)k|$Iip7J)g&xI^58df|1+gG6nAP%8u9{j$N=>9%k;2 zCF+2O`AG*KNkknyr>z4o14O((Gi`CUbJRgDu)?!oaRp?+TwWe83E~{*M}Qbx$vKB0 z@E#zr5E4O0E2=rC$kEdCosq(PllsmeN9yKi*~QK&e1aOiah1a_Qp2U!I14C+J6bxo zIQTxXbh#y}LO2W8-r&5#0e81{+H&HO+nm31De^_V?2GojoqLIGWj|*Zk$}t>A96Me z;vR#Y3;1rrQ0H8hRZE_B_&sSfX@t`q7R;&~!%vTP_Hxt@;~gCQur!VihR#il>{0O) z=Sk*~)zh6zAm*}p+2zXR7UY+$P*@%f)vcM~tfZJ(U(0gqz1a@8Hk0ufK>s}3*#ywx ziUkffwWECtoVx^UtA$QegXM}{ALnKH=T@pvxk3T*H5S5fD-_URar$D18+pqXJ6!O8 zx7Zm^SpAnf#XR#tqLf7kR>R2TXdnob6_n3Ar$Rms0cBqT`JSKFijt#mmOHZ`!*Iwu z&J6(g(L2sP%m){~>(n8yx4-M0YvhYuY+C6uI55U+EYm;|SQ-0)gJWdMH+*5UQxo%6 zZFX>I7=69j;iryK;!|fS!L9tTmwv&NfaRY}^_cGSj$kh}3R!-MXeGR$K9y!Uj_L+^qa^xfKh` zqrf49sU)_z;KZnOpqLp+SIXaieD^_voNrf@SVTc0$Vw0sCgUojJv?AeI@@I>9PQ6_ z4-`@)Tk5!Xh?mxB?3Shf7B_bjdAMJ5vzrnRZ+DCPCr#_xPVNZ?EbD96baBtYRtq3> z?dmRzG0Mt%lqaj1oetTD!ZvabSG%w*%;QQ-nsuWq`nX>^SRhJ3vLC)=J{UYRR#Y5a z+TZ=2BosdE!nn`+G9qDA^oaYhMBGDzU3>`*qdM}0+nB7?8se^w@xzo%){<{G5n*IY z5#caAHO%F=el{w?0IEIZu5(bO!tgMK%TsZCOCGKma&n}*-@%45-tZ-_WUTahb`oaG z0zHb4b3e0Q8-6{};9d|Ts!8uCn>4V7rHwnKrAeAZ)a3-*Sd>n!^_sY7bUC_9@yyqc1EG$uB~oG z;1V{&zqY!ciE=l8>bmk7jQxaE@{L7}LL5Z>^ribVi4uZEzc#-h*6adwm<73Eb}D6& zJs>*T|2>$)ruSLSMKYA6h*Vf(D!_vs!vGXSzaDVEAk{)>^!_1NasWn9;`pTNnEPL; zM9?EziQYL0D^tM>)8b8OIeBict+o>c(oWSK=SxMrcH`*a-A1vSokn6zCnzfU(@odV2s3g&Ju<}irqAuTNwYA zriIz)K(66Ht^ll9>qt$d?VeXL&Lc50y^-q#FN6bSL67lMS$_r?eWnzD%=ylh2}G4KwNe)o){EQ zr11Oc;r93NQSm1va;Y)#9tPCgeQK5!ayTf;gZ|)9_IQlti7+0Gc|QKL&qEZ3d46Oe z$7kFU!ZS7mro}(cq~1&yoiV!qWpH8b_s;q8{a`4%dXc52#j^Nce1*x)R>n{ARg-mb z&0u!LXK_i`mwgq#nK63wxADV#|JdI6V&;q5zs0fYi8}ulUnDp)8x;|c1aTq5yO0S%QUR`lk%i7gc5h`I@%6ijHC*u&og zixVeEN#7QUCoaVOr-2C(^nphczx!0v&ZiT$ko;4Xl+sc{V2Wub;%GSoBQ&JNOV#gE_Qm>j2RULxiv zV%Q*OB84`_COz9yj{H7!}0 z;kEWl$;RC1kk=Bo;0BC<2$q?U^~lWR7xZ(KW~Ix&GPI&IQBNMk!!4NTfw{?p68THt zWFiN4W)>zlIQX84XKQevgo`Z^@Q+Pi7xhi)pAaLu0f7I9ChE2{`3Gfu+nXQ?dB_f> zmd_3iuUwPlM~Qc=NlxdQGCICKSw}T49ZcFKweq19I<3x2Kp8l`F}a6C*4~=T%~TS=1tHkP0z1F< z%cQ2luHTtF%F{BiL3syJi(N^{PgWni3Wa#n9Xf(8mR&mxm|PZFiVGd{7F)p;>+zSf&hA0pmkY5Y;`F+`$|T2ndlDPWH*< ze#goYf;%I-3|g|sf53prvc(M!uw7k-C&&BApCPFEDJB<>%1BSSob}Pu+GQc zL5j6tyNC5|*kQXj8*h(q_qfW5-u=d_Kq-H7z>eN^$g4ys$N%z9k^f_-y>}UJ!#5p& zG+m{I>%U0>{T26xpOb;l@SsuJv;Qzy+^DEe)^Un4E#oYB%Ltk>& zzQ%rvqB&CRKSW$ToBQ1oAn}9ie0t~J>-^Q=IGoki$6;akSzCV-dS~3|UqtzAy@fx+ zX&wA)IktoU2c!PZ`}{pbxvHOEr5x@%p7Pi5R5qM#Ntm?2Z$^|~F82SSy0^XKucdI( zoBbQ`^V`jS34xFQT%hjw++V?;<97JXaJ0@W&RqP(4u1t@HhQ1`7l4G%{OO}E3K#$B OSHez=T?X^i?f(FG4I-fc delta 12121 zcmY*f37}2Y`fshZ*WPFEeeOBuj>hZaqKtJ7Q8JVs(G!UxQ9PxHOp(e^Nuh`ns~*qX zt7NK!PfEO^BE6zP14^NYZW9`m|Lsx2exGqJp1!i=nOR%c|LAx>u4c{4@&O#PAR;SIWGUT)A(WWH{g@5F*sBFxWCBs2Pg z4@G8QS?%aiGAB%CViy+5OpR7ws+vJENW_EOWE{P5#elq2PSjF~cwQ<~=aQ#HW@npg zb-GrE!c5B!hh(OD$HO8muUMbnct!tZl{+gLBr?_i{*}l$SJf1k1ehTn`0>C?44oK zC)3@AElELP&_a%FaqyFo!@m*f@;e$e2KkWxGY^(pPMAvOq%cV$#GoXPv@>CW$xOEq z(_}L6{g{Wj(JwcdlSm&ORWF?y-6Yd)^gg^~*+%r3WV*@NdYN8h$4EB_c%t;~yV|Bx zZJDw6ej_TeEd7`p_+IEkT@ZGV$cZP?cTc=F zvwLDO1a)7r1o71U1)g0*fQj#~=i(mIru*MtH8cMHuSI&`lmVG-QyQzPK`I{PCF7Oy zbMtclge2A*Cet|&7pEIOT;G8*6Pf-GYn2%^<6$8K&xnztzL~U4xak^?ep{F40R*DP zeDee78LaY}B8jG(&#YUOMG_B^;29RdaLUceO+mh(KYr#HB7MVSgEQM6t1mO(&T&P8 zdql8fiKm^%Tcj_3ycp~xg7kpLi!+lR|48Hnu@w5{q`j3j`J>^=dYBO+iS!Ev zWCpD)mCz0r0nZc<(sNh0PVZj*L}tjE6iBQsjNUNH#N(=x~Z{DfA{i{I=pn&DV&UD0S*+t(vLZ~;vO7u#%^ z?!2uyJ$PGj=D}^pWO~FKbu;tcXfM-yceG6x?d+~O%p}soc2>$fxbqc}xqR1)%JRWd zOMCB@rW?LnkDWQbLq?3-$dhCSzk5KWJML+gxqHt8suHg*!Z0|C7=?fn=_((#vYrJ- zYiXbtLkDtCW`=z@OBb@u*>%TbfDl?VY+t9$fPIs7DZmnG%7df=>k7~TOJ_nnBNiEa zaXE*u9$&Oonc0VXi1eW&&!%U7H40*7%INU*r73m~6*k5XGyT7Q&`BRUzA8QE#3SjF zZyO=Du|RR*DQ%B$CpjK$k4-A`)ekL2y5y%yCA?6UffWO8tV$!EEZyEeNtNk)dWLW? zG?_W^^I*nyruVP8Dm~=)dYRe3_ZR8!{#XIG62h0o5^)5rr_c844E7@9{U0_#7cBw_ zt2q)ruD~bjI0!<1?Ljh;0W!h$J;Vt~?UmRjjMielT|+WVniX1H<6A0FLc#>DXh8eX#@{o~{o>b75wMqN-UDig8psF1jl-Iw{)Ix}?~TP?1Uk4D38C!^}3{ zm=(FAb=J(REEDEruBcf(>qR2oAx=o{Pv=d|^F%^YhXQdma0iO)k<7wMqSFQw$Tdu@=kaL~XGgQZjQ(#SQrpI#>`9YY5fG zt0PJ{W^m+UlGMD8NJ?OUI@J?TNps>n@rOBHU(_uL5N|QB=PF#$vgi+>&}d)-@tTH% zw*p35heRorVDSO?l)6CFc1*M8;$`z)bMXRlp1@7fiWXv_q%N(*^YZC47Yl|SiA%&w z%4}{YMw;{6iyib!dr?Icvr~y7k8_oW$zvK^Fob;TSE%eVF<6-=|0dGZxTE+?P|g)% zsy2^z6+Nr61wbqqj|@mV64@ZU6TE8DI9G{!)bJ{#m$aq3XdrXpa=o0;OWN?2Vu_#W zA)YXEuMtD$^%M;}3wiL^yr<}=&73}B2{pf7JfZ0Ae&QBM&2JJ9N%QhR@ozKeAL483 zI!H8f=C zlVe1_Ab+fABTT1pqK{cJPCR0o+yz-!Fu+ClN$P!I8U%Sf<<@eTL$oq$|qxDcoUu)l-MSCX%C3K=DaDe+`mr|#TxEaw0E5!yXe`lxh69C^yA(MI#m(yAd!6dn(Aw?hC*rv|?_ZE5?}pbK#PHo-1ma zD)U6EGR~sdCg9pC2!pnjf~AG$_yXqa4uNGeW1hHHf@1_IY+ImVQ~rebK7|16#bY{* z>A3Ia_%8kUq$q~zBu&A5(a2niOEs1)7>O?I?f#Ts(#)EVRlYx8lv->+#L%A=w6{RC zy^Pau&ho8;%8PVuu@T842sq?n1p6Jt@hsC36`mD*&t3p9gKq?Wh#A5*ufj0a0a_r@4&O%=~DMdXf{HDr}`GPq4f8oJ?wW-k@jNQOM;^A?=u z=vMvOCSGooo^nn&@q#-GF@iEs>t=%ZDDz=P|=ZSeZcJDuDhF2Q|7 z>P0c8CdWNU4p-O$9;0E`7eRulnB6bJ7nE!gZNW1K!auX*tb(ne6Eta)xJR1bUWN+4 z+bp^W(|U^-ZdPm&RWUQm;;k(}d;6`TJ`>?Tn?BQ|t)iBsC9jGF(zM+!CUC&St{;(i z`*yLM`$d7(jxqPXF3!_7x1u$#i|++3dD9MjON_KxA4L9^c!iZYewU~h<1Cfa9(s0{ z_(hoI{}pX2_Ic*`f5rWD$2%e+%*1!aa#OlnY%rhf7F~JM%bRK|Mhm=)_lVMb)^3#6 zF-I`xL}1465$Bs{_lWms!h51N2PU)pebFk*;gR>nMK(s3?iC&!GJ_CNFoxHZ=XdWiQ zzBVf_zGqjRg%y~$t|*>Dnqps>Ne96EngilJ1|J~KIk=`-pCR1Pk#*qIm@kfsn@opeqSWTDcxy%+6J-^N ztXX+X?5t{s!EoX}k57SF7B&;2Ip2r^_+VsW<)W4OvRrhr4i~o1vcxng)BZbAGmGiL z--&u==69krO29*8ATs^^@@na=JsPCf&Tx$WUfi8P8OCx6znJ5L&+o-VNr|7tC&C;( zDX_`R`W}u=A>@KN+ME*g;WlnNB^sa0ri2Cy*t2QY;~QcO#8_08hK zIZa)Yx>|Z9Pm3?4ncYE^;Sp8;RqPR_{5NrFw&25Sfd&B!=*)CHg9td}3>>vNBX+VY zw*npdyLi>9#F(^R**=UU4)L`j7@-v#R*wp)+glpJZy0gh5~p-j~9ptZ6+pV5zS4?o{Em;$%lm*T_9Uv z6`psC{X!t@3OaqRbg{o;ap1MrNY+DX0HLi}BiR6nwKZ-V zH@W@*Ud`x6kkr2#$(rVsMsiwdq}n{roI)(e3Jw4avr&byMZ+7*p^o{aOg1$+O=YK= z?3e&MEGbH=IZdIGX(j$v&_V)RU8=dIYH3a)^dh0vW?u%)gM+L94I&TjAnlu z*~%2Pm2=FqZRK2Q*G^UuTn1#nl%Rp_<c)(8JcU_S=KXsI?H>jF+G?=RH$RGU^j#oRpw-8 zS!$|uk)3Nsb=^3d6u`ianBxpq#mMK?JlI9HDB&+aDyFwHgB7j?N6rNv%{)I&G@jEm zH2GJ`I=n|hQqk^8Swc5n2_eBrJzrloqupKQg~G(T$wt(on`|J=P2FW3^I&(`$-LcN zjxm>AE&I~KtEG^%_!?=1Y1K;>n`?W?Ml7SLy<``&yO*q4Q7kaO^^()rX1dE_ zfW>-RI`SOYoeyZI`pGi7te@=fm?Z;b3l6QH43Kr_4U{$VARjI;i0*jr+#GRW<+-8>A}ICDZX%#uvidt@3SDTJ5x)PbCBDdYi1J=#JavOl0VhcffNK z442b*gc&aXEfMQ3y#o%z+&Wr5fK58)GCz!#*P6~_WK-73q%jg@D{Jb&KBvBz1T4@? zVw|K7H5NVg&uEY~+a||C zbj265Y^rREh-`y4;(UBQjURD}oTKFf~WcHp}M7mh|Zy`2td{&>U3lfY?1B8=G14glq`mf<0gq8B>bBenLJYY4&{i5Q@EluPx2= zu(?Td=|Y)rdM%Vq5P?`MK$n@hP+kKAK$>XX5GPRVjDA`u7l6nTxmB7T%Vo<#ST5`u z0{S1^Cd^{IQf$=wmdg>;^(i@8ng2W^tJ1z_(o?1CZHGpmr{3_W^#$s%OSM|6_ci@|iR!DUS9^7Z zFpDl#3#sj8s?ecc;73wUXLXaL;a9444%O|hK9ux(4^_w|_;^57da0h$48Kktre3|( zEdsTat$kFfq$7P*T9~{0sXu6Ze|1#SpaH5J7{qB{u00URE(hz18V(H2=t1gh)9+^W zck|rMYAxMxi}D2x9<08Rrq>YlTqF?A1LI~%Zf0~1vbvv;C;-{zv|f2Zj&S^Y{~?^9PvTJV56PgH@OV=su)6}yLLmBz3d zlo;sqDe42q&@}ZHJuqFpC(Lz^sITDcP-|4!$}-GN*GE;=d_VxTZP)rb*{A-MmCi(>yev`aZ4xscT0wyEw0e zDAA(%|5_H7@a`&*FJGm!X|qbz#bJ`UZI!x!7OYYiMmr5?w*fU-tKO96^b2YjfM89R z?#QU?B)zd-trRqd)H|Xf1Yt!HvT*)tEXeF291i$=RuQMWUQ|y>s`0Ygi<(EI%t*Yr z1{B|-auwBh73Rf(?&HCxg1Z&|x|S7F;8m>RoP{}eb0 zVLDhb+zCjS$9AjQn)!pAcB?00Mjxtu3cQ(1_Nt4o<~M(~XcWG(;JB89S6s_OWevMD zd&YrShy2Sne$T$2J4brOHK0%Tsy^CIa9_D9G+Q&uGiwJa$K0@A<(fP8tGZ_1epN<0 z_N!Ml^PT=uHOz|y2W4eRf!zaNs;4#l;Pj)ac~Mrd|8FXQ{lHOmOv6b=ZZ(T!tc|Cp zAIm|&EI0|X3~0wm^{Ar*7*npf>0P`X^{W!db|Gc7fbRPZ*15j7^EW|@g!6}{MV`Ip zI1MhMogJM+b!pA*PQs;EMmcM=8Ge`3gZ^`uvl6!xow0OyqVq6rr#PMKaXQQYqaz`X z=KKXF##wPx4#Pt_JjL0q&Bo~tj?okJ@pR{LjDO5|oYZV*h^FE5oJ-!f{;cy4D#G(3(xm;hL>Z^Ee&e<-D$GQ%>uNfO-*cJVRzv8cbM+ZbA2ikvyL4l7 zeHW0Bq)#u>XF~euZ(6$M(<}9}H1+Sgr?zKxoM}Yz3u5N@)p|M2>7lO*>0m$od#?HX z4m_ATLf@*X{7$_O#1iz*J^F2z7T&KLYufdYE^+Ai41HM8o=5c{00Eno1htu?4{56X zgpRo~NKuo8y1S&wi}hq>#B$vtH^|RR78K-GD$1`?xezT$otNuPNTWDg;Vd*~g+}?r z_Z%EqtkAoV+pN{+Q`uTQP}1BNbZcdHuh-Q~`FdT+cpG#hYQ90whFD(GZDLXCf{>N- zvPMSdyABe02$x#Ete1r5<2Uq`RQF9iSei$7>IU@UPFMMB;Mj)r;(g~Hn ztuzR`GbxmsjzHY2&_+I^jG_^j_HK_e3`Z;Zmf2QkG(dW9pOYM*7D7abMw-nrSWCg{X1?mDLkC<6Sr(qD1(%-Ew%LtW_t zD14e2HMTi=XQcb7wnw!18etZ1En1^qyqTn3PCT63?9oTmcWsLE}g;J&44`U9@Q z>E{%;CA~St-HZ}a^VG%*KXittv9DivIZI442l;b@wo)&Gh+hF`w8XgXiU~o9`Zg^;yH>2Ygt-JLv>H zvjlH!Nr4`H8iHgmR53s9%#*9!-{BPJuXcZRXkNzs*rk!1-0MTywcTB<=$;*J(-;Hc z`Q7e!ICba2(aLxNdw3Cj<*T)RvtzHjhZcV1x_m;(b{>hD*@}kH=Kbz57&G%{)nwl! zY15aOqJW8TAtAdMCXt}mj$#$({fbWb@b0C9Ds{oJ^OVEAbBK zI?*g#5ryP<>tr`RxZ0J%>oUyO)dfT5(S}}eB`z@A<*|1M#*oJ13Yj(ZUdP(Xykb-w zqLk(NGVg>oi&}a+X=p1ibS;8F7#M$`t#@H5Z5rUsh*PKGUeAygjQ6l3S}@6r#p$UT zeE-yJZ-S&ck9#*OF5hO0*5IBuV5|@{Al25CIlQq8TW7pup;@%dE20g{y!U`VwmvY* zB}8!fv^J4FL}S=VT?xp$NN>&?QeK8kM8)`L!h|*Gw&LgwjTD% zHLd-|TN9d_PJ1nA-f3?&N0z9zz@8~dJ%0zq2>O?)*eT7BVz_`$NC_qDE`IDMZQ3Pc zmFT);Y*8gZ1`DCz>&4y)>FuVm(4~)C#SVt_(&e#VG_CIvn{WX&yC((?o81@tA*6F3 zjUn!yn~p6BY3IUNy*PcpBKCGA+VX0wUzNO|xO!!{y~6xl1dpnfi{K+K*oUKWy69l+ zNM)+|Yiva&Y*D58&yAuI9nST?tVBEN`-tlQJ>UN|a(U*R7JeZeZs8x%w%Ctf@6ZRW z{r?ux@*aL26ff+0SiN}hQ6K+1I612de7ChRj`X%-iYu0#pQ7V8`VAyi9_VlIS?+s= z`sceONBP%l>Nn1x;9|FnofI9M;3G{vKF$9Yzr|sz;JL!UMWGs%slZe8!z}-MT^$EowIGZ+s3~z|AUV(969s(C&HBcKhvxflIJ9!HUjsil0~8{yM5u@qM2D96 z&k35n%r927=HGrx{IUci895BL$csdFAfNF+fXN_+S7gQKuzsyvB9_@)cr?k?{t0$} z{0fbHg4s$r3y#jd<+oGR?j3)cGt zJtOv$boQu!9P6@v!b{%l%!^g0m}SBJ6w)orEOML!x2@kgXEqz(#>BXaWZ} zs6YZDfCZk=AHVq@>+J7bZ7iTeBKS%-0XZnDLRXe4jKD7qq8d3MhLX7}&tX(~z)~!D zEi|v^2Nx6ezlTHmssvOxn?#FPNzj41!7n&D%u>eL0BSk;bh=@%P@8#W!KIA&Ps;+* zCfzb!92=itOfgC!a@KA7W@o*ckY=&8YLKJAzlw2|b^2{vomZi04k(#wPG+Pw8_ zaFP8%w@p71D}t{bI=wn5@+h$(K)%fr*s9m>n@|a(#G64K_@1|!aI^P<6QQZ~S+@nsy%!s)Y2-ciiKfQ$h6{f<2y5q+{VWOqUbRpx%jaqoCYWh%UKB;YrP> zKGBwda;t|gDB4~U{vl{vE$*@H-0-qI@-7bHd!6=S+@;)(;hl;e>KqP;nWI;S#pLw} zH#=tgwPBe#eQmglwp|xC)#mgK;V!eSUw8%O^bb!}B4=!P5ND#}!Wspn9|>P6p>5CE z37!wzLs%QbKXS?08Ey&9whzK9DfMBP(PrDHJbque0k;Ry54%-V>M7@oa6?GjPK3YZ VnyqKU`sUc#5OoNz0EKo3ng9R* diff --git a/test/models-nonbsd/MD5/guard1_body.png b/test/models-nonbsd/MD5/guard1_body.png index 908b51f83f0fdd61c4cb16589508558fe6af0010..2eb3f2caaddd89d6c69c10983e5df684ca339aae 100644 GIT binary patch delta 34 qcmcaSpYQ5?KGx0vKX=|nmR1(Vtt?FMEE##*KUp$u|76MhFcbjQvkXxH delta 31 ncmcaQpYQT~K9M(HU_)^ delta 18 ZcmdnHiG9x|c9zZnKlet~t*nd|HvvU(2Cx7C diff --git a/test/models-nonbsd/MD5/guard1_helmet.png b/test/models-nonbsd/MD5/guard1_helmet.png index 081a0498fb92a73b76ff79fc725a6e94c7f136e9..166d790fd4f30e332a422d61434bd6a4a1eff5f3 100644 GIT binary patch delta 30 kcmezNiRtGjCf3dXKX=}ZEPpu|c{ek1hD-udp|cg`0Ktd~vj6}9 delta 25 hcmezQiRs%XCYH_sKlhESe>pZYbB0XX95Gu_4gi}03XcE) diff --git a/test/models-nonbsd/MD5/iron_grill.png b/test/models-nonbsd/MD5/iron_grill.png index 3c30c53c85cd41050f2b9b56d39ef376c3c47cc5..53a3bbbcc2893daded718aa58051eb7d173c0668 100644 GIT binary patch delta 16 XcmezQhxykZX4cLCKX=}ZET#VdM|lUD delta 15 WcmezMhxz9pW|qzXKlhESrT+jy&-vR(p76=gl diff --git a/test/models-nonbsd/Ogre/OgreSDK/fish.jpg b/test/models-nonbsd/Ogre/OgreSDK/fish.jpg index 122bd83828f697c14fc823532ef4af95302f7561..04cbf2f83cbfa263aeeb10d62862a0eb1b7e965b 100644 GIT binary patch delta 19 Zcmcb=Gr-S%BkLkw03Y)NTL1t6 diff --git a/test/models/3DS/test.png b/test/models/3DS/test.png index e5725bbbd0e6b9ee3d57af9adcc50fe8b87f5ed3..501fcdecfddcd9941c41fd38942e9f1e0c1d6c32 100644 GIT binary patch delta 23 ecmbQVlX1#UM%K;%KX=}ZENp&^yqmfFI`{xx3I@{v delta 20 bcmbQTlX22cMwZS1KlhESY<`=0{5tpmP2~o< diff --git a/test/models/Collada/duck_sample.jpg b/test/models/Collada/duck_sample.jpg index 953d3e5fcd3313466c4246e7366da4c8fc19ea39..9ce7a59ca4539152ef2a08f67ef6d2d1b7c6c0f4 100644 GIT binary patch delta 14 VcmeCn@6X?`T9T1>^J>Y*vH&kf1@!;` delta 12 TcmeCr@5|q?T5|Im$;Yw)C>RCk diff --git a/test/models/Collada/teapots_reference.png b/test/models/Collada/teapots_reference.png index ef01c86017077930e70cd212bdd22fc62e9c26cb..c7db36213de0469c4813ce8bcaf9fb55e3ed1815 100644 GIT binary patch delta 55 zcmZ2KlY7fdZr08KKX=|nmaQy|O*xFb+uL#&T?ByisT#(|K)QWxFXQ&Ly-ZOeKr!}3 HOe?ei`&bdz delta 46 zcmV+}0MY-nnG3I(3j~Q!PDg delta 20 ccmZ4gh;i*BMwZS1KlhES{;r!tU2kav09yJ8F#rGn diff --git a/test/models/LWO/LWO2/MappingModes/earthCylindric.jpg b/test/models/LWO/LWO2/MappingModes/earthCylindric.jpg index e1bf47eafe1f011c37301fab44debfa0c05fa078..da9688b44ad07495eb8181c983b168420052383f 100644 GIT binary patch delta 61 zcmdlxQSHD)wFz#Fyp3*K-5Bp5W#nyFJ;n&cOhC*G#4JF}x?S}co6`=UTzVZl5OZu# Juj35k0szfo7AgP$ delta 55 zcmX>wQEl%;wFz#G?pxg%?;mYfKgI~eOhC*G#4JF}x?TMko70Z=tU7ie=GdN9#~H>2 E0FiAL7XSbN diff --git a/test/models/LWO/LWO2/MappingModes/earthSpherical.jpg b/test/models/LWO/LWO2/MappingModes/earthSpherical.jpg index 9c9a13e4ea52cfad37605bd9e390b0e78885c33b..3419e807173dfec482eae5a5bf58c3fe1e976451 100644 GIT binary patch delta 49 zcmaF*Q1Zn?$q8rJh;~BS?#xse3YwrzZ24WTk@dG304cr&v;Y7A diff --git a/test/models/LWO/LWO2/uvtest.png b/test/models/LWO/LWO2/uvtest.png index d4a2fcb3d8147af2ecefd7a7b69ad7a51cb73a40..1701d737b46c9ad50602ed584247d83582f389f0 100644 GIT binary patch delta 14 VcmZ2ezqX#WGr-TCcO%ORdjKtI1#|!a delta 13 UcmZ2mzowq0Gr-S%BkKx#04Z4oX8-^I diff --git a/test/models/MD2/faerie2.bmp b/test/models/MD2/faerie2.bmp index ef372415fa2842a937219d3742fbb2d797a90488..56a486a6c2695a8648b22455415725c68f8a7abc 100644 GIT binary patch delta 99 zcmZp_!Zhg$(}pEJjJ%td_-x<+QX!#wj4Zrd99)wfLxnfb2wTL+3gU53ejgw@IXEH$ usAP4-ed9?mMkZd~&Ej```2nA?5MBTP delta 54 zcmV-60LlOA*aPI)1F+2!v(6H*3A2A3LjeN{BmtALFdmao1Q3%T6Iqjh9}2Tq9+17W M=-V>^vmM<{4__@6FaQ7m diff --git a/test/models/Ogre/TheThing/Reference.JPG b/test/models/Ogre/TheThing/Reference.JPG index 29aa07a8af4f57824042212b3dde8d132bd3bf94..6eebcc841986c7238081a6f3facf1f8067fad48c 100644 GIT binary patch delta 41 vcmcb0f$`o2#tpv&70NMZE&;i=e0kHZIv-=Re0h75BIkQm}qXn}N6J7$d^cvnJv(rF}Cu#5zTL1t6 diff --git a/test/models/ReferenceImages/MappingModes/cylindrical.png b/test/models/ReferenceImages/MappingModes/cylindrical.png index a6e008fb6cff5609e17d12a6aa218dcc940bdbe6..a1ad5979bb322fe6bf75f9fc441294d1379d45a9 100644 GIT binary patch delta 48 zcmcaRS>WMh0oKj{KX=|nmaQy|`I?Np+lw_Bi>3hSr+XP+Ix+ILo?~h~$Gr6%3qL0S Do5K*V delta 41 zcmV+^0M`HElMvmL5Cn-(PDgpt+a)y^&pR>lw!g??-2NhqiD@?@@Ag-!%=St^ PF-;HV?V27epO*jtLzNR6 delta 50 zcmV-20L}lQ+7q1G69kD+PDil?6)1xnD7PCZ0nb8*>uLeF>uLf5ySMHo13w~%E=U8n IE=UCPq~zoh?EnA( diff --git a/test/models/ReferenceImages/UVTransform/UVTransform_Normal.png b/test/models/ReferenceImages/UVTransform/UVTransform_Normal.png index 3f3f5d69eb9850d1060cc4e04a994f7da798a8ea..b8f6f54f1f5e2e3014307c83195238ec5f0a36b1 100644 GIT binary patch delta 16 Xcmdnr!*rmBiM2Dp&z*N8i**|SG!g}p delta 15 WcmX@m!?eGLiKR2Z&wV4SbsGRLzXgQ= diff --git a/test/models/ReferenceImages/UVTransform/UVTransform_OffsetUV0.5-clampUV.png b/test/models/ReferenceImages/UVTransform/UVTransform_OffsetUV0.5-clampUV.png index 8599de67603c13e64415c2bf353b6183cadd9763..aa07d12706a14b3218e9272c2ed74b842dcdc62b 100644 GIT binary patch delta 16 Ycmdn9nQ8B4Cf3dXKX=}ZEIVcb0666aY5)KL delta 15 XcmdnHnQ6~vCYH_sKlhESJ7xj^G)e|t diff --git a/test/models/ReferenceImages/UVTransform/UVTransform_OffsetUV0.5-mirrorUV.png b/test/models/ReferenceImages/UVTransform/UVTransform_OffsetUV0.5-mirrorUV.png index 96bae703cb3af8d05bd88a6fb462bdf0b8800114..447d30c32624c829d9efc3622d74bc6d2847c6d8 100644 GIT binary patch delta 16 XcmX@|kLlwPDhaiJ+VW(qO<>^93HbA!4Af^D~ADzcN4M?UH||9 diff --git a/test/models/ReferenceImages/UVTransform/UVTransform_ScaleUV10-2_OffsetUV10-mirrorUV.png b/test/models/ReferenceImages/UVTransform/UVTransform_ScaleUV10-2_OffsetUV10-mirrorUV.png index 317d4a62cfc3d16e06c1cf2363520c14823137fa..3e32f1bd5fbd1c939347bc7864e5505ebbbe423e 100644 GIT binary patch delta 19 acmX^1gZ20iR@Tk{KX=|nmaQy|PBj2j69)wV delta 18 ZcmX^9gZ0=CR+i2HKlet~t*nerH2_Yr2KfL0 diff --git a/test/models/ReferenceImages/UVTransform/UVTransform_ScaleUV2x.png b/test/models/ReferenceImages/UVTransform/UVTransform_ScaleUV2x.png index af08afde6d5d600a443f79d36347d588a4c0e62e..fe9926e4197bb25b4423bdd1c61a7afee4ed5779 100644 GIT binary patch delta 16 XcmaFX!Th{~nYA;(&z*N8OVSYlIJO2q delta 15 WcmaFf!ThX)nWZzp&wV3n(h&eO8wN4} diff --git a/test/models/ReferenceImages/UVTransform/UVTransform_ScaleUV2x_Rotate45.png b/test/models/ReferenceImages/UVTransform/UVTransform_ScaleUV2x_Rotate45.png index 9210d2a9ceff22dd01c67a9847be8e043df5247a..ac15908c365454077f041431e06079c5150c5191 100644 GIT binary patch delta 23 fcmaF(nCOV diff --git a/test/models/SIB/This Way Up.png b/test/models/SIB/This Way Up.png index 9cac59ab5bfd8c6c07a8839fce6740aaf8c7e8e3..87c8ba1dcf9de4334ed9879da41a776b6c44c22b 100644 GIT binary patch delta 14 VcmZ3ew@8n*Gr-TCcO#3eH~=Gc1PK5D delta 13 UcmZ3aw@{CzGr-S%Bde@903aO$`~Uy| diff --git a/test/models/SIB/UV Mapping.png b/test/models/SIB/UV Mapping.png index 952a51d7496ffb6fa1f68069ac86bcfe786eae90..3d8e235d463c8adc3360e6e2487e83a83c71d016 100644 GIT binary patch delta 14 VcmbPZKG&SJGr-TCcO%OTX#ga}1dsp# delta 13 UcmbPhKF6G;Gr-S%BkK%l03l@rg8%>k diff --git a/test/models/X/bottom.tga b/test/models/X/bottom.tga index 5a10ffaae6be07713950cfd1a0571e44ae8d543c..4d6fd56e67cdfd366a51c4f7147f9b1ffb25ac26 100644 GIT binary patch delta 2592 zcmb7Fe@q)?7|!>_b?Yy{E}Lw{c10AohI;%14qZz$oopq9CB*5HGO{j4k`o#dlO{7v z5|lw?qkYwr%@Uf;7@d@s&!mY8+g!FlP=^MhK}Xk2F&cDaBp4DVes`tEQSL6-+#lEX z$M?R^^S$yfA`%ct3UO4y;MfypR+_(Cc6 z2iex)O7m{SyQ_Hs>BA4UoY1YE3elD)gor~J1|vmaZTE(Tw`4fs{0QyMxSfqQp}We! zapT$nv^?j32tAgGN@Flk3@04xqS8=Bz;ArnN}FF1ej~R>cof%8&EP`C98aW%V&>yg zEN%9yzG9ddV4<&Dze_QP47M#OPAAsBfR$4r#kPdPTIe4u1OIsg@t-NfdD(?XtZNBp z$bwi`2lRAmNX6NGTQU^WuDR2BC>jbE5$C%_GDooQ&*OsZgQaAVrrrhh2uMzM4~2ay z%_l3D>ty$p9FNY(I}XKXu<{+EEYp30$n0}LrYaP+faAQD-22?7ID1RtPqA-e z_+klX=Ed)qet1!Z6!P%ZMa6S>TwhZ372I4@pAbdSef@0E#?rkb{bK}2JijJbxvU|Bw`7J!Mb3)h>B+B^7oX^+epc_3$`!qdJlk<*7Qx|h zx1bB>#%tipbdLHiC#R>>cbVM0{i|#Qt(w-1M4J&6Qe7>6ZyX%~&wV!)EM$bH-YPP8 zcS+PP3UwC-JU1yT+k$iA!BJ?q;|?-5xaZ4}jnkei#I(*)TIW?|nNO+gCfz7O-|ZOg z{`2Xk1>J$U&V1yBm*-sO?|!?r`^=+KO%UHjg?C_>co31Sv8e109zZ0cQfrb}gSE9xoME+FwyByP^DL;6ife4e_tfVJX#U91 zNw$8{UuHoV^t3v;5_luYN;nt#HuVPpW-x#MPoNiP}>1)8@k| z89K~Wm!Z+DO{#PtTf$k6zF7x5uL8}lGc3E%OBfnlx$xTPKJJ_w9ibw}IZDwsDFhm| mA+4V3fkvA7qR2K4=e>q?USv$H+D%e>T}RS`5=jrP8~P8fOzial delta 2206 zcma)7dq`7J80Q>vHTOz!HfIY5Jy4TI_L7QGQATATM1?ey>_M?I1VJcPnPC)!>w|8k zQqfy_I8QNpU{pj=^!THquof2?MFZnDYS%2hV2TW*8hhs@Aaf6}b%@H=yE z6{$5HK`dv7Nb}VgUs)EOSsZe&pitv0lyU}+)$@cdwW+1Fz0BXc=jQuc_{%;JF0zw+ z8uZMQse&1)Zc}l9Sc5ZV#hLm#bD_C$OR^H4dH;ieAg&^gtiG>(si@_!7N$Y~HUvEe zqqM`xfY?;5L_~{IGa%4blb_s{`C6PuUC0x1TI|}GQh~@caIB^*^84GS?pk$;d^OAo zYfMNV4K02yby&u}z@7rFvt{*#wU}8|#X02Ij#b!UsLeD{>%mMd19XxW<(y&L4R~*(6eqhY$5dAHL^!%OY}@xR+nxFmUDhUhra9L;E42d+082rTKcTxdb7R< z>$u^ks?lT4+Yt?7>WySP5Q#he8CWd*laAx%Gx2_$rbbnsen>!ZXSl6}{cy!*hy+ZdE16v? zn+uX3!7|YWI1EjF9lTa%*NDM;<}*6rXK{~D_UU-xh?2fOm=e82U9bJXt|4A z6~rRqg;=XOJbeneBR{=i#D=IrZVX?np}bW-ehNb8bW)kNwM+_rFAZ6Y$V~Dm4VjO~ zEb>f2602CD}-!&WkV7P>ImG zgltxPaHm$aQ*Fif8|sk4DU23d(<~~>PJIGH;I<(lBv`iVbX!_lE-|oJUw@ccF zneOcDzW46A=bZPQ@0@$?J@;Y8jvoYC&R(7w9Q^%(`AX?BIwDIf%H8{yPtMS_Q2fhQ zx;Bc{uLeOg1*N;3^Q9$?(yrH_d~MG%S-G6YZ2Arz(r*@0Q6K$D%SAG16#k+abWx@T z$**?%-2(~(r#UXCZ_{YwWBdvCA3000reV0$|3(=d2fw+x;+Ma8i zyux@$?aHG+dd$dGyYuNC&w-s`&w)I(tB^jp?gkG=sF%i42aop{@g&gj9~DTXl3Hy- z=(qL@ybNqy@L{gh-$Y@7Yx*ufV)>PCJT0fv{;H1KlPR@S7O^(PZTQqv6A*^M2~F~F z35|B&*R1DB5o@zTG(V>6w4f~dEZq_l8Q(NP4tHy0YG>0fpt(XL~jPQvC443l) zU6;DR4&#cLhre*mcx*CaXlB&kOBKE+4m3bkHQq-1H7#Dq;b~Iy45t|mU5Hwhv?-HT z`;DCTDms>`r1eSgCTQ!AT0zz#(p*4kMsv+!h%|w$|G9|II4^h1pc$^&(lV18abHzU zGmH(m@pjazwY~Gb@#j|U+LYOJr=1`AMxzzA{zj6$hStU234ytTf~ujGe#1u3lzZql z=V~@pMXfF~A*-jSC;rY_UFE%0918~S70^4%woiq9u)MIBfIOO|z_Op2|k-_RUkYqV~IZlwAjLk1)nVZIo)!4TjIBYk2rD zhm@y3ID;=36Bn0H=W$2Wy2r_n<8wK^Ji%bl(JgFdtvj+FSz$i7j;q3jQwfF|S7qHZ zoE|gn7Bkm!Y91HFuyFjSHhx4bpS-ew)3XzOeCH*+;*6;%C&&Bd#>-c3w6793mrAi9lSzNGTl4jisby zo*~~Dlr6lrV%9@?T(!Pj?=^E_VyICF`&AxoZ2LW{RBW^5) zQ$+}66MngcVq=y(xQ{aXq6A0>vwTcEe`9xPSU%ZLOFh@*We3n^4E1(iEj&mkQ{V`k zPy_s$N{;&Xg1jvTj5K8OIFvmY#-d)bfG638i*vX-*vn;U$l=jOuq_!BvT_K2Ca&z* zP~M)LJcyR*+8oo!nmID>eo(k6jeTSKE+huc_%D!CpaB}9{Ui95WEr`tfG?(~8qfxm zqJ<#ujv_wcnKL6}DOOrxr&z?AV7nM_yQoVb1d&{`WK=!Rk64p+Ne!q~sz^YU^SyeFD~Z|y&5RAJ=vGA1L%61?{?@a zeVeB7b`Dob=c=nny|$VQZE)USeWhf))3SRu?-py`Ol~yGf3gOvO*ee0+NxvDUZEcy zm2`iZL(=q3&P5BLis$eS`d`~B>3)bi(dnrCI^ILct5dJGN};{`ec!c5_i64nNmEzOy|{jBH-PS;}`G|6T9c6OSKR%K_Qa$O|LZQB`z5uk{ZcwGw93 zsfT&r03X`eZyc7^70Bw>m+|gvqyG67TqiBtI7_TL_Nkn2@LUZbHX7JIEXUe@JdFae z=065&Sbq9F*R+5d@-4ngPeTGt^Auj9_`Ce2q#_FX4kRCilgUSIgainEL6+2Uo*)!f z#Cl#%tmLOmO2O?4edJ(jISR09e~6coeEMVdtBj|4rb8y|Q_G~uoGT#Ha8hy9unyGo ztL7hq*my^5%PZ_-1YDb=3rDKwi=f(9x8Nu9L7t|x delta 4217 zcmd5JT3DErk1ZqO6l8(0j6e{G`%~j*6cjTs5RuAs zWx}DvB^VQoilL%;VpOukKujbIae{(O8j!`Ma}64VIH`BRn_uM`A z-2LwEeLmbW{NgqDp$q*Lg`02n;|crQ56Axg19H^;GzK~As@M=#rl3Q%8QZyeliq^uyaNs=^E6|sxiH18xBb=g9PLaO4un*!0{#SnwH8i!-_<^jx-63K$5gD6 z52vH6VLoX=a7kj=S7wQd1@)89gIYZ!k-%l3`n6cm8lRch8fsduucv4g)G9W1CniA( z)j$J9Yi#XaH$C=2>|~ zbHe)JXR{y~<1hTnr?vJHn+^udf;IOT3#8CfRw}@p22{K4h8TJ<}LOp>k-X-n}r#2ww)c588$}Rpvmw>S_ZV zBBkg402Zn8cR0~0TdVlH5XWr9??1r67~38DNwKBuI&3U0Ifr1&ZML5EBuwEHXPn?L zyza49$p7@?b2Dikb>f!}&S{bhnQJKYnbXEFq>3-#Z2C~qzJx9;O5KfH&X{&MhvU+P zyalI^)1tI)n80OGKov*fV5aKTqtJr}!@IwR>q27rsGe`&s*@e+`Uw_i+F(WQN0ps$ z)Ile)Gl{V?&^bEOKlYHKlc6LMxCRtF3l}nj=s^mehhK*oiX2rDT*$ueB6K?w z%PiD%%-D)an(P!u&L5G*ZtSoqK|LNUQ{Ez$Sp7j>KG?m9`m9u5FGKpGXO#RNnE}orRL#QvBUP$?+Ns$7b$p>>Tk=Kzd*b zew)cR7Bjt;(6%RWWjHW{dMBXU&Z(dm1${=)N~KN5_Wax?PHT zF3ZgV)2VI&?#ePtt1x4h`h>^T)buLW=}AtTrar2>U(94q(JCf6U^O*Ah$~Vj=wjx= zfD?2ngEu!p7ZzfWHob-Q`k2jegbHuFX<8!|sFC$}8g6}jHsDQ+PuZr++-5cY1Sy?k zfYBNDpEK7#j6O45wro8XqfAR%(ugMubD@E4;R!sM;aRpo(dW>7XSbc( zr~}VCflUJeO#=Zh4Fqgsz~E)rA0+K%)NedIJ#9C(<9F;|ja-O!7_k1PX9XZ6uv{a; zfvKeJM3*EtYUZ(-LHz}<1T9|>vx3&u7Lc%@zlBwLvh$#2GfwSdOQ_YuP z6WW76f^q$b6P6n@T-%Gs|NS0GeAPIm`u6eL)nNBi?!3ZZUfG5P**fojELryt&N*U- diff --git a/test/models/glTF/BoxTextured-glTF-MaterialsCommon/CesiumLogoFlat.png b/test/models/glTF/BoxTextured-glTF-MaterialsCommon/CesiumLogoFlat.png index c76b4d1a36d12207bedcec04b803d920e0918a8b..88bada374836fcecc80ef666ab093f61a42e7e0e 100644 GIT binary patch delta 16 XcmZ3qhH>#4M%K;%KX=}ZEOKE0Go}Se delta 15 WcmZ3yhH=pvMwZS1KlhESa$x{3PX#;x diff --git a/test/models/glTF/BoxTextured-glTF/CesiumLogoFlat.png b/test/models/glTF/BoxTextured-glTF/CesiumLogoFlat.png index c76b4d1a36d12207bedcec04b803d920e0918a8b..88bada374836fcecc80ef666ab093f61a42e7e0e 100644 GIT binary patch delta 16 XcmZ3qhH>#4M%K;%KX=}ZEOKE0Go}Se delta 15 WcmZ3yhH=pvMwZS1KlhESa$x{3PX#;x diff --git a/test/models/glTF/CesiumMilkTruck/CesiumMilkTruck.png b/test/models/glTF/CesiumMilkTruck/CesiumMilkTruck.png index 1bed7057fc0ef6bee74fcdede7417a24b74bb71a..ba7a47c7fdcde32fbfff2e1fa12299e09753ef69 100644 GIT binary patch delta 151 zcmZo!YcXl91#4%3pF3|O%T^Y~$|H=t+iQ<7{%vLCZLjiT0%GRvRbDIy=K}fGFIcu) zzhD*c0;=&gVyou>(x>2L1L6Px delta 13 UcmZn^ZV+ba4DfT`$Xde*02^Zi)c^nh diff --git a/test/models/glTF2/BoxTextured-glTF-techniqueWebGL/CesiumLogoFlat.png b/test/models/glTF2/BoxTextured-glTF-techniqueWebGL/CesiumLogoFlat.png index 8b906c7aa3c9f8003ab3c20de9ad7549c84abf50..45d502ed2610974189307ad542b05b70df14abd4 100644 GIT binary patch delta 14 VcmZn=ZWLzi4DfU3-N;hI2>>2L1L6Px delta 13 UcmZn^ZV+ba4DfT`$Xde*02^Zi)c^nh diff --git a/test/models/glTF2/BoxTextured-glTF/CesiumLogoFlat.png b/test/models/glTF2/BoxTextured-glTF/CesiumLogoFlat.png index 8b906c7aa3c9f8003ab3c20de9ad7549c84abf50..45d502ed2610974189307ad542b05b70df14abd4 100644 GIT binary patch delta 14 VcmZn=ZWLzi4DfU3-N;hI2>>2L1L6Px delta 13 UcmZn^ZV+ba4DfT`$Xde*02^Zi)c^nh From 4337c07e4b08b49ca27b25bea4ff3980848b9230 Mon Sep 17 00:00:00 2001 From: RichardTea <31507749+RichardTea@users.noreply.github.com> Date: Mon, 27 Jan 2020 17:08:56 +0000 Subject: [PATCH 46/85] Remove explicit setting of macos install_name Use CMake default behaviour for libassimp Fixes #2961 --- code/CMakeLists.txt | 4 ---- 1 file changed, 4 deletions(-) diff --git a/code/CMakeLists.txt b/code/CMakeLists.txt index 67def907c..9144b4644 100644 --- a/code/CMakeLists.txt +++ b/code/CMakeLists.txt @@ -1213,10 +1213,6 @@ SET_TARGET_PROPERTIES( assimp PROPERTIES ) if (APPLE) - SET_TARGET_PROPERTIES( assimp PROPERTIES - INSTALL_NAME_DIR "${CMAKE_INSTALL_PREFIX}/${ASSIMP_LIB_INSTALL_DIR}" - ) - if (BUILD_FRAMEWORK) SET_TARGET_PROPERTIES( assimp PROPERTIES FRAMEWORK TRUE From 20388d6a4f3fe1d510c454265eeb7a28b6ce4265 Mon Sep 17 00:00:00 2001 From: Marc-Antoine Lortie Date: Tue, 28 Jan 2020 09:55:05 -0500 Subject: [PATCH 47/85] Refactored Assbin exporter and assimp_cmd binary serialization functions. - Renamed AssimpExport to AssimpFileWriter. - Moved AssimpFileWriter to it's own file. - Added a try catch in WriteBinaryDump to fix a case with memory leak. - Replaced calls to WriteBinaryDump with AssimpFileWriter. - Added new AssimpFileWriter files to CMakeLists.txt. --- code/Assbin/AssbinExporter.cpp | 790 +--------------------------- code/Assbin/AssbinFileWriter.cpp | 858 +++++++++++++++++++++++++++++++ code/Assbin/AssbinFileWriter.h | 65 +++ code/CMakeLists.txt | 2 + tools/assimp_cmd/Main.h | 1 + tools/assimp_cmd/WriteDumb.cpp | 705 +------------------------ 6 files changed, 952 insertions(+), 1469 deletions(-) create mode 100644 code/Assbin/AssbinFileWriter.cpp create mode 100644 code/Assbin/AssbinFileWriter.h diff --git a/code/Assbin/AssbinExporter.cpp b/code/Assbin/AssbinExporter.cpp index 86a42c400..c748624a7 100644 --- a/code/Assbin/AssbinExporter.cpp +++ b/code/Assbin/AssbinExporter.cpp @@ -46,800 +46,16 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #ifndef ASSIMP_BUILD_NO_EXPORT #ifndef ASSIMP_BUILD_NO_ASSBIN_EXPORTER -#include "Common/assbin_chunks.h" -#include "PostProcessing/ProcessHelper.h" +#include "AssbinFileWriter.h" -#include -#include +#include #include #include -#include - -#ifdef ASSIMP_BUILD_NO_OWN_ZLIB -# include -#else -# include "../contrib/zlib/zlib.h" -#endif - -#include namespace Assimp { -template -size_t Write(IOStream * stream, const T& v) { - return stream->Write( &v, sizeof(T), 1 ); -} - -// ----------------------------------------------------------------------------------- -// Serialize an aiString -template <> -inline -size_t Write(IOStream * stream, const aiString& s) { - const size_t s2 = (uint32_t)s.length; - stream->Write(&s,4,1); - stream->Write(s.data,s2,1); - - return s2+4; -} - -// ----------------------------------------------------------------------------------- -// Serialize an unsigned int as uint32_t -template <> -inline -size_t Write(IOStream * stream, const unsigned int& w) { - const uint32_t t = (uint32_t)w; - if (w > t) { - // this shouldn't happen, integers in Assimp data structures never exceed 2^32 - throw DeadlyExportError("loss of data due to 64 -> 32 bit integer conversion"); - } - - stream->Write(&t,4,1); - - return 4; -} - -// ----------------------------------------------------------------------------------- -// Serialize an unsigned int as uint16_t -template <> -inline -size_t Write(IOStream * stream, const uint16_t& w) { - static_assert(sizeof(uint16_t)==2, "sizeof(uint16_t)==2"); - stream->Write(&w,2,1); - - return 2; -} - -// ----------------------------------------------------------------------------------- -// Serialize a float -template <> -inline -size_t Write(IOStream * stream, const float& f) { - static_assert(sizeof(float)==4, "sizeof(float)==4"); - stream->Write(&f,4,1); - - return 4; -} - -// ----------------------------------------------------------------------------------- -// Serialize a double -template <> -inline -size_t Write(IOStream * stream, const double& f) { - static_assert(sizeof(double)==8, "sizeof(double)==8"); - stream->Write(&f,8,1); - - return 8; -} - -// ----------------------------------------------------------------------------------- -// Serialize a vec3 -template <> -inline -size_t Write(IOStream * stream, const aiVector3D& v) { - size_t t = Write(stream,v.x); - t += Write(stream,v.y); - t += Write(stream,v.z); - - return t; -} - -// ----------------------------------------------------------------------------------- -// Serialize a color value -template <> -inline -size_t Write(IOStream * stream, const aiColor3D& v) { - size_t t = Write(stream,v.r); - t += Write(stream,v.g); - t += Write(stream,v.b); - - return t; -} - -// ----------------------------------------------------------------------------------- -// Serialize a color value -template <> -inline -size_t Write(IOStream * stream, const aiColor4D& v) { - size_t t = Write(stream,v.r); - t += Write(stream,v.g); - t += Write(stream,v.b); - t += Write(stream,v.a); - - return t; -} - -// ----------------------------------------------------------------------------------- -// Serialize a quaternion -template <> -inline -size_t Write(IOStream * stream, const aiQuaternion& v) { - size_t t = Write(stream,v.w); - t += Write(stream,v.x); - t += Write(stream,v.y); - t += Write(stream,v.z); - ai_assert(t == 16); - - return 16; -} - -// ----------------------------------------------------------------------------------- -// Serialize a vertex weight -template <> -inline -size_t Write(IOStream * stream, const aiVertexWeight& v) { - size_t t = Write(stream,v.mVertexId); - - return t+Write(stream,v.mWeight); -} - -// ----------------------------------------------------------------------------------- -// Serialize a mat4x4 -template <> -inline -size_t Write(IOStream * stream, const aiMatrix4x4& m) { - for (unsigned int i = 0; i < 4;++i) { - for (unsigned int i2 = 0; i2 < 4;++i2) { - Write(stream,m[i][i2]); - } - } - - return 64; -} - -// ----------------------------------------------------------------------------------- -// Serialize an aiVectorKey -template <> -inline -size_t Write(IOStream * stream, const aiVectorKey& v) { - const size_t t = Write(stream,v.mTime); - return t + Write(stream,v.mValue); -} - -// ----------------------------------------------------------------------------------- -// Serialize an aiQuatKey -template <> -inline -size_t Write(IOStream * stream, const aiQuatKey& v) { - const size_t t = Write(stream,v.mTime); - return t + Write(stream,v.mValue); -} - -template -inline -size_t WriteBounds(IOStream * stream, const T* in, unsigned int size) { - T minc, maxc; - ArrayBounds(in,size,minc,maxc); - - const size_t t = Write(stream,minc); - return t + Write(stream,maxc); -} - -// We use this to write out non-byte arrays so that we write using the specializations. -// This way we avoid writing out extra bytes that potentially come from struct alignment. -template -inline -size_t WriteArray(IOStream * stream, const T* in, unsigned int size) { - size_t n = 0; - for (unsigned int i=0; i(stream,in[i]); - - return n; -} - -// ---------------------------------------------------------------------------------- -/** @class AssbinChunkWriter - * @brief Chunk writer mechanism for the .assbin file structure - * - * This is a standard in-memory IOStream (most of the code is based on BlobIOStream), - * the difference being that this takes another IOStream as a "container" in the - * constructor, and when it is destroyed, it appends the magic number, the chunk size, - * and the chunk contents to the container stream. This allows relatively easy chunk - * chunk construction, even recursively. - */ -class AssbinChunkWriter : public IOStream -{ -private: - - uint8_t* buffer; - uint32_t magic; - IOStream * container; - size_t cur_size, cursor, initial; - -private: - // ------------------------------------------------------------------- - void Grow(size_t need = 0) - { - size_t new_size = std::max(initial, std::max( need, cur_size+(cur_size>>1) )); - - const uint8_t* const old = buffer; - buffer = new uint8_t[new_size]; - - if (old) { - memcpy(buffer,old,cur_size); - delete[] old; - } - - cur_size = new_size; - } - -public: - - AssbinChunkWriter( IOStream * container, uint32_t magic, size_t initial = 4096) - : buffer(NULL), magic(magic), container(container), cur_size(0), cursor(0), initial(initial) - { - } - - virtual ~AssbinChunkWriter() - { - if (container) { - container->Write( &magic, sizeof(uint32_t), 1 ); - container->Write( &cursor, sizeof(uint32_t), 1 ); - container->Write( buffer, 1, cursor ); - } - if (buffer) delete[] buffer; - } - - void * GetBufferPointer() { return buffer; } - - // ------------------------------------------------------------------- - virtual size_t Read(void* /*pvBuffer*/, size_t /*pSize*/, size_t /*pCount*/) { - return 0; - } - virtual aiReturn Seek(size_t /*pOffset*/, aiOrigin /*pOrigin*/) { - return aiReturn_FAILURE; - } - virtual size_t Tell() const { - return cursor; - } - virtual void Flush() { - // not implemented - } - - virtual size_t FileSize() const { - return cursor; - } - - // ------------------------------------------------------------------- - virtual size_t Write(const void* pvBuffer, size_t pSize, size_t pCount) { - pSize *= pCount; - if (cursor + pSize > cur_size) { - Grow(cursor + pSize); - } - - memcpy(buffer+cursor, pvBuffer, pSize); - cursor += pSize; - - return pCount; - } - -}; - -// ---------------------------------------------------------------------------------- -/** @class AssbinExport - * @brief Assbin exporter class - * - * This class performs the .assbin exporting, and is responsible for the file layout. - */ -class AssbinExport -{ -private: - bool shortened; - bool compressed; - -protected: - // ----------------------------------------------------------------------------------- - void WriteBinaryNode( IOStream * container, const aiNode* node) - { - AssbinChunkWriter chunk( container, ASSBIN_CHUNK_AINODE ); - - unsigned int nb_metadata = (node->mMetaData != NULL ? node->mMetaData->mNumProperties : 0); - - Write(&chunk,node->mName); - Write(&chunk,node->mTransformation); - Write(&chunk,node->mNumChildren); - Write(&chunk,node->mNumMeshes); - Write(&chunk,nb_metadata); - - for (unsigned int i = 0; i < node->mNumMeshes;++i) { - Write(&chunk,node->mMeshes[i]); - } - - for (unsigned int i = 0; i < node->mNumChildren;++i) { - WriteBinaryNode( &chunk, node->mChildren[i] ); - } - - for (unsigned int i = 0; i < nb_metadata; ++i) { - const aiString& key = node->mMetaData->mKeys[i]; - aiMetadataType type = node->mMetaData->mValues[i].mType; - void* value = node->mMetaData->mValues[i].mData; - - Write(&chunk, key); - Write(&chunk, type); - - switch (type) { - case AI_BOOL: - Write(&chunk, *((bool*) value)); - break; - case AI_INT32: - Write(&chunk, *((int32_t*) value)); - break; - case AI_UINT64: - Write(&chunk, *((uint64_t*) value)); - break; - case AI_FLOAT: - Write(&chunk, *((float*) value)); - break; - case AI_DOUBLE: - Write(&chunk, *((double*) value)); - break; - case AI_AISTRING: - Write(&chunk, *((aiString*) value)); - break; - case AI_AIVECTOR3D: - Write(&chunk, *((aiVector3D*) value)); - break; -#ifdef SWIG - case FORCE_32BIT: -#endif // SWIG - default: - break; - } - } - } - - // ----------------------------------------------------------------------------------- - void WriteBinaryTexture(IOStream * container, const aiTexture* tex) - { - AssbinChunkWriter chunk( container, ASSBIN_CHUNK_AITEXTURE ); - - Write(&chunk,tex->mWidth); - Write(&chunk,tex->mHeight); - // Write the texture format, but don't include the null terminator. - chunk.Write( tex->achFormatHint, sizeof(char), HINTMAXTEXTURELEN - 1 ); - - if(!shortened) { - if (!tex->mHeight) { - chunk.Write(tex->pcData,1,tex->mWidth); - } - else { - chunk.Write(tex->pcData,1,tex->mWidth*tex->mHeight*4); - } - } - - } - - // ----------------------------------------------------------------------------------- - void WriteBinaryBone(IOStream * container, const aiBone* b) - { - AssbinChunkWriter chunk( container, ASSBIN_CHUNK_AIBONE ); - - Write(&chunk,b->mName); - Write(&chunk,b->mNumWeights); - Write(&chunk,b->mOffsetMatrix); - - // for the moment we write dumb min/max values for the bones, too. - // maybe I'll add a better, hash-like solution later - if (shortened) { - WriteBounds(&chunk,b->mWeights,b->mNumWeights); - } // else write as usual - else WriteArray(&chunk,b->mWeights,b->mNumWeights); - } - - // ----------------------------------------------------------------------------------- - void WriteBinaryMesh(IOStream * container, const aiMesh* mesh) - { - AssbinChunkWriter chunk( container, ASSBIN_CHUNK_AIMESH ); - - Write(&chunk,mesh->mPrimitiveTypes); - Write(&chunk,mesh->mNumVertices); - Write(&chunk,mesh->mNumFaces); - Write(&chunk,mesh->mNumBones); - Write(&chunk,mesh->mMaterialIndex); - - // first of all, write bits for all existent vertex components - unsigned int c = 0; - if (mesh->mVertices) { - c |= ASSBIN_MESH_HAS_POSITIONS; - } - if (mesh->mNormals) { - c |= ASSBIN_MESH_HAS_NORMALS; - } - if (mesh->mTangents && mesh->mBitangents) { - c |= ASSBIN_MESH_HAS_TANGENTS_AND_BITANGENTS; - } - for (unsigned int n = 0; n < AI_MAX_NUMBER_OF_TEXTURECOORDS;++n) { - if (!mesh->mTextureCoords[n]) { - break; - } - c |= ASSBIN_MESH_HAS_TEXCOORD(n); - } - for (unsigned int n = 0; n < AI_MAX_NUMBER_OF_COLOR_SETS;++n) { - if (!mesh->mColors[n]) { - break; - } - c |= ASSBIN_MESH_HAS_COLOR(n); - } - Write(&chunk,c); - - aiVector3D minVec, maxVec; - if (mesh->mVertices) { - if (shortened) { - WriteBounds(&chunk,mesh->mVertices,mesh->mNumVertices); - } // else write as usual - else WriteArray(&chunk,mesh->mVertices,mesh->mNumVertices); - } - if (mesh->mNormals) { - if (shortened) { - WriteBounds(&chunk,mesh->mNormals,mesh->mNumVertices); - } // else write as usual - else WriteArray(&chunk,mesh->mNormals,mesh->mNumVertices); - } - if (mesh->mTangents && mesh->mBitangents) { - if (shortened) { - WriteBounds(&chunk,mesh->mTangents,mesh->mNumVertices); - WriteBounds(&chunk,mesh->mBitangents,mesh->mNumVertices); - } // else write as usual - else { - WriteArray(&chunk,mesh->mTangents,mesh->mNumVertices); - WriteArray(&chunk,mesh->mBitangents,mesh->mNumVertices); - } - } - for (unsigned int n = 0; n < AI_MAX_NUMBER_OF_COLOR_SETS;++n) { - if (!mesh->mColors[n]) - break; - - if (shortened) { - WriteBounds(&chunk,mesh->mColors[n],mesh->mNumVertices); - } // else write as usual - else WriteArray(&chunk,mesh->mColors[n],mesh->mNumVertices); - } - for (unsigned int n = 0; n < AI_MAX_NUMBER_OF_TEXTURECOORDS;++n) { - if (!mesh->mTextureCoords[n]) - break; - - // write number of UV components - Write(&chunk,mesh->mNumUVComponents[n]); - - if (shortened) { - WriteBounds(&chunk,mesh->mTextureCoords[n],mesh->mNumVertices); - } // else write as usual - else WriteArray(&chunk,mesh->mTextureCoords[n],mesh->mNumVertices); - } - - // write faces. There are no floating-point calculations involved - // in these, so we can write a simple hash over the face data - // to the dump file. We generate a single 32 Bit hash for 512 faces - // using Assimp's standard hashing function. - if (shortened) { - unsigned int processed = 0; - for (unsigned int job;(job = std::min(mesh->mNumFaces-processed,512u));processed += job) { - - uint32_t hash = 0; - for (unsigned int a = 0; a < job;++a) { - - const aiFace& f = mesh->mFaces[processed+a]; - uint32_t tmp = f.mNumIndices; - hash = SuperFastHash(reinterpret_cast(&tmp),sizeof tmp,hash); - for (unsigned int i = 0; i < f.mNumIndices; ++i) { - static_assert(AI_MAX_VERTICES <= 0xffffffff, "AI_MAX_VERTICES <= 0xffffffff"); - tmp = static_cast( f.mIndices[i] ); - hash = SuperFastHash(reinterpret_cast(&tmp),sizeof tmp,hash); - } - } - Write(&chunk,hash); - } - } - else // else write as usual - { - // if there are less than 2^16 vertices, we can simply use 16 bit integers ... - for (unsigned int i = 0; i < mesh->mNumFaces;++i) { - const aiFace& f = mesh->mFaces[i]; - - static_assert(AI_MAX_FACE_INDICES <= 0xffff, "AI_MAX_FACE_INDICES <= 0xffff"); - Write(&chunk,f.mNumIndices); - - for (unsigned int a = 0; a < f.mNumIndices;++a) { - if (mesh->mNumVertices < (1u<<16)) { - Write(&chunk,f.mIndices[a]); - } - else Write(&chunk,f.mIndices[a]); - } - } - } - - // write bones - if (mesh->mNumBones) { - for (unsigned int a = 0; a < mesh->mNumBones;++a) { - const aiBone* b = mesh->mBones[a]; - WriteBinaryBone(&chunk,b); - } - } - } - - // ----------------------------------------------------------------------------------- - void WriteBinaryMaterialProperty(IOStream * container, const aiMaterialProperty* prop) - { - AssbinChunkWriter chunk( container, ASSBIN_CHUNK_AIMATERIALPROPERTY ); - - Write(&chunk,prop->mKey); - Write(&chunk,prop->mSemantic); - Write(&chunk,prop->mIndex); - - Write(&chunk,prop->mDataLength); - Write(&chunk,(unsigned int)prop->mType); - chunk.Write(prop->mData,1,prop->mDataLength); - } - - // ----------------------------------------------------------------------------------- - void WriteBinaryMaterial(IOStream * container, const aiMaterial* mat) - { - AssbinChunkWriter chunk( container, ASSBIN_CHUNK_AIMATERIAL); - - Write(&chunk,mat->mNumProperties); - for (unsigned int i = 0; i < mat->mNumProperties;++i) { - WriteBinaryMaterialProperty( &chunk, mat->mProperties[i]); - } - } - - // ----------------------------------------------------------------------------------- - void WriteBinaryNodeAnim(IOStream * container, const aiNodeAnim* nd) - { - AssbinChunkWriter chunk( container, ASSBIN_CHUNK_AINODEANIM ); - - Write(&chunk,nd->mNodeName); - Write(&chunk,nd->mNumPositionKeys); - Write(&chunk,nd->mNumRotationKeys); - Write(&chunk,nd->mNumScalingKeys); - Write(&chunk,nd->mPreState); - Write(&chunk,nd->mPostState); - - if (nd->mPositionKeys) { - if (shortened) { - WriteBounds(&chunk,nd->mPositionKeys,nd->mNumPositionKeys); - - } // else write as usual - else WriteArray(&chunk,nd->mPositionKeys,nd->mNumPositionKeys); - } - if (nd->mRotationKeys) { - if (shortened) { - WriteBounds(&chunk,nd->mRotationKeys,nd->mNumRotationKeys); - - } // else write as usual - else WriteArray(&chunk,nd->mRotationKeys,nd->mNumRotationKeys); - } - if (nd->mScalingKeys) { - if (shortened) { - WriteBounds(&chunk,nd->mScalingKeys,nd->mNumScalingKeys); - - } // else write as usual - else WriteArray(&chunk,nd->mScalingKeys,nd->mNumScalingKeys); - } - } - - - // ----------------------------------------------------------------------------------- - void WriteBinaryAnim( IOStream * container, const aiAnimation* anim ) - { - AssbinChunkWriter chunk( container, ASSBIN_CHUNK_AIANIMATION ); - - Write(&chunk,anim->mName); - Write(&chunk,anim->mDuration); - Write(&chunk,anim->mTicksPerSecond); - Write(&chunk,anim->mNumChannels); - - for (unsigned int a = 0; a < anim->mNumChannels;++a) { - const aiNodeAnim* nd = anim->mChannels[a]; - WriteBinaryNodeAnim(&chunk,nd); - } - } - - // ----------------------------------------------------------------------------------- - void WriteBinaryLight( IOStream * container, const aiLight* l ) - { - AssbinChunkWriter chunk( container, ASSBIN_CHUNK_AILIGHT ); - - Write(&chunk,l->mName); - Write(&chunk,l->mType); - - if (l->mType != aiLightSource_DIRECTIONAL) { - Write(&chunk,l->mAttenuationConstant); - Write(&chunk,l->mAttenuationLinear); - Write(&chunk,l->mAttenuationQuadratic); - } - - Write(&chunk,l->mColorDiffuse); - Write(&chunk,l->mColorSpecular); - Write(&chunk,l->mColorAmbient); - - if (l->mType == aiLightSource_SPOT) { - Write(&chunk,l->mAngleInnerCone); - Write(&chunk,l->mAngleOuterCone); - } - - } - - // ----------------------------------------------------------------------------------- - void WriteBinaryCamera( IOStream * container, const aiCamera* cam ) - { - AssbinChunkWriter chunk( container, ASSBIN_CHUNK_AICAMERA ); - - Write(&chunk,cam->mName); - Write(&chunk,cam->mPosition); - Write(&chunk,cam->mLookAt); - Write(&chunk,cam->mUp); - Write(&chunk,cam->mHorizontalFOV); - Write(&chunk,cam->mClipPlaneNear); - Write(&chunk,cam->mClipPlaneFar); - Write(&chunk,cam->mAspect); - } - - // ----------------------------------------------------------------------------------- - void WriteBinaryScene( IOStream * container, const aiScene* scene) - { - AssbinChunkWriter chunk( container, ASSBIN_CHUNK_AISCENE ); - - // basic scene information - Write(&chunk,scene->mFlags); - Write(&chunk,scene->mNumMeshes); - Write(&chunk,scene->mNumMaterials); - Write(&chunk,scene->mNumAnimations); - Write(&chunk,scene->mNumTextures); - Write(&chunk,scene->mNumLights); - Write(&chunk,scene->mNumCameras); - - // write node graph - WriteBinaryNode( &chunk, scene->mRootNode ); - - // write all meshes - for (unsigned int i = 0; i < scene->mNumMeshes;++i) { - const aiMesh* mesh = scene->mMeshes[i]; - WriteBinaryMesh( &chunk,mesh); - } - - // write materials - for (unsigned int i = 0; i< scene->mNumMaterials; ++i) { - const aiMaterial* mat = scene->mMaterials[i]; - WriteBinaryMaterial(&chunk,mat); - } - - // write all animations - for (unsigned int i = 0; i < scene->mNumAnimations;++i) { - const aiAnimation* anim = scene->mAnimations[i]; - WriteBinaryAnim(&chunk,anim); - } - - - // write all textures - for (unsigned int i = 0; i < scene->mNumTextures;++i) { - const aiTexture* mesh = scene->mTextures[i]; - WriteBinaryTexture(&chunk,mesh); - } - - // write lights - for (unsigned int i = 0; i < scene->mNumLights;++i) { - const aiLight* l = scene->mLights[i]; - WriteBinaryLight(&chunk,l); - } - - // write cameras - for (unsigned int i = 0; i < scene->mNumCameras;++i) { - const aiCamera* cam = scene->mCameras[i]; - WriteBinaryCamera(&chunk,cam); - } - - } - -public: - AssbinExport() - : shortened(false), compressed(false) // temporary settings until properties are introduced for exporters - { - } - - // ----------------------------------------------------------------------------------- - // Write a binary model dump - void WriteBinaryDump(const char* pFile, IOSystem* pIOSystem, const aiScene* pScene) - { - IOStream * out = pIOSystem->Open( pFile, "wb" ); - if (!out) return; - - time_t tt = time(NULL); -#if _WIN32 - tm* p = gmtime(&tt); -#else - struct tm now; - tm* p = gmtime_r(&tt, &now); -#endif - - // header - char s[64]; - memset( s, 0, 64 ); -#if _MSC_VER >= 1400 - sprintf_s(s,"ASSIMP.binary-dump.%s",asctime(p)); -#else - ai_snprintf(s,64,"ASSIMP.binary-dump.%s",asctime(p)); -#endif - out->Write( s, 44, 1 ); - // == 44 bytes - - Write( out, ASSBIN_VERSION_MAJOR ); - Write( out, ASSBIN_VERSION_MINOR ); - Write( out, aiGetVersionRevision() ); - Write( out, aiGetCompileFlags() ); - Write( out, shortened ); - Write( out, compressed ); - // == 20 bytes - - char buff[256]; - strncpy(buff,pFile,256); - out->Write(buff,sizeof(char),256); - - char cmd[] = "\0"; - strncpy(buff,cmd,128); - out->Write(buff,sizeof(char),128); - - // leave 64 bytes free for future extensions - memset(buff,0xcd,64); - out->Write(buff,sizeof(char),64); - // == 435 bytes - - // ==== total header size: 512 bytes - ai_assert( out->Tell() == ASSBIN_HEADER_LENGTH ); - - // Up to here the data is uncompressed. For compressed files, the rest - // is compressed using standard DEFLATE from zlib. - if (compressed) - { - AssbinChunkWriter uncompressedStream( NULL, 0 ); - WriteBinaryScene( &uncompressedStream, pScene ); - - uLongf uncompressedSize = static_cast(uncompressedStream.Tell()); - uLongf compressedSize = (uLongf)compressBound(uncompressedSize); - uint8_t* compressedBuffer = new uint8_t[ compressedSize ]; - - int res = compress2( compressedBuffer, &compressedSize, (const Bytef*)uncompressedStream.GetBufferPointer(), uncompressedSize, 9 ); - if(res != Z_OK) - { - delete [] compressedBuffer; - pIOSystem->Close(out); - throw DeadlyExportError("Compression failed."); - } - - out->Write( &uncompressedSize, sizeof(uint32_t), 1 ); - out->Write( compressedBuffer, sizeof(char), compressedSize ); - - delete[] compressedBuffer; - } - else - { - WriteBinaryScene( out, pScene ); - } - - pIOSystem->Close( out ); - } -}; - void ExportSceneAssbin(const char* pFile, IOSystem* pIOSystem, const aiScene* pScene, const ExportProperties* /*pProperties*/) { - AssbinExport exporter; - exporter.WriteBinaryDump( pFile, pIOSystem, pScene ); + DumpSceneToAssbin(pFile, pIOSystem, pScene, false, false); } } // end of namespace Assimp diff --git a/code/Assbin/AssbinFileWriter.cpp b/code/Assbin/AssbinFileWriter.cpp new file mode 100644 index 000000000..041bea748 --- /dev/null +++ b/code/Assbin/AssbinFileWriter.cpp @@ -0,0 +1,858 @@ +/* +Open Asset Import Library (assimp) +---------------------------------------------------------------------- + +Copyright (c) 2006-2020, assimp team + + +All rights reserved. + +Redistribution and use of this software in source and binary forms, +with or without modification, are permitted provided that the +following conditions are met: + +* Redistributions of source code must retain the above + copyright notice, this list of conditions and the + following disclaimer. + +* Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the + following disclaimer in the documentation and/or other + materials provided with the distribution. + +* Neither the name of the assimp team, nor the names of its + contributors may be used to endorse or promote products + derived from this software without specific prior + written permission of the assimp team. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +---------------------------------------------------------------------- +*/ +/** @file AssbinFileWriter.cpp + * @brief Implementation of Assbin file writer. + */ + +#include "AssbinFileWriter.h" + +#include "Common/assbin_chunks.h" +#include "PostProcessing/ProcessHelper.h" + +#include +#include +#include +#include + +#ifdef ASSIMP_BUILD_NO_OWN_ZLIB +# include +#else +# include "../contrib/zlib/zlib.h" +#endif + +#include + +namespace Assimp { + +template +size_t Write(IOStream * stream, const T& v) { + return stream->Write( &v, sizeof(T), 1 ); +} + +// ----------------------------------------------------------------------------------- +// Serialize an aiString +template <> +inline +size_t Write(IOStream * stream, const aiString& s) { + const size_t s2 = (uint32_t)s.length; + stream->Write(&s,4,1); + stream->Write(s.data,s2,1); + + return s2+4; +} + +// ----------------------------------------------------------------------------------- +// Serialize an unsigned int as uint32_t +template <> +inline +size_t Write(IOStream * stream, const unsigned int& w) { + const uint32_t t = (uint32_t)w; + if (w > t) { + // this shouldn't happen, integers in Assimp data structures never exceed 2^32 + throw DeadlyExportError("loss of data due to 64 -> 32 bit integer conversion"); + } + + stream->Write(&t,4,1); + + return 4; +} + +// ----------------------------------------------------------------------------------- +// Serialize an unsigned int as uint16_t +template <> +inline +size_t Write(IOStream * stream, const uint16_t& w) { + static_assert(sizeof(uint16_t)==2, "sizeof(uint16_t)==2"); + stream->Write(&w,2,1); + + return 2; +} + +// ----------------------------------------------------------------------------------- +// Serialize a float +template <> +inline +size_t Write(IOStream * stream, const float& f) { + static_assert(sizeof(float)==4, "sizeof(float)==4"); + stream->Write(&f,4,1); + + return 4; +} + +// ----------------------------------------------------------------------------------- +// Serialize a double +template <> +inline +size_t Write(IOStream * stream, const double& f) { + static_assert(sizeof(double)==8, "sizeof(double)==8"); + stream->Write(&f,8,1); + + return 8; +} + +// ----------------------------------------------------------------------------------- +// Serialize a vec3 +template <> +inline +size_t Write(IOStream * stream, const aiVector3D& v) { + size_t t = Write(stream,v.x); + t += Write(stream,v.y); + t += Write(stream,v.z); + + return t; +} + +// ----------------------------------------------------------------------------------- +// Serialize a color value +template <> +inline +size_t Write(IOStream * stream, const aiColor3D& v) { + size_t t = Write(stream,v.r); + t += Write(stream,v.g); + t += Write(stream,v.b); + + return t; +} + +// ----------------------------------------------------------------------------------- +// Serialize a color value +template <> +inline +size_t Write(IOStream * stream, const aiColor4D& v) { + size_t t = Write(stream,v.r); + t += Write(stream,v.g); + t += Write(stream,v.b); + t += Write(stream,v.a); + + return t; +} + +// ----------------------------------------------------------------------------------- +// Serialize a quaternion +template <> +inline +size_t Write(IOStream * stream, const aiQuaternion& v) { + size_t t = Write(stream,v.w); + t += Write(stream,v.x); + t += Write(stream,v.y); + t += Write(stream,v.z); + ai_assert(t == 16); + + return 16; +} + +// ----------------------------------------------------------------------------------- +// Serialize a vertex weight +template <> +inline +size_t Write(IOStream * stream, const aiVertexWeight& v) { + size_t t = Write(stream,v.mVertexId); + + return t+Write(stream,v.mWeight); +} + +// ----------------------------------------------------------------------------------- +// Serialize a mat4x4 +template <> +inline +size_t Write(IOStream * stream, const aiMatrix4x4& m) { + for (unsigned int i = 0; i < 4;++i) { + for (unsigned int i2 = 0; i2 < 4;++i2) { + Write(stream,m[i][i2]); + } + } + + return 64; +} + +// ----------------------------------------------------------------------------------- +// Serialize an aiVectorKey +template <> +inline +size_t Write(IOStream * stream, const aiVectorKey& v) { + const size_t t = Write(stream,v.mTime); + return t + Write(stream,v.mValue); +} + +// ----------------------------------------------------------------------------------- +// Serialize an aiQuatKey +template <> +inline +size_t Write(IOStream * stream, const aiQuatKey& v) { + const size_t t = Write(stream,v.mTime); + return t + Write(stream,v.mValue); +} + +template +inline +size_t WriteBounds(IOStream * stream, const T* in, unsigned int size) { + T minc, maxc; + ArrayBounds(in,size,minc,maxc); + + const size_t t = Write(stream,minc); + return t + Write(stream,maxc); +} + +// We use this to write out non-byte arrays so that we write using the specializations. +// This way we avoid writing out extra bytes that potentially come from struct alignment. +template +inline +size_t WriteArray(IOStream * stream, const T* in, unsigned int size) { + size_t n = 0; + for (unsigned int i=0; i(stream,in[i]); + + return n; +} + +// ---------------------------------------------------------------------------------- +/** @class AssbinChunkWriter + * @brief Chunk writer mechanism for the .assbin file structure + * + * This is a standard in-memory IOStream (most of the code is based on BlobIOStream), + * the difference being that this takes another IOStream as a "container" in the + * constructor, and when it is destroyed, it appends the magic number, the chunk size, + * and the chunk contents to the container stream. This allows relatively easy chunk + * chunk construction, even recursively. + */ +class AssbinChunkWriter : public IOStream +{ +private: + + uint8_t* buffer; + uint32_t magic; + IOStream * container; + size_t cur_size, cursor, initial; + +private: + // ------------------------------------------------------------------- + void Grow(size_t need = 0) + { + size_t new_size = std::max(initial, std::max( need, cur_size+(cur_size>>1) )); + + const uint8_t* const old = buffer; + buffer = new uint8_t[new_size]; + + if (old) { + memcpy(buffer,old,cur_size); + delete[] old; + } + + cur_size = new_size; + } + +public: + + AssbinChunkWriter( IOStream * container, uint32_t magic, size_t initial = 4096) + : buffer(NULL), magic(magic), container(container), cur_size(0), cursor(0), initial(initial) + { + } + + virtual ~AssbinChunkWriter() + { + if (container) { + container->Write( &magic, sizeof(uint32_t), 1 ); + container->Write( &cursor, sizeof(uint32_t), 1 ); + container->Write( buffer, 1, cursor ); + } + if (buffer) delete[] buffer; + } + + void * GetBufferPointer() { return buffer; } + + // ------------------------------------------------------------------- + virtual size_t Read(void* /*pvBuffer*/, size_t /*pSize*/, size_t /*pCount*/) { + return 0; + } + virtual aiReturn Seek(size_t /*pOffset*/, aiOrigin /*pOrigin*/) { + return aiReturn_FAILURE; + } + virtual size_t Tell() const { + return cursor; + } + virtual void Flush() { + // not implemented + } + + virtual size_t FileSize() const { + return cursor; + } + + // ------------------------------------------------------------------- + virtual size_t Write(const void* pvBuffer, size_t pSize, size_t pCount) { + pSize *= pCount; + if (cursor + pSize > cur_size) { + Grow(cursor + pSize); + } + + memcpy(buffer+cursor, pvBuffer, pSize); + cursor += pSize; + + return pCount; + } + +}; + +// ---------------------------------------------------------------------------------- +/** @class AssbinFileWriter + * @brief Assbin file writer class + * + * This class writes an .assbin file, and is responsible for the file layout. + */ +class AssbinFileWriter +{ +private: + bool shortened; + bool compressed; + +protected: + // ----------------------------------------------------------------------------------- + void WriteBinaryNode( IOStream * container, const aiNode* node) + { + AssbinChunkWriter chunk( container, ASSBIN_CHUNK_AINODE ); + + unsigned int nb_metadata = (node->mMetaData != NULL ? node->mMetaData->mNumProperties : 0); + + Write(&chunk,node->mName); + Write(&chunk,node->mTransformation); + Write(&chunk,node->mNumChildren); + Write(&chunk,node->mNumMeshes); + Write(&chunk,nb_metadata); + + for (unsigned int i = 0; i < node->mNumMeshes;++i) { + Write(&chunk,node->mMeshes[i]); + } + + for (unsigned int i = 0; i < node->mNumChildren;++i) { + WriteBinaryNode( &chunk, node->mChildren[i] ); + } + + for (unsigned int i = 0; i < nb_metadata; ++i) { + const aiString& key = node->mMetaData->mKeys[i]; + aiMetadataType type = node->mMetaData->mValues[i].mType; + void* value = node->mMetaData->mValues[i].mData; + + Write(&chunk, key); + Write(&chunk, type); + + switch (type) { + case AI_BOOL: + Write(&chunk, *((bool*) value)); + break; + case AI_INT32: + Write(&chunk, *((int32_t*) value)); + break; + case AI_UINT64: + Write(&chunk, *((uint64_t*) value)); + break; + case AI_FLOAT: + Write(&chunk, *((float*) value)); + break; + case AI_DOUBLE: + Write(&chunk, *((double*) value)); + break; + case AI_AISTRING: + Write(&chunk, *((aiString*) value)); + break; + case AI_AIVECTOR3D: + Write(&chunk, *((aiVector3D*) value)); + break; +#ifdef SWIG + case FORCE_32BIT: +#endif // SWIG + default: + break; + } + } + } + + // ----------------------------------------------------------------------------------- + void WriteBinaryTexture(IOStream * container, const aiTexture* tex) + { + AssbinChunkWriter chunk( container, ASSBIN_CHUNK_AITEXTURE ); + + Write(&chunk,tex->mWidth); + Write(&chunk,tex->mHeight); + // Write the texture format, but don't include the null terminator. + chunk.Write( tex->achFormatHint, sizeof(char), HINTMAXTEXTURELEN - 1 ); + + if(!shortened) { + if (!tex->mHeight) { + chunk.Write(tex->pcData,1,tex->mWidth); + } + else { + chunk.Write(tex->pcData,1,tex->mWidth*tex->mHeight*4); + } + } + + } + + // ----------------------------------------------------------------------------------- + void WriteBinaryBone(IOStream * container, const aiBone* b) + { + AssbinChunkWriter chunk( container, ASSBIN_CHUNK_AIBONE ); + + Write(&chunk,b->mName); + Write(&chunk,b->mNumWeights); + Write(&chunk,b->mOffsetMatrix); + + // for the moment we write dumb min/max values for the bones, too. + // maybe I'll add a better, hash-like solution later + if (shortened) { + WriteBounds(&chunk,b->mWeights,b->mNumWeights); + } // else write as usual + else WriteArray(&chunk,b->mWeights,b->mNumWeights); + } + + // ----------------------------------------------------------------------------------- + void WriteBinaryMesh(IOStream * container, const aiMesh* mesh) + { + AssbinChunkWriter chunk( container, ASSBIN_CHUNK_AIMESH ); + + Write(&chunk,mesh->mPrimitiveTypes); + Write(&chunk,mesh->mNumVertices); + Write(&chunk,mesh->mNumFaces); + Write(&chunk,mesh->mNumBones); + Write(&chunk,mesh->mMaterialIndex); + + // first of all, write bits for all existent vertex components + unsigned int c = 0; + if (mesh->mVertices) { + c |= ASSBIN_MESH_HAS_POSITIONS; + } + if (mesh->mNormals) { + c |= ASSBIN_MESH_HAS_NORMALS; + } + if (mesh->mTangents && mesh->mBitangents) { + c |= ASSBIN_MESH_HAS_TANGENTS_AND_BITANGENTS; + } + for (unsigned int n = 0; n < AI_MAX_NUMBER_OF_TEXTURECOORDS;++n) { + if (!mesh->mTextureCoords[n]) { + break; + } + c |= ASSBIN_MESH_HAS_TEXCOORD(n); + } + for (unsigned int n = 0; n < AI_MAX_NUMBER_OF_COLOR_SETS;++n) { + if (!mesh->mColors[n]) { + break; + } + c |= ASSBIN_MESH_HAS_COLOR(n); + } + Write(&chunk,c); + + aiVector3D minVec, maxVec; + if (mesh->mVertices) { + if (shortened) { + WriteBounds(&chunk,mesh->mVertices,mesh->mNumVertices); + } // else write as usual + else WriteArray(&chunk,mesh->mVertices,mesh->mNumVertices); + } + if (mesh->mNormals) { + if (shortened) { + WriteBounds(&chunk,mesh->mNormals,mesh->mNumVertices); + } // else write as usual + else WriteArray(&chunk,mesh->mNormals,mesh->mNumVertices); + } + if (mesh->mTangents && mesh->mBitangents) { + if (shortened) { + WriteBounds(&chunk,mesh->mTangents,mesh->mNumVertices); + WriteBounds(&chunk,mesh->mBitangents,mesh->mNumVertices); + } // else write as usual + else { + WriteArray(&chunk,mesh->mTangents,mesh->mNumVertices); + WriteArray(&chunk,mesh->mBitangents,mesh->mNumVertices); + } + } + for (unsigned int n = 0; n < AI_MAX_NUMBER_OF_COLOR_SETS;++n) { + if (!mesh->mColors[n]) + break; + + if (shortened) { + WriteBounds(&chunk,mesh->mColors[n],mesh->mNumVertices); + } // else write as usual + else WriteArray(&chunk,mesh->mColors[n],mesh->mNumVertices); + } + for (unsigned int n = 0; n < AI_MAX_NUMBER_OF_TEXTURECOORDS;++n) { + if (!mesh->mTextureCoords[n]) + break; + + // write number of UV components + Write(&chunk,mesh->mNumUVComponents[n]); + + if (shortened) { + WriteBounds(&chunk,mesh->mTextureCoords[n],mesh->mNumVertices); + } // else write as usual + else WriteArray(&chunk,mesh->mTextureCoords[n],mesh->mNumVertices); + } + + // write faces. There are no floating-point calculations involved + // in these, so we can write a simple hash over the face data + // to the dump file. We generate a single 32 Bit hash for 512 faces + // using Assimp's standard hashing function. + if (shortened) { + unsigned int processed = 0; + for (unsigned int job;(job = std::min(mesh->mNumFaces-processed,512u));processed += job) { + + uint32_t hash = 0; + for (unsigned int a = 0; a < job;++a) { + + const aiFace& f = mesh->mFaces[processed+a]; + uint32_t tmp = f.mNumIndices; + hash = SuperFastHash(reinterpret_cast(&tmp),sizeof tmp,hash); + for (unsigned int i = 0; i < f.mNumIndices; ++i) { + static_assert(AI_MAX_VERTICES <= 0xffffffff, "AI_MAX_VERTICES <= 0xffffffff"); + tmp = static_cast( f.mIndices[i] ); + hash = SuperFastHash(reinterpret_cast(&tmp),sizeof tmp,hash); + } + } + Write(&chunk,hash); + } + } + else // else write as usual + { + // if there are less than 2^16 vertices, we can simply use 16 bit integers ... + for (unsigned int i = 0; i < mesh->mNumFaces;++i) { + const aiFace& f = mesh->mFaces[i]; + + static_assert(AI_MAX_FACE_INDICES <= 0xffff, "AI_MAX_FACE_INDICES <= 0xffff"); + Write(&chunk,f.mNumIndices); + + for (unsigned int a = 0; a < f.mNumIndices;++a) { + if (mesh->mNumVertices < (1u<<16)) { + Write(&chunk,f.mIndices[a]); + } + else Write(&chunk,f.mIndices[a]); + } + } + } + + // write bones + if (mesh->mNumBones) { + for (unsigned int a = 0; a < mesh->mNumBones;++a) { + const aiBone* b = mesh->mBones[a]; + WriteBinaryBone(&chunk,b); + } + } + } + + // ----------------------------------------------------------------------------------- + void WriteBinaryMaterialProperty(IOStream * container, const aiMaterialProperty* prop) + { + AssbinChunkWriter chunk( container, ASSBIN_CHUNK_AIMATERIALPROPERTY ); + + Write(&chunk,prop->mKey); + Write(&chunk,prop->mSemantic); + Write(&chunk,prop->mIndex); + + Write(&chunk,prop->mDataLength); + Write(&chunk,(unsigned int)prop->mType); + chunk.Write(prop->mData,1,prop->mDataLength); + } + + // ----------------------------------------------------------------------------------- + void WriteBinaryMaterial(IOStream * container, const aiMaterial* mat) + { + AssbinChunkWriter chunk( container, ASSBIN_CHUNK_AIMATERIAL); + + Write(&chunk,mat->mNumProperties); + for (unsigned int i = 0; i < mat->mNumProperties;++i) { + WriteBinaryMaterialProperty( &chunk, mat->mProperties[i]); + } + } + + // ----------------------------------------------------------------------------------- + void WriteBinaryNodeAnim(IOStream * container, const aiNodeAnim* nd) + { + AssbinChunkWriter chunk( container, ASSBIN_CHUNK_AINODEANIM ); + + Write(&chunk,nd->mNodeName); + Write(&chunk,nd->mNumPositionKeys); + Write(&chunk,nd->mNumRotationKeys); + Write(&chunk,nd->mNumScalingKeys); + Write(&chunk,nd->mPreState); + Write(&chunk,nd->mPostState); + + if (nd->mPositionKeys) { + if (shortened) { + WriteBounds(&chunk,nd->mPositionKeys,nd->mNumPositionKeys); + + } // else write as usual + else WriteArray(&chunk,nd->mPositionKeys,nd->mNumPositionKeys); + } + if (nd->mRotationKeys) { + if (shortened) { + WriteBounds(&chunk,nd->mRotationKeys,nd->mNumRotationKeys); + + } // else write as usual + else WriteArray(&chunk,nd->mRotationKeys,nd->mNumRotationKeys); + } + if (nd->mScalingKeys) { + if (shortened) { + WriteBounds(&chunk,nd->mScalingKeys,nd->mNumScalingKeys); + + } // else write as usual + else WriteArray(&chunk,nd->mScalingKeys,nd->mNumScalingKeys); + } + } + + + // ----------------------------------------------------------------------------------- + void WriteBinaryAnim( IOStream * container, const aiAnimation* anim ) + { + AssbinChunkWriter chunk( container, ASSBIN_CHUNK_AIANIMATION ); + + Write(&chunk,anim->mName); + Write(&chunk,anim->mDuration); + Write(&chunk,anim->mTicksPerSecond); + Write(&chunk,anim->mNumChannels); + + for (unsigned int a = 0; a < anim->mNumChannels;++a) { + const aiNodeAnim* nd = anim->mChannels[a]; + WriteBinaryNodeAnim(&chunk,nd); + } + } + + // ----------------------------------------------------------------------------------- + void WriteBinaryLight( IOStream * container, const aiLight* l ) + { + AssbinChunkWriter chunk( container, ASSBIN_CHUNK_AILIGHT ); + + Write(&chunk,l->mName); + Write(&chunk,l->mType); + + if (l->mType != aiLightSource_DIRECTIONAL) { + Write(&chunk,l->mAttenuationConstant); + Write(&chunk,l->mAttenuationLinear); + Write(&chunk,l->mAttenuationQuadratic); + } + + Write(&chunk,l->mColorDiffuse); + Write(&chunk,l->mColorSpecular); + Write(&chunk,l->mColorAmbient); + + if (l->mType == aiLightSource_SPOT) { + Write(&chunk,l->mAngleInnerCone); + Write(&chunk,l->mAngleOuterCone); + } + + } + + // ----------------------------------------------------------------------------------- + void WriteBinaryCamera( IOStream * container, const aiCamera* cam ) + { + AssbinChunkWriter chunk( container, ASSBIN_CHUNK_AICAMERA ); + + Write(&chunk,cam->mName); + Write(&chunk,cam->mPosition); + Write(&chunk,cam->mLookAt); + Write(&chunk,cam->mUp); + Write(&chunk,cam->mHorizontalFOV); + Write(&chunk,cam->mClipPlaneNear); + Write(&chunk,cam->mClipPlaneFar); + Write(&chunk,cam->mAspect); + } + + // ----------------------------------------------------------------------------------- + void WriteBinaryScene( IOStream * container, const aiScene* scene) + { + AssbinChunkWriter chunk( container, ASSBIN_CHUNK_AISCENE ); + + // basic scene information + Write(&chunk,scene->mFlags); + Write(&chunk,scene->mNumMeshes); + Write(&chunk,scene->mNumMaterials); + Write(&chunk,scene->mNumAnimations); + Write(&chunk,scene->mNumTextures); + Write(&chunk,scene->mNumLights); + Write(&chunk,scene->mNumCameras); + + // write node graph + WriteBinaryNode( &chunk, scene->mRootNode ); + + // write all meshes + for (unsigned int i = 0; i < scene->mNumMeshes;++i) { + const aiMesh* mesh = scene->mMeshes[i]; + WriteBinaryMesh( &chunk,mesh); + } + + // write materials + for (unsigned int i = 0; i< scene->mNumMaterials; ++i) { + const aiMaterial* mat = scene->mMaterials[i]; + WriteBinaryMaterial(&chunk,mat); + } + + // write all animations + for (unsigned int i = 0; i < scene->mNumAnimations;++i) { + const aiAnimation* anim = scene->mAnimations[i]; + WriteBinaryAnim(&chunk,anim); + } + + + // write all textures + for (unsigned int i = 0; i < scene->mNumTextures;++i) { + const aiTexture* mesh = scene->mTextures[i]; + WriteBinaryTexture(&chunk,mesh); + } + + // write lights + for (unsigned int i = 0; i < scene->mNumLights;++i) { + const aiLight* l = scene->mLights[i]; + WriteBinaryLight(&chunk,l); + } + + // write cameras + for (unsigned int i = 0; i < scene->mNumCameras;++i) { + const aiCamera* cam = scene->mCameras[i]; + WriteBinaryCamera(&chunk,cam); + } + + } + +public: + AssbinFileWriter(bool shortened, bool compressed) + : shortened(shortened), compressed(compressed) + { + } + + // ----------------------------------------------------------------------------------- + // Write a binary model dump + void WriteBinaryDump(const char* pFile, IOSystem* pIOSystem, const aiScene* pScene) + { + IOStream * out = pIOSystem->Open( pFile, "wb" ); + if (!out) + throw std::runtime_error("Unable to open output file " + std::string(pFile) + '\n'); + + auto CloseIOStream = [&]() { + if (out) { + pIOSystem->Close(out); + out = nullptr; // Ensure this is only done once. + } + }; + + try { + time_t tt = time(NULL); +#if _WIN32 + tm* p = gmtime(&tt); +#else + struct tm now; + tm* p = gmtime_r(&tt, &now); +#endif + + // header + char s[64]; + memset(s, 0, 64); +#if _MSC_VER >= 1400 + sprintf_s(s, "ASSIMP.binary-dump.%s", asctime(p)); +#else + ai_snprintf(s, 64, "ASSIMP.binary-dump.%s", asctime(p)); +#endif + out->Write(s, 44, 1); + // == 44 bytes + + Write(out, ASSBIN_VERSION_MAJOR); + Write(out, ASSBIN_VERSION_MINOR); + Write(out, aiGetVersionRevision()); + Write(out, aiGetCompileFlags()); + Write(out, shortened); + Write(out, compressed); + // == 20 bytes + + char buff[256]; + strncpy(buff, pFile, 256); + out->Write(buff, sizeof(char), 256); + + char cmd[] = "\0"; + strncpy(buff, cmd, 128); + out->Write(buff, sizeof(char), 128); + + // leave 64 bytes free for future extensions + memset(buff, 0xcd, 64); + out->Write(buff, sizeof(char), 64); + // == 435 bytes + + // ==== total header size: 512 bytes + ai_assert(out->Tell() == ASSBIN_HEADER_LENGTH); + + // Up to here the data is uncompressed. For compressed files, the rest + // is compressed using standard DEFLATE from zlib. + if (compressed) + { + AssbinChunkWriter uncompressedStream(NULL, 0); + WriteBinaryScene(&uncompressedStream, pScene); + + uLongf uncompressedSize = static_cast(uncompressedStream.Tell()); + uLongf compressedSize = (uLongf)compressBound(uncompressedSize); + uint8_t* compressedBuffer = new uint8_t[compressedSize]; + + int res = compress2(compressedBuffer, &compressedSize, (const Bytef*)uncompressedStream.GetBufferPointer(), uncompressedSize, 9); + if (res != Z_OK) + { + delete[] compressedBuffer; + throw DeadlyExportError("Compression failed."); + } + + out->Write(&uncompressedSize, sizeof(uint32_t), 1); + out->Write(compressedBuffer, sizeof(char), compressedSize); + + delete[] compressedBuffer; + } + else + { + WriteBinaryScene(out, pScene); + } + + CloseIOStream(); + } + catch (...) { + CloseIOStream(); + throw; + } + } +}; + +void DumpSceneToAssbin( + const char* pFile, IOSystem* pIOSystem, + const aiScene* pScene, bool shortened, bool compressed) { + AssbinFileWriter fileWriter(shortened, compressed); + fileWriter.WriteBinaryDump(pFile, pIOSystem, pScene); +} + +} // end of namespace Assimp diff --git a/code/Assbin/AssbinFileWriter.h b/code/Assbin/AssbinFileWriter.h new file mode 100644 index 000000000..1b151af7d --- /dev/null +++ b/code/Assbin/AssbinFileWriter.h @@ -0,0 +1,65 @@ +/* +Open Asset Import Library (assimp) +---------------------------------------------------------------------- + +Copyright (c) 2006-2020, assimp team + + +All rights reserved. + +Redistribution and use of this software in source and binary forms, +with or without modification, are permitted provided that the +following conditions are met: + +* Redistributions of source code must retain the above + copyright notice, this list of conditions and the + following disclaimer. + +* Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the + following disclaimer in the documentation and/or other + materials provided with the distribution. + +* Neither the name of the assimp team, nor the names of its + contributors may be used to endorse or promote products + derived from this software without specific prior + written permission of the assimp team. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +---------------------------------------------------------------------- +*/ + +/** @file AssbinFileWriter.h + * @brief Declaration of Assbin file writer. + */ + +#ifndef AI_ASSBINFILEWRITER_H_INC +#define AI_ASSBINFILEWRITER_H_INC + +#include +#include +#include + +namespace Assimp { + +void ASSIMP_API DumpSceneToAssbin( + const char* pFile, + IOSystem* pIOSystem, + const aiScene* pScene, + bool shortened, + bool compressed); + +} + +#endif // AI_ASSBINFILEWRITER_H_INC diff --git a/code/CMakeLists.txt b/code/CMakeLists.txt index 9144b4644..650d5f455 100644 --- a/code/CMakeLists.txt +++ b/code/CMakeLists.txt @@ -331,6 +331,8 @@ ADD_ASSIMP_IMPORTER( ASSBIN ADD_ASSIMP_EXPORTER( ASSBIN Assbin/AssbinExporter.h Assbin/AssbinExporter.cpp + Assbin/AssbinFileWriter.h + Assbin/AssbinFileWriter.cpp ) ADD_ASSIMP_EXPORTER( ASSXML diff --git a/tools/assimp_cmd/Main.h b/tools/assimp_cmd/Main.h index bd070102c..7a6ac942d 100644 --- a/tools/assimp_cmd/Main.h +++ b/tools/assimp_cmd/Main.h @@ -126,6 +126,7 @@ enum AssimpCmdError { UnknownFileFormat, NoFileExtensionSpecified, UnknownFileExtension, + ExceptionWasRaised, // Add new error codes here... diff --git a/tools/assimp_cmd/WriteDumb.cpp b/tools/assimp_cmd/WriteDumb.cpp index f019cfd6e..6990b5b14 100644 --- a/tools/assimp_cmd/WriteDumb.cpp +++ b/tools/assimp_cmd/WriteDumb.cpp @@ -60,679 +60,12 @@ const char* AICMD_MSG_DUMP_HELP = ; #include "Common/assbin_chunks.h" +#include +#include FILE* out = NULL; bool shortened = false; -// ----------------------------------------------------------------------------------- -// Compress a binary dump file (beginning at offset head_size) -void CompressBinaryDump(const char* file, unsigned int head_size) -{ - // for simplicity ... copy the file into memory again and compress it there - FILE* p = fopen(file,"r"); - fseek(p,0,SEEK_END); - const uint32_t size = ftell(p); - fseek(p,0,SEEK_SET); - - if (size uint32_t Write(const T&); - -// ----------------------------------------------------------------------------------- -// Serialize an aiString -template <> -inline uint32_t Write(const aiString& s) -{ - const uint32_t s2 = (uint32_t)s.length; - fwrite(&s,4,1,out); - fwrite(s.data,s2,1,out); - return s2+4; -} - -// ----------------------------------------------------------------------------------- -// Serialize an unsigned int as uint32_t -template <> -inline uint32_t Write(const unsigned int& w) -{ - const uint32_t t = (uint32_t)w; - if (w > t) { - // this shouldn't happen, integers in Assimp data structures never exceed 2^32 - printf("loss of data due to 64 -> 32 bit integer conversion"); - } - - fwrite(&t,4,1,out); - return 4; -} - -// ----------------------------------------------------------------------------------- -// Serialize an unsigned int as uint16_t -template <> -inline uint32_t Write(const uint16_t& w) -{ - fwrite(&w,2,1,out); - return 2; -} - -// ----------------------------------------------------------------------------------- -// Serialize a float -template <> -inline uint32_t Write(const float& f) -{ - static_assert(sizeof(float)==4, "sizeof(float)==4"); - fwrite(&f,4,1,out); - return 4; -} - -// ----------------------------------------------------------------------------------- -// Serialize a double -template <> -inline uint32_t Write(const double& f) -{ - static_assert(sizeof(double)==8, "sizeof(double)==8"); - fwrite(&f,8,1,out); - return 8; -} - -// ----------------------------------------------------------------------------------- -// Serialize a vec3 -template <> -inline uint32_t Write(const aiVector3D& v) -{ - uint32_t t = Write(v.x); - t += Write(v.y); - t += Write(v.z); - return t; -} - -// ----------------------------------------------------------------------------------- -// Serialize a color value -template <> -inline uint32_t Write(const aiColor3D& v) -{ - uint32_t t = Write(v.r); - t += Write(v.g); - t += Write(v.b); - return t; -} - -// ----------------------------------------------------------------------------------- -// Serialize a color value -template <> -inline uint32_t Write(const aiColor4D& v) -{ - uint32_t t = Write(v.r); - t += Write(v.g); - t += Write(v.b); - t += Write(v.a); - return t; -} - -// ----------------------------------------------------------------------------------- -// Serialize a quaternion -template <> -inline uint32_t Write(const aiQuaternion& v) -{ - uint32_t t = Write(v.w); - t += Write(v.x); - t += Write(v.y); - t += Write(v.z); - ai_assert(t == 16); - return 16; -} - - -// ----------------------------------------------------------------------------------- -// Serialize a vertex weight -template <> -inline uint32_t Write(const aiVertexWeight& v) -{ - uint32_t t = Write(v.mVertexId); - return t+Write(v.mWeight); -} - -// ----------------------------------------------------------------------------------- -// Serialize a mat4x4 -template <> -inline uint32_t Write(const aiMatrix4x4& m) -{ - for (unsigned int i = 0; i < 4;++i) { - for (unsigned int i2 = 0; i2 < 4;++i2) { - Write(m[i][i2]); - } - } - return 64; -} - -// ----------------------------------------------------------------------------------- -// Serialize an aiVectorKey -template <> -inline uint32_t Write(const aiVectorKey& v) -{ - const uint32_t t = Write(v.mTime); - return t + Write(v.mValue); -} - -// ----------------------------------------------------------------------------------- -// Serialize an aiQuatKey -template <> -inline uint32_t Write(const aiQuatKey& v) -{ - const uint32_t t = Write(v.mTime); - return t + Write(v.mValue); -} - -// ----------------------------------------------------------------------------------- -// Write the min/max values of an array of Ts to the file -template -inline uint32_t WriteBounds(const T* in, unsigned int size) -{ - T minc,maxc; - Assimp::ArrayBounds(in,size,minc,maxc); - - const uint32_t t = Write(minc); - return t + Write(maxc); -} - - - -// ----------------------------------------------------------------------------------- -void ChangeInteger(uint32_t ofs,uint32_t n) -{ - const uint32_t cur = ftell(out); - int retCode; - retCode = fseek(out, ofs, SEEK_SET); - ai_assert(0 == retCode); - fwrite(&n, 4, 1, out); - retCode = fseek(out, cur, SEEK_SET); - ai_assert(0 == retCode); -} - -// ----------------------------------------------------------------------------------- -uint32_t WriteBinaryNode(const aiNode* node) -{ - uint32_t len = 0, old = WriteMagic(ASSBIN_CHUNK_AINODE); - len += Write(node->mName); - len += Write(node->mTransformation); - len += Write(node->mNumChildren); - len += Write(node->mNumMeshes); - - for (unsigned int i = 0; i < node->mNumMeshes;++i) { - len += Write(node->mMeshes[i]); - } - - for (unsigned int i = 0; i < node->mNumChildren;++i) { - len += WriteBinaryNode(node->mChildren[i])+8; - } - - ChangeInteger(old,len); - return len; -} - -// ----------------------------------------------------------------------------------- -uint32_t WriteBinaryTexture(const aiTexture* tex) -{ - uint32_t len = 0, old = WriteMagic(ASSBIN_CHUNK_AITEXTURE); - - len += Write(tex->mWidth); - len += Write(tex->mHeight); - // Write the texture format, but don't include the null terminator. - len += static_cast(fwrite(tex->achFormatHint,sizeof(char),HINTMAXTEXTURELEN - 1,out)); - - if(!shortened) { - if (!tex->mHeight) { - len += static_cast(fwrite(tex->pcData,1,tex->mWidth,out)); - } - else { - len += static_cast(fwrite(tex->pcData,1,tex->mWidth*tex->mHeight*4,out)); - } - } - - ChangeInteger(old,len); - return len; -} - -// ----------------------------------------------------------------------------------- -uint32_t WriteBinaryBone(const aiBone* b) -{ - uint32_t len = 0, old = WriteMagic(ASSBIN_CHUNK_AIBONE); - - len += Write(b->mName); - len += Write(b->mNumWeights); - len += Write(b->mOffsetMatrix); - - // for the moment we write dumb min/max values for the bones, too. - // maybe I'll add a better, hash-like solution later - if (shortened) { - len += WriteBounds(b->mWeights,b->mNumWeights); - } // else write as usual - else len += static_cast(fwrite(b->mWeights,1,b->mNumWeights*sizeof(aiVertexWeight),out)); - - ChangeInteger(old,len); - return len; -} - -// ----------------------------------------------------------------------------------- -uint32_t WriteBinaryMesh(const aiMesh* mesh) -{ - uint32_t len = 0, old = WriteMagic(ASSBIN_CHUNK_AIMESH); - - len += Write(mesh->mPrimitiveTypes); - len += Write(mesh->mNumVertices); - len += Write(mesh->mNumFaces); - len += Write(mesh->mNumBones); - len += Write(mesh->mMaterialIndex); - - // first of all, write bits for all existent vertex components - unsigned int c = 0; - if (mesh->mVertices) { - c |= ASSBIN_MESH_HAS_POSITIONS; - } - if (mesh->mNormals) { - c |= ASSBIN_MESH_HAS_NORMALS; - } - if (mesh->mTangents && mesh->mBitangents) { - c |= ASSBIN_MESH_HAS_TANGENTS_AND_BITANGENTS; - } - for (unsigned int n = 0; n < AI_MAX_NUMBER_OF_TEXTURECOORDS;++n) { - if (!mesh->mTextureCoords[n]) { - break; - } - c |= ASSBIN_MESH_HAS_TEXCOORD(n); - } - for (unsigned int n = 0; n < AI_MAX_NUMBER_OF_COLOR_SETS;++n) { - if (!mesh->mColors[n]) { - break; - } - c |= ASSBIN_MESH_HAS_COLOR(n); - } - len += Write(c); - - aiVector3D minVec, maxVec; - if (mesh->mVertices) { - if (shortened) { - len += WriteBounds(mesh->mVertices,mesh->mNumVertices); - } // else write as usual - else len += static_cast(fwrite(mesh->mVertices,1,12*mesh->mNumVertices,out)); - } - if (mesh->mNormals) { - if (shortened) { - len += WriteBounds(mesh->mNormals,mesh->mNumVertices); - } // else write as usual - else len += static_cast(fwrite(mesh->mNormals,1,12*mesh->mNumVertices,out)); - } - if (mesh->mTangents && mesh->mBitangents) { - if (shortened) { - len += WriteBounds(mesh->mTangents,mesh->mNumVertices); - len += WriteBounds(mesh->mBitangents,mesh->mNumVertices); - } // else write as usual - else { - len += static_cast(fwrite(mesh->mTangents,1,12*mesh->mNumVertices,out)); - len += static_cast(fwrite(mesh->mBitangents,1,12*mesh->mNumVertices,out)); - } - } - for (unsigned int n = 0; n < AI_MAX_NUMBER_OF_COLOR_SETS;++n) { - if (!mesh->mColors[n]) - break; - - if (shortened) { - len += WriteBounds(mesh->mColors[n],mesh->mNumVertices); - } // else write as usual - else len += static_cast(fwrite(mesh->mColors[n],16*mesh->mNumVertices,1,out)); - } - for (unsigned int n = 0; n < AI_MAX_NUMBER_OF_TEXTURECOORDS;++n) { - if (!mesh->mTextureCoords[n]) - break; - - // write number of UV components - len += Write(mesh->mNumUVComponents[n]); - - if (shortened) { - len += WriteBounds(mesh->mTextureCoords[n],mesh->mNumVertices); - } // else write as usual - else len += static_cast(fwrite(mesh->mTextureCoords[n],12*mesh->mNumVertices,1,out)); - } - - // write faces. There are no floating-point calculations involved - // in these, so we can write a simple hash over the face data - // to the dump file. We generate a single 32 Bit hash for 512 faces - // using Assimp's standard hashing function. - if (shortened) { - unsigned int processed = 0; - for (unsigned int job;(job = std::min(mesh->mNumFaces-processed,512u));processed += job) { - - uint32_t hash = 0; - for (unsigned int a = 0; a < job;++a) { - - const aiFace& f = mesh->mFaces[processed+a]; - uint32_t tmp = f.mNumIndices; - hash = SuperFastHash(reinterpret_cast(&tmp),sizeof tmp,hash); - for (unsigned int i = 0; i < f.mNumIndices; ++i) { - static_assert(AI_MAX_VERTICES <= 0xffffffff, "AI_MAX_VERTICES <= 0xffffffff"); - tmp = static_cast( f.mIndices[i] ); - hash = SuperFastHash(reinterpret_cast(&tmp),sizeof tmp,hash); - } - } - len += Write(hash); - } - } - else // else write as usual - { - // if there are less than 2^16 vertices, we can simply use 16 bit integers ... - for (unsigned int i = 0; i < mesh->mNumFaces;++i) { - const aiFace& f = mesh->mFaces[i]; - - static_assert(AI_MAX_FACE_INDICES <= 0xffff, "AI_MAX_FACE_INDICES <= 0xffff"); - len += Write(f.mNumIndices); - - for (unsigned int a = 0; a < f.mNumIndices;++a) { - if (mesh->mNumVertices < (1u<<16)) { - len += Write(f.mIndices[a]); - } - else len += Write(f.mIndices[a]); - } - } - } - - // write bones - if (mesh->mNumBones) { - for (unsigned int a = 0; a < mesh->mNumBones;++a) { - const aiBone* b = mesh->mBones[a]; - len += WriteBinaryBone(b)+8; - } - } - - ChangeInteger(old,len); - return len; -} - -// ----------------------------------------------------------------------------------- -uint32_t WriteBinaryMaterialProperty(const aiMaterialProperty* prop) -{ - uint32_t len = 0, old = WriteMagic(ASSBIN_CHUNK_AIMATERIALPROPERTY); - - len += Write(prop->mKey); - len += Write(prop->mSemantic); - len += Write(prop->mIndex); - - len += Write(prop->mDataLength); - len += Write((unsigned int)prop->mType); - len += static_cast(fwrite(prop->mData,1,prop->mDataLength,out)); - - ChangeInteger(old,len); - return len; -} - -// ----------------------------------------------------------------------------------- -uint32_t WriteBinaryMaterial(const aiMaterial* mat) -{ - uint32_t len = 0, old = WriteMagic(ASSBIN_CHUNK_AIMATERIAL); - - len += Write(mat->mNumProperties); - for (unsigned int i = 0; i < mat->mNumProperties;++i) { - len += WriteBinaryMaterialProperty(mat->mProperties[i])+8; - } - - ChangeInteger(old,len); - return len; -} - -// ----------------------------------------------------------------------------------- -uint32_t WriteBinaryNodeAnim(const aiNodeAnim* nd) -{ - uint32_t len = 0, old = WriteMagic(ASSBIN_CHUNK_AINODEANIM); - - len += Write(nd->mNodeName); - len += Write(nd->mNumPositionKeys); - len += Write(nd->mNumRotationKeys); - len += Write(nd->mNumScalingKeys); - len += Write(nd->mPreState); - len += Write(nd->mPostState); - - if (nd->mPositionKeys) { - if (shortened) { - len += WriteBounds(nd->mPositionKeys,nd->mNumPositionKeys); - - } // else write as usual - else len += static_cast(fwrite(nd->mPositionKeys,1,nd->mNumPositionKeys*sizeof(aiVectorKey),out)); - } - if (nd->mRotationKeys) { - if (shortened) { - len += WriteBounds(nd->mRotationKeys,nd->mNumRotationKeys); - - } // else write as usual - else len += static_cast(fwrite(nd->mRotationKeys,1,nd->mNumRotationKeys*sizeof(aiQuatKey),out)); - } - if (nd->mScalingKeys) { - if (shortened) { - len += WriteBounds(nd->mScalingKeys,nd->mNumScalingKeys); - - } // else write as usual - else len += static_cast(fwrite(nd->mScalingKeys,1,nd->mNumScalingKeys*sizeof(aiVectorKey),out)); - } - - ChangeInteger(old,len); - return len; -} - - -// ----------------------------------------------------------------------------------- -uint32_t WriteBinaryAnim(const aiAnimation* anim) -{ - uint32_t len = 0, old = WriteMagic(ASSBIN_CHUNK_AIANIMATION); - - len += Write (anim->mName); - len += Write (anim->mDuration); - len += Write (anim->mTicksPerSecond); - len += Write(anim->mNumChannels); - - for (unsigned int a = 0; a < anim->mNumChannels;++a) { - const aiNodeAnim* nd = anim->mChannels[a]; - len += WriteBinaryNodeAnim(nd)+8; - } - - ChangeInteger(old,len); - return len; -} - -// ----------------------------------------------------------------------------------- -uint32_t WriteBinaryLight(const aiLight* l) -{ - uint32_t len = 0, old = WriteMagic(ASSBIN_CHUNK_AILIGHT); - - len += Write(l->mName); - len += Write(l->mType); - - if (l->mType != aiLightSource_DIRECTIONAL) { - len += Write(l->mAttenuationConstant); - len += Write(l->mAttenuationLinear); - len += Write(l->mAttenuationQuadratic); - } - - len += Write(l->mColorDiffuse); - len += Write(l->mColorSpecular); - len += Write(l->mColorAmbient); - - if (l->mType == aiLightSource_SPOT) { - len += Write(l->mAngleInnerCone); - len += Write(l->mAngleOuterCone); - } - - ChangeInteger(old,len); - return len; -} - -// ----------------------------------------------------------------------------------- -uint32_t WriteBinaryCamera(const aiCamera* cam) -{ - uint32_t len = 0, old = WriteMagic(ASSBIN_CHUNK_AICAMERA); - - len += Write(cam->mName); - len += Write(cam->mPosition); - len += Write(cam->mLookAt); - len += Write(cam->mUp); - len += Write(cam->mHorizontalFOV); - len += Write(cam->mClipPlaneNear); - len += Write(cam->mClipPlaneFar); - len += Write(cam->mAspect); - - ChangeInteger(old,len); - return len; -} - -// ----------------------------------------------------------------------------------- -uint32_t WriteBinaryScene(const aiScene* scene) -{ - uint32_t len = 0, old = WriteMagic(ASSBIN_CHUNK_AISCENE); - - // basic scene information - len += Write(scene->mFlags); - len += Write(scene->mNumMeshes); - len += Write(scene->mNumMaterials); - len += Write(scene->mNumAnimations); - len += Write(scene->mNumTextures); - len += Write(scene->mNumLights); - len += Write(scene->mNumCameras); - - // write node graph - len += WriteBinaryNode(scene->mRootNode)+8; - - // write all meshes - for (unsigned int i = 0; i < scene->mNumMeshes;++i) { - const aiMesh* mesh = scene->mMeshes[i]; - len += WriteBinaryMesh(mesh)+8; - } - - // write materials - for (unsigned int i = 0; i< scene->mNumMaterials; ++i) { - const aiMaterial* mat = scene->mMaterials[i]; - len += WriteBinaryMaterial(mat)+8; - } - - // write all animations - for (unsigned int i = 0; i < scene->mNumAnimations;++i) { - const aiAnimation* anim = scene->mAnimations[i]; - len += WriteBinaryAnim(anim)+8; - } - - - // write all textures - for (unsigned int i = 0; i < scene->mNumTextures;++i) { - const aiTexture* mesh = scene->mTextures[i]; - len += WriteBinaryTexture(mesh)+8; - } - - // write lights - for (unsigned int i = 0; i < scene->mNumLights;++i) { - const aiLight* l = scene->mLights[i]; - len += WriteBinaryLight(l)+8; - } - - // write cameras - for (unsigned int i = 0; i < scene->mNumCameras;++i) { - const aiCamera* cam = scene->mCameras[i]; - len += WriteBinaryCamera(cam)+8; - } - - ChangeInteger(old,len); - return len; -} - -// ----------------------------------------------------------------------------------- -// Write a binary model dump -void WriteBinaryDump(const aiScene* scene, FILE* _out, const char* src, const char* cmd, - bool _shortened, bool compressed, ImportData& /*imp*/) -{ - out = _out; - shortened = _shortened; - - time_t tt = time(NULL); -#if _WIN32 - tm* p = gmtime(&tt); -#else - struct tm now; - tm* p = gmtime_r(&tt, &now); -#endif - ai_assert(nullptr != p); - - // header - fprintf(out,"ASSIMP.binary-dump.%s",asctime(p)); - // == 44 bytes - - Write(ASSBIN_VERSION_MAJOR); - Write(ASSBIN_VERSION_MINOR); - Write(aiGetVersionRevision()); - Write(aiGetCompileFlags()); - Write(shortened); - Write(compressed); - // == 20 bytes - - { - char buff[256] = { 0 }; - strncpy(buff,src,256); - buff[255] = 0; - fwrite(buff,256,1,out); - } - - { - char buff[128] = { 0 }; - strncpy(buff,cmd,128); - buff[127] = 0; - fwrite(buff,128,1,out); - } - - // leave 64 bytes free for future extensions - { - char buff[64]; - memset(buff,0xcd,64); - fwrite(buff,64,1,out); - } - // == 435 bytes - - // ==== total header size: 512 bytes - ai_assert(ftell(out)==ASSBIN_HEADER_LENGTH); - - // Up to here the data is uncompressed. For compressed files, the rest - // is compressed using standard DEFLATE from zlib. - WriteBinaryScene(scene); -} - // ----------------------------------------------------------------------------------- // Convert a name to standard XML format void ConvertName(aiString& out, const aiString& in) @@ -1408,21 +741,29 @@ int Assimp_Dump (const char* const* params, unsigned int num) return AssimpCmdError::FailedToLoadInputFile; } - // open the output file and build the dump - FILE* o = ::fopen(out.c_str(),(binary ? "wb" : "wt")); - if (!o) { - printf("assimp dump: Unable to open output file %s\n",out.c_str()); - return AssimpCmdError::FailedToOpenOutputFile; - } - if (binary) { - WriteBinaryDump (scene,o,in.c_str(),cmd.c_str(),shortened,compressed,import); + try { + std::unique_ptr pIOSystem(new DefaultIOSystem()); + DumpSceneToAssbin(out.c_str(), pIOSystem.get(), + scene, shortened, compressed); + } + catch (const std::exception& e) { + printf(("assimp dump: " + std::string(e.what())).c_str()); + return AssimpCmdError::ExceptionWasRaised; + } + catch (...) { + printf("assimp dump: An unknown exception occured.\n"); + return AssimpCmdError::ExceptionWasRaised; + } } - else WriteDump (scene,o,in.c_str(),cmd.c_str(),shortened); - fclose(o); - - if (compressed && binary) { - CompressBinaryDump(out.c_str(),ASSBIN_HEADER_LENGTH); + else { + FILE* o = ::fopen(out.c_str(), "wt"); + if (!o) { + printf("assimp dump: Unable to open output file %s\n",out.c_str()); + return AssimpCmdError::FailedToOpenOutputFile; + } + WriteDump (scene,o,in.c_str(),cmd.c_str(),shortened); + fclose(o); } printf("assimp dump: Wrote output dump %s\n",out.c_str()); From 21edb13ff809194d0cb1ee47489f99dacb219759 Mon Sep 17 00:00:00 2001 From: Marc-Antoine Lortie Date: Tue, 28 Jan 2020 10:55:22 -0500 Subject: [PATCH 48/85] Added missing header for unique_ptr. --- tools/assimp_cmd/WriteDumb.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/tools/assimp_cmd/WriteDumb.cpp b/tools/assimp_cmd/WriteDumb.cpp index 6990b5b14..494efd9b2 100644 --- a/tools/assimp_cmd/WriteDumb.cpp +++ b/tools/assimp_cmd/WriteDumb.cpp @@ -63,6 +63,8 @@ const char* AICMD_MSG_DUMP_HELP = #include #include +#include + FILE* out = NULL; bool shortened = false; From a328c18286aba201bbd66898304c5b4c945cc151 Mon Sep 17 00:00:00 2001 From: Marc-Antoine Lortie Date: Tue, 28 Jan 2020 11:06:17 -0500 Subject: [PATCH 49/85] Fixed "printf format not a literal error" in build. --- tools/assimp_cmd/WriteDumb.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/assimp_cmd/WriteDumb.cpp b/tools/assimp_cmd/WriteDumb.cpp index 494efd9b2..787356c57 100644 --- a/tools/assimp_cmd/WriteDumb.cpp +++ b/tools/assimp_cmd/WriteDumb.cpp @@ -750,7 +750,7 @@ int Assimp_Dump (const char* const* params, unsigned int num) scene, shortened, compressed); } catch (const std::exception& e) { - printf(("assimp dump: " + std::string(e.what())).c_str()); + printf("%s", ("assimp dump: " + std::string(e.what())).c_str()); return AssimpCmdError::ExceptionWasRaised; } catch (...) { From 5f30d4c0f8b551f87c41b2b300ecfa6111b51fc5 Mon Sep 17 00:00:00 2001 From: Marc-Antoine Lortie Date: Tue, 28 Jan 2020 12:30:09 -0500 Subject: [PATCH 50/85] Added missing cmd writting. --- code/Assbin/AssbinExporter.cpp | 8 +++++++- code/Assbin/AssbinFileWriter.cpp | 7 +++---- code/Assbin/AssbinFileWriter.h | 1 + tools/assimp_cmd/WriteDumb.cpp | 2 +- 4 files changed, 12 insertions(+), 6 deletions(-) diff --git a/code/Assbin/AssbinExporter.cpp b/code/Assbin/AssbinExporter.cpp index c748624a7..496b39d49 100644 --- a/code/Assbin/AssbinExporter.cpp +++ b/code/Assbin/AssbinExporter.cpp @@ -55,7 +55,13 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. namespace Assimp { void ExportSceneAssbin(const char* pFile, IOSystem* pIOSystem, const aiScene* pScene, const ExportProperties* /*pProperties*/) { - DumpSceneToAssbin(pFile, pIOSystem, pScene, false, false); + DumpSceneToAssbin( + pFile, + "\0", // no command(s). + pIOSystem, + pScene, + false, // shortened? + false); // compressed? } } // end of namespace Assimp diff --git a/code/Assbin/AssbinFileWriter.cpp b/code/Assbin/AssbinFileWriter.cpp index 041bea748..daa748f6d 100644 --- a/code/Assbin/AssbinFileWriter.cpp +++ b/code/Assbin/AssbinFileWriter.cpp @@ -754,7 +754,7 @@ public: // ----------------------------------------------------------------------------------- // Write a binary model dump - void WriteBinaryDump(const char* pFile, IOSystem* pIOSystem, const aiScene* pScene) + void WriteBinaryDump(const char* pFile, const char* cmd, IOSystem* pIOSystem, const aiScene* pScene) { IOStream * out = pIOSystem->Open( pFile, "wb" ); if (!out) @@ -799,7 +799,6 @@ public: strncpy(buff, pFile, 256); out->Write(buff, sizeof(char), 256); - char cmd[] = "\0"; strncpy(buff, cmd, 128); out->Write(buff, sizeof(char), 128); @@ -849,10 +848,10 @@ public: }; void DumpSceneToAssbin( - const char* pFile, IOSystem* pIOSystem, + const char* pFile, const char* cmd, IOSystem* pIOSystem, const aiScene* pScene, bool shortened, bool compressed) { AssbinFileWriter fileWriter(shortened, compressed); - fileWriter.WriteBinaryDump(pFile, pIOSystem, pScene); + fileWriter.WriteBinaryDump(pFile, cmd, pIOSystem, pScene); } } // end of namespace Assimp diff --git a/code/Assbin/AssbinFileWriter.h b/code/Assbin/AssbinFileWriter.h index 1b151af7d..25db6db2d 100644 --- a/code/Assbin/AssbinFileWriter.h +++ b/code/Assbin/AssbinFileWriter.h @@ -55,6 +55,7 @@ namespace Assimp { void ASSIMP_API DumpSceneToAssbin( const char* pFile, + const char* cmd, IOSystem* pIOSystem, const aiScene* pScene, bool shortened, diff --git a/tools/assimp_cmd/WriteDumb.cpp b/tools/assimp_cmd/WriteDumb.cpp index 787356c57..1e97b54f2 100644 --- a/tools/assimp_cmd/WriteDumb.cpp +++ b/tools/assimp_cmd/WriteDumb.cpp @@ -746,7 +746,7 @@ int Assimp_Dump (const char* const* params, unsigned int num) if (binary) { try { std::unique_ptr pIOSystem(new DefaultIOSystem()); - DumpSceneToAssbin(out.c_str(), pIOSystem.get(), + DumpSceneToAssbin(out.c_str(), cmd.c_str(), pIOSystem.get(), scene, shortened, compressed); } catch (const std::exception& e) { From dd1a11b58533af01d843edaa73036ad9bde39a8e Mon Sep 17 00:00:00 2001 From: Kim Kulling Date: Tue, 28 Jan 2020 19:37:38 +0100 Subject: [PATCH 51/85] closes https://github.com/assimp/assimp/issues/1592: make install optional, default enabled. --- CMakeLists.txt | 96 +++++++++++++++++++++++++++----------------------- 1 file changed, 52 insertions(+), 44 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 580ce8ea2..fd3f1b802 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -100,6 +100,10 @@ OPTION ( ASSIMP_COVERALLS "Enable this to measure test coverage." OFF ) +OPTION( ASSIMP_INSTALL + "DIsable this if you want to use assimp as a submodule." + ON +) OPTION ( ASSIMP_ERROR_MAX "Enable all warnings." OFF @@ -601,55 +605,59 @@ ENDIF ( ASSIMP_BUILD_TESTS ) # Generate a pkg-config .pc for the Assimp library. CONFIGURE_FILE( "${PROJECT_SOURCE_DIR}/assimp.pc.in" "${PROJECT_BINARY_DIR}/assimp.pc" @ONLY ) -INSTALL( FILES "${PROJECT_BINARY_DIR}/assimp.pc" DESTINATION ${ASSIMP_LIB_INSTALL_DIR}/pkgconfig/ COMPONENT ${LIBASSIMP-DEV_COMPONENT}) +IF ( ASSIMP_INSTALL ) + INSTALL( FILES "${PROJECT_BINARY_DIR}/assimp.pc" DESTINATION ${ASSIMP_LIB_INSTALL_DIR}/pkgconfig/ COMPONENT ${LIBASSIMP-DEV_COMPONENT}) +ENDIF( ASSIMP_INSTALL ) -IF(CMAKE_CPACK_COMMAND AND UNIX AND ASSIMP_OPT_BUILD_PACKAGES) - # Packing information - SET(CPACK_PACKAGE_NAME "assimp{ASSIMP_VERSION_MAJOR}.{ASSIMP_VERSION_MINOR}") - SET(CPACK_PACKAGE_CONTACT "" CACHE STRING "Package maintainer and PGP signer.") - SET(CPACK_PACKAGE_VENDOR "https://github.com/assimp") - SET(CPACK_PACKAGE_DISPLAY_NAME "Assimp ${ASSIMP_VERSION}") - SET(CPACK_PACKAGE_DESCRIPTION_SUMMARY " - Open Asset Import Library ${ASSIMP_VERSION}") - SET(CPACK_PACKAGE_VERSION "${ASSIMP_VERSION}.${ASSIMP_PACKAGE_VERSION}" ) - SET(CPACK_PACKAGE_VERSION_MAJOR "${ASSIMP_VERSION_MAJOR}") - SET(CPACK_PACKAGE_VERSION_MINOR "${ASSIMP_VERSION_MINOR}") - SET(CPACK_PACKAGE_VERSION_PATCH "${ASSIMP_VERSION_PATCH}") - SET(CPACK_PACKAGE_INSTALL_DIRECTORY "assimp${ASSIMP_VERSION_MAJOR}.${ASSIMP_VERSION_MINOR}") - SET(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/LICENSE") +IF ( ASSIMP_INSTALL ) + IF(CMAKE_CPACK_COMMAND AND UNIX AND ASSIMP_OPT_BUILD_PACKAGES) + # Packing information + SET(CPACK_PACKAGE_NAME "assimp{ASSIMP_VERSION_MAJOR}.{ASSIMP_VERSION_MINOR}") + SET(CPACK_PACKAGE_CONTACT "" CACHE STRING "Package maintainer and PGP signer.") + SET(CPACK_PACKAGE_VENDOR "https://github.com/assimp") + SET(CPACK_PACKAGE_DISPLAY_NAME "Assimp ${ASSIMP_VERSION}") + SET(CPACK_PACKAGE_DESCRIPTION_SUMMARY " - Open Asset Import Library ${ASSIMP_VERSION}") + SET(CPACK_PACKAGE_VERSION "${ASSIMP_VERSION}.${ASSIMP_PACKAGE_VERSION}" ) + SET(CPACK_PACKAGE_VERSION_MAJOR "${ASSIMP_VERSION_MAJOR}") + SET(CPACK_PACKAGE_VERSION_MINOR "${ASSIMP_VERSION_MINOR}") + SET(CPACK_PACKAGE_VERSION_PATCH "${ASSIMP_VERSION_PATCH}") + SET(CPACK_PACKAGE_INSTALL_DIRECTORY "assimp${ASSIMP_VERSION_MAJOR}.${ASSIMP_VERSION_MINOR}") + SET(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/LICENSE") - STRING(TOUPPER ${LIBASSIMP_COMPONENT} "LIBASSIMP_COMPONENT_UPPER") - STRING(TOUPPER ${LIBASSIMP-DEV_COMPONENT} "LIBASSIMP-DEV_COMPONENT_UPPER") + STRING(TOUPPER ${LIBASSIMP_COMPONENT} "LIBASSIMP_COMPONENT_UPPER") + STRING(TOUPPER ${LIBASSIMP-DEV_COMPONENT} "LIBASSIMP-DEV_COMPONENT_UPPER") - SET(CPACK_COMPONENT_ASSIMP-BIN_DISPLAY_NAME "tools") - SET(CPACK_COMPONENT_ASSIMP-BIN_DEPENDS "${LIBASSIMP_COMPONENT}" ) - SET(CPACK_COMPONENT_${LIBASSIMP_COMPONENT_UPPER}_DISPLAY_NAME "libraries") - SET(CPACK_COMPONENT_${LIBASSIMP-DEV_COMPONENT_UPPER}_DISPLAY_NAME "common headers and installs") - SET(CPACK_COMPONENT_${LIBASSIMP-DEV_COMPONENT_UPPER}_DEPENDS $ "{LIBASSIMP_COMPONENT}" ) - SET(CPACK_COMPONENT_ASSIMP-DEV_DISPLAY_NAME "${CPACK_COMPONENT_${LIBASSIMP-DEV_COMPONENT}_DISPLAY_NAME}" ) - SET(CPACK_COMPONENT_ASSIMP-DEV_DEPENDS "${LIBASSIMP-DEV_COMPONENT}" ) - SET(CPACK_DEBIAN_BUILD_DEPENDS debhelper cmake zlib1g-dev pkg-config) + SET(CPACK_COMPONENT_ASSIMP-BIN_DISPLAY_NAME "tools") + SET(CPACK_COMPONENT_ASSIMP-BIN_DEPENDS "${LIBASSIMP_COMPONENT}" ) + SET(CPACK_COMPONENT_${LIBASSIMP_COMPONENT_UPPER}_DISPLAY_NAME "libraries") + SET(CPACK_COMPONENT_${LIBASSIMP-DEV_COMPONENT_UPPER}_DISPLAY_NAME "common headers and installs") + SET(CPACK_COMPONENT_${LIBASSIMP-DEV_COMPONENT_UPPER}_DEPENDS $ "{LIBASSIMP_COMPONENT}" ) + SET(CPACK_COMPONENT_ASSIMP-DEV_DISPLAY_NAME "${CPACK_COMPONENT_${LIBASSIMP-DEV_COMPONENT}_DISPLAY_NAME}" ) + SET(CPACK_COMPONENT_ASSIMP-DEV_DEPENDS "${LIBASSIMP-DEV_COMPONENT}" ) + SET(CPACK_DEBIAN_BUILD_DEPENDS debhelper cmake zlib1g-dev pkg-config) - # debian - SET(CPACK_DEBIAN_PACKAGE_PRIORITY "optional") - SET(CPACK_DEBIAN_CMAKE_OPTIONS "-DBUILD_ASSIMP_SAMPLES:BOOL=${ASSIMP_BUILD_SAMPLES}") - SET(CPACK_DEBIAN_PACKAGE_SECTION "libs" ) - SET(CPACK_DEBIAN_PACKAGE_DEPENDS "${CPACK_COMPONENTS_ALL}") - SET(CPACK_DEBIAN_PACKAGE_SUGGESTS) - set(cPACK_DEBIAN_PACKAGE_NAME "assimp") - SET(CPACK_DEBIAN_PACKAGE_REMOVE_SOURCE_FILES contrib/gtest contrib/zlib workspaces test doc obj samples packaging) - SET(CPACK_DEBIAN_PACKAGE_SOURCE_COPY svn export --force) - SET(CPACK_DEBIAN_CHANGELOG) - execute_process(COMMAND lsb_release -is - OUTPUT_VARIABLE _lsb_distribution OUTPUT_STRIP_TRAILING_WHITESPACE - RESULT_VARIABLE _lsb_release_failed) - SET(CPACK_DEBIAN_DISTRIBUTION_NAME ${_lsb_distribution} CACHE STRING "Name of the distrubiton") - STRING(TOLOWER ${CPACK_DEBIAN_DISTRIBUTION_NAME} CPACK_DEBIAN_DISTRIBUTION_NAME) - IF( ${CPACK_DEBIAN_DISTRIBUTION_NAME} STREQUAL "ubuntu" ) - SET(CPACK_DEBIAN_DISTRIBUTION_RELEASES lucid maverick natty oneiric precise CACHE STRING "Release code-names of the distrubiton release") + # debian + SET(CPACK_DEBIAN_PACKAGE_PRIORITY "optional") + SET(CPACK_DEBIAN_CMAKE_OPTIONS "-DBUILD_ASSIMP_SAMPLES:BOOL=${ASSIMP_BUILD_SAMPLES}") + SET(CPACK_DEBIAN_PACKAGE_SECTION "libs" ) + SET(CPACK_DEBIAN_PACKAGE_DEPENDS "${CPACK_COMPONENTS_ALL}") + SET(CPACK_DEBIAN_PACKAGE_SUGGESTS) + SET(cPACK_DEBIAN_PACKAGE_NAME "assimp") + SET(CPACK_DEBIAN_PACKAGE_REMOVE_SOURCE_FILES contrib/gtest contrib/zlib workspaces test doc obj samples packaging) + SET(CPACK_DEBIAN_PACKAGE_SOURCE_COPY svn export --force) + SET(CPACK_DEBIAN_CHANGELOG) + execute_process(COMMAND lsb_release -is + OUTPUT_VARIABLE _lsb_distribution OUTPUT_STRIP_TRAILING_WHITESPACE + RESULT_VARIABLE _lsb_release_failed) + SET(CPACK_DEBIAN_DISTRIBUTION_NAME ${_lsb_distribution} CACHE STRING "Name of the distrubiton") + STRING(TOLOWER ${CPACK_DEBIAN_DISTRIBUTION_NAME} CPACK_DEBIAN_DISTRIBUTION_NAME) + IF( ${CPACK_DEBIAN_DISTRIBUTION_NAME} STREQUAL "ubuntu" ) + SET(CPACK_DEBIAN_DISTRIBUTION_RELEASES lucid maverick natty oneiric precise CACHE STRING "Release code-names of the distrubiton release") + ENDIF() + SET(DPUT_HOST "" CACHE STRING "PPA repository to upload the debian sources") + INCLUDE(CPack) + INCLUDE(DebSourcePPA) ENDIF() - SET(DPUT_HOST "" CACHE STRING "PPA repository to upload the debian sources") - INCLUDE(CPack) - INCLUDE(DebSourcePPA) ENDIF() if(WIN32) From 81bc7825d112fdb37461be9414dcb6b1547cf547 Mon Sep 17 00:00:00 2001 From: Marc-Antoine Lortie Date: Tue, 28 Jan 2020 14:02:09 -0500 Subject: [PATCH 52/85] Potentially fixed strncpy warning by Coverity. --- code/Assbin/AssbinFileWriter.cpp | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/code/Assbin/AssbinFileWriter.cpp b/code/Assbin/AssbinFileWriter.cpp index daa748f6d..4bc8f7cac 100644 --- a/code/Assbin/AssbinFileWriter.cpp +++ b/code/Assbin/AssbinFileWriter.cpp @@ -795,13 +795,14 @@ public: Write(out, compressed); // == 20 bytes - char buff[256]; - strncpy(buff, pFile, 256); + char buff[256] = {0}; + ai_snprintf(buff, 256, "%s", pFile); out->Write(buff, sizeof(char), 256); - strncpy(buff, cmd, 128); + memset(buff, 0, sizeof(buff)); + ai_snprintf(buff, 128, "%s", cmd); out->Write(buff, sizeof(char), 128); - + // leave 64 bytes free for future extensions memset(buff, 0xcd, 64); out->Write(buff, sizeof(char), 64); From 5860d63efcebdf650aef13757a6ac9b948ed8a8b Mon Sep 17 00:00:00 2001 From: Kim Kulling Date: Tue, 28 Jan 2020 22:02:29 +0100 Subject: [PATCH 53/85] Update appveyor.yml Disable compilers to improve appveyor build performance --- appveyor.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/appveyor.yml b/appveyor.yml index 299f42df6..4fb79dd69 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -17,10 +17,10 @@ matrix: image: - Visual Studio 2013 - - Visual Studio 2015 - - Visual Studio 2017 + #- Visual Studio 2015 + #- Visual Studio 2017 - Visual Studio 2019 - - MinGW + #- MinGW platform: - Win32 From 194d31002d62aca910687bfda5bc9301203c948b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lo=C3=AFc?= Date: Wed, 29 Jan 2020 14:04:41 +0100 Subject: [PATCH 54/85] Import/export of embedded texture names for the glTF/glTF2 format --- code/glTF/glTFExporter.cpp | 2 ++ code/glTF/glTFImporter.cpp | 1 + code/glTF2/glTF2Exporter.cpp | 2 ++ code/glTF2/glTF2Importer.cpp | 1 + 4 files changed, 6 insertions(+) diff --git a/code/glTF/glTFExporter.cpp b/code/glTF/glTFExporter.cpp index 3caea7de9..4ebe53c00 100644 --- a/code/glTF/glTFExporter.cpp +++ b/code/glTF/glTFExporter.cpp @@ -352,6 +352,8 @@ void glTFExporter::GetMatColorOrTex(const aiMaterial* mat, glTF::TexProperty& pr if (path[0] == '*') { // embedded aiTexture* tex = mScene->mTextures[atoi(&path[1])]; + + prop.texture->source->name = tex->mFilename.C_Str(); uint8_t* data = reinterpret_cast(tex->pcData); prop.texture->source->SetData(data, tex->mWidth, *mAsset); diff --git a/code/glTF/glTFImporter.cpp b/code/glTF/glTFImporter.cpp index 45c0e42a9..bba48dc30 100644 --- a/code/glTF/glTFImporter.cpp +++ b/code/glTF/glTFImporter.cpp @@ -680,6 +680,7 @@ void glTFImporter::ImportEmbeddedTextures(glTF::Asset& r) size_t length = img.GetDataLength(); void* data = img.StealData(); + tex->mFilename = img.name; tex->mWidth = static_cast(length); tex->mHeight = 0; tex->pcData = reinterpret_cast(data); diff --git a/code/glTF2/glTF2Exporter.cpp b/code/glTF2/glTF2Exporter.cpp index 7a7d581cb..b240a5ea9 100644 --- a/code/glTF2/glTF2Exporter.cpp +++ b/code/glTF2/glTF2Exporter.cpp @@ -351,6 +351,8 @@ void glTF2Exporter::GetMatTex(const aiMaterial* mat, Ref& texture, aiTe if (path[0] == '*') { // embedded aiTexture* tex = mScene->mTextures[atoi(&path[1])]; + + texture->source->name = tex->mFilename.C_Str(); // The asset has its own buffer, see Image::SetData texture->source->SetData(reinterpret_cast (tex->pcData), tex->mWidth, *mAsset); diff --git a/code/glTF2/glTF2Importer.cpp b/code/glTF2/glTF2Importer.cpp index e5052d4d6..af98076a7 100644 --- a/code/glTF2/glTF2Importer.cpp +++ b/code/glTF2/glTF2Importer.cpp @@ -1248,6 +1248,7 @@ void glTF2Importer::ImportEmbeddedTextures(glTF2::Asset &r) { size_t length = img.GetDataLength(); void *data = img.StealData(); + tex->mFilename = img.name; tex->mWidth = static_cast(length); tex->mHeight = 0; tex->pcData = reinterpret_cast(data); From 0d672efa905412ecc5beda33dad2124bd8890480 Mon Sep 17 00:00:00 2001 From: Max Vollmer Date: Wed, 29 Jan 2020 15:04:26 +0000 Subject: [PATCH 55/85] Check input token length before copy --- code/FBX/FBXParser.cpp | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/code/FBX/FBXParser.cpp b/code/FBX/FBXParser.cpp index 215ff7484..5486fdcc6 100644 --- a/code/FBX/FBXParser.cpp +++ b/code/FBX/FBXParser.cpp @@ -367,9 +367,12 @@ float ParseTokenAsFloat(const Token& t, const char*& err_out) // first - next in the fbx token stream comes ',', // which fast_atof could interpret as decimal point. #define MAX_FLOAT_LENGTH 31 - char temp[MAX_FLOAT_LENGTH + 1]; const size_t length = static_cast(t.end()-t.begin()); - std::copy(t.begin(),t.end(),temp); + if (length > MAX_FLOAT_LENGTH) + return 0.f; + + char temp[MAX_FLOAT_LENGTH + 1]; + std::copy(t.begin(), t.end(), temp); temp[std::min(static_cast(MAX_FLOAT_LENGTH),length)] = '\0'; return fast_atof(temp); From 9e46fca9a911db010a6be87780073336785efccb Mon Sep 17 00:00:00 2001 From: Max Vollmer Date: Wed, 29 Jan 2020 15:06:48 +0000 Subject: [PATCH 56/85] Added missing checks for tempData and uvIndices sizes in all cases --- code/FBX/FBXMeshGeometry.cpp | 38 ++++++++++++++++++++++++++++++------ 1 file changed, 32 insertions(+), 6 deletions(-) diff --git a/code/FBX/FBXMeshGeometry.cpp b/code/FBX/FBXMeshGeometry.cpp index 70e35ccb3..003f0870c 100644 --- a/code/FBX/FBXMeshGeometry.cpp +++ b/code/FBX/FBXMeshGeometry.cpp @@ -448,6 +448,12 @@ void ResolveVertexDataArray(std::vector& data_out, const Scope& source, std::vector tempData; ParseVectorDataArray(tempData, GetRequiredElement(source, dataElementName)); + if (tempData.size() != vertex_count) { + FBXImporter::LogError(Formatter::format("length of input data unexpected for ByVertice mapping: ") + << tempData.size() << ", expected " << vertex_count); + return; + } + data_out.resize(vertex_count); for (size_t i = 0, e = tempData.size(); i < e; ++i) { @@ -461,10 +467,23 @@ void ResolveVertexDataArray(std::vector& data_out, const Scope& source, std::vector tempData; ParseVectorDataArray(tempData, GetRequiredElement(source, dataElementName)); - data_out.resize(vertex_count); + if (tempData.size() != vertex_count) { + FBXImporter::LogError(Formatter::format("length of input data unexpected for ByVertice mapping: ") + << tempData.size() << ", expected " << vertex_count); + return; + } std::vector uvIndices; ParseVectorDataArray(uvIndices,GetRequiredElement(source,indexDataElementName)); + + if (uvIndices.size() != vertex_count) { + FBXImporter::LogError(Formatter::format("length of input data unexpected for ByVertice mapping: ") + << uvIndices.size() << ", expected " << vertex_count); + return; + } + + data_out.resize(vertex_count); + for (size_t i = 0, e = uvIndices.size(); i < e; ++i) { const unsigned int istart = mapping_offsets[i], iend = istart + mapping_counts[i]; @@ -493,15 +512,22 @@ void ResolveVertexDataArray(std::vector& data_out, const Scope& source, std::vector tempData; ParseVectorDataArray(tempData, GetRequiredElement(source, dataElementName)); - data_out.resize(vertex_count); + if (tempData.size() != vertex_count) { + FBXImporter::LogError(Formatter::format("length of input data unexpected for ByPolygonVertex mapping: ") + << tempData.size() << ", expected " << vertex_count); + return; + } std::vector uvIndices; ParseVectorDataArray(uvIndices,GetRequiredElement(source,indexDataElementName)); - if (uvIndices.size() != vertex_count) { - FBXImporter::LogError("length of input data unexpected for ByPolygonVertex mapping"); - return; - } + if (uvIndices.size() != vertex_count) { + FBXImporter::LogError(Formatter::format("length of input data unexpected for ByPolygonVertex mapping: ") + << uvIndices.size() << ", expected " << vertex_count); + return; + } + + data_out.resize(vertex_count); const T empty; unsigned int next = 0; From ff168d7bc09f14d56e17ec037e3a10ccb49bf7ba Mon Sep 17 00:00:00 2001 From: Marc-Antoine Lortie Date: Wed, 29 Jan 2020 13:44:51 -0500 Subject: [PATCH 57/85] Refactored Assxml exporter and dump xml writer. - Moved AssxmlExporter serialization code in a new file AssxmlFileWriter.cpp/h - Added new files to CMakeLists.txt - Replaced string format specifiers %i by %u to match argument type. - Made a few changes in WriteDumb.cpp to call the new DumpSceneToAssxml function. --- code/Assxml/AssxmlExporter.cpp | 601 +--------------------------- code/Assxml/AssxmlFileWriter.cpp | 664 +++++++++++++++++++++++++++++++ code/Assxml/AssxmlFileWriter.h | 65 +++ code/CMakeLists.txt | 2 + tools/assimp_cmd/WriteDumb.cpp | 594 +-------------------------- 5 files changed, 753 insertions(+), 1173 deletions(-) create mode 100644 code/Assxml/AssxmlFileWriter.cpp create mode 100644 code/Assxml/AssxmlFileWriter.h diff --git a/code/Assxml/AssxmlExporter.cpp b/code/Assxml/AssxmlExporter.cpp index 6ebff3582..720fd5b40 100644 --- a/code/Assxml/AssxmlExporter.cpp +++ b/code/Assxml/AssxmlExporter.cpp @@ -46,607 +46,20 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #ifndef ASSIMP_BUILD_NO_EXPORT #ifndef ASSIMP_BUILD_NO_ASSXML_EXPORTER -#include "PostProcessing/ProcessHelper.h" - -#include -#include +#include "AssxmlFileWriter.h" #include #include -#include - -#ifdef ASSIMP_BUILD_NO_OWN_ZLIB -# include -#else -# include -#endif - -#include -#include - -using namespace Assimp; - namespace Assimp { -namespace AssxmlExport { - -// ----------------------------------------------------------------------------------- -static int ioprintf( IOStream * io, const char *format, ... ) { - using namespace std; - if ( nullptr == io ) { - return -1; - } - - static const int Size = 4096; - char sz[ Size ]; - ::memset( sz, '\0', Size ); - va_list va; - va_start( va, format ); - const unsigned int nSize = vsnprintf( sz, Size-1, format, va ); - ai_assert( nSize < Size ); - va_end( va ); - - io->Write( sz, sizeof(char), nSize ); - - return nSize; -} - -// ----------------------------------------------------------------------------------- -// Convert a name to standard XML format -static void ConvertName(aiString& out, const aiString& in) { - out.length = 0; - for (unsigned int i = 0; i < in.length; ++i) { - switch (in.data[i]) { - case '<': - out.Append("<");break; - case '>': - out.Append(">");break; - case '&': - out.Append("&");break; - case '\"': - out.Append(""");break; - case '\'': - out.Append("'");break; - default: - out.data[out.length++] = in.data[i]; - } - } - out.data[out.length] = 0; -} - -// ----------------------------------------------------------------------------------- -// Write a single node as text dump -static void WriteNode(const aiNode* node, IOStream * io, unsigned int depth) { - char prefix[512]; - for (unsigned int i = 0; i < depth;++i) - prefix[i] = '\t'; - prefix[depth] = '\0'; - - const aiMatrix4x4& m = node->mTransformation; - - aiString name; - ConvertName(name,node->mName); - ioprintf(io,"%s \n" - "%s\t \n" - "%s\t\t%0 6f %0 6f %0 6f %0 6f\n" - "%s\t\t%0 6f %0 6f %0 6f %0 6f\n" - "%s\t\t%0 6f %0 6f %0 6f %0 6f\n" - "%s\t\t%0 6f %0 6f %0 6f %0 6f\n" - "%s\t \n", - prefix,name.data,prefix, - prefix,m.a1,m.a2,m.a3,m.a4, - prefix,m.b1,m.b2,m.b3,m.b4, - prefix,m.c1,m.c2,m.c3,m.c4, - prefix,m.d1,m.d2,m.d3,m.d4,prefix); - - if (node->mNumMeshes) { - ioprintf(io, "%s\t\n%s\t", - prefix,node->mNumMeshes,prefix); - - for (unsigned int i = 0; i < node->mNumMeshes;++i) { - ioprintf(io,"%i ",node->mMeshes[i]); - } - ioprintf(io,"\n%s\t\n",prefix); - } - - if (node->mNumChildren) { - ioprintf(io,"%s\t\n", - prefix,node->mNumChildren); - - for (unsigned int i = 0; i < node->mNumChildren;++i) { - WriteNode(node->mChildren[i],io,depth+2); - } - ioprintf(io,"%s\t\n",prefix); - } - ioprintf(io,"%s\n",prefix); -} - - -// ----------------------------------------------------------------------------------- -// Some chuncks of text will need to be encoded for XML -// http://stackoverflow.com/questions/5665231/most-efficient-way-to-escape-xml-html-in-c-string#5665377 -static std::string encodeXML(const std::string& data) { - std::string buffer; - buffer.reserve(data.size()); - for(size_t pos = 0; pos != data.size(); ++pos) { - switch(data[pos]) { - case '&': buffer.append("&"); break; - case '\"': buffer.append("""); break; - case '\'': buffer.append("'"); break; - case '<': buffer.append("<"); break; - case '>': buffer.append(">"); break; - default: buffer.append(&data[pos], 1); break; - } - } - return buffer; -} - -// ----------------------------------------------------------------------------------- -// Write a text model dump -static -void WriteDump(const aiScene* scene, IOStream* io, bool shortened) { - time_t tt = ::time( NULL ); -#if _WIN32 - tm* p = gmtime(&tt); -#else - struct tm now; - tm* p = gmtime_r(&tt, &now); -#endif - ai_assert(nullptr != p); - - // write header - std::string header( - "\n" - "\n\n" - "" - " \n\n" - "\n" - ); - - const unsigned int majorVersion( aiGetVersionMajor() ); - const unsigned int minorVersion( aiGetVersionMinor() ); - const unsigned int rev( aiGetVersionRevision() ); - const char *curtime( asctime( p ) ); - ioprintf( io, header.c_str(), majorVersion, minorVersion, rev, curtime, scene->mFlags, 0 ); - - // write the node graph - WriteNode(scene->mRootNode, io, 0); - -#if 0 - // write cameras - for (unsigned int i = 0; i < scene->mNumCameras;++i) { - aiCamera* cam = scene->mCameras[i]; - ConvertName(name,cam->mName); - - // camera header - ioprintf(io,"\t\n" - "\t\t %0 8f %0 8f %0 8f \n" - "\t\t %0 8f %0 8f %0 8f \n" - "\t\t %0 8f %0 8f %0 8f \n" - "\t\t %f \n" - "\t\t %f \n" - "\t\t %f \n" - "\t\t %f \n" - "\t\n", - name.data, - cam->mUp.x,cam->mUp.y,cam->mUp.z, - cam->mLookAt.x,cam->mLookAt.y,cam->mLookAt.z, - cam->mPosition.x,cam->mPosition.y,cam->mPosition.z, - cam->mHorizontalFOV,cam->mAspect,cam->mClipPlaneNear,cam->mClipPlaneFar,i); - } - - // write lights - for (unsigned int i = 0; i < scene->mNumLights;++i) { - aiLight* l = scene->mLights[i]; - ConvertName(name,l->mName); - - // light header - ioprintf(io,"\t type=\"%s\"\n" - "\t\t %0 8f %0 8f %0 8f \n" - "\t\t %0 8f %0 8f %0 8f \n" - "\t\t %0 8f %0 8f %0 8f \n", - name.data, - (l->mType == aiLightSource_DIRECTIONAL ? "directional" : - (l->mType == aiLightSource_POINT ? "point" : "spot" )), - l->mColorDiffuse.r, l->mColorDiffuse.g, l->mColorDiffuse.b, - l->mColorSpecular.r,l->mColorSpecular.g,l->mColorSpecular.b, - l->mColorAmbient.r, l->mColorAmbient.g, l->mColorAmbient.b); - - if (l->mType != aiLightSource_DIRECTIONAL) { - ioprintf(io, - "\t\t %0 8f %0 8f %0 8f \n" - "\t\t %f \n" - "\t\t %f \n" - "\t\t %f \n", - l->mPosition.x,l->mPosition.y,l->mPosition.z, - l->mAttenuationConstant,l->mAttenuationLinear,l->mAttenuationQuadratic); - } - - if (l->mType != aiLightSource_POINT) { - ioprintf(io, - "\t\t %0 8f %0 8f %0 8f \n", - l->mDirection.x,l->mDirection.y,l->mDirection.z); - } - - if (l->mType == aiLightSource_SPOT) { - ioprintf(io, - "\t\t %f \n" - "\t\t %f \n", - l->mAngleOuterCone,l->mAngleInnerCone); - } - ioprintf(io,"\t\n"); - } -#endif - aiString name; - - // write textures - if (scene->mNumTextures) { - ioprintf(io,"\n",scene->mNumTextures); - for (unsigned int i = 0; i < scene->mNumTextures;++i) { - aiTexture* tex = scene->mTextures[i]; - bool compressed = (tex->mHeight == 0); - - // mesh header - ioprintf(io,"\t \n", - (compressed ? -1 : tex->mWidth),(compressed ? -1 : tex->mHeight), - (compressed ? "true" : "false")); - - if (compressed) { - ioprintf(io,"\t\t \n",tex->mWidth); - - if (!shortened) { - for (unsigned int n = 0; n < tex->mWidth;++n) { - ioprintf(io,"\t\t\t%2x",reinterpret_cast(tex->pcData)[n]); - if (n && !(n % 50)) { - ioprintf(io,"\n"); - } - } - } - } - else if (!shortened){ - ioprintf(io,"\t\t \n",tex->mWidth*tex->mHeight*4); - - // const unsigned int width = (unsigned int)std::log10((double)std::max(tex->mHeight,tex->mWidth))+1; - for (unsigned int y = 0; y < tex->mHeight;++y) { - for (unsigned int x = 0; x < tex->mWidth;++x) { - aiTexel* tx = tex->pcData + y*tex->mWidth+x; - unsigned int r = tx->r,g=tx->g,b=tx->b,a=tx->a; - ioprintf(io,"\t\t\t%2x %2x %2x %2x",r,g,b,a); - - // group by four for readability - if ( 0 == ( x + y*tex->mWidth ) % 4 ) { - ioprintf( io, "\n" ); - } - } - } - } - ioprintf(io,"\t\t\n\t\n"); - } - ioprintf(io,"\n"); - } - - // write materials - if (scene->mNumMaterials) { - ioprintf(io,"\n",scene->mNumMaterials); - for (unsigned int i = 0; i< scene->mNumMaterials; ++i) { - const aiMaterial* mat = scene->mMaterials[i]; - - ioprintf(io,"\t\n"); - ioprintf(io,"\t\t\n",mat->mNumProperties); - for (unsigned int n = 0; n < mat->mNumProperties;++n) { - - const aiMaterialProperty* prop = mat->mProperties[n]; - const char* sz = ""; - if (prop->mType == aiPTI_Float) { - sz = "float"; - } - else if (prop->mType == aiPTI_Integer) { - sz = "integer"; - } - else if (prop->mType == aiPTI_String) { - sz = "string"; - } - else if (prop->mType == aiPTI_Buffer) { - sz = "binary_buffer"; - } - - ioprintf(io,"\t\t\tmKey.data, sz, - ::TextureTypeToString((aiTextureType)prop->mSemantic),prop->mIndex); - - if (prop->mType == aiPTI_Float) { - ioprintf(io," size=\"%i\">\n\t\t\t\t", - static_cast(prop->mDataLength/sizeof(float))); - - for (unsigned int p = 0; p < prop->mDataLength/sizeof(float);++p) { - ioprintf(io,"%f ",*((float*)(prop->mData+p*sizeof(float)))); - } - } - else if (prop->mType == aiPTI_Integer) { - ioprintf(io," size=\"%i\">\n\t\t\t\t", - static_cast(prop->mDataLength/sizeof(int))); - - for (unsigned int p = 0; p < prop->mDataLength/sizeof(int);++p) { - ioprintf(io,"%i ",*((int*)(prop->mData+p*sizeof(int)))); - } - } - else if (prop->mType == aiPTI_Buffer) { - ioprintf(io," size=\"%i\">\n\t\t\t\t", - static_cast(prop->mDataLength)); - - for (unsigned int p = 0; p < prop->mDataLength;++p) { - ioprintf(io,"%2x ",prop->mData[p]); - if (p && 0 == p%30) { - ioprintf(io,"\n\t\t\t\t"); - } - } - } - else if (prop->mType == aiPTI_String) { - ioprintf(io,">\n\t\t\t\t\"%s\"",encodeXML(prop->mData+4).c_str() /* skip length */); - } - ioprintf(io,"\n\t\t\t\n"); - } - ioprintf(io,"\t\t\n"); - ioprintf(io,"\t\n"); - } - ioprintf(io,"\n"); - } - - // write animations - if (scene->mNumAnimations) { - ioprintf(io,"\n",scene->mNumAnimations); - for (unsigned int i = 0; i < scene->mNumAnimations;++i) { - aiAnimation* anim = scene->mAnimations[i]; - - // anim header - ConvertName(name,anim->mName); - ioprintf(io,"\t\n", - name.data, anim->mDuration, anim->mTicksPerSecond); - - // write bone animation channels - if (anim->mNumChannels) { - ioprintf(io,"\t\t\n",anim->mNumChannels); - for (unsigned int n = 0; n < anim->mNumChannels;++n) { - aiNodeAnim* nd = anim->mChannels[n]; - - // node anim header - ConvertName(name,nd->mNodeName); - ioprintf(io,"\t\t\t\n",name.data); - - if (!shortened) { - // write position keys - if (nd->mNumPositionKeys) { - ioprintf(io,"\t\t\t\t\n",nd->mNumPositionKeys); - for (unsigned int a = 0; a < nd->mNumPositionKeys;++a) { - aiVectorKey* vc = nd->mPositionKeys+a; - ioprintf(io,"\t\t\t\t\t\n" - "\t\t\t\t\t\t%0 8f %0 8f %0 8f\n\t\t\t\t\t\n", - vc->mTime,vc->mValue.x,vc->mValue.y,vc->mValue.z); - } - ioprintf(io,"\t\t\t\t\n"); - } - - // write scaling keys - if (nd->mNumScalingKeys) { - ioprintf(io,"\t\t\t\t\n",nd->mNumScalingKeys); - for (unsigned int a = 0; a < nd->mNumScalingKeys;++a) { - aiVectorKey* vc = nd->mScalingKeys+a; - ioprintf(io,"\t\t\t\t\t\n" - "\t\t\t\t\t\t%0 8f %0 8f %0 8f\n\t\t\t\t\t\n", - vc->mTime,vc->mValue.x,vc->mValue.y,vc->mValue.z); - } - ioprintf(io,"\t\t\t\t\n"); - } - - // write rotation keys - if (nd->mNumRotationKeys) { - ioprintf(io,"\t\t\t\t\n",nd->mNumRotationKeys); - for (unsigned int a = 0; a < nd->mNumRotationKeys;++a) { - aiQuatKey* vc = nd->mRotationKeys+a; - ioprintf(io,"\t\t\t\t\t\n" - "\t\t\t\t\t\t%0 8f %0 8f %0 8f %0 8f\n\t\t\t\t\t\n", - vc->mTime,vc->mValue.x,vc->mValue.y,vc->mValue.z,vc->mValue.w); - } - ioprintf(io,"\t\t\t\t\n"); - } - } - ioprintf(io,"\t\t\t\n"); - } - ioprintf(io,"\t\t\n"); - } - ioprintf(io,"\t\n"); - } - ioprintf(io,"\n"); - } - - // write meshes - if (scene->mNumMeshes) { - ioprintf(io,"\n",scene->mNumMeshes); - for (unsigned int i = 0; i < scene->mNumMeshes;++i) { - aiMesh* mesh = scene->mMeshes[i]; - // const unsigned int width = (unsigned int)std::log10((double)mesh->mNumVertices)+1; - - // mesh header - ioprintf(io,"\t\n", - (mesh->mPrimitiveTypes & aiPrimitiveType_POINT ? "points" : ""), - (mesh->mPrimitiveTypes & aiPrimitiveType_LINE ? "lines" : ""), - (mesh->mPrimitiveTypes & aiPrimitiveType_TRIANGLE ? "triangles" : ""), - (mesh->mPrimitiveTypes & aiPrimitiveType_POLYGON ? "polygons" : ""), - mesh->mMaterialIndex); - - // bones - if (mesh->mNumBones) { - ioprintf(io,"\t\t\n",mesh->mNumBones); - - for (unsigned int n = 0; n < mesh->mNumBones;++n) { - aiBone* bone = mesh->mBones[n]; - - ConvertName(name,bone->mName); - // bone header - ioprintf(io,"\t\t\t\n" - "\t\t\t\t \n" - "\t\t\t\t\t%0 6f %0 6f %0 6f %0 6f\n" - "\t\t\t\t\t%0 6f %0 6f %0 6f %0 6f\n" - "\t\t\t\t\t%0 6f %0 6f %0 6f %0 6f\n" - "\t\t\t\t\t%0 6f %0 6f %0 6f %0 6f\n" - "\t\t\t\t \n", - name.data, - bone->mOffsetMatrix.a1,bone->mOffsetMatrix.a2,bone->mOffsetMatrix.a3,bone->mOffsetMatrix.a4, - bone->mOffsetMatrix.b1,bone->mOffsetMatrix.b2,bone->mOffsetMatrix.b3,bone->mOffsetMatrix.b4, - bone->mOffsetMatrix.c1,bone->mOffsetMatrix.c2,bone->mOffsetMatrix.c3,bone->mOffsetMatrix.c4, - bone->mOffsetMatrix.d1,bone->mOffsetMatrix.d2,bone->mOffsetMatrix.d3,bone->mOffsetMatrix.d4); - - if (!shortened && bone->mNumWeights) { - ioprintf(io,"\t\t\t\t\n",bone->mNumWeights); - - // bone weights - for (unsigned int a = 0; a < bone->mNumWeights;++a) { - aiVertexWeight* wght = bone->mWeights+a; - - ioprintf(io,"\t\t\t\t\t\n\t\t\t\t\t\t%f\n\t\t\t\t\t\n", - wght->mVertexId,wght->mWeight); - } - ioprintf(io,"\t\t\t\t\n"); - } - ioprintf(io,"\t\t\t\n"); - } - ioprintf(io,"\t\t\n"); - } - - // faces - if (!shortened && mesh->mNumFaces) { - ioprintf(io,"\t\t\n",mesh->mNumFaces); - for (unsigned int n = 0; n < mesh->mNumFaces; ++n) { - aiFace& f = mesh->mFaces[n]; - ioprintf(io,"\t\t\t\n" - "\t\t\t\t",f.mNumIndices); - - for (unsigned int j = 0; j < f.mNumIndices;++j) - ioprintf(io,"%i ",f.mIndices[j]); - - ioprintf(io,"\n\t\t\t\n"); - } - ioprintf(io,"\t\t\n"); - } - - // vertex positions - if (mesh->HasPositions()) { - ioprintf(io,"\t\t \n",mesh->mNumVertices); - if (!shortened) { - for (unsigned int n = 0; n < mesh->mNumVertices; ++n) { - ioprintf(io,"\t\t%0 8f %0 8f %0 8f\n", - mesh->mVertices[n].x, - mesh->mVertices[n].y, - mesh->mVertices[n].z); - } - } - ioprintf(io,"\t\t\n"); - } - - // vertex normals - if (mesh->HasNormals()) { - ioprintf(io,"\t\t \n",mesh->mNumVertices); - if (!shortened) { - for (unsigned int n = 0; n < mesh->mNumVertices; ++n) { - ioprintf(io,"\t\t%0 8f %0 8f %0 8f\n", - mesh->mNormals[n].x, - mesh->mNormals[n].y, - mesh->mNormals[n].z); - } - } - ioprintf(io,"\t\t\n"); - } - - // vertex tangents and bitangents - if (mesh->HasTangentsAndBitangents()) { - ioprintf(io,"\t\t \n",mesh->mNumVertices); - if (!shortened) { - for (unsigned int n = 0; n < mesh->mNumVertices; ++n) { - ioprintf(io,"\t\t%0 8f %0 8f %0 8f\n", - mesh->mTangents[n].x, - mesh->mTangents[n].y, - mesh->mTangents[n].z); - } - } - ioprintf(io,"\t\t\n"); - - ioprintf(io,"\t\t \n",mesh->mNumVertices); - if (!shortened) { - for (unsigned int n = 0; n < mesh->mNumVertices; ++n) { - ioprintf(io,"\t\t%0 8f %0 8f %0 8f\n", - mesh->mBitangents[n].x, - mesh->mBitangents[n].y, - mesh->mBitangents[n].z); - } - } - ioprintf(io,"\t\t\n"); - } - - // texture coordinates - for (unsigned int a = 0; a < AI_MAX_NUMBER_OF_TEXTURECOORDS; ++a) { - if (!mesh->mTextureCoords[a]) - break; - - ioprintf(io,"\t\t \n",mesh->mNumVertices, - a,mesh->mNumUVComponents[a]); - - if (!shortened) { - if (mesh->mNumUVComponents[a] == 3) { - for (unsigned int n = 0; n < mesh->mNumVertices; ++n) { - ioprintf(io,"\t\t%0 8f %0 8f %0 8f\n", - mesh->mTextureCoords[a][n].x, - mesh->mTextureCoords[a][n].y, - mesh->mTextureCoords[a][n].z); - } - } - else { - for (unsigned int n = 0; n < mesh->mNumVertices; ++n) { - ioprintf(io,"\t\t%0 8f %0 8f\n", - mesh->mTextureCoords[a][n].x, - mesh->mTextureCoords[a][n].y); - } - } - } - ioprintf(io,"\t\t\n"); - } - - // vertex colors - for (unsigned int a = 0; a < AI_MAX_NUMBER_OF_COLOR_SETS; ++a) { - if (!mesh->mColors[a]) - break; - ioprintf(io,"\t\t \n",mesh->mNumVertices,a); - if (!shortened) { - for (unsigned int n = 0; n < mesh->mNumVertices; ++n) { - ioprintf(io,"\t\t%0 8f %0 8f %0 8f %0 8f\n", - mesh->mColors[a][n].r, - mesh->mColors[a][n].g, - mesh->mColors[a][n].b, - mesh->mColors[a][n].a); - } - } - ioprintf(io,"\t\t\n"); - } - ioprintf(io,"\t\n"); - } - ioprintf(io,"\n"); - } - ioprintf(io,"\n"); -} - -} // end of namespace AssxmlExport - void ExportSceneAssxml(const char* pFile, IOSystem* pIOSystem, const aiScene* pScene, const ExportProperties* /*pProperties*/) { - IOStream * out = pIOSystem->Open( pFile, "wt" ); - if (!out) return; - - bool shortened = false; - AssxmlExport::WriteDump( pScene, out, shortened ); - - pIOSystem->Close( out ); + DumpSceneToAssxml( + pFile, + "\0", // command(s) + pIOSystem, + pScene, + false); // shortened? } } // end of namespace Assimp diff --git a/code/Assxml/AssxmlFileWriter.cpp b/code/Assxml/AssxmlFileWriter.cpp new file mode 100644 index 000000000..0ed59e509 --- /dev/null +++ b/code/Assxml/AssxmlFileWriter.cpp @@ -0,0 +1,664 @@ +/* +Open Asset Import Library (assimp) +---------------------------------------------------------------------- + +Copyright (c) 2006-2020, assimp team + + +All rights reserved. + +Redistribution and use of this software in source and binary forms, +with or without modification, are permitted provided that the +following conditions are met: + +* Redistributions of source code must retain the above + copyright notice, this list of conditions and the + following disclaimer. + +* Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the + following disclaimer in the documentation and/or other + materials provided with the distribution. + +* Neither the name of the assimp team, nor the names of its + contributors may be used to endorse or promote products + derived from this software without specific prior + written permission of the assimp team. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +---------------------------------------------------------------------- +*/ + +/** @file AssxmlFileWriter.cpp + * @brief Implementation of Assxml file writer. + */ + +#include "AssxmlFileWriter.h" + +#include "PostProcessing/ProcessHelper.h" + +#include +#include +#include +#include + +#include + +#ifdef ASSIMP_BUILD_NO_OWN_ZLIB +# include +#else +# include +#endif + +#include +#include +#include + +using namespace Assimp; + +namespace Assimp { + +namespace AssxmlFileWriter { + +// ----------------------------------------------------------------------------------- +static int ioprintf( IOStream * io, const char *format, ... ) { + using namespace std; + if ( nullptr == io ) { + return -1; + } + + static const int Size = 4096; + char sz[ Size ]; + ::memset( sz, '\0', Size ); + va_list va; + va_start( va, format ); + const unsigned int nSize = vsnprintf( sz, Size-1, format, va ); + ai_assert( nSize < Size ); + va_end( va ); + + io->Write( sz, sizeof(char), nSize ); + + return nSize; +} + +// ----------------------------------------------------------------------------------- +// Convert a name to standard XML format +static void ConvertName(aiString& out, const aiString& in) { + out.length = 0; + for (unsigned int i = 0; i < in.length; ++i) { + switch (in.data[i]) { + case '<': + out.Append("<");break; + case '>': + out.Append(">");break; + case '&': + out.Append("&");break; + case '\"': + out.Append(""");break; + case '\'': + out.Append("'");break; + default: + out.data[out.length++] = in.data[i]; + } + } + out.data[out.length] = 0; +} + +// ----------------------------------------------------------------------------------- +// Write a single node as text dump +static void WriteNode(const aiNode* node, IOStream * io, unsigned int depth) { + char prefix[512]; + for (unsigned int i = 0; i < depth;++i) + prefix[i] = '\t'; + prefix[depth] = '\0'; + + const aiMatrix4x4& m = node->mTransformation; + + aiString name; + ConvertName(name,node->mName); + ioprintf(io,"%s \n" + "%s\t \n" + "%s\t\t%0 6f %0 6f %0 6f %0 6f\n" + "%s\t\t%0 6f %0 6f %0 6f %0 6f\n" + "%s\t\t%0 6f %0 6f %0 6f %0 6f\n" + "%s\t\t%0 6f %0 6f %0 6f %0 6f\n" + "%s\t \n", + prefix,name.data,prefix, + prefix,m.a1,m.a2,m.a3,m.a4, + prefix,m.b1,m.b2,m.b3,m.b4, + prefix,m.c1,m.c2,m.c3,m.c4, + prefix,m.d1,m.d2,m.d3,m.d4,prefix); + + if (node->mNumMeshes) { + ioprintf(io, "%s\t\n%s\t", + prefix,node->mNumMeshes,prefix); + + for (unsigned int i = 0; i < node->mNumMeshes;++i) { + ioprintf(io,"%u ",node->mMeshes[i]); + } + ioprintf(io,"\n%s\t\n",prefix); + } + + if (node->mNumChildren) { + ioprintf(io,"%s\t\n", + prefix,node->mNumChildren); + + for (unsigned int i = 0; i < node->mNumChildren;++i) { + WriteNode(node->mChildren[i],io,depth+2); + } + ioprintf(io,"%s\t\n",prefix); + } + ioprintf(io,"%s\n",prefix); +} + + +// ----------------------------------------------------------------------------------- +// Some chuncks of text will need to be encoded for XML +// http://stackoverflow.com/questions/5665231/most-efficient-way-to-escape-xml-html-in-c-string#5665377 +static std::string encodeXML(const std::string& data) { + std::string buffer; + buffer.reserve(data.size()); + for(size_t pos = 0; pos != data.size(); ++pos) { + switch(data[pos]) { + case '&': buffer.append("&"); break; + case '\"': buffer.append("""); break; + case '\'': buffer.append("'"); break; + case '<': buffer.append("<"); break; + case '>': buffer.append(">"); break; + default: buffer.append(&data[pos], 1); break; + } + } + return buffer; +} + +// ----------------------------------------------------------------------------------- +// Write a text model dump +static +void WriteDump(const char* pFile, const char* cmd, const aiScene* scene, IOStream* io, bool shortened) { + time_t tt = ::time( NULL ); +#if _WIN32 + tm* p = gmtime(&tt); +#else + struct tm now; + tm* p = gmtime_r(&tt, &now); +#endif + ai_assert(nullptr != p); + + std::string c = cmd; + std::string::size_type s; + + // https://sourceforge.net/tracker/?func=detail&aid=3167364&group_id=226462&atid=1067632 + // -- not allowed in XML comments + while((s = c.find("--")) != std::string::npos) { + c[s] = '?'; + } + + // write header + std::string header( + "\n" + "\n\n" + "" + " \n\n" + "\n" + ); + + const unsigned int majorVersion( aiGetVersionMajor() ); + const unsigned int minorVersion( aiGetVersionMinor() ); + const unsigned int rev( aiGetVersionRevision() ); + const char *curtime( asctime( p ) ); + ioprintf( io, header.c_str(), majorVersion, minorVersion, rev, pFile, c.c_str(), curtime, scene->mFlags, 0u ); + + // write the node graph + WriteNode(scene->mRootNode, io, 0); + +#if 0 + // write cameras + for (unsigned int i = 0; i < scene->mNumCameras;++i) { + aiCamera* cam = scene->mCameras[i]; + ConvertName(name,cam->mName); + + // camera header + ioprintf(io,"\t\n" + "\t\t %0 8f %0 8f %0 8f \n" + "\t\t %0 8f %0 8f %0 8f \n" + "\t\t %0 8f %0 8f %0 8f \n" + "\t\t %f \n" + "\t\t %f \n" + "\t\t %f \n" + "\t\t %f \n" + "\t\n", + name.data, + cam->mUp.x,cam->mUp.y,cam->mUp.z, + cam->mLookAt.x,cam->mLookAt.y,cam->mLookAt.z, + cam->mPosition.x,cam->mPosition.y,cam->mPosition.z, + cam->mHorizontalFOV,cam->mAspect,cam->mClipPlaneNear,cam->mClipPlaneFar,i); + } + + // write lights + for (unsigned int i = 0; i < scene->mNumLights;++i) { + aiLight* l = scene->mLights[i]; + ConvertName(name,l->mName); + + // light header + ioprintf(io,"\t type=\"%s\"\n" + "\t\t %0 8f %0 8f %0 8f \n" + "\t\t %0 8f %0 8f %0 8f \n" + "\t\t %0 8f %0 8f %0 8f \n", + name.data, + (l->mType == aiLightSource_DIRECTIONAL ? "directional" : + (l->mType == aiLightSource_POINT ? "point" : "spot" )), + l->mColorDiffuse.r, l->mColorDiffuse.g, l->mColorDiffuse.b, + l->mColorSpecular.r,l->mColorSpecular.g,l->mColorSpecular.b, + l->mColorAmbient.r, l->mColorAmbient.g, l->mColorAmbient.b); + + if (l->mType != aiLightSource_DIRECTIONAL) { + ioprintf(io, + "\t\t %0 8f %0 8f %0 8f \n" + "\t\t %f \n" + "\t\t %f \n" + "\t\t %f \n", + l->mPosition.x,l->mPosition.y,l->mPosition.z, + l->mAttenuationConstant,l->mAttenuationLinear,l->mAttenuationQuadratic); + } + + if (l->mType != aiLightSource_POINT) { + ioprintf(io, + "\t\t %0 8f %0 8f %0 8f \n", + l->mDirection.x,l->mDirection.y,l->mDirection.z); + } + + if (l->mType == aiLightSource_SPOT) { + ioprintf(io, + "\t\t %f \n" + "\t\t %f \n", + l->mAngleOuterCone,l->mAngleInnerCone); + } + ioprintf(io,"\t\n"); + } +#endif + aiString name; + + // write textures + if (scene->mNumTextures) { + ioprintf(io,"\n",scene->mNumTextures); + for (unsigned int i = 0; i < scene->mNumTextures;++i) { + aiTexture* tex = scene->mTextures[i]; + bool compressed = (tex->mHeight == 0); + + // mesh header + ioprintf(io,"\t \n", + (compressed ? -1 : tex->mWidth),(compressed ? -1 : tex->mHeight), + (compressed ? "true" : "false")); + + if (compressed) { + ioprintf(io,"\t\t \n",tex->mWidth); + + if (!shortened) { + for (unsigned int n = 0; n < tex->mWidth;++n) { + ioprintf(io,"\t\t\t%2x",reinterpret_cast(tex->pcData)[n]); + if (n && !(n % 50)) { + ioprintf(io,"\n"); + } + } + } + } + else if (!shortened){ + ioprintf(io,"\t\t \n",tex->mWidth*tex->mHeight*4); + + // const unsigned int width = (unsigned int)std::log10((double)std::max(tex->mHeight,tex->mWidth))+1; + for (unsigned int y = 0; y < tex->mHeight;++y) { + for (unsigned int x = 0; x < tex->mWidth;++x) { + aiTexel* tx = tex->pcData + y*tex->mWidth+x; + unsigned int r = tx->r,g=tx->g,b=tx->b,a=tx->a; + ioprintf(io,"\t\t\t%2x %2x %2x %2x",r,g,b,a); + + // group by four for readability + if ( 0 == ( x + y*tex->mWidth ) % 4 ) { + ioprintf( io, "\n" ); + } + } + } + } + ioprintf(io,"\t\t\n\t\n"); + } + ioprintf(io,"\n"); + } + + // write materials + if (scene->mNumMaterials) { + ioprintf(io,"\n",scene->mNumMaterials); + for (unsigned int i = 0; i< scene->mNumMaterials; ++i) { + const aiMaterial* mat = scene->mMaterials[i]; + + ioprintf(io,"\t\n"); + ioprintf(io,"\t\t\n",mat->mNumProperties); + for (unsigned int n = 0; n < mat->mNumProperties;++n) { + + const aiMaterialProperty* prop = mat->mProperties[n]; + const char* sz = ""; + if (prop->mType == aiPTI_Float) { + sz = "float"; + } + else if (prop->mType == aiPTI_Integer) { + sz = "integer"; + } + else if (prop->mType == aiPTI_String) { + sz = "string"; + } + else if (prop->mType == aiPTI_Buffer) { + sz = "binary_buffer"; + } + + ioprintf(io,"\t\t\tmKey.data, sz, + ::TextureTypeToString((aiTextureType)prop->mSemantic),prop->mIndex); + + if (prop->mType == aiPTI_Float) { + ioprintf(io," size=\"%i\">\n\t\t\t\t", + static_cast(prop->mDataLength/sizeof(float))); + + for (unsigned int p = 0; p < prop->mDataLength/sizeof(float);++p) { + ioprintf(io,"%f ",*((float*)(prop->mData+p*sizeof(float)))); + } + } + else if (prop->mType == aiPTI_Integer) { + ioprintf(io," size=\"%i\">\n\t\t\t\t", + static_cast(prop->mDataLength/sizeof(int))); + + for (unsigned int p = 0; p < prop->mDataLength/sizeof(int);++p) { + ioprintf(io,"%i ",*((int*)(prop->mData+p*sizeof(int)))); + } + } + else if (prop->mType == aiPTI_Buffer) { + ioprintf(io," size=\"%i\">\n\t\t\t\t", + static_cast(prop->mDataLength)); + + for (unsigned int p = 0; p < prop->mDataLength;++p) { + ioprintf(io,"%2x ",prop->mData[p]); + if (p && 0 == p%30) { + ioprintf(io,"\n\t\t\t\t"); + } + } + } + else if (prop->mType == aiPTI_String) { + ioprintf(io,">\n\t\t\t\t\"%s\"",encodeXML(prop->mData+4).c_str() /* skip length */); + } + ioprintf(io,"\n\t\t\t\n"); + } + ioprintf(io,"\t\t\n"); + ioprintf(io,"\t\n"); + } + ioprintf(io,"\n"); + } + + // write animations + if (scene->mNumAnimations) { + ioprintf(io,"\n",scene->mNumAnimations); + for (unsigned int i = 0; i < scene->mNumAnimations;++i) { + aiAnimation* anim = scene->mAnimations[i]; + + // anim header + ConvertName(name,anim->mName); + ioprintf(io,"\t\n", + name.data, anim->mDuration, anim->mTicksPerSecond); + + // write bone animation channels + if (anim->mNumChannels) { + ioprintf(io,"\t\t\n",anim->mNumChannels); + for (unsigned int n = 0; n < anim->mNumChannels;++n) { + aiNodeAnim* nd = anim->mChannels[n]; + + // node anim header + ConvertName(name,nd->mNodeName); + ioprintf(io,"\t\t\t\n",name.data); + + if (!shortened) { + // write position keys + if (nd->mNumPositionKeys) { + ioprintf(io,"\t\t\t\t\n",nd->mNumPositionKeys); + for (unsigned int a = 0; a < nd->mNumPositionKeys;++a) { + aiVectorKey* vc = nd->mPositionKeys+a; + ioprintf(io,"\t\t\t\t\t\n" + "\t\t\t\t\t\t%0 8f %0 8f %0 8f\n\t\t\t\t\t\n", + vc->mTime,vc->mValue.x,vc->mValue.y,vc->mValue.z); + } + ioprintf(io,"\t\t\t\t\n"); + } + + // write scaling keys + if (nd->mNumScalingKeys) { + ioprintf(io,"\t\t\t\t\n",nd->mNumScalingKeys); + for (unsigned int a = 0; a < nd->mNumScalingKeys;++a) { + aiVectorKey* vc = nd->mScalingKeys+a; + ioprintf(io,"\t\t\t\t\t\n" + "\t\t\t\t\t\t%0 8f %0 8f %0 8f\n\t\t\t\t\t\n", + vc->mTime,vc->mValue.x,vc->mValue.y,vc->mValue.z); + } + ioprintf(io,"\t\t\t\t\n"); + } + + // write rotation keys + if (nd->mNumRotationKeys) { + ioprintf(io,"\t\t\t\t\n",nd->mNumRotationKeys); + for (unsigned int a = 0; a < nd->mNumRotationKeys;++a) { + aiQuatKey* vc = nd->mRotationKeys+a; + ioprintf(io,"\t\t\t\t\t\n" + "\t\t\t\t\t\t%0 8f %0 8f %0 8f %0 8f\n\t\t\t\t\t\n", + vc->mTime,vc->mValue.x,vc->mValue.y,vc->mValue.z,vc->mValue.w); + } + ioprintf(io,"\t\t\t\t\n"); + } + } + ioprintf(io,"\t\t\t\n"); + } + ioprintf(io,"\t\t\n"); + } + ioprintf(io,"\t\n"); + } + ioprintf(io,"\n"); + } + + // write meshes + if (scene->mNumMeshes) { + ioprintf(io,"\n",scene->mNumMeshes); + for (unsigned int i = 0; i < scene->mNumMeshes;++i) { + aiMesh* mesh = scene->mMeshes[i]; + // const unsigned int width = (unsigned int)std::log10((double)mesh->mNumVertices)+1; + + // mesh header + ioprintf(io,"\t\n", + (mesh->mPrimitiveTypes & aiPrimitiveType_POINT ? "points" : ""), + (mesh->mPrimitiveTypes & aiPrimitiveType_LINE ? "lines" : ""), + (mesh->mPrimitiveTypes & aiPrimitiveType_TRIANGLE ? "triangles" : ""), + (mesh->mPrimitiveTypes & aiPrimitiveType_POLYGON ? "polygons" : ""), + mesh->mMaterialIndex); + + // bones + if (mesh->mNumBones) { + ioprintf(io,"\t\t\n",mesh->mNumBones); + + for (unsigned int n = 0; n < mesh->mNumBones;++n) { + aiBone* bone = mesh->mBones[n]; + + ConvertName(name,bone->mName); + // bone header + ioprintf(io,"\t\t\t\n" + "\t\t\t\t \n" + "\t\t\t\t\t%0 6f %0 6f %0 6f %0 6f\n" + "\t\t\t\t\t%0 6f %0 6f %0 6f %0 6f\n" + "\t\t\t\t\t%0 6f %0 6f %0 6f %0 6f\n" + "\t\t\t\t\t%0 6f %0 6f %0 6f %0 6f\n" + "\t\t\t\t \n", + name.data, + bone->mOffsetMatrix.a1,bone->mOffsetMatrix.a2,bone->mOffsetMatrix.a3,bone->mOffsetMatrix.a4, + bone->mOffsetMatrix.b1,bone->mOffsetMatrix.b2,bone->mOffsetMatrix.b3,bone->mOffsetMatrix.b4, + bone->mOffsetMatrix.c1,bone->mOffsetMatrix.c2,bone->mOffsetMatrix.c3,bone->mOffsetMatrix.c4, + bone->mOffsetMatrix.d1,bone->mOffsetMatrix.d2,bone->mOffsetMatrix.d3,bone->mOffsetMatrix.d4); + + if (!shortened && bone->mNumWeights) { + ioprintf(io,"\t\t\t\t\n",bone->mNumWeights); + + // bone weights + for (unsigned int a = 0; a < bone->mNumWeights;++a) { + aiVertexWeight* wght = bone->mWeights+a; + + ioprintf(io,"\t\t\t\t\t\n\t\t\t\t\t\t%f\n\t\t\t\t\t\n", + wght->mVertexId,wght->mWeight); + } + ioprintf(io,"\t\t\t\t\n"); + } + ioprintf(io,"\t\t\t\n"); + } + ioprintf(io,"\t\t\n"); + } + + // faces + if (!shortened && mesh->mNumFaces) { + ioprintf(io,"\t\t\n",mesh->mNumFaces); + for (unsigned int n = 0; n < mesh->mNumFaces; ++n) { + aiFace& f = mesh->mFaces[n]; + ioprintf(io,"\t\t\t\n" + "\t\t\t\t",f.mNumIndices); + + for (unsigned int j = 0; j < f.mNumIndices;++j) + ioprintf(io,"%u ",f.mIndices[j]); + + ioprintf(io,"\n\t\t\t\n"); + } + ioprintf(io,"\t\t\n"); + } + + // vertex positions + if (mesh->HasPositions()) { + ioprintf(io,"\t\t \n",mesh->mNumVertices); + if (!shortened) { + for (unsigned int n = 0; n < mesh->mNumVertices; ++n) { + ioprintf(io,"\t\t%0 8f %0 8f %0 8f\n", + mesh->mVertices[n].x, + mesh->mVertices[n].y, + mesh->mVertices[n].z); + } + } + ioprintf(io,"\t\t\n"); + } + + // vertex normals + if (mesh->HasNormals()) { + ioprintf(io,"\t\t \n",mesh->mNumVertices); + if (!shortened) { + for (unsigned int n = 0; n < mesh->mNumVertices; ++n) { + ioprintf(io,"\t\t%0 8f %0 8f %0 8f\n", + mesh->mNormals[n].x, + mesh->mNormals[n].y, + mesh->mNormals[n].z); + } + } + ioprintf(io,"\t\t\n"); + } + + // vertex tangents and bitangents + if (mesh->HasTangentsAndBitangents()) { + ioprintf(io,"\t\t \n",mesh->mNumVertices); + if (!shortened) { + for (unsigned int n = 0; n < mesh->mNumVertices; ++n) { + ioprintf(io,"\t\t%0 8f %0 8f %0 8f\n", + mesh->mTangents[n].x, + mesh->mTangents[n].y, + mesh->mTangents[n].z); + } + } + ioprintf(io,"\t\t\n"); + + ioprintf(io,"\t\t \n",mesh->mNumVertices); + if (!shortened) { + for (unsigned int n = 0; n < mesh->mNumVertices; ++n) { + ioprintf(io,"\t\t%0 8f %0 8f %0 8f\n", + mesh->mBitangents[n].x, + mesh->mBitangents[n].y, + mesh->mBitangents[n].z); + } + } + ioprintf(io,"\t\t\n"); + } + + // texture coordinates + for (unsigned int a = 0; a < AI_MAX_NUMBER_OF_TEXTURECOORDS; ++a) { + if (!mesh->mTextureCoords[a]) + break; + + ioprintf(io,"\t\t \n",mesh->mNumVertices, + a,mesh->mNumUVComponents[a]); + + if (!shortened) { + if (mesh->mNumUVComponents[a] == 3) { + for (unsigned int n = 0; n < mesh->mNumVertices; ++n) { + ioprintf(io,"\t\t%0 8f %0 8f %0 8f\n", + mesh->mTextureCoords[a][n].x, + mesh->mTextureCoords[a][n].y, + mesh->mTextureCoords[a][n].z); + } + } + else { + for (unsigned int n = 0; n < mesh->mNumVertices; ++n) { + ioprintf(io,"\t\t%0 8f %0 8f\n", + mesh->mTextureCoords[a][n].x, + mesh->mTextureCoords[a][n].y); + } + } + } + ioprintf(io,"\t\t\n"); + } + + // vertex colors + for (unsigned int a = 0; a < AI_MAX_NUMBER_OF_COLOR_SETS; ++a) { + if (!mesh->mColors[a]) + break; + ioprintf(io,"\t\t \n",mesh->mNumVertices,a); + if (!shortened) { + for (unsigned int n = 0; n < mesh->mNumVertices; ++n) { + ioprintf(io,"\t\t%0 8f %0 8f %0 8f %0 8f\n", + mesh->mColors[a][n].r, + mesh->mColors[a][n].g, + mesh->mColors[a][n].b, + mesh->mColors[a][n].a); + } + } + ioprintf(io,"\t\t\n"); + } + ioprintf(io,"\t\n"); + } + ioprintf(io,"\n"); + } + ioprintf(io,"\n"); +} + +} // end of namespace AssxmlFileWriter + +void DumpSceneToAssxml( + const char* pFile, const char* cmd, IOSystem* pIOSystem, + const aiScene* pScene, bool shortened) { + std::unique_ptr file(pIOSystem->Open(pFile, "wt")); + if (!file.get()) { + throw std::runtime_error("Unable to open output file " + std::string(pFile) + '\n'); + } + + AssxmlFileWriter::WriteDump(pFile, cmd, pScene, file.get(), shortened); +} + +} // end of namespace Assimp diff --git a/code/Assxml/AssxmlFileWriter.h b/code/Assxml/AssxmlFileWriter.h new file mode 100644 index 000000000..c10a8a5aa --- /dev/null +++ b/code/Assxml/AssxmlFileWriter.h @@ -0,0 +1,65 @@ +/* +Open Asset Import Library (assimp) +---------------------------------------------------------------------- + +Copyright (c) 2006-2020, assimp team + + +All rights reserved. + +Redistribution and use of this software in source and binary forms, +with or without modification, are permitted provided that the +following conditions are met: + +* Redistributions of source code must retain the above + copyright notice, this list of conditions and the + following disclaimer. + +* Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the + following disclaimer in the documentation and/or other + materials provided with the distribution. + +* Neither the name of the assimp team, nor the names of its + contributors may be used to endorse or promote products + derived from this software without specific prior + written permission of the assimp team. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +---------------------------------------------------------------------- +*/ + +/** @file AssxmlFileWriter.h + * @brief Declaration of Assxml file writer. + */ + +#ifndef AI_ASSXMLFILEWRITER_H_INC +#define AI_ASSXMLFILEWRITER_H_INC + +#include +#include +#include + +namespace Assimp { + +void ASSIMP_API DumpSceneToAssxml( + const char* pFile, + const char* cmd, + IOSystem* pIOSystem, + const aiScene* pScene, + bool shortened); + +} + +#endif // AI_ASSXMLFILEWRITER_H_INC diff --git a/code/CMakeLists.txt b/code/CMakeLists.txt index 650d5f455..5278509e8 100644 --- a/code/CMakeLists.txt +++ b/code/CMakeLists.txt @@ -338,6 +338,8 @@ ADD_ASSIMP_EXPORTER( ASSBIN ADD_ASSIMP_EXPORTER( ASSXML Assxml/AssxmlExporter.h Assxml/AssxmlExporter.cpp + Assxml/AssxmlFileWriter.h + Assxml/AssxmlFileWriter.cpp ) ADD_ASSIMP_IMPORTER( B3D diff --git a/tools/assimp_cmd/WriteDumb.cpp b/tools/assimp_cmd/WriteDumb.cpp index 1e97b54f2..0403f3966 100644 --- a/tools/assimp_cmd/WriteDumb.cpp +++ b/tools/assimp_cmd/WriteDumb.cpp @@ -62,85 +62,13 @@ const char* AICMD_MSG_DUMP_HELP = #include "Common/assbin_chunks.h" #include #include +#include #include FILE* out = NULL; bool shortened = false; -// ----------------------------------------------------------------------------------- -// Convert a name to standard XML format -void ConvertName(aiString& out, const aiString& in) -{ - out.length = 0; - for (unsigned int i = 0; i < in.length; ++i) { - switch (in.data[i]) { - case '<': - out.Append("<");break; - case '>': - out.Append(">");break; - case '&': - out.Append("&");break; - case '\"': - out.Append(""");break; - case '\'': - out.Append("'");break; - default: - out.data[out.length++] = in.data[i]; - } - } - out.data[out.length] = 0; -} - -// ----------------------------------------------------------------------------------- -// Write a single node as text dump -void WriteNode(const aiNode* node, FILE* out, unsigned int depth) -{ - char prefix[512]; - for (unsigned int i = 0; i < depth;++i) - prefix[i] = '\t'; - prefix[depth] = '\0'; - - const aiMatrix4x4& m = node->mTransformation; - - aiString name; - ConvertName(name,node->mName); - fprintf(out,"%s \n" - "%s\t \n" - "%s\t\t%0 6f %0 6f %0 6f %0 6f\n" - "%s\t\t%0 6f %0 6f %0 6f %0 6f\n" - "%s\t\t%0 6f %0 6f %0 6f %0 6f\n" - "%s\t\t%0 6f %0 6f %0 6f %0 6f\n" - "%s\t \n", - prefix,name.data,prefix, - prefix,m.a1,m.a2,m.a3,m.a4, - prefix,m.b1,m.b2,m.b3,m.b4, - prefix,m.c1,m.c2,m.c3,m.c4, - prefix,m.d1,m.d2,m.d3,m.d4,prefix); - - if (node->mNumMeshes) { - fprintf(out, "%s\t\n%s\t", - prefix,node->mNumMeshes,prefix); - - for (unsigned int i = 0; i < node->mNumMeshes;++i) { - fprintf(out,"%u ",node->mMeshes[i]); - } - fprintf(out,"\n%s\t\n",prefix); - } - - if (node->mNumChildren) { - fprintf(out,"%s\t\n", - prefix,node->mNumChildren); - - for (unsigned int i = 0; i < node->mNumChildren;++i) { - WriteNode(node->mChildren[i],out,depth+2); - } - fprintf(out,"%s\t\n",prefix); - } - fprintf(out,"%s\n",prefix); -} - - // ------------------------------------------------------------------------------- const char* TextureTypeToString(aiTextureType in) { @@ -179,494 +107,6 @@ const char* TextureTypeToString(aiTextureType in) return "BUG"; } - -// ----------------------------------------------------------------------------------- -// Some chuncks of text will need to be encoded for XML -// http://stackoverflow.com/questions/5665231/most-efficient-way-to-escape-xml-html-in-c-string#5665377 -static std::string encodeXML(const std::string& data) { - std::string buffer; - buffer.reserve(data.size()); - for(size_t pos = 0; pos != data.size(); ++pos) { - switch(data[pos]) { - case '&': buffer.append("&"); break; - case '\"': buffer.append("""); break; - case '\'': buffer.append("'"); break; - case '<': buffer.append("<"); break; - case '>': buffer.append(">"); break; - default: buffer.append(&data[pos], 1); break; - } - } - return buffer; -} - - - -// ----------------------------------------------------------------------------------- -// Write a text model dump -void WriteDump(const aiScene* scene, FILE* out, const char* src, const char* cmd, bool shortened) -{ - time_t tt = ::time(NULL); -#if _WIN32 - tm* p = gmtime(&tt); -#else - struct tm now; - tm* p = gmtime_r(&tt, &now); -#endif - ai_assert(nullptr != p); - - std::string c = cmd; - std::string::size_type s; - - // https://sourceforge.net/tracker/?func=detail&aid=3167364&group_id=226462&atid=1067632 - // -- not allowed in XML comments - while((s = c.find("--")) != std::string::npos) { - c[s] = '?'; - } - aiString name; - - // write header - fprintf(out, - "\n" - "\n\n" - - "" - " \n\n" - "\n", - - aiGetVersionMajor(),aiGetVersionMinor(),aiGetVersionRevision(),src,c.c_str(),asctime(p), - scene->mFlags, - 0 /*globalImporter->GetEffectivePostProcessing()*/); - - // write the node graph - WriteNode(scene->mRootNode, out, 0); - -#if 0 - // write cameras - for (unsigned int i = 0; i < scene->mNumCameras;++i) { - aiCamera* cam = scene->mCameras[i]; - ConvertName(name,cam->mName); - - // camera header - fprintf(out,"\t\n" - "\t\t %0 8f %0 8f %0 8f \n" - "\t\t %0 8f %0 8f %0 8f \n" - "\t\t %0 8f %0 8f %0 8f \n" - "\t\t %f \n" - "\t\t %f \n" - "\t\t %f \n" - "\t\t %f \n" - "\t\n", - name.data, - cam->mUp.x,cam->mUp.y,cam->mUp.z, - cam->mLookAt.x,cam->mLookAt.y,cam->mLookAt.z, - cam->mPosition.x,cam->mPosition.y,cam->mPosition.z, - cam->mHorizontalFOV,cam->mAspect,cam->mClipPlaneNear,cam->mClipPlaneFar,i); - } - - // write lights - for (unsigned int i = 0; i < scene->mNumLights;++i) { - aiLight* l = scene->mLights[i]; - ConvertName(name,l->mName); - - // light header - fprintf(out,"\t type=\"%s\"\n" - "\t\t %0 8f %0 8f %0 8f \n" - "\t\t %0 8f %0 8f %0 8f \n" - "\t\t %0 8f %0 8f %0 8f \n", - name.data, - (l->mType == aiLightSource_DIRECTIONAL ? "directional" : - (l->mType == aiLightSource_POINT ? "point" : "spot" )), - l->mColorDiffuse.r, l->mColorDiffuse.g, l->mColorDiffuse.b, - l->mColorSpecular.r,l->mColorSpecular.g,l->mColorSpecular.b, - l->mColorAmbient.r, l->mColorAmbient.g, l->mColorAmbient.b); - - if (l->mType != aiLightSource_DIRECTIONAL) { - fprintf(out, - "\t\t %0 8f %0 8f %0 8f \n" - "\t\t %f \n" - "\t\t %f \n" - "\t\t %f \n", - l->mPosition.x,l->mPosition.y,l->mPosition.z, - l->mAttenuationConstant,l->mAttenuationLinear,l->mAttenuationQuadratic); - } - - if (l->mType != aiLightSource_POINT) { - fprintf(out, - "\t\t %0 8f %0 8f %0 8f \n", - l->mDirection.x,l->mDirection.y,l->mDirection.z); - } - - if (l->mType == aiLightSource_SPOT) { - fprintf(out, - "\t\t %f \n" - "\t\t %f \n", - l->mAngleOuterCone,l->mAngleInnerCone); - } - fprintf(out,"\t\n"); - } -#endif - - // write textures - if (scene->mNumTextures) { - fprintf(out,"\n",scene->mNumTextures); - for (unsigned int i = 0; i < scene->mNumTextures;++i) { - aiTexture* tex = scene->mTextures[i]; - bool compressed = (tex->mHeight == 0); - - // mesh header - fprintf(out,"\t \n", - (compressed ? -1 : tex->mWidth),(compressed ? -1 : tex->mHeight), - (compressed ? "true" : "false")); - - if (compressed) { - fprintf(out,"\t\t \n",tex->mWidth); - - if (!shortened) { - for (unsigned int n = 0; n < tex->mWidth;++n) { - fprintf(out,"\t\t\t%2x",reinterpret_cast(tex->pcData)[n]); - if (n && !(n % 50)) { - fprintf(out,"\n"); - } - } - } - } - else if (!shortened){ - fprintf(out,"\t\t \n",tex->mWidth*tex->mHeight*4); - - // const unsigned int width = (unsigned int)log10((double)std::max(tex->mHeight,tex->mWidth))+1; - for (unsigned int y = 0; y < tex->mHeight;++y) { - for (unsigned int x = 0; x < tex->mWidth;++x) { - aiTexel* tx = tex->pcData + y*tex->mWidth+x; - unsigned int r = tx->r,g=tx->g,b=tx->b,a=tx->a; - fprintf(out,"\t\t\t%2x %2x %2x %2x",r,g,b,a); - - // group by four for readibility - if (0 == (x+y*tex->mWidth) % 4) - fprintf(out,"\n"); - } - } - } - fprintf(out,"\t\t\n\t\n"); - } - fprintf(out,"\n"); - } - - // write materials - if (scene->mNumMaterials) { - fprintf(out,"\n",scene->mNumMaterials); - for (unsigned int i = 0; i< scene->mNumMaterials; ++i) { - const aiMaterial* mat = scene->mMaterials[i]; - - fprintf(out,"\t\n"); - fprintf(out,"\t\t\n",mat->mNumProperties); - for (unsigned int n = 0; n < mat->mNumProperties;++n) { - - const aiMaterialProperty* prop = mat->mProperties[n]; - const char* sz = ""; - if (prop->mType == aiPTI_Float) { - sz = "float"; - } - else if (prop->mType == aiPTI_Integer) { - sz = "integer"; - } - else if (prop->mType == aiPTI_String) { - sz = "string"; - } - else if (prop->mType == aiPTI_Buffer) { - sz = "binary_buffer"; - } - - fprintf(out,"\t\t\tmKey.data, sz, - ::TextureTypeToString((aiTextureType)prop->mSemantic),prop->mIndex); - - if (prop->mType == aiPTI_Float) { - fprintf(out," size=\"%i\">\n\t\t\t\t", - static_cast(prop->mDataLength/sizeof(float))); - - for (unsigned int p = 0; p < prop->mDataLength/sizeof(float);++p) { - fprintf(out,"%f ",*((float*)(prop->mData+p*sizeof(float)))); - } - } - else if (prop->mType == aiPTI_Integer) { - fprintf(out," size=\"%i\">\n\t\t\t\t", - static_cast(prop->mDataLength/sizeof(int))); - - for (unsigned int p = 0; p < prop->mDataLength/sizeof(int);++p) { - fprintf(out,"%i ",*((int*)(prop->mData+p*sizeof(int)))); - } - } - else if (prop->mType == aiPTI_Buffer) { - fprintf(out," size=\"%i\">\n\t\t\t\t", - static_cast(prop->mDataLength)); - - for (unsigned int p = 0; p < prop->mDataLength;++p) { - fprintf(out,"%2x ",prop->mData[p]); - if (p && 0 == p%30) { - fprintf(out,"\n\t\t\t\t"); - } - } - } - else if (prop->mType == aiPTI_String) { - fprintf(out,">\n\t\t\t\t\"%s\"",encodeXML(prop->mData+4).c_str() /* skip length */); - } - fprintf(out,"\n\t\t\t\n"); - } - fprintf(out,"\t\t\n"); - fprintf(out,"\t\n"); - } - fprintf(out,"\n"); - } - - // write animations - if (scene->mNumAnimations) { - fprintf(out,"\n",scene->mNumAnimations); - for (unsigned int i = 0; i < scene->mNumAnimations;++i) { - aiAnimation* anim = scene->mAnimations[i]; - - // anim header - ConvertName(name,anim->mName); - fprintf(out,"\t\n", - name.data, anim->mDuration, anim->mTicksPerSecond); - - // write bone animation channels - if (anim->mNumChannels) { - fprintf(out,"\t\t\n",anim->mNumChannels); - for (unsigned int n = 0; n < anim->mNumChannels;++n) { - aiNodeAnim* nd = anim->mChannels[n]; - - // node anim header - ConvertName(name,nd->mNodeName); - fprintf(out,"\t\t\t\n",name.data); - - if (!shortened) { - // write position keys - if (nd->mNumPositionKeys) { - fprintf(out,"\t\t\t\t\n",nd->mNumPositionKeys); - for (unsigned int a = 0; a < nd->mNumPositionKeys;++a) { - aiVectorKey* vc = nd->mPositionKeys+a; - fprintf(out,"\t\t\t\t\t\n" - "\t\t\t\t\t\t%0 8f %0 8f %0 8f\n\t\t\t\t\t\n", - vc->mTime,vc->mValue.x,vc->mValue.y,vc->mValue.z); - } - fprintf(out,"\t\t\t\t\n"); - } - - // write scaling keys - if (nd->mNumScalingKeys) { - fprintf(out,"\t\t\t\t\n",nd->mNumScalingKeys); - for (unsigned int a = 0; a < nd->mNumScalingKeys;++a) { - aiVectorKey* vc = nd->mScalingKeys+a; - fprintf(out,"\t\t\t\t\t\n" - "\t\t\t\t\t\t%0 8f %0 8f %0 8f\n\t\t\t\t\t\n", - vc->mTime,vc->mValue.x,vc->mValue.y,vc->mValue.z); - } - fprintf(out,"\t\t\t\t\n"); - } - - // write rotation keys - if (nd->mNumRotationKeys) { - fprintf(out,"\t\t\t\t\n",nd->mNumRotationKeys); - for (unsigned int a = 0; a < nd->mNumRotationKeys;++a) { - aiQuatKey* vc = nd->mRotationKeys+a; - fprintf(out,"\t\t\t\t\t\n" - "\t\t\t\t\t\t%0 8f %0 8f %0 8f %0 8f\n\t\t\t\t\t\n", - vc->mTime,vc->mValue.x,vc->mValue.y,vc->mValue.z,vc->mValue.w); - } - fprintf(out,"\t\t\t\t\n"); - } - } - fprintf(out,"\t\t\t\n"); - } - fprintf(out,"\t\t\n"); - } - fprintf(out,"\t\n"); - } - fprintf(out,"\n"); - } - - // write meshes - if (scene->mNumMeshes) { - fprintf(out,"\n",scene->mNumMeshes); - for (unsigned int i = 0; i < scene->mNumMeshes;++i) { - aiMesh* mesh = scene->mMeshes[i]; - // const unsigned int width = (unsigned int)log10((double)mesh->mNumVertices)+1; - - // mesh header - fprintf(out,"\t\n", - (mesh->mPrimitiveTypes & aiPrimitiveType_POINT ? "points" : ""), - (mesh->mPrimitiveTypes & aiPrimitiveType_LINE ? "lines" : ""), - (mesh->mPrimitiveTypes & aiPrimitiveType_TRIANGLE ? "triangles" : ""), - (mesh->mPrimitiveTypes & aiPrimitiveType_POLYGON ? "polygons" : ""), - mesh->mMaterialIndex); - - // bones - if (mesh->mNumBones) { - fprintf(out,"\t\t\n",mesh->mNumBones); - - for (unsigned int n = 0; n < mesh->mNumBones;++n) { - aiBone* bone = mesh->mBones[n]; - - ConvertName(name,bone->mName); - // bone header - fprintf(out,"\t\t\t\n" - "\t\t\t\t \n" - "\t\t\t\t\t%0 6f %0 6f %0 6f %0 6f\n" - "\t\t\t\t\t%0 6f %0 6f %0 6f %0 6f\n" - "\t\t\t\t\t%0 6f %0 6f %0 6f %0 6f\n" - "\t\t\t\t\t%0 6f %0 6f %0 6f %0 6f\n" - "\t\t\t\t \n", - name.data, - bone->mOffsetMatrix.a1,bone->mOffsetMatrix.a2,bone->mOffsetMatrix.a3,bone->mOffsetMatrix.a4, - bone->mOffsetMatrix.b1,bone->mOffsetMatrix.b2,bone->mOffsetMatrix.b3,bone->mOffsetMatrix.b4, - bone->mOffsetMatrix.c1,bone->mOffsetMatrix.c2,bone->mOffsetMatrix.c3,bone->mOffsetMatrix.c4, - bone->mOffsetMatrix.d1,bone->mOffsetMatrix.d2,bone->mOffsetMatrix.d3,bone->mOffsetMatrix.d4); - - if (!shortened && bone->mNumWeights) { - fprintf(out,"\t\t\t\t\n",bone->mNumWeights); - - // bone weights - for (unsigned int a = 0; a < bone->mNumWeights;++a) { - aiVertexWeight* wght = bone->mWeights+a; - - fprintf(out,"\t\t\t\t\t\n\t\t\t\t\t\t%f\n\t\t\t\t\t\n", - wght->mVertexId,wght->mWeight); - } - fprintf(out,"\t\t\t\t\n"); - } - fprintf(out,"\t\t\t\n"); - } - fprintf(out,"\t\t\n"); - } - - // faces - if (!shortened && mesh->mNumFaces) { - fprintf(out,"\t\t\n",mesh->mNumFaces); - for (unsigned int n = 0; n < mesh->mNumFaces; ++n) { - aiFace& f = mesh->mFaces[n]; - fprintf(out,"\t\t\t\n" - "\t\t\t\t",f.mNumIndices); - - for (unsigned int j = 0; j < f.mNumIndices;++j) - fprintf(out,"%u ",f.mIndices[j]); - - fprintf(out,"\n\t\t\t\n"); - } - fprintf(out,"\t\t\n"); - } - - // vertex positions - if (mesh->HasPositions()) { - fprintf(out,"\t\t \n",mesh->mNumVertices); - if (!shortened) { - for (unsigned int n = 0; n < mesh->mNumVertices; ++n) { - fprintf(out,"\t\t%0 8f %0 8f %0 8f\n", - mesh->mVertices[n].x, - mesh->mVertices[n].y, - mesh->mVertices[n].z); - } - } - fprintf(out,"\t\t\n"); - } - - // vertex normals - if (mesh->HasNormals()) { - fprintf(out,"\t\t \n",mesh->mNumVertices); - if (!shortened) { - for (unsigned int n = 0; n < mesh->mNumVertices; ++n) { - fprintf(out,"\t\t%0 8f %0 8f %0 8f\n", - mesh->mNormals[n].x, - mesh->mNormals[n].y, - mesh->mNormals[n].z); - } - } - else { - } - fprintf(out,"\t\t\n"); - } - - // vertex tangents and bitangents - if (mesh->HasTangentsAndBitangents()) { - fprintf(out,"\t\t \n",mesh->mNumVertices); - if (!shortened) { - for (unsigned int n = 0; n < mesh->mNumVertices; ++n) { - fprintf(out,"\t\t%0 8f %0 8f %0 8f\n", - mesh->mTangents[n].x, - mesh->mTangents[n].y, - mesh->mTangents[n].z); - } - } - fprintf(out,"\t\t\n"); - - fprintf(out,"\t\t \n",mesh->mNumVertices); - if (!shortened) { - for (unsigned int n = 0; n < mesh->mNumVertices; ++n) { - fprintf(out,"\t\t%0 8f %0 8f %0 8f\n", - mesh->mBitangents[n].x, - mesh->mBitangents[n].y, - mesh->mBitangents[n].z); - } - } - fprintf(out,"\t\t\n"); - } - - // texture coordinates - for (unsigned int a = 0; a < AI_MAX_NUMBER_OF_TEXTURECOORDS; ++a) { - if (!mesh->mTextureCoords[a]) - break; - - fprintf(out,"\t\t \n",mesh->mNumVertices, - a,mesh->mNumUVComponents[a]); - - if (!shortened) { - if (mesh->mNumUVComponents[a] == 3) { - for (unsigned int n = 0; n < mesh->mNumVertices; ++n) { - fprintf(out,"\t\t%0 8f %0 8f %0 8f\n", - mesh->mTextureCoords[a][n].x, - mesh->mTextureCoords[a][n].y, - mesh->mTextureCoords[a][n].z); - } - } - else { - for (unsigned int n = 0; n < mesh->mNumVertices; ++n) { - fprintf(out,"\t\t%0 8f %0 8f\n", - mesh->mTextureCoords[a][n].x, - mesh->mTextureCoords[a][n].y); - } - } - } - fprintf(out,"\t\t\n"); - } - - // vertex colors - for (unsigned int a = 0; a < AI_MAX_NUMBER_OF_COLOR_SETS; ++a) { - if (!mesh->mColors[a]) - break; - fprintf(out,"\t\t \n",mesh->mNumVertices,a); - if (!shortened) { - for (unsigned int n = 0; n < mesh->mNumVertices; ++n) { - fprintf(out,"\t\t%0 8f %0 8f %0 8f %0 8f\n", - mesh->mColors[a][n].r, - mesh->mColors[a][n].g, - mesh->mColors[a][n].b, - mesh->mColors[a][n].a); - } - } - fprintf(out,"\t\t\n"); - } - fprintf(out,"\t\n"); - } - fprintf(out,"\n"); - } - fprintf(out,"\n"); -} - - // ----------------------------------------------------------------------------------- int Assimp_Dump (const char* const* params, unsigned int num) { @@ -743,29 +183,25 @@ int Assimp_Dump (const char* const* params, unsigned int num) return AssimpCmdError::FailedToLoadInputFile; } - if (binary) { - try { - std::unique_ptr pIOSystem(new DefaultIOSystem()); + try { + // Dump the main model, using the appropriate method. + std::unique_ptr pIOSystem(new DefaultIOSystem()); + if (binary) { DumpSceneToAssbin(out.c_str(), cmd.c_str(), pIOSystem.get(), scene, shortened, compressed); } - catch (const std::exception& e) { - printf("%s", ("assimp dump: " + std::string(e.what())).c_str()); - return AssimpCmdError::ExceptionWasRaised; - } - catch (...) { - printf("assimp dump: An unknown exception occured.\n"); - return AssimpCmdError::ExceptionWasRaised; + else { + DumpSceneToAssxml(out.c_str(), cmd.c_str(), pIOSystem.get(), + scene, shortened); } } - else { - FILE* o = ::fopen(out.c_str(), "wt"); - if (!o) { - printf("assimp dump: Unable to open output file %s\n",out.c_str()); - return AssimpCmdError::FailedToOpenOutputFile; - } - WriteDump (scene,o,in.c_str(),cmd.c_str(),shortened); - fclose(o); + catch (const std::exception& e) { + printf("%s", ("assimp dump: " + std::string(e.what())).c_str()); + return AssimpCmdError::ExceptionWasRaised; + } + catch (...) { + printf("assimp dump: An unknown exception occured.\n"); + return AssimpCmdError::ExceptionWasRaised; } printf("assimp dump: Wrote output dump %s\n",out.c_str()); From 398a8f757e401bfac5569940e56f82659c7f9e74 Mon Sep 17 00:00:00 2001 From: bzt Date: Wed, 29 Jan 2020 22:08:34 +0100 Subject: [PATCH 58/85] Additional checks on invalid input --- code/M3D/M3DImporter.cpp | 46 +++++++++++++++++++++++++++------------- 1 file changed, 31 insertions(+), 15 deletions(-) diff --git a/code/M3D/M3DImporter.cpp b/code/M3D/M3DImporter.cpp index a77e75a27..b0759542b 100644 --- a/code/M3D/M3DImporter.cpp +++ b/code/M3D/M3DImporter.cpp @@ -225,7 +225,7 @@ void M3DImporter::InternReadFile(const std::string &file, aiScene *pScene, IOSys // ------------------------------------------------------------------------------------------------ // convert materials. properties are converted using a static table in M3DMaterials.h -void M3DImporter::importMaterials(const M3DWrapper &m3d_wrap) { +void M3DImporter::importMaterials(const M3DWrapper &m3d) { unsigned int i, j, k, l, n; m3dm_t *m; aiString name = aiString(AI_DEFAULT_MATERIAL_NAME); @@ -233,9 +233,9 @@ void M3DImporter::importMaterials(const M3DWrapper &m3d_wrap) { ai_real f; ai_assert(mScene != nullptr); - ai_assert(m3d_wrap); + ai_assert(m3d); - mScene->mNumMaterials = m3d_wrap->nummaterial + 1; + mScene->mNumMaterials = m3d->nummaterial + 1; mScene->mMaterials = new aiMaterial *[mScene->mNumMaterials]; ASSIMP_LOG_DEBUG_F("M3D: importMaterials ", mScene->mNumMaterials); @@ -248,8 +248,11 @@ void M3DImporter::importMaterials(const M3DWrapper &m3d_wrap) { mat->AddProperty(&c, 1, AI_MATKEY_COLOR_DIFFUSE); mScene->mMaterials[0] = mat; - for (i = 0; i < m3d_wrap->nummaterial; i++) { - m = &m3d_wrap->material[i]; + if (!m3d->nummaterial || !m3d->material) + return; + + for (i = 0; i < m3d->nummaterial; i++) { + m = &m3d->material[i]; aiMaterial *mat = new aiMaterial; name.Set(std::string(m->name)); mat->AddProperty(&name, AI_MATKEY_NAME); @@ -294,9 +297,9 @@ void M3DImporter::importMaterials(const M3DWrapper &m3d_wrap) { // texture map properties if (m->prop[j].type >= 128 && aiTxProps[k].pKey && // extra check, should never happen, do we have the refered texture? - m->prop[j].value.textureid < m3d_wrap->numtexture && - m3d_wrap->texture[m->prop[j].value.textureid].name) { - name.Set(std::string(std::string(m3d_wrap->texture[m->prop[j].value.textureid].name) + ".png")); + m->prop[j].value.textureid < m3d->numtexture && + m3d->texture[m->prop[j].value.textureid].name) { + name.Set(std::string(std::string(m3d->texture[m->prop[j].value.textureid].name) + ".png")); mat->AddProperty(&name, aiTxProps[k].pKey, aiTxProps[k].type, aiTxProps[k].index); n = 0; mat->AddProperty(&n, 1, _AI_MATKEY_UVWSRC_BASE, aiProps[k].type, aiProps[k].index); @@ -319,7 +322,7 @@ void M3DImporter::importTextures(const M3DWrapper &m3d) { mScene->mNumTextures = m3d->numtexture; ASSIMP_LOG_DEBUG_F("M3D: importTextures ", mScene->mNumTextures); - if (!m3d->numtexture) + if (!m3d->numtexture || !m3d->texture) return; mScene->mTextures = new aiTexture *[m3d->numtexture]; @@ -387,6 +390,9 @@ void M3DImporter::importMeshes(const M3DWrapper &m3d) { ASSIMP_LOG_DEBUG_F("M3D: importMeshes ", m3d->numface); + if (!m3d->numface || !m3d->face || !m3d->numvertex || !m3d->vertex) + return; + for (i = 0; i < m3d->numface; i++) { // we must switch mesh if material changes if (lastMat != m3d->face[i].materialid) { @@ -420,6 +426,7 @@ void M3DImporter::importMeshes(const M3DWrapper &m3d) { k = static_cast(vertices->size()); pFace->mIndices[j] = k; l = m3d->face[i].vertex[j]; + if(l >= m3d->numvertex) continue; pos.x = m3d->vertex[l].x; pos.y = m3d->vertex[l].y; pos.z = m3d->vertex[l].z; @@ -432,14 +439,14 @@ void M3DImporter::importMeshes(const M3DWrapper &m3d) { vertexids->push_back(l); } l = m3d->face[i].texcoord[j]; - if (l != M3D_UNDEF) { + if (l != M3D_UNDEF && l < m3d->numtmap) { uv.x = m3d->tmap[l].u; uv.y = m3d->tmap[l].v; uv.z = 0.0; texcoords->push_back(uv); } l = m3d->face[i].normal[j]; - if (l != M3D_UNDEF) { + if (l != M3D_UNDEF && l < m3d->numvertex) { norm.x = m3d->vertex[l].x; norm.y = m3d->vertex[l].y; norm.z = m3d->vertex[l].z; @@ -487,6 +494,9 @@ void M3DImporter::importBones(const M3DWrapper &m3d, unsigned int parentid, aiNo ASSIMP_LOG_DEBUG_F("M3D: importBones ", m3d->numbone, " parentid ", (int)parentid); + if (!m3d->numbone || !m3d->bone) + return; + for (n = 0, i = parentid + 1; i < m3d->numbone; i++) if (m3d->bone[i].parent == parentid) n++; pParent->mChildren = new aiNode *[n]; @@ -521,7 +531,7 @@ void M3DImporter::importAnimations(const M3DWrapper &m3d) { ASSIMP_LOG_DEBUG_F("M3D: importAnimations ", mScene->mNumAnimations); - if (!m3d->numaction || !m3d->numbone) + if (!m3d->numaction || !m3d->action || !m3d->numbone || !m3d->bone || !m3d->vertex) return; mScene->mAnimations = new aiAnimation *[m3d->numaction]; @@ -552,6 +562,7 @@ void M3DImporter::importAnimations(const M3DWrapper &m3d) { ori = a->frame[j].transform[k].ori; } } + if(pos >= m3d->numvertex || ori >= m3d->numvertex) continue; m3dv_t *v = &m3d->vertex[pos]; m3dv_t *q = &m3d->vertex[ori]; pAnim->mChannels[l]->mPositionKeys[j].mTime = t; @@ -587,6 +598,8 @@ void M3DImporter::convertPose(const M3DWrapper &m3d, aiMatrix4x4 *m, unsigned in ai_assert(m3d); ai_assert(posid != M3D_UNDEF && posid < m3d->numvertex); ai_assert(orientid != M3D_UNDEF && orientid < m3d->numvertex); + if (!m3d->numvertex || !m3d->vertex) + return; m3dv_t *p = &m3d->vertex[posid]; m3dv_t *q = &m3d->vertex[orientid]; @@ -701,7 +714,7 @@ void M3DImporter::populateMesh(const M3DWrapper &m3d, aiMesh *pMesh, std::vector // vertex but assimp uses lists of local vertex id/weight pairs per local bone list pMesh->mNumBones = m3d->numbone; /* we need aiBone with mOffsetMatrix for bones without weights as well */ - if (pMesh->mNumBones) { + if (pMesh->mNumBones && m3d->numbone && m3d->bone) { pMesh->mBones = new aiBone *[pMesh->mNumBones]; for (unsigned int i = 0; i < m3d->numbone; i++) { aiNode *pNode; @@ -715,10 +728,11 @@ void M3DImporter::populateMesh(const M3DWrapper &m3d, aiMesh *pMesh, std::vector } else pMesh->mBones[i]->mOffsetMatrix = aiMatrix4x4(); } - if (vertexids->size()) { + if (vertexids->size() && m3d->numvertex && m3d->vertex && m3d->numskin && m3d->skin) { unsigned int i, j; // first count how many vertices we have per bone for (i = 0; i < vertexids->size(); i++) { + if(vertexids->at(i) >= m3d->numvertex) continue; unsigned int s = m3d->vertex[vertexids->at(i)].skinid; if (s != M3D_UNDEF && s != M3D_INDEXMAX) { for (unsigned int k = 0; k < M3D_NUMBONE && m3d->skin[s].weight[k] > 0.0; k++) { @@ -742,9 +756,11 @@ void M3DImporter::populateMesh(const M3DWrapper &m3d, aiMesh *pMesh, std::vector } // fill up with data for (i = 0; i < vertexids->size(); i++) { + if(vertexids->at(i) >= m3d->numvertex) continue; unsigned int s = m3d->vertex[vertexids->at(i)].skinid; - if (s != M3D_UNDEF && s != M3D_INDEXMAX) { + if (s != M3D_UNDEF && s != M3D_INDEXMAX && s < m3d->numskin) { for (unsigned int k = 0; k < M3D_NUMBONE && m3d->skin[s].weight[k] > 0.0; k++) { + if(m3d->skin[s].boneid[k] >= m3d->numbone) continue; aiString name = aiString(std::string(m3d->bone[m3d->skin[s].boneid[k]].name)); for (j = 0; j < pMesh->mNumBones; j++) { if (pMesh->mBones[j]->mName == name) { From 605336832ff0aa6fc8a2b9cde1e1a944dc9e9dc3 Mon Sep 17 00:00:00 2001 From: Kim Kulling Date: Thu, 30 Jan 2020 09:47:39 +0100 Subject: [PATCH 59/85] Update M3DImporter.cpp Add missing brackets --- code/M3D/M3DImporter.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/code/M3D/M3DImporter.cpp b/code/M3D/M3DImporter.cpp index 4373672a4..1a5d1866d 100644 --- a/code/M3D/M3DImporter.cpp +++ b/code/M3D/M3DImporter.cpp @@ -248,8 +248,9 @@ void M3DImporter::importMaterials(const M3DWrapper &m3d) { mat->AddProperty(&c, 1, AI_MATKEY_COLOR_DIFFUSE); mScene->mMaterials[0] = mat; - if (!m3d->nummaterial || !m3d->material) + if (!m3d->nummaterial || !m3d->material) { return; + } for (i = 0; i < m3d->nummaterial; i++) { m = &m3d->material[i]; From a2ef0b5bd5e2695d65f29f46cad84eecec1800e1 Mon Sep 17 00:00:00 2001 From: Kim Kulling Date: Thu, 30 Jan 2020 10:00:43 +0100 Subject: [PATCH 60/85] Update M3DImporter.cpp Fix some review finding: - Add missing brackets to make code more readable - fix scope of variables --- code/M3D/M3DImporter.cpp | 135 ++++++++++++++++++++++----------------- 1 file changed, 75 insertions(+), 60 deletions(-) diff --git a/code/M3D/M3DImporter.cpp b/code/M3D/M3DImporter.cpp index 1a5d1866d..20b9b9e44 100644 --- a/code/M3D/M3DImporter.cpp +++ b/code/M3D/M3DImporter.cpp @@ -109,7 +109,9 @@ using namespace std; // ------------------------------------------------------------------------------------------------ // Default constructor M3DImporter::M3DImporter() : - mScene(nullptr) {} + mScene(nullptr) { + // empty +} // ------------------------------------------------------------------------------------------------ // Returns true, if file is a binary or ASCII Model 3D file. @@ -126,14 +128,8 @@ bool M3DImporter::CanRead(const std::string &pFile, IOSystem *pIOHandler, bool c if (!pIOHandler) { return true; } - /* - * don't use CheckMagicToken because that checks with swapped bytes too, leading to false - * positives. This magic is not uint32_t, but char[4], so memcmp is the best way - const char* tokens[] = {"3DMO", "3dmo"}; - return CheckMagicToken(pIOHandler,pFile,tokens,2,0,4); - */ - std::unique_ptr pStream(pIOHandler->Open(pFile, "rb")); + std::unique_ptr pStream(pIOHandler->Open(pFile, "rb")); unsigned char data[4]; if (4 != pStream->Read(data, 1, 4)) { return false; @@ -144,7 +140,8 @@ bool M3DImporter::CanRead(const std::string &pFile, IOSystem *pIOHandler, bool c #endif ; } - return false; + + return false; } // ------------------------------------------------------------------------------------------------ @@ -257,43 +254,46 @@ void M3DImporter::importMaterials(const M3DWrapper &m3d) { aiMaterial *mat = new aiMaterial; name.Set(std::string(m->name)); mat->AddProperty(&name, AI_MATKEY_NAME); - for (j = 0; j < m->numprop; j++) { + for (j = 0; j < m->numprop; ++j) { // look up property type // 0 - 127 scalar values, // 128 - 255 the same properties but for texture maps k = 256; - for (l = 0; l < sizeof(m3d_propertytypes) / sizeof(m3d_propertytypes[0]); l++) + for (l = 0; l < sizeof(m3d_propertytypes) / sizeof(m3d_propertytypes[0]); ++l) { if (m->prop[j].type == m3d_propertytypes[l].id || m->prop[j].type == m3d_propertytypes[l].id + 128) { k = l; break; } - // should never happen, but be safe than sorry - if (k == 256) continue; + // should never happen, but be safe than sorry + if (k == 256) { + continue; + } - // scalar properties - if (m->prop[j].type < 128 && aiProps[k].pKey) { - switch (m3d_propertytypes[k].format) { - case m3dpf_color: - c = mkColor(m->prop[j].value.color); - mat->AddProperty(&c, 1, aiProps[k].pKey, aiProps[k].type, aiProps[k].index); - break; - case m3dpf_float: - f = m->prop[j].value.fnum; - mat->AddProperty(&f, 1, aiProps[k].pKey, aiProps[k].type, aiProps[k].index); - break; - default: - n = m->prop[j].value.num; - if (m->prop[j].type == m3dp_il) { - switch (n) { - case 0: n = aiShadingMode_NoShading; break; - case 2: n = aiShadingMode_Phong; break; - default: n = aiShadingMode_Gouraud; break; - } - } - mat->AddProperty(&n, 1, aiProps[k].pKey, aiProps[k].type, aiProps[k].index); - break; - } + // scalar properties + if (m->prop[j].type < 128 && aiProps[k].pKey) { + switch (m3d_propertytypes[k].format) { + case m3dpf_color: + c = mkColor(m->prop[j].value.color); + mat->AddProperty(&c, 1, aiProps[k].pKey, aiProps[k].type, aiProps[k].index); + break; + case m3dpf_float: + f = m->prop[j].value.fnum; + mat->AddProperty(&f, 1, aiProps[k].pKey, aiProps[k].type, aiProps[k].index); + break; + default: + n = m->prop[j].value.num; + if (m->prop[j].type == m3dp_il) { + switch (n) { + case 0: n = aiShadingMode_NoShading; break; + case 2: n = aiShadingMode_Phong; break; + default: n = aiShadingMode_Gouraud; break; + } + } + mat->AddProperty(&n, 1, aiProps[k].pKey, aiProps[k].type, aiProps[k].index); + break; + } + } } // texture map properties if (m->prop[j].type >= 128 && aiTxProps[k].pKey && @@ -314,7 +314,11 @@ void M3DImporter::importMaterials(const M3DWrapper &m3d) { // import textures, this is the simplest of all void M3DImporter::importTextures(const M3DWrapper &m3d) { unsigned int i; - const char *formatHint[] = { "rgba0800", "rgba0808", "rgba8880", "rgba8888" }; + static const char *formatHint[] = { + "rgba0800", + "rgba0808", + "rgba8880", + "rgba8888" }; m3dtx_t *t; ai_assert(mScene != nullptr); @@ -323,8 +327,9 @@ void M3DImporter::importTextures(const M3DWrapper &m3d) { mScene->mNumTextures = m3d->numtexture; ASSIMP_LOG_DEBUG_F("M3D: importTextures ", mScene->mNumTextures); - if (!m3d->numtexture || !m3d->texture) + if (!m3d->numtexture || !m3d->texture) { return; + } mScene->mTextures = new aiTexture *[m3d->numtexture]; for (i = 0; i < m3d->numtexture; i++) { @@ -391,8 +396,9 @@ void M3DImporter::importMeshes(const M3DWrapper &m3d) { ASSIMP_LOG_DEBUG_F("M3D: importMeshes ", m3d->numface); - if (!m3d->numface || !m3d->face || !m3d->numvertex || !m3d->vertex) + if (!m3d->numface || !m3d->face || !m3d->numvertex || !m3d->vertex) { return; + } for (i = 0; i < m3d->numface; i++) { // we must switch mesh if material changes @@ -476,12 +482,12 @@ void M3DImporter::importMeshes(const M3DWrapper &m3d) { } delete meshes; - if (faces) delete faces; - if (vertices) delete vertices; - if (normals) delete normals; - if (texcoords) delete texcoords; - if (colors) delete colors; - if (vertexids) delete vertexids; + delete faces; + delete vertices; + delete normals; + delete texcoords; + delete colors; + delete vertexids; } // ------------------------------------------------------------------------------------------------ @@ -495,11 +501,15 @@ void M3DImporter::importBones(const M3DWrapper &m3d, unsigned int parentid, aiNo ASSIMP_LOG_DEBUG_F("M3D: importBones ", m3d->numbone, " parentid ", (int)parentid); - if (!m3d->numbone || !m3d->bone) + if (!m3d->numbone || !m3d->bone) { return; + } - for (n = 0, i = parentid + 1; i < m3d->numbone; i++) - if (m3d->bone[i].parent == parentid) n++; + for (n = 0, i = parentid + 1; i < m3d->numbone; i++) { + if (m3d->bone[i].parent == parentid) { + n++; + } + } pParent->mChildren = new aiNode *[n]; for (i = parentid + 1; i < m3d->numbone; i++) { @@ -532,8 +542,9 @@ void M3DImporter::importAnimations(const M3DWrapper &m3d) { ASSIMP_LOG_DEBUG_F("M3D: importAnimations ", mScene->mNumAnimations); - if (!m3d->numaction || !m3d->action || !m3d->numbone || !m3d->bone || !m3d->vertex) + if (!m3d->numaction || !m3d->action || !m3d->numbone || !m3d->bone || !m3d->vertex) { return; + } mScene->mAnimations = new aiAnimation *[m3d->numaction]; for (i = 0; i < m3d->numaction; i++) { @@ -643,16 +654,17 @@ void M3DImporter::convertPose(const M3DWrapper &m3d, aiMatrix4x4 *m, unsigned in // ------------------------------------------------------------------------------------------------ // find a node by name aiNode *M3DImporter::findNode(aiNode *pNode, aiString name) { - unsigned int i; - ai_assert(pNode != nullptr); ai_assert(mScene != nullptr); - if (pNode->mName == name) + if (pNode->mName == name) { return pNode; - for (i = 0; i < pNode->mNumChildren; i++) { + } + for ( unsigned int i = 0; i < pNode->mNumChildren; i++) { aiNode *pChild = findNode(pNode->mChildren[i], name); - if (pChild) return pChild; + if (pChild) { + return pChild; + } } return nullptr; } @@ -714,7 +726,8 @@ void M3DImporter::populateMesh(const M3DWrapper &m3d, aiMesh *pMesh, std::vector // this is complicated, because M3D stores a list of bone id / weight pairs per // vertex but assimp uses lists of local vertex id/weight pairs per local bone list pMesh->mNumBones = m3d->numbone; - /* we need aiBone with mOffsetMatrix for bones without weights as well */ + + // we need aiBone with mOffsetMatrix for bones without weights as well if (pMesh->mNumBones && m3d->numbone && m3d->bone) { pMesh->mBones = new aiBone *[pMesh->mNumBones]; for (unsigned int i = 0; i < m3d->numbone; i++) { @@ -730,15 +743,16 @@ void M3DImporter::populateMesh(const M3DWrapper &m3d, aiMesh *pMesh, std::vector pMesh->mBones[i]->mOffsetMatrix = aiMatrix4x4(); } if (vertexids->size() && m3d->numvertex && m3d->vertex && m3d->numskin && m3d->skin) { - unsigned int i, j; // first count how many vertices we have per bone - for (i = 0; i < vertexids->size(); i++) { - if(vertexids->at(i) >= m3d->numvertex) continue; + for (unsigned int i = 0; i < vertexids->size(); i++) { + if (vertexids->at(i) >= m3d->numvertex) { + continue; + } unsigned int s = m3d->vertex[vertexids->at(i)].skinid; if (s != M3D_UNDEF && s != M3D_INDEXMAX) { for (unsigned int k = 0; k < M3D_NUMBONE && m3d->skin[s].weight[k] > 0.0; k++) { aiString name = aiString(std::string(m3d->bone[m3d->skin[s].boneid[k]].name)); - for (j = 0; j < pMesh->mNumBones; j++) { + for (unsigned int j = 0; j < pMesh->mNumBones; j++) { if (pMesh->mBones[j]->mName == name) { pMesh->mBones[j]->mNumWeights++; break; @@ -747,7 +761,8 @@ void M3DImporter::populateMesh(const M3DWrapper &m3d, aiMesh *pMesh, std::vector } } } - // allocate mWeights + + // allocate mWeights for (j = 0; j < pMesh->mNumBones; j++) { aiBone *pBone = pMesh->mBones[j]; if (pBone->mNumWeights) { From 2c1c1d846e4584990e2397f195fb3225ec6a8668 Mon Sep 17 00:00:00 2001 From: Marc-Antoine Lortie Date: Thu, 30 Jan 2020 16:40:34 -0500 Subject: [PATCH 61/85] Renamed WriteDumb.cpp to WriteDump.cpp This includes as well changes to places referencing WriteDumb.cpp. --- code/Common/assbin_chunks.h | 2 +- tools/assimp_cmd/CMakeLists.txt | 2 +- tools/assimp_cmd/Main.h | 2 +- tools/assimp_cmd/{WriteDumb.cpp => WriteDump.cpp} | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) rename tools/assimp_cmd/{WriteDumb.cpp => WriteDump.cpp} (99%) diff --git a/code/Common/assbin_chunks.h b/code/Common/assbin_chunks.h index 15e4af5e7..822df5198 100644 --- a/code/Common/assbin_chunks.h +++ b/code/Common/assbin_chunks.h @@ -37,7 +37,7 @@ The ASSBIN file format is composed of chunks to represent the hierarchical aiSce This makes the format extensible and allows backward-compatibility with future data structure versions. The <root>/code/assbin_chunks.h header contains some magic constants for use by stand-alone ASSBIN loaders. Also, Assimp's own file writer can be found -in <root>/tools/assimp_cmd/WriteDumb.cpp (yes, the 'b' is no typo ...). +in <root>/tools/assimp_cmd/WriteDump.cpp (yes, the 'b' is no typo ...). @verbatim diff --git a/tools/assimp_cmd/CMakeLists.txt b/tools/assimp_cmd/CMakeLists.txt index ef7b7f054..fcf36c356 100644 --- a/tools/assimp_cmd/CMakeLists.txt +++ b/tools/assimp_cmd/CMakeLists.txt @@ -54,7 +54,7 @@ ADD_EXECUTABLE( assimp_cmd Main.cpp Main.h resource.h - WriteDumb.cpp + WriteDump.cpp Info.cpp Export.cpp ) diff --git a/tools/assimp_cmd/Main.h b/tools/assimp_cmd/Main.h index 7a6ac942d..ecc65345d 100644 --- a/tools/assimp_cmd/Main.h +++ b/tools/assimp_cmd/Main.h @@ -168,7 +168,7 @@ bool ExportModel(const aiScene* pOut, // ------------------------------------------------------------------------------ /** assimp_dump utility - * @param params Command line parameters to 'assimp dumb' + * @param params Command line parameters to 'assimp dump' * @param Number of params * @return An #AssimpCmdError value.*/ int Assimp_Dump ( diff --git a/tools/assimp_cmd/WriteDumb.cpp b/tools/assimp_cmd/WriteDump.cpp similarity index 99% rename from tools/assimp_cmd/WriteDumb.cpp rename to tools/assimp_cmd/WriteDump.cpp index 0403f3966..67d1a0e76 100644 --- a/tools/assimp_cmd/WriteDumb.cpp +++ b/tools/assimp_cmd/WriteDump.cpp @@ -41,7 +41,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. --------------------------------------------------------------------------- */ -/** @file WriteTextDumb.cpp +/** @file WriteDump.cpp * @brief Implementation of the 'assimp dump' utility */ From bbe6f7f213b5e2ee689146df5c068dc1a55ea919 Mon Sep 17 00:00:00 2001 From: Hanif Bin Ariffin Date: Thu, 30 Jan 2020 18:42:30 -0500 Subject: [PATCH 62/85] Fixed a bunch of clang warnings 1. Fix misleading indentation warnings. 2. Fix creating a temporary const copy when iterating over a map (thanks to range analysis warnings) 3. Fix creating a copy when iterating over a range without reference qualifier (also thanks to range analysis warnings) --- code/COB/COBLoader.cpp | 2 +- code/Importer/IFC/IFCCurve.cpp | 4 ++-- code/MDL/MDLLoader.cpp | 2 +- code/XGL/XGLLoader.cpp | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/code/COB/COBLoader.cpp b/code/COB/COBLoader.cpp index 7b82ab662..8e7c81192 100644 --- a/code/COB/COBLoader.cpp +++ b/code/COB/COBLoader.cpp @@ -250,7 +250,7 @@ aiNode* COBImporter::BuildNodes(const Node& root,const Scene& scin,aiScene* fill const Mesh& ndmesh = (const Mesh&)(root); if (ndmesh.vertex_positions.size() && ndmesh.texture_coords.size()) { - typedef std::pair Entry; + typedef std::pair Entry; for(const Entry& reflist : ndmesh.temp_map) { { // create mesh size_t n = 0; diff --git a/code/Importer/IFC/IFCCurve.cpp b/code/Importer/IFC/IFCCurve.cpp index 6ff330052..b16df9c5c 100644 --- a/code/Importer/IFC/IFCCurve.cpp +++ b/code/Importer/IFC/IFCCurve.cpp @@ -323,7 +323,7 @@ public: // oh well. bool have_param = false, have_point = false; IfcVector3 point; - for(const Entry sel :entity.Trim1) { + for(const Entry& sel :entity.Trim1) { if (const ::Assimp::STEP::EXPRESS::REAL* const r = sel->ToPtr<::Assimp::STEP::EXPRESS::REAL>()) { range.first = *r; have_param = true; @@ -340,7 +340,7 @@ public: } } have_param = false, have_point = false; - for(const Entry sel :entity.Trim2) { + for(const Entry& sel :entity.Trim2) { if (const ::Assimp::STEP::EXPRESS::REAL* const r = sel->ToPtr<::Assimp::STEP::EXPRESS::REAL>()) { range.second = *r; have_param = true; diff --git a/code/MDL/MDLLoader.cpp b/code/MDL/MDLLoader.cpp index 21a6bc29b..8894f46ec 100644 --- a/code/MDL/MDLLoader.cpp +++ b/code/MDL/MDLLoader.cpp @@ -1421,7 +1421,7 @@ void MDLImporter::InternReadFile_3DGS_MDL7( ) avOutList[i].reserve(3); // buffer to held the names of all groups in the file - const size_t buffersize( AI_MDL7_MAX_GROUPNAMESIZE*pcHeader->groups_num ); + const size_t buffersize(AI_MDL7_MAX_GROUPNAMESIZE*pcHeader->groups_num); char* aszGroupNameBuffer = new char[ buffersize ]; // read all groups diff --git a/code/XGL/XGLLoader.cpp b/code/XGL/XGLLoader.cpp index 24ed5d57c..403205e03 100644 --- a/code/XGL/XGLLoader.cpp +++ b/code/XGL/XGLLoader.cpp @@ -685,7 +685,7 @@ bool XGLImporter::ReadMesh(TempScope& scope) } // finally extract output meshes and add them to the scope - typedef std::pair pairt; + typedef std::pair pairt; for(const pairt& p : bymat) { aiMesh* const m = ToOutputMesh(p.second); scope.meshes_linear.push_back(m); From e434c63c31d474c506b7cb573762aa7ac307e37a Mon Sep 17 00:00:00 2001 From: bzt Date: Fri, 31 Jan 2020 14:20:23 +0100 Subject: [PATCH 63/85] Fixed what kimkulling broke --- code/M3D/M3DImporter.cpp | 137 ++++++++++++++++++++------------------- 1 file changed, 70 insertions(+), 67 deletions(-) diff --git a/code/M3D/M3DImporter.cpp b/code/M3D/M3DImporter.cpp index 20b9b9e44..1c6cea766 100644 --- a/code/M3D/M3DImporter.cpp +++ b/code/M3D/M3DImporter.cpp @@ -110,8 +110,8 @@ using namespace std; // Default constructor M3DImporter::M3DImporter() : mScene(nullptr) { - // empty -} + // empty + } // ------------------------------------------------------------------------------------------------ // Returns true, if file is a binary or ASCII Model 3D file. @@ -128,8 +128,14 @@ bool M3DImporter::CanRead(const std::string &pFile, IOSystem *pIOHandler, bool c if (!pIOHandler) { return true; } + /* + * don't use CheckMagicToken because that checks with swapped bytes too, leading to false + * positives. This magic is not uint32_t, but char[4], so memcmp is the best way - std::unique_ptr pStream(pIOHandler->Open(pFile, "rb")); + const char* tokens[] = {"3DMO", "3dmo"}; + return CheckMagicToken(pIOHandler,pFile,tokens,2,0,4); + */ + std::unique_ptr pStream(pIOHandler->Open(pFile, "rb")); unsigned char data[4]; if (4 != pStream->Read(data, 1, 4)) { return false; @@ -140,8 +146,7 @@ bool M3DImporter::CanRead(const std::string &pFile, IOSystem *pIOHandler, bool c #endif ; } - - return false; + return false; } // ------------------------------------------------------------------------------------------------ @@ -247,53 +252,50 @@ void M3DImporter::importMaterials(const M3DWrapper &m3d) { if (!m3d->nummaterial || !m3d->material) { return; - } + } for (i = 0; i < m3d->nummaterial; i++) { m = &m3d->material[i]; aiMaterial *mat = new aiMaterial; name.Set(std::string(m->name)); mat->AddProperty(&name, AI_MATKEY_NAME); - for (j = 0; j < m->numprop; ++j) { + for (j = 0; j < m->numprop; j++) { // look up property type // 0 - 127 scalar values, // 128 - 255 the same properties but for texture maps k = 256; - for (l = 0; l < sizeof(m3d_propertytypes) / sizeof(m3d_propertytypes[0]); ++l) { + for (l = 0; l < sizeof(m3d_propertytypes) / sizeof(m3d_propertytypes[0]); l++) if (m->prop[j].type == m3d_propertytypes[l].id || m->prop[j].type == m3d_propertytypes[l].id + 128) { k = l; break; } - // should never happen, but be safe than sorry - if (k == 256) { - continue; - } + // should never happen, but be safe than sorry + if (k == 256) continue; - // scalar properties - if (m->prop[j].type < 128 && aiProps[k].pKey) { - switch (m3d_propertytypes[k].format) { - case m3dpf_color: - c = mkColor(m->prop[j].value.color); - mat->AddProperty(&c, 1, aiProps[k].pKey, aiProps[k].type, aiProps[k].index); - break; - case m3dpf_float: - f = m->prop[j].value.fnum; - mat->AddProperty(&f, 1, aiProps[k].pKey, aiProps[k].type, aiProps[k].index); - break; - default: - n = m->prop[j].value.num; - if (m->prop[j].type == m3dp_il) { - switch (n) { - case 0: n = aiShadingMode_NoShading; break; - case 2: n = aiShadingMode_Phong; break; - default: n = aiShadingMode_Gouraud; break; - } - } - mat->AddProperty(&n, 1, aiProps[k].pKey, aiProps[k].type, aiProps[k].index); - break; - } - } + // scalar properties + if (m->prop[j].type < 128 && aiProps[k].pKey) { + switch (m3d_propertytypes[k].format) { + case m3dpf_color: + c = mkColor(m->prop[j].value.color); + mat->AddProperty(&c, 1, aiProps[k].pKey, aiProps[k].type, aiProps[k].index); + break; + case m3dpf_float: + f = m->prop[j].value.fnum; + mat->AddProperty(&f, 1, aiProps[k].pKey, aiProps[k].type, aiProps[k].index); + break; + default: + n = m->prop[j].value.num; + if (m->prop[j].type == m3dp_il) { + switch (n) { + case 0: n = aiShadingMode_NoShading; break; + case 2: n = aiShadingMode_Phong; break; + default: n = aiShadingMode_Gouraud; break; + } + } + mat->AddProperty(&n, 1, aiProps[k].pKey, aiProps[k].type, aiProps[k].index); + break; + } } // texture map properties if (m->prop[j].type >= 128 && aiTxProps[k].pKey && @@ -314,11 +316,12 @@ void M3DImporter::importMaterials(const M3DWrapper &m3d) { // import textures, this is the simplest of all void M3DImporter::importTextures(const M3DWrapper &m3d) { unsigned int i; - static const char *formatHint[] = { - "rgba0800", - "rgba0808", - "rgba8880", - "rgba8888" }; + const char *formatHint[] = { + "rgba0800", + "rgba0808", + "rgba8880", + "rgba8888" + }; m3dtx_t *t; ai_assert(mScene != nullptr); @@ -329,7 +332,7 @@ void M3DImporter::importTextures(const M3DWrapper &m3d) { if (!m3d->numtexture || !m3d->texture) { return; - } + } mScene->mTextures = new aiTexture *[m3d->numtexture]; for (i = 0; i < m3d->numtexture; i++) { @@ -398,7 +401,7 @@ void M3DImporter::importMeshes(const M3DWrapper &m3d) { if (!m3d->numface || !m3d->face || !m3d->numvertex || !m3d->vertex) { return; - } + } for (i = 0; i < m3d->numface; i++) { // we must switch mesh if material changes @@ -482,12 +485,12 @@ void M3DImporter::importMeshes(const M3DWrapper &m3d) { } delete meshes; - delete faces; - delete vertices; - delete normals; - delete texcoords; - delete colors; - delete vertexids; + if (faces) delete faces; + if (vertices) delete vertices; + if (normals) delete normals; + if (texcoords) delete texcoords; + if (colors) delete colors; + if (vertexids) delete vertexids; } // ------------------------------------------------------------------------------------------------ @@ -503,13 +506,13 @@ void M3DImporter::importBones(const M3DWrapper &m3d, unsigned int parentid, aiNo if (!m3d->numbone || !m3d->bone) { return; - } + } for (n = 0, i = parentid + 1; i < m3d->numbone; i++) { if (m3d->bone[i].parent == parentid) { - n++; - } - } + n++; + } + } pParent->mChildren = new aiNode *[n]; for (i = parentid + 1; i < m3d->numbone; i++) { @@ -544,7 +547,7 @@ void M3DImporter::importAnimations(const M3DWrapper &m3d) { if (!m3d->numaction || !m3d->action || !m3d->numbone || !m3d->bone || !m3d->vertex) { return; - } + } mScene->mAnimations = new aiAnimation *[m3d->numaction]; for (i = 0; i < m3d->numaction; i++) { @@ -659,12 +662,13 @@ aiNode *M3DImporter::findNode(aiNode *pNode, aiString name) { if (pNode->mName == name) { return pNode; - } - for ( unsigned int i = 0; i < pNode->mNumChildren; i++) { + } + + for (unsigned int i = 0; i < pNode->mNumChildren; i++) { aiNode *pChild = findNode(pNode->mChildren[i], name); if (pChild) { - return pChild; - } + return pChild; + } } return nullptr; } @@ -726,8 +730,7 @@ void M3DImporter::populateMesh(const M3DWrapper &m3d, aiMesh *pMesh, std::vector // this is complicated, because M3D stores a list of bone id / weight pairs per // vertex but assimp uses lists of local vertex id/weight pairs per local bone list pMesh->mNumBones = m3d->numbone; - - // we need aiBone with mOffsetMatrix for bones without weights as well + // we need aiBone with mOffsetMatrix for bones without weights as well if (pMesh->mNumBones && m3d->numbone && m3d->bone) { pMesh->mBones = new aiBone *[pMesh->mNumBones]; for (unsigned int i = 0; i < m3d->numbone; i++) { @@ -743,16 +746,17 @@ void M3DImporter::populateMesh(const M3DWrapper &m3d, aiMesh *pMesh, std::vector pMesh->mBones[i]->mOffsetMatrix = aiMatrix4x4(); } if (vertexids->size() && m3d->numvertex && m3d->vertex && m3d->numskin && m3d->skin) { + unsigned int i, j; // first count how many vertices we have per bone - for (unsigned int i = 0; i < vertexids->size(); i++) { - if (vertexids->at(i) >= m3d->numvertex) { - continue; - } + for (i = 0; i < vertexids->size(); i++) { + if(vertexids->at(i) >= m3d->numvertex) { + continue; + } unsigned int s = m3d->vertex[vertexids->at(i)].skinid; if (s != M3D_UNDEF && s != M3D_INDEXMAX) { for (unsigned int k = 0; k < M3D_NUMBONE && m3d->skin[s].weight[k] > 0.0; k++) { aiString name = aiString(std::string(m3d->bone[m3d->skin[s].boneid[k]].name)); - for (unsigned int j = 0; j < pMesh->mNumBones; j++) { + for (j = 0; j < pMesh->mNumBones; j++) { if (pMesh->mBones[j]->mName == name) { pMesh->mBones[j]->mNumWeights++; break; @@ -761,8 +765,7 @@ void M3DImporter::populateMesh(const M3DWrapper &m3d, aiMesh *pMesh, std::vector } } } - - // allocate mWeights + // allocate mWeights for (j = 0; j < pMesh->mNumBones; j++) { aiBone *pBone = pMesh->mBones[j]; if (pBone->mNumWeights) { From 0af44fb3e8597b812db47f69e59a31cfb640620a Mon Sep 17 00:00:00 2001 From: Kim Kulling Date: Fri, 31 Jan 2020 19:06:56 +0100 Subject: [PATCH 64/85] Update glTFExporter.cpp Replacing tabs by spaces. --- code/glTF/glTFExporter.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/glTF/glTFExporter.cpp b/code/glTF/glTFExporter.cpp index 4ebe53c00..072234891 100644 --- a/code/glTF/glTFExporter.cpp +++ b/code/glTF/glTFExporter.cpp @@ -353,7 +353,7 @@ void glTFExporter::GetMatColorOrTex(const aiMaterial* mat, glTF::TexProperty& pr if (path[0] == '*') { // embedded aiTexture* tex = mScene->mTextures[atoi(&path[1])]; - prop.texture->source->name = tex->mFilename.C_Str(); + prop.texture->source->name = tex->mFilename.C_Str(); uint8_t* data = reinterpret_cast(tex->pcData); prop.texture->source->SetData(data, tex->mWidth, *mAsset); From 187b74355bd7ee18b02da9c84d44e6dc186b0c9e Mon Sep 17 00:00:00 2001 From: Kim Kulling Date: Fri, 31 Jan 2020 19:08:04 +0100 Subject: [PATCH 65/85] Update glTFImporter.cpp Replace tabs by spaces. --- code/glTF/glTFImporter.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/glTF/glTFImporter.cpp b/code/glTF/glTFImporter.cpp index bba48dc30..16addc977 100644 --- a/code/glTF/glTFImporter.cpp +++ b/code/glTF/glTFImporter.cpp @@ -680,7 +680,7 @@ void glTFImporter::ImportEmbeddedTextures(glTF::Asset& r) size_t length = img.GetDataLength(); void* data = img.StealData(); - tex->mFilename = img.name; + tex->mFilename = img.name; tex->mWidth = static_cast(length); tex->mHeight = 0; tex->pcData = reinterpret_cast(data); From 026900088433e46ee5e35162e062d733c547a121 Mon Sep 17 00:00:00 2001 From: Kim Kulling Date: Fri, 31 Jan 2020 19:11:36 +0100 Subject: [PATCH 66/85] Update glTF2Exporter.cpp Replacing tabs by spaces. --- code/glTF2/glTF2Exporter.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/glTF2/glTF2Exporter.cpp b/code/glTF2/glTF2Exporter.cpp index b240a5ea9..1bfee4491 100644 --- a/code/glTF2/glTF2Exporter.cpp +++ b/code/glTF2/glTF2Exporter.cpp @@ -352,7 +352,7 @@ void glTF2Exporter::GetMatTex(const aiMaterial* mat, Ref& texture, aiTe if (path[0] == '*') { // embedded aiTexture* tex = mScene->mTextures[atoi(&path[1])]; - texture->source->name = tex->mFilename.C_Str(); + texture->source->name = tex->mFilename.C_Str(); // The asset has its own buffer, see Image::SetData texture->source->SetData(reinterpret_cast (tex->pcData), tex->mWidth, *mAsset); From ede860173eeb232db58fb768d9c097ed14edf2b4 Mon Sep 17 00:00:00 2001 From: Marc-Antoine Lortie Date: Fri, 31 Jan 2020 16:43:20 -0500 Subject: [PATCH 67/85] Fixed mValues allocated twice. mValues is already allocated in aiMetadata::Alloc(). --- code/Common/SceneCombiner.cpp | 1 - 1 file changed, 1 deletion(-) diff --git a/code/Common/SceneCombiner.cpp b/code/Common/SceneCombiner.cpp index 9471907de..29b6082a8 100644 --- a/code/Common/SceneCombiner.cpp +++ b/code/Common/SceneCombiner.cpp @@ -1312,7 +1312,6 @@ void SceneCombiner::Copy(aiMetadata** _dest, const aiMetadata* src) { aiMetadata* dest = *_dest = aiMetadata::Alloc( src->mNumProperties ); std::copy(src->mKeys, src->mKeys + src->mNumProperties, dest->mKeys); - dest->mValues = new aiMetadataEntry[src->mNumProperties]; for (unsigned int i = 0; i < src->mNumProperties; ++i) { aiMetadataEntry& in = src->mValues[i]; aiMetadataEntry& out = dest->mValues[i]; From d6567e606e6acb472f2b64f700834f8fc1ef41ff Mon Sep 17 00:00:00 2001 From: Marc-Antoine Lortie Date: Fri, 31 Jan 2020 18:14:26 -0500 Subject: [PATCH 68/85] Fixed wrong changes applied during merge. --- code/MDL/HalfLife/HL1MDLLoader.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/MDL/HalfLife/HL1MDLLoader.cpp b/code/MDL/HalfLife/HL1MDLLoader.cpp index 6d5f283af..c18528e59 100644 --- a/code/MDL/HalfLife/HL1MDLLoader.cpp +++ b/code/MDL/HalfLife/HL1MDLLoader.cpp @@ -345,8 +345,8 @@ void HL1MDLLoader::read_texture(const Texture_HL1 *ptexture, uint8_t *data, uint8_t *pal, aiTexture *pResult, aiColor3D &last_palette_color) { pResult->mFilename = ptexture->name; - pResult->mWidth = outwidth; - pResult->mHeight = outheight; + pResult->mWidth = static_cast(ptexture->width); + pResult->mHeight = static_cast(ptexture->height); pResult->achFormatHint[0] = 'r'; pResult->achFormatHint[1] = 'g'; pResult->achFormatHint[2] = 'b'; From 8e009c3d0cd11bcabf7a66952d33e3fa55b9ae12 Mon Sep 17 00:00:00 2001 From: Kim Kulling Date: Mon, 3 Feb 2020 19:06:36 +0100 Subject: [PATCH 69/85] Update MDLLoader.cpp fix a tab. --- code/MDL/MDLLoader.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/MDL/MDLLoader.cpp b/code/MDL/MDLLoader.cpp index 8894f46ec..11c6e3ecb 100644 --- a/code/MDL/MDLLoader.cpp +++ b/code/MDL/MDLLoader.cpp @@ -1422,10 +1422,10 @@ void MDLImporter::InternReadFile_3DGS_MDL7( ) // buffer to held the names of all groups in the file const size_t buffersize(AI_MDL7_MAX_GROUPNAMESIZE*pcHeader->groups_num); - char* aszGroupNameBuffer = new char[ buffersize ]; + char* aszGroupNameBuffer = new char[ buffersize ]; // read all groups - for (unsigned int iGroup = 0; iGroup < (unsigned int)pcHeader->groups_num;++iGroup) { + for (unsigned int iGroup = 0; iGroup < (unsigned int)pcHeader->groups_num; ++iGroup) { MDL::IntGroupInfo_MDL7 groupInfo((BE_NCONST MDL::Group_MDL7*)szCurrent,iGroup); szCurrent = (const unsigned char*)(groupInfo.pcGroup+1); From cb55e2658db85558104b828d17b3455d0a24c6f0 Mon Sep 17 00:00:00 2001 From: Max Vollmer Date: Wed, 5 Feb 2020 11:07:39 +0000 Subject: [PATCH 70/85] Removed unnecessary checks that may result in false positives rejecting valid models --- code/FBX/FBXMeshGeometry.cpp | 46 +++++++++++++----------------------- 1 file changed, 17 insertions(+), 29 deletions(-) diff --git a/code/FBX/FBXMeshGeometry.cpp b/code/FBX/FBXMeshGeometry.cpp index 003f0870c..2f2782182 100644 --- a/code/FBX/FBXMeshGeometry.cpp +++ b/code/FBX/FBXMeshGeometry.cpp @@ -448,11 +448,11 @@ void ResolveVertexDataArray(std::vector& data_out, const Scope& source, std::vector tempData; ParseVectorDataArray(tempData, GetRequiredElement(source, dataElementName)); - if (tempData.size() != vertex_count) { - FBXImporter::LogError(Formatter::format("length of input data unexpected for ByVertice mapping: ") - << tempData.size() << ", expected " << vertex_count); - return; - } + if (tempData.size() != vertex_count) { + FBXImporter::LogError(Formatter::format("length of input data unexpected for ByVertice mapping: ") + << tempData.size() << ", expected " << vertex_count); + return; + } data_out.resize(vertex_count); for (size_t i = 0, e = tempData.size(); i < e; ++i) { @@ -467,22 +467,16 @@ void ResolveVertexDataArray(std::vector& data_out, const Scope& source, std::vector tempData; ParseVectorDataArray(tempData, GetRequiredElement(source, dataElementName)); - if (tempData.size() != vertex_count) { - FBXImporter::LogError(Formatter::format("length of input data unexpected for ByVertice mapping: ") - << tempData.size() << ", expected " << vertex_count); - return; - } - std::vector uvIndices; ParseVectorDataArray(uvIndices,GetRequiredElement(source,indexDataElementName)); - if (uvIndices.size() != vertex_count) { - FBXImporter::LogError(Formatter::format("length of input data unexpected for ByVertice mapping: ") - << uvIndices.size() << ", expected " << vertex_count); - return; - } + if (uvIndices.size() != vertex_count) { + FBXImporter::LogError(Formatter::format("length of input data unexpected for ByVertice mapping: ") + << uvIndices.size() << ", expected " << vertex_count); + return; + } - data_out.resize(vertex_count); + data_out.resize(vertex_count); for (size_t i = 0, e = uvIndices.size(); i < e; ++i) { @@ -512,22 +506,16 @@ void ResolveVertexDataArray(std::vector& data_out, const Scope& source, std::vector tempData; ParseVectorDataArray(tempData, GetRequiredElement(source, dataElementName)); - if (tempData.size() != vertex_count) { - FBXImporter::LogError(Formatter::format("length of input data unexpected for ByPolygonVertex mapping: ") - << tempData.size() << ", expected " << vertex_count); - return; - } - std::vector uvIndices; ParseVectorDataArray(uvIndices,GetRequiredElement(source,indexDataElementName)); - if (uvIndices.size() != vertex_count) { - FBXImporter::LogError(Formatter::format("length of input data unexpected for ByPolygonVertex mapping: ") - << uvIndices.size() << ", expected " << vertex_count); - return; - } + if (uvIndices.size() != vertex_count) { + FBXImporter::LogError(Formatter::format("length of input data unexpected for ByPolygonVertex mapping: ") + << uvIndices.size() << ", expected " << vertex_count); + return; + } - data_out.resize(vertex_count); + data_out.resize(vertex_count); const T empty; unsigned int next = 0; From 8af0229e0d257f7443b8f254fe2c75339680da57 Mon Sep 17 00:00:00 2001 From: Max Vollmer Date: Wed, 5 Feb 2020 14:40:35 +0000 Subject: [PATCH 71/85] In "ByVertice" case tempData.size() needs to be mapping_offsets.size(), not vertex_count --- code/FBX/FBXMeshGeometry.cpp | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/code/FBX/FBXMeshGeometry.cpp b/code/FBX/FBXMeshGeometry.cpp index 2f2782182..4a3de9f99 100644 --- a/code/FBX/FBXMeshGeometry.cpp +++ b/code/FBX/FBXMeshGeometry.cpp @@ -446,20 +446,19 @@ void ResolveVertexDataArray(std::vector& data_out, const Scope& source, return; } std::vector tempData; - ParseVectorDataArray(tempData, GetRequiredElement(source, dataElementName)); + ParseVectorDataArray(tempData, GetRequiredElement(source, dataElementName)); - if (tempData.size() != vertex_count) { + if (tempData.size() != mapping_offsets.size()) { FBXImporter::LogError(Formatter::format("length of input data unexpected for ByVertice mapping: ") - << tempData.size() << ", expected " << vertex_count); + << tempData.size() << ", expected " << mapping_offsets.size()); return; } data_out.resize(vertex_count); - for (size_t i = 0, e = tempData.size(); i < e; ++i) { - + for (size_t i = 0, e = tempData.size(); i < e; ++i) { const unsigned int istart = mapping_offsets[i], iend = istart + mapping_counts[i]; for (unsigned int j = istart; j < iend; ++j) { - data_out[mappings[j]] = tempData[i]; + data_out[mappings[j]] = tempData[i]; } } } From 18c01a023cd876ba328478a5cd4c6ff389904789 Mon Sep 17 00:00:00 2001 From: Luke Lau Date: Wed, 5 Feb 2020 21:24:54 +0000 Subject: [PATCH 72/85] Use the translation matrix in gltf2 cameras for aiCamera.mPosition --- code/glTF2/glTF2Importer.cpp | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/code/glTF2/glTF2Importer.cpp b/code/glTF2/glTF2Importer.cpp index e5052d4d6..154fef313 100644 --- a/code/glTF2/glTF2Importer.cpp +++ b/code/glTF2/glTF2Importer.cpp @@ -925,6 +925,11 @@ aiNode *ImportNode(aiScene *pScene, glTF2::Asset &r, std::vector & if (node.camera) { pScene->mCameras[node.camera.GetIndex()]->mName = ainode->mName; + if (node.translation.isPresent) { + aiVector3D trans; + CopyValue(node.translation.value, trans); + pScene->mCameras[node.camera.GetIndex()]->mPosition = trans; + } } if (node.light) { From 29603128f434e23cb93398955fe9fe22e101ed6e Mon Sep 17 00:00:00 2001 From: Frooxius Date: Thu, 6 Feb 2020 10:28:38 +0100 Subject: [PATCH 73/85] Fixed invalid armature node population when there's mesh on a node with the same name as the bone --- code/PostProcessing/ArmaturePopulate.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/code/PostProcessing/ArmaturePopulate.cpp b/code/PostProcessing/ArmaturePopulate.cpp index c339bebe0..1514e14f2 100644 --- a/code/PostProcessing/ArmaturePopulate.cpp +++ b/code/PostProcessing/ArmaturePopulate.cpp @@ -150,7 +150,8 @@ void ArmaturePopulate::BuildNodeList(const aiNode *current_node, aiNode *child = current_node->mChildren[nodeId]; ai_assert(child); - nodes.push_back(child); + if (child->mNumMeshes == 0) + nodes.push_back(child); BuildNodeList(child, nodes); } From 8c09cd2ef3d72ba150b7a8faf67ea7fcd913984b Mon Sep 17 00:00:00 2001 From: Marc-Antoine Lortie Date: Thu, 6 Feb 2020 13:19:01 -0500 Subject: [PATCH 74/85] Fixed TextureTypeToString defined multiple times. - Moved TextureTypeToString to it's own file. - Added new file to CMakeLists.txt. - Added 6 missing values in TextureTypeToString. - Added 6 missing aiTextureType enum values in assimp_cmd/Info.cpp. --- code/CMakeLists.txt | 1 + code/Common/material.cpp | 97 +++++++++++++++++++++++++++ code/PostProcessing/ProcessHelper.cpp | 40 ----------- code/PostProcessing/ProcessHelper.h | 6 -- include/assimp/material.h | 4 ++ tools/assimp_cmd/Info.cpp | 6 ++ tools/assimp_cmd/WriteDump.cpp | 38 ----------- 7 files changed, 108 insertions(+), 84 deletions(-) create mode 100644 code/Common/material.cpp diff --git a/code/CMakeLists.txt b/code/CMakeLists.txt index 5278509e8..91f099c02 100644 --- a/code/CMakeLists.txt +++ b/code/CMakeLists.txt @@ -198,6 +198,7 @@ SET( Common_SRCS Common/CreateAnimMesh.cpp Common/simd.h Common/simd.cpp + Common/material.cpp ) SOURCE_GROUP(Common FILES ${Common_SRCS}) diff --git a/code/Common/material.cpp b/code/Common/material.cpp new file mode 100644 index 000000000..f4a29dacf --- /dev/null +++ b/code/Common/material.cpp @@ -0,0 +1,97 @@ +/* +Open Asset Import Library (assimp) +---------------------------------------------------------------------- + +Copyright (c) 2006-2020, assimp team + + +All rights reserved. + +Redistribution and use of this software in source and binary forms, +with or without modification, are permitted provided that the +following conditions are met: + +* Redistributions of source code must retain the above + copyright notice, this list of conditions and the + following disclaimer. + +* Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the + following disclaimer in the documentation and/or other + materials provided with the distribution. + +* Neither the name of the assimp team, nor the names of its + contributors may be used to endorse or promote products + derived from this software without specific prior + written permission of the assimp team. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +---------------------------------------------------------------------- +*/ + +/// @file material.cpp +/** Implement common material related functions. */ + +#include +#include + +// ------------------------------------------------------------------------------- +const char* TextureTypeToString(aiTextureType in) +{ + switch (in) + { + case aiTextureType_NONE: + return "n/a"; + case aiTextureType_DIFFUSE: + return "Diffuse"; + case aiTextureType_SPECULAR: + return "Specular"; + case aiTextureType_AMBIENT: + return "Ambient"; + case aiTextureType_EMISSIVE: + return "Emissive"; + case aiTextureType_OPACITY: + return "Opacity"; + case aiTextureType_NORMALS: + return "Normals"; + case aiTextureType_HEIGHT: + return "Height"; + case aiTextureType_SHININESS: + return "Shininess"; + case aiTextureType_DISPLACEMENT: + return "Displacement"; + case aiTextureType_LIGHTMAP: + return "Lightmap"; + case aiTextureType_REFLECTION: + return "Reflection"; + case aiTextureType_BASE_COLOR: + return "BaseColor"; + case aiTextureType_NORMAL_CAMERA: + return "NormalCamera"; + case aiTextureType_EMISSION_COLOR: + return "EmissionColor"; + case aiTextureType_METALNESS: + return "Metalness"; + case aiTextureType_DIFFUSE_ROUGHNESS: + return "DiffuseRoughness"; + case aiTextureType_AMBIENT_OCCLUSION: + return "AmbientOcclusion"; + case aiTextureType_UNKNOWN: + return "Unknown"; + default: + break; + } + ai_assert(false); + return "BUG"; +} diff --git a/code/PostProcessing/ProcessHelper.cpp b/code/PostProcessing/ProcessHelper.cpp index 41444afd8..123986438 100644 --- a/code/PostProcessing/ProcessHelper.cpp +++ b/code/PostProcessing/ProcessHelper.cpp @@ -230,46 +230,6 @@ VertexWeightTable* ComputeVertexBoneWeightTable(const aiMesh* pMesh) return avPerVertexWeights; } - -// ------------------------------------------------------------------------------- -const char* TextureTypeToString(aiTextureType in) -{ - switch (in) - { - case aiTextureType_NONE: - return "n/a"; - case aiTextureType_DIFFUSE: - return "Diffuse"; - case aiTextureType_SPECULAR: - return "Specular"; - case aiTextureType_AMBIENT: - return "Ambient"; - case aiTextureType_EMISSIVE: - return "Emissive"; - case aiTextureType_OPACITY: - return "Opacity"; - case aiTextureType_NORMALS: - return "Normals"; - case aiTextureType_HEIGHT: - return "Height"; - case aiTextureType_SHININESS: - return "Shininess"; - case aiTextureType_DISPLACEMENT: - return "Displacement"; - case aiTextureType_LIGHTMAP: - return "Lightmap"; - case aiTextureType_REFLECTION: - return "Reflection"; - case aiTextureType_UNKNOWN: - return "Unknown"; - default: - break; - } - - ai_assert(false); - return "BUG"; -} - // ------------------------------------------------------------------------------- const char* MappingTypeToString(aiTextureMapping in) { diff --git a/code/PostProcessing/ProcessHelper.h b/code/PostProcessing/ProcessHelper.h index 7ff3a9c5f..5762fbb35 100644 --- a/code/PostProcessing/ProcessHelper.h +++ b/code/PostProcessing/ProcessHelper.h @@ -316,12 +316,6 @@ typedef std::vector VertexWeightTable; // Compute a per-vertex bone weight table VertexWeightTable* ComputeVertexBoneWeightTable(const aiMesh* pMesh); - -// ------------------------------------------------------------------------------- -// Get a string for a given aiTextureType -const char* TextureTypeToString(aiTextureType in); - - // ------------------------------------------------------------------------------- // Get a string for a given aiTextureMapping const char* MappingTypeToString(aiTextureMapping in); diff --git a/include/assimp/material.h b/include/assimp/material.h index 6c864e3d4..75695e50b 100644 --- a/include/assimp/material.h +++ b/include/assimp/material.h @@ -312,6 +312,10 @@ enum aiTextureType #define AI_TEXTURE_TYPE_MAX aiTextureType_UNKNOWN +// ------------------------------------------------------------------------------- +// Get a string for a given aiTextureType +ASSIMP_API const char* TextureTypeToString(enum aiTextureType in); + // --------------------------------------------------------------------------- /** @brief Defines all shading models supported by the library * diff --git a/tools/assimp_cmd/Info.cpp b/tools/assimp_cmd/Info.cpp index 1594235f9..52b9edb92 100644 --- a/tools/assimp_cmd/Info.cpp +++ b/tools/assimp_cmd/Info.cpp @@ -444,6 +444,12 @@ int Assimp_Info (const char* const* params, unsigned int num) { aiTextureType_DISPLACEMENT, aiTextureType_LIGHTMAP, aiTextureType_REFLECTION, + aiTextureType_BASE_COLOR, + aiTextureType_NORMAL_CAMERA, + aiTextureType_EMISSION_COLOR, + aiTextureType_METALNESS, + aiTextureType_DIFFUSE_ROUGHNESS, + aiTextureType_AMBIENT_OCCLUSION, aiTextureType_UNKNOWN }; for(unsigned int type = 0; type < sizeof(types)/sizeof(types[0]); ++type) { diff --git a/tools/assimp_cmd/WriteDump.cpp b/tools/assimp_cmd/WriteDump.cpp index 67d1a0e76..86542ed2e 100644 --- a/tools/assimp_cmd/WriteDump.cpp +++ b/tools/assimp_cmd/WriteDump.cpp @@ -69,44 +69,6 @@ const char* AICMD_MSG_DUMP_HELP = FILE* out = NULL; bool shortened = false; -// ------------------------------------------------------------------------------- -const char* TextureTypeToString(aiTextureType in) -{ - switch (in) - { - case aiTextureType_NONE: - return "n/a"; - case aiTextureType_DIFFUSE: - return "Diffuse"; - case aiTextureType_SPECULAR: - return "Specular"; - case aiTextureType_AMBIENT: - return "Ambient"; - case aiTextureType_EMISSIVE: - return "Emissive"; - case aiTextureType_OPACITY: - return "Opacity"; - case aiTextureType_NORMALS: - return "Normals"; - case aiTextureType_HEIGHT: - return "Height"; - case aiTextureType_SHININESS: - return "Shininess"; - case aiTextureType_DISPLACEMENT: - return "Displacement"; - case aiTextureType_LIGHTMAP: - return "Lightmap"; - case aiTextureType_REFLECTION: - return "Reflection"; - case aiTextureType_UNKNOWN: - return "Unknown"; - default: - break; - } - ai_assert(false); - return "BUG"; -} - // ----------------------------------------------------------------------------------- int Assimp_Dump (const char* const* params, unsigned int num) { From d3a70c73c445c01b03495fe2d0c8513bf16e5fb7 Mon Sep 17 00:00:00 2001 From: Kim Kulling Date: Fri, 7 Feb 2020 10:58:56 +0100 Subject: [PATCH 75/85] Update FUNDING.yml Add paypal sponsoring --- .github/FUNDING.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml index e750822ab..a932e5377 100644 --- a/.github/FUNDING.yml +++ b/.github/FUNDING.yml @@ -1,2 +1,2 @@ patreon: assimp -ko_fi: kimkulling +Paypal: https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=4JRJVPXC4QJM4 From 8fd053315ce535fca5f103c13c2d1800d4a092ab Mon Sep 17 00:00:00 2001 From: Kim Kulling Date: Sun, 9 Feb 2020 11:14:42 +0100 Subject: [PATCH 76/85] Update ArmaturePopulate.cpp - Introduce tabs width of 4. - Add missing brackets - Use c++ comment blocks --- code/PostProcessing/ArmaturePopulate.cpp | 283 +++++++++++------------ 1 file changed, 138 insertions(+), 145 deletions(-) diff --git a/code/PostProcessing/ArmaturePopulate.cpp b/code/PostProcessing/ArmaturePopulate.cpp index 1514e14f2..31c99ae94 100644 --- a/code/PostProcessing/ArmaturePopulate.cpp +++ b/code/PostProcessing/ArmaturePopulate.cpp @@ -4,7 +4,6 @@ Open Asset Import Library (assimp) Copyright (c) 2006-2020, assimp team - All rights reserved. Redistribution and use of this software in source and binary forms, @@ -36,7 +35,6 @@ DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - ---------------------------------------------------------------------- */ #include "ArmaturePopulate.h" @@ -50,220 +48,215 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. namespace Assimp { /// The default class constructor. -ArmaturePopulate::ArmaturePopulate() : BaseProcess() -{} +ArmaturePopulate::ArmaturePopulate() : + BaseProcess() { + // do nothing +} /// The class destructor. -ArmaturePopulate::~ArmaturePopulate() -{} +ArmaturePopulate::~ArmaturePopulate() { + // do nothing +} bool ArmaturePopulate::IsActive(unsigned int pFlags) const { - return (pFlags & aiProcess_PopulateArmatureData) != 0; + return (pFlags & aiProcess_PopulateArmatureData) != 0; } void ArmaturePopulate::SetupProperties(const Importer *pImp) { - // do nothing + // do nothing } void ArmaturePopulate::Execute(aiScene *out) { - // Now convert all bone positions to the correct mOffsetMatrix - std::vector bones; - std::vector nodes; - std::map bone_stack; - BuildBoneList(out->mRootNode, out->mRootNode, out, bones); - BuildNodeList(out->mRootNode, nodes); + // Now convert all bone positions to the correct mOffsetMatrix + std::vector bones; + std::vector nodes; + std::map bone_stack; + BuildBoneList(out->mRootNode, out->mRootNode, out, bones); + BuildNodeList(out->mRootNode, nodes); - BuildBoneStack(out->mRootNode, out->mRootNode, out, bones, bone_stack, nodes); + BuildBoneStack(out->mRootNode, out->mRootNode, out, bones, bone_stack, nodes); - ASSIMP_LOG_DEBUG_F("Bone stack size: ", bone_stack.size()); + ASSIMP_LOG_DEBUG_F("Bone stack size: ", bone_stack.size()); - for (std::pair kvp : bone_stack) { - aiBone *bone = kvp.first; - aiNode *bone_node = kvp.second; - ASSIMP_LOG_DEBUG_F("active node lookup: ", bone->mName.C_Str()); - // lcl transform grab - done in generate_nodes :) + for (std::pair kvp : bone_stack) { + aiBone *bone = kvp.first; + aiNode *bone_node = kvp.second; + ASSIMP_LOG_DEBUG_F("active node lookup: ", bone->mName.C_Str()); + // lcl transform grab - done in generate_nodes :) - // bone->mOffsetMatrix = bone_node->mTransformation; - aiNode *armature = GetArmatureRoot(bone_node, bones); + // bone->mOffsetMatrix = bone_node->mTransformation; + aiNode *armature = GetArmatureRoot(bone_node, bones); - ai_assert(armature); + ai_assert(armature); - // set up bone armature id - bone->mArmature = armature; + // set up bone armature id + bone->mArmature = armature; - // set this bone node to be referenced properly - ai_assert(bone_node); - bone->mNode = bone_node; - } + // set this bone node to be referenced properly + ai_assert(bone_node); + bone->mNode = bone_node; + } } -/* Reprocess all nodes to calculate bone transforms properly based on the REAL - * mOffsetMatrix not the local. */ -/* Before this would use mesh transforms which is wrong for bone transforms */ -/* Before this would work for simple character skeletons but not complex meshes - * with multiple origins */ -/* Source: sketch fab log cutter fbx */ +// Reprocess all nodes to calculate bone transforms properly based on the REAL +// mOffsetMatrix not the local. +// Before this would use mesh transforms which is wrong for bone transforms +// Before this would work for simple character skeletons but not complex meshes +// with multiple origins +// Source: sketch fab log cutter fbx void ArmaturePopulate::BuildBoneList(aiNode *current_node, const aiNode *root_node, const aiScene *scene, std::vector &bones) { - ai_assert(scene); - for (unsigned int nodeId = 0; nodeId < current_node->mNumChildren; ++nodeId) { - aiNode *child = current_node->mChildren[nodeId]; - ai_assert(child); + ai_assert(scene); + for (unsigned int nodeId = 0; nodeId < current_node->mNumChildren; ++nodeId) { + aiNode *child = current_node->mChildren[nodeId]; + ai_assert(child); - // check for bones - for (unsigned int meshId = 0; meshId < child->mNumMeshes; ++meshId) { - ai_assert(child->mMeshes); - unsigned int mesh_index = child->mMeshes[meshId]; - aiMesh *mesh = scene->mMeshes[mesh_index]; - ai_assert(mesh); + // check for bones + for (unsigned int meshId = 0; meshId < child->mNumMeshes; ++meshId) { + ai_assert(child->mMeshes); + unsigned int mesh_index = child->mMeshes[meshId]; + aiMesh *mesh = scene->mMeshes[mesh_index]; + ai_assert(mesh); - for (unsigned int boneId = 0; boneId < mesh->mNumBones; ++boneId) { - aiBone *bone = mesh->mBones[boneId]; - ai_assert(bone); + for (unsigned int boneId = 0; boneId < mesh->mNumBones; ++boneId) { + aiBone *bone = mesh->mBones[boneId]; + ai_assert(bone); - // duplicate meshes exist with the same bones sometimes :) - // so this must be detected - if (std::find(bones.begin(), bones.end(), bone) == bones.end()) { - // add the element once - bones.push_back(bone); + // duplicate mehes exist with the same bones sometimes :) + // so this must be detected + if (std::find(bones.begin(), bones.end(), bone) == bones.end()) { + // add the element once + bones.push_back(bone); + } + } + + // find mesh and get bones + // then do recursive lookup for bones in root node hierarchy } - } - // find mesh and get bones - // then do recursive lookup for bones in root node hierarchy + BuildBoneList(child, root_node, scene, bones); } - - BuildBoneList(child, root_node, scene, bones); - } } -/* Prepare flat node list which can be used for non recursive lookups later */ +// Prepare flat node list which can be used for non recursive lookups later void ArmaturePopulate::BuildNodeList(const aiNode *current_node, std::vector &nodes) { - ai_assert(current_node); + ai_assert(current_node); - for (unsigned int nodeId = 0; nodeId < current_node->mNumChildren; ++nodeId) { - aiNode *child = current_node->mChildren[nodeId]; - ai_assert(child); + for (unsigned int nodeId = 0; nodeId < current_node->mNumChildren; ++nodeId) { + aiNode *child = current_node->mChildren[nodeId]; + ai_assert(child); - if (child->mNumMeshes == 0) - nodes.push_back(child); + if (child->mNumMeshes == 0) { + nodes.push_back(child); + } - BuildNodeList(child, nodes); + BuildNodeList(child, nodes); } } -/* A bone stack allows us to have multiple armatures, with the same bone names - * A bone stack allows us also to retrieve bones true transform even with - * duplicate names :) - */ +// A bone stack allows us to have multiple armatures, with the same bone names +// A bone stack allows us also to retrieve bones true transform even with +// duplicate names :) void ArmaturePopulate::BuildBoneStack(aiNode *current_node, const aiNode *root_node, const aiScene *scene, const std::vector &bones, std::map &bone_stack, - std::vector &node_stack) { - ai_assert(scene); - ai_assert(root_node); - ai_assert(!node_stack.empty()); + std::vector &node_stack) { + ai_assert(scene); + ai_assert(root_node); + ai_assert(!node_stack.empty()); - for (aiBone *bone : bones) { - ai_assert(bone); - aiNode *node = GetNodeFromStack(bone->mName, node_stack); - if (node == nullptr) { - node_stack.clear(); - BuildNodeList(root_node, node_stack); - ASSIMP_LOG_DEBUG_F("Resetting bone stack: nullptr element ", bone->mName.C_Str()); + for (aiBone *bone : bones) { + ai_assert(bone); + aiNode *node = GetNodeFromStack(bone->mName, node_stack); + if (node == nullptr) { + node_stack.clear(); + BuildNodeList(root_node, node_stack); + ASSIMP_LOG_DEBUG_F("Resetting bone stack: nullptr element ", bone->mName.C_Str()); - node = GetNodeFromStack(bone->mName, node_stack); + node = GetNodeFromStack(bone->mName, node_stack); - if (!node) { - ASSIMP_LOG_ERROR("serious import issue node for bone was not detected"); - continue; - } + if (!node) { + ASSIMP_LOG_ERROR("serious import issue node for bone was not detected"); + continue; + } + } + + ASSIMP_LOG_DEBUG_F("Successfully added bone[", bone->mName.C_Str(), "] to stack and bone node is: ", node->mName.C_Str()); + + bone_stack.insert(std::pair(bone, node)); } - - ASSIMP_LOG_DEBUG_F("Successfully added bone[", bone->mName.C_Str(), "] to stack and bone node is: ", node->mName.C_Str()); - - bone_stack.insert(std::pair(bone, node)); - } } - -/* Returns the armature root node */ -/* This is required to be detected for a bone initially, it will recurse up - * until it cannot find another bone and return the node No known failure - * points. (yet) - */ +// Returns the armature root node +// This is required to be detected for a bone initially, it will recurse up +// until it cannot find another bone and return the node No known failure +// points. (yet) aiNode *ArmaturePopulate::GetArmatureRoot(aiNode *bone_node, std::vector &bone_list) { - while (bone_node) { - if (!IsBoneNode(bone_node->mName, bone_list)) { - ASSIMP_LOG_DEBUG_F("GetArmatureRoot() Found valid armature: ", bone_node->mName.C_Str()); - return bone_node; + while (bone_node) { + if (!IsBoneNode(bone_node->mName, bone_list)) { + ASSIMP_LOG_DEBUG_F("GetArmatureRoot() Found valid armature: ", bone_node->mName.C_Str()); + return bone_node; + } + + bone_node = bone_node->mParent; } - bone_node = bone_node->mParent; - } - - ASSIMP_LOG_ERROR("GetArmatureRoot() can't find armature!"); - - return nullptr; + ASSIMP_LOG_ERROR("GetArmatureRoot() can't find armature!"); + + return nullptr; } - - -/* Simple IsBoneNode check if this could be a bone */ +// Simple IsBoneNode check if this could be a bone bool ArmaturePopulate::IsBoneNode(const aiString &bone_name, std::vector &bones) { - for (aiBone *bone : bones) { - if (bone->mName == bone_name) { - return true; + for (aiBone *bone : bones) { + if (bone->mName == bone_name) { + return true; + } } - } - return false; + return false; } -/* Pop this node by name from the stack if found */ -/* Used in multiple armature situations with duplicate node / bone names */ -/* Known flaw: cannot have nodes with bone names, will be fixed in later release - */ -/* (serious to be fixed) Known flaw: nodes which have more than one bone could - * be prematurely dropped from stack */ +// Pop this node by name from the stack if found +// Used in multiple armature situations with duplicate node / bone names +// Known flaw: cannot have nodes with bone names, will be fixed in later release +// (serious to be fixed) Known flaw: nodes which have more than one bone could +// be prematurely dropped from stack aiNode *ArmaturePopulate::GetNodeFromStack(const aiString &node_name, std::vector &nodes) { - std::vector::iterator iter; - aiNode *found = nullptr; - for (iter = nodes.begin(); iter < nodes.end(); ++iter) { - aiNode *element = *iter; - ai_assert(element); - // node valid and node name matches - if (element->mName == node_name) { - found = element; - break; + std::vector::iterator iter; + aiNode *found = nullptr; + for (iter = nodes.begin(); iter < nodes.end(); ++iter) { + aiNode *element = *iter; + ai_assert(element); + // node valid and node name matches + if (element->mName == node_name) { + found = element; + break; + } } - } - if (found != nullptr) { - ASSIMP_LOG_INFO_F("Removed node from stack: ", found->mName.C_Str()); - // now pop the element from the node list - nodes.erase(iter); + if (found != nullptr) { + ASSIMP_LOG_INFO_F("Removed node from stack: ", found->mName.C_Str()); + // now pop the element from the node list + nodes.erase(iter); - return found; - } + return found; + } - // unique names can cause this problem - ASSIMP_LOG_ERROR("[Serious] GetNodeFromStack() can't find node from stack!"); + // unique names can cause this problem + ASSIMP_LOG_ERROR("[Serious] GetNodeFromStack() can't find node from stack!"); - return nullptr; + return nullptr; } - - - } // Namespace Assimp From ca08cbcb0cfb3e966480fdaaf603cb8c8d367819 Mon Sep 17 00:00:00 2001 From: iamAdrianIusca Date: Sun, 9 Feb 2020 20:31:06 +0200 Subject: [PATCH 77/85] - don't include HunterGate.cmake if you don't enable HUNTER package manager - don't check for DirectX if you don't build the assimp tools or samples --- CMakeLists.txt | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index fd3f1b802..38ebf3480 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -41,13 +41,13 @@ CMAKE_MINIMUM_REQUIRED( VERSION 3.0 ) # Toggles the use of the hunter package manager option(HUNTER_ENABLED "Enable Hunter package manager support" OFF) -include("cmake/HunterGate.cmake") -HunterGate( +IF(HUNTER_ENABLED) + include("cmake/HunterGate.cmake") + HunterGate( URL "https://github.com/ruslo/hunter/archive/v0.23.176.tar.gz" SHA1 "2e9ae973d028660b735ac4c6142725ca36a0048a" -) + ) -IF(HUNTER_ENABLED) add_definitions(-DASSIMP_USE_HUNTER) ENDIF(HUNTER_ENABLED) @@ -437,7 +437,9 @@ ELSE(HUNTER_ENABLED) DESTINATION "${ASSIMP_LIB_INSTALL_DIR}/cmake/assimp-${ASSIMP_VERSION_MAJOR}.${ASSIMP_VERSION_MINOR}" COMPONENT ${LIBASSIMP-DEV_COMPONENT}) ENDIF(HUNTER_ENABLED) -FIND_PACKAGE( DirectX ) +if (ASSIMP_BUILD_SAMPLES OR ASSIMP_BUILD_SAMPLES) + FIND_PACKAGE(DirectX) +endif(ASSIMP_BUILD_SAMPLES OR ASSIMP_BUILD_SAMPLES) IF( BUILD_DOCS ) ADD_SUBDIRECTORY(doc) From 58990d4e3ff84906b459164c211ce379fe63751c Mon Sep 17 00:00:00 2001 From: Kim Kulling Date: Mon, 10 Feb 2020 23:59:52 +0100 Subject: [PATCH 78/85] Update FBXParser.cpp add missing brackets. --- code/FBX/FBXParser.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/code/FBX/FBXParser.cpp b/code/FBX/FBXParser.cpp index 5486fdcc6..aef59d60c 100644 --- a/code/FBX/FBXParser.cpp +++ b/code/FBX/FBXParser.cpp @@ -368,8 +368,9 @@ float ParseTokenAsFloat(const Token& t, const char*& err_out) // which fast_atof could interpret as decimal point. #define MAX_FLOAT_LENGTH 31 const size_t length = static_cast(t.end()-t.begin()); - if (length > MAX_FLOAT_LENGTH) + if (length > MAX_FLOAT_LENGTH) { return 0.f; + } char temp[MAX_FLOAT_LENGTH + 1]; std::copy(t.begin(), t.end(), temp); From 50334086cfb693f720d18d1664d177e63d200f0d Mon Sep 17 00:00:00 2001 From: Marc-Antoine Lortie Date: Tue, 11 Feb 2020 11:42:13 -0500 Subject: [PATCH 79/85] Added missing texture types when searching for invalid textures. --- code/PostProcessing/ValidateDataStructure.cpp | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/code/PostProcessing/ValidateDataStructure.cpp b/code/PostProcessing/ValidateDataStructure.cpp index a812efb0b..6212bfb69 100644 --- a/code/PostProcessing/ValidateDataStructure.cpp +++ b/code/PostProcessing/ValidateDataStructure.cpp @@ -777,6 +777,12 @@ void ValidateDSProcess::Validate( const aiMaterial* pMaterial) SearchForInvalidTextures(pMaterial,aiTextureType_DISPLACEMENT); SearchForInvalidTextures(pMaterial,aiTextureType_LIGHTMAP); SearchForInvalidTextures(pMaterial,aiTextureType_REFLECTION); + SearchForInvalidTextures(pMaterial,aiTextureType_BASE_COLOR); + SearchForInvalidTextures(pMaterial,aiTextureType_NORMAL_CAMERA); + SearchForInvalidTextures(pMaterial,aiTextureType_EMISSION_COLOR); + SearchForInvalidTextures(pMaterial,aiTextureType_METALNESS); + SearchForInvalidTextures(pMaterial,aiTextureType_DIFFUSE_ROUGHNESS); + SearchForInvalidTextures(pMaterial,aiTextureType_AMBIENT_OCCLUSION); } // ------------------------------------------------------------------------------------------------ From 47fc3f262751c1f15e0912358dedc33abe8cd5ca Mon Sep 17 00:00:00 2001 From: Kim Kulling Date: Wed, 12 Feb 2020 14:54:00 +0100 Subject: [PATCH 80/85] Update M3DImporter.cpp Fix a memoryleak. --- code/M3D/M3DImporter.cpp | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/code/M3D/M3DImporter.cpp b/code/M3D/M3DImporter.cpp index 1c6cea766..9aee14f75 100644 --- a/code/M3D/M3DImporter.cpp +++ b/code/M3D/M3DImporter.cpp @@ -383,7 +383,13 @@ void M3DImporter::importTextures(const M3DWrapper &m3d) { // individually. In assimp there're per mesh vertex and UV lists, and they must be // indexed simultaneously. void M3DImporter::importMeshes(const M3DWrapper &m3d) { - unsigned int i, j, k, l, numpoly = 3, lastMat = M3D_INDEXMAX; + ASSIMP_LOG_DEBUG_F("M3D: importMeshes ", m3d->numface); + + if (!m3d->numface || !m3d->face || !m3d->numvertex || !m3d->vertex) { + return; + } + + unsigned int i, j, k, l, numpoly = 3, lastMat = M3D_INDEXMAX; std::vector *meshes = new std::vector(); std::vector *faces = nullptr; std::vector *vertices = nullptr; @@ -397,11 +403,6 @@ void M3DImporter::importMeshes(const M3DWrapper &m3d) { ai_assert(m3d); ai_assert(mScene->mRootNode != nullptr); - ASSIMP_LOG_DEBUG_F("M3D: importMeshes ", m3d->numface); - - if (!m3d->numface || !m3d->face || !m3d->numvertex || !m3d->vertex) { - return; - } for (i = 0; i < m3d->numface; i++) { // we must switch mesh if material changes From fc4dd6455a87fc01a9ef734d64718945207b09f2 Mon Sep 17 00:00:00 2001 From: iamAdrianIusca Date: Thu, 13 Feb 2020 00:10:07 +0200 Subject: [PATCH 81/85] minor code improvements for the obj code - make use of range for loops - make use of empty() method for the std::vector - removed unnecessary std::string initialization - use ' ' instead of " " for the find methods (should be "faster") - simplified some function - make use of emplace_back instead of push_back (should be "faster") - other small changes --- code/Obj/ObjFileImporter.cpp | 49 +++++++++++++++------------------ code/Obj/ObjFileMtlImporter.cpp | 4 +-- code/Obj/ObjFileParser.cpp | 36 ++++++++++-------------- code/Obj/ObjFileParser.h | 2 +- 4 files changed, 39 insertions(+), 52 deletions(-) diff --git a/code/Obj/ObjFileImporter.cpp b/code/Obj/ObjFileImporter.cpp index 7e2df0fc5..d73cc5b32 100644 --- a/code/Obj/ObjFileImporter.cpp +++ b/code/Obj/ObjFileImporter.cpp @@ -175,15 +175,15 @@ void ObjFileImporter::CreateDataFromImport(const ObjFile::Model* pModel, aiScene ai_assert(false); } - if (pModel->m_Objects.size() > 0) { + if (!pModel->m_Objects.empty()) { unsigned int meshCount = 0; unsigned int childCount = 0; - for(size_t index = 0; index < pModel->m_Objects.size(); ++index) { - if(pModel->m_Objects[index]) { + for (auto object : pModel->m_Objects) { + if(object) { ++childCount; - meshCount += (unsigned int)pModel->m_Objects[index]->m_Meshes.size(); + meshCount += (unsigned int)object->m_Meshes.size(); } } @@ -365,8 +365,8 @@ aiMesh *ObjFileImporter::createTopology( const ObjFile::Model* pModel, const Obj unsigned int outIndex( 0 ); // Copy all data from all stored meshes - for (size_t index = 0; index < pObjMesh->m_Faces.size(); index++) { - ObjFile::Face* const inp = pObjMesh->m_Faces[ index ]; + for (auto& face : pObjMesh->m_Faces) { + ObjFile::Face* const inp = face; if (inp->m_PrimitiveType == aiPrimitiveType_LINE) { for(size_t i = 0; i < inp->m_vertices.size() - 1; ++i) { aiFace& f = pMesh->mFaces[ outIndex++ ]; @@ -385,7 +385,7 @@ aiMesh *ObjFileImporter::createTopology( const ObjFile::Model* pModel, const Obj } aiFace *pFace = &pMesh->mFaces[ outIndex++ ]; - const unsigned int uiNumIndices = (unsigned int) pObjMesh->m_Faces[ index ]->m_vertices.size(); + const unsigned int uiNumIndices = (unsigned int) face->m_vertices.size(); uiIdxCount += pFace->mNumIndices = (unsigned int) uiNumIndices; if (pFace->mNumIndices > 0) { pFace->mIndices = new unsigned int[ uiNumIndices ]; @@ -446,13 +446,10 @@ void ObjFileImporter::createVertexArray(const ObjFile::Model* pModel, // Copy vertices, normals and textures into aiMesh instance bool normalsok = true, uvok = true; unsigned int newIndex = 0, outIndex = 0; - for ( size_t index=0; index < pObjMesh->m_Faces.size(); index++ ) { - // Get source face - ObjFile::Face *pSourceFace = pObjMesh->m_Faces[ index ]; - + for (auto sourceFace : pObjMesh->m_Faces) { // Copy all index arrays - for ( size_t vertexIndex = 0, outVertexIndex = 0; vertexIndex < pSourceFace->m_vertices.size(); vertexIndex++ ) { - const unsigned int vertex = pSourceFace->m_vertices.at( vertexIndex ); + for (size_t vertexIndex = 0, outVertexIndex = 0; vertexIndex < sourceFace->m_vertices.size(); vertexIndex++ ) { + const unsigned int vertex = sourceFace->m_vertices.at(vertexIndex ); if ( vertex >= pModel->m_Vertices.size() ) { throw DeadlyImportError( "OBJ: vertex index out of range" ); } @@ -464,8 +461,8 @@ void ObjFileImporter::createVertexArray(const ObjFile::Model* pModel, pMesh->mVertices[ newIndex ] = pModel->m_Vertices[ vertex ]; // Copy all normals - if ( normalsok && !pModel->m_Normals.empty() && vertexIndex < pSourceFace->m_normals.size()) { - const unsigned int normal = pSourceFace->m_normals.at( vertexIndex ); + if ( normalsok && !pModel->m_Normals.empty() && vertexIndex < sourceFace->m_normals.size()) { + const unsigned int normal = sourceFace->m_normals.at(vertexIndex ); if ( normal >= pModel->m_Normals.size() ) { normalsok = false; @@ -484,9 +481,9 @@ void ObjFileImporter::createVertexArray(const ObjFile::Model* pModel, } // Copy all texture coordinates - if ( uvok && !pModel->m_TextureCoord.empty() && vertexIndex < pSourceFace->m_texturCoords.size()) + if ( uvok && !pModel->m_TextureCoord.empty() && vertexIndex < sourceFace->m_texturCoords.size()) { - const unsigned int tex = pSourceFace->m_texturCoords.at( vertexIndex ); + const unsigned int tex = sourceFace->m_texturCoords.at(vertexIndex ); if ( tex >= pModel->m_TextureCoord.size() ) { @@ -502,16 +499,16 @@ void ObjFileImporter::createVertexArray(const ObjFile::Model* pModel, // Get destination face aiFace *pDestFace = &pMesh->mFaces[ outIndex ]; - const bool last = ( vertexIndex == pSourceFace->m_vertices.size() - 1 ); - if (pSourceFace->m_PrimitiveType != aiPrimitiveType_LINE || !last) { + const bool last = (vertexIndex == sourceFace->m_vertices.size() - 1 ); + if (sourceFace->m_PrimitiveType != aiPrimitiveType_LINE || !last) { pDestFace->mIndices[ outVertexIndex ] = newIndex; outVertexIndex++; } - if (pSourceFace->m_PrimitiveType == aiPrimitiveType_POINT) { + if (sourceFace->m_PrimitiveType == aiPrimitiveType_POINT) { outIndex++; outVertexIndex = 0; - } else if (pSourceFace->m_PrimitiveType == aiPrimitiveType_LINE) { + } else if (sourceFace->m_PrimitiveType == aiPrimitiveType_LINE) { outVertexIndex = 0; if(!last) @@ -520,7 +517,7 @@ void ObjFileImporter::createVertexArray(const ObjFile::Model* pModel, if (vertexIndex) { if(!last) { pMesh->mVertices[ newIndex+1 ] = pMesh->mVertices[ newIndex ]; - if ( !pSourceFace->m_normals.empty() && !pModel->m_Normals.empty()) { + if (!sourceFace->m_normals.empty() && !pModel->m_Normals.empty()) { pMesh->mNormals[ newIndex+1 ] = pMesh->mNormals[newIndex ]; } if ( !pModel->m_TextureCoord.empty() ) { @@ -563,13 +560,11 @@ void ObjFileImporter::countObjects(const std::vector &rObjects return; iNumMeshes += static_cast( rObjects.size() ); - for (std::vector::const_iterator it = rObjects.begin(); - it != rObjects.end(); - ++it) + for (auto object: rObjects) { - if (!(*it)->m_SubObjects.empty()) + if (!object->m_SubObjects.empty()) { - countObjects((*it)->m_SubObjects, iNumMeshes); + countObjects(object->m_SubObjects, iNumMeshes); } } } diff --git a/code/Obj/ObjFileMtlImporter.cpp b/code/Obj/ObjFileMtlImporter.cpp index cdd60f03c..90c70cda3 100644 --- a/code/Obj/ObjFileMtlImporter.cpp +++ b/code/Obj/ObjFileMtlImporter.cpp @@ -274,7 +274,7 @@ void ObjFileMtlImporter::getFloatValue( ai_real &value ) // Creates a material from loaded data. void ObjFileMtlImporter::createMaterial() { - std::string line( "" ); + std::string line; while( !IsLineEnd( *m_DataIt ) ) { line += *m_DataIt; ++m_DataIt; @@ -282,7 +282,7 @@ void ObjFileMtlImporter::createMaterial() std::vector token; const unsigned int numToken = tokenize( line, token, " \t" ); - std::string name( "" ); + std::string name; if ( numToken == 1 ) { name = AI_DEFAULT_MATERIAL_NAME; } else { diff --git a/code/Obj/ObjFileParser.cpp b/code/Obj/ObjFileParser.cpp index 7e3b11b23..9e1e28ae6 100644 --- a/code/Obj/ObjFileParser.cpp +++ b/code/Obj/ObjFileParser.cpp @@ -96,9 +96,6 @@ ObjFileParser::ObjFileParser( IOStreamBuffer &streamBuffer, const std::str parseFile( streamBuffer ); } -ObjFileParser::~ObjFileParser() { -} - void ObjFileParser::setBuffer( std::vector &buffer ) { m_DataIt = buffer.begin(); m_DataItEnd = buffer.end(); @@ -182,7 +179,7 @@ void ObjFileParser::parseFile( IOStreamBuffer &streamBuffer ) { getNameNoSpace(m_DataIt, m_DataItEnd, name); - size_t nextSpace = name.find(" "); + size_t nextSpace = name.find(' '); if (nextSpace != std::string::npos) name = name.substr(0, nextSpace); @@ -199,7 +196,7 @@ void ObjFileParser::parseFile( IOStreamBuffer &streamBuffer ) { getNameNoSpace(m_DataIt, m_DataItEnd, name); - size_t nextSpace = name.find(" "); + size_t nextSpace = name.find(' '); if (nextSpace != std::string::npos) name = name.substr(0, nextSpace); @@ -274,13 +271,8 @@ static bool isDataDefinitionEnd( const char *tmp ) { static bool isNanOrInf(const char * in) { // Look for "nan" or "inf", case insensitive - if ((in[0] == 'N' || in[0] == 'n') && ASSIMP_strincmp(in, "nan", 3) == 0) { - return true; - } - else if ((in[0] == 'I' || in[0] == 'i') && ASSIMP_strincmp(in, "inf", 3) == 0) { - return true; - } - return false; + return ((in[0] == 'N' || in[0] == 'n') && ASSIMP_strincmp(in, "nan", 3) == 0) || + ((in[0] == 'I' || in[0] == 'i') && ASSIMP_strincmp(in, "inf", 3) == 0); } size_t ObjFileParser::getNumComponentsInDataDefinition() { @@ -341,7 +333,7 @@ size_t ObjFileParser::getTexCoordVector( std::vector &point3d_array if (!std::isfinite(z)) z = 0; - point3d_array.push_back( aiVector3D( x, y, z ) ); + point3d_array.emplace_back( x, y, z ); m_DataIt = skipLine( m_DataIt, m_DataItEnd, m_uiLine ); return numComponents; } @@ -357,7 +349,7 @@ void ObjFileParser::getVector3( std::vector &point3d_array ) { copyNextWord( m_buffer, Buffersize ); z = ( ai_real ) fast_atof( m_buffer ); - point3d_array.push_back( aiVector3D( x, y, z ) ); + point3d_array.emplace_back( x, y, z ); m_DataIt = skipLine( m_DataIt, m_DataItEnd, m_uiLine ); } @@ -378,7 +370,7 @@ void ObjFileParser::getHomogeneousVector3( std::vector &point3d_arra if (w == 0) throw DeadlyImportError("OBJ: Invalid component in homogeneous vector (Division by zero)"); - point3d_array.push_back( aiVector3D( x/w, y/w, z/w ) ); + point3d_array.emplace_back( x/w, y/w, z/w ); m_DataIt = skipLine( m_DataIt, m_DataItEnd, m_uiLine ); } @@ -393,7 +385,7 @@ void ObjFileParser::getTwoVectors3( std::vector &point3d_array_a, st copyNextWord( m_buffer, Buffersize ); z = ( ai_real ) fast_atof( m_buffer ); - point3d_array_a.push_back( aiVector3D( x, y, z ) ); + point3d_array_a.emplace_back( x, y, z ); copyNextWord(m_buffer, Buffersize); x = (ai_real) fast_atof(m_buffer); @@ -404,7 +396,7 @@ void ObjFileParser::getTwoVectors3( std::vector &point3d_array_a, st copyNextWord( m_buffer, Buffersize ); z = ( ai_real ) fast_atof( m_buffer ); - point3d_array_b.push_back( aiVector3D( x, y, z ) ); + point3d_array_b.emplace_back( x, y, z ); m_DataIt = skipLine( m_DataIt, m_DataItEnd, m_uiLine ); } @@ -417,7 +409,7 @@ void ObjFileParser::getVector2( std::vector &point2d_array ) { copyNextWord(m_buffer, Buffersize); y = (ai_real) fast_atof(m_buffer); - point2d_array.push_back(aiVector2D(x, y)); + point2d_array.emplace_back(x, y); m_DataIt = skipLine( m_DataIt, m_DataItEnd, m_uiLine ); } @@ -439,7 +431,7 @@ void ObjFileParser::getFace( aiPrimitiveType type ) { const bool vt = (!m_pModel->m_TextureCoord.empty()); const bool vn = (!m_pModel->m_Normals.empty()); - int iStep = 0, iPos = 0; + int iStep, iPos = 0; while ( m_DataIt != m_DataItEnd ) { iStep = 1; @@ -845,18 +837,18 @@ void ObjFileParser::createMesh( const std::string &meshName ) bool ObjFileParser::needsNewMesh( const std::string &materialName ) { // If no mesh data yet - if(m_pModel->m_pCurrentMesh == 0) + if (m_pModel->m_pCurrentMesh == nullptr) { return true; } bool newMat = false; int matIdx = getMaterialIndex( materialName ); - int curMatIdx = m_pModel->m_pCurrentMesh->m_uiMaterialIndex; + unsigned int curMatIdx = m_pModel->m_pCurrentMesh->m_uiMaterialIndex; if ( curMatIdx != int(ObjFile::Mesh::NoMaterial) && curMatIdx != matIdx // no need create a new mesh if no faces in current // lets say 'usemtl' goes straight after 'g' - && m_pModel->m_pCurrentMesh->m_Faces.size() > 0 ) + && !m_pModel->m_pCurrentMesh->m_Faces.empty() ) { // New material -> only one material per mesh, so we need to create a new // material diff --git a/code/Obj/ObjFileParser.h b/code/Obj/ObjFileParser.h index 124527413..05704c981 100644 --- a/code/Obj/ObjFileParser.h +++ b/code/Obj/ObjFileParser.h @@ -80,7 +80,7 @@ public: /// @brief Constructor with data array. ObjFileParser( IOStreamBuffer &streamBuffer, const std::string &modelName, IOSystem* io, ProgressHandler* progress, const std::string &originalObjFileName); /// @brief Destructor - ~ObjFileParser(); + ~ObjFileParser() = default; /// @brief If you want to load in-core data. void setBuffer( std::vector &buffer ); /// @brief Model getter. From 24cdb1f22184adaabb9155ac303c888843e0a7b7 Mon Sep 17 00:00:00 2001 From: iamAdrianIusca Date: Thu, 13 Feb 2020 00:21:04 +0200 Subject: [PATCH 82/85] revert small change --- code/Obj/ObjFileParser.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/Obj/ObjFileParser.cpp b/code/Obj/ObjFileParser.cpp index 9e1e28ae6..e33d2e028 100644 --- a/code/Obj/ObjFileParser.cpp +++ b/code/Obj/ObjFileParser.cpp @@ -843,7 +843,7 @@ bool ObjFileParser::needsNewMesh( const std::string &materialName ) } bool newMat = false; int matIdx = getMaterialIndex( materialName ); - unsigned int curMatIdx = m_pModel->m_pCurrentMesh->m_uiMaterialIndex; + int curMatIdx = m_pModel->m_pCurrentMesh->m_uiMaterialIndex; if ( curMatIdx != int(ObjFile::Mesh::NoMaterial) && curMatIdx != matIdx // no need create a new mesh if no faces in current From 6f1870681bf5a37ac21a8fd8fb47d753431e2677 Mon Sep 17 00:00:00 2001 From: iamAdrianIusca Date: Thu, 13 Feb 2020 00:27:30 +0200 Subject: [PATCH 83/85] reduced the scope of iStep variable --- code/Obj/ObjFileParser.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/Obj/ObjFileParser.cpp b/code/Obj/ObjFileParser.cpp index e33d2e028..500325993 100644 --- a/code/Obj/ObjFileParser.cpp +++ b/code/Obj/ObjFileParser.cpp @@ -431,9 +431,9 @@ void ObjFileParser::getFace( aiPrimitiveType type ) { const bool vt = (!m_pModel->m_TextureCoord.empty()); const bool vn = (!m_pModel->m_Normals.empty()); - int iStep, iPos = 0; + int iPos = 0; while ( m_DataIt != m_DataItEnd ) { - iStep = 1; + int iStep = 1; if ( IsLineEnd( *m_DataIt ) ) { break; From 25feb77982aefd895769dc0b79a3b50e0f05dae2 Mon Sep 17 00:00:00 2001 From: iamAdrianIusca Date: Thu, 13 Feb 2020 00:38:56 +0200 Subject: [PATCH 84/85] more minor changes --- code/Obj/ObjFileParser.cpp | 3 +++ code/Obj/ObjFileParser.h | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/code/Obj/ObjFileParser.cpp b/code/Obj/ObjFileParser.cpp index 500325993..48129c02c 100644 --- a/code/Obj/ObjFileParser.cpp +++ b/code/Obj/ObjFileParser.cpp @@ -96,6 +96,9 @@ ObjFileParser::ObjFileParser( IOStreamBuffer &streamBuffer, const std::str parseFile( streamBuffer ); } +ObjFileParser::~ObjFileParser() { +} + void ObjFileParser::setBuffer( std::vector &buffer ) { m_DataIt = buffer.begin(); m_DataItEnd = buffer.end(); diff --git a/code/Obj/ObjFileParser.h b/code/Obj/ObjFileParser.h index 05704c981..124527413 100644 --- a/code/Obj/ObjFileParser.h +++ b/code/Obj/ObjFileParser.h @@ -80,7 +80,7 @@ public: /// @brief Constructor with data array. ObjFileParser( IOStreamBuffer &streamBuffer, const std::string &modelName, IOSystem* io, ProgressHandler* progress, const std::string &originalObjFileName); /// @brief Destructor - ~ObjFileParser() = default; + ~ObjFileParser(); /// @brief If you want to load in-core data. void setBuffer( std::vector &buffer ); /// @brief Model getter. From b62bd38c71293f0425a1ac5f163c746ecb7c6c5b Mon Sep 17 00:00:00 2001 From: "Hui.Du" Date: Mon, 10 Feb 2020 02:03:26 +0000 Subject: [PATCH 85/85] Fix: GLTF animation works on RTS not matrix; fix matrix related bug. --- code/glTF/glTFAsset.h | 1 + code/glTF/glTFAssetWriter.inl | 4 +++- code/glTF/glTFExporter.cpp | 20 +++++++--------- code/glTF2/glTF2Asset.h | 1 + code/glTF2/glTF2AssetWriter.inl | 8 +++---- code/glTF2/glTF2Exporter.cpp | 42 +++++++++++++++++++++++---------- 6 files changed, 46 insertions(+), 30 deletions(-) diff --git a/code/glTF/glTFAsset.h b/code/glTF/glTFAsset.h index d0b72703e..b918d456b 100644 --- a/code/glTF/glTFAsset.h +++ b/code/glTF/glTFAsset.h @@ -191,6 +191,7 @@ namespace glTF //! Values for the BufferView::target field enum BufferViewTarget { + BufferViewTarget_NONE = 0, BufferViewTarget_ARRAY_BUFFER = 34962, BufferViewTarget_ELEMENT_ARRAY_BUFFER = 34963 }; diff --git a/code/glTF/glTFAssetWriter.inl b/code/glTF/glTFAssetWriter.inl index 784264488..6abe7e078 100644 --- a/code/glTF/glTFAssetWriter.inl +++ b/code/glTF/glTFAssetWriter.inl @@ -203,7 +203,9 @@ namespace glTF { obj.AddMember("buffer", Value(bv.buffer->id, w.mAl).Move(), w.mAl); obj.AddMember("byteOffset", static_cast(bv.byteOffset), w.mAl); obj.AddMember("byteLength", static_cast(bv.byteLength), w.mAl); - obj.AddMember("target", int(bv.target), w.mAl); + if (bv.target != BufferViewTarget_NONE) { + obj.AddMember("target", int(bv.target), w.mAl); + } } inline void Write(Value& /*obj*/, Camera& /*c*/, AssetWriter& /*w*/) diff --git a/code/glTF/glTFExporter.cpp b/code/glTF/glTFExporter.cpp index 072234891..7c21b738b 100644 --- a/code/glTF/glTFExporter.cpp +++ b/code/glTF/glTFExporter.cpp @@ -160,10 +160,7 @@ static void CopyValue(const aiMatrix4x4& v, glTF::mat4& o) static void CopyValue(const aiMatrix4x4& v, aiMatrix4x4& o) { - o.a1 = v.a1; o.a2 = v.a2; o.a3 = v.a3; o.a4 = v.a4; - o.b1 = v.b1; o.b2 = v.b2; o.b3 = v.b3; o.b4 = v.b4; - o.c1 = v.c1; o.c2 = v.c2; o.c3 = v.c3; o.c4 = v.c4; - o.d1 = v.d1; o.d2 = v.d2; o.d3 = v.d3; o.d4 = v.d4; + memcpy(&o, &v, sizeof(aiMatrix4x4)); } static void IdentityMatrix4(glTF::mat4& o) @@ -230,9 +227,8 @@ inline void SetAccessorRange(ComponentType compType, Ref acc, void* da } } -inline Ref ExportData(Asset& a, std::string& meshName, Ref& buffer, - unsigned int count, void* data, AttribType::Value typeIn, AttribType::Value typeOut, ComponentType compType, bool isIndices = false) -{ +inline Ref ExportData(Asset &a, std::string &meshName, Ref &buffer, + unsigned int count, void *data, AttribType::Value typeIn, AttribType::Value typeOut, ComponentType compType, BufferViewTarget target = BufferViewTarget_NONE) { if (!count || !data) return Ref(); unsigned int numCompsIn = AttribType::GetNumComponents(typeIn); @@ -251,7 +247,7 @@ 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->target = isIndices ? BufferViewTarget_ELEMENT_ARRAY_BUFFER : BufferViewTarget_ARRAY_BUFFER; + bv->target = target; // accessor Ref acc = a.accessors.Create(a.FindUniqueID(meshName, "accessor")); @@ -616,13 +612,13 @@ void glTFExporter::ExportMeshes() // If compression is used then you need parameters of uncompressed region: begin and size. At this step "begin" is stored. if(comp_allow) idx_srcdata_begin = b->byteLength; - Ref v = ExportData(*mAsset, meshId, b, aim->mNumVertices, aim->mVertices, AttribType::VEC3, AttribType::VEC3, ComponentType_FLOAT); + Ref v = ExportData(*mAsset, meshId, b, aim->mNumVertices, aim->mVertices, AttribType::VEC3, AttribType::VEC3, ComponentType_FLOAT, BufferViewTarget_ARRAY_BUFFER); if (v) p.attributes.position.push_back(v); /******************** Normals ********************/ if(comp_allow && (aim->mNormals != 0)) idx_srcdata_normal = b->byteLength;// Store index of normals array. - Ref n = ExportData(*mAsset, meshId, b, aim->mNumVertices, aim->mNormals, AttribType::VEC3, AttribType::VEC3, ComponentType_FLOAT); + Ref n = ExportData(*mAsset, meshId, b, aim->mNumVertices, aim->mNormals, AttribType::VEC3, AttribType::VEC3, ComponentType_FLOAT, BufferViewTarget_ARRAY_BUFFER); if (n) p.attributes.normal.push_back(n); /************** Texture coordinates **************/ @@ -639,7 +635,7 @@ void glTFExporter::ExportMeshes() if(comp_allow) idx_srcdata_tc.push_back(b->byteLength);// Store index of texture coordinates array. - Ref tc = ExportData(*mAsset, meshId, b, aim->mNumVertices, aim->mTextureCoords[i], AttribType::VEC3, type, ComponentType_FLOAT, false); + Ref tc = ExportData(*mAsset, meshId, b, aim->mNumVertices, aim->mTextureCoords[i], AttribType::VEC3, type, ComponentType_FLOAT, BufferViewTarget_ARRAY_BUFFER); if (tc) p.attributes.texcoord.push_back(tc); } } @@ -657,7 +653,7 @@ void glTFExporter::ExportMeshes() } } - p.indices = ExportData(*mAsset, meshId, b, unsigned(indices.size()), &indices[0], AttribType::SCALAR, AttribType::SCALAR, ComponentType_UNSIGNED_SHORT, true); + p.indices = ExportData(*mAsset, meshId, b, unsigned(indices.size()), &indices[0], AttribType::SCALAR, AttribType::SCALAR, ComponentType_UNSIGNED_SHORT, BufferViewTarget_ELEMENT_ARRAY_BUFFER); } switch (aim->mPrimitiveTypes) { diff --git a/code/glTF2/glTF2Asset.h b/code/glTF2/glTF2Asset.h index 53774de7a..d3c1654d0 100644 --- a/code/glTF2/glTF2Asset.h +++ b/code/glTF2/glTF2Asset.h @@ -198,6 +198,7 @@ namespace glTF2 //! Values for the BufferView::target field enum BufferViewTarget { + BufferViewTarget_NONE = 0, BufferViewTarget_ARRAY_BUFFER = 34962, BufferViewTarget_ELEMENT_ARRAY_BUFFER = 34963 }; diff --git a/code/glTF2/glTF2AssetWriter.inl b/code/glTF2/glTF2AssetWriter.inl index 02c14980d..8adc20404 100644 --- a/code/glTF2/glTF2AssetWriter.inl +++ b/code/glTF2/glTF2AssetWriter.inl @@ -176,13 +176,13 @@ namespace glTF2 { valSampler.AddMember("input", s.input->index, w.mAl); switch (s.interpolation) { case Interpolation_LINEAR: - valSampler.AddMember("path", "LINEAR", w.mAl); + valSampler.AddMember("interpolation", "LINEAR", w.mAl); break; case Interpolation_STEP: - valSampler.AddMember("path", "STEP", w.mAl); + valSampler.AddMember("interpolation", "STEP", w.mAl); break; case Interpolation_CUBICSPLINE: - valSampler.AddMember("path", "CUBICSPLINE", w.mAl); + valSampler.AddMember("interpolation", "CUBICSPLINE", w.mAl); break; } valSampler.AddMember("output", s.output->index, w.mAl); @@ -209,7 +209,7 @@ namespace glTF2 { if (bv.byteStride != 0) { obj.AddMember("byteStride", bv.byteStride, w.mAl); } - if (bv.target != 0) { + if (bv.target != BufferViewTarget_NONE) { obj.AddMember("target", int(bv.target), w.mAl); } } diff --git a/code/glTF2/glTF2Exporter.cpp b/code/glTF2/glTF2Exporter.cpp index 1bfee4491..35dac57e6 100644 --- a/code/glTF2/glTF2Exporter.cpp +++ b/code/glTF2/glTF2Exporter.cpp @@ -141,10 +141,7 @@ static void CopyValue(const aiMatrix4x4& v, mat4& o) { } static void CopyValue(const aiMatrix4x4& v, aiMatrix4x4& o) { - o.a1 = v.a1; o.a2 = v.a2; o.a3 = v.a3; o.a4 = v.a4; - o.b1 = v.b1; o.b2 = v.b2; o.b3 = v.b3; o.b4 = v.b4; - o.c1 = v.c1; o.c2 = v.c2; o.c3 = v.c3; o.c4 = v.c4; - o.d1 = v.d1; o.d2 = v.d2; o.d3 = v.d3; o.d4 = v.d4; + memcpy(&o, &v, sizeof(aiMatrix4x4)); } static void IdentityMatrix4(mat4& o) { @@ -211,7 +208,7 @@ inline void SetAccessorRange(ComponentType compType, Ref acc, void* da } inline Ref ExportData(Asset& a, std::string& meshName, Ref& buffer, - size_t count, void* data, AttribType::Value typeIn, AttribType::Value typeOut, ComponentType compType, bool isIndices = false) + size_t count, void* data, AttribType::Value typeIn, AttribType::Value typeOut, ComponentType compType, BufferViewTarget target = BufferViewTarget_NONE) { if (!count || !data) { return Ref(); @@ -234,7 +231,7 @@ inline Ref ExportData(Asset& a, std::string& meshName, Ref& bu bv->byteOffset = 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; + bv->target = target; // accessor Ref acc = a.accessors.Create(a.FindUniqueID(meshName, "accessor")); @@ -747,7 +744,7 @@ void glTF2Exporter::ExportMeshes() p.material = mAsset->materials.Get(aim->mMaterialIndex); /******************* Vertices ********************/ - Ref v = ExportData(*mAsset, meshId, b, aim->mNumVertices, aim->mVertices, AttribType::VEC3, AttribType::VEC3, ComponentType_FLOAT); + Ref v = ExportData(*mAsset, meshId, b, aim->mNumVertices, aim->mVertices, AttribType::VEC3, AttribType::VEC3, ComponentType_FLOAT, BufferViewTarget_ARRAY_BUFFER); if (v) p.attributes.position.push_back(v); /******************** Normals ********************/ @@ -758,7 +755,7 @@ void glTF2Exporter::ExportMeshes() } } - Ref n = ExportData(*mAsset, meshId, b, aim->mNumVertices, aim->mNormals, AttribType::VEC3, AttribType::VEC3, ComponentType_FLOAT); + Ref n = ExportData(*mAsset, meshId, b, aim->mNumVertices, aim->mNormals, AttribType::VEC3, AttribType::VEC3, ComponentType_FLOAT, BufferViewTarget_ARRAY_BUFFER); if (n) p.attributes.normal.push_back(n); /************** Texture coordinates **************/ @@ -776,14 +773,14 @@ void glTF2Exporter::ExportMeshes() if (aim->mNumUVComponents[i] > 0) { AttribType::Value type = (aim->mNumUVComponents[i] == 2) ? AttribType::VEC2 : AttribType::VEC3; - Ref tc = ExportData(*mAsset, meshId, b, aim->mNumVertices, aim->mTextureCoords[i], AttribType::VEC3, type, ComponentType_FLOAT, false); + Ref tc = ExportData(*mAsset, meshId, b, aim->mNumVertices, aim->mTextureCoords[i], AttribType::VEC3, type, ComponentType_FLOAT, BufferViewTarget_ARRAY_BUFFER); if (tc) p.attributes.texcoord.push_back(tc); } } /*************** Vertex colors ****************/ for (unsigned int indexColorChannel = 0; indexColorChannel < aim->GetNumColorChannels(); ++indexColorChannel) { - Ref c = ExportData(*mAsset, meshId, b, aim->mNumVertices, aim->mColors[indexColorChannel], AttribType::VEC4, AttribType::VEC4, ComponentType_FLOAT, false); + Ref c = ExportData(*mAsset, meshId, b, aim->mNumVertices, aim->mColors[indexColorChannel], AttribType::VEC4, AttribType::VEC4, ComponentType_FLOAT, BufferViewTarget_ARRAY_BUFFER); if (c) p.attributes.color.push_back(c); } @@ -799,7 +796,7 @@ void glTF2Exporter::ExportMeshes() } } - p.indices = ExportData(*mAsset, meshId, b, indices.size(), &indices[0], AttribType::SCALAR, AttribType::SCALAR, ComponentType_UNSIGNED_INT, true); + p.indices = ExportData(*mAsset, meshId, b, indices.size(), &indices[0], AttribType::SCALAR, AttribType::SCALAR, ComponentType_UNSIGNED_INT, BufferViewTarget_ELEMENT_ARRAY_BUFFER); } switch (aim->mPrimitiveTypes) { @@ -956,8 +953,27 @@ unsigned int glTF2Exporter::ExportNode(const aiNode* n, Ref& parent) node->name = name; if (!n->mTransformation.IsIdentity()) { - node->matrix.isPresent = true; - CopyValue(n->mTransformation, node->matrix.value); + if (mScene->mNumAnimations > 0) { + aiQuaternion quaternion; + n->mTransformation.Decompose(*reinterpret_cast(&node->scale.value), quaternion, *reinterpret_cast(&node->translation.value)); + + aiVector3D vector(static_cast(1.0f), static_cast(1.0f), static_cast(1.0f)); + if (!reinterpret_cast(&node->scale.value)->Equal(vector)) { + node->scale.isPresent = true; + } + if (!reinterpret_cast(&node->translation.value)->Equal(vector)) { + node->translation.isPresent = true; + } + node->rotation.isPresent = true; + node->rotation.value[0] = quaternion.x; + node->rotation.value[1] = quaternion.y; + node->rotation.value[2] = quaternion.z; + node->rotation.value[3] = quaternion.w; + node->matrix.isPresent = false; + } else { + node->matrix.isPresent = true; + CopyValue(n->mTransformation, node->matrix.value); + } } for (unsigned int i = 0; i < n->mNumMeshes; ++i) {