#pragma once

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

#include "Mix/Scene/ILocalLight.h"

namespace Mix{ namespace Scene{

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

	public:
		//! @brief ライトが届く最小半径を取得します
		//! @return ライトが届く最小半径
		virtual Float32 GetInnerRadius( void ) const = 0;
		//! @brief ライトが届く最小半径を取得します
		//! @return ライトが届く最小半径
		virtual Float32 GetOuterRadius( void ) const = 0;
		//! @brief ライトが届く半径を設定します
		//! @param[in] innerRadius ライトの届く最小半径( 0.0f〜正の無限大 )
		//! @param[in] outerRadius ライトの届く最大半径( 0.0f〜正の無限大 )
		//! @note innerRadius <= outerRadius である必要があります
		virtual void SetRadius( Float32 innerRadius, Float32 outerRadius ) = 0;
	};

}}
