gh-EmergeTools-Pow/Sources/Pow/Extensions/CGSize+Utilities.swift
Joe Fabisevich 5b95fe95b0
Moving Pow to @emergetools (#36)
Co-authored-by: Robert Böhnke <robb@robb.is>
Co-authored-by: Kasper Lahti <kasper@lahti.email>
2023-11-29 12:08:53 -03:00

29 lines
755 B
Swift

import SwiftUI
extension CGSize {
var area: CGFloat {
width * height
}
func boundingSize(at angle: Angle) -> CGSize {
var theta: Double = angle.radians
let sizeA: CGSize = CGSize(
width: abs(width * cos(Double(theta)) + height * sin(Double(theta))),
height: abs(width * sin(Double(theta)) + height * cos(Double(theta)))
)
theta += .pi / 2
let sizeB: CGSize = CGSize(
width: abs(width * sin(Double(theta)) + height * cos(Double(theta))),
height: abs(width * cos(Double(theta)) + height * sin(Double(theta)))
)
if sizeA.area > sizeB.area {
return sizeA
} else {
return sizeB
}
}
}