Shape
public protocol Shape : AnyObject, Decodable, Encodable
Base protocol which all shapes must implement.
Note: If you implement your own shapes, see Drawing.shapeDecoder
!
-
Globally unique identifier for this shape. Meant to be used for equality checks, especially for network-based updates.
Declaration
Swift
var id: String { get set }
-
String value of this shape, for serialization and debugging
Declaration
Swift
static var type: String { get }
-
Draw this shape to the given Core Graphics context. Transforms for drawing position and scale are already applied.
Declaration
Swift
func render(in context: CGContext)
-
Return true iff the given point meaningfully intersects with the pixels drawn by this shape. See
ShapeWithBoundingRect
for a shortcut.Declaration
Swift
func hitTest(point: CGPoint) -> Bool
-
Apply any relevant values in
userSettings
(colors, sizes, fonts…) to this shapeDeclaration
Swift
func apply(userSettings: UserSettings)