Files
swift-mirror/stdlib/objc/CoreGraphics/CoreGraphics.swift
Jordan Rose 254930a134 Update stdlib for r19751.
Swift SVN r19755
2014-07-09 22:56:25 +00:00

190 lines
4.9 KiB
Swift

//===----------------------------------------------------------------------===//
//
// This source file is part of the Swift.org open source project
//
// Copyright (c) 2014 - 2015 Apple Inc. and the Swift project authors
// Licensed under Apache License v2.0 with Runtime Library Exception
//
// See http://swift.org/LICENSE.txt for license information
// See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors
//
//===----------------------------------------------------------------------===//
@exported import CoreGraphics
import Darwin
//===----------------------------------------------------------------------===//
// CGGeometry
//===----------------------------------------------------------------------===//
public extension CGPoint {
static var zeroPoint: CGPoint { get { return CGPoint(x: 0, y: 0) } }
init() {
self.init(x: 0.0, y: 0.0)
}
init(x: Int, y: Int) {
self.init(x: CGFloat(x), y: CGFloat(y))
}
}
extension CGPoint : Equatable {}
public func == (lhs: CGPoint, rhs: CGPoint) -> Bool {
return lhs.x == rhs.x && lhs.y == rhs.y
}
public extension CGSize {
static var zeroSize: CGSize { return CGSize(width: 0, height: 0) }
init() {
self.init(width: 0.0, height: 0.0)
}
init(width: Int, height: Int) {
self.init(width: CGFloat(width), height: CGFloat(height))
}
}
extension CGSize : Equatable {}
public func == (lhs: CGSize, rhs: CGSize) -> Bool {
return lhs.width == rhs.width && lhs.height == rhs.height
}
public extension CGVector {
static var zeroVector: CGVector { get { return CGVector(0, 0) } }
init(_ dx: CGFloat, _ dy: CGFloat) {
self.init(dx: dx, dy: dy)
}
init(_ dx: Int, _ dy: Int) {
self.init(CGFloat(dx), CGFloat(dy))
}
}
extension CGVector : Equatable {}
public func == (lhs: CGVector, rhs: CGVector) -> Bool {
return lhs.dx == rhs.dx && lhs.dy == rhs.dy
}
public extension CGRect {
static var zeroRect: CGRect {
return CGRect(x: 0, y: 0, width: 0, height: 0)
}
static var nullRect: CGRect { get { return CGRectNull } }
static var infiniteRect: CGRect { get { return CGRectInfinite } }
init() {
self.init(origin: CGPoint(), size: CGSize())
}
init(x: CGFloat, y: CGFloat, width: CGFloat, height: CGFloat) {
self.init(origin: CGPoint(x: x, y: y),
size: CGSize(width: width, height: height))
}
init(x: Int, y: Int, width: Int, height: Int) {
self.init(origin: CGPoint(x: x, y: y),
size: CGSize(width: width, height: height))
}
var width: CGFloat { get { return CGRectGetWidth(self) } }
var height: CGFloat { get { return CGRectGetHeight(self) } }
var minX: CGFloat { get { return CGRectGetMinX(self) } }
var midX: CGFloat { get { return CGRectGetMidX(self) } }
var maxX: CGFloat { get { return CGRectGetMaxX(self) } }
var minY: CGFloat { get { return CGRectGetMinY(self) } }
var midY: CGFloat { get { return CGRectGetMidY(self) } }
var maxY: CGFloat { get { return CGRectGetMaxY(self) } }
var isNull: Bool { get { return CGRectIsNull(self) } }
var isEmpty: Bool { get { return CGRectIsEmpty(self) } }
var isInfinite: Bool { get { return CGRectIsInfinite(self) } }
var standardizedRect: CGRect {
get { return CGRectStandardize(self) }
}
mutating func standardize() {
self = self.standardizedRect
}
var integerRect: CGRect {
get { return CGRectIntegral(self) }
}
mutating func integerize() {
self = self.integerRect
}
func rectByInsetting(#dx: CGFloat, dy: CGFloat) -> CGRect {
return CGRectInset(self, dx, dy)
}
mutating func inset(#dx: CGFloat, dy: CGFloat) {
self = self.rectByInsetting(dx: dx, dy: dy)
}
func rectByOffsetting(#dx: CGFloat, dy: CGFloat) -> CGRect {
return CGRectOffset(self, dx, dy)
}
mutating func offset(#dx: CGFloat, dy: CGFloat) {
self = self.rectByOffsetting(dx: dx, dy: dy)
}
func rectByUnion(withRect: CGRect) -> CGRect {
return CGRectUnion(self, withRect)
}
mutating func union(withRect: CGRect) {
self = self.rectByUnion(withRect)
}
func rectByIntersecting(withRect: CGRect) -> CGRect {
return CGRectIntersection(self, withRect)
}
mutating func intersect(withRect: CGRect) {
self = self.rectByIntersecting(withRect)
}
func rectsByDividing(atDistance: CGFloat, fromEdge: CGRectEdge)
-> (slice: CGRect, remainder: CGRect)
{
var slice = CGRect.zeroRect
var remainder = CGRect.zeroRect
CGRectDivide(self, &slice, &remainder, atDistance, fromEdge)
return (slice, remainder)
}
func contains(rect: CGRect) -> Bool {
return CGRectContainsRect(self, rect)
}
func contains(point: CGPoint) -> Bool {
return CGRectContainsPoint(self, point)
}
func intersects(rect: CGRect) -> Bool {
return CGRectIntersectsRect(self, rect)
}
}
extension CGRect : Equatable {}
public func == (lhs: CGRect, rhs: CGRect) -> Bool {
return CGRectEqualToRect(lhs, rhs)
}