aboutsummaryrefslogtreecommitdiff
path: root/include/cru/platform/graphics/Geometry.h
diff options
context:
space:
mode:
authorYuqian Yang <crupest@crupest.life>2025-09-21 23:40:30 +0800
committerYuqian Yang <crupest@crupest.life>2025-12-18 23:25:06 +0800
commitc3412099485e06109f83b3105ce6c083c2b65dd1 (patch)
tree3ae2ad9026cf1c3279a6cac00d7726ed684de8db /include/cru/platform/graphics/Geometry.h
parent6bbadfc6b1eaf14f68a27cb8e378f5e09ab38de6 (diff)
downloadcru-c3412099485e06109f83b3105ce6c083c2b65dd1.tar.gz
cru-c3412099485e06109f83b3105ce6c083c2b65dd1.tar.bz2
cru-c3412099485e06109f83b3105ce6c083c2b65dd1.zip
HALF WORK!geo-arc
Diffstat (limited to 'include/cru/platform/graphics/Geometry.h')
-rw-r--r--include/cru/platform/graphics/Geometry.h16
1 files changed, 16 insertions, 0 deletions
diff --git a/include/cru/platform/graphics/Geometry.h b/include/cru/platform/graphics/Geometry.h
index ef661f2a..92338750 100644
--- a/include/cru/platform/graphics/Geometry.h
+++ b/include/cru/platform/graphics/Geometry.h
@@ -63,6 +63,22 @@ struct CRU_PLATFORM_GRAPHICS_API IGeometry : virtual IGraphicsResource {
* virtual so it can override them.
*/
struct CRU_PLATFORM_GRAPHICS_API IGeometryBuilder : virtual IGraphicsResource {
+ private:
+ constexpr static auto kLogTag = "cru::platform::graphics::IGeometryBuilder";
+
+ public:
+ struct ArcInfo {
+ Point center;
+ // In radian.
+ float start_angle;
+ // In radian.
+ float end_angle;
+ };
+
+ static ArcInfo CalculateArcInfo(const Point& start_point, const Point& radius,
+ float angle, bool is_large_arc,
+ bool is_clockwise, const Point& end_point);
+
virtual Point GetCurrentPosition() = 0;
virtual void MoveTo(const Point& point) = 0;