#include "Ogre.h" #include "OgreEffectWrapper.h" #include "managedogrerendertexturepass.h" #include "FEMFinalRenderingRunpass.h" #include "FEMFinalRenderingRun.h" FEMFinalRenderingRun::FEMFinalRenderingRun(Entity* entity,RenderTarget* backBuffer,const String& textureName) { Root* mRoot=Root::getSingletonPtr(); OgreAssert(mRoot!=NULL,"Root is not yet generated, rendering will fail."); this->entity=entity; this->backBuffer=backBuffer; FEMFinalRenderingRunPass=new FEMFinalRenderingRunPass(mRoot); FEMFinalRenderingRunPass->addRenderTarget(backBuffer); FEMFinalRenderingRunPass->changeTexture(textureName,0); } void FEMFinalRenderingRun::setEnvMapPostition(Vector3 envMapPosition){ FEMFinalRenderingRunPass->setEnvMapPostition(envMapPostion); } void FEMFinalRenderingRun::setFresnelFactor(float fresnelFactor){ FEMFinalRenderingRunPass->setFresnelFactor(fresnelFactor); } FEMFinalRenderingRun::~FEMFinalRenderingRun(void) { } void FEMFinalRenderingRun::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); FEMFinalRenderingRunPass->update(); SceneManager::EntityIterator entityIterator=mSceneMgr->getEntityIterator(); int elementNumber=0; while(entityIterator.hasMoreElements()){ Entity* entity=entityIterator.getNext(); entity->setVisible(entityVisibilityList.at(elementNumber)); elementNumber++; } entityVisibilityList.clear(); } }