#pragma once

class Camera
{
public:
	Camera( );
	Camera( const Point2f& position, float scale = 1);
	virtual ~Camera();

	void SetPosition( const Point2f& position ) { m_Position = position; }
	void SetScale( const float scale ) { m_Scale = scale; }

	const Point2f& GetPosition( ) const { return m_Position; }
	float GetScale( ) const { return m_Scale; }

	void BeginRendering() const;
	void EndRendering() const;

	Point2f TransformMouse	(const Point2f& mousePos) const;
	Rectf Viewport = Rectf{ 0, 0, 846.f, 500.f };
	//TODO: Remove this and make it some static
	
private:
	Point2f m_Position;
	float m_Scale;

};
