#pragma once

class Camera;

class Level
{
public:
	Level();
	Level(Camera* camera);
	virtual ~Level();

	Level(const Level& other) = default;
	Level(Level&& other) = default;

	virtual void Update(float elapsedSec) = 0;
	virtual void Draw() const = 0;
	virtual void MouseMove(const Vector2f& mousePos) = 0;
	virtual void ProcessImGui() = 0;

protected:
	Camera* m_pCamera;
};
