//@STATE=作成中
//@DESCRIPTION ---------------------------------------------------------------
// Fade.h: Fade クラスのインターフェイス
// ・現状では、フェードイン・アウト中のパラメータ変更は許されない。
// ・フェードイン・アウトの指定以外のパラメータをセットしなくても、とりあえず動作します。
//
//	履歴：
//@DESCRIPTION_END -----------------------------------------------------------
//@AUTHOR=S.F.
///////////////////////////////////////////////////////////////////////////////


#if !defined(AFX_FADE_H__28EB70BE_6E6E_451C_BF97_CCB72EFC77B5__INCLUDED_)
#define AFX_FADE_H__28EB70BE_6E6E_451C_BF97_CCB72EFC77B5__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

#include "sfinterface.h"

namespace sf {
	namespace application {
		namespace scene {
			// ----------------------------------------------------------------
			// フェードイン・アウトインターフェース
			// ----------------------------------------------------------------
			class SF_INTERFACE Fade
			{
			public:
				enum TYPE {
					FADE_IN,	//フェードイン//
					FADE_OUT	//フェードアウト//
				};

				Fade(){};
				virtual ~Fade(){};

				// ACCESS //
				// フェードイン・アウトのスピード
				virtual void speed(const float  value) = 0;
				virtual const float  speed() = 0;
				// フェードインか、フェードアウトか
				virtual const Fade::TYPE  fadeType() = 0;
				virtual void fadeType(const Fade::TYPE  value) = 0;
				// スタート時の色
				virtual const system::console::COLOR  startColor(void) = 0;
				virtual void startColor(const system::console::COLOR  value ) = 0;
				// 終了時の色
				virtual const system::console::COLOR  endColor(void) = 0;
				virtual void endColor(const system::console::COLOR  value) = 0;
				// サウンドボリュームも一緒にフェードイン・アウトするかどうか
				virtual const bool fadeVolumeFlag() = 0;
				virtual void fadeVolumeFlag(const bool  value) = 0;
				
				//　初期化処理
				// パラメータをセットした後は、呼び出すこと。
				virtual void initialize() = 0;

			};// Fade
		}
	}
}

#endif // !defined(AFX_FADE_H__28EB70BE_6E6E_451C_BF97_CCB72EFC77B5__INCLUDED_)
