Skip to content

Commit

Permalink
Uses CGPoint.zero
Browse files Browse the repository at this point in the history
  • Loading branch information
valeriyvan committed Aug 25, 2018
1 parent ac51f71 commit 6b35b40
Show file tree
Hide file tree
Showing 7 changed files with 31 additions and 27 deletions.
4 changes: 2 additions & 2 deletions WeScan/Common/Quadrilateral.swift
Original file line number Diff line number Diff line change
Expand Up @@ -111,9 +111,9 @@ public struct Quadrilateral: Transformable {
if rotated {
let rotationTransform = CGAffineTransform(rotationAngle: rotationAngle)

let fromImageBounds = CGRect(x: 0.0, y: 0.0, width: fromSize.width, height: fromSize.height).applying(scaledTransform).applying(rotationTransform)
let fromImageBounds = CGRect(origin: .zero, size: fromSize).applying(scaledTransform).applying(rotationTransform)

let toImageBounds = CGRect(x: 0.0, y: 0.0, width: toSize.width, height: toSize.height)
let toImageBounds = CGRect(origin: .zero, size: toSize)
let translationTransform = CGAffineTransform.translateTransform(fromCenterOfRect: fromImageBounds, toCenterOfRect: toImageBounds)

transformedQuad = transformedQuad.applyTransforms([rotationTransform, translationTransform])
Expand Down
22 changes: 13 additions & 9 deletions WeScan/Common/QuadrilateralView.swift
Original file line number Diff line number Diff line change
Expand Up @@ -65,23 +65,23 @@ final class QuadrilateralView: UIView {
}

lazy private var topLeftCornerView: EditScanCornerView = {
return EditScanCornerView(frame: CGRect(x: 0.0, y: 0.0, width: cornerViewSize, height: cornerViewSize), position: .topLeft)
return EditScanCornerView(frame: CGRect(origin: .zero, size: cornerViewSize), position: .topLeft)
}()

lazy private var topRightCornerView: EditScanCornerView = {
return EditScanCornerView(frame: CGRect(x: 0.0, y: 0.0, width: cornerViewSize, height: cornerViewSize), position: .topRight)
return EditScanCornerView(frame: CGRect(origin: .zero, size: cornerViewSize), position: .topRight)
}()

lazy private var bottomRightCornerView: EditScanCornerView = {
return EditScanCornerView(frame: CGRect(x: 0.0, y: 0.0, width: cornerViewSize, height: cornerViewSize), position: .bottomRight)
return EditScanCornerView(frame: CGRect(origin: .zero, size: cornerViewSize), position: .bottomRight)
}()

lazy private var bottomLeftCornerView: EditScanCornerView = {
return EditScanCornerView(frame: CGRect(x: 0.0, y: 0.0, width: cornerViewSize, height: cornerViewSize), position: .bottomLeft)
return EditScanCornerView(frame: CGRect(origin: .zero, size: cornerViewSize), position: .bottomLeft)
}()

private let highlightedCornerViewSize: CGFloat = 75.0
private let cornerViewSize: CGFloat = 20.0
private let highlightedCornerViewSize = CGSize(width: 75.0, height: 75.0)
private let cornerViewSize = CGSize(width: 20.0, height: 20.0)

// MARK: - Life Cycle

Expand Down Expand Up @@ -204,8 +204,10 @@ final class QuadrilateralView: UIView {
cornerView.highlightWithImage(image)
return
}

cornerView.frame = CGRect(x: cornerView.frame.origin.x - (highlightedCornerViewSize - cornerViewSize) / 2.0, y: cornerView.frame.origin.y - (highlightedCornerViewSize - cornerViewSize) / 2.0, width: highlightedCornerViewSize, height: highlightedCornerViewSize)

let origin = CGPoint(x: cornerView.frame.origin.x - (highlightedCornerViewSize.width - cornerViewSize.width) / 2.0,
y: cornerView.frame.origin.y - (highlightedCornerViewSize.height - cornerViewSize.height) / 2.0)
cornerView.frame = CGRect(origin: origin, size: highlightedCornerViewSize)
cornerView.highlightWithImage(image)
}

Expand All @@ -222,7 +224,9 @@ final class QuadrilateralView: UIView {

private func resetHightlightedCornerView(cornerView: EditScanCornerView) {
cornerView.reset()
cornerView.frame = CGRect(x: cornerView.frame.origin.x + (cornerView.frame.size.width - cornerViewSize) / 2.0, y: cornerView.frame.origin.y + (cornerView.frame.size.width - cornerViewSize) / 2.0, width: cornerViewSize, height: cornerViewSize)
let origin = CGPoint(x: cornerView.frame.origin.x + (cornerView.frame.size.width - cornerViewSize.width) / 2.0,
y: cornerView.frame.origin.y + (cornerView.frame.size.height - cornerViewSize.width) / 2.0)
cornerView.frame = CGRect(origin: origin, size: cornerViewSize)
cornerView.setNeedsDisplay()
}

Expand Down
2 changes: 1 addition & 1 deletion WeScan/Edit/EditScanViewController.swift
Original file line number Diff line number Diff line change
Expand Up @@ -159,7 +159,7 @@ final class EditScanViewController: UIViewController {

private func displayQuad() {
let imageSize = image.size
let imageFrame = CGRect(x: quadView.frame.origin.x, y: quadView.frame.origin.y, width: quadViewWidthConstraint.constant, height: quadViewHeightConstraint.constant)
let imageFrame = CGRect(origin: quadView.frame.origin, size: CGSize(width: quadViewWidthConstraint.constant, height: quadViewHeightConstraint.constant))

let scaleTransform = CGAffineTransform.scaleTransform(forSize: imageSize, aspectFillInSize: imageFrame.size)
let transforms = [scaleTransform]
Expand Down
4 changes: 2 additions & 2 deletions WeScan/Scan/ScannerViewController.swift
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ final class ScannerViewController: UIViewController {
}()

lazy private var closeButton: CloseButton = {
let button = CloseButton(frame: CGRect(x: 0, y: 0, width: 18, height: 18))
let button = CloseButton(frame: CGRect(origin: .zero, size: CGSize(width: 18.0, height: 18.0)))
button.addTarget(self, action: #selector(cancelImageScannerController(_:)), for: .touchUpInside)
return button
}()
Expand Down Expand Up @@ -168,7 +168,7 @@ extension ScannerViewController: RectangleDetectionDelegateProtocol {

let rotationTransform = CGAffineTransform(rotationAngle: CGFloat(Double.pi / 2.0))

let imageBounds = CGRect(x: 0.0, y: 0.0, width: scaledImageSize.width, height: scaledImageSize.height).applying(rotationTransform)
let imageBounds = CGRect(origin: .zero, size: scaledImageSize).applying(rotationTransform)
let translationTransform = CGAffineTransform.translateTransform(fromCenterOfRect: imageBounds, toCenterOfRect: quadView.bounds)

let transforms = [scaleTransform, rotationTransform, translationTransform]
Expand Down
2 changes: 1 addition & 1 deletion WeScanTests/CGPointTests.swift
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ final class CGPointTests: XCTestCase {
}

func testDistanceTo() {
var point1 = CGPoint(x: 0.0, y: 0.0)
var point1 = CGPoint.zero
var point2 = CGPoint(x: 10.0, y: 10.0)

var distance = point1.distanceTo(point: point2)
Expand Down
20 changes: 10 additions & 10 deletions WeScanTests/QuadrilateralTests.swift
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ final class QuadrilateralTests: XCTestCase {
let topLeft = CGPoint(x: 0.0, y: 100.0)
let topRight = CGPoint(x: 100.0, y: 100.0)
let bottomRight = CGPoint(x: 100.0, y: 0.0)
let bottomLeft = CGPoint(x: 0.0, y: 0.0)
let bottomLeft = CGPoint.zero

let quad1 = Quadrilateral(topLeft: topLeft, topRight: topRight, bottomRight: bottomRight, bottomLeft: bottomLeft)
var quad2 = Quadrilateral(topLeft: topLeft, topRight: topRight, bottomRight: bottomRight, bottomLeft: bottomLeft)
Expand All @@ -28,7 +28,7 @@ final class QuadrilateralTests: XCTestCase {
}

func testSquale() {
var topLeft = CGPoint(x: 0.0, y: 0.0)
var topLeft = CGPoint.zero
var topRight = CGPoint(x: 100.0, y: 0.0)
var bottomRight = CGPoint(x: 100.0, y: 100.0)
var bottomLeft = CGPoint(x: 0.0, y: 100.0)
Expand All @@ -39,7 +39,7 @@ final class QuadrilateralTests: XCTestCase {

var scaledQuad = quad.scale(fromImageSize, toImageSize)

XCTAssert(scaledQuad.topLeft == CGPoint(x: 0.0, y: 0.0))
XCTAssert(scaledQuad.topLeft == .zero)
XCTAssert(scaledQuad.topRight == CGPoint(x: 200.0, y: 0.0))
XCTAssert(scaledQuad.bottomRight == CGPoint(x: 200.0, y: 200.0))
XCTAssert(scaledQuad.bottomLeft == CGPoint(x: 0.0, y: 200.0))
Expand Down Expand Up @@ -72,7 +72,7 @@ final class QuadrilateralTests: XCTestCase {
}

func testScaleFixRotation() {
var topLeft = CGPoint(x: 0.0, y: 0.0)
var topLeft = CGPoint.zero
var topRight = CGPoint(x: 500.0, y: 0.0)
var bottomRight = CGPoint(x: 500.0, y: 500.0)
var bottomLeft = CGPoint(x: 0.0, y: 500.0)
Expand All @@ -86,12 +86,12 @@ final class QuadrilateralTests: XCTestCase {
XCTAssertTrue(scaledQuad.topLeft.isWithin(delta: 0.01, ofPoint: CGPoint(x: 500.0, y: 0.0)))
XCTAssertTrue(scaledQuad.topRight.isWithin(delta: 0.01, ofPoint: CGPoint(x: 500.0, y: 500.0)))
XCTAssertTrue(scaledQuad.bottomRight.isWithin(delta: 0.01, ofPoint: CGPoint(x: 0.0, y: 500.0)))
XCTAssertTrue(scaledQuad.bottomLeft.isWithin(delta: 0.01, ofPoint: CGPoint(x: 0.0, y: 0.0)))
XCTAssertTrue(scaledQuad.bottomLeft.isWithin(delta: 0.01, ofPoint: .zero))

topLeft = CGPoint(x: 0.0, y: 500.0)
topRight = CGPoint(x: 1000.0, y: 500.0)
bottomRight = CGPoint(x: 1000.0, y: 0.0)
bottomLeft = CGPoint(x: 0.0, y: 0.0)
bottomLeft = .zero

quad = Quadrilateral(topLeft: topLeft, topRight: topRight, bottomRight: bottomRight, bottomLeft: bottomLeft)

Expand All @@ -100,15 +100,15 @@ final class QuadrilateralTests: XCTestCase {

scaledQuad = quad.scale(fromImageSize, toImageSize, withRotationAngle: CGFloat(Double.pi / 2.0))

XCTAssertTrue(scaledQuad.topLeft.isWithin(delta: 0.01, ofPoint: CGPoint(x: 0.0, y: 0.0)))
XCTAssertTrue(scaledQuad.topLeft.isWithin(delta: 0.01, ofPoint: .zero))
XCTAssertTrue(scaledQuad.topRight.isWithin(delta: 0.01, ofPoint: CGPoint(x: 0.0, y: 1000.0)))
XCTAssertTrue(scaledQuad.bottomRight.isWithin(delta: 0.01, ofPoint: CGPoint(x: 500.0, y: 1000.0)))
XCTAssertTrue(scaledQuad.bottomLeft.isWithin(delta: 0.01, ofPoint: CGPoint(x: 500.0, y: 0.0)))

topLeft = CGPoint(x: 0.0, y: 500.0)
topRight = CGPoint(x: 1000.0, y: 500.0)
bottomRight = CGPoint(x: 1000.0, y: 0.0)
bottomLeft = CGPoint(x: 0.0, y: 0.0)
bottomLeft = .zero

quad = Quadrilateral(topLeft: topLeft, topRight: topRight, bottomRight: bottomRight, bottomLeft: bottomLeft)

Expand All @@ -117,7 +117,7 @@ final class QuadrilateralTests: XCTestCase {

scaledQuad = quad.scale(fromImageSize, toImageSize, withRotationAngle: CGFloat(Double.pi / 2.0))

XCTAssertTrue(scaledQuad.topLeft.isWithin(delta: 0.01, ofPoint: CGPoint(x: 0.0, y: 0.0)))
XCTAssertTrue(scaledQuad.topLeft.isWithin(delta: 0.01, ofPoint: .zero))
XCTAssertTrue(scaledQuad.topRight.isWithin(delta: 0.01, ofPoint: CGPoint(x: 0.0, y: 500.0)))
XCTAssertTrue(scaledQuad.bottomRight.isWithin(delta: 0.01, ofPoint: CGPoint(x: 250.0, y: 500.0)))
XCTAssertTrue(scaledQuad.bottomLeft.isWithin(delta: 0.01, ofPoint: CGPoint(x: 250.0, y: 0.0)))
Expand Down Expand Up @@ -175,7 +175,7 @@ final class QuadrilateralTests: XCTestCase {
}

func testReorganize() {
var topLeft = CGPoint(x: 0.0, y: 0.0)
var topLeft = CGPoint.zero
var topRight = CGPoint(x: 100.0, y: 0.0)
var bottomRight = CGPoint(x: 100.0, y: 100.0)
var bottomLeft = CGPoint(x: 0.0, y: 100.0)
Expand Down
4 changes: 2 additions & 2 deletions WeScanTests/QuadrilateralViewTests.swift
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ final class QuadrilateralViewTests: XCTestCase {
quadView.editable = true
vc.view.addSubview(quadView)

let quad = Quadrilateral(topLeft: CGPoint(x: 0.0, y: 0.0), topRight: CGPoint(x: 200.0, y: 0.0), bottomRight: CGPoint(x: 200.0, y: 200.0), bottomLeft: CGPoint(x: 0.0, y: 220.0))
let quad = Quadrilateral(topLeft: .zero, topRight: CGPoint(x: 200.0, y: 0.0), bottomRight: CGPoint(x: 200.0, y: 200.0), bottomLeft: CGPoint(x: 0.0, y: 220.0))

quadView.drawQuadrilateral(quad: quad, animated: false)

Expand Down Expand Up @@ -66,7 +66,7 @@ final class QuadrilateralViewTests: XCTestCase {
quadView.editable = true
vc.view.addSubview(quadView)

let quad = Quadrilateral(topLeft: CGPoint(x: 0.0, y: 0.0), topRight: CGPoint(x: 200.0, y: 0.0), bottomRight: CGPoint(x: 200.0, y: 200.0), bottomLeft: CGPoint(x: 0.0, y: 220.0))
let quad = Quadrilateral(topLeft: .zero, topRight: CGPoint(x: 200.0, y: 0.0), bottomRight: CGPoint(x: 200.0, y: 200.0), bottomLeft: CGPoint(x: 0.0, y: 220.0))

quadView.drawQuadrilateral(quad: quad, animated: false)

Expand Down

0 comments on commit 6b35b40

Please sign in to comment.