diff -r 02f142b399b1 -r 94c92c923713 src/geometry.h --- a/src/geometry.h Sat Jul 24 01:50:38 2021 +0300 +++ b/src/geometry.h Sun Jul 25 13:49:37 2021 +0300 @@ -103,10 +103,31 @@ std::vector points; }; - inline bool isclose(const glm::vec3& a, const glm::vec3& b) + inline constexpr bool isclose(const glm::vec3& a, const glm::vec3& b) { return qFuzzyCompare(a.x, b.x) and qFuzzyCompare(a.y, b.y) and qFuzzyCompare(a.z, b.z); } + + struct CircleF + { + QPointF center; + qreal radius; + }; + + /** + * @param center + * @param radius + * @returns a QRectF that encloses the specified circle + */ + inline constexpr QRectF inscribe(const CircleF& circle) + { + return { + circle.center.x() - circle.radius, + circle.center.y() - circle.radius, + circle.radius * 2, + circle.radius * 2 + }; + } }