#ifndef _E3D_LIGHT_MANAGER_
#define _E3D_LIGHT_MANAGER_

#include <map>

#include <easy3d.h>


namespace HPL {
namespace E3D {

/** ライト情報
  * 
  */
class LightData {
public:
	int m_nLightID;
	D3DXVECTOR3 m_vDirection;
	E3DCOLOR4UC m_cColor;

	
public:
	LightData(int nLightID, D3DXVECTOR3& vDirection, E3DCOLOR4UC& cColor);
	~LightData();

};

/** 各ライトとその位置、方向等の情報を管理するクラス
  * 
  */
class E3DLightManager {
private:
	//! 初期設定情報
	std::map<int, LightData*> m_mapMasterLightDataMap;

	std::map<int, LightData*> m_mapLightDataMap;
public:
	E3DLightManager();
	~E3DLightManager();

public: // Getter/Setter
	/**
	  * @param[in]	nUserID			ユーザが管理のために指定するID
	  * @param[in]	vDirection		方向
	  * @param[in]	cColor			色
	  * @retval		0				成功
	  *				-1				失敗した
	  * @exception	HPLException*	既に存在しているUserID
	  */
	int create( int nUserID, D3DXVECTOR3& vDirection, E3DCOLOR4UC& cColor );

	/**
	  * @param[in] 
	  * @retval
	  * @exception HPLException* 存在しないIDを指定したとき
	  */
	LightData* get_LightData( int id );
};
}
}

#endif
