From 957abaa15adfccda8c1b78a41c062e1cd4750320 Mon Sep 17 00:00:00 2001 From: Marc-Antoine Lortie Date: Wed, 26 Feb 2020 08:00:49 -0500 Subject: [PATCH 1/4] Raised minimum CMake version to 3.0 for assimp_cmd and assimp_view. This is a follow-up to PR #3024, in which I explained that I would then change the version of CMake to 3.0 in several files to match the changes that were originally made by OP in PR #3008. The minimum CMake version have been raised to 3.0 in both assimp_cmd and assimp_view projects. The same CMake configuration as in PR #3024 was used. All projects from PR #3024 are found in the solution with the current changes. All projects built. All tests were run. --- tools/assimp_cmd/CMakeLists.txt | 2 +- tools/assimp_view/CMakeLists.txt | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/tools/assimp_cmd/CMakeLists.txt b/tools/assimp_cmd/CMakeLists.txt index 848b8f81c..d46d09c2b 100644 --- a/tools/assimp_cmd/CMakeLists.txt +++ b/tools/assimp_cmd/CMakeLists.txt @@ -37,7 +37,7 @@ # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. # #---------------------------------------------------------------------- -cmake_minimum_required( VERSION 2.6 ) +cmake_minimum_required( VERSION 3.0 ) INCLUDE_DIRECTORIES( ${Assimp_SOURCE_DIR}/include diff --git a/tools/assimp_view/CMakeLists.txt b/tools/assimp_view/CMakeLists.txt index a77f13041..96b21db40 100644 --- a/tools/assimp_view/CMakeLists.txt +++ b/tools/assimp_view/CMakeLists.txt @@ -37,7 +37,7 @@ # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. # #---------------------------------------------------------------------- -cmake_minimum_required( VERSION 2.6 ) +cmake_minimum_required( VERSION 3.0 ) FIND_PACKAGE(DirectX REQUIRED) From f305f105512237d7b44ec6c28492ac943e47fbcc Mon Sep 17 00:00:00 2001 From: Shawn Presser Date: Mon, 9 Mar 2020 00:05:17 -0700 Subject: [PATCH 2/4] Only try to initialize members whose name starts with 'm' followed by an uppercase character --- port/PyAssimp/pyassimp/core.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/port/PyAssimp/pyassimp/core.py b/port/PyAssimp/pyassimp/core.py index c346e2652..85cfe8233 100644 --- a/port/PyAssimp/pyassimp/core.py +++ b/port/PyAssimp/pyassimp/core.py @@ -138,7 +138,7 @@ def _init(self, target = None, parent = None): logger.debug(str(self) + ": Added array " + str(getattr(target, name)) + " as self." + name.lower()) continue - if m.startswith('m'): + if m.startswith('m') and len(m) > 1 and m[1].upper() == m[1]: if name == "parent": setattr(target, name, parent) From bb3db0ebaffc6b76de256e597ec1d1e4d2a6663f Mon Sep 17 00:00:00 2001 From: kimkulling Date: Mon, 9 Mar 2020 10:51:26 +0100 Subject: [PATCH 3/4] closes https://github.com/assimp/assimp/issues/2954: upgrade to latest greatest. --- contrib/zip/CMakeLists.txt | 8 ++---- contrib/zip/README.md | 51 +++++++++++++++++++++++++++++++-- contrib/zip/src/zip.c | 17 ++++++++++- contrib/zip/src/zip.h | 13 ++++++++- contrib/zip/test/CMakeLists.txt | 5 ---- contrib/zip/test/test.c | 4 ++- 6 files changed, 81 insertions(+), 17 deletions(-) diff --git a/contrib/zip/CMakeLists.txt b/contrib/zip/CMakeLists.txt index 77916d2e1..f194649ed 100644 --- a/contrib/zip/CMakeLists.txt +++ b/contrib/zip/CMakeLists.txt @@ -2,7 +2,7 @@ cmake_minimum_required(VERSION 3.0) project(zip LANGUAGES C - VERSION "0.1.15") + VERSION "0.1.18") set(CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/cmake" ${CMAKE_MODULE_PATH}) option(CMAKE_DISABLE_TESTING "Disable test creation" OFF) @@ -16,10 +16,6 @@ elseif ("${CMAKE_C_COMPILER_ID}" STREQUAL "GNU" OR "${CMAKE_C_COMPILER_ID}" STREQUAL "Clang" OR "${CMAKE_C_COMPILER_ID}" STREQUAL "AppleClang") set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=c99 -Wall -Wextra -Werror -pedantic") - if(ENABLE_COVERAGE) - set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -g -O0 -fprofile-arcs -ftest-coverage") - set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} --coverage") - endif() endif (MSVC) # zip @@ -35,7 +31,7 @@ if (NOT CMAKE_DISABLE_TESTING) enable_testing() add_subdirectory(test) find_package(Sanitizers) - add_sanitizers(${PROJECT_NAME} ${test_out} ${test_miniz_out}) + add_sanitizers(${PROJECT_NAME} ${test_out}) endif() #### diff --git a/contrib/zip/README.md b/contrib/zip/README.md index 14eb9a34c..bdd0822b6 100644 --- a/contrib/zip/README.md +++ b/contrib/zip/README.md @@ -1,10 +1,8 @@ ### A portable (OSX/Linux/Windows), simple zip library written in C This is done by hacking awesome [miniz](https://code.google.com/p/miniz) library and layering functions on top of the miniz v1.15 API. -[![Windows](https://ci.appveyor.com/api/projects/status/bph8dr3jacgmjv32/branch/master?svg=true&label=windows)](https://ci.appveyor.com/project/kuba--/zip) -[![Linux](https://travis-ci.org/kuba--/zip.svg?branch=master&label=linux%2fosx)](https://travis-ci.org/kuba--/zip) +[![Build](https://github.com/kuba--/zip/workflows/build/badge.svg)](https://github.com/kuba--/zip/actions?query=workflow%3Abuild) [![Version](https://badge.fury.io/gh/kuba--%2Fzip.svg)](https://github.com/kuba--/zip/releases) -[![Codecov](https://codecov.io/gh/kuba--/zip/branch/master/graph/badge.svg)](https://codecov.io/gh/kuba--/zip) # The Idea @@ -213,6 +211,53 @@ func main() { } ``` +### Rust (ffi) +```rust +extern crate libc; +use std::ffi::CString; + +#[repr(C)] +pub struct Zip { + _private: [u8; 0], +} + +#[link(name = "zip")] +extern "C" { + fn zip_open(path: *const libc::c_char, level: libc::c_int, mode: libc::c_char) -> *mut Zip; + fn zip_close(zip: *mut Zip) -> libc::c_void; + + fn zip_entry_open(zip: *mut Zip, entryname: *const libc::c_char) -> libc::c_int; + fn zip_entry_close(zip: *mut Zip) -> libc::c_int; + fn zip_entry_write( + zip: *mut Zip, + buf: *const libc::c_void, + bufsize: libc::size_t, + ) -> libc::c_int; +} + +fn main() { + let path = CString::new("/tmp/test.zip").unwrap(); + let mode: libc::c_char = 'w' as libc::c_char; + + let entryname = CString::new("test.txt").unwrap(); + let content = "test content\0"; + + unsafe { + let zip: *mut Zip = zip_open(path.as_ptr(), 5, mode); + { + zip_entry_open(zip, entryname.as_ptr()); + { + let buf = content.as_ptr() as *const libc::c_void; + let bufsize = content.len() as libc::size_t; + zip_entry_write(zip, buf, bufsize); + } + zip_entry_close(zip); + } + zip_close(zip); + } +} +``` + ### Ruby (ffi) Install _ffi_ gem. ```shell diff --git a/contrib/zip/src/zip.c b/contrib/zip/src/zip.c index 1abcfd8fd..3b2821e6a 100644 --- a/contrib/zip/src/zip.c +++ b/contrib/zip/src/zip.c @@ -222,6 +222,20 @@ void zip_close(struct zip_t *zip) { } } +int zip_is64(struct zip_t *zip) { + if (!zip) { + // zip_t handler is not initialized + return -1; + } + + if (!zip->archive.m_pState) { + // zip state is not initialized + return -1; + } + + return (int)zip->archive.m_pState->m_zip64; +} + int zip_entry_open(struct zip_t *zip, const char *entryname) { size_t entrylen = 0; mz_zip_archive *pzip = NULL; @@ -794,7 +808,8 @@ int zip_create(const char *zipname, const char *filenames[], size_t len) { if (MZ_FILE_STAT(name, &file_stat) != 0) { // problem getting information - check errno - return -1; + status = -1; + break; } if ((file_stat.st_mode & 0200) == 0) { diff --git a/contrib/zip/src/zip.h b/contrib/zip/src/zip.h index a48d64d6d..cd3ab5cd0 100644 --- a/contrib/zip/src/zip.h +++ b/contrib/zip/src/zip.h @@ -21,7 +21,7 @@ extern "C" { #if !defined(_SSIZE_T_DEFINED) && !defined(_SSIZE_T_DEFINED_) && \ !defined(__DEFINED_ssize_t) && !defined(__ssize_t_defined) && \ - !defined(_SSIZE_T) && !defined(_SSIZE_T_) + !defined(_SSIZE_T) && !defined(_SSIZE_T_) && !defined(_SSIZE_T_DECLARED) // 64-bit Windows is the only mainstream platform // where sizeof(long) != sizeof(void*) @@ -37,6 +37,7 @@ typedef long ssize_t; /* byte count or error */ #define __ssize_t_defined #define _SSIZE_T #define _SSIZE_T_ +#define _SSIZE_T_DECLARED #endif @@ -90,6 +91,16 @@ extern struct zip_t *zip_open(const char *zipname, int level, char mode); */ extern void zip_close(struct zip_t *zip); +/** + * Determines if the archive has a zip64 end of central directory headers. + * + * @param zip zip archive handler. + * + * @return the return code - 1 (true), 0 (false), negative number (< 0) on + * error. + */ +extern int zip_is64(struct zip_t *zip); + /** * Opens an entry by name in the zip archive. * diff --git a/contrib/zip/test/CMakeLists.txt b/contrib/zip/test/CMakeLists.txt index cc060b00f..122411585 100644 --- a/contrib/zip/test/CMakeLists.txt +++ b/contrib/zip/test/CMakeLists.txt @@ -2,15 +2,10 @@ cmake_minimum_required(VERSION 2.8) # test set(test_out test.out) -set(test_miniz_out test_miniz.out) add_executable(${test_out} test.c) target_link_libraries(${test_out} zip) -add_executable(${test_miniz_out} test_miniz.c) -target_link_libraries(${test_miniz_out} zip) add_test(NAME ${test_out} COMMAND ${test_out}) -add_test(NAME ${test_miniz_out} COMMAND ${test_miniz_out}) set(test_out ${test_out} PARENT_SCOPE) -set(test_miniz_out ${test_miniz_out} PARENT_SCOPE) diff --git a/contrib/zip/test/test.c b/contrib/zip/test/test.c index a9b2ddab1..9cc2248ac 100644 --- a/contrib/zip/test/test.c +++ b/contrib/zip/test/test.c @@ -47,7 +47,7 @@ static void test_write(void) { assert(CRC32DATA1 == zip_entry_crc32(zip)); ++total_entries; assert(0 == zip_entry_close(zip)); - + assert(0 == zip_is64(zip)); zip_close(zip); } @@ -92,6 +92,7 @@ static void test_read(void) { size_t buftmp; struct zip_t *zip = zip_open(ZIPNAME, 0, 'r'); assert(zip != NULL); + assert(0 == zip_is64(zip)); assert(0 == zip_entry_open(zip, "test\\test-1.txt")); assert(strlen(TESTDATA1) == zip_entry_size(zip)); @@ -310,6 +311,7 @@ static void test_fwrite(void) { assert(0 == zip_entry_open(zip, WFILE)); assert(0 == zip_entry_fwrite(zip, WFILE)); assert(0 == zip_entry_close(zip)); + assert(0 == zip_is64(zip)); zip_close(zip); remove(WFILE); From f3b6b78d4d0a758380ca1c256c21fcd90cc20987 Mon Sep 17 00:00:00 2001 From: kimkulling Date: Mon, 9 Mar 2020 10:55:32 +0100 Subject: [PATCH 4/4] small refactorings. --- CMakeLists.txt | 2 +- code/CMakeLists.txt | 4 +- code/Common/BaseProcess.cpp | 39 +++--- code/Common/BaseProcess.h | 129 ++++++------------ code/Common/PostStepRegistry.cpp | 2 +- .../SplitByBoneCountProcess.cpp | 0 .../SplitByBoneCountProcess.h | 2 +- include/assimp/GenericProperty.h | 39 +++--- 8 files changed, 83 insertions(+), 134 deletions(-) rename code/{Common => PostProcessing}/SplitByBoneCountProcess.cpp (100%) rename code/{Common => PostProcessing}/SplitByBoneCountProcess.h (99%) diff --git a/CMakeLists.txt b/CMakeLists.txt index 0a7f8eeae..16b1f9620 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -589,7 +589,7 @@ IF ( ASSIMP_BUILD_ASSIMP_TOOLS ) ADD_SUBDIRECTORY( tools/assimp_view/ ) ENDIF () ENDIF () - # Te command line tool + # The command line tool ADD_SUBDIRECTORY( tools/assimp_cmd/ ) ENDIF () diff --git a/code/CMakeLists.txt b/code/CMakeLists.txt index eec66a305..0dff5d9e4 100644 --- a/code/CMakeLists.txt +++ b/code/CMakeLists.txt @@ -185,8 +185,6 @@ SET( Common_SRCS Common/ScenePreprocessor.cpp Common/ScenePreprocessor.h Common/SkeletonMeshBuilder.cpp - Common/SplitByBoneCountProcess.cpp - Common/SplitByBoneCountProcess.h Common/StandardShapes.cpp Common/TargetAnimation.cpp Common/TargetAnimation.h @@ -737,6 +735,8 @@ SET( PostProcessing_SRCS PostProcessing/ArmaturePopulate.h PostProcessing/GenBoundingBoxesProcess.cpp PostProcessing/GenBoundingBoxesProcess.h + PostProcessing/SplitByBoneCountProcess.cpp + PostProcessing/SplitByBoneCountProcess.h ) SOURCE_GROUP( PostProcessing FILES ${PostProcessing_SRCS}) diff --git a/code/Common/BaseProcess.cpp b/code/Common/BaseProcess.cpp index 974af68db..d02653cf2 100644 --- a/code/Common/BaseProcess.cpp +++ b/code/Common/BaseProcess.cpp @@ -5,8 +5,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, @@ -43,45 +41,43 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. /** @file Implementation of BaseProcess */ -#include #include "BaseProcess.h" -#include -#include #include "Importer.h" +#include +#include +#include using namespace Assimp; // ------------------------------------------------------------------------------------------------ // Constructor to be privately used by Importer BaseProcess::BaseProcess() AI_NO_EXCEPT -: shared() -, progress() -{ + : shared(), + progress() { + // empty } // ------------------------------------------------------------------------------------------------ // Destructor, private as well -BaseProcess::~BaseProcess() -{ +BaseProcess::~BaseProcess() { // nothing to do here } // ------------------------------------------------------------------------------------------------ -void BaseProcess::ExecuteOnScene( Importer* pImp) -{ - ai_assert(NULL != pImp && NULL != pImp->Pimpl()->mScene); +void BaseProcess::ExecuteOnScene(Importer *pImp) { + ai_assert( nullptr != pImp ); + ai_assert( nullptr != pImp->Pimpl()->mScene); progress = pImp->GetProgressHandler(); - ai_assert(progress); + ai_assert(nullptr != progress); - SetupProperties( pImp ); + SetupProperties(pImp); // catch exceptions thrown inside the PostProcess-Step - try - { + try { Execute(pImp->Pimpl()->mScene); - } catch( const std::exception& err ) { + } catch (const std::exception &err) { // extract error description pImp->Pimpl()->mErrorString = err.what(); @@ -94,14 +90,11 @@ void BaseProcess::ExecuteOnScene( Importer* pImp) } // ------------------------------------------------------------------------------------------------ -void BaseProcess::SetupProperties(const Importer* /*pImp*/) -{ +void BaseProcess::SetupProperties(const Importer * /*pImp*/) { // the default implementation does nothing } // ------------------------------------------------------------------------------------------------ -bool BaseProcess::RequireVerboseFormat() const -{ +bool BaseProcess::RequireVerboseFormat() const { return true; } - diff --git a/code/Common/BaseProcess.h b/code/Common/BaseProcess.h index a7e48bba3..bf1f2586f 100644 --- a/code/Common/BaseProcess.h +++ b/code/Common/BaseProcess.h @@ -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, @@ -44,12 +43,13 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #ifndef INCLUDED_AI_BASEPROCESS_H #define INCLUDED_AI_BASEPROCESS_H -#include #include +#include + struct aiScene; -namespace Assimp { +namespace Assimp { class Importer; @@ -60,64 +60,50 @@ class Importer; * to provide additional information to other steps. This is primarily * intended for cross-step optimizations. */ -class SharedPostProcessInfo -{ +class SharedPostProcessInfo { public: - - struct Base - { - virtual ~Base() - {} + struct Base { + virtual ~Base() {} }; //! Represents data that is allocated on the heap, thus needs to be deleted template - struct THeapData : public Base - { - explicit THeapData(T* in) - : data (in) - {} + struct THeapData : public Base { + explicit THeapData(T *in) : + data(in) {} - ~THeapData() - { + ~THeapData() { delete data; } - T* data; + T *data; }; //! Represents static, by-value data not allocated on the heap template - struct TStaticData : public Base - { - explicit TStaticData(T in) - : data (in) - {} + struct TStaticData : public Base { + explicit TStaticData(T in) : + data(in) {} - ~TStaticData() - {} + ~TStaticData() {} T data; }; // some typedefs for cleaner code typedef unsigned int KeyType; - typedef std::map PropertyMap; + typedef std::map PropertyMap; public: - //! Destructor - ~SharedPostProcessInfo() - { + ~SharedPostProcessInfo() { Clean(); } //! Remove all stored properties from the table - void Clean() - { + void Clean() { // invoke the virtual destructor for all stored properties for (PropertyMap::iterator it = pmap.begin(), end = pmap.end(); - it != end; ++it) - { + it != end; ++it) { delete (*it).second; } pmap.clear(); @@ -125,24 +111,21 @@ public: //! Add a heap property to the list template - void AddProperty( const char* name, T* in ){ - AddProperty(name,(Base*)new THeapData(in)); + void AddProperty(const char *name, T *in) { + AddProperty(name, (Base *)new THeapData(in)); } //! Add a static by-value property to the list template - void AddProperty( const char* name, T in ){ - AddProperty(name,(Base*)new TStaticData(in)); + void AddProperty(const char *name, T in) { + AddProperty(name, (Base *)new TStaticData(in)); } - //! Get a heap property template - bool GetProperty( const char* name, T*& out ) const - { - THeapData* t = (THeapData*)GetPropertyInternal(name); - if(!t) - { + bool GetProperty(const char *name, T *&out) const { + THeapData *t = (THeapData *)GetPropertyInternal(name); + if (!t) { out = NULL; return false; } @@ -152,53 +135,34 @@ public: //! Get a static, by-value property template - bool GetProperty( const char* name, T& out ) const - { - TStaticData* t = (TStaticData*)GetPropertyInternal(name); - if(!t)return false; + bool GetProperty(const char *name, T &out) const { + TStaticData *t = (TStaticData *)GetPropertyInternal(name); + if ( nullptr == t) { + return false; + } out = t->data; return true; } //! Remove a property of a specific type - void RemoveProperty( const char* name) { - SetGenericPropertyPtr(pmap,name,NULL); + void RemoveProperty(const char *name) { + SetGenericPropertyPtr(pmap, name, nullptr ); } private: - - void AddProperty( const char* name, Base* data) { - SetGenericPropertyPtr(pmap,name,data); + void AddProperty(const char *name, Base *data) { + SetGenericPropertyPtr(pmap, name, data); } - Base* GetPropertyInternal( const char* name) const { - return GetGenericProperty(pmap,name,NULL); + Base *GetPropertyInternal(const char *name) const { + return GetGenericProperty(pmap, name, nullptr ); } private: - //! Map of all stored properties PropertyMap pmap; }; -#if 0 - -// --------------------------------------------------------------------------- -/** @brief Represents a dependency table for a postprocessing steps. - * - * For future use. - */ - struct PPDependencyTable - { - unsigned int execute_me_before_these; - unsigned int execute_me_after_these; - unsigned int only_if_these_are_not_specified; - unsigned int mutually_exclusive_with; - }; - -#endif - - #define AI_SPP_SPATIAL_SORT "$Spat" // --------------------------------------------------------------------------- @@ -228,7 +192,7 @@ public: * @return true if the process is present in this flag fields, * false if not. */ - virtual bool IsActive( unsigned int pFlags) const = 0; + virtual bool IsActive(unsigned int pFlags) const = 0; // ------------------------------------------------------------------- /** Check whether this step expects its input vertex data to be @@ -241,14 +205,14 @@ public: * the object pointer will be set to NULL). * @param pImp Importer instance (pImp->mScene must be valid) */ - void ExecuteOnScene( Importer* pImp); + void ExecuteOnScene(Importer *pImp); // ------------------------------------------------------------------- /** Called prior to ExecuteOnScene(). * The function is a request to the process to update its configuration * basing on the Importer's configuration property list. */ - virtual void SetupProperties(const Importer* pImp); + virtual void SetupProperties(const Importer *pImp); // ------------------------------------------------------------------- /** Executes the post processing step on the given imported data. @@ -256,35 +220,32 @@ public: * This method must be implemented by deriving classes. * @param pScene The imported data to work at. */ - virtual void Execute( aiScene* pScene) = 0; - + virtual void Execute(aiScene *pScene) = 0; // ------------------------------------------------------------------- /** Assign a new SharedPostProcessInfo to the step. This object * allows multiple postprocess steps to share data. * @param sh May be NULL */ - inline void SetSharedData(SharedPostProcessInfo* sh) { + inline void SetSharedData(SharedPostProcessInfo *sh) { shared = sh; } // ------------------------------------------------------------------- /** Get the shared data that is assigned to the step. */ - inline SharedPostProcessInfo* GetSharedData() { + inline SharedPostProcessInfo *GetSharedData() { return shared; } protected: - /** See the doc of #SharedPostProcessInfo for more details */ - SharedPostProcessInfo* shared; + SharedPostProcessInfo *shared; /** Currently active progress handler */ - ProgressHandler* progress; + ProgressHandler *progress; }; - } // end of namespace Assimp #endif // AI_BASEPROCESS_H_INC diff --git a/code/Common/PostStepRegistry.cpp b/code/Common/PostStepRegistry.cpp index 21bd2af95..19382165f 100644 --- a/code/Common/PostStepRegistry.cpp +++ b/code/Common/PostStepRegistry.cpp @@ -123,7 +123,7 @@ corresponding preprocessor flag to selectively disable steps. # include "PostProcessing/OptimizeGraph.h" #endif #ifndef ASSIMP_BUILD_NO_SPLITBYBONECOUNT_PROCESS -# include "Common/SplitByBoneCountProcess.h" +# include "PostProcessing/SplitByBoneCountProcess.h" #endif #ifndef ASSIMP_BUILD_NO_DEBONE_PROCESS # include "PostProcessing/DeboneProcess.h" diff --git a/code/Common/SplitByBoneCountProcess.cpp b/code/PostProcessing/SplitByBoneCountProcess.cpp similarity index 100% rename from code/Common/SplitByBoneCountProcess.cpp rename to code/PostProcessing/SplitByBoneCountProcess.cpp diff --git a/code/Common/SplitByBoneCountProcess.h b/code/PostProcessing/SplitByBoneCountProcess.h similarity index 99% rename from code/Common/SplitByBoneCountProcess.h rename to code/PostProcessing/SplitByBoneCountProcess.h index 7185d0330..b99830fde 100644 --- a/code/Common/SplitByBoneCountProcess.h +++ b/code/PostProcessing/SplitByBoneCountProcess.h @@ -46,7 +46,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #define AI_SPLITBYBONECOUNTPROCESS_H_INC #include -#include "BaseProcess.h" +#include "Common/BaseProcess.h" #include #include diff --git a/include/assimp/GenericProperty.h b/include/assimp/GenericProperty.h index 30f4988f9..c1891c7b6 100644 --- a/include/assimp/GenericProperty.h +++ b/include/assimp/GenericProperty.h @@ -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, @@ -45,26 +44,25 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #define AI_GENERIC_PROPERTY_H_INCLUDED #ifdef __GNUC__ -# pragma GCC system_header +# pragma GCC system_header #endif -#include -#include #include +#include +#include #include // ------------------------------------------------------------------------------------------------ template -inline -bool SetGenericProperty(std::map< unsigned int, T >& list, - const char* szName, const T& value) { +inline bool SetGenericProperty(std::map &list, + const char *szName, const T &value) { ai_assert(nullptr != szName); const uint32_t hash = SuperFastHash(szName); typename std::map::iterator it = list.find(hash); - if (it == list.end()) { - list.insert(std::pair( hash, value )); + if (it == list.end()) { + list.insert(std::pair(hash, value)); return false; } (*it).second = value; @@ -74,9 +72,8 @@ bool SetGenericProperty(std::map< unsigned int, T >& list, // ------------------------------------------------------------------------------------------------ template -inline -const T& GetGenericProperty(const std::map< unsigned int, T >& list, - const char* szName, const T& errorReturn) { +inline const T &GetGenericProperty(const std::map &list, + const char *szName, const T &errorReturn) { ai_assert(nullptr != szName); const uint32_t hash = SuperFastHash(szName); @@ -92,22 +89,21 @@ const T& GetGenericProperty(const std::map< unsigned int, T >& list, // Special version for pointer types - they will be deleted when replaced with another value // passing NULL removes the whole property template -inline -void SetGenericPropertyPtr(std::map< unsigned int, T* >& list, - const char* szName, T* value, bool* bWasExisting = nullptr ) { +inline void SetGenericPropertyPtr(std::map &list, + const char *szName, T *value, bool *bWasExisting = nullptr) { ai_assert(nullptr != szName); const uint32_t hash = SuperFastHash(szName); - typename std::map::iterator it = list.find(hash); - if (it == list.end()) { + typename std::map::iterator it = list.find(hash); + if (it == list.end()) { if (bWasExisting) { *bWasExisting = false; } - list.insert(std::pair( hash, value )); + list.insert(std::pair(hash, value)); return; } - if ((*it).second != value) { + if ((*it).second != value) { delete (*it).second; (*it).second = value; } @@ -121,9 +117,8 @@ void SetGenericPropertyPtr(std::map< unsigned int, T* >& list, // ------------------------------------------------------------------------------------------------ template -inline -bool HasGenericProperty(const std::map< unsigned int, T >& list, - const char* szName) { +inline bool HasGenericProperty(const std::map &list, + const char *szName) { ai_assert(nullptr != szName); const uint32_t hash = SuperFastHash(szName);