SpelunkyRemake / Camera.h
Camera.h
Raw
#pragma once

class Camera
{
public:
	Camera(float width, float height);
	~Camera();

	void Translate() const;
	void SetLevelBoundaries(const Rectf& levelBoundaries);

	void SetTarget(const Rectf& target);
	void SnapToTarget();

	void SetOffset(const Point2f& offset);
	Point2f& GetOffset();

	void SetSmoothing(float smoothing);
	float& GetSmoothing();

	void Update(float elapsedSec);

private:
	Point2f m_Position;
	const Rectf* m_pTarget;
	float m_Smoothing;

	Point2f m_Offset;

	float m_Width;
	float m_Height;
	Rectf m_LevelBoundaries;

	void Clamp(Point2f& bottomLeftPos) const;
};