From 5c99d6a864f9e2fc43960eb3113f212f32c7cb21 Mon Sep 17 00:00:00 2001 From: iamAdrianIusca Date: Sat, 15 Feb 2020 23:29:04 +0200 Subject: [PATCH 1/8] very small changes - FIND_PACKAGE(DirectX) is already used in the samples and assimp tool cmake files - so is not needed in the main cmake fil - other small changes --- CMakeLists.txt | 4 ---- code/Obj/ObjFileParser.cpp | 17 ++++++++--------- code/Obj/ObjFileParser.h | 4 ++-- 3 files changed, 10 insertions(+), 15 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 38ebf3480..7be4f6d5f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -437,10 +437,6 @@ ELSE(HUNTER_ENABLED) DESTINATION "${ASSIMP_LIB_INSTALL_DIR}/cmake/assimp-${ASSIMP_VERSION_MAJOR}.${ASSIMP_VERSION_MINOR}" COMPONENT ${LIBASSIMP-DEV_COMPONENT}) ENDIF(HUNTER_ENABLED) -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) ENDIF( BUILD_DOCS ) diff --git a/code/Obj/ObjFileParser.cpp b/code/Obj/ObjFileParser.cpp index 48129c02c..8b1572067 100644 --- a/code/Obj/ObjFileParser.cpp +++ b/code/Obj/ObjFileParser.cpp @@ -53,6 +53,8 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #include #include #include +#include +#include namespace Assimp { @@ -71,19 +73,19 @@ ObjFileParser::ObjFileParser() ObjFileParser::ObjFileParser( IOStreamBuffer &streamBuffer, const std::string &modelName, IOSystem *io, ProgressHandler* progress, - const std::string &originalObjFileName) : + std::string originalObjFileName) : m_DataIt(), m_DataItEnd(), m_pModel(nullptr), m_uiLine(0), - m_pIO( io ), + m_pIO(io), m_progress(progress), - m_originalObjFileName(originalObjFileName) + m_originalObjFileName(std::move(originalObjFileName)) { - std::fill_n(m_buffer,Buffersize,0); + std::fill_n(m_buffer, Buffersize,0); // Create the model instance to store all the data - m_pModel.reset(new ObjFile::Model()); + m_pModel = std::make_unique(); m_pModel->m_ModelName = modelName; // create default material and store it @@ -96,9 +98,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(); @@ -128,7 +127,7 @@ void ObjFileParser::parseFile( IOStreamBuffer &streamBuffer ) { processed = static_cast(filePos); lastFilePos = filePos; progressCounter++; - m_progress->UpdateFileRead( processed, progressTotal ); + m_progress->UpdateFileRead(processed, progressTotal); } // parse line diff --git a/code/Obj/ObjFileParser.h b/code/Obj/ObjFileParser.h index 124527413..9bbee66dd 100644 --- a/code/Obj/ObjFileParser.h +++ b/code/Obj/ObjFileParser.h @@ -78,9 +78,9 @@ public: /// @brief The default constructor. ObjFileParser(); /// @brief Constructor with data array. - ObjFileParser( IOStreamBuffer &streamBuffer, const std::string &modelName, IOSystem* io, ProgressHandler* progress, const std::string &originalObjFileName); + ObjFileParser(IOStreamBuffer &streamBuffer, const std::string &modelName, IOSystem* io, ProgressHandler* progress, 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 a65bac27e9ee0dca6c4178f5134b1bb10ce7ef91 Mon Sep 17 00:00:00 2001 From: iamAdrianIusca Date: Tue, 18 Feb 2020 18:01:53 +0200 Subject: [PATCH 2/8] fixed the make_unique --- 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 8b1572067..bfddb8461 100644 --- a/code/Obj/ObjFileParser.cpp +++ b/code/Obj/ObjFileParser.cpp @@ -85,7 +85,7 @@ ObjFileParser::ObjFileParser( IOStreamBuffer &streamBuffer, const std::str std::fill_n(m_buffer, Buffersize,0); // Create the model instance to store all the data - m_pModel = std::make_unique(); + m_pModel.reset(new ObjFile::Model()); m_pModel->m_ModelName = modelName; // create default material and store it From d0922230a93c2a9bac8676cf7f2f7d96f8aa6deb Mon Sep 17 00:00:00 2001 From: iamAdrianIusca Date: Tue, 18 Feb 2020 18:24:52 +0200 Subject: [PATCH 3/8] fixed the = default on the destructor --- code/Obj/ObjFileParser.cpp | 4 ++++ code/Obj/ObjFileParser.h | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/code/Obj/ObjFileParser.cpp b/code/Obj/ObjFileParser.cpp index bfddb8461..7ba2216ae 100644 --- a/code/Obj/ObjFileParser.cpp +++ b/code/Obj/ObjFileParser.cpp @@ -98,6 +98,10 @@ 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 9bbee66dd..f0f5a2dc1 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, 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 016c0a866557b7a22e6d47c9c89cc13939f121ce Mon Sep 17 00:00:00 2001 From: iamAdrianIusca Date: Tue, 18 Feb 2020 18:42:59 +0200 Subject: [PATCH 4/8] small changes --- code/Common/BaseImporter.cpp | 7 +++---- code/Common/Importer.cpp | 8 ++++---- include/assimp/Importer.hpp | 4 ++-- 3 files changed, 9 insertions(+), 10 deletions(-) diff --git a/code/Common/BaseImporter.cpp b/code/Common/BaseImporter.cpp index 660a6a965..8d7b029ba 100644 --- a/code/Common/BaseImporter.cpp +++ b/code/Common/BaseImporter.cpp @@ -191,7 +191,7 @@ void BaseImporter::GetExtensionList(std::set& extensions) { } std::unique_ptr pStream (pIOHandler->Open(pFile)); - if (pStream.get() ) { + if (pStream) { // read 200 characters from the file std::unique_ptr _buffer (new char[searchBytes+1 /* for the '\0' */]); char *buffer( _buffer.get() ); @@ -283,7 +283,6 @@ std::string BaseImporter::GetExtension( const std::string& file ) { return ""; } - // thanks to Andy Maloney for the hint std::string ret = file.substr( pos + 1 ); std::transform( ret.begin(), ret.end(), ret.begin(), ToLower); @@ -309,7 +308,7 @@ std::string BaseImporter::GetExtension( const std::string& file ) { }; magic = reinterpret_cast(_magic); std::unique_ptr pStream (pIOHandler->Open(pFile)); - if (pStream.get() ) { + if (pStream) { // skip to offset pStream->Seek(offset,aiOrigin_SET); @@ -603,7 +602,7 @@ unsigned int BatchLoader::AddLoadRequest(const std::string& file, } // no, we don't have it. So add it to the queue ... - m_data->requests.push_back(LoadRequest(file,steps,map, m_data->next_id)); + m_data->requests.emplace_back(file, steps, map, m_data->next_id); return m_data->next_id++; } diff --git a/code/Common/Importer.cpp b/code/Common/Importer.cpp index 5601298f1..a59ec9812 100644 --- a/code/Common/Importer.cpp +++ b/code/Common/Importer.cpp @@ -1071,7 +1071,7 @@ ai_real Importer::GetPropertyFloat(const char* szName, ai_real iErrorReturn /*= // ------------------------------------------------------------------------------------------------ // Get a configuration property -const std::string Importer::GetPropertyString(const char* szName, const std::string& iErrorReturn /*= ""*/) const { +std::string Importer::GetPropertyString(const char* szName, const std::string& iErrorReturn /*= ""*/) const { ai_assert(nullptr != pimpl); return GetGenericProperty(pimpl->mStringProperties,szName,iErrorReturn); @@ -1079,7 +1079,7 @@ const std::string Importer::GetPropertyString(const char* szName, const std::str // ------------------------------------------------------------------------------------------------ // Get a configuration property -const aiMatrix4x4 Importer::GetPropertyMatrix(const char* szName, const aiMatrix4x4& iErrorReturn /*= aiMatrix4x4()*/) const { +aiMatrix4x4 Importer::GetPropertyMatrix(const char* szName, const aiMatrix4x4& iErrorReturn /*= aiMatrix4x4()*/) const { ai_assert(nullptr != pimpl); return GetGenericProperty(pimpl->mMatrixProperties,szName,iErrorReturn); @@ -1110,10 +1110,9 @@ void Importer::GetMemoryRequirements(aiMemoryInfo& in) const { aiScene* mScene = pimpl->mScene; // return if we have no scene loaded - if (!pimpl->mScene) + if (!mScene) return; - in.total = sizeof(aiScene); // add all meshes @@ -1202,5 +1201,6 @@ void Importer::GetMemoryRequirements(aiMemoryInfo& in) const { in.materials += pc->mProperties[a]->mDataLength; } } + in.total += in.materials; } diff --git a/include/assimp/Importer.hpp b/include/assimp/Importer.hpp index 7ec4f519c..df52471a9 100644 --- a/include/assimp/Importer.hpp +++ b/include/assimp/Importer.hpp @@ -285,7 +285,7 @@ public: * The return value remains valid until the property is modified. * @see GetPropertyInteger() */ - const std::string GetPropertyString(const char* szName, + std::string GetPropertyString(const char* szName, const std::string& sErrorReturn = "") const; // ------------------------------------------------------------------- @@ -294,7 +294,7 @@ public: * The return value remains valid until the property is modified. * @see GetPropertyInteger() */ - const aiMatrix4x4 GetPropertyMatrix(const char* szName, + aiMatrix4x4 GetPropertyMatrix(const char* szName, const aiMatrix4x4& sErrorReturn = aiMatrix4x4()) const; // ------------------------------------------------------------------- From bf85fc1386fa06c184be5874d0a54cb11828347e Mon Sep 17 00:00:00 2001 From: iamAdrianIusca Date: Tue, 18 Feb 2020 18:50:48 +0200 Subject: [PATCH 5/8] small changes --- code/Obj/ObjFileData.h | 15 ++++----------- 1 file changed, 4 insertions(+), 11 deletions(-) diff --git a/code/Obj/ObjFileData.h b/code/Obj/ObjFileData.h index 985a49a42..d0ea8d507 100644 --- a/code/Obj/ObjFileData.h +++ b/code/Obj/ObjFileData.h @@ -110,10 +110,7 @@ struct Object { std::vector m_Meshes; //! \brief Default constructor - Object() - : m_strObjName("") { - // empty - } + Object() = default; //! \brief Destructor ~Object() { @@ -191,16 +188,12 @@ struct Material { , illumination_model (1) , ior ( ai_real( 1.0 ) ) , transparent( ai_real( 1.0), ai_real (1.0), ai_real(1.0)) { - // empty - for (size_t i = 0; i < TextureTypeCount; ++i) { - clamp[ i ] = false; - } + + std::fill_n(clamp, TextureTypeCount,false); } // Destructor - ~Material() { - // empty - } + ~Material() = default; }; // ------------------------------------------------------------------------------------------------ From ad52c5c5f6ac771124c3bd3585f24daa61fbbdbd Mon Sep 17 00:00:00 2001 From: iamAdrianIusca Date: Tue, 18 Feb 2020 18:56:09 +0200 Subject: [PATCH 6/8] .clear in destructor is redundant --- code/Common/ZipArchiveIOSystem.cpp | 2 -- code/Obj/ObjFileData.h | 2 +- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/code/Common/ZipArchiveIOSystem.cpp b/code/Common/ZipArchiveIOSystem.cpp index e83d3e50d..8d00da912 100644 --- a/code/Common/ZipArchiveIOSystem.cpp +++ b/code/Common/ZipArchiveIOSystem.cpp @@ -343,8 +343,6 @@ namespace Assimp { } ZipArchiveIOSystem::Implement::~Implement() { - m_ArchiveMap.clear(); - if (m_ZipFileHandle != nullptr) { unzClose(m_ZipFileHandle); m_ZipFileHandle = nullptr; diff --git a/code/Obj/ObjFileData.h b/code/Obj/ObjFileData.h index d0ea8d507..33184ce82 100644 --- a/code/Obj/ObjFileData.h +++ b/code/Obj/ObjFileData.h @@ -189,7 +189,7 @@ struct Material { , ior ( ai_real( 1.0 ) ) , transparent( ai_real( 1.0), ai_real (1.0), ai_real(1.0)) { - std::fill_n(clamp, TextureTypeCount,false); + std::fill_n(clamp, TextureTypeCount, false); } // Destructor From a5524ffcd9befe3f008e27d65b6de620b897c49c Mon Sep 17 00:00:00 2001 From: iamAdrianIusca Date: Tue, 18 Feb 2020 19:02:14 +0200 Subject: [PATCH 7/8] more changes --- code/PostProcessing/TextureTransform.cpp | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/code/PostProcessing/TextureTransform.cpp b/code/PostProcessing/TextureTransform.cpp index cebbd8042..bf60e2970 100644 --- a/code/PostProcessing/TextureTransform.cpp +++ b/code/PostProcessing/TextureTransform.cpp @@ -92,9 +92,8 @@ void TextureTransformStep::PreProcessUVTransform(STransformVecInfo& info) * are applied is - as always - scaling, rotation, translation. */ - char szTemp[512]; - int rounded = 0; - + int rounded; + char szTemp[512]; /* Optimize the rotation angle. That's slightly difficult as * we have an inprecise floating-point number (when comparing @@ -185,7 +184,6 @@ void TextureTransformStep::PreProcessUVTransform(STransformVecInfo& info) info.mTranslation.y = out; } } - return; } // ------------------------------------------------------------------------------------------------ @@ -428,7 +426,7 @@ void TextureTransformStep::Execute( aiScene* pScene) // at the end of the list bool ref[AI_MAX_NUMBER_OF_TEXTURECOORDS]; for (unsigned int n = 0; n < AI_MAX_NUMBER_OF_TEXTURECOORDS;++n) - ref[n] = (!mesh->mTextureCoords[n] ? true : false); + ref[n] = !mesh->mTextureCoords[n]; for (it = trafo.begin();it != trafo.end(); ++it) ref[(*it).uvIndex] = true; From 4de0237167dd8019838cb28a5622bba522f74842 Mon Sep 17 00:00:00 2001 From: iamAdrianIusca Date: Tue, 18 Feb 2020 21:55:35 +0200 Subject: [PATCH 8/8] small fix --- code/Obj/ObjFileData.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/Obj/ObjFileData.h b/code/Obj/ObjFileData.h index 33184ce82..298d1e1b7 100644 --- a/code/Obj/ObjFileData.h +++ b/code/Obj/ObjFileData.h @@ -189,7 +189,7 @@ struct Material { , ior ( ai_real( 1.0 ) ) , transparent( ai_real( 1.0), ai_real (1.0), ai_real(1.0)) { - std::fill_n(clamp, TextureTypeCount, false); + std::fill_n(clamp, static_cast(TextureTypeCount), false); } // Destructor