When octree node is added, boundingbox doesn't follow to the position of
the character node.
Is this a Irrlicht bug?
this worked correctly.
Code: Select all
/* //create ground mesh
IAnimatedMesh* mesh = Scene->getMesh("ground.x");
ISceneNode* otNode = Scene->addOctTreeSceneNode(mesh->getMesh(0));
ITriangleSelector* selector= Scene->createOctTreeTriangleSelector(mesh,otNode,32);
otNode->setTriangleSelector(selector);
otNode->setPosition(vector3df(3,0,-3));
*/
//create character mesh
IAnimatedMesh* charMesh = Scene->getMesh("mypc.x");
IAnimatedMeshSceneNode* charNode = Scene->addAnimatedMeshSceneNode(charMesh);
charNode->setAnimationSpeed(5000);
while(Device->run())
{
charNode->setPosition(charNode->getPosition() + vector3df(0,0,0.01f));
charNode->getMesh()->getMeshBuffer(0)->recalculateBoundingBox();
aabbox3df aabb = charNode->getMesh()->getMeshBuffer(0)->getBoundingBox();
//render
Driver->beginScene(true, true, SColor(0,100,100,160));
Scene->drawAll();
Driver->draw3DBox(aabb);
Driver->endScene();
}
The difference only added octreenode.
Code: Select all
//create ground mesh
IAnimatedMesh* mesh = Scene->getMesh("ground.x");
ISceneNode* otNode = Scene->addOctTreeSceneNode(mesh->getMesh(0));
ITriangleSelector* selector= Scene->createOctTreeTriangleSelector(mesh,otNode,32);
otNode->setTriangleSelector(selector);
otNode->setPosition(vector3df(3,0,-3));
//create character mesh
IAnimatedMesh* charMesh = Scene->getMesh("mypc.x");
IAnimatedMeshSceneNode* charNode = Scene->addAnimatedMeshSceneNode(charMesh);
charNode->setAnimationSpeed(5000);
while(Device->run())
{
charNode->setPosition(charNode->getPosition() + vector3df(0,0,0.01f));
charNode->getMesh()->getMeshBuffer(0)->recalculateBoundingBox();
aabbox3df aabb = charNode->getMesh()->getMeshBuffer(0)->getBoundingBox();
//render
Driver->beginScene(true, true, SColor(0,100,100,160));
Scene->drawAll();
Driver->draw3DBox(aabb);
Driver->endScene();
}
