#include "FogManager.h" /************************************************************************************************************* CFogManager class ***************************************************************************************************************/ CFogManager :: CFogManager() { int m_FogNum = 0; } CFogManager ::~CFogManager() { for(int i = 0;iGetCenter(); //indexx = (int)(center.x/SECTORSIZE); //indexy = (int)(center.z/SECTORSIZE); // Sector ¾ÈÀÇ °Í¸¸ rendering // if(secx == indexx && secy == indexy) { //get person pos; m_FogUnit[i]->Update(pos.x,pos.y,pos.z); count++; // } } return count; } int CFogManager::UpdateFog(int num) { D3DXVECTOR3 pos = D3DXVECTOR3(0.0f,0.0f,0.0f); //get person pos m_FogUnit[num]->Update(pos.x,pos.y,pos.z); return num; } int CFogManager::Render(int num) { m_FogUnit[num]->Render(); return num; } int CFogManager::Render() { int i; int count = 0; vector3 center; // secter index // int indexx,indexy; for(i=0;iGetCenter(); //indexx = (int)(center.x/SECTORSIZE); //indexy = (int)(center.z/SECTORSIZE); //if(secx == indexx && secy == indexy) { m_FogUnit[i]->Render(); count++; //} } return count; } int CFogManager::SetFog(int num) { /* m_FogUnit[num]->SetCenter(30.0f); m_FogUnit[num]->SetCenterPos(0.0f,0.0f,10.0f); m_FogUnit[num]->SetColor(1.0f,1.0f,1.0f,1.0f); m_FogUnit[num]->SetFlow(-2.0f); m_FogUnit[num]->SetGravity(0.0f,0.0f,0.0f); D3DXVECTOR3 tm; tm.z = 0.3f; tm.x = 0.6f; tm.y = 0.1f; // tm.x = tm.y = tm.z = 0.0f; // tm.x = 0.3f; // tm.y = 0.1f; m_FogUnit[num]->SetSize(5.0f); m_FogUnit[num]->SetImpress(tm); m_FogUnit[num]->SetPos(); m_FogUnit[num]->SetColor(1.0f,1.0f,1.0f,1.0f); m_FogUnit[num]->SetEtc(); m_FogUnit[num]->SetRad(5.0f); m_FogUnit[num]->SetSpeed(0.0f,0.0f,0.0f); m_FogUnit[num]->SetSpeedPower(0.0f); m_FogUnit[num]->SetWind(0.0f,0.0f,0.0f); m_FogUnit[num]->CreateTextureBuffer(2); m_FogUnit[num]->SetTexture(0,"white.dds"); m_FogUnit[num]->SetTexture(1,"white32.dds"); m_FogUnit[num]->Setfadein(1.0f); m_FogUnit[num]->CreateVertexBuffer();*/ //m_FogUnit[num]->Create(); return 0; } void CFogManager::Insert_Fog() { CFogScene *tmp; m_FogUnit.push_back(tmp); m_FogUnit[m_FogNum] = new CFogScene(); /// m_FogUnit[m_FogNum]->Create(); m_FogNum++; } int CFogManager::FindFog(float x,float y,float z) { vector3 center; for(int i=0;iGetCenter(); if(center.x == x && center.y == y && center.z == z) return i; } return -1; } // °ÔÀÓ¿¡ Ãß°¡ µÇ¸é¼­ »ì¾Æ³¯ ÄÚµå /*void CFogManager::CalculateLod() { int i; vector3 f_pos; // cameram get matrix *matViewPosition=(matrix*)CSceneManager::GetCamera()->GetMatPosition(); vector3 vecViewPos=matViewPosition->GetLoc(); vecViewPos.x-=m_AccumulateTM._41; vecViewPos.z-=m_AccumulateTM._43; float fLens=0.0f; if( 0.0f-fLens_FarTree <= vecViewPos.x && SECTORSIZE+fLens_FarTree > vecViewPos.x && 0.0f-fLens_FarTree <= vecViewPos.z && SECTORSIZE+fLens_FarTree > vecViewPos.z) { for(i=0;iCenter_Point.x - vecViewPos.x; f_pos.y = Fog_Unit[i]->Center_Point.y - vecViewPos.y; f_pos.z = Fog_Unit[i]->Center_Point.z - vecViewPos.z; fLens=CFastMath::FastSqrt((f_pos.x*f_pos.x)+(f_pos.y*f_pos.y)+(f_pos.z*f_pos.z)); if(fLens <=LOD_NEAR) Fog_Unit[i]->Lod = NEAR_LOD; else if(fLens <=LOD_FAR) Fog_Unit[i]->Lod = FAR_LOD; else Fog_Unit[i]->Lod = NOT_SCENE; } } } */