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
|
||||
|
||||
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 screenWidth = screenRect.size.width
|
||||
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