Rectangle public struct Rectangle Initializers init(origin:size:) public init(origin: Site, size: Size) Properties x var x: Double y var y: Double width var width: Double height var height: Double tl var tl: Site bl var bl: Site tr var tr: Site br var br: Site origin var origin: Site size var size: Size Methods expandToContainPoint(_:padding:) public mutating func expandToContainPoint(_ p: Site, padding: Double = 20.0) getLine(_:) public func getLine(_ edge: Edge) -> LineSegment getEdges() public func getEdges() -> [LineSegment] rect(from:with:) public static func rect(from sourceRect: Rectangle, with padding: Double) -> Rectangle contains(_:) func contains(_ point: Site?) -> Bool intersection(origin:direction:) func intersection(origin: Site, direction: Vector2D) -> (point: Site, edge: Rectangle.Edge) getNextCCW(_:) private func getNextCCW(_ edge: Edge) -> (edge: Edge, corner: Site) sideForPoint(p:) func sideForPoint(p: Site) -> Edge? ccwTraverse(startEdge:endEdge:) func ccwTraverse(startEdge: Edge, endEdge: Edge) -> [Site] getRectPolylineForCCW(_:end:) func getRectPolylineForCCW(_ start: Site, end: Site) -> [Site] toClipper() public func toClipper() -> Clipper