Commit dc29ec07 authored by hybrid's avatar hybrid

Fix skinnedMesh test for current dwarf mesh

git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@3543 dfc29bdd-3216-0410-991c-e03cc46cb475
parent 394aedad
...@@ -4,48 +4,69 @@ ...@@ -4,48 +4,69 @@
#include "testUtils.h" #include "testUtils.h"
using namespace irr; using namespace irr;
using namespace core;
using namespace scene;
using namespace video;
using namespace io;
using namespace gui;
// Tests skinned meshes. // Tests skinned meshes.
bool skinnedMesh(void) bool skinnedMesh(void)
{ {
// Use EDT_BURNINGSVIDEO since it is not dependent on (e.g.) OpenGL driver versions. // Use EDT_BURNINGSVIDEO since it is not dependent on (e.g.) OpenGL driver versions.
IrrlichtDevice *device = createDevice( EDT_BURNINGSVIDEO, dimension2d<u32>(160, 120), 32); IrrlichtDevice *device = createDevice(video::EDT_BURNINGSVIDEO, core::dimension2d<u32>(160, 120), 32);
if (!device) if (!device)
return false; return false;
IVideoDriver* driver = device->getVideoDriver(); video::IVideoDriver* driver = device->getVideoDriver();
ISceneManager * smgr = device->getSceneManager(); scene::ISceneManager * smgr = device->getSceneManager();
logTestString("Testing setMesh()\n"); logTestString("Testing setMesh()\n");
ISkinnedMesh* mesh = (ISkinnedMesh*)smgr->getMesh("../media/ninja.b3d"); scene::ISkinnedMesh* mesh = (scene::ISkinnedMesh*)smgr->getMesh("../media/ninja.b3d");
if (!mesh) if (!mesh)
{
logTestString("Could not load ninja.\n");
return false; return false;
}
IAnimatedMeshSceneNode* node = smgr->addAnimatedMeshSceneNode(mesh); scene::IAnimatedMeshSceneNode* node = smgr->addAnimatedMeshSceneNode(mesh);
if (!node) if (!node)
{
logTestString("Could not add ninja node.\n");
return false; return false;
}
// test if certain joint is found // test if certain joint is found
bool result = (node->getJointNode("Joint1") != 0); bool result = (node->getJointNode("Joint1") != 0);
if (!result)
logTestString("Could not find joint in ninja.\n");
mesh = (ISkinnedMesh*)smgr->getMesh("../media/dwarf.x"); mesh = (scene::ISkinnedMesh*)smgr->getMesh("../media/dwarf.x");
if (!mesh) if (!mesh)
{
logTestString("Could not load dwarf.\n");
return false; return false;
}
node->setMesh(mesh); node->setMesh(mesh);
// make sure old joint is non-existant anymore // make sure old joint is non-existant anymore
logTestString("Ignore error message in log, this is intended.\n"); logTestString("Ignore error message in log, this is intended.\n");
result &= (node->getJointNode("Joint1")==0); result &= (node->getJointNode("Joint1")==0);
if (!result)
logTestString("Found non-existing joint in dwarf.\n");
// and check that a new joint can be found // and check that a new joint can be found
// we use a late one, in order to see also inconsistencies in the joint cache // we use a late one, in order to see also inconsistencies in the joint cache
result &= (node->getJointNode("cam") != 0); result &= (node->getJointNode("hit") != 0);
if (!result)
logTestString("Could not find joint in dwarf.\n");
node = smgr->addAnimatedMeshSceneNode(mesh);
if (!node)
{
logTestString("Could not add dwarf node.\n");
return false;
}
// check that a joint can really be found
result &= (node->getJointNode("hit") != 0);
if (!result)
logTestString("Could not find joint in dwarf.\n");
device->closeDevice(); device->closeDevice();
device->run(); device->run();
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment