diff --git a/.swiftformat b/.swiftformat index d7ece84..9766b6a 100644 --- a/.swiftformat +++ b/.swiftformat @@ -10,3 +10,4 @@ # rules --disable redundantReturn +--disable specifiers diff --git a/.swiftlint.yml b/.swiftlint.yml index 2f14664..32e6743 100644 --- a/.swiftlint.yml +++ b/.swiftlint.yml @@ -41,7 +41,7 @@ opt_in_rules: # all opt-in rules up to version 0.35.0 - fatal_error_message - file_header # - file_name - - file_types_order + # - file_types_order - first_where - force_unwrapping - function_default_parameter_at_end @@ -62,7 +62,7 @@ opt_in_rules: # all opt-in rules up to version 0.35.0 - multiline_function_chains - multiline_literal_brackets - multiline_parameters - - multiline_parameters_brackets + # - multiline_parameters_brackets - nimble_operator - no_extension_access_modifier - no_grouping_extension @@ -85,7 +85,7 @@ opt_in_rules: # all opt-in rules up to version 0.35.0 - reduce_into - redundant_nil_coalescing - redundant_type_annotation - - required_deinit + # - required_deinit - required_enum_case - single_test_class - sorted_first_last diff --git a/Sources/ControlPointUtilities.swift b/Sources/ControlPointUtilities.swift index 849cc9c..b76dccc 100644 --- a/Sources/ControlPointUtilities.swift +++ b/Sources/ControlPointUtilities.swift @@ -3,13 +3,13 @@ import Foundation final class ControlPointUtilities { /// Calculates the controlPoint - /// - Parameter radiusFactor: Default value: 1.0. + /// - Parameter radiusMultiplier: Defines the curve shape. Default value: 1.0. /// - Returns: CGPoint: The control point func controlPoint(_ origin: CGPoint, _ destination: CGPoint, - radiusFactor: CGFloat = 1) -> CGPoint { + radiusMultiplier: CGFloat = 1) -> CGPoint { let centerPoint = center(origin, destination) - let radius = (distance(origin, destination) / 2) * radiusFactor + let radius = (distance(origin, destination) / 2) * radiusMultiplier let inclination = lineInclination(origin: origin, destination: destination) return pointOnCircle(center: centerPoint, radius: radius, angle: rad(inclination - 90)) } diff --git a/Sources/LineOverlay.swift b/Sources/LineOverlay.swift index 7ad531e..0d1dfb9 100644 --- a/Sources/LineOverlay.swift +++ b/Sources/LineOverlay.swift @@ -16,8 +16,9 @@ public struct LineOverlayStyle { public protocol LineOverlaying { var coordinates: [CLLocationCoordinate2D] { get } var style: LineOverlayStyle { get } - func path(_ origin: CGPoint, _ destination: CGPoint) -> CGMutablePath var boundsMapRect: MKMapRect { get set } + + func path(_ origin: CGPoint, _ destination: CGPoint) -> CGMutablePath } public class LineOverlay: MKPolyline, LineOverlaying { @@ -26,7 +27,7 @@ public class LineOverlay: MKPolyline, LineOverlaying { lineWidth: 3, alpha: 0.15) public var boundsMapRect: MKMapRect = .world - public override var boundingMapRect: MKMapRect { + override public var boundingMapRect: MKMapRect { return boundsMapRect } @@ -49,13 +50,13 @@ public class LineOverlay: MKPolyline, LineOverlaying { } public class ArcOverlay: LineOverlay { - public var radiusFactor: CGFloat = 1.0 + public var radiusMultiplier: CGFloat = 1.0 - public override func path(_ origin: CGPoint, _ destination: CGPoint) -> CGMutablePath { + override public func path(_ origin: CGPoint, _ destination: CGPoint) -> CGMutablePath { let path = CGMutablePath() path.move(to: origin) let utils = ControlPointUtilities() - let controlPoint = utils.controlPoint(origin, destination, radiusFactor: radiusFactor) + let controlPoint = utils.controlPoint(origin, destination, radiusMultiplier: radiusMultiplier) path.addQuadCurve(to: destination, control: controlPoint) return path } diff --git a/Sources/MapLineOverlayRenderer.swift b/Sources/MapLineOverlayRenderer.swift index 12b95ae..5f1f73a 100644 --- a/Sources/MapLineOverlayRenderer.swift +++ b/Sources/MapLineOverlayRenderer.swift @@ -13,7 +13,7 @@ public class MapLineOverlayRenderer: MKOverlayPathRenderer { invalidatePath() } - public override func createPath() { + override public func createPath() { guard let originCoordinate = lineOverlay.coordinates.first, let destinationCoordinate = lineOverlay.coordinates.last else { return } let origin = point(for: MKMapPoint(originCoordinate)) diff --git a/Tests/curvyRouteTests/ControlPointUtilitiesTest.swift b/Tests/curvyRouteTests/ControlPointUtilitiesTest.swift index 05bd843..f5c3cd6 100644 --- a/Tests/curvyRouteTests/ControlPointUtilitiesTest.swift +++ b/Tests/curvyRouteTests/ControlPointUtilitiesTest.swift @@ -22,17 +22,17 @@ class ControlUtilitiesTest: XCTestCase { XCTAssertEqual(controlPoint, CGPoint(x: 5, y: 5)) } - func testThatControlPointIsCorrectWithCustomRadiusFactor() { + func testThatControlPointIsCorrectWithCustomradiusMultiplier() { let pointA = CGPoint(x: 0, y: 5) let pointB = CGPoint(x: 10, y: 10) - let controlPoint = sut.controlPoint(pointA, pointB, radiusFactor: 0.7) + let controlPoint = sut.controlPoint(pointA, pointB, radiusMultiplier: 0.7) XCTAssertEqual(controlPoint, CGPoint(x: 6.75, y: 4)) } - func testThatControlPointIsCorrectWithDoubleRadiusFactor() { + func testThatControlPointIsCorrectWithDoubleradiusMultiplier() { let pointA = CGPoint(x: 0, y: 10) let pointB = CGPoint(x: 10, y: 10) - let controlPoint = sut.controlPoint(pointA, pointB, radiusFactor: 2) + let controlPoint = sut.controlPoint(pointA, pointB, radiusMultiplier: 2) XCTAssertEqual(controlPoint, CGPoint(x: 5.000000000000001, y: 0)) } } diff --git a/curvyRouteSample/ViewController.swift b/curvyRouteSample/ViewController.swift index 8ab1594..9d3c167 100644 --- a/curvyRouteSample/ViewController.swift +++ b/curvyRouteSample/ViewController.swift @@ -30,7 +30,7 @@ class ViewController: UIViewController, MKMapViewDelegate { mapView.addOverlay(LineOverlay(origin: pointA, destination: pointB)) let arc = ArcOverlay(origin: pointA, destination: pointB, style: LineOverlayStyle(strokeColor: .systemTeal, lineWidth: 4, alpha: 1)) - arc.radiusFactor = 0.5 + arc.radiusMultiplier = 1.0 mapView.addOverlay(arc) } }