#include "Ogre.h" #include "OgreEffectWrapper.h" #include "managedogrerendertexturepass.h" #include "DEMFinalGatheringPass.h" #include "DEMFinalRenderingRun.h" DEMFinalRenderingRun::DEMFinalRenderingRun(Entity* entity) { Root* mRoot=Root::getSingletonPtr(); OgreAssert(mRoot!=NULL,"Root is not yet generated, rendering will fail."); this->entity=entity; demFinalRenderingRunPass=new DEMFinalGatheringPass(mRoot); } void DEMFinalRenderingRun::setEnvMapPostition(Vector3 envMapPosition){ demFinalRenderingRunPass->setEnvMapPostition(envMapPostion); } void DEMFinalRenderingRun::setDiffuseColor(float diffuseColor){ demFinalRenderingRunPass->setDiffuseColor(diffuseColor); } DEMFinalRenderingRun::~DEMFinalRenderingRun(void) { } void DEMFinalRenderingRun::update(void){ if(entity->isVisible()){ SceneManager::EntityIterator entityIterator=mSceneMgr->getEntityIterator(); while(entityIterator.hasMoreElements()){ Entity* entityTemp=entityIterator.getNext(); entityVisibilityList.push_back(entityTemp->isVisible()); entityTemp->setVisible(false); } entity->setVisible(true); demFinalRenderingRunPass->update(); SceneManager::EntityIterator entityIterator=mSceneMgr->getEntityIterator(); int elementNumber=0; while(entityIterator.hasMoreElements()){ Entity* entity=entityIterator.getNext(); entity->setVisible(entityVisibilityList.at(elementNumber)); elementNumber++; } entityVisibilityList.clear(); } }