From 62570392b08e840ac63609f6cbe01de3a5fcdf8e Mon Sep 17 00:00:00 2001 From: Eryn Wells Date: Sat, 31 Oct 2015 18:18:14 -0700 Subject: [PATCH] [Math] Tweakin' the Vectors a bit - count is a static var --- Math/Math/Vector.swift | 63 +++++++++++++++++++++--------------------- 1 file changed, 32 insertions(+), 31 deletions(-) diff --git a/Math/Math/Vector.swift b/Math/Math/Vector.swift index c34a9e4..4b9473c 100644 --- a/Math/Math/Vector.swift +++ b/Math/Math/Vector.swift @@ -15,7 +15,8 @@ public protocol Vector { init() /** Number of elements in the vector. */ - var count: Int { get } + static var count: Int { get } + /** Element access by index. */ subscript(idx: Int) -> Float { get set } @@ -37,7 +38,7 @@ extension Vector { public var length2: Float { var l2: Float = 0.0 - for i in 0.. Float { @@ -126,8 +127,8 @@ public struct Vector4: Vector { // MARK: SequenceType-ish - public var count: Int { - return data.count + public static var count: Int { + return 4 } public subscript(idx: Int) -> Float { @@ -163,7 +164,7 @@ public struct Vector4: Vector { extension Vector { public func dot(rhs: Self) -> Float { var sum: Float = 0.0 - for i in 0..(v: T) -> T { var out = v - for i in 0..(inout rhs: T, lhs: T) { - for i in 0..(inout lhs: T, rhs: T) { + for i in 0..(rhs: T, lhs: T) -> T { - var out = rhs - out += lhs +public func +(lhs: T, rhs: T) -> T { + var out = lhs + out += rhs return out } -public func -=(inout rhs: T, lhs: T) { - for i in 0..(inout lhs: T, rhs: T) { + for i in 0..(rhs: T, lhs: T) -> T { - var out = rhs - out -= lhs +public func -(lhs: T, rhs: T) -> T { + var out = lhs + out -= rhs return out } -public func *=(inout rhs: T, lhs: Float) { - for i in 0..(inout lhs: T, rhs: Float) { + for i in 0..(lhs: T, rhs: Float) -> T { return rhs * lhs } -public func /=(inout rhs: T, lhs: Float) { - rhs *= (1.0 / lhs) +public func /=(inout lhs: T, rhs: Float) { + lhs *= (1.0 / rhs) } public func /(lhs: T, rhs: Float) -> T { @@ -235,16 +236,16 @@ public func /(lhs: T, rhs: Float) -> T { } infix operator ∙ { associativity left precedence 150 } -public func ∙(rhs: T, lhs: T) -> Float { - return rhs.dot(lhs) +public func ∙(lhs: T, rhs: T) -> Float { + return lhs.dot(rhs) } infix operator ×= { associativity left precedence 150 } -public func ×=(inout rhs: Vector3, lhs: Vector3) { - rhs = rhs.cross(lhs) +public func ×=(inout lhs: Vector3, rhs: Vector3) { + lhs = lhs.cross(rhs) } infix operator × { associativity left precedence 150 } -public func ×(rhs: Vector3, lhs: Vector3) -> Vector3 { - return rhs.cross(lhs) +public func ×(lhs: Vector3, rhs: Vector3) -> Vector3 { + return lhs.cross(rhs) } \ No newline at end of file