#pragma once

//! @file Mix/Scene/IHemisphereLight.h
//! @brief 半球ライトインターフェースインクルードファイル

#include "Mix/Scene/ILight.h"

namespace Mix{ namespace Scene{

	//! @class IHemisphereLight
	//! @brief 半球ライトインターフェース
	class IHemisphereLight : public Mix::Scene::ILight
	{
	protected:
		//! @brief デストラクタ
		virtual ~IHemisphereLight( void ) {}

	public:
		//! @brief 軸( 空への方向 )を取得します
		//! @return 軸を表す Mix::Vector3 クラスを返します
		virtual const Mix::Vector3& GetAxis( void ) const = 0;
		//! @brief 軸( 空への方向 )を設定します
		//! @param[in] axis 軸を表す Mix::Vector3 クラス
		virtual void SetAxis( const Mix::Vector3& axis ) = 0;

		//! @brief 地上から発する色を取得します
		//! @return 地上から発する色を表す Mix::Vector4 クラスを返します
		virtual const Mix::Vector4& GetGroundColor( void ) const = 0;
		//! @brief 地上から発する色を設定します
		//! @param[in] color 地上から発する色を表す Mix::Vector4 クラス
		virtual void SetGroundColor( const Mix::Vector4& color ) = 0;

		//! @brief 空から発する色を取得します
		//! @return 空から発する色を表す Mix::Vector4 クラスを返します
		virtual const Mix::Vector4& GetSkyColor( void ) const = 0;
		//! @brief 空から発する色を設定します
		//! @param[in] color 空から発する色を表す Mix::Vector4 クラス
		virtual void SetSkyColor( const Mix::Vector4& color ) = 0;
	};

}}
