Created
March 2, 2018 11:59
-
-
Save eugenebokhan/15cb50e407a6f51c09d9e72440199e4b to your computer and use it in GitHub Desktop.
CGPoint extensions
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
extension CGPoint { | |
init(_ size: CGSize) { | |
self.x = size.width | |
self.y = size.height | |
} | |
init(_ vector: SCNVector3) { | |
self.x = CGFloat(vector.x) | |
self.y = CGFloat(vector.y) | |
} | |
init(x: Float, y: Float) | |
{ | |
self.init(x: CGFloat(x), y: CGFloat(y)) | |
} | |
func distanceTo(_ point: CGPoint) -> CGFloat { | |
return (self - point).length() | |
} | |
func length() -> CGFloat { | |
return sqrt(self.x * self.x + self.y * self.y) | |
} | |
func midpoint(_ point: CGPoint) -> CGPoint { | |
return (self + point) / 2 | |
} | |
func friendlyString() -> String { | |
return "(\(String(format: "%.2f", x)), \(String(format: "%.2f", y)))" | |
} | |
} | |
func + (left: CGPoint, right: CGPoint) -> CGPoint { | |
return CGPoint(x: left.x + right.x, y: left.y + right.y) | |
} | |
func - (left: CGPoint, right: CGPoint) -> CGPoint { | |
return CGPoint(x: left.x - right.x, y: left.y - right.y) | |
} | |
func += (left: inout CGPoint, right: CGPoint) { | |
left = left + right | |
} | |
func -= (left: inout CGPoint, right: CGPoint) { | |
left = left - right | |
} | |
func / (left: CGPoint, right: CGFloat) -> CGPoint { | |
return CGPoint(x: left.x / right, y: left.y / right) | |
} | |
func * (left: CGPoint, right: CGFloat) -> CGPoint { | |
return CGPoint(x: left.x * right, y: left.y * right) | |
} | |
func /= (left: inout CGPoint, right: CGFloat) { | |
left = left / right | |
} | |
func *= (left: inout CGPoint, right: CGFloat) { | |
left = left * right | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment