diff --git a/code/SceneCombiner.cpp b/code/SceneCombiner.cpp index 608aa8297..4b77bb2db 100644 --- a/code/SceneCombiner.cpp +++ b/code/SceneCombiner.cpp @@ -107,8 +107,9 @@ void SceneCombiner::AddNodePrefixes(aiNode* node, const char* prefix, unsigned i PrefixString(node->mName,prefix,len); // Process all children recursively - for (unsigned int i = 0; i < node->mNumChildren;++i) - AddNodePrefixes(node->mChildren[i],prefix,len); + for ( unsigned int i = 0; i < node->mNumChildren; ++i ) { + AddNodePrefixes( node->mChildren[ i ], prefix, len ); + } } // ------------------------------------------------------------------------------------------------ @@ -118,7 +119,6 @@ bool SceneCombiner::FindNameMatch(const aiString& name, std::vector // Check whether we find a positive match in one of the given sets for (unsigned int i = 0; i < input.size(); ++i) { - if (cur != i && input[i].hashes.find(hash) != input[i].hashes.end()) { return true; } @@ -135,7 +135,6 @@ void SceneCombiner::AddNodePrefixesChecked(aiNode* node, const char* prefix, uns // Check whether we find a positive match in one of the given sets for (unsigned int i = 0; i < input.size(); ++i) { - if (cur != i && input[i].hashes.find(hash) != input[i].hashes.end()) { PrefixString(node->mName,prefix,len); break; @@ -149,28 +148,25 @@ void SceneCombiner::AddNodePrefixesChecked(aiNode* node, const char* prefix, uns // ------------------------------------------------------------------------------------------------ // Add an offset to all mesh indices in a node graph -void SceneCombiner::OffsetNodeMeshIndices (aiNode* node, unsigned int offset) -{ +void SceneCombiner::OffsetNodeMeshIndices (aiNode* node, unsigned int offset) { for (unsigned int i = 0; i < node->mNumMeshes;++i) node->mMeshes[i] += offset; - for (unsigned int i = 0; i < node->mNumChildren;++i) - OffsetNodeMeshIndices(node->mChildren[i],offset); + for ( unsigned int i = 0; i < node->mNumChildren; ++i ) { + OffsetNodeMeshIndices( node->mChildren[ i ], offset ); + } } // ------------------------------------------------------------------------------------------------ // Merges two scenes. Currently only used by the LWS loader. -void SceneCombiner::MergeScenes(aiScene** _dest,std::vector& src, - unsigned int flags) { +void SceneCombiner::MergeScenes(aiScene** _dest,std::vector& src, unsigned int flags) { if ( nullptr == _dest ) { return; } // if _dest points to NULL allocate a new scene. Otherwise clear the old and reuse it - if (src.empty()) - { - if (*_dest) - { + if (src.empty()) { + if (*_dest) { (*_dest)->~aiScene(); SceneCombiner::CopySceneFlat(_dest,src[0]); } @@ -1078,8 +1074,7 @@ void SceneCombiner::Copy( aiMesh** _dest, const aiMesh* src ) { // make a deep copy of all faces GetArrayCopy(dest->mFaces,dest->mNumFaces); - for (unsigned int i = 0; i < dest->mNumFaces;++i) - { + for (unsigned int i = 0; i < dest->mNumFaces;++i) { aiFace& f = dest->mFaces[i]; GetArrayCopy(f.mIndices,f.mNumIndices); } @@ -1091,7 +1086,6 @@ void SceneCombiner::Copy (aiMaterial** _dest, const aiMaterial* src) { return; } - aiMaterial* dest = (aiMaterial*) ( *_dest = new aiMaterial() ); dest->Clear(); @@ -1248,6 +1242,10 @@ void SceneCombiner::Copy(aiMetadata** _dest, const aiMetadata* src) { return; } + if ( 0 == src->mNumProperties ) { + return; + } + aiMetadata* dest = *_dest = aiMetadata::Alloc( src->mNumProperties ); std::copy(src->mKeys, src->mKeys + src->mNumProperties, dest->mKeys); diff --git a/include/assimp/metadata.h b/include/assimp/metadata.h index ded08d14b..92db9b59a 100644 --- a/include/assimp/metadata.h +++ b/include/assimp/metadata.h @@ -187,7 +187,7 @@ struct aiMetadata { static inline aiMetadata *Alloc( unsigned int numProperties ) { if ( 0 == numProperties ) { - return NULL; + return nullptr; } aiMetadata *data = new aiMetadata;