Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Playground - noun: a place where people can play
- import Foundation
- func DegreesToRadians (value:Double) -> Double {
- return value * M_PI / 180.0
- }
- func RadiansToDegrees (value:Double) -> Double {
- return value * 180.0 / M_PI
- }
- enum Angle {
- case Radians(Double)
- case Degrees(Double)
- var scalar: Double {
- switch(self) {
- case .Radians(let v):
- return v
- case .Degrees(let v):
- return v
- }
- }
- var radians: Angle {
- switch(self) {
- case .Radians(_):
- return self
- case .Degrees(let value):
- return .Radians(DegreesToRadians(value))
- }
- }
- var degrees: Angle {
- switch(self) {
- case .Degrees(let value):
- return .Degrees(RadiansToDegrees(value))
- case .Radians(_):
- return self
- }
- }
- }
- extension Double {
- init(_ angle:Angle) {
- self.init(angle.scalar)
- }
- }
- sizeof(Double)
- sizeof(Angle)
- let a = Angle.Degrees(90)
- a.scalar
- Double(a.radians)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement