Build Information
Successful build of Metron, reference 1.0.4 (ac32b1), with Swift 6.4 for macOS (SPM) on 15 Sep 2026 22:24:38 UTC.
Swift 6 data race errors: 0
Build Command
env DEVELOPER_DIR=/Applications/Xcode-27.0.0-Release.Candidate.app xcrun swift build --arch arm64Build Log
========================================
RunAll
========================================
Builder version: 5.1.0
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/toineheuvelmans/Metron.git
Reference: 1.0.4
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/toineheuvelmans/Metron
* tag 1.0.4 -> FETCH_HEAD
HEAD is now at ac32b11 Merge pull request #18 from LinkAndreas/#15-Fix-line-contains
Cloned https://github.com/toineheuvelmans/Metron.git
Revision (git rev-parse @):
ac32b1162ba3c52e3844f6478c3d5acfde9c94c4
SUCCESS checkout https://github.com/toineheuvelmans/Metron.git at 1.0.4
========================================
Build
========================================
Selected platform: macosSpm
Swift version: 6.4
Building package at path: $PWD
https://github.com/toineheuvelmans/Metron.git
Running build ...
env DEVELOPER_DIR=/Applications/Xcode-27.0.0-Release.Candidate.app xcrun swift build --arch arm64
Building for debugging...
[Planning deferred tasks]
[19 / 28]
[31 / 40] Metron
[32 / 40] Metron
[37 / 40] Metron
Build complete! (7.81 sec)
Fetching https://github.com/Quick/Nimble.git
Fetching https://github.com/Quick/Quick.git
[1/14925] Fetching quick
[151/34911] Fetching quick, nimble
Fetched https://github.com/Quick/Nimble.git (2.51s)
Fetched https://github.com/Quick/Quick.git (2.51s)
Computing version for https://github.com/Quick/Quick.git
Computed https://github.com/Quick/Quick.git at 1.3.4 (4.73s)
Computing version for https://github.com/Quick/Nimble.git
Computed https://github.com/Quick/Nimble.git at 7.3.4 (0.63s)
Creating working copy for https://github.com/Quick/Quick.git
Working copy of https://github.com/Quick/Quick.git resolved at 1.3.4
Creating working copy for https://github.com/Quick/Nimble.git
Working copy of https://github.com/Quick/Nimble.git resolved at 7.3.4
/Users/admin/builder/spi-builder-workspace/source/Metron/Extension/CGAffineTransform.swift:21:5: [1;33mwarning: [1;39m'public' modifier is redundant for instance method declared in a public extension[0;0m
[0;36m19 |[0;0m
[0;36m20 |[0;0m /// Applies the given transform using the origin as anchor point.
[0;36m21 |[0;0m public func applying(_ t: CGAffineTransform, anchorPoint: CGPoint) -> Self {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for instance method declared in a public extension[0;0m
[0;36m22 |[0;0m let m = applying(CGAffineTransform(translationX: -anchorPoint.x, y: -anchorPoint.y))
[0;36m23 |[0;0m let mt = m.applying(t)
/Users/admin/builder/spi-builder-workspace/source/Metron/Extension/CGPoint.swift:6:5: [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m4 |[0;0m
[0;36m5 |[0;0m /// - returns: A `CGVector` with dx: x and dy: y.
[0;36m6 |[0;0m public var vector: CGVector {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m7 |[0;0m return CGVector(dx: x, dy: y)
[0;36m8 |[0;0m }
/Users/admin/builder/spi-builder-workspace/source/Metron/Extension/CGPoint.swift:11:5: [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m9 |[0;0m
[0;36m10 |[0;0m /// - returns: A `CGPoint` with rounded x and y values.
[0;36m11 |[0;0m public var rounded: CGPoint {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m12 |[0;0m return CGPoint(x: round(x), y: round(y))
[0;36m13 |[0;0m }
/Users/admin/builder/spi-builder-workspace/source/Metron/Extension/CGPoint.swift:16:5: [1;33mwarning: [1;39m'public' modifier is redundant for instance method declared in a public extension[0;0m
[0;36m14 |[0;0m
[0;36m15 |[0;0m /// - returns: The Euclidean distance from self to the given point.
[0;36m16 |[0;0m public func distance(to point: CGPoint) -> CGFloat {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for instance method declared in a public extension[0;0m
[0;36m17 |[0;0m return (point - self).magnitude
[0;36m18 |[0;0m }
/Users/admin/builder/spi-builder-workspace/source/Metron/Extension/CGPoint.swift:21:5: [1;33mwarning: [1;39m'public' modifier is redundant for instance method declared in a public extension[0;0m
[0;36m19 |[0;0m
[0;36m20 |[0;0m /// Constrains the x and y value to within the provided rect.
[0;36m21 |[0;0m public func clipped(to rect: CGRect) -> CGPoint {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for instance method declared in a public extension[0;0m
[0;36m22 |[0;0m return CGPoint(x: x.clipped(rect.minX, rect.maxX),
[0;36m23 |[0;0m y: y.clipped(rect.minY, rect.maxY))
/Users/admin/builder/spi-builder-workspace/source/Metron/Extension/CGPoint.swift:27:5: [1;33mwarning: [1;39m'public' modifier is redundant for instance method declared in a public extension[0;0m
[0;36m25 |[0;0m
[0;36m26 |[0;0m /// - returns: The relative position inside the provided rect.
[0;36m27 |[0;0m public func position(in rect: CGRect) -> CGPoint {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for instance method declared in a public extension[0;0m
[0;36m28 |[0;0m return CGPoint(x: x - rect.origin.x,
[0;36m29 |[0;0m y: y - rect.origin.y)
/Users/admin/builder/spi-builder-workspace/source/Metron/Extension/CGPoint.swift:35:5: [1;33mwarning: [1;39m'public' modifier is redundant for instance method declared in a public extension[0;0m
[0;36m33 |[0;0m /// where horizontal and vertical position are normalized
[0;36m34 |[0;0m /// (i.e. mapped to 0-1 range).
[0;36m35 |[0;0m public func normalizedPosition(in rect: CGRect) -> CGPoint {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for instance method declared in a public extension[0;0m
[0;36m36 |[0;0m let p = position(in: rect)
[0;36m37 |[0;0m return CGPoint(x: (1.0 / rect.width) * p.x,
/Users/admin/builder/spi-builder-workspace/source/Metron/Extension/CGPoint.swift:42:5: [1;33mwarning: [1;39m'public' modifier is redundant for instance method declared in a public extension[0;0m
[0;36m40 |[0;0m
[0;36m41 |[0;0m /// - returns: True if the line contains the point.
[0;36m42 |[0;0m public func isAt(line: Line) -> Bool {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for instance method declared in a public extension[0;0m
[0;36m43 |[0;0m return line.contains(self)
[0;36m44 |[0;0m }
/Users/admin/builder/spi-builder-workspace/source/Metron/Extension/CGRect.swift:7:5: [1;33mwarning: [1;39m'public' modifier is redundant for initializer declared in a public extension[0;0m
[0;36m5 |[0;0m // MARK: Convenience initializers
[0;36m6 |[0;0m
[0;36m7 |[0;0m public init(size: CGSize) {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for initializer declared in a public extension[0;0m
[0;36m8 |[0;0m self.init(origin: .zero, size: size)
[0;36m9 |[0;0m }
/Users/admin/builder/spi-builder-workspace/source/Metron/Extension/CGRect.swift:11:5: [1;33mwarning: [1;39m'public' modifier is redundant for initializer declared in a public extension[0;0m
[0;36m9 |[0;0m }
[0;36m10 |[0;0m
[0;36m11 |[0;0m public init(center: CGPoint, size: CGSize) {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for initializer declared in a public extension[0;0m
[0;36m12 |[0;0m self.init(origin: CGPoint(x: center.x - size.width / 2, y: center.y - size.height / 2), size: size)
[0;36m13 |[0;0m }
/Users/admin/builder/spi-builder-workspace/source/Metron/Extension/CGRect.swift:15:5: [1;33mwarning: [1;39m'public' modifier is redundant for initializer declared in a public extension[0;0m
[0;36m13 |[0;0m }
[0;36m14 |[0;0m
[0;36m15 |[0;0m public init(origin: CGPoint, edges: CGFloat) {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for initializer declared in a public extension[0;0m
[0;36m16 |[0;0m self.init(origin: origin, size: CGSize(edges: edges))
[0;36m17 |[0;0m }
/Users/admin/builder/spi-builder-workspace/source/Metron/Extension/CGRect.swift:19:5: [1;33mwarning: [1;39m'public' modifier is redundant for initializer declared in a public extension[0;0m
[0;36m17 |[0;0m }
[0;36m18 |[0;0m
[0;36m19 |[0;0m public init(center: CGPoint, edges: CGFloat) {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for initializer declared in a public extension[0;0m
[0;36m20 |[0;0m self.init(center: center, size: CGSize(edges: edges))
[0;36m21 |[0;0m }
/Users/admin/builder/spi-builder-workspace/source/Metron/Extension/CGRect.swift:23:5: [1;33mwarning: [1;39m'public' modifier is redundant for initializer declared in a public extension[0;0m
[0;36m21 |[0;0m }
[0;36m22 |[0;0m
[0;36m23 |[0;0m public init(minX: CGFloat, minY: CGFloat, maxX: CGFloat, maxY: CGFloat) {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for initializer declared in a public extension[0;0m
[0;36m24 |[0;0m self.init(origin: CGPoint(x: minX, y: minY), size: CGSize(width: maxX - minX, height: maxY - minY))
[0;36m25 |[0;0m }
/Users/admin/builder/spi-builder-workspace/source/Metron/Extension/CGRect.swift:29:5: [1;33mwarning: [1;39m'public' modifier is redundant for initializer declared in a public extension[0;0m
[0;36m27 |[0;0m /// Initializes a `CGRect` of specified size, positioned such that
[0;36m28 |[0;0m /// the provided `origin` point will be in the specified `corner`.
[0;36m29 |[0;0m public init(size: CGSize, origin: CGPoint, inCorner corner: Corner) {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for initializer declared in a public extension[0;0m
[0;36m30 |[0;0m switch corner {
[0;36m31 |[0;0m case .minXminY: self.init(origin: origin, size: size)
/Users/admin/builder/spi-builder-workspace/source/Metron/Extension/CGRect.swift:42:5: [1;33mwarning: [1;39m'public' modifier is redundant for initializer declared in a public extension[0;0m
[0;36m40 |[0;0m /// Initializes a `CGRect` that is scaled – preserving aspect ratio – to fill
[0;36m41 |[0;0m /// the entire rect specified at `inRect:`.
[0;36m42 |[0;0m public init(aspectFillSize size: CGSize, inRect rect: CGRect) {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for initializer declared in a public extension[0;0m
[0;36m43 |[0;0m let ratio = size / rect.size
[0;36m44 |[0;0m let smallestRatio = min(ratio.width, ratio.height)
/Users/admin/builder/spi-builder-workspace/source/Metron/Extension/CGRect.swift:50:5: [1;33mwarning: [1;39m'public' modifier is redundant for initializer declared in a public extension[0;0m
[0;36m48 |[0;0m /// Initializes a `CGRect` that is scaled – preserving aspect ratio – to fit
[0;36m49 |[0;0m /// exactly in the rect specified at `inRect:`.
[0;36m50 |[0;0m public init(aspectFitSize size: CGSize, inRect rect: CGRect) {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for initializer declared in a public extension[0;0m
[0;36m51 |[0;0m let ratio = size / rect.size
[0;36m52 |[0;0m let largestRatio = max(ratio.width, ratio.height)
/Users/admin/builder/spi-builder-workspace/source/Metron/Extension/CGRect.swift:58:5: [1;33mwarning: [1;39m'public' modifier is redundant for instance method declared in a public extension[0;0m
[0;36m56 |[0;0m /// - returns: The value for the given edge
[0;36m57 |[0;0m /// (i.e. `minXEdge` will return this rect's `minX` value).
[0;36m58 |[0;0m public func edge(_ edge: CGRectEdge) -> CGFloat {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for instance method declared in a public extension[0;0m
[0;36m59 |[0;0m switch edge {
[0;36m60 |[0;0m case .minXEdge: return minX
/Users/admin/builder/spi-builder-workspace/source/Metron/Extension/CGRect.swift:68:5: [1;33mwarning: [1;39m'public' modifier is redundant for instance method declared in a public extension[0;0m
[0;36m66 |[0;0m
[0;36m67 |[0;0m /// - returns: The `CGPoint` coordinate for the given corner.
[0;36m68 |[0;0m public func corner(_ corner: Corner) -> CGPoint {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for instance method declared in a public extension[0;0m
[0;36m69 |[0;0m return CGPoint(x: edge(corner.xEdge), y: edge(corner.yEdge))
[0;36m70 |[0;0m }
/Users/admin/builder/spi-builder-workspace/source/Metron/Extension/CGRect.swift:74:5: [1;33mwarning: [1;39m'public' modifier is redundant for instance method declared in a public extension[0;0m
[0;36m72 |[0;0m /// - returns: A `CGRect` with size scaled to the provided scale factor,
[0;36m73 |[0;0m /// preserving the center.
[0;36m74 |[0;0m public func scaled(by scale: CGFloat) -> CGRect {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for instance method declared in a public extension[0;0m
[0;36m75 |[0;0m return CGRect(center: center, size: size * scale)
[0;36m76 |[0;0m }
/Users/admin/builder/spi-builder-workspace/source/Metron/Extension/CGRect.swift:80:5: [1;33mwarning: [1;39m'public' modifier is redundant for instance method declared in a public extension[0;0m
[0;36m78 |[0;0m /// - returns: A `CGRect` with size scaled to the provided scale factor,
[0;36m79 |[0;0m /// preserving the specified corner.
[0;36m80 |[0;0m public func scaled(by scale: CGFloat, corner: Corner) -> CGRect {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for instance method declared in a public extension[0;0m
[0;36m81 |[0;0m return CGRect(size: size * scale, origin: self.corner(corner), inCorner: corner)
[0;36m82 |[0;0m }
/Users/admin/builder/spi-builder-workspace/source/Metron/Extension/CGRect.swift:85:5: [1;33mwarning: [1;39m'public' modifier is redundant for instance method declared in a public extension[0;0m
[0;36m83 |[0;0m
[0;36m84 |[0;0m /// - returns: The `LineSegment` representing the provided edge.
[0;36m85 |[0;0m public func lineSegment(for edge: CGRectEdge) -> LineSegment {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for instance method declared in a public extension[0;0m
[0;36m86 |[0;0m let corners = edge.corners
[0;36m87 |[0;0m return LineSegment(a: corner(corners.0), b: corner(corners.1))
/Users/admin/builder/spi-builder-workspace/source/Metron/Extension/CGRectEdge.swift:30:1: [1;33mwarning: [1;39mextension declares a conformance of imported type 'CGRectEdge' to imported protocol 'CustomDebugStringConvertible'; this will not behave correctly if the owners of 'CoreFoundation' introduce this conformance in the future[0;0m
[0;36m28 |[0;0m }
[0;36m29 |[0;0m
[0;36m30 |[0;0m extension CGRectEdge: CustomDebugStringConvertible {
[0;36m|[0;0m |- [1;33mwarning: [1;39mextension declares a conformance of imported type 'CGRectEdge' to imported protocol 'CustomDebugStringConvertible'; this will not behave correctly if the owners of 'CoreFoundation' introduce this conformance in the future[0;0m
[0;36m|[0;0m `- [1;39mnote: [1;39madd '@retroactive' to silence this warning[0;0m
[0;36m31 |[0;0m public var debugDescription: String {
[0;36m32 |[0;0m switch self {
/Users/admin/builder/spi-builder-workspace/source/Metron/Extension/CGSize.swift:5:5: [1;33mwarning: [1;39m'public' modifier is redundant for initializer declared in a public extension[0;0m
[0;36m3 |[0;0m public extension CGSize {
[0;36m4 |[0;0m
[0;36m5 |[0;0m public init(edges length: CGFloat) {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for initializer declared in a public extension[0;0m
[0;36m6 |[0;0m self.init(width: length, height: length)
[0;36m7 |[0;0m }
/Users/admin/builder/spi-builder-workspace/source/Metron/Extension/CGSize.swift:9:5: [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m7 |[0;0m }
[0;36m8 |[0;0m
[0;36m9 |[0;0m public var area: CGFloat {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m10 |[0;0m return width * height
[0;36m11 |[0;0m }
/Users/admin/builder/spi-builder-workspace/source/Metron/Extension/CGSize.swift:14:5: [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m12 |[0;0m
[0;36m13 |[0;0m /// - returns: A `CGSize` with width and height swapped.
[0;36m14 |[0;0m public var swapped: CGSize {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m15 |[0;0m return CGSize(width: height, height: width)
[0;36m16 |[0;0m }
/Users/admin/builder/spi-builder-workspace/source/Metron/Extension/CGSize.swift:19:5: [1;33mwarning: [1;39m'public' modifier is redundant for instance method declared in a public extension[0;0m
[0;36m17 |[0;0m
[0;36m18 |[0;0m /// Limits the size to the given size.
[0;36m19 |[0;0m public func clipped(to size: CGSize) -> CGSize {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for instance method declared in a public extension[0;0m
[0;36m20 |[0;0m return CGSize(width: min(width, size.width),
[0;36m21 |[0;0m height: min(height, size.height))
/Users/admin/builder/spi-builder-workspace/source/Metron/Extension/CGVector.swift:6:5: [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m4 |[0;0m
[0;36m5 |[0;0m /// - returns: A `CGPoint` with x: dx and y: dy.
[0;36m6 |[0;0m public var point: CGPoint {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m7 |[0;0m return CGPoint(x: dx, y: dy)
[0;36m8 |[0;0m }
/Users/admin/builder/spi-builder-workspace/source/Metron/Extension/CGVector.swift:10:5: [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m8 |[0;0m }
[0;36m9 |[0;0m
[0;36m10 |[0;0m public var magnitude: CGFloat {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m11 |[0;0m return sqrt(dx * dx + dy * dy)
[0;36m12 |[0;0m }
/Users/admin/builder/spi-builder-workspace/source/Metron/Extension/CGVector.swift:13:5: [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m11 |[0;0m return sqrt(dx * dx + dy * dy)
[0;36m12 |[0;0m }
[0;36m13 |[0;0m public var angle: Angle {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m14 |[0;0m return atan2(dy, dx)
[0;36m15 |[0;0m }
/Users/admin/builder/spi-builder-workspace/source/Metron/Extension/CGVector.swift:17:5: [1;33mwarning: [1;39m'public' modifier is redundant for initializer declared in a public extension[0;0m
[0;36m15 |[0;0m }
[0;36m16 |[0;0m
[0;36m17 |[0;0m public init(angle: Angle, magnitude: CGFloat) {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for initializer declared in a public extension[0;0m
[0;36m18 |[0;0m self.init(dx: magnitude * cos(angle), dy: magnitude * sin(angle))
[0;36m19 |[0;0m }
/Users/admin/builder/spi-builder-workspace/source/Metron/Extension/CGVector.swift:21:5: [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m19 |[0;0m }
[0;36m20 |[0;0m
[0;36m21 |[0;0m public var inversed: CGVector {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m22 |[0;0m return CGVector(dx: -dx, dy: -dy)
[0;36m23 |[0;0m }
/Users/admin/builder/spi-builder-workspace/source/Metron/Extension/CGVector.swift:26:5: [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m24 |[0;0m
[0;36m25 |[0;0m /// - returns: The `CGRectEdge` towards which this vector tends the most.
[0;36m26 |[0;0m public var dominantEdge: CGRectEdge {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m27 |[0;0m return abs(dx) > abs(dy) ? (dx > 0.0 ? .maxXEdge : .minXEdge) : (dy > 0.0 ? .maxYEdge : .minYEdge)
[0;36m28 |[0;0m }
/Users/admin/builder/spi-builder-workspace/source/Metron/Extension/CGVector.swift:31:5: [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m29 |[0;0m
[0;36m30 |[0;0m /// - returns: The `Corner` towards which this vector tends the most.
[0;36m31 |[0;0m public var dominantCorner: Corner {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m32 |[0;0m let xEdge: CGRectEdge = dx > 0 ? .maxXEdge : .minXEdge
[0;36m33 |[0;0m let yEdge: CGRectEdge = dy > 0 ? .maxYEdge : .minYEdge
/Users/admin/builder/spi-builder-workspace/source/Metron/Extension/CGVector.swift:39:5: [1;33mwarning: [1;39m'public' modifier is redundant for instance method declared in a public extension[0;0m
[0;36m37 |[0;0m /// - returns: A `Line` drawn through the given point,
[0;36m38 |[0;0m /// following this vector.
[0;36m39 |[0;0m public func line(through point: CGPoint) -> Line {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for instance method declared in a public extension[0;0m
[0;36m40 |[0;0m return Line(a: point, b: point + self)
[0;36m41 |[0;0m }
/Users/admin/builder/spi-builder-workspace/source/Metron/Extension/CGVector.swift:46:5: [1;33mwarning: [1;39m'public' modifier is redundant for instance method declared in a public extension[0;0m
[0;36m44 |[0;0m /// following this vector. The `LineSegment` length
[0;36m45 |[0;0m /// equals the vector magnitude.
[0;36m46 |[0;0m public func lineSegment(from point: CGPoint) -> LineSegment {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for instance method declared in a public extension[0;0m
[0;36m47 |[0;0m return LineSegment(a: point, b: point + self)
[0;36m48 |[0;0m }
/Users/admin/builder/spi-builder-workspace/source/Metron/Extension/CGVector.swift:83:5: [1;33mwarning: [1;39m'public' modifier is redundant for initializer declared in a public extension[0;0m
[0;36m81 |[0;0m
[0;36m82 |[0;0m public extension CGAffineTransform {
[0;36m83 |[0;0m public init(translation: CGVector) {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for initializer declared in a public extension[0;0m
[0;36m84 |[0;0m self.init(translationX: translation.dx, y: translation.dy)
[0;36m85 |[0;0m }
/Users/admin/builder/spi-builder-workspace/source/Metron/Extension/CGVector.swift:87:5: [1;33mwarning: [1;39m'public' modifier is redundant for instance method declared in a public extension[0;0m
[0;36m85 |[0;0m }
[0;36m86 |[0;0m
[0;36m87 |[0;0m public func translatedBy(vector: CGVector) -> CGAffineTransform {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for instance method declared in a public extension[0;0m
[0;36m88 |[0;0m return translatedBy(x: vector.dx, y: vector.dy)
[0;36m89 |[0;0m }
/Users/admin/builder/spi-builder-workspace/source/Metron/Geometry/Angle.swift:29:5: [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m27 |[0;0m
[0;36m28 |[0;0m /// - returns: The angle expressed in radians.
[0;36m29 |[0;0m public var radians: CGFloat {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m30 |[0;0m return asUnit(.radians)
[0;36m31 |[0;0m }
/Users/admin/builder/spi-builder-workspace/source/Metron/Geometry/Angle.swift:33:5: [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m31 |[0;0m }
[0;36m32 |[0;0m /// - returns: The angle expressed in degrees.
[0;36m33 |[0;0m public var degrees: CGFloat {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m34 |[0;0m return asUnit(.degrees)
[0;36m35 |[0;0m }
/Users/admin/builder/spi-builder-workspace/source/Metron/Geometry/Angle.swift:42:5: [1;33mwarning: [1;39m'public' modifier is redundant for instance method declared in a public extension[0;0m
[0;36m40 |[0;0m
[0;36m41 |[0;0m /// - returns: The angle expressed in the provided unit.
[0;36m42 |[0;0m public func asUnit(_ unit: Unit) -> CGFloat {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for instance method declared in a public extension[0;0m
[0;36m43 |[0;0m if self.unit == unit {
[0;36m44 |[0;0m return value
/Users/admin/builder/spi-builder-workspace/source/Metron/Geometry/Angle.swift:56:5: [1;33mwarning: [1;39m'public' modifier is redundant for static method declared in a public extension[0;0m
[0;36m54 |[0;0m /// - returns: The floating point value representing a full rotation
[0;36m55 |[0;0m /// in the given unit (i.e. 2pi radians / 360 degrees)
[0;36m56 |[0;0m public static func fullRotation(unit: Unit) -> CGFloat {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for static method declared in a public extension[0;0m
[0;36m57 |[0;0m return unit == .radians ? (2.0 * .pi) : 360.0
[0;36m58 |[0;0m }
/Users/admin/builder/spi-builder-workspace/source/Metron/Geometry/Angle.swift:62:5: [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m60 |[0;0m /// - returns: The floating point value representing a full rotation
[0;36m61 |[0;0m /// expressed in the current unit of this angle.
[0;36m62 |[0;0m public var fullRotation: CGFloat {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m63 |[0;0m return Angle.fullRotation(unit: unit)
[0;36m64 |[0;0m }
/Users/admin/builder/spi-builder-workspace/source/Metron/Geometry/Angle.swift:68:5: [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m66 |[0;0m /// - returns: The angle expressed in a value normalized between
[0;36m67 |[0;0m /// 0 and `fullRotation`.
[0;36m68 |[0;0m public var normalized: Angle {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m69 |[0;0m let max = fullRotation
[0;36m70 |[0;0m let moduloValue = fmod(value, max)
/Users/admin/builder/spi-builder-workspace/source/Metron/Geometry/Angle.swift:77:5: [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m75 |[0;0m /// - returns: `fullRotation` minus the `normalized` angle.
[0;36m76 |[0;0m ///
[0;36m77 |[0;0m public var inversed: Angle {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m78 |[0;0m let max = fullRotation
[0;36m79 |[0;0m return Angle(max - normalized.value, unit: unit)
/Users/admin/builder/spi-builder-workspace/source/Metron/Geometry/Angle.swift:162:5: [1;33mwarning: [1;39m'public' modifier is redundant for instance method declared in a public extension[0;0m
[0;36m160 |[0;0m /// - returns: The `Angle` between horizontal line through `self`,
[0;36m161 |[0;0m /// and line from `self` to `reference.
[0;36m162 |[0;0m public func polarAngle(reference: CGPoint) -> Angle {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for instance method declared in a public extension[0;0m
[0;36m163 |[0;0m return (self - reference).angle
[0;36m164 |[0;0m }
/Users/admin/builder/spi-builder-workspace/source/Metron/Geometry/Angle.swift:169:5: [1;33mwarning: [1;39m'public' modifier is redundant for instance method declared in a public extension[0;0m
[0;36m167 |[0;0m /// and `self` to `next`, i.e. the angle at vertex `self`
[0;36m168 |[0;0m /// of triangle (`previous`,`self`,`next`).
[0;36m169 |[0;0m public func angle(previous: CGPoint, next: CGPoint) -> Angle {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for instance method declared in a public extension[0;0m
[0;36m170 |[0;0m let v1 = previous - self
[0;36m171 |[0;0m let v2 = next - self
/Users/admin/builder/spi-builder-workspace/source/Metron/Geometry/Angle.swift:181:5: [1;33mwarning: [1;39m'public' modifier is redundant for initializer declared in a public extension[0;0m
[0;36m179 |[0;0m
[0;36m180 |[0;0m /// Convenience initializer for rotation transform.
[0;36m181 |[0;0m public init(rotationAngle angle: Angle) {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for initializer declared in a public extension[0;0m
[0;36m182 |[0;0m self.init(rotationAngle: angle.asUnit(.radians))
[0;36m183 |[0;0m }
/Users/admin/builder/spi-builder-workspace/source/Metron/Geometry/Angle.swift:186:5: [1;33mwarning: [1;39m'public' modifier is redundant for instance method declared in a public extension[0;0m
[0;36m184 |[0;0m
[0;36m185 |[0;0m /// Convenienc function for rotating a transform.
[0;36m186 |[0;0m public func rotated(by angle: Angle) -> CGAffineTransform {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for instance method declared in a public extension[0;0m
[0;36m187 |[0;0m return rotated(by: angle.asUnit(.radians))
[0;36m188 |[0;0m }
/Users/admin/builder/spi-builder-workspace/source/Metron/Geometry/CoordinateSystem.swift:34:5: [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m32 |[0;0m * coordinate system, running clockwise starting at topLeft.
[0;36m33 |[0;0m */
[0;36m34 |[0;0m public var corners: [Corner] {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m35 |[0;0m return CornerPosition.all.map { corner(for: $0) }
[0;36m36 |[0;0m }
/Users/admin/builder/spi-builder-workspace/source/Metron/Geometry/CoordinateSystem.swift:43:5: [1;33mwarning: [1;39m'public' modifier is redundant for instance method declared in a public extension[0;0m
[0;36m41 |[0;0m * provided.
[0;36m42 |[0;0m */
[0;36m43 |[0;0m public func corners(startingAt start: Corner,
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for instance method declared in a public extension[0;0m
[0;36m44 |[0;0m rotating: RotationDirection = .clockwise) -> [Corner] {
[0;36m45 |[0;0m var arrangedCorners: [Corner] = corners
/Users/admin/builder/spi-builder-workspace/source/Metron/Geometry/CoordinateSystem.swift:54:5: [1;33mwarning: [1;39m'public' modifier is redundant for instance method declared in a public extension[0;0m
[0;36m52 |[0;0m
[0;36m53 |[0;0m /// - returns: The `CornerPosition` of the `Corner` in this CoordinateSystem.
[0;36m54 |[0;0m public func position(for corner: Corner) -> CornerPosition {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for instance method declared in a public extension[0;0m
[0;36m55 |[0;0m let tlsCorner: CornerPosition // topLeft system corner
[0;36m56 |[0;0m switch corner {
/Users/admin/builder/spi-builder-workspace/source/Metron/Geometry/CoordinateSystem.swift:71:5: [1;33mwarning: [1;39m'public' modifier is redundant for instance method declared in a public extension[0;0m
[0;36m69 |[0;0m
[0;36m70 |[0;0m /// - returns: The `Corner` at the `CornerPosition` in this CoordinateSystem.
[0;36m71 |[0;0m public func corner(for position: CornerPosition) -> Corner {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for instance method declared in a public extension[0;0m
[0;36m72 |[0;0m let tlsPosition: Corner // topLeft system position
[0;36m73 |[0;0m switch position {
/Users/admin/builder/spi-builder-workspace/source/Metron/Geometry/CoordinateSystem.swift:93:5: [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m91 |[0;0m * coordinate system, running clockwise starting at top.
[0;36m92 |[0;0m */
[0;36m93 |[0;0m public var edges: [CGRectEdge] {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m94 |[0;0m return Side.all.map { edge(for: $0) }
[0;36m95 |[0;0m }
/Users/admin/builder/spi-builder-workspace/source/Metron/Geometry/CoordinateSystem.swift:102:5: [1;33mwarning: [1;39m'public' modifier is redundant for instance method declared in a public extension[0;0m
[0;36m100 |[0;0m * provided.
[0;36m101 |[0;0m */
[0;36m102 |[0;0m public func edges(startingAt start: CGRectEdge,
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for instance method declared in a public extension[0;0m
[0;36m103 |[0;0m rotating: RotationDirection = .clockwise) -> [CGRectEdge] {
[0;36m104 |[0;0m var arrangedEdges: [CGRectEdge] = edges
/Users/admin/builder/spi-builder-workspace/source/Metron/Geometry/CoordinateSystem.swift:113:5: [1;33mwarning: [1;39m'public' modifier is redundant for instance method declared in a public extension[0;0m
[0;36m111 |[0;0m
[0;36m112 |[0;0m /// - returns: The `Side` of the `CGRectEdge` in this CoordinateSystem
[0;36m113 |[0;0m public func side(for edge: CGRectEdge) -> Side {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for instance method declared in a public extension[0;0m
[0;36m114 |[0;0m let tlsSide: Side // topLeft system side
[0;36m115 |[0;0m switch edge {
/Users/admin/builder/spi-builder-workspace/source/Metron/Geometry/CoordinateSystem.swift:130:5: [1;33mwarning: [1;39m'public' modifier is redundant for instance method declared in a public extension[0;0m
[0;36m128 |[0;0m
[0;36m129 |[0;0m /// - returns: The `CGRectEdge` at the `Side` in this CoordinateSystem
[0;36m130 |[0;0m public func edge(for side: Side) -> CGRectEdge {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for instance method declared in a public extension[0;0m
[0;36m131 |[0;0m let tlsEdge: CGRectEdge // topLeft system edge
[0;36m132 |[0;0m switch side {
/Users/admin/builder/spi-builder-workspace/source/Metron/Geometry/CoordinateSystem.swift:147:5: [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m145 |[0;0m
[0;36m146 |[0;0m /// - returns: True if a circle, traced by incrementing an angle, runs clockwise
[0;36m147 |[0;0m public var circleRunsClockwise: Bool {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m148 |[0;0m switch origin {
[0;36m149 |[0;0m case .topLeft, .bottomRight: return true
/Users/admin/builder/spi-builder-workspace/source/Metron/Geometry/Corner.swift:24:5: [1;33mwarning: [1;39m'public' modifier is redundant for initializer declared in a public extension[0;0m
[0;36m22 |[0;0m public extension Corner {
[0;36m23 |[0;0m
[0;36m24 |[0;0m public init(x xEdge: CGRectEdge, y yEdge: CGRectEdge) {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for initializer declared in a public extension[0;0m
[0;36m25 |[0;0m switch (xEdge, yEdge) {
[0;36m26 |[0;0m case (.minXEdge, .minYEdge): self = .minXminY
/Users/admin/builder/spi-builder-workspace/source/Metron/Geometry/Corner.swift:36:5: [1;33mwarning: [1;39m'public' modifier is redundant for instance method declared in a public extension[0;0m
[0;36m34 |[0;0m /// - returns: The edge of this `Corner` for the provided axis.
[0;36m35 |[0;0m /// For example, the `minXminY` corner's `xAxis` edge is the `minXEdge`.
[0;36m36 |[0;0m public func edge(on axis: Axis) -> CGRectEdge {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for instance method declared in a public extension[0;0m
[0;36m37 |[0;0m switch axis {
[0;36m38 |[0;0m case .xAxis: return xEdge
/Users/admin/builder/spi-builder-workspace/source/Metron/Geometry/Corner.swift:45:5: [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m43 |[0;0m /// - returns: The `xAxis` edge component of this corner
[0;36m44 |[0;0m /// (either `minXEdge` or `maxXEdge`).
[0;36m45 |[0;0m public var xEdge: CGRectEdge {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m46 |[0;0m switch self {
[0;36m47 |[0;0m case .minXminY, .minXmaxY: return .minXEdge
/Users/admin/builder/spi-builder-workspace/source/Metron/Geometry/Corner.swift:54:5: [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m52 |[0;0m /// - returns: The `yAxis` edge component of this corner
[0;36m53 |[0;0m /// (either `minYEdge` or `maxYEdge`).
[0;36m54 |[0;0m public var yEdge: CGRectEdge {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m55 |[0;0m switch self {
[0;36m56 |[0;0m case .minXminY, .maxXminY: return .minYEdge
/Users/admin/builder/spi-builder-workspace/source/Metron/Geometry/Corner.swift:64:5: [1;33mwarning: [1;39m'public' modifier is redundant for instance method declared in a public extension[0;0m
[0;36m62 |[0;0m /// For example, the `minXminY` corner's opposite along
[0;36m63 |[0;0m /// the `xAxis` is `maxXminY`.
[0;36m64 |[0;0m public func opposite(on axis: Axis) -> Corner {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for instance method declared in a public extension[0;0m
[0;36m65 |[0;0m switch axis {
[0;36m66 |[0;0m case .xAxis: return Corner(x: xEdge.opposite, y: yEdge)
/Users/admin/builder/spi-builder-workspace/source/Metron/Geometry/Opposable.swift:27:5: [1;33mwarning: [1;39m'public' modifier is redundant for static property declared in a public extension[0;0m
[0;36m25 |[0;0m public extension Opposable where Self: Equatable {
[0;36m26 |[0;0m
[0;36m27 |[0;0m public static var all: [Self] {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for static property declared in a public extension[0;0m
[0;36m28 |[0;0m return allOpposites.map { $0.0 } + allOpposites.map { $0.1 }
[0;36m29 |[0;0m }
/Users/admin/builder/spi-builder-workspace/source/Metron/Geometry/Opposable.swift:31:5: [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m29 |[0;0m }
[0;36m30 |[0;0m
[0;36m31 |[0;0m public var opposite: Self {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m32 |[0;0m let allOpposites = Self.allOpposites
[0;36m33 |[0;0m for (lhs, rhs) in allOpposites {
/Users/admin/builder/spi-builder-workspace/source/Metron/Geometry/Rotatable.swift:21:5: [1;33mwarning: [1;39m'public' modifier is redundant for instance method declared in a public extension[0;0m
[0;36m19 |[0;0m
[0;36m20 |[0;0m /// - returns: The next element rotated in the provided direction.
[0;36m21 |[0;0m public func next(rotating: RotationDirection) -> Self {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for instance method declared in a public extension[0;0m
[0;36m22 |[0;0m let allInDirection = (rotating == .clockwise) ? Self.all : Self.all.reversed()
[0;36m23 |[0;0m let nextIndex = (allInDirection.index(of: self)! + 1) % allInDirection.count
/Users/admin/builder/spi-builder-workspace/source/Metron/Geometry/Rotatable.swift:28:5: [1;33mwarning: [1;39m'public' modifier is redundant for instance method declared in a public extension[0;0m
[0;36m26 |[0;0m
[0;36m27 |[0;0m /// - returns: The previous element rotated in the provided direction.
[0;36m28 |[0;0m public func previous(rotating: RotationDirection) -> Self {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for instance method declared in a public extension[0;0m
[0;36m29 |[0;0m return next(rotating: rotating).opposite
[0;36m30 |[0;0m }
/Users/admin/builder/spi-builder-workspace/source/Metron/Geometry/Rotatable.swift:33:5: [1;33mwarning: [1;39m'public' modifier is redundant for static method declared in a public extension[0;0m
[0;36m31 |[0;0m
[0;36m32 |[0;0m /// - returns: All elements starting and in rotating order as provided.
[0;36m33 |[0;0m public static func all(startingAt start: Self,
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for static method declared in a public extension[0;0m
[0;36m34 |[0;0m rotating: RotationDirection = .clockwise) -> [Self] {
[0;36m35 |[0;0m var arrangedAll: [Self] = Self.all
/Users/admin/builder/spi-builder-workspace/source/Metron/Shape/Circle.swift:25:5: [1;33mwarning: [1;39m'public' modifier is redundant for initializer declared in a public extension[0;0m
[0;36m23 |[0;0m /// Initializes a `Circle` with radius equal to
[0;36m24 |[0;0m /// half of the provided diameter.
[0;36m25 |[0;0m public init(center: CGPoint, diameter: CGFloat) {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for initializer declared in a public extension[0;0m
[0;36m26 |[0;0m self.init(center: center, radius: diameter / 2.0)
[0;36m27 |[0;0m }
/Users/admin/builder/spi-builder-workspace/source/Metron/Shape/Circle.swift:31:5: [1;33mwarning: [1;39m'public' modifier is redundant for initializer declared in a public extension[0;0m
[0;36m29 |[0;0m /// Initializes a `Circle` that is aspect-fitted
[0;36m30 |[0;0m /// in the center of the provided rect.
[0;36m31 |[0;0m public init(in rect: CGRect) {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for initializer declared in a public extension[0;0m
[0;36m32 |[0;0m self.init(in: Square(in: rect))
[0;36m33 |[0;0m }
/Users/admin/builder/spi-builder-workspace/source/Metron/Shape/Circle.swift:37:5: [1;33mwarning: [1;39m'public' modifier is redundant for initializer declared in a public extension[0;0m
[0;36m35 |[0;0m /// Initializes a `Circle` that is fitted in the
[0;36m36 |[0;0m /// provided square.
[0;36m37 |[0;0m public init(in square: Square) {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for initializer declared in a public extension[0;0m
[0;36m38 |[0;0m self.init(center: square.center, diameter: square.edges)
[0;36m39 |[0;0m }
/Users/admin/builder/spi-builder-workspace/source/Metron/Shape/Circle.swift:42:5: [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m40 |[0;0m
[0;36m41 |[0;0m /// The diamater, equal to 2 times the radius.
[0;36m42 |[0;0m public var diameter: CGFloat {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m43 |[0;0m return radius * 2.0
[0;36m44 |[0;0m }
/Users/admin/builder/spi-builder-workspace/source/Metron/Shape/Circle.swift:47:5: [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m45 |[0;0m
[0;36m46 |[0;0m /// The length of the enclosing boundary.
[0;36m47 |[0;0m public var circumference: CGFloat {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m48 |[0;0m return diameter * .pi
[0;36m49 |[0;0m }
/Users/admin/builder/spi-builder-workspace/source/Metron/Shape/Circle.swift:52:5: [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m50 |[0;0m
[0;36m51 |[0;0m /// - returns: The bounding square for this circle.
[0;36m52 |[0;0m public var square: Square {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m53 |[0;0m return Square(origin: CGPoint(x: minX, y: minY), edges: diameter)
[0;36m54 |[0;0m }
/Users/admin/builder/spi-builder-workspace/source/Metron/Shape/Circle.swift:63:5: [1;33mwarning: [1;39m'public' modifier is redundant for instance method declared in a public extension[0;0m
[0;36m61 |[0;0m /// The points are taken `startingAt` a specific angle and `rotating` in a
[0;36m62 |[0;0m /// specific direction (`clockwise` by default), .
[0;36m63 |[0;0m public func pointsAlongPerimeter(dividedInto segments: CGFloat, startingAt startingAngle: Angle = Angle(0), rotating: RotationDirection = .clockwise) -> [CGPoint] {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for instance method declared in a public extension[0;0m
[0;36m64 |[0;0m guard segments > 0 else { return [] }
[0;36m65 |[0;0m let fullRotation = Angle.fullRotation(unit: .radians)
/Users/admin/builder/spi-builder-workspace/source/Metron/Shape/Line.swift:30:5: [1;33mwarning: [1;39m'public' modifier is redundant for initializer declared in a public extension[0;0m
[0;36m28 |[0;0m
[0;36m29 |[0;0m /// Initializes a `Line` through the provided two points.
[0;36m30 |[0;0m public init(a: CGPoint, b: CGPoint) {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for initializer declared in a public extension[0;0m
[0;36m31 |[0;0m let dx = a.x - b.x
[0;36m32 |[0;0m if dx == 0.0 {
/Users/admin/builder/spi-builder-workspace/source/Metron/Shape/Line.swift:43:5: [1;33mwarning: [1;39m'public' modifier is redundant for initializer declared in a public extension[0;0m
[0;36m41 |[0;0m /// Initializes a line that goes through the start and end points
[0;36m42 |[0;0m /// of the provided `LineSegment`.
[0;36m43 |[0;0m public init(lineSegment: LineSegment) {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for initializer declared in a public extension[0;0m
[0;36m44 |[0;0m self.init(a: lineSegment.a, b: lineSegment.b)
[0;36m45 |[0;0m }
/Users/admin/builder/spi-builder-workspace/source/Metron/Shape/Line.swift:49:5: [1;33mwarning: [1;39m'public' modifier is redundant for initializer declared in a public extension[0;0m
[0;36m47 |[0;0m /// Initializes a line that runs at the provided `Angle`
[0;36m48 |[0;0m /// through the provided `CGPoint`.
[0;36m49 |[0;0m public init(angle: Angle, through point: CGPoint) {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for initializer declared in a public extension[0;0m
[0;36m50 |[0;0m self.init(a: point, b: point + CGVector(angle: angle, magnitude: 1.0))
[0;36m51 |[0;0m }
/Users/admin/builder/spi-builder-workspace/source/Metron/Shape/Line.swift:54:5: [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m52 |[0;0m
[0;36m53 |[0;0m /// - returns: If the definition of this line is non-vertical, the slope of the line.
[0;36m54 |[0;0m public var slope: CGFloat? {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m55 |[0;0m guard case let .sloped(s, _) = definition else { return nil }
[0;36m56 |[0;0m return s
/Users/admin/builder/spi-builder-workspace/source/Metron/Shape/Line.swift:60:5: [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m58 |[0;0m
[0;36m59 |[0;0m /// - returns: If the definition of this line is non-vertical, the y-intercept of the line.
[0;36m60 |[0;0m public var yIntercept: CGFloat? {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m61 |[0;0m guard case let .sloped(_, y) = definition else { return nil }
[0;36m62 |[0;0m return y
/Users/admin/builder/spi-builder-workspace/source/Metron/Shape/Line.swift:66:5: [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m64 |[0;0m
[0;36m65 |[0;0m /// - returns: If the definition of this line is vertical, the x-position of the line.
[0;36m66 |[0;0m public var xPosition: CGFloat? {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m67 |[0;0m guard case let .vertical(x) = definition else { return nil }
[0;36m68 |[0;0m return x
/Users/admin/builder/spi-builder-workspace/source/Metron/Shape/Line.swift:72:5: [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m70 |[0;0m
[0;36m71 |[0;0m /// - returns: True if this line is vertical.
[0;36m72 |[0;0m public var isVertical: Bool {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m73 |[0;0m if case .vertical(_) = definition {
[0;36m74 |[0;0m return true
/Users/admin/builder/spi-builder-workspace/source/Metron/Shape/Line.swift:80:5: [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m78 |[0;0m
[0;36m79 |[0;0m /// - returns: True if this line is horizontal (slope equals zero).
[0;36m80 |[0;0m public var isHorizontal: Bool {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m81 |[0;0m if case let .sloped(slope, _) = definition {
[0;36m82 |[0;0m return abs(slope) == 0.0
/Users/admin/builder/spi-builder-workspace/source/Metron/Shape/Line.swift:90:5: [1;33mwarning: [1;39m'public' modifier is redundant for instance method declared in a public extension[0;0m
[0;36m88 |[0;0m /// Will be nil for vertical lines.
[0;36m89 |[0;0m /// y = mx+b
[0;36m90 |[0;0m public func point(atX x: CGFloat) -> CGPoint? {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for instance method declared in a public extension[0;0m
[0;36m91 |[0;0m guard case let .sloped(slope, yIntercept) = definition else { return nil }
[0;36m92 |[0;0m return CGPoint(x: x, y: slope * x + yIntercept)
/Users/admin/builder/spi-builder-workspace/source/Metron/Shape/Line.swift:98:5: [1;33mwarning: [1;39m'public' modifier is redundant for instance method declared in a public extension[0;0m
[0;36m96 |[0;0m /// Will be nil for horizontal lines.
[0;36m97 |[0;0m /// x = (y-b)/m
[0;36m98 |[0;0m public func point(atY y: CGFloat) -> CGPoint? {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for instance method declared in a public extension[0;0m
[0;36m99 |[0;0m switch definition {
[0;36m100 |[0;0m case let .sloped(slope, yIntercept):
/Users/admin/builder/spi-builder-workspace/source/Metron/Shape/Line.swift:109:5: [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m107 |[0;0m
[0;36m108 |[0;0m /// - returns: The value for x on this line where y is 0.
[0;36m109 |[0;0m public var xIntercept: CGFloat? {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m110 |[0;0m switch definition {
[0;36m111 |[0;0m case let .sloped(slope, yIntercept):
/Users/admin/builder/spi-builder-workspace/source/Metron/Shape/Line.swift:120:5: [1;33mwarning: [1;39m'public' modifier is redundant for instance method declared in a public extension[0;0m
[0;36m118 |[0;0m
[0;36m119 |[0;0m /// - returns: The segment of this line that is between the provided points.
[0;36m120 |[0;0m public func segment(between p1: CGPoint, and p2: CGPoint) -> LineSegment? {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for instance method declared in a public extension[0;0m
[0;36m121 |[0;0m let a = point(atX: p1.x) ?? point(atY: p1.y)
[0;36m122 |[0;0m let b = point(atX: p2.x) ?? point(atY: p2.y)
/Users/admin/builder/spi-builder-workspace/source/Metron/Shape/Line.swift:131:5: [1;33mwarning: [1;39m'public' modifier is redundant for instance method declared in a public extension[0;0m
[0;36m129 |[0;0m /// - returns: True when the provided point is on this `Line`.
[0;36m130 |[0;0m /// - note: An error margin of 1e-12 is allowed.
[0;36m131 |[0;0m public func contains(_ point: CGPoint) -> Bool {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for instance method declared in a public extension[0;0m
[0;36m132 |[0;0m switch definition {
[0;36m133 |[0;0m case .sloped:
/Users/admin/builder/spi-builder-workspace/source/Metron/Shape/Line.swift:144:5: [1;33mwarning: [1;39m'public' modifier is redundant for instance method declared in a public extension[0;0m
[0;36m142 |[0;0m /// - returns: The intersection of this `Line` with the provided `Line`.
[0;36m143 |[0;0m /// Will be nil for parallel lines.
[0;36m144 |[0;0m public func intersection(with line: Line) -> CGPoint? {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for instance method declared in a public extension[0;0m
[0;36m145 |[0;0m switch (self.definition, line.definition) {
[0;36m146 |[0;0m case let (.sloped(slope1, yIntercept1),
/Users/admin/builder/spi-builder-workspace/source/Metron/Shape/Line.swift:161:5: [1;33mwarning: [1;39m'public' modifier is redundant for instance method declared in a public extension[0;0m
[0;36m159 |[0;0m /// Similar to intersection(with line:…), but this also checks if a
[0;36m160 |[0;0m /// found intersection is also between the line segment's start and end points.
[0;36m161 |[0;0m public func intersection(with lineSegment: LineSegment) -> CGPoint? {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for instance method declared in a public extension[0;0m
[0;36m162 |[0;0m let line = lineSegment.line
[0;36m163 |[0;0m if let intersection = self.intersection(with: line) {
/Users/admin/builder/spi-builder-workspace/source/Metron/Shape/Line.swift:174:5: [1;33mwarning: [1;39m'public' modifier is redundant for instance method declared in a public extension[0;0m
[0;36m172 |[0;0m /// Always true for two vertical lines. True for sloped lines with
[0;36m173 |[0;0m /// equal slopes.
[0;36m174 |[0;0m public func isParallel(to line: Line) -> Bool {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for instance method declared in a public extension[0;0m
[0;36m175 |[0;0m switch (self.definition, line.definition) {
[0;36m176 |[0;0m case let (.sloped(slope1, _), .sloped(slope2, _)):
/Users/admin/builder/spi-builder-workspace/source/Metron/Shape/Line.swift:185:5: [1;33mwarning: [1;39m'public' modifier is redundant for instance method declared in a public extension[0;0m
[0;36m183 |[0;0m /// - returns: A `Line` that runs at a 90° angle through self,
[0;36m184 |[0;0m /// through the provided point.
[0;36m185 |[0;0m public func perpendicular(through point: CGPoint) -> Line {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for instance method declared in a public extension[0;0m
[0;36m186 |[0;0m switch definition {
[0;36m187 |[0;0m case let .sloped(slope, _):
/Users/admin/builder/spi-builder-workspace/source/Metron/Shape/LineSegment.swift:18:5: [1;33mwarning: [1;39m'public' modifier is redundant for initializer declared in a public extension[0;0m
[0;36m16 |[0;0m public extension LineSegment {
[0;36m17 |[0;0m
[0;36m18 |[0;0m public init(origin: CGPoint, vector: CGVector) {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for initializer declared in a public extension[0;0m
[0;36m19 |[0;0m self.a = origin
[0;36m20 |[0;0m self.b = origin + vector
/Users/admin/builder/spi-builder-workspace/source/Metron/Shape/LineSegment.swift:24:5: [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m22 |[0;0m
[0;36m23 |[0;0m /// - returns: A `Line` that runs through this line segment's points.
[0;36m24 |[0;0m public var line: Line {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m25 |[0;0m return Line(a: a, b: b)
[0;36m26 |[0;0m }
/Users/admin/builder/spi-builder-workspace/source/Metron/Shape/LineSegment.swift:28:5: [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m26 |[0;0m }
[0;36m27 |[0;0m
[0;36m28 |[0;0m public var minX: CGFloat {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m29 |[0;0m return min(a.x, b.x)
[0;36m30 |[0;0m }
/Users/admin/builder/spi-builder-workspace/source/Metron/Shape/LineSegment.swift:32:5: [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m30 |[0;0m }
[0;36m31 |[0;0m
[0;36m32 |[0;0m public var maxX: CGFloat {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m33 |[0;0m return max(a.x, b.x)
[0;36m34 |[0;0m }
/Users/admin/builder/spi-builder-workspace/source/Metron/Shape/LineSegment.swift:36:5: [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m34 |[0;0m }
[0;36m35 |[0;0m
[0;36m36 |[0;0m public var minY: CGFloat {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m37 |[0;0m return min(a.y, b.y)
[0;36m38 |[0;0m }
/Users/admin/builder/spi-builder-workspace/source/Metron/Shape/LineSegment.swift:40:5: [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m38 |[0;0m }
[0;36m39 |[0;0m
[0;36m40 |[0;0m public var maxY: CGFloat {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m41 |[0;0m return max(a.y, b.y)
[0;36m42 |[0;0m }
/Users/admin/builder/spi-builder-workspace/source/Metron/Shape/LineSegment.swift:45:5: [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m43 |[0;0m
[0;36m44 |[0;0m /// - returns: The vector of this `LineSegment`, originating from point a.
[0;36m45 |[0;0m public var vector: CGVector {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m46 |[0;0m return CGVector(dx: b.x - a.x, dy: b.y - a.y)
[0;36m47 |[0;0m }
/Users/admin/builder/spi-builder-workspace/source/Metron/Shape/LineSegment.swift:50:5: [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m48 |[0;0m
[0;36m49 |[0;0m /// If vertical, there's no slope so no Line can be derived from this segment.
[0;36m50 |[0;0m public var isVertical: Bool {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m51 |[0;0m return minX == maxX
[0;36m52 |[0;0m }
/Users/admin/builder/spi-builder-workspace/source/Metron/Shape/LineSegment.swift:57:5: [1;33mwarning: [1;39m'public' modifier is redundant for instance method declared in a public extension[0;0m
[0;36m55 |[0;0m /// between its points.
[0;36m56 |[0;0m /// - note: An error margin of 1e-12 is allowed.
[0;36m57 |[0;0m public func contains(_ point: CGPoint) -> Bool {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for instance method declared in a public extension[0;0m
[0;36m58 |[0;0m if isVertical {
[0;36m59 |[0;0m return point.x == minX && point.y.between(lower: a.y, upper: b.y)
/Users/admin/builder/spi-builder-workspace/source/Metron/Shape/LineSegment.swift:67:5: [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m65 |[0;0m
[0;36m66 |[0;0m /// - returns: The start and end points of this `LineSegment` as an array.
[0;36m67 |[0;0m public var points: [CGPoint] {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m68 |[0;0m return [a, b]
[0;36m69 |[0;0m }
/Users/admin/builder/spi-builder-workspace/source/Metron/Shape/LineSegment.swift:72:5: [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m70 |[0;0m
[0;36m71 |[0;0m /// - returns: The point halfway A->B.
[0;36m72 |[0;0m public var midpoint: CGPoint {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m73 |[0;0m return CGPoint(x: (a.x + b.x) / 2.0,
[0;36m74 |[0;0m y: (a.y + b.y) / 2.0)
/Users/admin/builder/spi-builder-workspace/source/Metron/Shape/LineSegment.swift:78:5: [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m76 |[0;0m
[0;36m77 |[0;0m /// - returns: The length of this `LineSegment`, i.e. the distance from A to B.
[0;36m78 |[0;0m public var length: CGFloat {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m79 |[0;0m return a.distance(to: b)
[0;36m80 |[0;0m }
/Users/admin/builder/spi-builder-workspace/source/Metron/Shape/LineSegment.swift:83:5: [1;33mwarning: [1;39m'public' modifier is redundant for instance method declared in a public extension[0;0m
[0;36m81 |[0;0m
[0;36m82 |[0;0m /// - returns: The intersection of this `LineSegment` with the provided `Line`.
[0;36m83 |[0;0m public func intersection(with line: Line) -> CGPoint? {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for instance method declared in a public extension[0;0m
[0;36m84 |[0;0m return line.intersection(with: self)
[0;36m85 |[0;0m }
/Users/admin/builder/spi-builder-workspace/source/Metron/Shape/LineSegment.swift:88:5: [1;33mwarning: [1;39m'public' modifier is redundant for instance method declared in a public extension[0;0m
[0;36m86 |[0;0m
[0;36m87 |[0;0m /// - returns: The intersection of this `LineSegment` with the provided `LineSegment`.
[0;36m88 |[0;0m public func intersection(with lineSegment: LineSegment) -> CGPoint? {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for instance method declared in a public extension[0;0m
[0;36m89 |[0;0m if let intersection = line.intersection(with: lineSegment) {
[0;36m90 |[0;0m return contains(intersection) ? intersection : nil
/Users/admin/builder/spi-builder-workspace/source/Metron/Shape/LineSegment.swift:97:5: [1;33mwarning: [1;39m'public' modifier is redundant for instance method declared in a public extension[0;0m
[0;36m95 |[0;0m /// - returns: A new `LineSegment` that is rotated by the provided angle,
[0;36m96 |[0;0m /// around point A.
[0;36m97 |[0;0m public func rotatedAroundA(_ angle: Angle) -> LineSegment {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for instance method declared in a public extension[0;0m
[0;36m98 |[0;0m let t = CGAffineTransform(rotationAngle: angle)
[0;36m99 |[0;0m return self.applying(t, anchorPoint: a)
/Users/admin/builder/spi-builder-workspace/source/Metron/Shape/LineSegment.swift:104:5: [1;33mwarning: [1;39m'public' modifier is redundant for instance method declared in a public extension[0;0m
[0;36m102 |[0;0m /// - returns: A new `LineSegment` that is rotated by the provided angle,
[0;36m103 |[0;0m /// around point B.
[0;36m104 |[0;0m public func rotatedAroundB(_ angle: Angle) -> LineSegment {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for instance method declared in a public extension[0;0m
[0;36m105 |[0;0m let t = CGAffineTransform(rotationAngle: angle)
[0;36m106 |[0;0m return self.applying(t, anchorPoint: b)
/Users/admin/builder/spi-builder-workspace/source/Metron/Shape/Polygon.swift:64:5: [1;33mwarning: [1;39m'public' modifier is redundant for initializer declared in a public extension[0;0m
[0;36m62 |[0;0m /// Then the default initializer is called, passing
[0;36m63 |[0;0m /// all points of the connected lineSegments.
[0;36m64 |[0;0m public init?(lineSegments: [LineSegment]) {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for initializer declared in a public extension[0;0m
[0;36m65 |[0;0m var remainingLineSegments = lineSegments
[0;36m66 |[0;0m var points = [CGPoint]()
/Users/admin/builder/spi-builder-workspace/source/Metron/Shape/Polygon.swift:84:5: [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m82 |[0;0m
[0;36m83 |[0;0m /// The individual line segments between consecutive points of this polygon.
[0;36m84 |[0;0m public var lineSegments: [LineSegment] {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m85 |[0;0m var lineSegments = [LineSegment]()
[0;36m86 |[0;0m (0..<edgeCount).forEach { pointIndex in
/Users/admin/builder/spi-builder-workspace/source/Metron/Shape/Polygon.swift:95:5: [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m93 |[0;0m
[0;36m94 |[0;0m /// The number of edges of this polygon.
[0;36m95 |[0;0m public var edgeCount: Int {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m96 |[0;0m return points.count
[0;36m97 |[0;0m }
/Users/admin/builder/spi-builder-workspace/source/Metron/Shape/Polygon.swift:100:5: [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m98 |[0;0m
[0;36m99 |[0;0m /// - returns: True if line segments of this polygon intersect each other.
[0;36m100 |[0;0m public var isSelfIntersecting: Bool {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m101 |[0;0m // Might be implemented more efficiently
[0;36m102 |[0;0m var lineSegments = self.lineSegments
/Users/admin/builder/spi-builder-workspace/source/Metron/Shape/Polygon.swift:112:5: [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m110 |[0;0m
[0;36m111 |[0;0m /// - returns: True if all interior angles are less than 180°.
[0;36m112 |[0;0m public var isConvex: Bool {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m113 |[0;0m for pointIndex in 0..<edgeCount {
[0;36m114 |[0;0m let a = points[pointIndex]
/Users/admin/builder/spi-builder-workspace/source/Metron/Shape/Polygon.swift:127:5: [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m125 |[0;0m
[0;36m126 |[0;0m /// - returns: true if one or more interior angles is more than 180°.
[0;36m127 |[0;0m public var isConcave: Bool {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m128 |[0;0m return !isConvex
[0;36m129 |[0;0m }
/Users/admin/builder/spi-builder-workspace/source/Metron/Shape/Square.swift:20:5: [1;33mwarning: [1;39m'public' modifier is redundant for initializer declared in a public extension[0;0m
[0;36m18 |[0;0m /// Initializes a `Square` that is aspect-fitted in
[0;36m19 |[0;0m /// the center of the provided rect.
[0;36m20 |[0;0m public init(in rect: CGRect) {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for initializer declared in a public extension[0;0m
[0;36m21 |[0;0m let square = CGRect(aspectFitSize: CGSize(edges: min(rect.width, rect.height)), inRect: rect)
[0;36m22 |[0;0m self.init(origin: square.origin, edges: square.width)
/Users/admin/builder/spi-builder-workspace/source/Metron/Shape/Square.swift:26:5: [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m24 |[0;0m
[0;36m25 |[0;0m /// - returns: The `CGRect` representing this square.
[0;36m26 |[0;0m public var rect: CGRect {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m27 |[0;0m return CGRect(origin: origin, edges: edges)
[0;36m28 |[0;0m }
/Users/admin/builder/spi-builder-workspace/source/Metron/Shape/Triangle.swift:34:5: [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m32 |[0;0m
[0;36m33 |[0;0m public extension Triplet where T: Summable {
[0;36m34 |[0;0m public var sum: T {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m35 |[0;0m return a + b + c
[0;36m36 |[0;0m }
/Users/admin/builder/spi-builder-workspace/source/Metron/Shape/Triangle.swift:61:5: [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m59 |[0;0m public extension Triangle {
[0;36m60 |[0;0m
[0;36m61 |[0;0m public var vertexA: Vertex {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m62 |[0;0m return vertices.a
[0;36m63 |[0;0m }
/Users/admin/builder/spi-builder-workspace/source/Metron/Shape/Triangle.swift:64:5: [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m62 |[0;0m return vertices.a
[0;36m63 |[0;0m }
[0;36m64 |[0;0m public var vertexB: Vertex {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m65 |[0;0m return vertices.b
[0;36m66 |[0;0m }
/Users/admin/builder/spi-builder-workspace/source/Metron/Shape/Triangle.swift:67:5: [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m65 |[0;0m return vertices.b
[0;36m66 |[0;0m }
[0;36m67 |[0;0m public var vertexC: Vertex {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m68 |[0;0m return vertices.c
[0;36m69 |[0;0m }
/Users/admin/builder/spi-builder-workspace/source/Metron/Shape/Triangle.swift:75:5: [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m73 |[0;0m
[0;36m74 |[0;0m /// Side A is opposite `vertexA`.
[0;36m75 |[0;0m public var sideA: LineSegment {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m76 |[0;0m return LineSegment(a: vertices.b, b: vertices.c)
[0;36m77 |[0;0m }
/Users/admin/builder/spi-builder-workspace/source/Metron/Shape/Triangle.swift:79:5: [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m77 |[0;0m }
[0;36m78 |[0;0m /// Side B is opposite `vertexB`.
[0;36m79 |[0;0m public var sideB: LineSegment {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m80 |[0;0m return LineSegment(a: vertices.c, b: vertices.a)
[0;36m81 |[0;0m }
/Users/admin/builder/spi-builder-workspace/source/Metron/Shape/Triangle.swift:83:5: [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m81 |[0;0m }
[0;36m82 |[0;0m /// Side C is opposite `vertexC`.
[0;36m83 |[0;0m public var sideC: LineSegment {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m84 |[0;0m return LineSegment(a: vertices.a, b: vertices.b)
[0;36m85 |[0;0m }
/Users/admin/builder/spi-builder-workspace/source/Metron/Shape/Triangle.swift:88:5: [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m86 |[0;0m
[0;36m87 |[0;0m /// All sides as `Triplet`.
[0;36m88 |[0;0m public var sides: Triplet<LineSegment> {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m89 |[0;0m return Triplet(a: sideA, b: sideB, c: sideC)
[0;36m90 |[0;0m }
/Users/admin/builder/spi-builder-workspace/source/Metron/Shape/Triangle.swift:97:5: [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m95 |[0;0m /// Angle A is the angle at vertex A,
[0;36m96 |[0;0m /// from side C to side B.
[0;36m97 |[0;0m public var angleA: Angle {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m98 |[0;0m return angles.a
[0;36m99 |[0;0m }
/Users/admin/builder/spi-builder-workspace/source/Metron/Shape/Triangle.swift:103:5: [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m101 |[0;0m /// Angle B is the angle at vertex B,
[0;36m102 |[0;0m /// from side A to side C.
[0;36m103 |[0;0m public var angleB: Angle {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m104 |[0;0m return angles.b
[0;36m105 |[0;0m }
/Users/admin/builder/spi-builder-workspace/source/Metron/Shape/Triangle.swift:109:5: [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m107 |[0;0m /// Angle C is the angle at vertex C,
[0;36m108 |[0;0m /// from side B to side A.
[0;36m109 |[0;0m public var angleC: Angle {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m110 |[0;0m return angles.c
[0;36m111 |[0;0m }
/Users/admin/builder/spi-builder-workspace/source/Metron/Shape/Triangle.swift:115:5: [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m113 |[0;0m /// All angles as `Triplet`. These are calculated together
[0;36m114 |[0;0m /// to guarantee the angles are not inversed (negative or reflex).
[0;36m115 |[0;0m public var angles: Triplet<Angle> {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m116 |[0;0m let a = vertexA.angle(previous: vertexC, next: vertexB)
[0;36m117 |[0;0m let b = vertexB.angle(previous: vertexA, next: vertexC)
/Users/admin/builder/spi-builder-workspace/source/Metron/Shape/Triangle.swift:131:5: [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m129 |[0;0m /// An angle bisector divides the angle into two angles with equal measures.
[0;36m130 |[0;0m /// `angleBisectorA` bisects `angleA`.
[0;36m131 |[0;0m public var angleBisectorA: LineSegment {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m132 |[0;0m return LineSegment(a: vertices.a, b: vertices.b).rotatedAroundA(0.5 * angleA)
[0;36m133 |[0;0m }
/Users/admin/builder/spi-builder-workspace/source/Metron/Shape/Triangle.swift:137:5: [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m135 |[0;0m /// An angle bisector divides the angle into two angles with equal measures.
[0;36m136 |[0;0m /// `angleBisectorB` bisects `angleB`.
[0;36m137 |[0;0m public var angleBisectorB: LineSegment {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m138 |[0;0m return LineSegment(a: vertices.b, b: vertices.c).rotatedAroundA(0.5 * angleB)
[0;36m139 |[0;0m }
/Users/admin/builder/spi-builder-workspace/source/Metron/Shape/Triangle.swift:143:5: [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m141 |[0;0m /// An angle bisector divides the angle into two angles with equal measures.
[0;36m142 |[0;0m /// `angleBisectorC` bisects `angleC`.
[0;36m143 |[0;0m public var angleBisectorC: LineSegment {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m144 |[0;0m return LineSegment(a: vertices.c, b: vertices.a).rotatedAroundA(0.5 * angleC)
[0;36m145 |[0;0m }
/Users/admin/builder/spi-builder-workspace/source/Metron/Shape/Triangle.swift:148:5: [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m146 |[0;0m
[0;36m147 |[0;0m /// All angle bisectors as `Triplet`.
[0;36m148 |[0;0m public var angleBisectors: Triplet<LineSegment> {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m149 |[0;0m return Triplet(a: angleBisectorA, b: angleBisectorB, c: angleBisectorC)
[0;36m150 |[0;0m }
/Users/admin/builder/spi-builder-workspace/source/Metron/Shape/Triangle.swift:158:5: [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m156 |[0;0m /// and perpendicular to the opposite side.
[0;36m157 |[0;0m /// `altitudeA` goes perpendicular from `sideA` to `vertexA`.
[0;36m158 |[0;0m public var altitudeA: LineSegment {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m159 |[0;0m let line = sideA.line.perpendicular(through: vertexA)
[0;36m160 |[0;0m return line.segment(between: line.intersection(with: sideA)!, and: vertexA)!
/Users/admin/builder/spi-builder-workspace/source/Metron/Shape/Triangle.swift:166:5: [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m164 |[0;0m /// and perpendicular to the opposite side.
[0;36m165 |[0;0m /// `altitudeB` goes perpendicular from `sideB` to `vertexB`.
[0;36m166 |[0;0m public var altitudeB: LineSegment {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m167 |[0;0m let line = sideB.line.perpendicular(through: vertexB)
[0;36m168 |[0;0m return line.segment(between: line.intersection(with: sideB)!, and: vertexB)!
/Users/admin/builder/spi-builder-workspace/source/Metron/Shape/Triangle.swift:174:5: [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m172 |[0;0m /// and perpendicular to the opposite side.
[0;36m173 |[0;0m /// `altitudeC` goes perpendicular from `sideC` to `vertexC`.
[0;36m174 |[0;0m public var altitudeC: LineSegment {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m175 |[0;0m let line = sideC.line.perpendicular(through: vertexC)
[0;36m176 |[0;0m return line.segment(between: line.intersection(with: sideC)!, and: vertexC)!
/Users/admin/builder/spi-builder-workspace/source/Metron/Shape/Triangle.swift:180:5: [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m178 |[0;0m
[0;36m179 |[0;0m /// All altitudes as `Triplet`.
[0;36m180 |[0;0m public var altitudes: Triplet<LineSegment> {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m181 |[0;0m return Triplet(a: altitudeA, b: altitudeB, c: altitudeC)
[0;36m182 |[0;0m }
/Users/admin/builder/spi-builder-workspace/source/Metron/Shape/Triangle.swift:192:5: [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m190 |[0;0m
[0;36m191 |[0;0m /// True if all sides are equal.
[0;36m192 |[0;0m public var isEquilateral: Bool {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m193 |[0;0m let sides = self.sides
[0;36m194 |[0;0m let (a, b, c) = (sides.a.length, sides.b.length, sides.c.length)
/Users/admin/builder/spi-builder-workspace/source/Metron/Shape/Triangle.swift:200:5: [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m198 |[0;0m
[0;36m199 |[0;0m /// True iff two sides are equal.
[0;36m200 |[0;0m public var isIsosceles: Bool {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m201 |[0;0m let sides = self.sides
[0;36m202 |[0;0m let (a, b, c) = (sides.a.length, sides.b.length, sides.c.length)
/Users/admin/builder/spi-builder-workspace/source/Metron/Shape/Triangle.swift:209:5: [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m207 |[0;0m
[0;36m208 |[0;0m /// True if all sides are different.
[0;36m209 |[0;0m public var isScalene: Bool {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m210 |[0;0m let sides = self.sides
[0;36m211 |[0;0m let (a, b, c) = (sides.a.length, sides.b.length, sides.c.length)
/Users/admin/builder/spi-builder-workspace/source/Metron/Shape/Triangle.swift:218:5: [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m216 |[0;0m
[0;36m217 |[0;0m /// True if one angle is exactly 90°.
[0;36m218 |[0;0m public var isRight: Bool {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m219 |[0;0m return angles.asArray.first { round($0.degrees) == 90.0 } != nil
[0;36m220 |[0;0m }
/Users/admin/builder/spi-builder-workspace/source/Metron/Shape/Triangle.swift:222:5: [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m220 |[0;0m }
[0;36m221 |[0;0m /// True of no angle is 90°.
[0;36m222 |[0;0m public var isOblique: Bool {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m223 |[0;0m return !isRight
[0;36m224 |[0;0m }
/Users/admin/builder/spi-builder-workspace/source/Metron/Shape/Triangle.swift:227:5: [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m225 |[0;0m
[0;36m226 |[0;0m /// True if all angles are less than 90°.
[0;36m227 |[0;0m public var isAcute: Bool {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m228 |[0;0m return angles.asArray.reduce(true, { return $0 && $1.degrees < 90.0 })
[0;36m229 |[0;0m }
/Users/admin/builder/spi-builder-workspace/source/Metron/Shape/Triangle.swift:231:5: [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m229 |[0;0m }
[0;36m230 |[0;0m /// True if one angle is more than 90°.
[0;36m231 |[0;0m public var isObtuse: Bool {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m232 |[0;0m return !isAcute
[0;36m233 |[0;0m }
/Users/admin/builder/spi-builder-workspace/source/Metron/Shape/Triangle.swift:240:5: [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m238 |[0;0m /// The intersection of the lines drawn from each
[0;36m239 |[0;0m /// vertex to the midpoint of the other side.
[0;36m240 |[0;0m public var centroid: CGPoint {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m241 |[0;0m return CGPoint(x: (vertexA.x + vertexB.x + vertexC.x) / 3.0,
[0;36m242 |[0;0m y: (vertexA.y + vertexB.y + vertexC.y) / 3.0)
/Users/admin/builder/spi-builder-workspace/source/Metron/Shape/Triangle.swift:247:5: [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m245 |[0;0m /// The interscetion of each side's perpendicular bisector
[0;36m246 |[0;0m /// (a perpendicular line drawn from the midpoint of a side).
[0;36m247 |[0;0m public var circumcenter: CGPoint {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m248 |[0;0m let perpendicularBisectorA = sideA.line.perpendicular(through: sideA.midpoint)
[0;36m249 |[0;0m let perpendicularBisectorB = sideB.line.perpendicular(through: sideB.midpoint)
/Users/admin/builder/spi-builder-workspace/source/Metron/Shape/Triangle.swift:255:5: [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m253 |[0;0m /// The intersection of each angle's bisector
[0;36m254 |[0;0m /// (An angle bisector divides the angle into two angles with equal measures).
[0;36m255 |[0;0m public var incenter: CGPoint {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m256 |[0;0m return angleBisectorA.intersection(with: angleBisectorB)!
[0;36m257 |[0;0m }
/Users/admin/builder/spi-builder-workspace/source/Metron/Shape/Triangle.swift:261:5: [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m259 |[0;0m /// The intersection of each side's altitude
[0;36m260 |[0;0m /// (a line drawn at right angle to a side and going through the opposite vertex).
[0;36m261 |[0;0m public var orthocenter: CGPoint {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m262 |[0;0m return altitudeA.intersection(with: altitudeB)!
[0;36m263 |[0;0m }
/Users/admin/builder/spi-builder-workspace/source/Metron/Geometry/Rotatable.swift:21:5: [1;33mwarning: [1;39m'public' modifier is redundant for instance method declared in a public extension[0;0m
[0;36m19 |[0;0m
[0;36m20 |[0;0m /// - returns: The next element rotated in the provided direction.
[0;36m21 |[0;0m public func next(rotating: RotationDirection) -> Self {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for instance method declared in a public extension[0;0m
[0;36m22 |[0;0m let allInDirection = (rotating == .clockwise) ? Self.all : Self.all.reversed()
[0;36m23 |[0;0m let nextIndex = (allInDirection.index(of: self)! + 1) % allInDirection.count
/Users/admin/builder/spi-builder-workspace/source/Metron/Geometry/Rotatable.swift:28:5: [1;33mwarning: [1;39m'public' modifier is redundant for instance method declared in a public extension[0;0m
[0;36m26 |[0;0m
[0;36m27 |[0;0m /// - returns: The previous element rotated in the provided direction.
[0;36m28 |[0;0m public func previous(rotating: RotationDirection) -> Self {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for instance method declared in a public extension[0;0m
[0;36m29 |[0;0m return next(rotating: rotating).opposite
[0;36m30 |[0;0m }
/Users/admin/builder/spi-builder-workspace/source/Metron/Geometry/Rotatable.swift:33:5: [1;33mwarning: [1;39m'public' modifier is redundant for static method declared in a public extension[0;0m
[0;36m31 |[0;0m
[0;36m32 |[0;0m /// - returns: All elements starting and in rotating order as provided.
[0;36m33 |[0;0m public static func all(startingAt start: Self,
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for static method declared in a public extension[0;0m
[0;36m34 |[0;0m rotating: RotationDirection = .clockwise) -> [Self] {
[0;36m35 |[0;0m var arrangedAll: [Self] = Self.all
/Users/admin/builder/spi-builder-workspace/source/Metron/Geometry/Opposable.swift:27:5: [1;33mwarning: [1;39m'public' modifier is redundant for static property declared in a public extension[0;0m
[0;36m25 |[0;0m public extension Opposable where Self: Equatable {
[0;36m26 |[0;0m
[0;36m27 |[0;0m public static var all: [Self] {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for static property declared in a public extension[0;0m
[0;36m28 |[0;0m return allOpposites.map { $0.0 } + allOpposites.map { $0.1 }
[0;36m29 |[0;0m }
/Users/admin/builder/spi-builder-workspace/source/Metron/Geometry/Opposable.swift:31:5: [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m29 |[0;0m }
[0;36m30 |[0;0m
[0;36m31 |[0;0m public var opposite: Self {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m32 |[0;0m let allOpposites = Self.allOpposites
[0;36m33 |[0;0m for (lhs, rhs) in allOpposites {
/Users/admin/builder/spi-builder-workspace/source/Metron/Shape/Square.swift:20:5: [1;33mwarning: [1;39m'public' modifier is redundant for initializer declared in a public extension[0;0m
[0;36m18 |[0;0m /// Initializes a `Square` that is aspect-fitted in
[0;36m19 |[0;0m /// the center of the provided rect.
[0;36m20 |[0;0m public init(in rect: CGRect) {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for initializer declared in a public extension[0;0m
[0;36m21 |[0;0m let square = CGRect(aspectFitSize: CGSize(edges: min(rect.width, rect.height)), inRect: rect)
[0;36m22 |[0;0m self.init(origin: square.origin, edges: square.width)
/Users/admin/builder/spi-builder-workspace/source/Metron/Shape/Square.swift:26:5: [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m24 |[0;0m
[0;36m25 |[0;0m /// - returns: The `CGRect` representing this square.
[0;36m26 |[0;0m public var rect: CGRect {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m27 |[0;0m return CGRect(origin: origin, edges: edges)
[0;36m28 |[0;0m }
/Users/admin/builder/spi-builder-workspace/source/Metron/Shape/Triangle.swift:34:5: [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m32 |[0;0m
[0;36m33 |[0;0m public extension Triplet where T: Summable {
[0;36m34 |[0;0m public var sum: T {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m35 |[0;0m return a + b + c
[0;36m36 |[0;0m }
/Users/admin/builder/spi-builder-workspace/source/Metron/Shape/Triangle.swift:61:5: [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m59 |[0;0m public extension Triangle {
[0;36m60 |[0;0m
[0;36m61 |[0;0m public var vertexA: Vertex {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m62 |[0;0m return vertices.a
[0;36m63 |[0;0m }
/Users/admin/builder/spi-builder-workspace/source/Metron/Shape/Triangle.swift:64:5: [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m62 |[0;0m return vertices.a
[0;36m63 |[0;0m }
[0;36m64 |[0;0m public var vertexB: Vertex {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m65 |[0;0m return vertices.b
[0;36m66 |[0;0m }
/Users/admin/builder/spi-builder-workspace/source/Metron/Shape/Triangle.swift:67:5: [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m65 |[0;0m return vertices.b
[0;36m66 |[0;0m }
[0;36m67 |[0;0m public var vertexC: Vertex {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m68 |[0;0m return vertices.c
[0;36m69 |[0;0m }
/Users/admin/builder/spi-builder-workspace/source/Metron/Shape/Triangle.swift:75:5: [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m73 |[0;0m
[0;36m74 |[0;0m /// Side A is opposite `vertexA`.
[0;36m75 |[0;0m public var sideA: LineSegment {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m76 |[0;0m return LineSegment(a: vertices.b, b: vertices.c)
[0;36m77 |[0;0m }
/Users/admin/builder/spi-builder-workspace/source/Metron/Shape/Triangle.swift:79:5: [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m77 |[0;0m }
[0;36m78 |[0;0m /// Side B is opposite `vertexB`.
[0;36m79 |[0;0m public var sideB: LineSegment {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m80 |[0;0m return LineSegment(a: vertices.c, b: vertices.a)
[0;36m81 |[0;0m }
/Users/admin/builder/spi-builder-workspace/source/Metron/Shape/Triangle.swift:83:5: [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m81 |[0;0m }
[0;36m82 |[0;0m /// Side C is opposite `vertexC`.
[0;36m83 |[0;0m public var sideC: LineSegment {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m84 |[0;0m return LineSegment(a: vertices.a, b: vertices.b)
[0;36m85 |[0;0m }
/Users/admin/builder/spi-builder-workspace/source/Metron/Shape/Triangle.swift:88:5: [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m86 |[0;0m
[0;36m87 |[0;0m /// All sides as `Triplet`.
[0;36m88 |[0;0m public var sides: Triplet<LineSegment> {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m89 |[0;0m return Triplet(a: sideA, b: sideB, c: sideC)
[0;36m90 |[0;0m }
/Users/admin/builder/spi-builder-workspace/source/Metron/Shape/Triangle.swift:97:5: [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m95 |[0;0m /// Angle A is the angle at vertex A,
[0;36m96 |[0;0m /// from side C to side B.
[0;36m97 |[0;0m public var angleA: Angle {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m98 |[0;0m return angles.a
[0;36m99 |[0;0m }
/Users/admin/builder/spi-builder-workspace/source/Metron/Shape/Triangle.swift:103:5: [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m101 |[0;0m /// Angle B is the angle at vertex B,
[0;36m102 |[0;0m /// from side A to side C.
[0;36m103 |[0;0m public var angleB: Angle {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m104 |[0;0m return angles.b
[0;36m105 |[0;0m }
/Users/admin/builder/spi-builder-workspace/source/Metron/Shape/Triangle.swift:109:5: [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m107 |[0;0m /// Angle C is the angle at vertex C,
[0;36m108 |[0;0m /// from side B to side A.
[0;36m109 |[0;0m public var angleC: Angle {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m110 |[0;0m return angles.c
[0;36m111 |[0;0m }
/Users/admin/builder/spi-builder-workspace/source/Metron/Shape/Triangle.swift:115:5: [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m113 |[0;0m /// All angles as `Triplet`. These are calculated together
[0;36m114 |[0;0m /// to guarantee the angles are not inversed (negative or reflex).
[0;36m115 |[0;0m public var angles: Triplet<Angle> {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m116 |[0;0m let a = vertexA.angle(previous: vertexC, next: vertexB)
[0;36m117 |[0;0m let b = vertexB.angle(previous: vertexA, next: vertexC)
/Users/admin/builder/spi-builder-workspace/source/Metron/Shape/Triangle.swift:131:5: [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m129 |[0;0m /// An angle bisector divides the angle into two angles with equal measures.
[0;36m130 |[0;0m /// `angleBisectorA` bisects `angleA`.
[0;36m131 |[0;0m public var angleBisectorA: LineSegment {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m132 |[0;0m return LineSegment(a: vertices.a, b: vertices.b).rotatedAroundA(0.5 * angleA)
[0;36m133 |[0;0m }
/Users/admin/builder/spi-builder-workspace/source/Metron/Shape/Triangle.swift:137:5: [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m135 |[0;0m /// An angle bisector divides the angle into two angles with equal measures.
[0;36m136 |[0;0m /// `angleBisectorB` bisects `angleB`.
[0;36m137 |[0;0m public var angleBisectorB: LineSegment {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m138 |[0;0m return LineSegment(a: vertices.b, b: vertices.c).rotatedAroundA(0.5 * angleB)
[0;36m139 |[0;0m }
/Users/admin/builder/spi-builder-workspace/source/Metron/Shape/Triangle.swift:143:5: [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m141 |[0;0m /// An angle bisector divides the angle into two angles with equal measures.
[0;36m142 |[0;0m /// `angleBisectorC` bisects `angleC`.
[0;36m143 |[0;0m public var angleBisectorC: LineSegment {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m144 |[0;0m return LineSegment(a: vertices.c, b: vertices.a).rotatedAroundA(0.5 * angleC)
[0;36m145 |[0;0m }
/Users/admin/builder/spi-builder-workspace/source/Metron/Shape/Triangle.swift:148:5: [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m146 |[0;0m
[0;36m147 |[0;0m /// All angle bisectors as `Triplet`.
[0;36m148 |[0;0m public var angleBisectors: Triplet<LineSegment> {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m149 |[0;0m return Triplet(a: angleBisectorA, b: angleBisectorB, c: angleBisectorC)
[0;36m150 |[0;0m }
/Users/admin/builder/spi-builder-workspace/source/Metron/Shape/Triangle.swift:158:5: [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m156 |[0;0m /// and perpendicular to the opposite side.
[0;36m157 |[0;0m /// `altitudeA` goes perpendicular from `sideA` to `vertexA`.
[0;36m158 |[0;0m public var altitudeA: LineSegment {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m159 |[0;0m let line = sideA.line.perpendicular(through: vertexA)
[0;36m160 |[0;0m return line.segment(between: line.intersection(with: sideA)!, and: vertexA)!
/Users/admin/builder/spi-builder-workspace/source/Metron/Shape/Triangle.swift:166:5: [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m164 |[0;0m /// and perpendicular to the opposite side.
[0;36m165 |[0;0m /// `altitudeB` goes perpendicular from `sideB` to `vertexB`.
[0;36m166 |[0;0m public var altitudeB: LineSegment {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m167 |[0;0m let line = sideB.line.perpendicular(through: vertexB)
[0;36m168 |[0;0m return line.segment(between: line.intersection(with: sideB)!, and: vertexB)!
/Users/admin/builder/spi-builder-workspace/source/Metron/Shape/Triangle.swift:174:5: [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m172 |[0;0m /// and perpendicular to the opposite side.
[0;36m173 |[0;0m /// `altitudeC` goes perpendicular from `sideC` to `vertexC`.
[0;36m174 |[0;0m public var altitudeC: LineSegment {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m175 |[0;0m let line = sideC.line.perpendicular(through: vertexC)
[0;36m176 |[0;0m return line.segment(between: line.intersection(with: sideC)!, and: vertexC)!
/Users/admin/builder/spi-builder-workspace/source/Metron/Shape/Triangle.swift:180:5: [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m178 |[0;0m
[0;36m179 |[0;0m /// All altitudes as `Triplet`.
[0;36m180 |[0;0m public var altitudes: Triplet<LineSegment> {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m181 |[0;0m return Triplet(a: altitudeA, b: altitudeB, c: altitudeC)
[0;36m182 |[0;0m }
/Users/admin/builder/spi-builder-workspace/source/Metron/Shape/Triangle.swift:192:5: [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m190 |[0;0m
[0;36m191 |[0;0m /// True if all sides are equal.
[0;36m192 |[0;0m public var isEquilateral: Bool {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m193 |[0;0m let sides = self.sides
[0;36m194 |[0;0m let (a, b, c) = (sides.a.length, sides.b.length, sides.c.length)
/Users/admin/builder/spi-builder-workspace/source/Metron/Shape/Triangle.swift:200:5: [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m198 |[0;0m
[0;36m199 |[0;0m /// True iff two sides are equal.
[0;36m200 |[0;0m public var isIsosceles: Bool {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m201 |[0;0m let sides = self.sides
[0;36m202 |[0;0m let (a, b, c) = (sides.a.length, sides.b.length, sides.c.length)
/Users/admin/builder/spi-builder-workspace/source/Metron/Shape/Triangle.swift:209:5: [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m207 |[0;0m
[0;36m208 |[0;0m /// True if all sides are different.
[0;36m209 |[0;0m public var isScalene: Bool {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m210 |[0;0m let sides = self.sides
[0;36m211 |[0;0m let (a, b, c) = (sides.a.length, sides.b.length, sides.c.length)
/Users/admin/builder/spi-builder-workspace/source/Metron/Shape/Triangle.swift:218:5: [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m216 |[0;0m
[0;36m217 |[0;0m /// True if one angle is exactly 90°.
[0;36m218 |[0;0m public var isRight: Bool {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m219 |[0;0m return angles.asArray.first { round($0.degrees) == 90.0 } != nil
[0;36m220 |[0;0m }
/Users/admin/builder/spi-builder-workspace/source/Metron/Shape/Triangle.swift:222:5: [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m220 |[0;0m }
[0;36m221 |[0;0m /// True of no angle is 90°.
[0;36m222 |[0;0m public var isOblique: Bool {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m223 |[0;0m return !isRight
[0;36m224 |[0;0m }
/Users/admin/builder/spi-builder-workspace/source/Metron/Shape/Triangle.swift:227:5: [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m225 |[0;0m
[0;36m226 |[0;0m /// True if all angles are less than 90°.
[0;36m227 |[0;0m public var isAcute: Bool {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m228 |[0;0m return angles.asArray.reduce(true, { return $0 && $1.degrees < 90.0 })
[0;36m229 |[0;0m }
/Users/admin/builder/spi-builder-workspace/source/Metron/Shape/Triangle.swift:231:5: [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m229 |[0;0m }
[0;36m230 |[0;0m /// True if one angle is more than 90°.
[0;36m231 |[0;0m public var isObtuse: Bool {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m232 |[0;0m return !isAcute
[0;36m233 |[0;0m }
/Users/admin/builder/spi-builder-workspace/source/Metron/Shape/Triangle.swift:240:5: [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m238 |[0;0m /// The intersection of the lines drawn from each
[0;36m239 |[0;0m /// vertex to the midpoint of the other side.
[0;36m240 |[0;0m public var centroid: CGPoint {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m241 |[0;0m return CGPoint(x: (vertexA.x + vertexB.x + vertexC.x) / 3.0,
[0;36m242 |[0;0m y: (vertexA.y + vertexB.y + vertexC.y) / 3.0)
/Users/admin/builder/spi-builder-workspace/source/Metron/Shape/Triangle.swift:247:5: [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m245 |[0;0m /// The interscetion of each side's perpendicular bisector
[0;36m246 |[0;0m /// (a perpendicular line drawn from the midpoint of a side).
[0;36m247 |[0;0m public var circumcenter: CGPoint {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m248 |[0;0m let perpendicularBisectorA = sideA.line.perpendicular(through: sideA.midpoint)
[0;36m249 |[0;0m let perpendicularBisectorB = sideB.line.perpendicular(through: sideB.midpoint)
/Users/admin/builder/spi-builder-workspace/source/Metron/Shape/Triangle.swift:255:5: [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m253 |[0;0m /// The intersection of each angle's bisector
[0;36m254 |[0;0m /// (An angle bisector divides the angle into two angles with equal measures).
[0;36m255 |[0;0m public var incenter: CGPoint {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m256 |[0;0m return angleBisectorA.intersection(with: angleBisectorB)!
[0;36m257 |[0;0m }
/Users/admin/builder/spi-builder-workspace/source/Metron/Shape/Triangle.swift:261:5: [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m259 |[0;0m /// The intersection of each side's altitude
[0;36m260 |[0;0m /// (a line drawn at right angle to a side and going through the opposite vertex).
[0;36m261 |[0;0m public var orthocenter: CGPoint {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m262 |[0;0m return altitudeA.intersection(with: altitudeB)!
[0;36m263 |[0;0m }
/Users/admin/builder/spi-builder-workspace/source/Metron/Shape/Circle.swift:25:5: [1;33mwarning: [1;39m'public' modifier is redundant for initializer declared in a public extension[0;0m
[0;36m23 |[0;0m /// Initializes a `Circle` with radius equal to
[0;36m24 |[0;0m /// half of the provided diameter.
[0;36m25 |[0;0m public init(center: CGPoint, diameter: CGFloat) {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for initializer declared in a public extension[0;0m
[0;36m26 |[0;0m self.init(center: center, radius: diameter / 2.0)
[0;36m27 |[0;0m }
/Users/admin/builder/spi-builder-workspace/source/Metron/Shape/Circle.swift:31:5: [1;33mwarning: [1;39m'public' modifier is redundant for initializer declared in a public extension[0;0m
[0;36m29 |[0;0m /// Initializes a `Circle` that is aspect-fitted
[0;36m30 |[0;0m /// in the center of the provided rect.
[0;36m31 |[0;0m public init(in rect: CGRect) {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for initializer declared in a public extension[0;0m
[0;36m32 |[0;0m self.init(in: Square(in: rect))
[0;36m33 |[0;0m }
/Users/admin/builder/spi-builder-workspace/source/Metron/Shape/Circle.swift:37:5: [1;33mwarning: [1;39m'public' modifier is redundant for initializer declared in a public extension[0;0m
[0;36m35 |[0;0m /// Initializes a `Circle` that is fitted in the
[0;36m36 |[0;0m /// provided square.
[0;36m37 |[0;0m public init(in square: Square) {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for initializer declared in a public extension[0;0m
[0;36m38 |[0;0m self.init(center: square.center, diameter: square.edges)
[0;36m39 |[0;0m }
/Users/admin/builder/spi-builder-workspace/source/Metron/Shape/Circle.swift:42:5: [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m40 |[0;0m
[0;36m41 |[0;0m /// The diamater, equal to 2 times the radius.
[0;36m42 |[0;0m public var diameter: CGFloat {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m43 |[0;0m return radius * 2.0
[0;36m44 |[0;0m }
/Users/admin/builder/spi-builder-workspace/source/Metron/Shape/Circle.swift:47:5: [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m45 |[0;0m
[0;36m46 |[0;0m /// The length of the enclosing boundary.
[0;36m47 |[0;0m public var circumference: CGFloat {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m48 |[0;0m return diameter * .pi
[0;36m49 |[0;0m }
/Users/admin/builder/spi-builder-workspace/source/Metron/Shape/Circle.swift:52:5: [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m50 |[0;0m
[0;36m51 |[0;0m /// - returns: The bounding square for this circle.
[0;36m52 |[0;0m public var square: Square {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m53 |[0;0m return Square(origin: CGPoint(x: minX, y: minY), edges: diameter)
[0;36m54 |[0;0m }
/Users/admin/builder/spi-builder-workspace/source/Metron/Shape/Circle.swift:63:5: [1;33mwarning: [1;39m'public' modifier is redundant for instance method declared in a public extension[0;0m
[0;36m61 |[0;0m /// The points are taken `startingAt` a specific angle and `rotating` in a
[0;36m62 |[0;0m /// specific direction (`clockwise` by default), .
[0;36m63 |[0;0m public func pointsAlongPerimeter(dividedInto segments: CGFloat, startingAt startingAngle: Angle = Angle(0), rotating: RotationDirection = .clockwise) -> [CGPoint] {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for instance method declared in a public extension[0;0m
[0;36m64 |[0;0m guard segments > 0 else { return [] }
[0;36m65 |[0;0m let fullRotation = Angle.fullRotation(unit: .radians)
/Users/admin/builder/spi-builder-workspace/source/Metron/Shape/Line.swift:30:5: [1;33mwarning: [1;39m'public' modifier is redundant for initializer declared in a public extension[0;0m
[0;36m28 |[0;0m
[0;36m29 |[0;0m /// Initializes a `Line` through the provided two points.
[0;36m30 |[0;0m public init(a: CGPoint, b: CGPoint) {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for initializer declared in a public extension[0;0m
[0;36m31 |[0;0m let dx = a.x - b.x
[0;36m32 |[0;0m if dx == 0.0 {
/Users/admin/builder/spi-builder-workspace/source/Metron/Shape/Line.swift:43:5: [1;33mwarning: [1;39m'public' modifier is redundant for initializer declared in a public extension[0;0m
[0;36m41 |[0;0m /// Initializes a line that goes through the start and end points
[0;36m42 |[0;0m /// of the provided `LineSegment`.
[0;36m43 |[0;0m public init(lineSegment: LineSegment) {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for initializer declared in a public extension[0;0m
[0;36m44 |[0;0m self.init(a: lineSegment.a, b: lineSegment.b)
[0;36m45 |[0;0m }
/Users/admin/builder/spi-builder-workspace/source/Metron/Shape/Line.swift:49:5: [1;33mwarning: [1;39m'public' modifier is redundant for initializer declared in a public extension[0;0m
[0;36m47 |[0;0m /// Initializes a line that runs at the provided `Angle`
[0;36m48 |[0;0m /// through the provided `CGPoint`.
[0;36m49 |[0;0m public init(angle: Angle, through point: CGPoint) {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for initializer declared in a public extension[0;0m
[0;36m50 |[0;0m self.init(a: point, b: point + CGVector(angle: angle, magnitude: 1.0))
[0;36m51 |[0;0m }
/Users/admin/builder/spi-builder-workspace/source/Metron/Shape/Line.swift:54:5: [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m52 |[0;0m
[0;36m53 |[0;0m /// - returns: If the definition of this line is non-vertical, the slope of the line.
[0;36m54 |[0;0m public var slope: CGFloat? {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m55 |[0;0m guard case let .sloped(s, _) = definition else { return nil }
[0;36m56 |[0;0m return s
/Users/admin/builder/spi-builder-workspace/source/Metron/Shape/Line.swift:60:5: [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m58 |[0;0m
[0;36m59 |[0;0m /// - returns: If the definition of this line is non-vertical, the y-intercept of the line.
[0;36m60 |[0;0m public var yIntercept: CGFloat? {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m61 |[0;0m guard case let .sloped(_, y) = definition else { return nil }
[0;36m62 |[0;0m return y
/Users/admin/builder/spi-builder-workspace/source/Metron/Shape/Line.swift:66:5: [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m64 |[0;0m
[0;36m65 |[0;0m /// - returns: If the definition of this line is vertical, the x-position of the line.
[0;36m66 |[0;0m public var xPosition: CGFloat? {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m67 |[0;0m guard case let .vertical(x) = definition else { return nil }
[0;36m68 |[0;0m return x
/Users/admin/builder/spi-builder-workspace/source/Metron/Shape/Line.swift:72:5: [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m70 |[0;0m
[0;36m71 |[0;0m /// - returns: True if this line is vertical.
[0;36m72 |[0;0m public var isVertical: Bool {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m73 |[0;0m if case .vertical(_) = definition {
[0;36m74 |[0;0m return true
/Users/admin/builder/spi-builder-workspace/source/Metron/Shape/Line.swift:80:5: [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m78 |[0;0m
[0;36m79 |[0;0m /// - returns: True if this line is horizontal (slope equals zero).
[0;36m80 |[0;0m public var isHorizontal: Bool {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m81 |[0;0m if case let .sloped(slope, _) = definition {
[0;36m82 |[0;0m return abs(slope) == 0.0
/Users/admin/builder/spi-builder-workspace/source/Metron/Shape/Line.swift:90:5: [1;33mwarning: [1;39m'public' modifier is redundant for instance method declared in a public extension[0;0m
[0;36m88 |[0;0m /// Will be nil for vertical lines.
[0;36m89 |[0;0m /// y = mx+b
[0;36m90 |[0;0m public func point(atX x: CGFloat) -> CGPoint? {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for instance method declared in a public extension[0;0m
[0;36m91 |[0;0m guard case let .sloped(slope, yIntercept) = definition else { return nil }
[0;36m92 |[0;0m return CGPoint(x: x, y: slope * x + yIntercept)
/Users/admin/builder/spi-builder-workspace/source/Metron/Shape/Line.swift:98:5: [1;33mwarning: [1;39m'public' modifier is redundant for instance method declared in a public extension[0;0m
[0;36m96 |[0;0m /// Will be nil for horizontal lines.
[0;36m97 |[0;0m /// x = (y-b)/m
[0;36m98 |[0;0m public func point(atY y: CGFloat) -> CGPoint? {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for instance method declared in a public extension[0;0m
[0;36m99 |[0;0m switch definition {
[0;36m100 |[0;0m case let .sloped(slope, yIntercept):
/Users/admin/builder/spi-builder-workspace/source/Metron/Shape/Line.swift:109:5: [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m107 |[0;0m
[0;36m108 |[0;0m /// - returns: The value for x on this line where y is 0.
[0;36m109 |[0;0m public var xIntercept: CGFloat? {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m110 |[0;0m switch definition {
[0;36m111 |[0;0m case let .sloped(slope, yIntercept):
/Users/admin/builder/spi-builder-workspace/source/Metron/Shape/Line.swift:120:5: [1;33mwarning: [1;39m'public' modifier is redundant for instance method declared in a public extension[0;0m
[0;36m118 |[0;0m
[0;36m119 |[0;0m /// - returns: The segment of this line that is between the provided points.
[0;36m120 |[0;0m public func segment(between p1: CGPoint, and p2: CGPoint) -> LineSegment? {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for instance method declared in a public extension[0;0m
[0;36m121 |[0;0m let a = point(atX: p1.x) ?? point(atY: p1.y)
[0;36m122 |[0;0m let b = point(atX: p2.x) ?? point(atY: p2.y)
/Users/admin/builder/spi-builder-workspace/source/Metron/Shape/Line.swift:131:5: [1;33mwarning: [1;39m'public' modifier is redundant for instance method declared in a public extension[0;0m
[0;36m129 |[0;0m /// - returns: True when the provided point is on this `Line`.
[0;36m130 |[0;0m /// - note: An error margin of 1e-12 is allowed.
[0;36m131 |[0;0m public func contains(_ point: CGPoint) -> Bool {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for instance method declared in a public extension[0;0m
[0;36m132 |[0;0m switch definition {
[0;36m133 |[0;0m case .sloped:
/Users/admin/builder/spi-builder-workspace/source/Metron/Shape/Line.swift:144:5: [1;33mwarning: [1;39m'public' modifier is redundant for instance method declared in a public extension[0;0m
[0;36m142 |[0;0m /// - returns: The intersection of this `Line` with the provided `Line`.
[0;36m143 |[0;0m /// Will be nil for parallel lines.
[0;36m144 |[0;0m public func intersection(with line: Line) -> CGPoint? {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for instance method declared in a public extension[0;0m
[0;36m145 |[0;0m switch (self.definition, line.definition) {
[0;36m146 |[0;0m case let (.sloped(slope1, yIntercept1),
/Users/admin/builder/spi-builder-workspace/source/Metron/Shape/Line.swift:161:5: [1;33mwarning: [1;39m'public' modifier is redundant for instance method declared in a public extension[0;0m
[0;36m159 |[0;0m /// Similar to intersection(with line:…), but this also checks if a
[0;36m160 |[0;0m /// found intersection is also between the line segment's start and end points.
[0;36m161 |[0;0m public func intersection(with lineSegment: LineSegment) -> CGPoint? {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for instance method declared in a public extension[0;0m
[0;36m162 |[0;0m let line = lineSegment.line
[0;36m163 |[0;0m if let intersection = self.intersection(with: line) {
/Users/admin/builder/spi-builder-workspace/source/Metron/Shape/Line.swift:174:5: [1;33mwarning: [1;39m'public' modifier is redundant for instance method declared in a public extension[0;0m
[0;36m172 |[0;0m /// Always true for two vertical lines. True for sloped lines with
[0;36m173 |[0;0m /// equal slopes.
[0;36m174 |[0;0m public func isParallel(to line: Line) -> Bool {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for instance method declared in a public extension[0;0m
[0;36m175 |[0;0m switch (self.definition, line.definition) {
[0;36m176 |[0;0m case let (.sloped(slope1, _), .sloped(slope2, _)):
/Users/admin/builder/spi-builder-workspace/source/Metron/Shape/Line.swift:185:5: [1;33mwarning: [1;39m'public' modifier is redundant for instance method declared in a public extension[0;0m
[0;36m183 |[0;0m /// - returns: A `Line` that runs at a 90° angle through self,
[0;36m184 |[0;0m /// through the provided point.
[0;36m185 |[0;0m public func perpendicular(through point: CGPoint) -> Line {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for instance method declared in a public extension[0;0m
[0;36m186 |[0;0m switch definition {
[0;36m187 |[0;0m case let .sloped(slope, _):
/Users/admin/builder/spi-builder-workspace/source/Metron/Shape/LineSegment.swift:18:5: [1;33mwarning: [1;39m'public' modifier is redundant for initializer declared in a public extension[0;0m
[0;36m16 |[0;0m public extension LineSegment {
[0;36m17 |[0;0m
[0;36m18 |[0;0m public init(origin: CGPoint, vector: CGVector) {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for initializer declared in a public extension[0;0m
[0;36m19 |[0;0m self.a = origin
[0;36m20 |[0;0m self.b = origin + vector
/Users/admin/builder/spi-builder-workspace/source/Metron/Shape/LineSegment.swift:24:5: [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m22 |[0;0m
[0;36m23 |[0;0m /// - returns: A `Line` that runs through this line segment's points.
[0;36m24 |[0;0m public var line: Line {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m25 |[0;0m return Line(a: a, b: b)
[0;36m26 |[0;0m }
/Users/admin/builder/spi-builder-workspace/source/Metron/Shape/LineSegment.swift:28:5: [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m26 |[0;0m }
[0;36m27 |[0;0m
[0;36m28 |[0;0m public var minX: CGFloat {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m29 |[0;0m return min(a.x, b.x)
[0;36m30 |[0;0m }
/Users/admin/builder/spi-builder-workspace/source/Metron/Shape/LineSegment.swift:32:5: [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m30 |[0;0m }
[0;36m31 |[0;0m
[0;36m32 |[0;0m public var maxX: CGFloat {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m33 |[0;0m return max(a.x, b.x)
[0;36m34 |[0;0m }
/Users/admin/builder/spi-builder-workspace/source/Metron/Shape/LineSegment.swift:36:5: [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m34 |[0;0m }
[0;36m35 |[0;0m
[0;36m36 |[0;0m public var minY: CGFloat {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m37 |[0;0m return min(a.y, b.y)
[0;36m38 |[0;0m }
/Users/admin/builder/spi-builder-workspace/source/Metron/Shape/LineSegment.swift:40:5: [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m38 |[0;0m }
[0;36m39 |[0;0m
[0;36m40 |[0;0m public var maxY: CGFloat {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m41 |[0;0m return max(a.y, b.y)
[0;36m42 |[0;0m }
/Users/admin/builder/spi-builder-workspace/source/Metron/Shape/LineSegment.swift:45:5: [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m43 |[0;0m
[0;36m44 |[0;0m /// - returns: The vector of this `LineSegment`, originating from point a.
[0;36m45 |[0;0m public var vector: CGVector {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m46 |[0;0m return CGVector(dx: b.x - a.x, dy: b.y - a.y)
[0;36m47 |[0;0m }
/Users/admin/builder/spi-builder-workspace/source/Metron/Shape/LineSegment.swift:50:5: [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m48 |[0;0m
[0;36m49 |[0;0m /// If vertical, there's no slope so no Line can be derived from this segment.
[0;36m50 |[0;0m public var isVertical: Bool {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m51 |[0;0m return minX == maxX
[0;36m52 |[0;0m }
/Users/admin/builder/spi-builder-workspace/source/Metron/Shape/LineSegment.swift:57:5: [1;33mwarning: [1;39m'public' modifier is redundant for instance method declared in a public extension[0;0m
[0;36m55 |[0;0m /// between its points.
[0;36m56 |[0;0m /// - note: An error margin of 1e-12 is allowed.
[0;36m57 |[0;0m public func contains(_ point: CGPoint) -> Bool {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for instance method declared in a public extension[0;0m
[0;36m58 |[0;0m if isVertical {
[0;36m59 |[0;0m return point.x == minX && point.y.between(lower: a.y, upper: b.y)
/Users/admin/builder/spi-builder-workspace/source/Metron/Shape/LineSegment.swift:67:5: [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m65 |[0;0m
[0;36m66 |[0;0m /// - returns: The start and end points of this `LineSegment` as an array.
[0;36m67 |[0;0m public var points: [CGPoint] {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m68 |[0;0m return [a, b]
[0;36m69 |[0;0m }
/Users/admin/builder/spi-builder-workspace/source/Metron/Shape/LineSegment.swift:72:5: [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m70 |[0;0m
[0;36m71 |[0;0m /// - returns: The point halfway A->B.
[0;36m72 |[0;0m public var midpoint: CGPoint {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m73 |[0;0m return CGPoint(x: (a.x + b.x) / 2.0,
[0;36m74 |[0;0m y: (a.y + b.y) / 2.0)
/Users/admin/builder/spi-builder-workspace/source/Metron/Shape/LineSegment.swift:78:5: [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m76 |[0;0m
[0;36m77 |[0;0m /// - returns: The length of this `LineSegment`, i.e. the distance from A to B.
[0;36m78 |[0;0m public var length: CGFloat {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m79 |[0;0m return a.distance(to: b)
[0;36m80 |[0;0m }
/Users/admin/builder/spi-builder-workspace/source/Metron/Shape/LineSegment.swift:83:5: [1;33mwarning: [1;39m'public' modifier is redundant for instance method declared in a public extension[0;0m
[0;36m81 |[0;0m
[0;36m82 |[0;0m /// - returns: The intersection of this `LineSegment` with the provided `Line`.
[0;36m83 |[0;0m public func intersection(with line: Line) -> CGPoint? {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for instance method declared in a public extension[0;0m
[0;36m84 |[0;0m return line.intersection(with: self)
[0;36m85 |[0;0m }
/Users/admin/builder/spi-builder-workspace/source/Metron/Shape/LineSegment.swift:88:5: [1;33mwarning: [1;39m'public' modifier is redundant for instance method declared in a public extension[0;0m
[0;36m86 |[0;0m
[0;36m87 |[0;0m /// - returns: The intersection of this `LineSegment` with the provided `LineSegment`.
[0;36m88 |[0;0m public func intersection(with lineSegment: LineSegment) -> CGPoint? {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for instance method declared in a public extension[0;0m
[0;36m89 |[0;0m if let intersection = line.intersection(with: lineSegment) {
[0;36m90 |[0;0m return contains(intersection) ? intersection : nil
/Users/admin/builder/spi-builder-workspace/source/Metron/Shape/LineSegment.swift:97:5: [1;33mwarning: [1;39m'public' modifier is redundant for instance method declared in a public extension[0;0m
[0;36m95 |[0;0m /// - returns: A new `LineSegment` that is rotated by the provided angle,
[0;36m96 |[0;0m /// around point A.
[0;36m97 |[0;0m public func rotatedAroundA(_ angle: Angle) -> LineSegment {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for instance method declared in a public extension[0;0m
[0;36m98 |[0;0m let t = CGAffineTransform(rotationAngle: angle)
[0;36m99 |[0;0m return self.applying(t, anchorPoint: a)
/Users/admin/builder/spi-builder-workspace/source/Metron/Shape/LineSegment.swift:104:5: [1;33mwarning: [1;39m'public' modifier is redundant for instance method declared in a public extension[0;0m
[0;36m102 |[0;0m /// - returns: A new `LineSegment` that is rotated by the provided angle,
[0;36m103 |[0;0m /// around point B.
[0;36m104 |[0;0m public func rotatedAroundB(_ angle: Angle) -> LineSegment {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for instance method declared in a public extension[0;0m
[0;36m105 |[0;0m let t = CGAffineTransform(rotationAngle: angle)
[0;36m106 |[0;0m return self.applying(t, anchorPoint: b)
/Users/admin/builder/spi-builder-workspace/source/Metron/Extension/CGAffineTransform.swift:21:5: [1;33mwarning: [1;39m'public' modifier is redundant for instance method declared in a public extension[0;0m
[0;36m19 |[0;0m
[0;36m20 |[0;0m /// Applies the given transform using the origin as anchor point.
[0;36m21 |[0;0m public func applying(_ t: CGAffineTransform, anchorPoint: CGPoint) -> Self {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for instance method declared in a public extension[0;0m
[0;36m22 |[0;0m let m = applying(CGAffineTransform(translationX: -anchorPoint.x, y: -anchorPoint.y))
[0;36m23 |[0;0m let mt = m.applying(t)
/Users/admin/builder/spi-builder-workspace/source/Metron/Extension/CGPoint.swift:6:5: [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m4 |[0;0m
[0;36m5 |[0;0m /// - returns: A `CGVector` with dx: x and dy: y.
[0;36m6 |[0;0m public var vector: CGVector {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m7 |[0;0m return CGVector(dx: x, dy: y)
[0;36m8 |[0;0m }
/Users/admin/builder/spi-builder-workspace/source/Metron/Extension/CGPoint.swift:11:5: [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m9 |[0;0m
[0;36m10 |[0;0m /// - returns: A `CGPoint` with rounded x and y values.
[0;36m11 |[0;0m public var rounded: CGPoint {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m12 |[0;0m return CGPoint(x: round(x), y: round(y))
[0;36m13 |[0;0m }
/Users/admin/builder/spi-builder-workspace/source/Metron/Extension/CGPoint.swift:16:5: [1;33mwarning: [1;39m'public' modifier is redundant for instance method declared in a public extension[0;0m
[0;36m14 |[0;0m
[0;36m15 |[0;0m /// - returns: The Euclidean distance from self to the given point.
[0;36m16 |[0;0m public func distance(to point: CGPoint) -> CGFloat {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for instance method declared in a public extension[0;0m
[0;36m17 |[0;0m return (point - self).magnitude
[0;36m18 |[0;0m }
/Users/admin/builder/spi-builder-workspace/source/Metron/Extension/CGPoint.swift:21:5: [1;33mwarning: [1;39m'public' modifier is redundant for instance method declared in a public extension[0;0m
[0;36m19 |[0;0m
[0;36m20 |[0;0m /// Constrains the x and y value to within the provided rect.
[0;36m21 |[0;0m public func clipped(to rect: CGRect) -> CGPoint {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for instance method declared in a public extension[0;0m
[0;36m22 |[0;0m return CGPoint(x: x.clipped(rect.minX, rect.maxX),
[0;36m23 |[0;0m y: y.clipped(rect.minY, rect.maxY))
/Users/admin/builder/spi-builder-workspace/source/Metron/Extension/CGPoint.swift:27:5: [1;33mwarning: [1;39m'public' modifier is redundant for instance method declared in a public extension[0;0m
[0;36m25 |[0;0m
[0;36m26 |[0;0m /// - returns: The relative position inside the provided rect.
[0;36m27 |[0;0m public func position(in rect: CGRect) -> CGPoint {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for instance method declared in a public extension[0;0m
[0;36m28 |[0;0m return CGPoint(x: x - rect.origin.x,
[0;36m29 |[0;0m y: y - rect.origin.y)
/Users/admin/builder/spi-builder-workspace/source/Metron/Extension/CGPoint.swift:35:5: [1;33mwarning: [1;39m'public' modifier is redundant for instance method declared in a public extension[0;0m
[0;36m33 |[0;0m /// where horizontal and vertical position are normalized
[0;36m34 |[0;0m /// (i.e. mapped to 0-1 range).
[0;36m35 |[0;0m public func normalizedPosition(in rect: CGRect) -> CGPoint {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for instance method declared in a public extension[0;0m
[0;36m36 |[0;0m let p = position(in: rect)
[0;36m37 |[0;0m return CGPoint(x: (1.0 / rect.width) * p.x,
/Users/admin/builder/spi-builder-workspace/source/Metron/Extension/CGPoint.swift:42:5: [1;33mwarning: [1;39m'public' modifier is redundant for instance method declared in a public extension[0;0m
[0;36m40 |[0;0m
[0;36m41 |[0;0m /// - returns: True if the line contains the point.
[0;36m42 |[0;0m public func isAt(line: Line) -> Bool {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for instance method declared in a public extension[0;0m
[0;36m43 |[0;0m return line.contains(self)
[0;36m44 |[0;0m }
/Users/admin/builder/spi-builder-workspace/source/Metron/Extension/CGRect.swift:7:5: [1;33mwarning: [1;39m'public' modifier is redundant for initializer declared in a public extension[0;0m
[0;36m5 |[0;0m // MARK: Convenience initializers
[0;36m6 |[0;0m
[0;36m7 |[0;0m public init(size: CGSize) {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for initializer declared in a public extension[0;0m
[0;36m8 |[0;0m self.init(origin: .zero, size: size)
[0;36m9 |[0;0m }
/Users/admin/builder/spi-builder-workspace/source/Metron/Extension/CGRect.swift:11:5: [1;33mwarning: [1;39m'public' modifier is redundant for initializer declared in a public extension[0;0m
[0;36m9 |[0;0m }
[0;36m10 |[0;0m
[0;36m11 |[0;0m public init(center: CGPoint, size: CGSize) {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for initializer declared in a public extension[0;0m
[0;36m12 |[0;0m self.init(origin: CGPoint(x: center.x - size.width / 2, y: center.y - size.height / 2), size: size)
[0;36m13 |[0;0m }
/Users/admin/builder/spi-builder-workspace/source/Metron/Extension/CGRect.swift:15:5: [1;33mwarning: [1;39m'public' modifier is redundant for initializer declared in a public extension[0;0m
[0;36m13 |[0;0m }
[0;36m14 |[0;0m
[0;36m15 |[0;0m public init(origin: CGPoint, edges: CGFloat) {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for initializer declared in a public extension[0;0m
[0;36m16 |[0;0m self.init(origin: origin, size: CGSize(edges: edges))
[0;36m17 |[0;0m }
/Users/admin/builder/spi-builder-workspace/source/Metron/Extension/CGRect.swift:19:5: [1;33mwarning: [1;39m'public' modifier is redundant for initializer declared in a public extension[0;0m
[0;36m17 |[0;0m }
[0;36m18 |[0;0m
[0;36m19 |[0;0m public init(center: CGPoint, edges: CGFloat) {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for initializer declared in a public extension[0;0m
[0;36m20 |[0;0m self.init(center: center, size: CGSize(edges: edges))
[0;36m21 |[0;0m }
/Users/admin/builder/spi-builder-workspace/source/Metron/Extension/CGRect.swift:23:5: [1;33mwarning: [1;39m'public' modifier is redundant for initializer declared in a public extension[0;0m
[0;36m21 |[0;0m }
[0;36m22 |[0;0m
[0;36m23 |[0;0m public init(minX: CGFloat, minY: CGFloat, maxX: CGFloat, maxY: CGFloat) {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for initializer declared in a public extension[0;0m
[0;36m24 |[0;0m self.init(origin: CGPoint(x: minX, y: minY), size: CGSize(width: maxX - minX, height: maxY - minY))
[0;36m25 |[0;0m }
/Users/admin/builder/spi-builder-workspace/source/Metron/Extension/CGRect.swift:29:5: [1;33mwarning: [1;39m'public' modifier is redundant for initializer declared in a public extension[0;0m
[0;36m27 |[0;0m /// Initializes a `CGRect` of specified size, positioned such that
[0;36m28 |[0;0m /// the provided `origin` point will be in the specified `corner`.
[0;36m29 |[0;0m public init(size: CGSize, origin: CGPoint, inCorner corner: Corner) {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for initializer declared in a public extension[0;0m
[0;36m30 |[0;0m switch corner {
[0;36m31 |[0;0m case .minXminY: self.init(origin: origin, size: size)
/Users/admin/builder/spi-builder-workspace/source/Metron/Extension/CGRect.swift:42:5: [1;33mwarning: [1;39m'public' modifier is redundant for initializer declared in a public extension[0;0m
[0;36m40 |[0;0m /// Initializes a `CGRect` that is scaled – preserving aspect ratio – to fill
[0;36m41 |[0;0m /// the entire rect specified at `inRect:`.
[0;36m42 |[0;0m public init(aspectFillSize size: CGSize, inRect rect: CGRect) {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for initializer declared in a public extension[0;0m
[0;36m43 |[0;0m let ratio = size / rect.size
[0;36m44 |[0;0m let smallestRatio = min(ratio.width, ratio.height)
/Users/admin/builder/spi-builder-workspace/source/Metron/Extension/CGRect.swift:50:5: [1;33mwarning: [1;39m'public' modifier is redundant for initializer declared in a public extension[0;0m
[0;36m48 |[0;0m /// Initializes a `CGRect` that is scaled – preserving aspect ratio – to fit
[0;36m49 |[0;0m /// exactly in the rect specified at `inRect:`.
[0;36m50 |[0;0m public init(aspectFitSize size: CGSize, inRect rect: CGRect) {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for initializer declared in a public extension[0;0m
[0;36m51 |[0;0m let ratio = size / rect.size
[0;36m52 |[0;0m let largestRatio = max(ratio.width, ratio.height)
/Users/admin/builder/spi-builder-workspace/source/Metron/Extension/CGRect.swift:58:5: [1;33mwarning: [1;39m'public' modifier is redundant for instance method declared in a public extension[0;0m
[0;36m56 |[0;0m /// - returns: The value for the given edge
[0;36m57 |[0;0m /// (i.e. `minXEdge` will return this rect's `minX` value).
[0;36m58 |[0;0m public func edge(_ edge: CGRectEdge) -> CGFloat {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for instance method declared in a public extension[0;0m
[0;36m59 |[0;0m switch edge {
[0;36m60 |[0;0m case .minXEdge: return minX
/Users/admin/builder/spi-builder-workspace/source/Metron/Extension/CGRect.swift:68:5: [1;33mwarning: [1;39m'public' modifier is redundant for instance method declared in a public extension[0;0m
[0;36m66 |[0;0m
[0;36m67 |[0;0m /// - returns: The `CGPoint` coordinate for the given corner.
[0;36m68 |[0;0m public func corner(_ corner: Corner) -> CGPoint {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for instance method declared in a public extension[0;0m
[0;36m69 |[0;0m return CGPoint(x: edge(corner.xEdge), y: edge(corner.yEdge))
[0;36m70 |[0;0m }
/Users/admin/builder/spi-builder-workspace/source/Metron/Extension/CGRect.swift:74:5: [1;33mwarning: [1;39m'public' modifier is redundant for instance method declared in a public extension[0;0m
[0;36m72 |[0;0m /// - returns: A `CGRect` with size scaled to the provided scale factor,
[0;36m73 |[0;0m /// preserving the center.
[0;36m74 |[0;0m public func scaled(by scale: CGFloat) -> CGRect {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for instance method declared in a public extension[0;0m
[0;36m75 |[0;0m return CGRect(center: center, size: size * scale)
[0;36m76 |[0;0m }
/Users/admin/builder/spi-builder-workspace/source/Metron/Extension/CGRect.swift:80:5: [1;33mwarning: [1;39m'public' modifier is redundant for instance method declared in a public extension[0;0m
[0;36m78 |[0;0m /// - returns: A `CGRect` with size scaled to the provided scale factor,
[0;36m79 |[0;0m /// preserving the specified corner.
[0;36m80 |[0;0m public func scaled(by scale: CGFloat, corner: Corner) -> CGRect {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for instance method declared in a public extension[0;0m
[0;36m81 |[0;0m return CGRect(size: size * scale, origin: self.corner(corner), inCorner: corner)
[0;36m82 |[0;0m }
/Users/admin/builder/spi-builder-workspace/source/Metron/Extension/CGRect.swift:85:5: [1;33mwarning: [1;39m'public' modifier is redundant for instance method declared in a public extension[0;0m
[0;36m83 |[0;0m
[0;36m84 |[0;0m /// - returns: The `LineSegment` representing the provided edge.
[0;36m85 |[0;0m public func lineSegment(for edge: CGRectEdge) -> LineSegment {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for instance method declared in a public extension[0;0m
[0;36m86 |[0;0m let corners = edge.corners
[0;36m87 |[0;0m return LineSegment(a: corner(corners.0), b: corner(corners.1))
/Users/admin/builder/spi-builder-workspace/source/Metron/Geometry/Angle.swift:29:5: [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m27 |[0;0m
[0;36m28 |[0;0m /// - returns: The angle expressed in radians.
[0;36m29 |[0;0m public var radians: CGFloat {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m30 |[0;0m return asUnit(.radians)
[0;36m31 |[0;0m }
/Users/admin/builder/spi-builder-workspace/source/Metron/Geometry/Angle.swift:33:5: [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m31 |[0;0m }
[0;36m32 |[0;0m /// - returns: The angle expressed in degrees.
[0;36m33 |[0;0m public var degrees: CGFloat {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m34 |[0;0m return asUnit(.degrees)
[0;36m35 |[0;0m }
/Users/admin/builder/spi-builder-workspace/source/Metron/Geometry/Angle.swift:42:5: [1;33mwarning: [1;39m'public' modifier is redundant for instance method declared in a public extension[0;0m
[0;36m40 |[0;0m
[0;36m41 |[0;0m /// - returns: The angle expressed in the provided unit.
[0;36m42 |[0;0m public func asUnit(_ unit: Unit) -> CGFloat {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for instance method declared in a public extension[0;0m
[0;36m43 |[0;0m if self.unit == unit {
[0;36m44 |[0;0m return value
/Users/admin/builder/spi-builder-workspace/source/Metron/Geometry/Angle.swift:56:5: [1;33mwarning: [1;39m'public' modifier is redundant for static method declared in a public extension[0;0m
[0;36m54 |[0;0m /// - returns: The floating point value representing a full rotation
[0;36m55 |[0;0m /// in the given unit (i.e. 2pi radians / 360 degrees)
[0;36m56 |[0;0m public static func fullRotation(unit: Unit) -> CGFloat {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for static method declared in a public extension[0;0m
[0;36m57 |[0;0m return unit == .radians ? (2.0 * .pi) : 360.0
[0;36m58 |[0;0m }
/Users/admin/builder/spi-builder-workspace/source/Metron/Geometry/Angle.swift:62:5: [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m60 |[0;0m /// - returns: The floating point value representing a full rotation
[0;36m61 |[0;0m /// expressed in the current unit of this angle.
[0;36m62 |[0;0m public var fullRotation: CGFloat {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m63 |[0;0m return Angle.fullRotation(unit: unit)
[0;36m64 |[0;0m }
/Users/admin/builder/spi-builder-workspace/source/Metron/Geometry/Angle.swift:68:5: [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m66 |[0;0m /// - returns: The angle expressed in a value normalized between
[0;36m67 |[0;0m /// 0 and `fullRotation`.
[0;36m68 |[0;0m public var normalized: Angle {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m69 |[0;0m let max = fullRotation
[0;36m70 |[0;0m let moduloValue = fmod(value, max)
/Users/admin/builder/spi-builder-workspace/source/Metron/Geometry/Angle.swift:77:5: [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m75 |[0;0m /// - returns: `fullRotation` minus the `normalized` angle.
[0;36m76 |[0;0m ///
[0;36m77 |[0;0m public var inversed: Angle {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m78 |[0;0m let max = fullRotation
[0;36m79 |[0;0m return Angle(max - normalized.value, unit: unit)
/Users/admin/builder/spi-builder-workspace/source/Metron/Geometry/Angle.swift:162:5: [1;33mwarning: [1;39m'public' modifier is redundant for instance method declared in a public extension[0;0m
[0;36m160 |[0;0m /// - returns: The `Angle` between horizontal line through `self`,
[0;36m161 |[0;0m /// and line from `self` to `reference.
[0;36m162 |[0;0m public func polarAngle(reference: CGPoint) -> Angle {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for instance method declared in a public extension[0;0m
[0;36m163 |[0;0m return (self - reference).angle
[0;36m164 |[0;0m }
/Users/admin/builder/spi-builder-workspace/source/Metron/Geometry/Angle.swift:169:5: [1;33mwarning: [1;39m'public' modifier is redundant for instance method declared in a public extension[0;0m
[0;36m167 |[0;0m /// and `self` to `next`, i.e. the angle at vertex `self`
[0;36m168 |[0;0m /// of triangle (`previous`,`self`,`next`).
[0;36m169 |[0;0m public func angle(previous: CGPoint, next: CGPoint) -> Angle {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for instance method declared in a public extension[0;0m
[0;36m170 |[0;0m let v1 = previous - self
[0;36m171 |[0;0m let v2 = next - self
/Users/admin/builder/spi-builder-workspace/source/Metron/Geometry/Angle.swift:181:5: [1;33mwarning: [1;39m'public' modifier is redundant for initializer declared in a public extension[0;0m
[0;36m179 |[0;0m
[0;36m180 |[0;0m /// Convenience initializer for rotation transform.
[0;36m181 |[0;0m public init(rotationAngle angle: Angle) {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for initializer declared in a public extension[0;0m
[0;36m182 |[0;0m self.init(rotationAngle: angle.asUnit(.radians))
[0;36m183 |[0;0m }
/Users/admin/builder/spi-builder-workspace/source/Metron/Geometry/Angle.swift:186:5: [1;33mwarning: [1;39m'public' modifier is redundant for instance method declared in a public extension[0;0m
[0;36m184 |[0;0m
[0;36m185 |[0;0m /// Convenienc function for rotating a transform.
[0;36m186 |[0;0m public func rotated(by angle: Angle) -> CGAffineTransform {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for instance method declared in a public extension[0;0m
[0;36m187 |[0;0m return rotated(by: angle.asUnit(.radians))
[0;36m188 |[0;0m }
/Users/admin/builder/spi-builder-workspace/source/Metron/Geometry/CoordinateSystem.swift:34:5: [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m32 |[0;0m * coordinate system, running clockwise starting at topLeft.
[0;36m33 |[0;0m */
[0;36m34 |[0;0m public var corners: [Corner] {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m35 |[0;0m return CornerPosition.all.map { corner(for: $0) }
[0;36m36 |[0;0m }
/Users/admin/builder/spi-builder-workspace/source/Metron/Geometry/CoordinateSystem.swift:43:5: [1;33mwarning: [1;39m'public' modifier is redundant for instance method declared in a public extension[0;0m
[0;36m41 |[0;0m * provided.
[0;36m42 |[0;0m */
[0;36m43 |[0;0m public func corners(startingAt start: Corner,
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for instance method declared in a public extension[0;0m
[0;36m44 |[0;0m rotating: RotationDirection = .clockwise) -> [Corner] {
[0;36m45 |[0;0m var arrangedCorners: [Corner] = corners
/Users/admin/builder/spi-builder-workspace/source/Metron/Geometry/CoordinateSystem.swift:54:5: [1;33mwarning: [1;39m'public' modifier is redundant for instance method declared in a public extension[0;0m
[0;36m52 |[0;0m
[0;36m53 |[0;0m /// - returns: The `CornerPosition` of the `Corner` in this CoordinateSystem.
[0;36m54 |[0;0m public func position(for corner: Corner) -> CornerPosition {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for instance method declared in a public extension[0;0m
[0;36m55 |[0;0m let tlsCorner: CornerPosition // topLeft system corner
[0;36m56 |[0;0m switch corner {
/Users/admin/builder/spi-builder-workspace/source/Metron/Geometry/CoordinateSystem.swift:71:5: [1;33mwarning: [1;39m'public' modifier is redundant for instance method declared in a public extension[0;0m
[0;36m69 |[0;0m
[0;36m70 |[0;0m /// - returns: The `Corner` at the `CornerPosition` in this CoordinateSystem.
[0;36m71 |[0;0m public func corner(for position: CornerPosition) -> Corner {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for instance method declared in a public extension[0;0m
[0;36m72 |[0;0m let tlsPosition: Corner // topLeft system position
[0;36m73 |[0;0m switch position {
/Users/admin/builder/spi-builder-workspace/source/Metron/Geometry/CoordinateSystem.swift:93:5: [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m91 |[0;0m * coordinate system, running clockwise starting at top.
[0;36m92 |[0;0m */
[0;36m93 |[0;0m public var edges: [CGRectEdge] {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m94 |[0;0m return Side.all.map { edge(for: $0) }
[0;36m95 |[0;0m }
/Users/admin/builder/spi-builder-workspace/source/Metron/Geometry/CoordinateSystem.swift:102:5: [1;33mwarning: [1;39m'public' modifier is redundant for instance method declared in a public extension[0;0m
[0;36m100 |[0;0m * provided.
[0;36m101 |[0;0m */
[0;36m102 |[0;0m public func edges(startingAt start: CGRectEdge,
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for instance method declared in a public extension[0;0m
[0;36m103 |[0;0m rotating: RotationDirection = .clockwise) -> [CGRectEdge] {
[0;36m104 |[0;0m var arrangedEdges: [CGRectEdge] = edges
/Users/admin/builder/spi-builder-workspace/source/Metron/Geometry/CoordinateSystem.swift:113:5: [1;33mwarning: [1;39m'public' modifier is redundant for instance method declared in a public extension[0;0m
[0;36m111 |[0;0m
[0;36m112 |[0;0m /// - returns: The `Side` of the `CGRectEdge` in this CoordinateSystem
[0;36m113 |[0;0m public func side(for edge: CGRectEdge) -> Side {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for instance method declared in a public extension[0;0m
[0;36m114 |[0;0m let tlsSide: Side // topLeft system side
[0;36m115 |[0;0m switch edge {
/Users/admin/builder/spi-builder-workspace/source/Metron/Geometry/CoordinateSystem.swift:130:5: [1;33mwarning: [1;39m'public' modifier is redundant for instance method declared in a public extension[0;0m
[0;36m128 |[0;0m
[0;36m129 |[0;0m /// - returns: The `CGRectEdge` at the `Side` in this CoordinateSystem
[0;36m130 |[0;0m public func edge(for side: Side) -> CGRectEdge {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for instance method declared in a public extension[0;0m
[0;36m131 |[0;0m let tlsEdge: CGRectEdge // topLeft system edge
[0;36m132 |[0;0m switch side {
/Users/admin/builder/spi-builder-workspace/source/Metron/Geometry/CoordinateSystem.swift:147:5: [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m145 |[0;0m
[0;36m146 |[0;0m /// - returns: True if a circle, traced by incrementing an angle, runs clockwise
[0;36m147 |[0;0m public var circleRunsClockwise: Bool {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m148 |[0;0m switch origin {
[0;36m149 |[0;0m case .topLeft, .bottomRight: return true
/Users/admin/builder/spi-builder-workspace/source/Metron/Shape/Polygon.swift:64:5: [1;33mwarning: [1;39m'public' modifier is redundant for initializer declared in a public extension[0;0m
[0;36m62 |[0;0m /// Then the default initializer is called, passing
[0;36m63 |[0;0m /// all points of the connected lineSegments.
[0;36m64 |[0;0m public init?(lineSegments: [LineSegment]) {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for initializer declared in a public extension[0;0m
[0;36m65 |[0;0m var remainingLineSegments = lineSegments
[0;36m66 |[0;0m var points = [CGPoint]()
/Users/admin/builder/spi-builder-workspace/source/Metron/Shape/Polygon.swift:84:5: [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m82 |[0;0m
[0;36m83 |[0;0m /// The individual line segments between consecutive points of this polygon.
[0;36m84 |[0;0m public var lineSegments: [LineSegment] {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m85 |[0;0m var lineSegments = [LineSegment]()
[0;36m86 |[0;0m (0..<edgeCount).forEach { pointIndex in
/Users/admin/builder/spi-builder-workspace/source/Metron/Shape/Polygon.swift:95:5: [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m93 |[0;0m
[0;36m94 |[0;0m /// The number of edges of this polygon.
[0;36m95 |[0;0m public var edgeCount: Int {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m96 |[0;0m return points.count
[0;36m97 |[0;0m }
/Users/admin/builder/spi-builder-workspace/source/Metron/Shape/Polygon.swift:100:5: [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m98 |[0;0m
[0;36m99 |[0;0m /// - returns: True if line segments of this polygon intersect each other.
[0;36m100 |[0;0m public var isSelfIntersecting: Bool {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m101 |[0;0m // Might be implemented more efficiently
[0;36m102 |[0;0m var lineSegments = self.lineSegments
/Users/admin/builder/spi-builder-workspace/source/Metron/Shape/Polygon.swift:112:5: [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m110 |[0;0m
[0;36m111 |[0;0m /// - returns: True if all interior angles are less than 180°.
[0;36m112 |[0;0m public var isConvex: Bool {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m113 |[0;0m for pointIndex in 0..<edgeCount {
[0;36m114 |[0;0m let a = points[pointIndex]
/Users/admin/builder/spi-builder-workspace/source/Metron/Shape/Polygon.swift:127:5: [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m125 |[0;0m
[0;36m126 |[0;0m /// - returns: true if one or more interior angles is more than 180°.
[0;36m127 |[0;0m public var isConcave: Bool {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m128 |[0;0m return !isConvex
[0;36m129 |[0;0m }
/Users/admin/builder/spi-builder-workspace/source/Metron/Geometry/Corner.swift:24:5: [1;33mwarning: [1;39m'public' modifier is redundant for initializer declared in a public extension[0;0m
[0;36m22 |[0;0m public extension Corner {
[0;36m23 |[0;0m
[0;36m24 |[0;0m public init(x xEdge: CGRectEdge, y yEdge: CGRectEdge) {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for initializer declared in a public extension[0;0m
[0;36m25 |[0;0m switch (xEdge, yEdge) {
[0;36m26 |[0;0m case (.minXEdge, .minYEdge): self = .minXminY
/Users/admin/builder/spi-builder-workspace/source/Metron/Geometry/Corner.swift:36:5: [1;33mwarning: [1;39m'public' modifier is redundant for instance method declared in a public extension[0;0m
[0;36m34 |[0;0m /// - returns: The edge of this `Corner` for the provided axis.
[0;36m35 |[0;0m /// For example, the `minXminY` corner's `xAxis` edge is the `minXEdge`.
[0;36m36 |[0;0m public func edge(on axis: Axis) -> CGRectEdge {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for instance method declared in a public extension[0;0m
[0;36m37 |[0;0m switch axis {
[0;36m38 |[0;0m case .xAxis: return xEdge
/Users/admin/builder/spi-builder-workspace/source/Metron/Geometry/Corner.swift:45:5: [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m43 |[0;0m /// - returns: The `xAxis` edge component of this corner
[0;36m44 |[0;0m /// (either `minXEdge` or `maxXEdge`).
[0;36m45 |[0;0m public var xEdge: CGRectEdge {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m46 |[0;0m switch self {
[0;36m47 |[0;0m case .minXminY, .minXmaxY: return .minXEdge
/Users/admin/builder/spi-builder-workspace/source/Metron/Geometry/Corner.swift:54:5: [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m52 |[0;0m /// - returns: The `yAxis` edge component of this corner
[0;36m53 |[0;0m /// (either `minYEdge` or `maxYEdge`).
[0;36m54 |[0;0m public var yEdge: CGRectEdge {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m55 |[0;0m switch self {
[0;36m56 |[0;0m case .minXminY, .maxXminY: return .minYEdge
/Users/admin/builder/spi-builder-workspace/source/Metron/Geometry/Corner.swift:64:5: [1;33mwarning: [1;39m'public' modifier is redundant for instance method declared in a public extension[0;0m
[0;36m62 |[0;0m /// For example, the `minXminY` corner's opposite along
[0;36m63 |[0;0m /// the `xAxis` is `maxXminY`.
[0;36m64 |[0;0m public func opposite(on axis: Axis) -> Corner {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for instance method declared in a public extension[0;0m
[0;36m65 |[0;0m switch axis {
[0;36m66 |[0;0m case .xAxis: return Corner(x: xEdge.opposite, y: yEdge)
/Users/admin/builder/spi-builder-workspace/source/Metron/Extension/CGRectEdge.swift:30:1: [1;33mwarning: [1;39mextension declares a conformance of imported type 'CGRectEdge' to imported protocol 'CustomDebugStringConvertible'; this will not behave correctly if the owners of 'CoreFoundation' introduce this conformance in the future[0;0m
[0;36m28 |[0;0m }
[0;36m29 |[0;0m
[0;36m30 |[0;0m extension CGRectEdge: CustomDebugStringConvertible {
[0;36m|[0;0m |- [1;33mwarning: [1;39mextension declares a conformance of imported type 'CGRectEdge' to imported protocol 'CustomDebugStringConvertible'; this will not behave correctly if the owners of 'CoreFoundation' introduce this conformance in the future[0;0m
[0;36m|[0;0m `- [1;39mnote: [1;39madd '@retroactive' to silence this warning[0;0m
[0;36m31 |[0;0m public var debugDescription: String {
[0;36m32 |[0;0m switch self {
/Users/admin/builder/spi-builder-workspace/source/Metron/Extension/CGSize.swift:5:5: [1;33mwarning: [1;39m'public' modifier is redundant for initializer declared in a public extension[0;0m
[0;36m3 |[0;0m public extension CGSize {
[0;36m4 |[0;0m
[0;36m5 |[0;0m public init(edges length: CGFloat) {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for initializer declared in a public extension[0;0m
[0;36m6 |[0;0m self.init(width: length, height: length)
[0;36m7 |[0;0m }
/Users/admin/builder/spi-builder-workspace/source/Metron/Extension/CGSize.swift:9:5: [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m7 |[0;0m }
[0;36m8 |[0;0m
[0;36m9 |[0;0m public var area: CGFloat {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m10 |[0;0m return width * height
[0;36m11 |[0;0m }
/Users/admin/builder/spi-builder-workspace/source/Metron/Extension/CGSize.swift:14:5: [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m12 |[0;0m
[0;36m13 |[0;0m /// - returns: A `CGSize` with width and height swapped.
[0;36m14 |[0;0m public var swapped: CGSize {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m15 |[0;0m return CGSize(width: height, height: width)
[0;36m16 |[0;0m }
/Users/admin/builder/spi-builder-workspace/source/Metron/Extension/CGSize.swift:19:5: [1;33mwarning: [1;39m'public' modifier is redundant for instance method declared in a public extension[0;0m
[0;36m17 |[0;0m
[0;36m18 |[0;0m /// Limits the size to the given size.
[0;36m19 |[0;0m public func clipped(to size: CGSize) -> CGSize {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for instance method declared in a public extension[0;0m
[0;36m20 |[0;0m return CGSize(width: min(width, size.width),
[0;36m21 |[0;0m height: min(height, size.height))
/Users/admin/builder/spi-builder-workspace/source/Metron/Extension/CGVector.swift:6:5: [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m4 |[0;0m
[0;36m5 |[0;0m /// - returns: A `CGPoint` with x: dx and y: dy.
[0;36m6 |[0;0m public var point: CGPoint {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m7 |[0;0m return CGPoint(x: dx, y: dy)
[0;36m8 |[0;0m }
/Users/admin/builder/spi-builder-workspace/source/Metron/Extension/CGVector.swift:10:5: [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m8 |[0;0m }
[0;36m9 |[0;0m
[0;36m10 |[0;0m public var magnitude: CGFloat {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m11 |[0;0m return sqrt(dx * dx + dy * dy)
[0;36m12 |[0;0m }
/Users/admin/builder/spi-builder-workspace/source/Metron/Extension/CGVector.swift:13:5: [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m11 |[0;0m return sqrt(dx * dx + dy * dy)
[0;36m12 |[0;0m }
[0;36m13 |[0;0m public var angle: Angle {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m14 |[0;0m return atan2(dy, dx)
[0;36m15 |[0;0m }
/Users/admin/builder/spi-builder-workspace/source/Metron/Extension/CGVector.swift:17:5: [1;33mwarning: [1;39m'public' modifier is redundant for initializer declared in a public extension[0;0m
[0;36m15 |[0;0m }
[0;36m16 |[0;0m
[0;36m17 |[0;0m public init(angle: Angle, magnitude: CGFloat) {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for initializer declared in a public extension[0;0m
[0;36m18 |[0;0m self.init(dx: magnitude * cos(angle), dy: magnitude * sin(angle))
[0;36m19 |[0;0m }
/Users/admin/builder/spi-builder-workspace/source/Metron/Extension/CGVector.swift:21:5: [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m19 |[0;0m }
[0;36m20 |[0;0m
[0;36m21 |[0;0m public var inversed: CGVector {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m22 |[0;0m return CGVector(dx: -dx, dy: -dy)
[0;36m23 |[0;0m }
/Users/admin/builder/spi-builder-workspace/source/Metron/Extension/CGVector.swift:26:5: [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m24 |[0;0m
[0;36m25 |[0;0m /// - returns: The `CGRectEdge` towards which this vector tends the most.
[0;36m26 |[0;0m public var dominantEdge: CGRectEdge {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m27 |[0;0m return abs(dx) > abs(dy) ? (dx > 0.0 ? .maxXEdge : .minXEdge) : (dy > 0.0 ? .maxYEdge : .minYEdge)
[0;36m28 |[0;0m }
/Users/admin/builder/spi-builder-workspace/source/Metron/Extension/CGVector.swift:31:5: [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m29 |[0;0m
[0;36m30 |[0;0m /// - returns: The `Corner` towards which this vector tends the most.
[0;36m31 |[0;0m public var dominantCorner: Corner {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for property declared in a public extension[0;0m
[0;36m32 |[0;0m let xEdge: CGRectEdge = dx > 0 ? .maxXEdge : .minXEdge
[0;36m33 |[0;0m let yEdge: CGRectEdge = dy > 0 ? .maxYEdge : .minYEdge
/Users/admin/builder/spi-builder-workspace/source/Metron/Extension/CGVector.swift:39:5: [1;33mwarning: [1;39m'public' modifier is redundant for instance method declared in a public extension[0;0m
[0;36m37 |[0;0m /// - returns: A `Line` drawn through the given point,
[0;36m38 |[0;0m /// following this vector.
[0;36m39 |[0;0m public func line(through point: CGPoint) -> Line {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for instance method declared in a public extension[0;0m
[0;36m40 |[0;0m return Line(a: point, b: point + self)
[0;36m41 |[0;0m }
/Users/admin/builder/spi-builder-workspace/source/Metron/Extension/CGVector.swift:46:5: [1;33mwarning: [1;39m'public' modifier is redundant for instance method declared in a public extension[0;0m
[0;36m44 |[0;0m /// following this vector. The `LineSegment` length
[0;36m45 |[0;0m /// equals the vector magnitude.
[0;36m46 |[0;0m public func lineSegment(from point: CGPoint) -> LineSegment {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for instance method declared in a public extension[0;0m
[0;36m47 |[0;0m return LineSegment(a: point, b: point + self)
[0;36m48 |[0;0m }
/Users/admin/builder/spi-builder-workspace/source/Metron/Extension/CGVector.swift:83:5: [1;33mwarning: [1;39m'public' modifier is redundant for initializer declared in a public extension[0;0m
[0;36m81 |[0;0m
[0;36m82 |[0;0m public extension CGAffineTransform {
[0;36m83 |[0;0m public init(translation: CGVector) {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for initializer declared in a public extension[0;0m
[0;36m84 |[0;0m self.init(translationX: translation.dx, y: translation.dy)
[0;36m85 |[0;0m }
/Users/admin/builder/spi-builder-workspace/source/Metron/Extension/CGVector.swift:87:5: [1;33mwarning: [1;39m'public' modifier is redundant for instance method declared in a public extension[0;0m
[0;36m85 |[0;0m }
[0;36m86 |[0;0m
[0;36m87 |[0;0m public func translatedBy(vector: CGVector) -> CGAffineTransform {
[0;36m|[0;0m `- [1;33mwarning: [1;39m'public' modifier is redundant for instance method declared in a public extension[0;0m
[0;36m88 |[0;0m return translatedBy(x: vector.dx, y: vector.dy)
[0;36m89 |[0;0m }
Build complete.
{
"dependencies" : [
{
"identity" : "nimble",
"requirement" : {
"range" : [
{
"lower_bound" : "7.0.0",
"upper_bound" : "8.0.0"
}
]
},
"type" : "sourceControl",
"url" : "https://github.com/Quick/Nimble.git"
},
{
"identity" : "quick",
"requirement" : {
"range" : [
{
"lower_bound" : "1.0.0",
"upper_bound" : "2.0.0"
}
]
},
"type" : "sourceControl",
"url" : "https://github.com/Quick/Quick.git"
}
],
"manifest_display_name" : "Metron",
"name" : "Metron",
"path" : "/Users/admin/builder/spi-builder-workspace",
"platforms" : [
],
"products" : [
{
"name" : "Metron",
"targets" : [
"Metron"
],
"type" : {
"library" : [
"automatic"
]
}
}
],
"targets" : [
{
"c99name" : "Metron_Test",
"module_type" : "SwiftTarget",
"name" : "Metron-Test",
"path" : "source/Metron/Test",
"product_dependencies" : [
"Quick",
"Nimble"
],
"sources" : [
"PolygonTest.swift"
],
"target_dependencies" : [
"Metron"
],
"type" : "test"
},
{
"c99name" : "Metron",
"module_type" : "SwiftTarget",
"name" : "Metron",
"path" : "source/Metron",
"product_memberships" : [
"Metron"
],
"sources" : [
"Extension/CGAffineTransform.swift",
"Extension/CGPoint.swift",
"Extension/CGRect.swift",
"Extension/CGRectEdge.swift",
"Extension/CGSize.swift",
"Extension/CGVector.swift",
"Geometry/Angle.swift",
"Geometry/Axis.swift",
"Geometry/CoordinateSystem.swift",
"Geometry/Corner.swift",
"Geometry/CornerPosition.swift",
"Geometry/Edge.swift",
"Geometry/General.swift",
"Geometry/Opposable.swift",
"Geometry/Rotatable.swift",
"Geometry/Side.swift",
"Shape/Circle.swift",
"Shape/Drawable.swift",
"Shape/Line.swift",
"Shape/LineSegment.swift",
"Shape/Polygon.swift",
"Shape/Shape.swift",
"Shape/Square.swift",
"Shape/Triangle.swift"
],
"type" : "library"
}
],
"tools_version" : "4.2"
}
Done.