Added missing functions to Projector Actors

This commit is contained in:
n00b87
2026-02-22 03:04:03 -06:00
parent 21e06b0848
commit c4d559f0d4
25 changed files with 2523 additions and 1926 deletions

View File

@@ -148,7 +148,9 @@ void CProjectiveTextures::render()
ViewArea.getTransform(irr::video::ETS_VIEW).buildCameraLookAtMatrixLH(pos,Target,up);
recalculateViewArea();
recalculateViewArea();
irr::scene::IMesh* mesh = NULL;
for(irr::u32 i=0; i<nodeArray.size(); ++i)
{
@@ -159,8 +161,46 @@ void CProjectiveTextures::render()
pVideo->setTransform(irr::video::ETS_WORLD,nodeArray[i]->getAbsoluteTransformation());
pVideo->setMaterial(projMat);
for(irr::u32 j=0; j<nodeArray[i]->getMaterialCount(); ++j)
pVideo->drawMeshBuffer(nodeArray[i]->getMesh()->getMeshBuffer(j));
mesh = NULL;
switch(nodeArray[i]->getType())
{
case irr::scene::ESNT_CUBE:
case irr::scene::ESNT_SPHERE:
case irr::scene::ESNT_MESH:
{
irr::scene::IMeshSceneNode* m_node = (irr::scene::IMeshSceneNode*)nodeArray[i];
mesh = m_node->getMesh();
}
break;
case irr::scene::ESNT_OCTREE:
{
irr::scene::IOctreeSceneNode* m_node = (irr::scene::IOctreeSceneNode*)nodeArray[i];
mesh = m_node->getMesh();
}
break;
case irr::scene::ESNT_ANIMATED_MESH:
{
irr::scene::IAnimatedMeshSceneNode* m_node = (irr::scene::IAnimatedMeshSceneNode*)nodeArray[i];
mesh = m_node->getMesh();
}
break;
case irr::scene::ESNT_TERRAIN:
{
irr::scene::ITerrainSceneNode* m_node = (irr::scene::ITerrainSceneNode*)nodeArray[i];
mesh = m_node->getMesh();
}
break;
}
if(mesh)
{
for(irr::u32 j=0; j<nodeArray[i]->getMaterialCount(); ++j)
pVideo->drawMeshBuffer(mesh->getMeshBuffer(j));
}
}
}