Array+Utils.swift 612 B

1234567891011121314151617181920212223242526
  1. //
  2. // Array+Utils.swift
  3. // WeScan
  4. //
  5. // Created by Boris Emorine on 2/8/18.
  6. // Copyright © 2018 WeTransfer. All rights reserved.
  7. //
  8. import Foundation
  9. extension Array where Element: CIRectangleFeature {
  10. /// Finds the biggest rectangle within an array of `CIRectangleFeature` objects.
  11. func biggest() -> CIRectangleFeature? {
  12. guard count > 1 else {
  13. return first
  14. }
  15. let biggestRectangle = self.max(by: { (rect1, rect2) -> Bool in
  16. return rect1.perimeter() < rect2.perimeter()
  17. })
  18. return biggestRectangle
  19. }
  20. }