/* ========================================================================== * ÀÛ ¼º ÀÚ : À̼ø±Ô * ÀÛ ¼º ÀÏ : 2007.03.09 * ³» ¿ë : ȯ°æ ÆíÁýÀÚ * ÁÖÀÇ»çÇ× : *===========================================================================*/ #pragma once class cSceneNode; class cAreaSceneNode; class cEnvCameraDialog; class cEnvLevelDistanceDialog; class cEnvSkyDialog; class cEnvDirLightDialog; /// ȯ°æ ÆíÁýÀÚ class cEnvEditor { static cEnvEditor* mSingleton; public: cEnvEditor(); ~cEnvEditor(); /// ÀúÀå bool Save( cFileSaver& saver ); /// Ä«¸Þ¶ó void SetCamFarDistance( float dist ); /// °¡½Ã ·¹º§ °Å¸® void SetLevelDistance( unsigned int dist0, unsigned int dist1, unsigned int dist2 ); /// ÇÏ´Ã bool LoadSky( const cString& pathName ); void Update(); void SetSkyEnabled( bool enabled ); void SetSkyScale( float scale ); /// ¹æÇⱤ void SetDirLightAmbient( unsigned int i, const NiColor& color ); void SetDirLightDiffuse( unsigned int i, const NiColor& color ); void SetDirLightDimmer( unsigned int i, float dimmer ); void SetDirLightRotate( unsigned int i, float xangle, float yangle, float zangle ); /// ´ÙÀ̾ó·Î±× void SetCameraDialog( cEnvCameraDialog* dlg ); void SetLevelDistanceDialog( cEnvLevelDistanceDialog* dlg ); void SetSkyDialog( cEnvSkyDialog* dlg ); void SetDirLightDialog( cEnvDirLightDialog* dlg ); public: /// ´ÜÀÏü¸¦ ¸®ÅÏ static cEnvEditor* GetSingleton(); protected: /// ´ÙÀ̾ó·Î±× cEnvCameraDialog* mCameraDialog; cEnvLevelDistanceDialog* mLevelDistanceDialog; cEnvSkyDialog* mSkyDialog; cEnvDirLightDialog* mDirLightDialog; /// Àüü ¿µ¿ª ³ëµå cAreaSceneNode* mGlobalArea; }; inline void cEnvEditor::SetCameraDialog( cEnvCameraDialog* dlg ) { assert( dlg ); mCameraDialog = dlg; } inline void cEnvEditor::SetLevelDistanceDialog( cEnvLevelDistanceDialog* dlg ) { assert( dlg ); mLevelDistanceDialog = dlg; } inline void cEnvEditor::SetSkyDialog( cEnvSkyDialog* dlg ) { assert( dlg ); mSkyDialog = dlg; } inline void cEnvEditor::SetDirLightDialog( cEnvDirLightDialog* dlg ) { assert( dlg ); mDirLightDialog = dlg; } inline cEnvEditor* cEnvEditor::GetSingleton() { return mSingleton; } #define ENVEDIT cEnvEditor::GetSingleton()