- refraing from using magic numbers like 0xffffffff all over the repository, rather use UINT_MAX/SIZE_MAX ..

- minor re-formatting and refactoring at some old code spots.

git-svn-id: https://assimp.svn.sourceforge.net/svnroot/assimp/trunk@970 67173fc5-114c-0410-ac8e-9d2fd5bffc1f
This commit is contained in:
aramis_acg
2011-04-22 21:29:18 +00:00
parent 14c6467aac
commit 6f30639d7f
40 changed files with 194 additions and 190 deletions

View File

@@ -243,17 +243,17 @@ void SceneCombiner::MergeScenes(aiScene** _dest, aiScene* master,
ai_assert(NULL != _dest);
// if _dest points to NULL allocate a new scene. Otherwise clear the old and reuse it
if (srcList.empty())
{
if (*_dest)
{
if (srcList.empty()) {
if (*_dest) {
(*_dest)->~aiScene();
SceneCombiner::CopySceneFlat(_dest,master);
}
else *_dest = master;
return;
}
if (*_dest)(*_dest)->~aiScene();
if (*_dest) {
(*_dest)->~aiScene();
}
else *_dest = new aiScene();
aiScene* dest = *_dest;
@@ -265,20 +265,22 @@ void SceneCombiner::MergeScenes(aiScene** _dest, aiScene* master,
}
// this helper array specifies which scenes are duplicates of others
std::vector<unsigned int> duplicates(src.size(),0xffffffff);
std::vector<unsigned int> duplicates(src.size(),UINT_MAX);
// this helper array is used as lookup table several times
std::vector<unsigned int> offset(src.size());
// Find duplicate scenes
for (unsigned int i = 0; i < src.size();++i)
{
if (duplicates[i] != i && duplicates[i] != 0xffffffff)continue;
for (unsigned int i = 0; i < src.size();++i) {
if (duplicates[i] != i && duplicates[i] != UINT_MAX) {
continue;
}
duplicates[i] = i;
for ( unsigned int a = i+1; a < src.size(); ++a)
{
if (src[i].scene == src[a].scene)
for ( unsigned int a = i+1; a < src.size(); ++a) {
if (src[i].scene == src[a].scene) {
duplicates[a] = i;
}
}
}