From 0aa82ce59ef4eea6da3ff7bf00769b44cb27e5ac Mon Sep 17 00:00:00 2001 From: Eryn Wells Date: Wed, 16 Aug 2017 21:10:26 -0700 Subject: [PATCH] [kit] Add extensions for dealing with Float4 <-> NSColor conversions --- MetaballsKit/Memory.swift | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/MetaballsKit/Memory.swift b/MetaballsKit/Memory.swift index 8918856..c404213 100644 --- a/MetaballsKit/Memory.swift +++ b/MetaballsKit/Memory.swift @@ -38,6 +38,20 @@ public struct Float4 { z = b w = a } + + init(color: NSColor) { + if let convertedColor = color.usingColorSpace(NSColorSpace.deviceRGB) { + self.init(Float(convertedColor.redComponent), Float(convertedColor.greenComponent), Float(convertedColor.blueComponent), Float(convertedColor.alphaComponent)) + } else { + self.init() + } + } +} + +extension NSColor { + convenience init(float4: Float4) { + self.init(deviceRed: CGFloat(float4.x), green: CGFloat(float4.y), blue: CGFloat(float4.z), alpha: CGFloat(float4.w)) + } } extension Array where Element == Float {