Fixed a possible transformation problem in debug render.
git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@1289 dfc29bdd-3216-0410-991c-e03cc46cb475master
parent
eefa8390a9
commit
ca91742a1e
|
@ -290,8 +290,8 @@ void CAnimatedMeshSceneNode::render()
|
|||
{
|
||||
scene::IMeshBuffer* mb = m->getMeshBuffer(i);
|
||||
mat = Materials[i];
|
||||
mat.MaterialType = video::EMT_TRANSPARENT_ADD_COLOR;
|
||||
if (RenderFromIdentity)
|
||||
mat.MaterialType = video::EMT_TRANSPARENT_ADD_COLOR;
|
||||
if (RenderFromIdentity)
|
||||
driver->setTransform(video::ETS_WORLD, core::matrix4() );
|
||||
else if (Mesh->getMeshType() == EAMT_SKINNED)
|
||||
driver->setTransform(video::ETS_WORLD, AbsoluteTransformation * ((SSkinMeshBuffer*)mb)->Transformation);
|
||||
|
@ -317,8 +317,8 @@ void CAnimatedMeshSceneNode::render()
|
|||
if (transparent == isTransparentPass)
|
||||
{
|
||||
scene::IMeshBuffer* mb = m->getMeshBuffer(i);
|
||||
|
||||
if (RenderFromIdentity)
|
||||
|
||||
if (RenderFromIdentity)
|
||||
driver->setTransform(video::ETS_WORLD, core::matrix4() );
|
||||
else if (Mesh->getMeshType() == EAMT_SKINNED)
|
||||
driver->setTransform(video::ETS_WORLD, AbsoluteTransformation * ((SSkinMeshBuffer*)mb)->Transformation);
|
||||
|
@ -394,7 +394,7 @@ void CAnimatedMeshSceneNode::render()
|
|||
|
||||
for (u32 g=0; g< m->getMeshBufferCount(); ++g)
|
||||
{
|
||||
const IMeshBuffer* mb = m->getMeshBuffer(g);
|
||||
const IMeshBuffer* mb = m->getMeshBuffer(g);
|
||||
|
||||
if (Mesh->getMeshType() == EAMT_SKINNED)
|
||||
driver->setTransform(video::ETS_WORLD, AbsoluteTransformation * ((SSkinMeshBuffer*)mb)->Transformation);
|
||||
|
@ -404,6 +404,7 @@ void CAnimatedMeshSceneNode::render()
|
|||
driver->setTransform(video::ETS_WORLD, AbsoluteTransformation);
|
||||
}
|
||||
|
||||
driver->setTransform(video::ETS_WORLD, AbsoluteTransformation);
|
||||
if ( DebugDataVisible & scene::EDS_BBOX )
|
||||
driver->draw3DBox(Box, video::SColor(0,255,255,255));
|
||||
|
||||
|
@ -475,8 +476,8 @@ void CAnimatedMeshSceneNode::render()
|
|||
|
||||
for (u32 g=0; g<m->getMeshBufferCount(); ++g)
|
||||
{
|
||||
const IMeshBuffer* mb = m->getMeshBuffer(g);
|
||||
if (RenderFromIdentity)
|
||||
const IMeshBuffer* mb = m->getMeshBuffer(g);
|
||||
if (RenderFromIdentity)
|
||||
driver->setTransform(video::ETS_WORLD, core::matrix4() );
|
||||
else if (Mesh->getMeshType() == EAMT_SKINNED)
|
||||
driver->setTransform(video::ETS_WORLD, AbsoluteTransformation * ((SSkinMeshBuffer*)mb)->Transformation);
|
||||
|
@ -586,10 +587,9 @@ IBoneSceneNode* CAnimatedMeshSceneNode::getJointNode(const c8* jointName)
|
|||
|
||||
checkJoints();
|
||||
|
||||
|
||||
ISkinnedMesh *skinnedMesh=(ISkinnedMesh*)Mesh;
|
||||
|
||||
s32 number = skinnedMesh->getJointNumber(jointName);
|
||||
const s32 number = skinnedMesh->getJointNumber(jointName);
|
||||
|
||||
if (number == -1)
|
||||
{
|
||||
|
@ -825,6 +825,7 @@ void CAnimatedMeshSceneNode::setMesh(IAnimatedMesh* mesh)
|
|||
Mesh->grab();
|
||||
}
|
||||
|
||||
|
||||
// returns the absolute transformation for a special MD3 Tag if the mesh is a md3 mesh,
|
||||
// or the absolutetransformation if it's a normal scenenode
|
||||
const SMD3QuaterionTag& CAnimatedMeshSceneNode::getMD3TagTransformation( const core::stringc & tagname)
|
||||
|
@ -973,26 +974,18 @@ void CAnimatedMeshSceneNode::animateJoints(bool CalculateAbsolutePositions)
|
|||
{
|
||||
//---slow---
|
||||
for (u32 n=0;n<JointChildSceneNodes.size();++n)
|
||||
{
|
||||
if (JointChildSceneNodes[n]->getParent()==this)
|
||||
{
|
||||
JointChildSceneNodes[n]->updateAbsolutePositionOfAllChildren(); //temp, should be an option
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
void CAnimatedMeshSceneNode::checkJoints()
|
||||
{
|
||||
if (!Mesh || Mesh->getMeshType() != EAMT_SKINNED)
|
||||
|
@ -1010,6 +1003,7 @@ void CAnimatedMeshSceneNode::checkJoints()
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
void CAnimatedMeshSceneNode::beginTransition()
|
||||
{
|
||||
if (!JointsUsed)
|
||||
|
|
Loading…
Reference in New Issue