mirror of
https://github.com/ilyakooo0/metal-metaballs.git
synced 2024-10-26 10:22:52 +03:00
Added helper methods for CALayer.
This commit is contained in:
parent
05cd2a360b
commit
db88326e6d
@ -1,3 +1,5 @@
|
|||||||
|
// TODO: Unite UIView and CALayer extensions under a common protocol
|
||||||
|
|
||||||
import UIKit
|
import UIKit
|
||||||
|
|
||||||
func - (left: CGPoint, right: CGPoint) -> CGVector {
|
func - (left: CGPoint, right: CGPoint) -> CGVector {
|
||||||
@ -139,6 +141,79 @@ extension UIView {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
extension CALayer {
|
||||||
|
var origin: CGPoint {
|
||||||
|
get {
|
||||||
|
return frame.origin
|
||||||
|
}
|
||||||
|
set {
|
||||||
|
frame.origin = newValue
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
var size: CGSize {
|
||||||
|
get {
|
||||||
|
return frame.size
|
||||||
|
}
|
||||||
|
set {
|
||||||
|
frame.size = newValue
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
var width: CGFloat {
|
||||||
|
get {
|
||||||
|
return frame.width
|
||||||
|
}
|
||||||
|
set {
|
||||||
|
frame.size = CGSize(width: newValue, height: height)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
var height: CGFloat {
|
||||||
|
get {
|
||||||
|
return frame.height
|
||||||
|
}
|
||||||
|
set {
|
||||||
|
frame.size = CGSize(width: width, height: newValue)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
var middle: CGPoint {
|
||||||
|
get {
|
||||||
|
return CGPoint(x: origin.x + width / 2, y: origin.y + height / 2)
|
||||||
|
}
|
||||||
|
set {
|
||||||
|
origin = CGPoint(x: newValue.x - width / 2, y: newValue.y - height / 2)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
var midX: CGFloat {
|
||||||
|
get {
|
||||||
|
return middle.x
|
||||||
|
}
|
||||||
|
set {
|
||||||
|
middle = CGPoint(x: newValue, y: midY)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
var midY: CGFloat {
|
||||||
|
get {
|
||||||
|
return middle.y
|
||||||
|
}
|
||||||
|
set {
|
||||||
|
middle = CGPoint(x: midX, y: newValue)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
let screenRect = UIScreen.mainScreen().bounds
|
let screenRect = UIScreen.mainScreen().bounds
|
||||||
let screenWidth = screenRect.size.width
|
let screenWidth = screenRect.size.width
|
||||||
let screenHeight = screenRect.size.height
|
let screenHeight = screenRect.size.height
|
||||||
|
|
||||||
|
func * <T: Numeric>(vector: CGVector, scalar: T) -> CGVector {
|
||||||
|
return CGVector(dx: vector.dx * CGFloat(scalar.toDouble), dy: vector.dy * CGFloat(scalar.toDouble))
|
||||||
|
}
|
||||||
|
|
||||||
|
func + (point: CGPoint, vector: CGVector) -> CGPoint {
|
||||||
|
return CGPoint(x: point.x + vector.dx, y: point.y + vector.dy)
|
||||||
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user