/* ==================================================================== * ÆÄ ÀÏ : LightAgent.h * ¸ñ Àû : °´Ã¼ ¹× ȯ°æÀÇ Light¸¦ °ü¸® ¹× ó¸® * ÀÛ ¼º ÀÚ : À̹ý¼® * ÀÛ ¼º ÀÏ : 2006.05 * * Ãß°¡³»¿ë : * Ãß°¡³¯Â¥ ÀÛ¾÷ÀÚ Ãß°¡³»¿ë * 2006.05 À̹ý¼® Å×½ºÆ® ¹öÁ¯ * * ÁÖÀÇ»çÇ× : Dynamic Light´Â ÇöÀç Ãß°¡ ºÐ¼®¹× º¯Çü ÇØ¾ß ÇÑ´Ù. * =================================================================== */ #pragma once class cLightAgent { public: static cLightAgent* mpLightAgent; cLightAgent(); ~cLightAgent(); /// ÃʱâÈ­ bool Init(); void Close(); /// void AttachSkyLight( NiNode* pNode ); /// ÇÏ´Ã ÁÖº¯±¤ void SetSkyAmbientLight( const NiColor& ambient, float dimmer ); void SetSkyAmbient( const NiColor& ambient ); void SetSkyDimmer( float dimmer ); /// ÁöÇü ÁÖº¯±¤ void SetTerrainAmbientLight( const NiColor& ambient, float dimmer ); void SetTerrainAmbient( const NiColor& ambient ); void SetTerrainDimmer( float dimmer ); /// Àå¸é ÁÖº¯±¤ void SetSceneAmbient( unsigned int i, const NiColor& ambient ); void SetSceneDimmer( unsigned int i, float dimmer ); /// Àå¸é ¹æÇⱤ NiDirectionalLight* GetSceneDirLight( unsigned int i ) const; /// Dimmer Á¤º¸ //void SetDimmer( unsigned int lightType, float dimmer ); //float GetDimmer( unsigned int lightType ); /// Color Á¤º¸ //void SetNiColor( unsigned int lightType, NiColor color ); //const NiColor& GetNiColor( unsigned int lightType ); /// ÁÖº¯±¤À» ¸®ÅÏ NiAmbientLight* GetTerrainAmbientLight() const; NiAmbientLight* GetSceneAmbientLight( unsigned int i ) const; NiAmbientLight* GetSelectAmbientLight() const; /// ¿ùµåÀÇ Àüü ±âº» LightÁ¤º¸ //NiDirectionalLight* GetWorldLight() { return mpCharacterDirLight[eLIGHT_MAIN]; } //protected: /// ±âº» LightŬ·¡½º¸¦ »ç¿ëÇÏÁö ¾Ê°í º¯ÇüÀÌ ¿ëÀÌÇÏ°Ô Á¦ÀÛ ÇØº»´Ù. /// Å×½ºÆ® //template //T* GetLight( NiNode* pNode, T* dummy = 0 ); protected: NiAmbientLightPtr mSkyAmbientLight; NiAmbientLightPtr mTerrainAmbientLight; NiAmbientLightPtr mSceneAmbientLight[2]; NiDirectionalLightPtr mSceneDirLight[2]; NiAmbientLightPtr mSelectAmbientLight; }; inline NiAmbientLight* cLightAgent::GetTerrainAmbientLight() const { return mTerrainAmbientLight; } inline NiAmbientLight* cLightAgent::GetSceneAmbientLight( unsigned int i ) const { assert( i == 0 || i == 1 ); return mSceneAmbientLight[i]; } inline NiDirectionalLight* cLightAgent::GetSceneDirLight( unsigned int i ) const { assert( i == 0 || i == 1 ); return mSceneDirLight[i]; } inline NiAmbientLight* cLightAgent::GetSelectAmbientLight() const { return mSelectAmbientLight; } #define LIGHTAGENT cLightAgent::mpLightAgent