////////////////////////////////////////////////////////////////////////////////
// Filename: cameraclass.h
////////////////////////////////////////////////////////////////////////////////
#ifndef _CAMERACLASS_H_
#define _CAMERACLASS_H_


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


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

	void set_position(float, float, float);
	void set_rotation(float, float, float);

	XMFLOAT3 get_position();
	XMFLOAT3 get_rotation();


	void render();
	XMMATRIX get_view_matrix(XMMATRIX& view_matrix) const;

	void render_reflection(float);
	void get_reflection_view_matrix(XMMATRIX&) const;

private:
	float position_x_, position_y_, position_z_;
	float rotation_x_, rotation_y_, rotation_z_;
	XMMATRIX view_matrix_;
	XMMATRIX reflection_view_matrix_;

};

#endif