From 04f47e240ec86619b2fdbea92cb883b1e77759d5 Mon Sep 17 00:00:00 2001 From: Shlainn Date: Tue, 8 Nov 2011 15:20:15 +0100 Subject: [PATCH] * Improve Skeleton debug output --- src/dep/src/irrlicht/CAnimatedMeshSceneNode.cpp | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/src/dep/src/irrlicht/CAnimatedMeshSceneNode.cpp b/src/dep/src/irrlicht/CAnimatedMeshSceneNode.cpp index 58d7e3c..4a6f00e 100644 --- a/src/dep/src/irrlicht/CAnimatedMeshSceneNode.cpp +++ b/src/dep/src/irrlicht/CAnimatedMeshSceneNode.cpp @@ -18,6 +18,10 @@ #include "IAnimatedMesh.h" #include "quaternion.h" +#include "IGUIEnvironment.h" +#include "IGUIFont.h" +#include "ISceneCollisionManager.h" + namespace irr { @@ -427,10 +431,19 @@ void CAnimatedMeshSceneNode::render() if (Mesh->getMeshType() == EAMT_SKINNED) { // draw skeleton - + ISceneCollisionManager* Coll = SceneManager->getSceneCollisionManager(); + irr::gui::IGUIFont* Font = SceneManager->getGUIEnvironment()->getBuiltInFont(); for (u32 g=0; g < ((ISkinnedMesh*)Mesh)->getAllJoints().size(); ++g) { ISkinnedMesh::SJoint *joint=((ISkinnedMesh*)Mesh)->getAllJoints()[g]; + core::vector3df a = joint->GlobalAnimatedMatrix.getTranslation()-core::vector3df(0.05,0.05,0.05); + core::vector3df b = joint->GlobalAnimatedMatrix.getTranslation()+core::vector3df(0.05,0.05,0.05); + core::aabbox3df marker = core::aabbox3df(a,b); + driver->draw3DBox(marker,video::SColor(255,51,66,255)); + + core::position2d pos = Coll->getScreenCoordinatesFrom3DPosition(a, SceneManager->getActiveCamera()); + core::rect r(pos, core::dimension2d(1,1)); + Font->draw(core::stringw(g).c_str(), r, video::SColor(255,51,255,66), true, true); for (u32 n=0;nChildren.size();++n) {