#pragma once
////////////////////////////////////////////////////////////////////////////////
// Filename: lightclass.h
////////////////////////////////////////////////////////////////////////////////
#ifndef _LIGHTCLASS_H_
#define _LIGHTCLASS_H_


//////////////
// INCLUDES //
//////////////
#include <directxmath.h>
#include "macro.h"
using namespace DirectX;


////////////////////////////////////////////////////////////////////////////////
// Class name: light_class
////////////////////////////////////////////////////////////////////////////////
class light_class
{
public:
    light_class();
    light_class(const light_class&);
    ~light_class();

	void SetAmbientColor(float, float, float, float);
	void SetDiffuseColor(float, float, float, float);
	void SetDirection(float, float, float);
	void SetSpecularColor(float, float, float, float);
	void SetSpecularPower(float);
	void SetPosition(float, float, float);
	
	XMFLOAT4 GetAmbientColor();
	XMFLOAT4 GetDiffuseColor();
	XMFLOAT3 GetDirection();
	XMFLOAT4 GetSpecularColor();
	float GetSpecularPower();
	XMFLOAT4 GetPosition();

	void SetIntensity(float intensity) { m_intensity = intensity; }
	float GetIntensity() const { return m_intensity; }
	
private:
	XMFLOAT4 m_ambientColor;
	XMFLOAT4 m_diffuseColor;
	XMFLOAT3 m_direction;
	XMFLOAT4 m_specularColor;
	float m_intensity;
	float m_specularPower;
	XMFLOAT4 m_position;
};

#endif