methods to determine if the loaded scene is animated or not

This commit is contained in:
gered 2011-04-27 10:03:35 -04:00
parent 9e8b06fa9d
commit 2ac2dd5b61
5 changed files with 48 additions and 0 deletions

View file

@ -80,10 +80,12 @@
</Link>
</ItemDefinitionGroup>
<ItemGroup>
<ClCompile Include="src\assimputils\assimpsceneinfo.cpp" />
<ClCompile Include="src\main.cpp" />
<ClCompile Include="src\utils\fileutils.cpp" />
</ItemGroup>
<ItemGroup>
<ClInclude Include="src\assimputils\utils.h" />
<ClInclude Include="src\utils\utils.h" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />

View file

@ -21,10 +21,16 @@
<ClCompile Include="src\utils\fileutils.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="src\assimputils\assimpsceneinfo.cpp">
<Filter>Source Files</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<ClInclude Include="src\utils\utils.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="src\assimputils\utils.h">
<Filter>Header Files</Filter>
</ClInclude>
</ItemGroup>
</Project>

View file

@ -0,0 +1,25 @@
#include "utils.h"
bool IsSceneAnimated(const aiScene *scene)
{
return scene->HasAnimations();
}
bool IsSceneSkeletal(const aiScene *scene)
{
for (unsigned int i = 0; i < scene->mNumMeshes; ++i)
{
if (scene->mMeshes[i]->HasBones())
return true;
}
return false;
}
bool IsSceneStatic(const aiScene *scene)
{
if (IsSceneAnimated(scene) || IsSceneSkeletal(scene))
return false;
else
return true;
}

View file

@ -0,0 +1,11 @@
#ifndef __ASSIMPUTILS_UTILS_H_INCLUDED__
#define __ASSIMPUTILS_UTILS_H_INCLUDED__
#include <assimp.hpp>
#include <aiScene.h>
bool IsSceneAnimated(const aiScene *scene);
bool IsSceneSkeletal(const aiScene *scene);
bool IsSceneStatic(const aiScene *scene);
#endif

View file

@ -7,6 +7,7 @@
#include <aiPostProcess.h>
#include "utils/utils.h"
#include "assimputils/utils.h"
int main(int argc, char *argv[])
{
@ -46,5 +47,8 @@ int main(int argc, char *argv[])
return 1;
}
printf("Scene loaded.\n");
printf("Animated? %d\nSkeletal? %d\nStatic? %d\n", IsSceneAnimated(scene), IsSceneSkeletal(scene), IsSceneStatic(scene));
return 0;
}