cpp_drawing/shapes/circle.hpp

34 lines
763 B
C++

#pragma once
#include "shape.hpp"
namespace shapes
{
/**
* @brief Circle shape
*
* Represents a circle defined by a center point and a radius.
*/
class Circle final : public Shape
{
public:
Circle(const math::Vector& center, float radius) : m_center(center), m_radius(radius) {}
const math::Vector& GetCenter() const { return m_center; }
float GetRadius() const { return m_radius; }
void Translate(const math::Vector& offset) override;
void Rotate(const math::Vector& center, float angle) override;
void Scale(const math::Vector& center, float factor) override;
void Draw(Renderer& renderer) const override;
~Circle() override = default;
private:
math::Vector m_center;
float m_radius;
};
} // namespace shapes