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> </Link>
</ItemDefinitionGroup> </ItemDefinitionGroup>
<ItemGroup> <ItemGroup>
<ClCompile Include="src\assimputils\assimpsceneinfo.cpp" />
<ClCompile Include="src\main.cpp" /> <ClCompile Include="src\main.cpp" />
<ClCompile Include="src\utils\fileutils.cpp" /> <ClCompile Include="src\utils\fileutils.cpp" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<ClInclude Include="src\assimputils\utils.h" />
<ClInclude Include="src\utils\utils.h" /> <ClInclude Include="src\utils\utils.h" />
</ItemGroup> </ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />

View file

@ -21,10 +21,16 @@
<ClCompile Include="src\utils\fileutils.cpp"> <ClCompile Include="src\utils\fileutils.cpp">
<Filter>Source Files</Filter> <Filter>Source Files</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="src\assimputils\assimpsceneinfo.cpp">
<Filter>Source Files</Filter>
</ClCompile>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<ClInclude Include="src\utils\utils.h"> <ClInclude Include="src\utils\utils.h">
<Filter>Header Files</Filter> <Filter>Header Files</Filter>
</ClInclude> </ClInclude>
<ClInclude Include="src\assimputils\utils.h">
<Filter>Header Files</Filter>
</ClInclude>
</ItemGroup> </ItemGroup>
</Project> </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 <aiPostProcess.h>
#include "utils/utils.h" #include "utils/utils.h"
#include "assimputils/utils.h"
int main(int argc, char *argv[]) int main(int argc, char *argv[])
{ {
@ -46,5 +47,8 @@ int main(int argc, char *argv[])
return 1; return 1;
} }
printf("Scene loaded.\n");
printf("Animated? %d\nSkeletal? %d\nStatic? %d\n", IsSceneAnimated(scene), IsSceneSkeletal(scene), IsSceneStatic(scene));
return 0; return 0;
} }