aboutsummaryrefslogtreecommitdiff
path: root/src/osx/graphics/quartz/Geometry.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/osx/graphics/quartz/Geometry.cpp')
-rw-r--r--src/osx/graphics/quartz/Geometry.cpp79
1 files changed, 0 insertions, 79 deletions
diff --git a/src/osx/graphics/quartz/Geometry.cpp b/src/osx/graphics/quartz/Geometry.cpp
deleted file mode 100644
index c88add87..00000000
--- a/src/osx/graphics/quartz/Geometry.cpp
+++ /dev/null
@@ -1,79 +0,0 @@
-#include "cru/osx/graphics/quartz/Geometry.h"
-#include "cru/osx/graphics/quartz/Convert.h"
-
-#include <memory>
-
-namespace cru::platform::graphics::osx::quartz {
-QuartzGeometry::QuartzGeometry(IGraphicsFactory *graphics_factory,
- CGPathRef cg_path)
- : OsxQuartzResource(graphics_factory), cg_path_(cg_path) {}
-
-QuartzGeometry::~QuartzGeometry() { CGPathRelease(cg_path_); }
-
-bool QuartzGeometry::FillContains(const Point &point) {
- return CGPathContainsPoint(cg_path_, nullptr, CGPoint{point.x, point.y},
- kCGPathFill);
-}
-
-Rect QuartzGeometry::GetBounds() {
- auto bounds = CGPathGetPathBoundingBox(cg_path_);
- if (CGRectIsNull(bounds)) return {};
- return Convert(bounds);
-}
-
-std::unique_ptr<IGeometry> QuartzGeometry::Transform(const Matrix &matrix) {
- auto cg_matrix = Convert(matrix);
- auto cg_path = CGPathCreateCopyByTransformingPath(cg_path_, &cg_matrix);
- return std::make_unique<QuartzGeometry>(GetGraphicsFactory(), cg_path);
-}
-
-std::unique_ptr<IGeometry> QuartzGeometry::CreateStrokeGeometry(float width) {
- auto cg_path = CGPathCreateCopyByStrokingPath(
- cg_path_, nullptr, width, kCGLineCapButt, kCGLineJoinMiter, 10);
- return std::make_unique<QuartzGeometry>(GetGraphicsFactory(), cg_path);
-}
-
-QuartzGeometryBuilder::QuartzGeometryBuilder(IGraphicsFactory *graphics_factory)
- : OsxQuartzResource(graphics_factory) {
- cg_mutable_path_ = CGPathCreateMutable();
-}
-
-QuartzGeometryBuilder::~QuartzGeometryBuilder() {
- CGPathRelease(cg_mutable_path_);
-}
-
-Point QuartzGeometryBuilder::GetCurrentPosition() {
- return Convert(CGPathGetCurrentPoint(cg_mutable_path_));
-}
-
-void QuartzGeometryBuilder::MoveTo(const Point &point) {
- CGPathMoveToPoint(cg_mutable_path_, nullptr, point.x, point.y);
-}
-
-void QuartzGeometryBuilder::LineTo(const Point &point) {
- CGPathAddLineToPoint(cg_mutable_path_, nullptr, point.x, point.y);
-}
-
-void QuartzGeometryBuilder::CubicBezierTo(const Point &start_control_point,
- const Point &end_control_point,
- const Point &end_point) {
- CGPathAddCurveToPoint(cg_mutable_path_, nullptr, start_control_point.x,
- start_control_point.y, end_control_point.x,
- end_control_point.y, end_point.x, end_point.y);
-}
-
-void QuartzGeometryBuilder::QuadraticBezierTo(const Point &control_point,
- const Point &end_point) {
- CGPathAddQuadCurveToPoint(cg_mutable_path_, nullptr, control_point.x,
- control_point.y, end_point.x, end_point.y);
-}
-
-void QuartzGeometryBuilder::CloseFigure(bool close) {
- if (close) CGPathCloseSubpath(cg_mutable_path_);
-}
-
-std::unique_ptr<IGeometry> QuartzGeometryBuilder::Build() {
- return std::make_unique<QuartzGeometry>(GetGraphicsFactory(),
- CGPathCreateCopy(cg_mutable_path_));
-}
-} // namespace cru::platform::graphics::osx::quartz