#pragma once

//! @file Mix/Scene/ILightShaftsCaster.h
//! @brief ライトシャフトキャスターインターフェースインクルードファイル

#include "Mix/Scene/IRendererObject.h"

namespace Mix{ namespace Scene{

	//! @class ILightShaftsCaster
	//! @brief ライトシャフトキャスターインターフェース
	class ILightShaftsCaster : public Mix::Scene::IRendererObject
	{
	protected:
		//! @brief デストラクタ
		virtual ~ILightShaftsCaster( void ) {}

	public:
		//! @brief 有効かどうかを確認します
		//! @return 有効な場合は True を返します
		virtual Boolean IsEnabled( void ) const = 0;
		//! @brief 有効にするかどうかを設定します
		//! @param[in] state 有効にする場合は True
		virtual void SetEnabled( Boolean state ) = 0;

		//! @brief 位置を取得します
		//! @return 位置を表す Mix::Vector3 クラスを返します
		virtual const Mix::Vector3& GetPosition( void ) const = 0;
		//! @brief 位置を設定します
		//! @param[in] pos 位置を表す Mix::Vector3 クラス
		virtual void SetPosition( const Mix::Vector3& pos ) = 0;
	};

}}
