diff --git a/Source/utils/CGMappings.swift b/Source/utils/CGMappings.swift index e3acc84b..1f727bd8 100644 --- a/Source/utils/CGMappings.swift +++ b/Source/utils/CGMappings.swift @@ -153,3 +153,52 @@ public extension Node { } } + +extension CGPath { + + public func toMacaw() -> Path { + + func createPathSegment(type: PathSegmentType, points: UnsafeMutablePointer, count: Int) -> PathSegment { + + var data = [Double]() + for index in 0.. Void) { + typealias Body = @convention(block) (CGPathElement) -> Void + func callback(info: UnsafeMutableRawPointer?, element: UnsafePointer) { + let body = unsafeBitCast(info, to: Body.self) + body(element.pointee) + } + let unsafeBody = unsafeBitCast(body, to: UnsafeMutableRawPointer.self) + self.apply(info: unsafeBody, function: callback) + } +}