From 1d0814fb0c1147c1c7e0973dfb31b8a420c8872d Mon Sep 17 00:00:00 2001 From: vinivendra Date: Fri, 12 Feb 2016 13:13:58 -0500 Subject: [PATCH 01/31] Removed redundant mix functions. --- PixelImage/shaders.metal | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/PixelImage/shaders.metal b/PixelImage/shaders.metal index 781738c..9ad4bc4 100644 --- a/PixelImage/shaders.metal +++ b/PixelImage/shaders.metal @@ -45,12 +45,11 @@ kernel void float weightedLink = 0.6 * link * edgeWeight; - - sum += mix(0.0, 1.0, step(0.5, weightedValue + weightedLink)); + sum += step(0.5, weightedValue + weightedLink); } } - float result = mix(0.0, 1.0, step(0.4, sum)); + float result = step(0.4, sum); outTexture.write(float4(result, result / 2, 0, 1), gid); } From 67fc9a011608900e95af1834162296ef2673b878 Mon Sep 17 00:00:00 2001 From: vinivendra Date: Fri, 12 Feb 2016 13:40:46 -0500 Subject: [PATCH 02/31] Momoized a few calculations (complexity is still the same though). --- PixelImage/shaders.metal | 35 +++++++++++++++++------------------ 1 file changed, 17 insertions(+), 18 deletions(-) diff --git a/PixelImage/shaders.metal b/PixelImage/shaders.metal index 9ad4bc4..abbf574 100644 --- a/PixelImage/shaders.metal +++ b/PixelImage/shaders.metal @@ -3,11 +3,7 @@ using namespace metal; -kernel void - drawMetaballs(texture2d outTexture[[texture(0)]], - constant float *edgesBuffer[[buffer(1)]], - constant float *metaballBuffer[[buffer(0)]], - uint2 gid[[thread_position_in_grid]]) { +kernel void drawMetaballs(texture2d outTexture[[texture(0)]], constant float *edgesBuffer[[buffer(1)]], constant float *metaballBuffer[[buffer(0)]], uint2 gid[[thread_position_in_grid]]) { uint numberOfMetaballs = metaballBuffer[0]; uint metaballArraySize = numberOfMetaballs * 2 + 1; @@ -16,19 +12,22 @@ kernel void uint i, j, x, y; + float metaballDistances[10]; + float2 metaballDirections[10]; + + for (i = 1, x = 0; i < metaballArraySize; i += 2, x += 1) { + float2 metaball = float2(metaballBuffer[i], metaballBuffer[i + 1]); + float2 vector = float2(metaball.x - gid.x, metaball.y - gid.y); + float squaredDistance = dot(vector, vector); + float realDistance = sqrt(squaredDistance); + metaballDistances[x] = squaredDistance; + metaballDirections[x] = vector/realDistance; + } + for (i = 1, x = 0; i < metaballArraySize; i += 2, x += 1) { for (j = i + 2, y = x + 1; j < metaballArraySize; j += 2, y += 1) { - float2 metaball1 = float2(metaballBuffer[i], metaballBuffer[i + 1]); - - float2 metaball2 = float2(metaballBuffer[j], metaballBuffer[j + 1]); - - float2 metaball1Vector - = float2(metaball1.x - gid.x, metaball1.y - gid.y); - float2 metaball2Vector - = float2(metaball2.x - gid.x, metaball2.y - gid.y); - - float value1 = 2048 / (dot(metaball1Vector, metaball1Vector) + 1); - float value2 = 2048 / (dot(metaball2Vector, metaball2Vector) + 1); + float value1 = 2048 / (metaballDistances[x] + 1); + float value2 = 2048 / (metaballDistances[y] + 1); float v = value1 + value2; @@ -36,8 +35,8 @@ kernel void char edgeIndex = y * numberOfMetaballs + x; float edgeWeight = edgesBuffer[edgeIndex]; - float2 direction1 = normalize(metaball1Vector); - float2 direction2 = normalize(metaball2Vector); + float2 direction1 = metaballDirections[x]; + float2 direction2 = metaballDirections[y]; float cosine = dot(direction1, direction2); From 8de54d9d6582596cc23dc99c03f63e520d795cdd Mon Sep 17 00:00:00 2001 From: vinivendra Date: Fri, 12 Feb 2016 13:49:23 -0500 Subject: [PATCH 03/31] Removed a few more repeated calculations. --- PixelImage/shaders.metal | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/PixelImage/shaders.metal b/PixelImage/shaders.metal index abbf574..02b8a4c 100644 --- a/PixelImage/shaders.metal +++ b/PixelImage/shaders.metal @@ -25,23 +25,21 @@ kernel void drawMetaballs(texture2d outTexture[[texture(0) } for (i = 1, x = 0; i < metaballArraySize; i += 2, x += 1) { + float value1 = 2048 / (metaballDistances[x] + 1); + float2 direction1 = metaballDirections[x]; + for (j = i + 2, y = x + 1; j < metaballArraySize; j += 2, y += 1) { - float value1 = 2048 / (metaballDistances[x] + 1); + float value2 = 2048 / (metaballDistances[y] + 1); + float2 direction2 = metaballDirections[y]; float v = value1 + value2; - float weightedValue = 0.5 * v; char edgeIndex = y * numberOfMetaballs + x; float edgeWeight = edgesBuffer[edgeIndex]; - float2 direction1 = metaballDirections[x]; - float2 direction2 = metaballDirections[y]; - float cosine = dot(direction1, direction2); - float link = pow(((1 - cosine) * 0.5), 100); - float weightedLink = 0.6 * link * edgeWeight; sum += step(0.5, weightedValue + weightedLink); From e7d1cf4e8ca62b4bc3aa1e74eb7438d4502e8af8 Mon Sep 17 00:00:00 2001 From: vinivendra Date: Fri, 12 Feb 2016 13:51:10 -0500 Subject: [PATCH 04/31] Simplified indexing in the loops. --- PixelImage/shaders.metal | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/PixelImage/shaders.metal b/PixelImage/shaders.metal index 02b8a4c..1211ad5 100644 --- a/PixelImage/shaders.metal +++ b/PixelImage/shaders.metal @@ -5,18 +5,18 @@ using namespace metal; kernel void drawMetaballs(texture2d outTexture[[texture(0)]], constant float *edgesBuffer[[buffer(1)]], constant float *metaballBuffer[[buffer(0)]], uint2 gid[[thread_position_in_grid]]) { - uint numberOfMetaballs = metaballBuffer[0]; - uint metaballArraySize = numberOfMetaballs * 2 + 1; + char numberOfMetaballs = metaballBuffer[0]; + char metaballArraySize = numberOfMetaballs * 2 + 1; float sum = 0; - uint i, j, x, y; + char x, y; float metaballDistances[10]; float2 metaballDirections[10]; - for (i = 1, x = 0; i < metaballArraySize; i += 2, x += 1) { - float2 metaball = float2(metaballBuffer[i], metaballBuffer[i + 1]); + for (y = 1, x = 0; y < metaballArraySize; y += 2, x += 1) { + float2 metaball = float2(metaballBuffer[y], metaballBuffer[y + 1]); float2 vector = float2(metaball.x - gid.x, metaball.y - gid.y); float squaredDistance = dot(vector, vector); float realDistance = sqrt(squaredDistance); @@ -24,11 +24,11 @@ kernel void drawMetaballs(texture2d outTexture[[texture(0) metaballDirections[x] = vector/realDistance; } - for (i = 1, x = 0; i < metaballArraySize; i += 2, x += 1) { + for (x = 0; x < numberOfMetaballs; x += 1) { float value1 = 2048 / (metaballDistances[x] + 1); float2 direction1 = metaballDirections[x]; - for (j = i + 2, y = x + 1; j < metaballArraySize; j += 2, y += 1) { + for (y = x + 1; y < numberOfMetaballs; y += 1) { float value2 = 2048 / (metaballDistances[y] + 1); float2 direction2 = metaballDirections[y]; From 28a13e25dd1aa77e2b22f715b0e0a15e0b52abe9 Mon Sep 17 00:00:00 2001 From: vinivendra Date: Sun, 14 Feb 2016 01:58:10 -0500 Subject: [PATCH 05/31] Added initial antialiasing to shader code. --- PixelImage/ViewController.swift | 1 + PixelImage/shaders.metal | 25 ++++++++++++++++++++++--- 2 files changed, 23 insertions(+), 3 deletions(-) diff --git a/PixelImage/ViewController.swift b/PixelImage/ViewController.swift index 73725ba..f2d9d2c 100644 --- a/PixelImage/ViewController.swift +++ b/PixelImage/ViewController.swift @@ -29,6 +29,7 @@ class ViewController: UIViewController, MetaballDataSource { metaballGraph.addEdge(0, 1) metaballGraph.addEdge(0, 3) metaballGraph.addEdge(1, 2) + metaballGraph.addEdge(1, 3) metaballGraph.addEdge(2, 3) let border = 20 diff --git a/PixelImage/shaders.metal b/PixelImage/shaders.metal index 1211ad5..219cce4 100644 --- a/PixelImage/shaders.metal +++ b/PixelImage/shaders.metal @@ -24,12 +24,14 @@ kernel void drawMetaballs(texture2d outTexture[[texture(0) metaballDirections[x] = vector/realDistance; } + float bendClose = 0.0; + float bendCloseCount = 0.0; + for (x = 0; x < numberOfMetaballs; x += 1) { float value1 = 2048 / (metaballDistances[x] + 1); float2 direction1 = metaballDirections[x]; for (y = x + 1; y < numberOfMetaballs; y += 1) { - float value2 = 2048 / (metaballDistances[y] + 1); float2 direction2 = metaballDirections[y]; @@ -42,11 +44,28 @@ kernel void drawMetaballs(texture2d outTexture[[texture(0) float link = pow(((1 - cosine) * 0.5), 100); float weightedLink = 0.6 * link * edgeWeight; + float result = weightedValue + weightedLink; + + if (result > 0.4 && result < 0.6) { + bendClose += result; + bendCloseCount += 1.0; + } + sum += step(0.5, weightedValue + weightedLink); } } - float result = step(0.4, sum); + bendClose = bendClose / bendCloseCount; - outTexture.write(float4(result, result / 2, 0, 1), gid); + if (bendClose != 0.0) { + bendClose = (bendClose - 0.4) * (1/(0.6-0.4)); + } else { + bendClose = 0.0; + } + + float result = step(0.4, sum); + result += bendClose * 10; + result = clamp(result, 0.0, 1.0); + + outTexture.write(float4(result, result / 2, 0.0, 1), gid); } From 3c3a09be8a444414dd818a085646480fba55455a Mon Sep 17 00:00:00 2001 From: vinivendra Date: Sun, 14 Feb 2016 02:20:57 -0500 Subject: [PATCH 06/31] Added Chameleon from cocoapods. --- PixelImage.xcodeproj/project.pbxproj | 77 ++++++++++++++++++++++++++++ Podfile | 6 +++ 2 files changed, 83 insertions(+) create mode 100644 Podfile diff --git a/PixelImage.xcodeproj/project.pbxproj b/PixelImage.xcodeproj/project.pbxproj index 2296981..6efa09f 100644 --- a/PixelImage.xcodeproj/project.pbxproj +++ b/PixelImage.xcodeproj/project.pbxproj @@ -49,6 +49,7 @@ 24FFA8841C6BA038005ACD60 /* TakeDrop.swift in Sources */ = {isa = PBXBuildFile; fileRef = 24FFA8681C6BA038005ACD60 /* TakeDrop.swift */; }; 24FFA8851C6BA038005ACD60 /* Zip.swift in Sources */ = {isa = PBXBuildFile; fileRef = 24FFA8691C6BA038005ACD60 /* Zip.swift */; }; 24FFA8861C6BA038005ACD60 /* TestCommons.swift in Sources */ = {isa = PBXBuildFile; fileRef = 24FFA86A1C6BA038005ACD60 /* TestCommons.swift */; }; + 2BF7957B6518CA68241BB2CE /* Pods_PixelImage.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C55F9558B3B267413C3A07A6 /* Pods_PixelImage.framework */; }; /* End PBXBuildFile section */ /* Begin PBXFileReference section */ @@ -96,6 +97,9 @@ 24FFA8681C6BA038005ACD60 /* TakeDrop.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TakeDrop.swift; sourceTree = ""; }; 24FFA8691C6BA038005ACD60 /* Zip.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Zip.swift; sourceTree = ""; }; 24FFA86A1C6BA038005ACD60 /* TestCommons.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TestCommons.swift; sourceTree = ""; }; + B1A755EFC03DA2A172C2B82F /* Pods-PixelImage.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-PixelImage.debug.xcconfig"; path = "Pods/Target Support Files/Pods-PixelImage/Pods-PixelImage.debug.xcconfig"; sourceTree = ""; }; + C419D37C90A6BE8B5139806A /* Pods-PixelImage.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-PixelImage.release.xcconfig"; path = "Pods/Target Support Files/Pods-PixelImage/Pods-PixelImage.release.xcconfig"; sourceTree = ""; }; + C55F9558B3B267413C3A07A6 /* Pods_PixelImage.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_PixelImage.framework; sourceTree = BUILT_PRODUCTS_DIR; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -105,6 +109,7 @@ files = ( 24E1E7E41C67D39300ECF1C4 /* MetalKit.framework in Frameworks */, 24E1E7E21C67D37F00ECF1C4 /* Metal.framework in Frameworks */, + 2BF7957B6518CA68241BB2CE /* Pods_PixelImage.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -118,6 +123,8 @@ 24E1E7E11C67D37F00ECF1C4 /* Metal.framework */, 242686861C63B72A00D62456 /* PixelImage */, 242686851C63B72A00D62456 /* Products */, + F1933B48ED44BA9FCD7A4A1F /* Pods */, + 588576572D7A188031904848 /* Frameworks */, ); sourceTree = ""; }; @@ -209,6 +216,23 @@ path = SwiftSequences; sourceTree = ""; }; + 588576572D7A188031904848 /* Frameworks */ = { + isa = PBXGroup; + children = ( + C55F9558B3B267413C3A07A6 /* Pods_PixelImage.framework */, + ); + name = Frameworks; + sourceTree = ""; + }; + F1933B48ED44BA9FCD7A4A1F /* Pods */ = { + isa = PBXGroup; + children = ( + B1A755EFC03DA2A172C2B82F /* Pods-PixelImage.debug.xcconfig */, + C419D37C90A6BE8B5139806A /* Pods-PixelImage.release.xcconfig */, + ); + name = Pods; + sourceTree = ""; + }; /* End PBXGroup section */ /* Begin PBXNativeTarget section */ @@ -216,9 +240,12 @@ isa = PBXNativeTarget; buildConfigurationList = 242686961C63B72A00D62456 /* Build configuration list for PBXNativeTarget "PixelImage" */; buildPhases = ( + EF55C7246917A184756D93D8 /* Check Pods Manifest.lock */, 242686801C63B72A00D62456 /* Sources */, 242686811C63B72A00D62456 /* Frameworks */, 242686821C63B72A00D62456 /* Resources */, + C7A2DF67265A9D17DEFBD193 /* Embed Pods Frameworks */, + FADC01F75BFAC01F0260D1C9 /* Copy Pods Resources */, ); buildRules = ( ); @@ -276,6 +303,54 @@ }; /* End PBXResourcesBuildPhase section */ +/* Begin PBXShellScriptBuildPhase section */ + C7A2DF67265A9D17DEFBD193 /* Embed Pods Frameworks */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "Embed Pods Frameworks"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-PixelImage/Pods-PixelImage-frameworks.sh\"\n"; + showEnvVarsInLog = 0; + }; + EF55C7246917A184756D93D8 /* Check Pods Manifest.lock */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "Check Pods Manifest.lock"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "diff \"${PODS_ROOT}/../Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [[ $? != 0 ]] ; then\n cat << EOM\nerror: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\nEOM\n exit 1\nfi\n"; + showEnvVarsInLog = 0; + }; + FADC01F75BFAC01F0260D1C9 /* Copy Pods Resources */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "Copy Pods Resources"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-PixelImage/Pods-PixelImage-resources.sh\"\n"; + showEnvVarsInLog = 0; + }; +/* End PBXShellScriptBuildPhase section */ + /* Begin PBXSourcesBuildPhase section */ 242686801C63B72A00D62456 /* Sources */ = { isa = PBXSourcesBuildPhase; @@ -428,6 +503,7 @@ }; 242686971C63B72A00D62456 /* Debug */ = { isa = XCBuildConfiguration; + baseConfigurationReference = B1A755EFC03DA2A172C2B82F /* Pods-PixelImage.debug.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; INFOPLIST_FILE = PixelImage/Info.plist; @@ -439,6 +515,7 @@ }; 242686981C63B72A00D62456 /* Release */ = { isa = XCBuildConfiguration; + baseConfigurationReference = C419D37C90A6BE8B5139806A /* Pods-PixelImage.release.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; INFOPLIST_FILE = PixelImage/Info.plist; diff --git a/Podfile b/Podfile new file mode 100644 index 0000000..87c2b91 --- /dev/null +++ b/Podfile @@ -0,0 +1,6 @@ +platform :ios, '9.2' +use_frameworks! + +target 'PixelImage' do + pod 'ChameleonFramework/Swift' +end From 292d19c73fc694f2ad50265316d8697dc95975b9 Mon Sep 17 00:00:00 2001 From: vinivendra Date: Sun, 14 Feb 2016 02:29:30 -0500 Subject: [PATCH 07/31] Added UIColor extension to facilitate conversion to individual rgba values. --- PixelImage/UIColor.swift | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 PixelImage/UIColor.swift diff --git a/PixelImage/UIColor.swift b/PixelImage/UIColor.swift new file mode 100644 index 0000000..8c7f46b --- /dev/null +++ b/PixelImage/UIColor.swift @@ -0,0 +1,9 @@ +import UIKit + +extension UIColor { + var components: (red: CGFloat, green: CGFloat, blue: CGFloat, alpha: CGFloat) { + var r: CGFloat = 0, g: CGFloat = 0, b: CGFloat = 0, a: CGFloat = 0 + getRed(&r, green: &g, blue: &b, alpha: &a) + return (r, g, b, a) + } +} From 131fb3168e2af3a3660f7fdeae7deb20e46d5f00 Mon Sep 17 00:00:00 2001 From: vinivendra Date: Sun, 14 Feb 2016 02:32:01 -0500 Subject: [PATCH 08/31] Added color information to the metaball buffer. --- PixelImage.xcodeproj/project.pbxproj | 4 ++++ PixelImage/MetalMetaballRenderer.swift | 10 +++++++++- PixelImage/shaders.metal | 4 ++-- 3 files changed, 15 insertions(+), 3 deletions(-) diff --git a/PixelImage.xcodeproj/project.pbxproj b/PixelImage.xcodeproj/project.pbxproj index 6efa09f..2fa1362 100644 --- a/PixelImage.xcodeproj/project.pbxproj +++ b/PixelImage.xcodeproj/project.pbxproj @@ -13,6 +13,7 @@ 2426868F1C63B72A00D62456 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 2426868E1C63B72A00D62456 /* Assets.xcassets */; }; 242686921C63B72A00D62456 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 242686901C63B72A00D62456 /* LaunchScreen.storyboard */; }; 2461651B1C6DA4F400A913C8 /* Interpolation.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2461651A1C6DA4F400A913C8 /* Interpolation.swift */; }; + 246B0F831C70635D00A71D05 /* UIColor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 246B0F821C70635D00A71D05 /* UIColor.swift */; }; 249CF84C1C6D113C008B0C78 /* Matrix.swift in Sources */ = {isa = PBXBuildFile; fileRef = 249CF84B1C6D113C008B0C78 /* Matrix.swift */; }; 24E1E7D71C67C8B200ECF1C4 /* UIKit.swift in Sources */ = {isa = PBXBuildFile; fileRef = 24E1E7D61C67C8B200ECF1C4 /* UIKit.swift */; }; 24E1E7E21C67D37F00ECF1C4 /* Metal.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 24E1E7E11C67D37F00ECF1C4 /* Metal.framework */; }; @@ -61,6 +62,7 @@ 242686911C63B72A00D62456 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; 242686931C63B72A00D62456 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 2461651A1C6DA4F400A913C8 /* Interpolation.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = Interpolation.swift; path = PixelImage/Interpolation.swift; sourceTree = SOURCE_ROOT; }; + 246B0F821C70635D00A71D05 /* UIColor.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UIColor.swift; sourceTree = ""; }; 249CF84B1C6D113C008B0C78 /* Matrix.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Matrix.swift; sourceTree = ""; }; 24E1E7D61C67C8B200ECF1C4 /* UIKit.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UIKit.swift; sourceTree = ""; }; 24E1E7E11C67D37F00ECF1C4 /* Metal.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Metal.framework; path = System/Library/Frameworks/Metal.framework; sourceTree = SDKROOT; }; @@ -143,6 +145,7 @@ 242686871C63B72A00D62456 /* AppDelegate.swift */, 242686891C63B72A00D62456 /* ViewController.swift */, 24E1E7D61C67C8B200ECF1C4 /* UIKit.swift */, + 246B0F821C70635D00A71D05 /* UIColor.swift */, 24ED21CC1C6C2397009C40FC /* MetaballDataSource.swift */, 24E1E7EA1C67D70300ECF1C4 /* MetalMetaballRenderer.swift */, 24E1E7EE1C67D74300ECF1C4 /* Metal.swift */, @@ -383,6 +386,7 @@ 24FFA86E1C6BA038005ACD60 /* Dictionary.swift in Sources */, 24FFA87D1C6BA038005ACD60 /* Hopping.swift in Sources */, 24E1E7EB1C67D70300ECF1C4 /* MetalMetaballRenderer.swift in Sources */, + 246B0F831C70635D00A71D05 /* UIColor.swift in Sources */, 24FFA87A1C6BA038005ACD60 /* Enumerate.swift in Sources */, 242686881C63B72A00D62456 /* AppDelegate.swift in Sources */, 24E1E7F01C67D74300ECF1C4 /* Metal.swift in Sources */, diff --git a/PixelImage/MetalMetaballRenderer.swift b/PixelImage/MetalMetaballRenderer.swift index 4bf87af..a9101af 100644 --- a/PixelImage/MetalMetaballRenderer.swift +++ b/PixelImage/MetalMetaballRenderer.swift @@ -1,5 +1,6 @@ import Metal import UIKit +import ChameleonFramework class MetalMetaballRenderer { @@ -181,11 +182,18 @@ class MetalMetaballRenderer { -border < y ≤ targetView.height + border { array.append(Float(x)) array.append(Float(y)) + + let color = UIColor.randomFlatColor() + let components = color.components + array.append(Float(components.blue)) + array.append(Float(components.green)) + array.append(Float(components.red)) } return array } + // Add array size to start of array so metal knows how far to go - floats[0] = Float(floats.count) / 2 + floats[0] = Float(floats.count) / 5 // Create buffer let buffer = context.device.newBufferWithBytes(floats, length: floats.count * sizeof(Float), options: .StorageModeShared) diff --git a/PixelImage/shaders.metal b/PixelImage/shaders.metal index 219cce4..9ec6667 100644 --- a/PixelImage/shaders.metal +++ b/PixelImage/shaders.metal @@ -6,7 +6,7 @@ using namespace metal; kernel void drawMetaballs(texture2d outTexture[[texture(0)]], constant float *edgesBuffer[[buffer(1)]], constant float *metaballBuffer[[buffer(0)]], uint2 gid[[thread_position_in_grid]]) { char numberOfMetaballs = metaballBuffer[0]; - char metaballArraySize = numberOfMetaballs * 2 + 1; + char metaballArraySize = numberOfMetaballs * 5 + 1; float sum = 0; @@ -15,7 +15,7 @@ kernel void drawMetaballs(texture2d outTexture[[texture(0) float metaballDistances[10]; float2 metaballDirections[10]; - for (y = 1, x = 0; y < metaballArraySize; y += 2, x += 1) { + for (y = 1, x = 0; y < metaballArraySize; y += 5, x += 1) { float2 metaball = float2(metaballBuffer[y], metaballBuffer[y + 1]); float2 vector = float2(metaball.x - gid.x, metaball.y - gid.y); float squaredDistance = dot(vector, vector); From 0bfcd45bdaeed77e86eb7a67f7eea2b29085d9f1 Mon Sep 17 00:00:00 2001 From: vinivendra Date: Tue, 16 Feb 2016 12:54:51 -0500 Subject: [PATCH 09/31] Refactored the shader to use structures, fixed indexing and color calculations. --- PixelImage/MetalMetaballRenderer.swift | 2 +- PixelImage/shaders.metal | 47 +++++++++++++++++++------- 2 files changed, 36 insertions(+), 13 deletions(-) diff --git a/PixelImage/MetalMetaballRenderer.swift b/PixelImage/MetalMetaballRenderer.swift index a9101af..63b9302 100644 --- a/PixelImage/MetalMetaballRenderer.swift +++ b/PixelImage/MetalMetaballRenderer.swift @@ -175,7 +175,7 @@ class MetalMetaballRenderer { // Exclude metaballs far from the view's bounds let border: CGFloat = 100 let metaballs = self.dataSource.metaballs - var floats: [Float] = metaballs.reduce([Float(0)]) { (var array, metaball) -> [Float] in + var floats: [Float] = metaballs.reduce([Float](count: 5, repeatedValue: 0)) { (var array, metaball) -> [Float] in let x = CGFloat(metaball.midX) let y = CGFloat(metaball.midY) if -border < x ≤ targetView.width + border && diff --git a/PixelImage/shaders.metal b/PixelImage/shaders.metal index 9ec6667..3241a2b 100644 --- a/PixelImage/shaders.metal +++ b/PixelImage/shaders.metal @@ -3,36 +3,54 @@ using namespace metal; -kernel void drawMetaballs(texture2d outTexture[[texture(0)]], constant float *edgesBuffer[[buffer(1)]], constant float *metaballBuffer[[buffer(0)]], uint2 gid[[thread_position_in_grid]]) { +struct metaballData { + float x; + float y; + float r; + float g; + float b; +}; - char numberOfMetaballs = metaballBuffer[0]; - char metaballArraySize = numberOfMetaballs * 5 + 1; +kernel void drawMetaballs(texture2d outTexture[[texture(0)]], constant float *edgesBuffer[[buffer(1)]], constant metaballData *metaballBuffer[[buffer(0)]], uint2 gid[[thread_position_in_grid]]) { + + char numberOfMetaballs = metaballBuffer[0].x - 1; float sum = 0; + float3 colorSum = float3(0, 0, 0); + float colorAccumulation = 0; char x, y; float metaballDistances[10]; float2 metaballDirections[10]; + float3 metaballColors[10]; - for (y = 1, x = 0; y < metaballArraySize; y += 5, x += 1) { - float2 metaball = float2(metaballBuffer[y], metaballBuffer[y + 1]); - float2 vector = float2(metaball.x - gid.x, metaball.y - gid.y); + for (x = 1; x <= numberOfMetaballs; x += 1) { + metaballData metaball = metaballBuffer[x]; + float2 metaballPosition = float2(metaball.x, metaball.y); + float2 vector = float2(metaballPosition.x - gid.x, metaballPosition.y - gid.y); float squaredDistance = dot(vector, vector); float realDistance = sqrt(squaredDistance); - metaballDistances[x] = squaredDistance; - metaballDirections[x] = vector/realDistance; + metaballDistances[x - 1] = squaredDistance; + metaballDirections[x - 1] = vector/realDistance; + metaballColors[x - 1] = float3(metaball.r, metaball.g, metaball.b); } float bendClose = 0.0; float bendCloseCount = 0.0; for (x = 0; x < numberOfMetaballs; x += 1) { - float value1 = 2048 / (metaballDistances[x] + 1); + float distance1 = metaballDistances[x]; + float value1 = 2048 / (distance1 + 1); float2 direction1 = metaballDirections[x]; + float colorContribution = 1 / distance1; + colorAccumulation += colorContribution; + colorSum += metaballColors[x] * colorContribution; + for (y = x + 1; y < numberOfMetaballs; y += 1) { - float value2 = 2048 / (metaballDistances[y] + 1); + float distance2 = metaballDistances[y]; + float value2 = 2048 / (distance2 + 1); float2 direction2 = metaballDirections[y]; float v = value1 + value2; @@ -51,7 +69,9 @@ kernel void drawMetaballs(texture2d outTexture[[texture(0) bendCloseCount += 1.0; } - sum += step(0.5, weightedValue + weightedLink); + float metaballValue = step(0.5, weightedValue + weightedLink); + sum += metaballValue; + } } @@ -67,5 +87,8 @@ kernel void drawMetaballs(texture2d outTexture[[texture(0) result += bendClose * 10; result = clamp(result, 0.0, 1.0); - outTexture.write(float4(result, result / 2, 0.0, 1), gid); + colorSum /= colorAccumulation; + colorSum *= result; + + outTexture.write(float4(colorSum.bgr, 1), gid); } From 5b5c5b24e279bf10ca2a585589188af6381e481a Mon Sep 17 00:00:00 2001 From: vinivendra Date: Tue, 16 Feb 2016 12:59:03 -0500 Subject: [PATCH 10/31] Corrected color transfer method (from cpu to gpu). --- PixelImage/MetalMetaballRenderer.swift | 6 +++--- PixelImage/ViewController.swift | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/PixelImage/MetalMetaballRenderer.swift b/PixelImage/MetalMetaballRenderer.swift index 63b9302..c38aad8 100644 --- a/PixelImage/MetalMetaballRenderer.swift +++ b/PixelImage/MetalMetaballRenderer.swift @@ -183,11 +183,11 @@ class MetalMetaballRenderer { array.append(Float(x)) array.append(Float(y)) - let color = UIColor.randomFlatColor() + let color = metaball.backgroundColor! let components = color.components - array.append(Float(components.blue)) - array.append(Float(components.green)) array.append(Float(components.red)) + array.append(Float(components.green)) + array.append(Float(components.blue)) } return array } diff --git a/PixelImage/ViewController.swift b/PixelImage/ViewController.swift index f2d9d2c..2d4cefb 100644 --- a/PixelImage/ViewController.swift +++ b/PixelImage/ViewController.swift @@ -114,7 +114,7 @@ class Metaball: UIView { size = CGSize(50) middle = position - backgroundColor = UIColor(red: 0.1306, green: 0.7522, blue: 0.0307, alpha: 0.3) + backgroundColor = UIColor(randomFlatColorOfShadeStyle: .Light) } required init?(coder aDecoder: NSCoder) { From f3707d992fcbaf97a5a5bb3b35e40c87bc7e387c Mon Sep 17 00:00:00 2001 From: vinivendra Date: Tue, 16 Feb 2016 13:27:43 -0500 Subject: [PATCH 11/31] Added missing cocoapods files to git. --- .gitignore | 6 +++++- PixelImage.xcworkspace/contents.xcworkspacedata | 10 ++++++++++ .../UserInterfaceState.xcuserstate | Bin 0 -> 16204 bytes .../xcdebugger/Breakpoints_v2.xcbkptlist | 5 +++++ Podfile.lock | 12 ++++++++++++ 5 files changed, 32 insertions(+), 1 deletion(-) create mode 100644 PixelImage.xcworkspace/contents.xcworkspacedata create mode 100644 PixelImage.xcworkspace/xcuserdata/vini.xcuserdatad/UserInterfaceState.xcuserstate create mode 100644 PixelImage.xcworkspace/xcuserdata/vini.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist create mode 100644 Podfile.lock diff --git a/.gitignore b/.gitignore index 82b4929..7fb1c24 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,7 @@ .DS* PixelImage.xcodeproj/xcuserdata/* -PixelImage.xcodeproj/project.xcworkspace/xcuserdata/* \ No newline at end of file +PixelImage.xcodeproj/project.xcworkspace/xcuserdata/* + +Pods/* + + diff --git a/PixelImage.xcworkspace/contents.xcworkspacedata b/PixelImage.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000..a584136 --- /dev/null +++ b/PixelImage.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,10 @@ + + + + + + + diff --git a/PixelImage.xcworkspace/xcuserdata/vini.xcuserdatad/UserInterfaceState.xcuserstate b/PixelImage.xcworkspace/xcuserdata/vini.xcuserdatad/UserInterfaceState.xcuserstate new file mode 100644 index 0000000000000000000000000000000000000000..9d3d4dac87da7033f67c666bb58679aacf99a9a8 GIT binary patch literal 16204 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≫y5mYYH?&G~+c>H8q-f8o#Dhvq00PY1b^)EY;ko zS*^KQvre-?bDL(frbE-Ec}#Oyb4+tCIV*WYa#ix|WN-4kWPfsN@|DR;l4WH|e5v zTAfaprZecS)veX7*KN>k)cu^wrixOQC!` z)SrR+dDakS2scC+u+6aB@V?=5 z!%4##BQeU23S+D>!KgB(8I4A>(PFe2vyBDDQN}68D&rMKm$A;+U~Dn^jq{BQjqS$8 z#^uH}#!bdu#)pi1jgK1l8J{%1Xne)^y77SVknwHfhsH0BKN){9o-_V#!Y0tKeP1{X7O>d>M={f0D>9f=4rZ=Uxr2Erb)0d=Q zmA*WEW%~8$8`3wWZ%OY;-;sV-`n~D*r|(aHGySLZ-^~$bg*n!oU{;&8=2WxZY%tr* zMdoqliRQ`XGIO1|**wo2FfTAKG9NO(Z~n@B(tO(dqxr1)H}i!IoDrT8m0`%p&M3&3 zp5e?`nz1gUGoveGYsR*WhcfnNJesjD~IWco` zW_e~+<`tQ)%(~3_%v&>eXTFyCPUa_>$1;y+p2++*^Hk>dnHQ{KR*6++jj|?KRaT8P z#hPlp+`7=Z)q0n8uk~5$%huPd2dsyzN39=NKem2m{oH!eddm89a2Y(L+#Ky(j8fjT*qj~ z7)Q0E-r;e~bu>BVJ61ZbciiY$?O5Yj@3_@*yW(*0mnm*J&s3m)H&uHOO7=s zJLkTfeL4Gcp2~SPcWiD&?)2Olxz)KZ + + diff --git a/Podfile.lock b/Podfile.lock new file mode 100644 index 0000000..786db39 --- /dev/null +++ b/Podfile.lock @@ -0,0 +1,12 @@ +PODS: + - ChameleonFramework/Default (2.1.0) + - ChameleonFramework/Swift (2.1.0): + - ChameleonFramework/Default + +DEPENDENCIES: + - ChameleonFramework/Swift + +SPEC CHECKSUMS: + ChameleonFramework: d21a3cc247abfe5e37609a283a8238b03575cf64 + +COCOAPODS: 0.39.0 From 6b476b7ecb07db4e8df8a97d31823cb55a288a96 Mon Sep 17 00:00:00 2001 From: vinivendra Date: Sat, 20 Feb 2016 01:27:09 -0500 Subject: [PATCH 12/31] Code style refactor. --- PixelImage.xcodeproj/project.pbxproj | 15 +++ .../UserInterfaceState.xcuserstate | Bin 16204 -> 27735 bytes PixelImage/AppDelegate.swift | 4 - PixelImage/Interpolation.swift | 2 - PixelImage/Matrix.swift | 2 +- PixelImage/MetaballDataSource.swift | 4 +- PixelImage/Metal.swift | 2 +- PixelImage/MetalMetaballRenderer.swift | 52 +++++----- PixelImage/SwiftSugar/Dictionary.swift | 2 +- .../SwiftSugar/Foundation/NSNumber.swift | 5 +- PixelImage/SwiftSugar/Numeric.swift | 19 +++- PixelImage/SwiftSugar/PowerOperator.swift | 2 +- PixelImage/SwiftSugar/Sequences/Memoize.swift | 97 +++++++++--------- PixelImage/SwiftSugar/SignOperator.swift | 17 ++- PixelImage/SwiftSugar/String.swift | 5 +- PixelImage/SwiftSugar/TestCommons.swift | 3 +- PixelImage/UIKit.swift | 70 +++++++++---- PixelImage/ViewController.swift | 15 +-- PixelImage/shaders.metal | 14 ++- 19 files changed, 199 insertions(+), 131 deletions(-) diff --git a/PixelImage.xcodeproj/project.pbxproj b/PixelImage.xcodeproj/project.pbxproj index 2fa1362..225d303 100644 --- a/PixelImage.xcodeproj/project.pbxproj +++ b/PixelImage.xcodeproj/project.pbxproj @@ -249,6 +249,7 @@ 242686821C63B72A00D62456 /* Resources */, C7A2DF67265A9D17DEFBD193 /* Embed Pods Frameworks */, FADC01F75BFAC01F0260D1C9 /* Copy Pods Resources */, + DD0396CE594E3EAC8D18CC6C /* Tailor */, ); buildRules = ( ); @@ -322,6 +323,20 @@ shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-PixelImage/Pods-PixelImage-frameworks.sh\"\n"; showEnvVarsInLog = 0; }; + DD0396CE594E3EAC8D18CC6C /* Tailor */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = Tailor; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "if hash tailor 2>/dev/null; then\n tailor --except=function-whitespace,leading-whitespace,constant-k-prefix --max-severity error\nelse\n echo \"warning: Please install Tailor from https://tailor.sh\"\nfi"; + }; EF55C7246917A184756D93D8 /* Check Pods Manifest.lock */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; diff --git a/PixelImage.xcworkspace/xcuserdata/vini.xcuserdatad/UserInterfaceState.xcuserstate b/PixelImage.xcworkspace/xcuserdata/vini.xcuserdatad/UserInterfaceState.xcuserstate index 9d3d4dac87da7033f67c666bb58679aacf99a9a8..c76e254a1a9c06a7b4a30e883847d85a9c23cf3e 100644 GIT binary patch literal 27735 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 U=qEZuu$1)4ztbxMi$*W`KNS`-oB#j- literal 16204 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≫y5mYYH?&G~+c>H8q-f8o#Dhvq00PY1b^)EY;ko zS*^KQvre-?bDL(frbE-Ec}#Oyb4+tCIV*WYa#ix|WN-4kWPfsN@|DR;l4WH|e5v zTAfaprZecS)veX7*KN>k)cu^wrixOQC!` z)SrR+dDakS2scC+u+6aB@V?=5 z!%4##BQeU23S+D>!KgB(8I4A>(PFe2vyBDDQN}68D&rMKm$A;+U~Dn^jq{BQjqS$8 z#^uH}#!bdu#)pi1jgK1l8J{%1Xne)^y77SVknwHfhsH0BKN){9o-_V#!Y0tKeP1{X7O>d>M={f0D>9f=4rZ=Uxr2Erb)0d=Q zmA*WEW%~8$8`3wWZ%OY;-;sV-`n~D*r|(aHGySLZ-^~$bg*n!oU{;&8=2WxZY%tr* zMdoqliRQ`XGIO1|**wo2FfTAKG9NO(Z~n@B(tO(dqxr1)H}i!IoDrT8m0`%p&M3&3 zp5e?`nz1gUGoveGYsR*WhcfnNJesjD~IWco` zW_e~+<`tQ)%(~3_%v&>eXTFyCPUa_>$1;y+p2++*^Hk>dnHQ{KR*6++jj|?KRaT8P z#hPlp+`7=Z)q0n8uk~5$%huPd2dsyzN39=NKem2m{oH!eddm89a2Y(L+#Ky(j8fjT*qj~ z7)Q0E-r;e~bu>BVJ61ZbciiY$?O5Yj@3_@*yW(*0mnm*J&s3m)H&uHOO7=s zJLkTfeL4Gcp2~SPcWiD&?)2Olxz)KZ Bool { // Override point for customization after application launch. return true @@ -40,7 +39,4 @@ class AppDelegate: UIResponder, UIApplicationDelegate { func applicationWillTerminate(application: UIApplication) { // Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:. } - - } - diff --git a/PixelImage/Interpolation.swift b/PixelImage/Interpolation.swift index 1cf6833..023c16c 100644 --- a/PixelImage/Interpolation.swift +++ b/PixelImage/Interpolation.swift @@ -1,4 +1,3 @@ - func interpolateCubeEaseIn(linear: T) -> T { return linear ^ 3 } @@ -14,4 +13,3 @@ func interpolateSquareEaseOut(linear: T) -> T { func interpolateSmooth(linear: T) -> T { return ((linear) * (linear) * (linear) * ((linear) * ((linear) * 6 - 15) + 10)) } - diff --git a/PixelImage/Matrix.swift b/PixelImage/Matrix.swift index 1d191c4..7397856 100644 --- a/PixelImage/Matrix.swift +++ b/PixelImage/Matrix.swift @@ -1,4 +1,3 @@ - import UIKit class Graph { @@ -27,6 +26,7 @@ class Graph { adjacencyMatrix.reset(i, j) adjacencyMatrix.reset(j, i) } + } struct Matrix: CustomStringConvertible { diff --git a/PixelImage/MetaballDataSource.swift b/PixelImage/MetaballDataSource.swift index 8f0c597..a79758c 100644 --- a/PixelImage/MetaballDataSource.swift +++ b/PixelImage/MetaballDataSource.swift @@ -1,4 +1,3 @@ - import Metal protocol MetaballDataSource { @@ -11,4 +10,5 @@ extension MetaballDataSource { return metaballGraph.vertices } } -} \ No newline at end of file + +} diff --git a/PixelImage/Metal.swift b/PixelImage/Metal.swift index 7d31d12..29acd1b 100644 --- a/PixelImage/Metal.swift +++ b/PixelImage/Metal.swift @@ -40,4 +40,4 @@ class MTLComputeContext { deinit { free(imageBuffer) } -} \ No newline at end of file +} diff --git a/PixelImage/MetalMetaballRenderer.swift b/PixelImage/MetalMetaballRenderer.swift index c38aad8..2900e61 100644 --- a/PixelImage/MetalMetaballRenderer.swift +++ b/PixelImage/MetalMetaballRenderer.swift @@ -39,8 +39,7 @@ class MetalMetaballRenderer { let width = Int(frame.width) let height = Int(frame.height) - let textureDescriptor = - MTLTextureDescriptor.texture2DDescriptorWithPixelFormat(.BGRA8Unorm, width: width, height: height, mipmapped: false) + let textureDescriptor = MTLTextureDescriptor.texture2DDescriptorWithPixelFormat(.BGRA8Unorm, width: width, height: height, mipmapped: false) let texture1 = context.device.newTextureWithDescriptor(textureDescriptor) activeComputeContext = MTLComputeContext(size: targetView.size, texture: texture1) @@ -55,7 +54,8 @@ class MetalMetaballRenderer { state = .Ending - dispatch_async(dispatch_get_global_queue(Int(QOS_CLASS_USER_INTERACTIVE.rawValue), 0)) { () -> Void in + let userInteractiveQueue = dispatch_get_global_queue(Int(QOS_CLASS_USER_INTERACTIVE.rawValue), 0) + dispatch_async(userInteractiveQueue) { () -> Void in let computeContext = self.activeComputeContext swap(&self.activeComputeContext, &self.idleComputeContext) @@ -74,10 +74,10 @@ class MetalMetaballRenderer { dispatch_semaphore_signal(self.semaphore) - dispatch_async(dispatch_get_main_queue(), { () -> Void in + dispatch_async(dispatch_get_main_queue()) { () -> Void in // Send image to view self.targetView.image = uiimage - }) + } } } @@ -94,8 +94,7 @@ class MetalMetaballRenderer { // Configure info for computing let threadGroupCounts = MTLSizeMake(8, 8, 1) - let threadGroups = MTLSizeMake(width / threadGroupCounts.width, - height / threadGroupCounts.height, 1) + let threadGroups = MTLSizeMake(width / threadGroupCounts.width, height / threadGroupCounts.height, 1) // Send commands to metal and render let commandBuffer = context.commandQueue.commandBuffer() @@ -113,7 +112,6 @@ class MetalMetaballRenderer { commandBuffer.commit() commandBuffer.waitUntilCompleted() - } catch _ { print("Error!") } @@ -123,8 +121,7 @@ class MetalMetaballRenderer { let texture = computeContext.texture // Get image info - let imageSize = CGSizeMake(CGFloat(texture.width), - CGFloat(texture.height)) + let imageSize = CGSizeMake(CGFloat(texture.width), CGFloat(texture.height)) let width = Int(imageSize.width) let height = Int(imageSize.height) let imageByteCount = width * height * 4 @@ -137,27 +134,20 @@ class MetalMetaballRenderer { } // Transfer texture info into image buffer - texture.getBytes(computeContext.imageBuffer, bytesPerRow: bytesPerRow, - fromRegion: region, mipmapLevel: 0) + texture.getBytes(computeContext.imageBuffer, bytesPerRow: bytesPerRow, fromRegion: region, mipmapLevel: 0) // Get info for UIImage - let provider = CGDataProviderCreateWithData(nil, computeContext.imageBuffer, - imageByteCount, nil) + let provider = CGDataProviderCreateWithData(nil, computeContext.imageBuffer, imageByteCount, nil) let bitsPerComponent = 8 let bitsperPixel = 32 let colorSpaceRef = CGColorSpaceCreateDeviceRGB() - let bitmapInfo = CGBitmapInfo(rawValue: - CGImageAlphaInfo.PremultipliedLast.rawValue | - CGBitmapInfo.ByteOrder32Big.rawValue) + let bitmapInfoRaw = CGImageAlphaInfo.PremultipliedLast.rawValue | CGBitmapInfo.ByteOrder32Big.rawValue + let bitmapInfo = CGBitmapInfo(rawValue: bitmapInfoRaw) let renderingIntent = CGColorRenderingIntent.RenderingIntentDefault // Create UIImage from image buffer - let imageRef = CGImageCreate(width, height, - bitsPerComponent, bitsperPixel, bytesPerRow, - colorSpaceRef, bitmapInfo, provider, - nil, false, renderingIntent) - let image = UIImage(CGImage: imageRef!, scale: 0.0, - orientation: UIImageOrientation.Up) + let imageRef = CGImageCreate(width, height, bitsPerComponent, bitsperPixel, bytesPerRow, colorSpaceRef, bitmapInfo, provider, nil, false, renderingIntent) + let image = UIImage(CGImage: imageRef!, scale: 0.0, orientation: .Up) return image } @@ -165,7 +155,9 @@ class MetalMetaballRenderer { func metaballEdgesBuffer() -> MTLBuffer { let floats = dataSource.metaballGraph.adjacencyMatrix.buffer - let buffer = context.device.newBufferWithBytes(floats, length: floats.count * sizeof(Float), options: .StorageModeShared) + let bufferLength = floats.count * sizeof(Float) + let device = context.device + let buffer = device.newBufferWithBytes(floats, length: bufferLength, options: .StorageModeShared) return buffer } @@ -175,7 +167,11 @@ class MetalMetaballRenderer { // Exclude metaballs far from the view's bounds let border: CGFloat = 100 let metaballs = self.dataSource.metaballs - var floats: [Float] = metaballs.reduce([Float](count: 5, repeatedValue: 0)) { (var array, metaball) -> [Float] in + + var floats = [Float](count: 5, repeatedValue: 0) + floats = metaballs.reduce(floats) { + (var array, metaball) -> [Float] in + let x = CGFloat(metaball.midX) let y = CGFloat(metaball.midY) if -border < x ≤ targetView.width + border && @@ -196,8 +192,10 @@ class MetalMetaballRenderer { floats[0] = Float(floats.count) / 5 // Create buffer - let buffer = context.device.newBufferWithBytes(floats, length: floats.count * sizeof(Float), options: .StorageModeShared) - + let bufferLength = floats.count * sizeof(Float) + let device = context.device + let buffer = device.newBufferWithBytes(floats, length: bufferLength, options: .StorageModeShared) + return buffer } } diff --git a/PixelImage/SwiftSugar/Dictionary.swift b/PixelImage/SwiftSugar/Dictionary.swift index 9c86d05..9012a4f 100644 --- a/PixelImage/SwiftSugar/Dictionary.swift +++ b/PixelImage/SwiftSugar/Dictionary.swift @@ -1,7 +1,7 @@ extension Dictionary { subscript(keys: [Key]) -> [Value] { get { - return keys.unwrappedMap({ self[$0] }) + return keys.unwrappedMap { self[$0] } } set (values) { for (key, value) in zip(keys, values) { diff --git a/PixelImage/SwiftSugar/Foundation/NSNumber.swift b/PixelImage/SwiftSugar/Foundation/NSNumber.swift index cb96e9c..6a1e6cf 100644 --- a/PixelImage/SwiftSugar/Foundation/NSNumber.swift +++ b/PixelImage/SwiftSugar/Foundation/NSNumber.swift @@ -2,10 +2,13 @@ import Foundation extension NSNumber: DoubleValuable { var toDouble: Double { - get { return self.doubleValue } + get { + return self.doubleValue + } } static func fromDouble(double: Double) -> Self { return self.init(double: double) } + } diff --git a/PixelImage/SwiftSugar/Numeric.swift b/PixelImage/SwiftSugar/Numeric.swift index 8292206..06ef5bf 100644 --- a/PixelImage/SwiftSugar/Numeric.swift +++ b/PixelImage/SwiftSugar/Numeric.swift @@ -20,43 +20,54 @@ protocol Numeric: DoubleValuable, Incrementable, Comparable, postfix func ++ (inout _: Self) -> Self } -protocol FastNumeric: Numeric { } +protocol FastNumeric: Numeric {} extension Double: FastNumeric { var toDouble: Double { - get { return self } + get { + return self + } } static func fromDouble(double: Double) -> Double { return double } + } extension Float: FastNumeric { var toDouble: Double { - get { return Double(self) } + get { + return Double(self) + } } static func fromDouble(double: Double) -> Float { return Float(double) } + } extension Int: FastNumeric { var toDouble: Double { - get { return Double(self) } + get { + return Double(self) + } } static func fromDouble(double: Double) -> Int { return Int(double) } + } // extension Int { + func times(@noescape block: () throws -> ()) rethrows { for _ in 1...self { try block() } } + } diff --git a/PixelImage/SwiftSugar/PowerOperator.swift b/PixelImage/SwiftSugar/PowerOperator.swift index 9a838cc..0da0df6 100644 --- a/PixelImage/SwiftSugar/PowerOperator.swift +++ b/PixelImage/SwiftSugar/PowerOperator.swift @@ -2,7 +2,7 @@ import Darwin infix operator ^ { associativity right precedence 131 } -func ^(left: T, right: T) -> T { +func ^ (left: T, right: T) -> T { return T.fromDouble(pow(left.toDouble, right.toDouble)) } diff --git a/PixelImage/SwiftSugar/Sequences/Memoize.swift b/PixelImage/SwiftSugar/Sequences/Memoize.swift index 2e96bb3..eb6a8f6 100644 --- a/PixelImage/SwiftSugar/Sequences/Memoize.swift +++ b/PixelImage/SwiftSugar/Sequences/Memoize.swift @@ -7,62 +7,66 @@ protocol MemoizedSequence: LazySequenceType { memoizedFunction: (IndexType -> ReturnType)) } +struct HashMemoizedSequence: + MemoizedSequence { -struct HashMemoizedSequence : -MemoizedSequence { + let memoizedFunction: (IndexType -> ReturnType) + let increment: ((inout IndexType) -> Void) + let firstIndex: IndexType - let memoizedFunction: (IndexType -> ReturnType) - let increment: ((inout IndexType) -> Void) - let firstIndex: IndexType + var index: IndexType - var index: IndexType + init(first: IndexType, + incrementer: ((inout IndexType) -> Void), + memoizedFunction: (IndexType -> ReturnType)) { - init(first: IndexType, - incrementer: ((inout IndexType) -> Void), - memoizedFunction: (IndexType -> ReturnType)) { + self.firstIndex = first - self.firstIndex = first + self.index = first + self.increment = incrementer + self.memoizedFunction = memoizedFunction + } - self.index = first - self.increment = incrementer - self.memoizedFunction = memoizedFunction - } + init(first: IndexType, + incrementer: ((inout IndexType) -> Void), + closure: ((IndexType -> ReturnType, IndexType) -> ReturnType)) { + let memoizedFunction = memoize(closure) - init(first: IndexType, - incrementer: ((inout IndexType) -> Void), - closure: ((IndexType -> ReturnType, IndexType) -> ReturnType)) { - let memoizedFunction = memoize(closure) + self.init(first: first, incrementer: incrementer, + memoizedFunction: memoizedFunction) + } - self.init(first: first, incrementer: incrementer, - memoizedFunction: memoizedFunction) - } + init(first: IndexType, + incrementer: ((inout IndexType) -> Void), + function: (IndexType -> ReturnType)) { - init(first: IndexType, - incrementer: ((inout IndexType) -> Void), - function: (IndexType -> ReturnType)) { + let memoizedFunction = memoize(function) - let memoizedFunction = memoize(function) - - self.init(first: first, incrementer: incrementer, - memoizedFunction: memoizedFunction) - } + self.init(first: first, incrementer: incrementer, + memoizedFunction: memoizedFunction) + } } extension HashMemoizedSequence: GeneratorType { + mutating func next() -> ReturnType? { let result = memoizedFunction(index) increment(&index) return result } + } extension HashMemoizedSequence: LazySequenceType { + func generate() -> HashMemoizedSequence { return self } + } extension HashMemoizedSequence where ReturnType: Comparable { + @warn_unused_result func contains(element: ReturnType) -> Bool { var index = firstIndex @@ -79,6 +83,7 @@ extension HashMemoizedSequence where ReturnType: Comparable { increment(&index) } } + } extension HashMemoizedSequence where IndexType: Incrementable { @@ -104,29 +109,29 @@ extension HashMemoizedSequence where IndexType: Incrementable { } extension HashMemoizedSequence where IndexType: Incrementable, - IndexType: IntegerLiteralConvertible { +IndexType: IntegerLiteralConvertible { init(_ closure: ((IndexType -> ReturnType, IndexType) -> ReturnType)) { - self.firstIndex = 1 - self.index = 1 - self.increment = { (inout index: IndexType) in - index++ - } - self.memoizedFunction = memoize(closure) + self.firstIndex = 1 + self.index = 1 + self.increment = { (inout index: IndexType) in + index++ + } + self.memoizedFunction = memoize(closure) } init(_ function: (IndexType -> ReturnType)) { - self.firstIndex = 1 - self.index = 1 - self.increment = { (inout index: IndexType) in - index++ - } - self.memoizedFunction = memoize(function) + self.firstIndex = 1 + self.index = 1 + self.increment = { (inout index: IndexType) in + index++ + } + self.memoizedFunction = memoize(function) } } -func memoize (closure: ((H -> R, H) -> R) ) -> (H -> R) { +func memoize(closure: ((H -> R, H) -> R)) -> (H -> R) { - var table = [H : R]() + var table = [H: R]() var auxiliaryFunction: (H -> R)! auxiliaryFunction = { index in @@ -143,9 +148,9 @@ func memoize (closure: ((H -> R, H) -> R) ) -> (H -> R) { return auxiliaryFunction } -func memoize (function: (H -> R) ) -> (H -> R) { +func memoize(function: (H -> R)) -> (H -> R) { - var table = [H : R]() + var table = [H: R]() let result: (H -> R) = { index in if let result = table[index] { diff --git a/PixelImage/SwiftSugar/SignOperator.swift b/PixelImage/SwiftSugar/SignOperator.swift index 2af7ce3..769dade 100644 --- a/PixelImage/SwiftSugar/SignOperator.swift +++ b/PixelImage/SwiftSugar/SignOperator.swift @@ -1,13 +1,12 @@ - prefix operator ± { } -prefix func ± (number: T) -> T { +prefix func ± (number: T) -> T { - if number > 0 { - return 1 - } else if number == 0 { - return 0 - } else { - return -1 - } + if number > 0 { + return 1 + } else if number == 0 { + return 0 + } else { + return -1 + } } diff --git a/PixelImage/SwiftSugar/String.swift b/PixelImage/SwiftSugar/String.swift index d84c8d8..50d4bba 100644 --- a/PixelImage/SwiftSugar/String.swift +++ b/PixelImage/SwiftSugar/String.swift @@ -1,9 +1,12 @@ extension String: DoubleValuable { var toDouble: Double { - get { return Double(self) ?? Double(0) } + get { + return Double(self) ?? Double(0) + } } static func fromDouble(double: Double) -> String { return "\(double)" } + } diff --git a/PixelImage/SwiftSugar/TestCommons.swift b/PixelImage/SwiftSugar/TestCommons.swift index 36da4d0..902bbbc 100644 --- a/PixelImage/SwiftSugar/TestCommons.swift +++ b/PixelImage/SwiftSugar/TestCommons.swift @@ -8,7 +8,7 @@ import Darwin -class Random { +class Random { let max: Double = Double(INT32_MAX) let exponent: Double = 7 @@ -92,4 +92,5 @@ class Random { let result = Double((2 * rawRandom) - 1) return T.fromDouble(result) } + } diff --git a/PixelImage/UIKit.swift b/PixelImage/UIKit.swift index 299198a..d6b2cd5 100644 --- a/PixelImage/UIKit.swift +++ b/PixelImage/UIKit.swift @@ -31,6 +31,7 @@ extension CGVector { dx = dx / norm dy = dy / norm } + } extension CGFloat: DoubleValuable { @@ -42,19 +43,28 @@ extension CGFloat: DoubleValuable { static func fromDouble(double: Double) -> CGFloat { return CGFloat(double) } + } extension CGFloat: Numeric {} extension CGRect { var x: CGFloat { - get { return origin.x } - set { origin.x = newValue } + get { + return origin.x + } + set { + origin.x = newValue + } } var y: CGFloat { - get { return origin.y } - set { origin.y = newValue } + get { + return origin.y + } + set { + origin.y = newValue + } } } @@ -66,41 +76,65 @@ extension CGSize { extension UIView { var origin: CGPoint { - get { return frame.origin } - set { frame.origin = newValue } + get { + return frame.origin + } + set { + frame.origin = newValue + } } var size: CGSize { - get { return frame.size } - set { frame.size = newValue } + get { + return frame.size + } + set { + frame.size = newValue + } } var width: CGFloat { - get { return frame.width } - set { frame.size = CGSize(width: newValue, height: height) } + 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) } + 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) + 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) + 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) } + 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) } + get { + return middle.y + } + set { + middle = CGPoint(x: midX, y: newValue) + } } } diff --git a/PixelImage/ViewController.swift b/PixelImage/ViewController.swift index 2d4cefb..1d5a5e1 100644 --- a/PixelImage/ViewController.swift +++ b/PixelImage/ViewController.swift @@ -1,4 +1,3 @@ - import UIKit class ViewController: UIViewController, MetaballDataSource { @@ -33,7 +32,7 @@ class ViewController: UIViewController, MetaballDataSource { metaballGraph.addEdge(2, 3) let border = 20 - let metaballViewFrame = CGRect(x: border/2, y: border/2, width: width, height: height) + let metaballViewFrame = CGRect(x: border / 2, y: border / 2, width: width, height: height) renderer = MetalMetaballRenderer(dataSource: self, frame: metaballViewFrame) metaballView = renderer.targetView @@ -61,11 +60,12 @@ class ViewController: UIViewController, MetaballDataSource { func animateEdge(i: Int, _ j: Int, fadeIn: Bool) { let parameters = EdgeAnimationParameters(startDate: NSDate(), duration: edgeAnimationDuration, fadeIn: fadeIn, i: i, j: j) - NSTimer.scheduledTimerWithTimeInterval(1.0/60.0, target: self, selector: "animateEdgeWithTimer:", userInfo: parameters, repeats: true) + NSTimer.scheduledTimerWithTimeInterval(1.0 / 60.0, target: self, selector: "animateEdgeWithTimer:", userInfo: parameters, repeats: true) } func animateEdge(withTimer timer: NSTimer) { - let (animationStart, duration, fadeIn, i, j) = (timer.userInfo as! EdgeAnimationParameters).unpack() + guard let userInfo = timer.userInfo as? EdgeAnimationParameters else { preconditionFailure() } + let (animationStart, duration, fadeIn, i, j) = (userInfo).unpack() let now = NSDate() var timeElapsed = Float(now.timeIntervalSinceDate(animationStart)) @@ -89,9 +89,9 @@ class ViewController: UIViewController, MetaballDataSource { if selectedMetaball == nil { for metaball in metaballs where - abs(metaball.midX - location.x) < 50 && abs(metaball.midY - location.y) < 50 { - selectedMetaball = metaball - break + abs(metaball.midX - location.x) < 50 && abs(metaball.midY - location.y) < 50 { + selectedMetaball = metaball + break } } @@ -105,6 +105,7 @@ class ViewController: UIViewController, MetaballDataSource { selectedMetaball = nil } } + } class Metaball: UIView { diff --git a/PixelImage/shaders.metal b/PixelImage/shaders.metal index 3241a2b..54e9086 100644 --- a/PixelImage/shaders.metal +++ b/PixelImage/shaders.metal @@ -11,7 +11,11 @@ struct metaballData { float b; }; -kernel void drawMetaballs(texture2d outTexture[[texture(0)]], constant float *edgesBuffer[[buffer(1)]], constant metaballData *metaballBuffer[[buffer(0)]], uint2 gid[[thread_position_in_grid]]) { +kernel void + drawMetaballs(texture2d outTexture[[texture(0)]], + constant float *edgesBuffer[[buffer(1)]], + constant metaballData *metaballBuffer[[buffer(0)]], + uint2 gid[[thread_position_in_grid]]) { char numberOfMetaballs = metaballBuffer[0].x - 1; @@ -28,11 +32,12 @@ kernel void drawMetaballs(texture2d outTexture[[texture(0) for (x = 1; x <= numberOfMetaballs; x += 1) { metaballData metaball = metaballBuffer[x]; float2 metaballPosition = float2(metaball.x, metaball.y); - float2 vector = float2(metaballPosition.x - gid.x, metaballPosition.y - gid.y); + float2 vector + = float2(metaballPosition.x - gid.x, metaballPosition.y - gid.y); float squaredDistance = dot(vector, vector); float realDistance = sqrt(squaredDistance); metaballDistances[x - 1] = squaredDistance; - metaballDirections[x - 1] = vector/realDistance; + metaballDirections[x - 1] = vector / realDistance; metaballColors[x - 1] = float3(metaball.r, metaball.g, metaball.b); } @@ -71,14 +76,13 @@ kernel void drawMetaballs(texture2d outTexture[[texture(0) float metaballValue = step(0.5, weightedValue + weightedLink); sum += metaballValue; - } } bendClose = bendClose / bendCloseCount; if (bendClose != 0.0) { - bendClose = (bendClose - 0.4) * (1/(0.6-0.4)); + bendClose = (bendClose - 0.4) * (1 / (0.6 - 0.4)); } else { bendClose = 0.0; } From 7a59a0334530eec28ad52f710d684122ddbfb13f Mon Sep 17 00:00:00 2001 From: vinivendra Date: Sat, 20 Feb 2016 02:20:13 -0500 Subject: [PATCH 13/31] Improved coloring in the links (now not affected by close metaballs). --- .../UserInterfaceState.xcuserstate | Bin 27735 -> 27521 bytes PixelImage/shaders.metal | 21 +++++++++++++++++- 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/PixelImage.xcworkspace/xcuserdata/vini.xcuserdatad/UserInterfaceState.xcuserstate b/PixelImage.xcworkspace/xcuserdata/vini.xcuserdatad/UserInterfaceState.xcuserstate index c76e254a1a9c06a7b4a30e883847d85a9c23cf3e..da0e2786d5b7d3c15670c746d6b697223204f2f2 100644 GIT binary patch delta 11178 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 delta 11346 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 diff --git a/PixelImage/shaders.metal b/PixelImage/shaders.metal index 54e9086..dcc9262 100644 --- a/PixelImage/shaders.metal +++ b/PixelImage/shaders.metal @@ -22,6 +22,8 @@ kernel void float sum = 0; float3 colorSum = float3(0, 0, 0); float colorAccumulation = 0; + float3 colorSumLink = float3(0, 0, 0); + float greatestLinkWeight = 0.0; char x, y; @@ -43,6 +45,7 @@ kernel void float bendClose = 0.0; float bendCloseCount = 0.0; + float red = 0.0; for (x = 0; x < numberOfMetaballs; x += 1) { float distance1 = metaballDistances[x]; @@ -74,7 +77,18 @@ kernel void bendCloseCount += 1.0; } + red += step(0.4, weightedValue); + + if (weightedLink > greatestLinkWeight) { + greatestLinkWeight = weightedLink; + colorSumLink = float3(0.0, 0.0, 0.0); + colorSumLink += metaballColors[x] / distance1; + colorSumLink += metaballColors[y] / distance2; + colorSumLink /= (1 / distance1) + (1 / distance2); + } + float metaballValue = step(0.5, weightedValue + weightedLink); + sum += metaballValue; } } @@ -91,7 +105,12 @@ kernel void result += bendClose * 10; result = clamp(result, 0.0, 1.0); - colorSum /= colorAccumulation; + colorSum = colorSum / colorAccumulation; + + if (result > 0.0 && red < 1.0) { + colorSum = colorSumLink; + } + colorSum *= result; outTexture.write(float4(colorSum.bgr, 1), gid); From a9b95fb99a3b518e4ac2b21063ef7c7b89dd6362 Mon Sep 17 00:00:00 2001 From: vinivendra Date: Sat, 20 Feb 2016 14:13:28 -0500 Subject: [PATCH 14/31] Fixed artifacts in link coloring. --- .../UserInterfaceState.xcuserstate | Bin 27521 -> 28146 bytes PixelImage/shaders.metal | 13 ++++++------- 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/PixelImage.xcworkspace/xcuserdata/vini.xcuserdatad/UserInterfaceState.xcuserstate b/PixelImage.xcworkspace/xcuserdata/vini.xcuserdatad/UserInterfaceState.xcuserstate index da0e2786d5b7d3c15670c746d6b697223204f2f2..d00927caa3665e897138769ae6ba231538ba28c3 100644 GIT binary patch delta 13408 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 E537}9-T(jq delta 13173 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 diff --git a/PixelImage/shaders.metal b/PixelImage/shaders.metal index dcc9262..a616253 100644 --- a/PixelImage/shaders.metal +++ b/PixelImage/shaders.metal @@ -45,7 +45,7 @@ kernel void float bendClose = 0.0; float bendCloseCount = 0.0; - float red = 0.0; + float ball = 0.0; for (x = 0; x < numberOfMetaballs; x += 1) { float distance1 = metaballDistances[x]; @@ -77,18 +77,17 @@ kernel void bendCloseCount += 1.0; } - red += step(0.4, weightedValue); + ball += step(0.4, weightedValue); - if (weightedLink > greatestLinkWeight) { - greatestLinkWeight = weightedLink; + float metaballValue = step(0.5, weightedValue + weightedLink); + + if (metaballValue > 0.0) { colorSumLink = float3(0.0, 0.0, 0.0); colorSumLink += metaballColors[x] / distance1; colorSumLink += metaballColors[y] / distance2; colorSumLink /= (1 / distance1) + (1 / distance2); } - float metaballValue = step(0.5, weightedValue + weightedLink); - sum += metaballValue; } } @@ -107,7 +106,7 @@ kernel void colorSum = colorSum / colorAccumulation; - if (result > 0.0 && red < 1.0) { + if (result > 0.0 && ball < 1.0) { colorSum = colorSumLink; } From 27c0833ef4325b51a704e679a462869826cac76f Mon Sep 17 00:00:00 2001 From: vinivendra Date: Sat, 20 Feb 2016 18:42:04 -0500 Subject: [PATCH 15/31] Removed useless variable. --- .../UserInterfaceState.xcuserstate | Bin 28146 -> 28146 bytes PixelImage/shaders.metal | 1 - 2 files changed, 1 deletion(-) diff --git a/PixelImage.xcworkspace/xcuserdata/vini.xcuserdatad/UserInterfaceState.xcuserstate b/PixelImage.xcworkspace/xcuserdata/vini.xcuserdatad/UserInterfaceState.xcuserstate index d00927caa3665e897138769ae6ba231538ba28c3..a949999632e1775aacf826c49772ae25062c2632 100644 GIT binary patch delta 92 zcmex#oAJ|a#tqX1Br6RyJcZI?s*MbdO?4Cujg2g7Bdd)p&CNHj7hpF6Nqc;~j7|Ey dlcN}0rNMIn?c~W~kt!@^Rwf3U?IO2`005dO9dG~u delta 92 zcmex#oAJ|a#tqX1Br867l=}I`R2vzZ8|o++8XH;EMphden_F&PFTidDmKLnWCVk$? cQH-tP Date: Sat, 20 Feb 2016 18:45:23 -0500 Subject: [PATCH 16/31] Updating project files on repo. --- .gitignore | 1 + .tailor.yml | 14 ++++++++++++++ .../UserInterfaceState.xcuserstate | Bin 28146 -> 0 bytes 3 files changed, 15 insertions(+) create mode 100644 .tailor.yml delete mode 100644 PixelImage.xcworkspace/xcuserdata/vini.xcuserdatad/UserInterfaceState.xcuserstate diff --git a/.gitignore b/.gitignore index 7fb1c24..afe904d 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,7 @@ .DS* PixelImage.xcodeproj/xcuserdata/* PixelImage.xcodeproj/project.xcworkspace/xcuserdata/* +PixelImage.xcworkspace/xcuserdata/* Pods/* diff --git a/.tailor.yml b/.tailor.yml new file mode 100644 index 0000000..891a985 --- /dev/null +++ b/.tailor.yml @@ -0,0 +1,14 @@ + + +# Tailor will check for violations to all rules except for the following ones +except: + - constant-k-prefix + - function-whitespace + - leading-whitespace + +# include: +# - Source # Inspect all Swift files under "Source/" +exclude: + - Pods # Ignore Swift files under "Pods/" + - PixelImage/SwiftSugar/SwiftSequences + diff --git a/PixelImage.xcworkspace/xcuserdata/vini.xcuserdatad/UserInterfaceState.xcuserstate b/PixelImage.xcworkspace/xcuserdata/vini.xcuserdatad/UserInterfaceState.xcuserstate deleted file mode 100644 index a949999632e1775aacf826c49772ae25062c2632..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 28146 zcmdsf2UwKH^YHGz4ME^&0!LL*X~$Kn4Y;G+anu8)>E(bEPk|$Mpb}!-*OsEuXf%nY z2^ftg(R6LvCMX%q*+JX|uOf#@Op-SnJ!IRWTMv{d607TprVAZ}kUo z@w%;k$Obsz0RliE2m)h3EQkZ~AOR!-8At+hpa2?>0mcFoC8fbxy@LK4APS^(Lz+2!FxD?(Bm%-)m zHn;+=g!jSw;X2p_yI~Jp4P>@0t zMbQ*Pu@pynQ9hI(6-WhB5!6U3fl8!gR5F!9rBV~AOe%}gQwFMlGE#+rsQJ_aYB_ZqwSrnn-9_C)-AiqvHd7B#4^xj&Pf$-%&rmN> zFH^5juTrm3?@{klA5dRVUs5Njuc%YhY3gh08|n;omO4j$PyI~&Mnf9WEbU4A(Eju= zI+zZlhtnhIk+h6XqUE%LR?;duh0dTS(wX!e`g(dU&C~Pg#q^Ez5_&0p8@+;FP2WMU zrSGQir`OTz=?Cad^k#Ysy_J4~ev{nD3b%m>*e+rCEk$S${Tw4P=AZ;p_-@BpbsjSS71s)$Bwzlg(nY*&?=> zEn!R9DeP3%%wEGbvCV7?YiB#z>)E;N&Fn4g5_TzjE4z$c&fdn}!LDWRX1myKb_2VG zeS+P_?qFYLUuWN7KV)5qp?D!X9Ohv1i$H?6>TB_B-}__6PPC_E+|I zj^S92oI5&bD$;EJ^xY67gE|ybqYEHu?bK|)@E}zqL2CjfJa)sPv zu9BMZ&18?Ai5vIC<1o&Z^hb*o%OJY=M$r^2%PAStVQWP>xT9#IprqZfpDO#;s zm6D}QOV^~BC4qWf&Sbk|rnA*jZ`IlB+ncQ|ZEnoNKqMHw5d?z}5DKIq41|LS%wQIC z*aHv2p4e+6hyu}II3Xbd#DGzFDE7tzF5+cC2wKUjgms{$xEe^eNlFezW zYqC!5Ysht2nyqHZaPpwo(O`908~O+$?`Z8UZ4P@=6WI*RlEi`3ieUTOD_U&Vwp;ZL zWB|5lHmk!di6Y&z>f6Ycae0VlNoXGx<#u~h-2nQ`k_iKm4Wh)Hot&akq^D)evXq(> znMRwOF3ZkMRmv18y0lcSGB-CRN8v#R-`S~Dq$NgcQs*W{cPcdsMPhV%a@yRvyIm8j z1nMrrP%rGe8zh4ikP6bO#W`&u9H|t)TAgI-vm6dfM>pw^URh)+c5R14+>0VO=mt&qpc&9vowml7 zK@e&MFgj~pdt;+8_ij=}WHzf)5I6!O*Vbe$v9wLE5q}yjb=JO>HWkg{iq1d!)C>oiMyQ=5w)A~U0VAC(AToo!^5lv!IHRwwylX(M(PSzdl__6?jC zfhPBJ0n%Q80T1RA#k2q{1dG68v&7$Fx3`J&E)20q7?vcs(b{5bcZviHtJFHDO>7Bi zb=aCMj*dSx;S3CLEFQlP+yrhW2yOvOz*2%_0ay-h11rGFN@D*tH8`v-lUgn0Z(B{h z0Jo*ByrY$1jBe=FUs*0Y(L%J$;33x79X9uH38oA@P6Bb91bhfqfz<@x9pFxI7gz(< zg1do%h>%+!8twHi7ESF}E`kWTdNf;XE&Y!LjndL!ol`u`{ce97PQeK{9mnHjvqWB5 zPneWMCQ1}}LaM&a+N`q+;F9{Zm8s3qUfp&Oi#)(*g)!26rcmQl5 zly3wNf=$)^xGG#!U>Q!r@+r>g7NS<2NzK+aOOs@XsB9hqTg;MhLO?&W2sT?wqwCEQ zi_Osuwu1Ekp^qE?W8iVH2`jM*%d1OlbF5AJW=o@0g52%fh|1Z7HAKk_Y~KTR5Za#u z&x04h!W#GNRg@X4+HB2MqEwn&aVk#3z$~enM%HbHTrRJ0lA*|F*;;IJH;bKeL8k33 zmZniEMTx`iIxWauqm>DN>nu%8q)#7N@<9v{+3^Z^l`I_Hq;fY<_ndcw*90zHu1S3J z4e+K}5_{=P_H%Wx2zGcA2tz;2dJH1=U zUhtt=GKLVBCwKkE%s+EvD z_<5eyPGr&1A}MmPj|;$mEatMD~sky~&bZm1P@Hl3x-A}GTektP?l#16TVG!m6RNdFYMEU{4c z8n{ebn7b`!4pF?q`Mh80)VSNo3N}l8>+Q`+me$rLtEhN-2MU9r6!@=)!(cEBfuXn* zmthkwUk}4zIEaFgxB^ciX5?gH7D7tIjlvDL+^rRed3#AyuT`m?ZgE%$`yFMLmPYH8 zd|QJxtEoxvbhZmKHR_U=Ouch8_^pvyJ35rHdjDy)ohqd|IWbzPR;A6Y>QtqtrY1%! zi19{@H5d!yYKu&LlF-o&V?p|WjRYpZL~$d*W?U`meb?MWV)pew6;wkFuEDi<$|YJ{ zRN8LEIY6=YK7tcnx^(KF=~B1We5b)-nO*2sfw96COg0l$!?U3sg z%y!t?tP`S%-BvDksj2Dh8>@($G9@vZ?6X82x3opOUW|^nHZ)qD+3nM&SsgVsb*|4? z<=~!f%`1pxbiDi5CGUvP+ifjvs^~^r13^2Tm>3P_R=d+CEHSgK#oXwyHB6ZjXO@ia z+cXPoZAqepyG0|(WN&xWTeW0Y-2)B43l@Ndun;^ioSW(_PHPSMbXc3nHa^Qr6lXn7 z6{oQTmR1y*h`@Hk5|A!FGr@AA@QX}^?PTvDYs$UaJ9?l=m}PMqCy^x#C*x_@m)L5Z zoy4?P2v&YdI{B8CrkXp~E$}sP3QOQDpEs*a@$PbKwne9>lm6 zUyB{siQ8~Hp0yFqhYR3BxCkzWH^Q6nY&-{Jd<$NHm*A!U? zgD(m8AinwUw*1VJ|G)HO%3sruT6;4&J=uuCEUM4}`Vzk6(v3HZ8tz?TZNGS~eTD$>o#0`~3 z>$KkUzHoZ&J7@NtQ>#S_PdFJ@mDw7nyE?n|-RJOxfaVB13Xj3#cs0HQ--+*9Pn;MA zc#@pGhZ1>OBb>L*lCVi+h=TSe{wC{e;SB36v&^1kX>u6?(!s60W`L>Q?m9*eYIMDB zcaW2`v)*BAB|Z;gNDLd)#RXlkxhL@GgP{Gt$9H$ZAMrf`ZGPmK(KmA8 z*yj{q{1sm8h8N&(_+H$NALt!40*C_s-3TIt@5A?ZBN{Py9qz)FQwW%T<4ZVj9#~{Zzn@B zXteP5DEv?t8iODH6E2|y!X=c5WcU&MXg`+}NIhso8kCH;;H_jtM9f4vADOvy&LA#i zpz(v=nSdtZ$MEBV!uBO^4Rm^p%&c;~+Q&g1%5_gG%EM3M2GRjBrou2V_ZXK>}n%$b>kde)(7U~~_vM-9k|pT#@y zb3LdLO-DBTJl>7>2rP^qq!9X?Ye{`>1u{o&8@R94EQz?nYoZzLo{|h zKu*+#+VKncMf?(e8NY&G-GFAJIj93fp-vEmU&HUe0LT)4SQjqSUE|>r%8#5ae6& zn_Xx*ev7#N`uz^>KDVPg!02wY3Ot72#!B)9ts-CE#tkKdEJ>A$oITQ$HGOIp-HYz; zqhlR@4_CS&_Miv)ux`Nb_phr>=poWT5GlLR!}x>#hOOu^pB6=H)-h^HvGV%&~6}^UDM{l4v(OY;gk(3YdKD-|vzz6Xm z{Lv;NDet29(EH?bC)!2+?jf>r7=MhvC7&?znWah%A#PEeRD^ zTAkJg(kvYLglB!C;5r5ha^}+5*&U+W(6tfuZUKEK-riUHzzJQ+Ga+6e%FG|p`wv8) z=dic8k{1S?3{=VKWIk17K1E&eDLTJZ5`aEKpQ9t_C_09YqZ8;0^d&lpzCx$aY4kPv z2Ax4?(K+-j{se!DKf|BnBlsvjhL7VD_zV0cK8e4=r|@a~HU0*l!DsO~v!u0O-u~QI z7X4Q|Wv1D-X>F$VMvFr(ezlSiOA9$P%ByXyNlu~FELnIJP}&=ua&ioBCi7r#aYck? zlc zpafwv*-72F9Df(COJ-QxQBQm~y>mSGpF%ply=A5t*>jmlZv3|bwrmWxCl>bHcQ(6A%5hNfHW}!+-|I`fU+gn=)%L4!Df1J&xCR_c# zz-Dr0=oc#2`IPdYh7fmrugBJ8ZR;UVJV83~?UElZdy5*1&acDg#P7cF;yV0*_}zcN z^B~vvUh|a-p`^q}cAed+F#KchA&-iL7kj8EDw-OOf5N}wi+u+@Dux;}@bpH-QgQfa z{EKj45b_cF4ktn!ePm|SpaUJ1L@5WotfJKT0{)F0^vSE@5mtO}(QN|{f>atccF=p{ zsPXuB9s)Pkz6=QQ?bg9qv#A_%7@@S3j)#bcB#S79cv2*y7bVJNC>OUhb+|-~Y$Ig0 z1s{W`%ZYs(*4Lx=>^7*iJG>J!(UFXwmGCwn0?IbMW zbmb2b4MvV0(%uXTaV}i3HD|8fL4pU)S~1PYR6pG+#w@^ zfM9BG6==CM;4-MsUk=WYF!Lbq!r);f8SRbkA@vbMq+hU^ToO2qWT|DhlN=DM<5GG| z#5LDZXD697Zbo!aon-k^*YPm0i@KhN!^rWsKQ=`1g0GW@L4Rj*ft!?t)XjqD^3qrV zbqlowL{Yc$FqnrSLf%yp zR`D>bi@Jk{5rcZ3Tvt-h=tCu^GG)G8WX(dS(a`)Koqk72LsQamPR2S9F!$=-R z@i3Z)!`D;msRyVH)J7hT;Gv9%S{{}NVir3{ctjaUa=IdTMv|M9cJWZCp)84(xIWqP}PNN&M$XLgXabh+*&4(lwNz1>-EaWq%|H-^#<0UDRVdj1fk31)nbU6mbYrPgC1?IEshy{X4~W>N%pcsb{GjJRHr#G2PVj z)C)X}TXhBrYSc|r&TC(QoibfbnsRcJleMWTO-i~ll_cV7Qj=43>1tgX(V{c2AljySAqlob z*pdjzZc+S}IzPydPW?drIQYRY)UV_M2GTFhkf_b;UwLQBz@5lbR-=`M^`yr zjyDqN=V2ZXb9tDOymH6u*e>@z#g)Eiuz(kbSj-D^3i46 z(qrjyZl}C^Prg)__0Z$#2|}8c=)1pCx69|TkzCCy5bI`B7F`QQZtZ0b5%N9WMF zbRL~g>uCdBKpW{ox`-~OOXyO%j5g8bbOk+$o=jKLRdh97!^1MN0rRk&hm&|%$-`2d3XyCm+|lp z9 z2Oj=BXrrY&#f{cvmOMX4Hb>YVWiJ1YY&ywgu{vaA$yyzP;qu?5Fa9q*EPcM6r0Elz zNHSDA$;TY;n&ttiGREG9B$o?jfN?})aZnXz$>ghOJrKW7pZjYdwnZYg$!3Z9YGQMl zjIDMd>&MX`5n}%=qtVyR0X@#6H{VC~g%_?{>!@CuEICfY~f*`I`vn^MT3>t<84Zb(fi; z`$QthZ3pMyMT9G;;`YYM2RTs&&PR_(NxfMz>z|=Sdx`UVATbY$#E`>n!__3lot!9S z35qFve-w*HMAVH}8T9~vd6D3zwAKF+_2VLH+f`PB!l;}6h;5sQZKhdLc~yCAA&LES z{)ldeh>kek7yS3={(>%YG5m@Fyn({zN<-qI-7IPR?R-4|By&ShgnkpH_;&8 zwE5#Cd@5q@G)t!cO_=`>PaZh%VPkk)ciHp8^Zwvv()580{6-uA zZ0A3$C)8vqDdDWBQCZ@e&LD15LaQ>**iq zpXi_IUwF8Phl_c5BM)y{PhX&p6IUnk1l=rne2A-4bo*R#CF38v;^AET@Z)bR?mgf# z97B8?f4r2!cr!jAiXpD^B|Kaz5Phr5KTGb1GDjwd+!@GpRtP!2qM^9;v=2Z%=AdON7tnnF-890+RR!@8{t<0c6*|%AdB3;#~_ARh{a@Xq7TqB{<{B$H2i9 zFeSoZj7%X@#1!+ehllHV_y7+#tY=D@GBOzA|JcaG2Zh0G`d0_zJRLG#y~i~#>0~Tq zsx>JChccC^7lvYHu3;<;anL-(!-skJ2oJZcXBrr*xQL1O`%z&i|MDU}w`_!`uWKl3 zO|m;O!n88&SDcJl%xp3l9Xx!ThffG2Ai29j#O14}Wap#AixSBxg0!kq21)BYW}yJ{ zva5L!vsmQH(>&bP%M}6U@rUA{4Ioh*b-F8xlbqT|;jPTdD?+=SSw$!$ZmMT^xLttu ztVrRpd#2L0;guvvqK?L5zbX^f-H`5~$_#6+PA3)%-#t}gkE|4mg^*hUr1U|*26={gUVyrtd6wD1 z5ISDv;cGm6oriC%XI@}l6zO}Dhi~=LNBrdfmO3Op;x!@b+_z@Z`xx^Mv-66K*~RQ8 zjM>Y>cX&uroq2L`!X;Nnzb#H$T0`nUsL5=lrwg1>DO8$)oH@jNdPT6GF`pB#M|t=G z4@vek4|j=RkH;_F($FieuG@*^Rt8Bg?PvE%=9??B`wVlI042`MJv`hi0R7MfbdL7; z+q(=RP^C)H3@PeCO717-w<{8Qk@+1&v5<%Rd3Zp8c~B(uMD|{gd7o4_U#kV!lwGj&V= zd0Yf}y8Y9mMsdxOA|REW>a>9~&uZB8D-Jw^9ZNuxP}vte{89jUQUrN?#v6OQL@HJ3 z!oXDnwKuC}^RGyyo;47VMjoEx;b{Tn*CNO-Zs}S49hoClDw%FF^Gad)rl$^+C$@~8 zd___#*(w5;c>2%q@T>s$TrWcxE^TXYk*Z8r2n-eOM)ps;g(Wu_uE5Ynb~*t$gNNsN zNOHeNg>c+iJ*;ZE2|CcpG*;y>n|AHC% zBM*NP0Fxa|(A8@nn&o#>O{Yff5>vIR57-Ut0s@Sk$6}Ue=kt)5wZHQ40uO&%&n{#a z5h{s&dy$8~6JQAZyF2^Q+OLj&A<70>Xhb&B1~GgEdpn6-vnzRoy4Y1bq6Y;sSke88 zD6>T64rDah8%fk6Rh5>i&dN%c>2%4tGEIs$MV6JWNSCS8l6C4dMS6}xlh$kXviGp} z2{`WM5!1!q&m&ggNaz(~@U9pb+e2bt?0Oz?*!M%BA_Th;>|h^cH<3aIN$eW-5t2S- zb=?;!CmEySJ*+B{!)cu(l;Pl!Ck7roqIl%7huz9PN+8_EKE^&yqVh$i-f|Xg(~Z`a zMpw;_0nc1FI3yuF5{qK6PqI&ui^6@cbhA%`^nnjt@i_KB>@#8&mjT%-?#N#cyPbVj z2*e3hUM|yq`3RhwdC##g2+Vt)M?<^V7kT6}c!FMY9p#X>Su*XvKVJ5`#e~G8q$XER zhfpRV$$4oe4f`hhK1nHJ-(ufp-(lZn-{X-lk0dm)0v>=T*`4ezb~n2Rui;T3 zkAiqKj7KDyWx(7Mk2`Vs^d~3~M^~s2SG6{XE#yo;&DPjXVgtg(Z}-h4@}1-%%_0~1 zNl~AX`t1HRpT1j6gB@!E>$A0%mRT0p)xUm^+vEnZCJqUA>a&a6+nQ`G*1@m3r{QCk zY{*^gCp-%7Vn5?ih-(}|@>W5MeRj)$cPHB#+NO`pw7D`T+?T`HQ3dK0MN+bO{e%@t zP_RGoXgKz*&aSE^i&@sDaHj*X7g(~@54fSn0S=LSK^#dGi|OLXQX3`aB??ItqBmKPhfNlJN#MxYsEuS|mPpmBwfz7tTmwguaI&kX%c%t%-O6g9ZW+t}!+VWd{C$ zkw{v-gCzFV*jfeuliit~q%up=8)mgNxM-4z&odONhPw3n)YP;FRdT9ErL0rcDOHvf zYh8Mp!fI{MsOwVeRnshr3X7vTMKekCW>twFX^AQ~bK^J}NnPOLxde_dFquawJWB21 zk~ld>_?5<^avoI(f~z2!XmDDg-~uHnh-7J*+M9(+OyUfhtc^nTH^MUElGWf>id%*5 zq)E_ggPY22ZB63US1tu!e1J>k(ztXkgB#1EbRK2$NXMgm9vSJCoFA)KhWn7Mm>0Hxgps=U77S8U{HF_Qya6|7fc5_bP z#kFzmLU|10leZN6AxoXR6e~m&&9Gy~{k0OTk8mEo5@}d?%%}vVCbhS8;Sf)+q24~E zSY0nK#aebGLp!UD#G>lj+pJDfC2%OFs!Z*q28oqi1l{B3?-?*G^fHAGy90wTjhXJ? z5K?+@2=pJd@-KLc`?gWD6rB zbJ1cF$|z&}S3>~oS6Tx23S zU?f+#w;b-S@e|603Tzkx58y`%HI5|3Z&l=Sb`B}?S4K+R){**j*8(RgcRLR(2Fpl= zvwKK++jXFaR1ez-Hjx6i{~={<-vqnB0aDKP7&rmGgpgDk@`F-19L7Ky)WC71M6D4P z!4guWb_yv`YbE7r+ewv=<)j?#M)(ZeL8>;m{vjxSl4^v5{*mk&RNyk8xY^vCDSgTM zLgcrHJn8`HgwMh+_sZzx=93%7L`}@)Zs4*w%<(Q|QOKhrqAz$<%%hSGoE9GB7IBM7 zoq>Zyci;^?BKgcFQf^>_pg~6b`BE2efc_7i2u(!W3+1r}E51RxNa$p0>kxLL|DmVg z;&%1i%`GRZ@HTFRAoD`SGja~;P<$atsOM3c$f?`8RU%WY-Q4YhSt%*EH&{BNEp5>$ z85%`&NulH`A|-vk|Gwyj%dY0uz>8hLo2)ePssnc~yttXVj=P^*$8~YtTo1RNdw|=( z5x*p{*(!Nd&7)c#P2rK5M;0CtI;=cuB#OH~ZJK*nG(xMca+vb3#b&w3MC>Gg=Bnl; zT_GSJCB{y229AHbNWs*9Fl&f=LBx5@zm=K8y($t=_b-NJxwk|b$fEwgE_I4~U!-l? z|ErNpZjU$sQq%GuPQAL!cE;`J4pg|V*SL1HP%wfNbWbK_+$WN9)?uWCwSokUvPt1; zJww7SOc_%_N>|^&tY*5I$CxKbIqGf9GsMgM9C0hZ&+KG&GkZxf>I2Ln<}mXK^E2zg zCbBi8g!CF$LFgYy;b+9rr1Y~dCnd$66F7y-dd=f%xvAVWTpcOuJdK;q&ET4dE!9f4 znj5*BNm=Jxx#ipnZWSr&yoQu?zK?sDdx1OP;o%YHVepvjF~g(7W0A*7kBuIiJRb6R z#AB<+V;)a#WzeUcU|X96D@h^w1GQV}_0%I)CVr zpd%X8V?<{YFccFK&cd2)^_d@TRy`S*j;eEvW3m@lv)pHe&+R^|eO~f8 z=yT5J7oXpJe)omGKE4sYQNF`{NBWNP9pfA4o8X(_JI;54Z>Ddyug*8uH{aLbJK4A1 z_XgjUzFU0X^*!MGmG6%dAVCsZ!b&_Oev$x5kR(_VDhZRMNTx_;N^Y0jBiST*Lb5~h zmgIfOQOR-17m|~bQHQ}8Rr*!?)%wT#oBXfwpYGr0Kg)lP|8@Qg{BQPO=6|REBmPhNKj;6V|I7Zb`hVpA zrT;1aul>*Zf9wBUKzKl0Kw>~rfHFWGkQ|U5pbsbrC=4hLm=sVMP#sVkFg4(ofbM|p z0j~tS9`I(s+X4FnP6T`z@KwO+fNuiM27DXvT_6?61ag5x0=)vg1APPi0s{i00}})D z0&4TbtV}ZX1jSkWT)dpFE>_Htt z%YtqTS{bw|=#HSfg1Ukp4B8y@aL|^ZM}wXVdLihgpjU!+1$`3qSgI5LL5qy7eckue)4Z+U`zZ1MScwg{=;6uTO zgO3M)5qvWERPfiqXM%qUk%WYWj0#bOj13tdGBG48L>poZDGDhGDGMnNnH16%vLfWk zkoQ9Nh3pSG7;+-yWXP$IZ$i$7d>hJ!`i2IE4hszlm4=Q9O$<#6RfHyoriP}6jt$j^ z)`nU`TS7ZSap?Teg`qcxE(yIgbb08S(C*NOLbr#$6#9PXuFyT9`$7+d9t!;?^w-b} zp}&RxE*&cMmHJ5orNg8l(nM*pG($R0IzgH#EtHl?%cYZ~HPR_kv(zG;DQ%PT(#6u7 zq_;?yOIJv5m#&s>ls+nbPWqzsW$A0uH>7V#cT4w64@y6hek}b;dPaIqdS3dI^cU#` z=|$=9VIE;YVdOLv78y1&Y*g5ou(&W)*u=2hu>3GXm@&*0RuMKitSYP~?1r$FVULHs z5cY1^`(Zo7c8Bc^+ZT2q?0DE0VJE{*g?$}%ChT0;`Ebwh(C~zCLwHB{z2Td~9|_+Y z{&@J4;ZKLZ8UA7Tf$&4&ABTS${(1Q6@SnpkMt}$u!9@&-@QUz`@QD}|p^8Y3NR7yd z7#A@iq9CFuq9no;Q4ujYq9LL&!WPjK(Gt-bF*gE7%#TNqsB&!kD3^j z6{U^JiOP%8M-@aBMiocB9IcOjZMbsyh7qGjtQ+y`$m?RfV&=zO7}YlF>(LFPKN?d$ z=AGE=*n-%~SaYm3wk6gcdu{A>v7NDVV;9HX7<+T<%GlduSI2h8J`lSxc602*v0Gxd z#XcYVV(iPYug1O}yC?QQ?4j7hv7g5tjXfUwMeHweRGcI(C@wfIG%hkOI&MT6h++A^NBR37e@y&2@z=!PWUOq6Y^cmf<|hk~h0Ee(YFVaCE6bJXWky+%tVT9PW|q~- zo|U~R+a=p8+b=sL`&f2Dc2ag)c1HHC?7O6>q{5`@lO9U?PtvnV&nLZ<^lH-UNr#e- zCViQ7D(Rb~vq`_nk(`lx$i3wfd4N1fK2n|{ua?)#TjlNYIr2_9mM@Smmfs}5S-w(! zzx+x0Hu-k>bMhDEugG7Qza@WH{(*eA{0sS4@~`D*<>%!;$bXh!kpHeg3P!;xMkvNB zDiwYVC=no)bGz0}@nsX9y@ zu8vfXQRk_P)Gg|T>ig6WsgJ0StG`sAQh%d9r~Xd;qxu*1ZyKPXG^}QbW~jzjyhf%`Xc{#$G|ie;jZ-sA)1kRuGfy*Lvq*E3W{GB*W`$;z=1$F8 z&Apm+njXyt%_hymnys40HBV`_XoYcvg=2ljO2+z+4I0}z zcJA1DWBIWQ$9awm9v3<;Y+U5Ho5rmkcjve@bea1`12aKOP{+97e$1fYd zVgfzEZ$iL?pa~%pZkn)q!krV=Ot@zvn&>;xZ(_j2VH5d@%O>77aplC-nK08QQ4O^Rky_ug<U?$nx*%PoZn!Q+H(D2`OVH)&nsuGJ9^J#br*$vt-qY>V9n>Ax zeX2X6JEi+ZcTRU+_k-@IoPeB+ocx^DoQ|CNIZJZx%IV5kpR+M%bIv0s+&7YCKGXL)U2l5}! ze>VU5{Fm}y&3_|*Xa1i2efbCSKg$0&|3v<``4{v<^#1xFeTY6xAE_UskJroea=l8g z(T~^X=}Yxf^^N)&`euEr-l@M{KTkhjzfgap{$~A3{XO~z^pESG)jzL)N&l+;4gF62 z9{oQ30sTk%kM$??=k>oCJPiScVTMpcxFO0AYe+C8859P!A=xm&kY^|{OfgI|*bGeu zyTM`TG~8g|4GRp54L2E97}gqk438R~G3+qBV0hW^n&ExJF2i2KKEpx7M}}jDuMIyG zPz6H^d<*;wf(k+kh8M&Xj46mKNGwPyNG-@L&=*W9Fc;JnSPP~X%q(atm|bvP!Sx06 z3iyIs3hpfED%eu6tzdh>a|JIJyi)LP!3PDq3-%W5FF06mq~KJ+cSdORGahY+gaij53;}gcG zjn5c&7+*8KX?(}{o^hvfxAE)3z`_xQhC)+eZK1W$QP^HMr?9i|hC*C;YvJ<36@{w` z-zwZ!c(Cwr;irX13Xc_mq9H{?i+qdxibfZu7io)fi}H)~MaH7yqS~U?q6I~Zif$@e zQFL!nchQ!jZACka_7|NkW{U%ghZTnwhZjc`4=+wCRurp>lZ)>weyI5A;%AC?6u(gX za`9`$JBxQ0e^`8=_@m-aia#s9P!dv-SW;Fpv&30)YsuP@drQ`p^ptEUd9dWwlJ`mu zl^iWOQF5~6bjg{LpGtl$xmXHI=~A}TuQZ}GwRCD}V`*FI+)`Y+pmb5`ZKd~?-dB2m zX;v(E+od0t9w|Lv`a|i@r58$nFGFQanMavdS$J7g+3>QFWuwdD z$`Z@uWy&&j+4!>jGE3QL#?zm&srx|}QbEcYu9EDtW1mWP+;lsn7sFMqIn zYx(x_H_G2H-&MZ1e1G{T<)4=yEB~VWWcjz{-46lf(7*i2f zp{hu($gC)=D6g1YQC%^mqM@R(Vn#)Cg}q`{#k`6eC!d~tX7W#!Y^8T)VCC@2q)KI_ zrZTlMqjG#@W@TYzNo84OMP+4Wb!Bbk)XD{w4_5B3yimndc~=dq3auJZ6<3v1l~tv! zs;sh9HB?QjnqGBn)#9p~tCm(RuUc8Py6Uc~yQ}W2>Z)2_wV~>Xs;8>9Rc)`1sa962 ztCOqKs#jLuU)@#RQ@x@3iR!1Sw^eVik=Bf&1KbUg;l$)n4nR4rt+or;)0aHV!Mv6{fgv3wo;2T_m03nm5 A{r~^~ From 120a2c47977445f62b2c5deae70ea16c6614254c Mon Sep 17 00:00:00 2001 From: vinivendra Date: Thu, 25 Feb 2016 14:50:30 -0500 Subject: [PATCH 17/31] A bit more progress in antialiasing. --- PixelImage/shaders.metal | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/PixelImage/shaders.metal b/PixelImage/shaders.metal index 126f3cd..23a4284 100644 --- a/PixelImage/shaders.metal +++ b/PixelImage/shaders.metal @@ -71,11 +71,6 @@ kernel void float result = weightedValue + weightedLink; - if (result > 0.4 && result < 0.6) { - bendClose += result; - bendCloseCount += 1.0; - } - ball += step(0.4, weightedValue); float metaballValue = step(0.5, weightedValue + weightedLink); @@ -87,11 +82,16 @@ kernel void colorSumLink /= (1 / distance1) + (1 / distance2); } + if (result > 0.4) { + bendClose += result; + bendCloseCount += 1.0; + } + sum += metaballValue; } } - bendClose = bendClose / bendCloseCount; + // bendClose = bendClose / bendCloseCount; if (bendClose != 0.0) { bendClose = (bendClose - 0.4) * (1 / (0.6 - 0.4)); @@ -99,8 +99,8 @@ kernel void bendClose = 0.0; } + float result = step(0.4, sum); - result += bendClose * 10; result = clamp(result, 0.0, 1.0); colorSum = colorSum / colorAccumulation; @@ -109,6 +109,7 @@ kernel void colorSum = colorSumLink; } + colorSum *= result; outTexture.write(float4(colorSum.bgr, 1), gid); From f6914176c4b6ee6b27aab13286cb2b8c5d917678 Mon Sep 17 00:00:00 2001 From: vinivendra Date: Thu, 25 Feb 2016 15:21:28 -0500 Subject: [PATCH 18/31] Improved look of test case. --- PixelImage.xcodeproj/project.pbxproj | 4 ++++ PixelImage/ViewController.swift | 9 +++------ 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/PixelImage.xcodeproj/project.pbxproj b/PixelImage.xcodeproj/project.pbxproj index 225d303..da66059 100644 --- a/PixelImage.xcodeproj/project.pbxproj +++ b/PixelImage.xcodeproj/project.pbxproj @@ -22,6 +22,7 @@ 24E1E7F01C67D74300ECF1C4 /* Metal.swift in Sources */ = {isa = PBXBuildFile; fileRef = 24E1E7EE1C67D74300ECF1C4 /* Metal.swift */; }; 24E1E7F11C67D74300ECF1C4 /* shaders.metal in Sources */ = {isa = PBXBuildFile; fileRef = 24E1E7EF1C67D74300ECF1C4 /* shaders.metal */; }; 24ED21CD1C6C2397009C40FC /* MetaballDataSource.swift in Sources */ = {isa = PBXBuildFile; fileRef = 24ED21CC1C6C2397009C40FC /* MetaballDataSource.swift */; }; + 24FC38341C7F931E0085C04A /* Metaball.swift in Sources */ = {isa = PBXBuildFile; fileRef = 24FC38331C7F931E0085C04A /* Metaball.swift */; }; 24FFA86B1C6BA038005ACD60 /* ApproximationOperator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 24FFA84C1C6BA038005ACD60 /* ApproximationOperator.swift */; }; 24FFA86C1C6BA038005ACD60 /* Collections.swift in Sources */ = {isa = PBXBuildFile; fileRef = 24FFA84D1C6BA038005ACD60 /* Collections.swift */; }; 24FFA86D1C6BA038005ACD60 /* ComparatorChains.swift in Sources */ = {isa = PBXBuildFile; fileRef = 24FFA84E1C6BA038005ACD60 /* ComparatorChains.swift */; }; @@ -71,6 +72,7 @@ 24E1E7EE1C67D74300ECF1C4 /* Metal.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Metal.swift; sourceTree = ""; }; 24E1E7EF1C67D74300ECF1C4 /* shaders.metal */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.metal; path = shaders.metal; sourceTree = ""; }; 24ED21CC1C6C2397009C40FC /* MetaballDataSource.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MetaballDataSource.swift; sourceTree = ""; }; + 24FC38331C7F931E0085C04A /* Metaball.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Metaball.swift; sourceTree = ""; }; 24FFA84C1C6BA038005ACD60 /* ApproximationOperator.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ApproximationOperator.swift; sourceTree = ""; }; 24FFA84D1C6BA038005ACD60 /* Collections.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Collections.swift; sourceTree = ""; }; 24FFA84E1C6BA038005ACD60 /* ComparatorChains.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ComparatorChains.swift; sourceTree = ""; }; @@ -144,6 +146,7 @@ 24FFA84B1C6BA038005ACD60 /* SwiftSugar */, 242686871C63B72A00D62456 /* AppDelegate.swift */, 242686891C63B72A00D62456 /* ViewController.swift */, + 24FC38331C7F931E0085C04A /* Metaball.swift */, 24E1E7D61C67C8B200ECF1C4 /* UIKit.swift */, 246B0F821C70635D00A71D05 /* UIColor.swift */, 24ED21CC1C6C2397009C40FC /* MetaballDataSource.swift */, @@ -383,6 +386,7 @@ 24FFA8771C6BA038005ACD60 /* ChunkWindowSplit.swift in Sources */, 24FFA86F1C6BA038005ACD60 /* NSNumber.swift in Sources */, 2461651B1C6DA4F400A913C8 /* Interpolation.swift in Sources */, + 24FC38341C7F931E0085C04A /* Metaball.swift in Sources */, 24FFA8861C6BA038005ACD60 /* TestCommons.swift in Sources */, 24FFA8741C6BA038005ACD60 /* SignOperator.swift in Sources */, 24FFA8821C6BA038005ACD60 /* ScanReduce.swift in Sources */, diff --git a/PixelImage/ViewController.swift b/PixelImage/ViewController.swift index 1d5a5e1..63aded4 100644 --- a/PixelImage/ViewController.swift +++ b/PixelImage/ViewController.swift @@ -18,6 +18,8 @@ class ViewController: UIViewController, MetaballDataSource { override func viewDidLoad() { super.viewDidLoad() + view.backgroundColor = UIColor.whiteColor() + let recognizer = UIPanGestureRecognizer(target: self, action: "handlePan:") view.addGestureRecognizer(recognizer) @@ -28,18 +30,13 @@ class ViewController: UIViewController, MetaballDataSource { metaballGraph.addEdge(0, 1) metaballGraph.addEdge(0, 3) metaballGraph.addEdge(1, 2) - metaballGraph.addEdge(1, 3) metaballGraph.addEdge(2, 3) let border = 20 let metaballViewFrame = CGRect(x: border / 2, y: border / 2, width: width, height: height) renderer = MetalMetaballRenderer(dataSource: self, frame: metaballViewFrame) metaballView = renderer.targetView - - let bigView = UIView(frame: CGRect(x: 10, y: 70, width: width + border, height: height + border)) - bigView.backgroundColor = UIColor.redColor() - bigView.addSubview(metaballView) - view.addSubview(bigView) + view.addSubview(metaballView) for metaball in metaballs { metaballView.addSubview(metaball) From 8b54ecfa716abd513d5755f1b454319f4172ef52 Mon Sep 17 00:00:00 2001 From: vinivendra Date: Thu, 25 Feb 2016 15:22:16 -0500 Subject: [PATCH 19/31] Refactored metaballs. --- PixelImage/Metaball.swift | 20 +++++++++++++++ PixelImage/MetalMetaballRenderer.swift | 2 +- PixelImage/UIColor.swift | 6 +++++ PixelImage/ViewController.swift | 34 ++++++++++++-------------- 4 files changed, 43 insertions(+), 19 deletions(-) create mode 100644 PixelImage/Metaball.swift diff --git a/PixelImage/Metaball.swift b/PixelImage/Metaball.swift new file mode 100644 index 0000000..d2f4f8a --- /dev/null +++ b/PixelImage/Metaball.swift @@ -0,0 +1,20 @@ + +import UIKit + +class Metaball: UIView { + + var color: UIColor + + init(position: CGPoint, color: UIColor = UIColor(randomFlatColorOfShadeStyle: .Light)) { + self.color = color + super.init(frame: CGRect.zero) + + size = CGSize(50) + middle = position + } + + required init?(coder aDecoder: NSCoder) { + color = UIColor(randomFlatColorOfShadeStyle: .Light) + super.init(coder: aDecoder) + } +} diff --git a/PixelImage/MetalMetaballRenderer.swift b/PixelImage/MetalMetaballRenderer.swift index 2900e61..bddef0b 100644 --- a/PixelImage/MetalMetaballRenderer.swift +++ b/PixelImage/MetalMetaballRenderer.swift @@ -179,7 +179,7 @@ class MetalMetaballRenderer { array.append(Float(x)) array.append(Float(y)) - let color = metaball.backgroundColor! + let color = metaball.color let components = color.components array.append(Float(components.red)) array.append(Float(components.green)) diff --git a/PixelImage/UIColor.swift b/PixelImage/UIColor.swift index 8c7f46b..a1f5ce0 100644 --- a/PixelImage/UIColor.swift +++ b/PixelImage/UIColor.swift @@ -7,3 +7,9 @@ extension UIColor { return (r, g, b, a) } } + +extension UIColor { + convenience init(red255 red: CGFloat, green: CGFloat, blue: CGFloat, alpha: CGFloat) { + self.init(red: red / 255, green: green / 255, blue: blue / 255, alpha: alpha / 255) + } +} diff --git a/PixelImage/ViewController.swift b/PixelImage/ViewController.swift index 63aded4..6ad54e1 100644 --- a/PixelImage/ViewController.swift +++ b/PixelImage/ViewController.swift @@ -23,9 +23,22 @@ class ViewController: UIViewController, MetaballDataSource { let recognizer = UIPanGestureRecognizer(target: self, action: "handlePan:") view.addGestureRecognizer(recognizer) - let metaballs = [CGPoint(x: 70, y: 70), CGPoint(x: 270, y: 70), CGPoint(x: 270, y: 470), CGPoint(x: 70, y: 470)].map { - Metaball(position: $0) - } + let lowX = screenWidth / 3 + let highX = screenWidth - lowX + let lowY = screenHeight / 4 + let highY = screenHeight - lowY + let positions = + [CGPoint(x: lowX, y: lowY), + CGPoint(x: highX, y: lowY), + CGPoint(x: highX, y: highY), + CGPoint(x: lowX, y: highY)] + let colors = + [UIColor(red255: 90, green: 170, blue: 170, alpha: 1.0), + UIColor(red255: 90, green: 170, blue: 170, alpha: 1.0), + UIColor(red255: 110, green: 220, blue: 220, alpha: 1.0), + UIColor(red255: 250, green: 235, blue: 50, alpha: 1.0)] + let metaballs = zip(positions, colors).map { Metaball(position: $0.0, color: $0.1) } + metaballGraph = Graph(vertices: metaballs) metaballGraph.addEdge(0, 1) metaballGraph.addEdge(0, 3) @@ -104,18 +117,3 @@ class ViewController: UIViewController, MetaballDataSource { } } - -class Metaball: UIView { - - init(position: CGPoint) { - super.init(frame: CGRect.zero) - - size = CGSize(50) - middle = position - backgroundColor = UIColor(randomFlatColorOfShadeStyle: .Light) - } - - required init?(coder aDecoder: NSCoder) { - super.init(coder: aDecoder) - } -} From f680eb370c999cdbfa78ab734c97210257e4970c Mon Sep 17 00:00:00 2001 From: vinivendra Date: Thu, 25 Feb 2016 15:22:41 -0500 Subject: [PATCH 20/31] Improved metaball positions. --- PixelImage/UIKit.swift | 4 ++++ PixelImage/ViewController.swift | 3 +-- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/PixelImage/UIKit.swift b/PixelImage/UIKit.swift index d6b2cd5..646c3bc 100644 --- a/PixelImage/UIKit.swift +++ b/PixelImage/UIKit.swift @@ -138,3 +138,7 @@ extension UIView { } } } + +let screenRect = UIScreen.mainScreen().bounds +let screenWidth = screenRect.size.width +let screenHeight = screenRect.size.height diff --git a/PixelImage/ViewController.swift b/PixelImage/ViewController.swift index 6ad54e1..b96bd64 100644 --- a/PixelImage/ViewController.swift +++ b/PixelImage/ViewController.swift @@ -45,8 +45,7 @@ class ViewController: UIViewController, MetaballDataSource { metaballGraph.addEdge(1, 2) metaballGraph.addEdge(2, 3) - let border = 20 - let metaballViewFrame = CGRect(x: border / 2, y: border / 2, width: width, height: height) + let metaballViewFrame = screenRect renderer = MetalMetaballRenderer(dataSource: self, frame: metaballViewFrame) metaballView = renderer.targetView view.addSubview(metaballView) From 1b318193735ce15c57c5beadde23489303677eb7 Mon Sep 17 00:00:00 2001 From: vinivendra Date: Thu, 25 Feb 2016 15:22:52 -0500 Subject: [PATCH 21/31] Removed black dot on the middle of metaballs. --- PixelImage/shaders.metal | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/PixelImage/shaders.metal b/PixelImage/shaders.metal index 23a4284..0bdc310 100644 --- a/PixelImage/shaders.metal +++ b/PixelImage/shaders.metal @@ -35,7 +35,8 @@ kernel void float2 metaballPosition = float2(metaball.x, metaball.y); float2 vector = float2(metaballPosition.x - gid.x, metaballPosition.y - gid.y); - float squaredDistance = dot(vector, vector); + float dotProduct = dot(vector, vector); + float squaredDistance = dotProduct > 0 ? dotProduct : 1; float realDistance = sqrt(squaredDistance); metaballDistances[x - 1] = squaredDistance; metaballDirections[x - 1] = vector / realDistance; @@ -48,7 +49,7 @@ kernel void for (x = 0; x < numberOfMetaballs; x += 1) { float distance1 = metaballDistances[x]; - float value1 = 2048 / (distance1 + 1); + float value1 = 2048 / distance1; float2 direction1 = metaballDirections[x]; float colorContribution = 1 / distance1; @@ -57,7 +58,7 @@ kernel void for (y = x + 1; y < numberOfMetaballs; y += 1) { float distance2 = metaballDistances[y]; - float value2 = 2048 / (distance2 + 1); + float value2 = 2048 / distance2; float2 direction2 = metaballDirections[y]; float v = value1 + value2; @@ -109,8 +110,11 @@ kernel void colorSum = colorSumLink; } - colorSum *= result; + if (colorSum.r == 0 && colorSum.g == 0 && colorSum.b == 0) { + colorSum = float3(1, 1, 1); + } + outTexture.write(float4(colorSum.bgr, 1), gid); } From 9392fc76572a691a09543137f8d8cf374df86cee Mon Sep 17 00:00:00 2001 From: vinivendra Date: Thu, 25 Feb 2016 15:25:27 -0500 Subject: [PATCH 22/31] Improved initial edge animation. --- PixelImage/ViewController.swift | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/PixelImage/ViewController.swift b/PixelImage/ViewController.swift index b96bd64..1174fce 100644 --- a/PixelImage/ViewController.swift +++ b/PixelImage/ViewController.swift @@ -56,6 +56,10 @@ class ViewController: UIViewController, MetaballDataSource { addEdge(0, 2) + dispatch_after(dispatch_time(DISPATCH_TIME_NOW, 2 * Int64(NSEC_PER_SEC)), dispatch_get_main_queue()) { + self.removeEdge(0, 2) + } + renderer.state = .Running } From 5b0bad6c8f55f80edf21798fd154dc11fb5317f3 Mon Sep 17 00:00:00 2001 From: vinivendra Date: Thu, 25 Feb 2016 15:28:50 -0500 Subject: [PATCH 23/31] Refactored dispatch_after. --- PixelImage.xcodeproj/project.pbxproj | 4 ++++ PixelImage/Dispatch.swift | 6 ++++++ PixelImage/ViewController.swift | 2 +- 3 files changed, 11 insertions(+), 1 deletion(-) create mode 100644 PixelImage/Dispatch.swift diff --git a/PixelImage.xcodeproj/project.pbxproj b/PixelImage.xcodeproj/project.pbxproj index da66059..592e9d2 100644 --- a/PixelImage.xcodeproj/project.pbxproj +++ b/PixelImage.xcodeproj/project.pbxproj @@ -23,6 +23,7 @@ 24E1E7F11C67D74300ECF1C4 /* shaders.metal in Sources */ = {isa = PBXBuildFile; fileRef = 24E1E7EF1C67D74300ECF1C4 /* shaders.metal */; }; 24ED21CD1C6C2397009C40FC /* MetaballDataSource.swift in Sources */ = {isa = PBXBuildFile; fileRef = 24ED21CC1C6C2397009C40FC /* MetaballDataSource.swift */; }; 24FC38341C7F931E0085C04A /* Metaball.swift in Sources */ = {isa = PBXBuildFile; fileRef = 24FC38331C7F931E0085C04A /* Metaball.swift */; }; + 24FC38361C7F9ABE0085C04A /* Dispatch.swift in Sources */ = {isa = PBXBuildFile; fileRef = 24FC38351C7F9ABE0085C04A /* Dispatch.swift */; }; 24FFA86B1C6BA038005ACD60 /* ApproximationOperator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 24FFA84C1C6BA038005ACD60 /* ApproximationOperator.swift */; }; 24FFA86C1C6BA038005ACD60 /* Collections.swift in Sources */ = {isa = PBXBuildFile; fileRef = 24FFA84D1C6BA038005ACD60 /* Collections.swift */; }; 24FFA86D1C6BA038005ACD60 /* ComparatorChains.swift in Sources */ = {isa = PBXBuildFile; fileRef = 24FFA84E1C6BA038005ACD60 /* ComparatorChains.swift */; }; @@ -73,6 +74,7 @@ 24E1E7EF1C67D74300ECF1C4 /* shaders.metal */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.metal; path = shaders.metal; sourceTree = ""; }; 24ED21CC1C6C2397009C40FC /* MetaballDataSource.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MetaballDataSource.swift; sourceTree = ""; }; 24FC38331C7F931E0085C04A /* Metaball.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Metaball.swift; sourceTree = ""; }; + 24FC38351C7F9ABE0085C04A /* Dispatch.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Dispatch.swift; sourceTree = ""; }; 24FFA84C1C6BA038005ACD60 /* ApproximationOperator.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ApproximationOperator.swift; sourceTree = ""; }; 24FFA84D1C6BA038005ACD60 /* Collections.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Collections.swift; sourceTree = ""; }; 24FFA84E1C6BA038005ACD60 /* ComparatorChains.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ComparatorChains.swift; sourceTree = ""; }; @@ -146,6 +148,7 @@ 24FFA84B1C6BA038005ACD60 /* SwiftSugar */, 242686871C63B72A00D62456 /* AppDelegate.swift */, 242686891C63B72A00D62456 /* ViewController.swift */, + 24FC38351C7F9ABE0085C04A /* Dispatch.swift */, 24FC38331C7F931E0085C04A /* Metaball.swift */, 24E1E7D61C67C8B200ECF1C4 /* UIKit.swift */, 246B0F821C70635D00A71D05 /* UIColor.swift */, @@ -394,6 +397,7 @@ 24FFA8831C6BA038005ACD60 /* Slicing.swift in Sources */, 24FFA8721C6BA038005ACD60 /* Sequence.swift in Sources */, 24FFA87F1C6BA038005ACD60 /* Iterate.swift in Sources */, + 24FC38361C7F9ABE0085C04A /* Dispatch.swift in Sources */, 24FFA8761C6BA038005ACD60 /* Categorise.swift in Sources */, 24FFA86D1C6BA038005ACD60 /* ComparatorChains.swift in Sources */, 24FFA8711C6BA038005ACD60 /* PowerOperator.swift in Sources */, diff --git a/PixelImage/Dispatch.swift b/PixelImage/Dispatch.swift new file mode 100644 index 0000000..72ef416 --- /dev/null +++ b/PixelImage/Dispatch.swift @@ -0,0 +1,6 @@ + +import Dispatch + +func delay(duration: Float = 1, block: () -> ()) { + dispatch_after(dispatch_time(DISPATCH_TIME_NOW, Int64(duration * Float(NSEC_PER_SEC))), dispatch_get_main_queue(), block) +} diff --git a/PixelImage/ViewController.swift b/PixelImage/ViewController.swift index 1174fce..2c2d057 100644 --- a/PixelImage/ViewController.swift +++ b/PixelImage/ViewController.swift @@ -56,7 +56,7 @@ class ViewController: UIViewController, MetaballDataSource { addEdge(0, 2) - dispatch_after(dispatch_time(DISPATCH_TIME_NOW, 2 * Int64(NSEC_PER_SEC)), dispatch_get_main_queue()) { + delay { self.removeEdge(0, 2) } From 500614ebfda54a2670d4eb0225ba6722f28fb01c Mon Sep 17 00:00:00 2001 From: vinivendra Date: Thu, 25 Feb 2016 15:41:04 -0500 Subject: [PATCH 24/31] Put the metaballs in circles. --- PixelImage/ViewController.swift | 38 +++++++++++++++++++-------------- 1 file changed, 22 insertions(+), 16 deletions(-) diff --git a/PixelImage/ViewController.swift b/PixelImage/ViewController.swift index 2c2d057..799cfbe 100644 --- a/PixelImage/ViewController.swift +++ b/PixelImage/ViewController.swift @@ -23,27 +23,25 @@ class ViewController: UIViewController, MetaballDataSource { let recognizer = UIPanGestureRecognizer(target: self, action: "handlePan:") view.addGestureRecognizer(recognizer) - let lowX = screenWidth / 3 - let highX = screenWidth - lowX - let lowY = screenHeight / 4 - let highY = screenHeight - lowY - let positions = - [CGPoint(x: lowX, y: lowY), - CGPoint(x: highX, y: lowY), - CGPoint(x: highX, y: highY), - CGPoint(x: lowX, y: highY)] + var positions = [CGPoint]() + positions.append(CGPoint(x: Double(screenWidth) / 2, y: Double(screenHeight) / 2)) + for i in 1...5 { + let sine = sin(Double(i) * 2 * M_PI / 5) + let cosine = cos(Double(i) * 2 * M_PI / 5) + positions.append(CGPoint(x: Double(screenWidth) / 2 + sine * 150, + y: Double(screenHeight) / 2 + cosine * 150)) + } + let colors = - [UIColor(red255: 90, green: 170, blue: 170, alpha: 1.0), - UIColor(red255: 90, green: 170, blue: 170, alpha: 1.0), + [UIColor(red255: 110, green: 220, blue: 220, alpha: 1.0), + UIColor(red255: 250, green: 235, blue: 50, alpha: 1.0), UIColor(red255: 110, green: 220, blue: 220, alpha: 1.0), - UIColor(red255: 250, green: 235, blue: 50, alpha: 1.0)] + UIColor(red255: 90, green: 170, blue: 170, alpha: 1.0), + UIColor(red255: 90, green: 170, blue: 170, alpha: 1.0), + UIColor(red255: 110, green: 220, blue: 220, alpha: 1.0)] let metaballs = zip(positions, colors).map { Metaball(position: $0.0, color: $0.1) } metaballGraph = Graph(vertices: metaballs) - metaballGraph.addEdge(0, 1) - metaballGraph.addEdge(0, 3) - metaballGraph.addEdge(1, 2) - metaballGraph.addEdge(2, 3) let metaballViewFrame = screenRect renderer = MetalMetaballRenderer(dataSource: self, frame: metaballViewFrame) @@ -54,10 +52,18 @@ class ViewController: UIViewController, MetaballDataSource { metaballView.addSubview(metaball) } + addEdge(0, 1) addEdge(0, 2) + addEdge(0, 3) + addEdge(0, 4) + addEdge(0, 5) delay { + self.removeEdge(0, 1) self.removeEdge(0, 2) + self.removeEdge(0, 3) + self.removeEdge(0, 4) + self.removeEdge(0, 5) } renderer.state = .Running From 3492e748e7e2abc613f4b92aa40e4f30fdd8fe8a Mon Sep 17 00:00:00 2001 From: vinivendra Date: Thu, 25 Feb 2016 15:43:14 -0500 Subject: [PATCH 25/31] Made metaballs smaller, since they were a bit too close. --- PixelImage/shaders.metal | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/PixelImage/shaders.metal b/PixelImage/shaders.metal index 0bdc310..9515a62 100644 --- a/PixelImage/shaders.metal +++ b/PixelImage/shaders.metal @@ -33,8 +33,7 @@ kernel void for (x = 1; x <= numberOfMetaballs; x += 1) { metaballData metaball = metaballBuffer[x]; float2 metaballPosition = float2(metaball.x, metaball.y); - float2 vector - = float2(metaballPosition.x - gid.x, metaballPosition.y - gid.y); + float2 vector = float2(metaballPosition.x - gid.x, metaballPosition.y - gid.y); float dotProduct = dot(vector, vector); float squaredDistance = dotProduct > 0 ? dotProduct : 1; float realDistance = sqrt(squaredDistance); @@ -49,7 +48,7 @@ kernel void for (x = 0; x < numberOfMetaballs; x += 1) { float distance1 = metaballDistances[x]; - float value1 = 2048 / distance1; + float value1 = 1500 / distance1; float2 direction1 = metaballDirections[x]; float colorContribution = 1 / distance1; @@ -58,7 +57,7 @@ kernel void for (y = x + 1; y < numberOfMetaballs; y += 1) { float distance2 = metaballDistances[y]; - float value2 = 2048 / distance2; + float value2 = 1500 / distance2; float2 direction2 = metaballDirections[y]; float v = value1 + value2; From 05cd2a360b0532171050658ff0d78e2075d7ef0b Mon Sep 17 00:00:00 2001 From: vinivendra Date: Mon, 29 Feb 2016 16:59:08 -0500 Subject: [PATCH 26/31] Spring interpolation. --- PixelImage.xcodeproj/project.pbxproj | 8 ++-- PixelImage/Interpolation.swift | 61 ++++++++++++++++++++++++++++ 2 files changed, 65 insertions(+), 4 deletions(-) diff --git a/PixelImage.xcodeproj/project.pbxproj b/PixelImage.xcodeproj/project.pbxproj index 592e9d2..1ae1169 100644 --- a/PixelImage.xcodeproj/project.pbxproj +++ b/PixelImage.xcodeproj/project.pbxproj @@ -147,15 +147,15 @@ children = ( 24FFA84B1C6BA038005ACD60 /* SwiftSugar */, 242686871C63B72A00D62456 /* AppDelegate.swift */, - 242686891C63B72A00D62456 /* ViewController.swift */, 24FC38351C7F9ABE0085C04A /* Dispatch.swift */, - 24FC38331C7F931E0085C04A /* Metaball.swift */, 24E1E7D61C67C8B200ECF1C4 /* UIKit.swift */, 246B0F821C70635D00A71D05 /* UIColor.swift */, - 24ED21CC1C6C2397009C40FC /* MetaballDataSource.swift */, - 24E1E7EA1C67D70300ECF1C4 /* MetalMetaballRenderer.swift */, + 24FC38331C7F931E0085C04A /* Metaball.swift */, 24E1E7EE1C67D74300ECF1C4 /* Metal.swift */, 249CF84B1C6D113C008B0C78 /* Matrix.swift */, + 242686891C63B72A00D62456 /* ViewController.swift */, + 24ED21CC1C6C2397009C40FC /* MetaballDataSource.swift */, + 24E1E7EA1C67D70300ECF1C4 /* MetalMetaballRenderer.swift */, 24E1E7EF1C67D74300ECF1C4 /* shaders.metal */, 2426868B1C63B72A00D62456 /* Main.storyboard */, 2426868E1C63B72A00D62456 /* Assets.xcassets */, diff --git a/PixelImage/Interpolation.swift b/PixelImage/Interpolation.swift index 023c16c..55931c5 100644 --- a/PixelImage/Interpolation.swift +++ b/PixelImage/Interpolation.swift @@ -1,3 +1,6 @@ + +import Darwin + func interpolateCubeEaseIn(linear: T) -> T { return linear ^ 3 } @@ -13,3 +16,61 @@ func interpolateSquareEaseOut(linear: T) -> T { func interpolateSmooth(linear: T) -> T { return ((linear) * (linear) * (linear) * ((linear) * ((linear) * 6 - 15) + 10)) } + +func createStringKeyframes(bounces: Int = 2, elasticity: Double = 1.1, bounceSpeed: Double) -> [(time: Double, position: Double)] { + // Setup keyframes + var keyFrames: [(time: Double, position: Double)] = [(1, 1)] + + let overreach = elasticity - 1 + + var currentBounceTime: Double = overreach / (bounceSpeed ^ Double(bounces)) + var bounceDirection = Double((bounces % 2) * 2 - 1) + var bounceReach = overreach / (2 ^ Double(bounces - 1)) + var currentBouncePosition: Double = 1.0 + bounceDirection * bounceReach + + print(currentBounceTime) + print(bounceDirection) + print(bounceReach) + print(currentBouncePosition) + + keyFrames.append((1.0 - currentBounceTime, currentBouncePosition)) + + for i in (1..(linear: T, bounces: Int = 2, elasticity: Double = 1.1, bounceSpeed: Double = 1.0) -> T { + let keyFrames: [(time: Double, position: Double)] + keyFrames = createStringKeyframes(bounces, elasticity: elasticity, bounceSpeed: bounceSpeed) + + let x = linear.toDouble + + let startFrame = keyFrames.filter { $0.time < x }.last ?? (0, 0) + let endFrame = keyFrames.filter { $0.time > x }.first ?? (1, 1) + let adjustedX = (x - startFrame.time) / (endFrame.time - startFrame.time) + let interpolatedX = interpolateSmooth(adjustedX) + let position = startFrame.position + interpolatedX * (endFrame.position - startFrame.position) + + return T.fromDouble(position) +} From db88326e6df5689cf72bea5bfea406d7c4255447 Mon Sep 17 00:00:00 2001 From: vinivendra Date: Mon, 29 Feb 2016 17:00:00 -0500 Subject: [PATCH 27/31] Added helper methods for CALayer. --- PixelImage/UIKit.swift | 75 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 75 insertions(+) diff --git a/PixelImage/UIKit.swift b/PixelImage/UIKit.swift index 646c3bc..1489453 100644 --- a/PixelImage/UIKit.swift +++ b/PixelImage/UIKit.swift @@ -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 * (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) +} From ad2714dd05a5ea7f8fcb810279621bbe9b05b18d Mon Sep 17 00:00:00 2001 From: vinivendra Date: Mon, 29 Feb 2016 17:00:30 -0500 Subject: [PATCH 28/31] Refactored timer parameters, added vertex parameters. --- PixelImage/Matrix.swift | 20 -------------------- PixelImage/Metaball.swift | 40 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 40 insertions(+), 20 deletions(-) diff --git a/PixelImage/Matrix.swift b/PixelImage/Matrix.swift index 7397856..05c866b 100644 --- a/PixelImage/Matrix.swift +++ b/PixelImage/Matrix.swift @@ -70,23 +70,3 @@ struct Matrix: CustomStringConvertible { } } } - -class EdgeAnimationParameters { - let startDate: NSDate - let duration: Float - let fadeIn: Bool - let i: Int - let j: Int - - func unpack() -> (startDate: NSDate, duration: Float, fadeIn: Bool, i: Int, j: Int) { - return (startDate, duration, fadeIn, i, j) - } - - init(startDate: NSDate, duration: Float, fadeIn: Bool, i: Int, j: Int) { - self.startDate = startDate - self.duration = duration - self.fadeIn = fadeIn - self.i = i - self.j = j - } -} diff --git a/PixelImage/Metaball.swift b/PixelImage/Metaball.swift index d2f4f8a..c94ad6b 100644 --- a/PixelImage/Metaball.swift +++ b/PixelImage/Metaball.swift @@ -18,3 +18,43 @@ class Metaball: UIView { super.init(coder: aDecoder) } } + +class EdgeAnimationParameters { + let startDate: NSDate + let duration: Float + let fadeIn: Bool + let i: Int + let j: Int + + func unpack() -> (startDate: NSDate, duration: Float, fadeIn: Bool, i: Int, j: Int) { + return (startDate, duration, fadeIn, i, j) + } + + init(startDate: NSDate, duration: Float, fadeIn: Bool, i: Int, j: Int) { + self.startDate = startDate + self.duration = duration + self.fadeIn = fadeIn + self.i = i + self.j = j + } +} + +class VertexAnimationParameters { + let startDate: NSDate + let duration: Float + let origin: CGPoint + let destination: CGPoint + let metaball: Metaball + + func unpack() -> (startDate: NSDate, duration: Float, origin: CGPoint, destination: CGPoint, metaball: Metaball) { + return (startDate, duration, origin, destination, metaball) + } + + init(startDate: NSDate, duration: Float, origin: CGPoint, destination: CGPoint, metaball: Metaball) { + self.startDate = startDate + self.duration = duration + self.origin = origin + self.destination = destination + self.metaball = metaball + } +} From f8f56b30fe7b0e140f8184446c7bc85802bac25e Mon Sep 17 00:00:00 2001 From: vinivendra Date: Mon, 29 Feb 2016 17:00:53 -0500 Subject: [PATCH 29/31] Refactored colors, added edge animations. --- PixelImage/Metaball.swift | 2 +- PixelImage/MetalMetaballRenderer.swift | 14 ++--- PixelImage/ViewController.swift | 75 +++++++++++++++++++++++--- 3 files changed, 75 insertions(+), 16 deletions(-) diff --git a/PixelImage/Metaball.swift b/PixelImage/Metaball.swift index c94ad6b..536da28 100644 --- a/PixelImage/Metaball.swift +++ b/PixelImage/Metaball.swift @@ -14,7 +14,7 @@ class Metaball: UIView { } required init?(coder aDecoder: NSCoder) { - color = UIColor(randomFlatColorOfShadeStyle: .Light) + self.color = UIColor(randomFlatColorOfShadeStyle: .Light) super.init(coder: aDecoder) } } diff --git a/PixelImage/MetalMetaballRenderer.swift b/PixelImage/MetalMetaballRenderer.swift index bddef0b..2e3ef7a 100644 --- a/PixelImage/MetalMetaballRenderer.swift +++ b/PixelImage/MetalMetaballRenderer.swift @@ -2,7 +2,7 @@ import Metal import UIKit import ChameleonFramework -class MetalMetaballRenderer { +@objc class MetalMetaballRenderer: NSObject { typealias TargetView = UIImageView @@ -47,7 +47,7 @@ class MetalMetaballRenderer { idleComputeContext = MTLComputeContext(size: targetView.size, texture: texture2) } - func updateTargetView() { + internal func updateTargetView() { let timeout = dispatch_time(DISPATCH_TIME_NOW, 1000000000) dispatch_semaphore_wait(semaphore, timeout) @@ -81,7 +81,7 @@ class MetalMetaballRenderer { } } - func renderToContext(computeContext: MTLComputeContext) { + internal func renderToContext(computeContext: MTLComputeContext) { let width = Int(targetView.width) let height = Int(targetView.height) @@ -113,11 +113,11 @@ class MetalMetaballRenderer { commandBuffer.commit() commandBuffer.waitUntilCompleted() } catch _ { - print("Error!") + assertionFailure() } } - func createImageFromContext(computeContext: MTLComputeContext) -> UIImage { + internal func createImageFromContext(computeContext: MTLComputeContext) -> UIImage { let texture = computeContext.texture // Get image info @@ -152,7 +152,7 @@ class MetalMetaballRenderer { return image } - func metaballEdgesBuffer() -> MTLBuffer { + internal func metaballEdgesBuffer() -> MTLBuffer { let floats = dataSource.metaballGraph.adjacencyMatrix.buffer let bufferLength = floats.count * sizeof(Float) @@ -162,7 +162,7 @@ class MetalMetaballRenderer { return buffer } - func metaballBuffer() -> MTLBuffer { + internal func metaballBuffer() -> MTLBuffer { // Create Float array for buffer // Exclude metaballs far from the view's bounds let border: CGFloat = 100 diff --git a/PixelImage/ViewController.swift b/PixelImage/ViewController.swift index 799cfbe..6d014db 100644 --- a/PixelImage/ViewController.swift +++ b/PixelImage/ViewController.swift @@ -28,8 +28,10 @@ class ViewController: UIViewController, MetaballDataSource { for i in 1...5 { let sine = sin(Double(i) * 2 * M_PI / 5) let cosine = cos(Double(i) * 2 * M_PI / 5) - positions.append(CGPoint(x: Double(screenWidth) / 2 + sine * 150, - y: Double(screenHeight) / 2 + cosine * 150)) + let radius: Double = 150 + let x = Double(screenWidth) / 2 + sine * radius + let y = Double(screenHeight) / 2 + cosine * radius + positions.append(CGPoint(x: x, y: y)) } let colors = @@ -52,13 +54,15 @@ class ViewController: UIViewController, MetaballDataSource { metaballView.addSubview(metaball) } - addEdge(0, 1) - addEdge(0, 2) - addEdge(0, 3) - addEdge(0, 4) - addEdge(0, 5) + delay(1.0) { + self.addEdge(0, 1) + self.addEdge(0, 2) + self.addEdge(0, 3) + self.addEdge(0, 4) + self.addEdge(0, 5) + } - delay { + delay(2.3) { self.removeEdge(0, 1) self.removeEdge(0, 2) self.removeEdge(0, 3) @@ -66,6 +70,34 @@ class ViewController: UIViewController, MetaballDataSource { self.removeEdge(0, 5) } + delay(4) { + for i in 1...5 { + UIView.animateWithDuration(1.0, delay: 0, options: UIViewAnimationOptions.CurveEaseInOut, animations: { () -> Void in + let sine = sin(Double(i) * 2 * M_PI / 5) + let cosine = cos(Double(i) * 2 * M_PI / 5) + let radius: Double = 85 + let x = Double(screenWidth) / 2 + sine * radius + let y = Double(screenHeight) / 2 + cosine * radius + let metaball = metaballs[i] + self.animateMetaball(metaball, toPoint: CGPoint(x: x, y: y)) + }, completion: nil) + } + } + + delay(6) { () -> () in + for i in 1...5 { + UIView.animateWithDuration(1.0, delay: 0, usingSpringWithDamping: 0.5, initialSpringVelocity: 0, options: UIViewAnimationOptions.CurveEaseInOut, animations: { () -> Void in + let sine = sin(Double(i) * 2 * M_PI / 5) + let cosine = cos(Double(i) * 2 * M_PI / 5) + let radius: Double = 150 + let x = Double(screenWidth) / 2 + sine * radius + let y = Double(screenHeight) / 2 + cosine * radius + let metaball = metaballs[i] + self.animateMetaball(metaball, toPoint: CGPoint(x: x, y: y)) + }, completion: nil) + } + } + renderer.state = .Running } @@ -77,6 +109,33 @@ class ViewController: UIViewController, MetaballDataSource { animateEdge(i, j, fadeIn: false) } + func animateMetaball(metaball: Metaball, toPoint destination: CGPoint) { + let parameters = VertexAnimationParameters(startDate: NSDate(), duration: 1.0, origin: metaball.center, destination: destination, metaball: metaball) + NSTimer.scheduledTimerWithTimeInterval(1.0 / 60.0, target: self, selector: "animateMetaballWithTimer:", userInfo: parameters, repeats: true) + } + + func animateMetaball(withTimer timer: NSTimer) { + guard let userInfo = timer.userInfo as? VertexAnimationParameters else { preconditionFailure() } + let (animationStart, duration, origin, destination, metaball) = (userInfo).unpack() + + let now = NSDate() + var timeElapsed = Float(now.timeIntervalSinceDate(animationStart)) + + if timeElapsed > duration { + timer.invalidate() + timeElapsed = duration + } + + let linearValue = timeElapsed / duration + let interpolatedValue = interpolateSmooth(linearValue) + print(interpolatedValue) + + let position = origin + ((destination - origin) * interpolatedValue) + metaball.center = position + + renderer.state = .Running + } + func animateEdge(i: Int, _ j: Int, fadeIn: Bool) { let parameters = EdgeAnimationParameters(startDate: NSDate(), duration: edgeAnimationDuration, fadeIn: fadeIn, i: i, j: j) NSTimer.scheduledTimerWithTimeInterval(1.0 / 60.0, target: self, selector: "animateEdgeWithTimer:", userInfo: parameters, repeats: true) From 6eba596c0d286ab7f64b4b97be1db924e5f7bed3 Mon Sep 17 00:00:00 2001 From: vinivendra Date: Mon, 29 Feb 2016 17:28:52 -0500 Subject: [PATCH 30/31] Updated the readme. --- Examples/Animation.gif | Bin 0 -> 450873 bytes README.md | 21 +++++++++++++++++++-- 2 files changed, 19 insertions(+), 2 deletions(-) create mode 100644 Examples/Animation.gif diff --git a/Examples/Animation.gif b/Examples/Animation.gif new file mode 100644 index 0000000000000000000000000000000000000000..1763f13a3acff5092a69babc79cc698afdd72818 GIT binary patch literal 450873 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�yG|*Z8Y&0;2&N(?*q;8;q(FYS$+I$6=lzw}e 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

5bp8EHd z>gg?t5f_h+=Q8A|L>W?LN>sohrdm9z%sQ#+^+hdh&z8Fz5-az<`V>*$$r-Y$&@8sH zinRTzb?;9yGqfvX_}=kt6*%kWqdM{umbXXN?(d#^82ab8_KX&ZRr6lLAF^fnTWh+3 zCneOGi%jNg)P+KyYi3d|p4(LFClMuPWW-Xrtj)ChkZ|5p@iI=zDMn7KoUS@^eE9s8 zP^e~0J70@Z>vDUS`xRkwheQSUKCZ%wFEihvVMMx}&h{Fm_G|py-R%|U==xGxqb+#+ znb(Uia?0rvXzdpt97p`?J4zo}@R`N__q)scb8JI*7w9pQ2}hbes#|NFPcX~{Q}{g( zEOwEK@rLoB)YLim(y9;VY8Q)4%pdnc_-hhQ>S$dPhY*t!C-K>wC(}dyYO|9cztm0? z>Yp4Ii3J!jXaN7HK7{a{TjC=jRE zWF$4>RIbp)A@H+fgy7D#;|}K}cR^xai&eUU0gdQigu5mM6uoPLZpi4fr{Y3wG_P44 z!ZYI0Z0x7{FtLm%Q9bg3rkrM)nn!u-{-e41E0p##*aWRWQ7Ih3jZpuV#$|6mJG(M* zuP9jnC}KsjV()MBOT=7>rfDxgzm zLvla)0f*z4ZIu(sk*^F@T9Wv9@c`Vq+0OV_lFmmAzlbK*I=b}8C|mOo(MgQ+2*rgp z7qSqQJM=wP(Q|a%1lmlturb}HqerRUWspQObnpQy@pCWj?SJYnZXPWbI}Vzfbg5}s z8Zn&)RqKMud%gTVpEY~F+vnm1jUMG<$^^Uot3_cUM5W9tZ;a}jz6+&ZcFP>SG;@bO z0#te*IdEmlT<=|L%wJ$oy7(SBVqnNqlxknueFKgeD^PpU)Mg*rSU*tG<{8DGoM&e9 z__Js;1FvntX{P=zK468ul2$takbBMqEVYUC2f2^uZQh_Ko<1)Bl3BO&=-wk{Z^grq zV$1?6@uYov3>CdaxuAI(cuiCuY+rOjoIl~Jw;6)`v1BIVeS|Jn0L!LTp8NtEN zWrki^nsrFTI;`21pu=AkUIK*`pMt0cH;rWBic1Bi`!v3!vdj;?JG$?{>eLA>hua3H zrCK~8p;i2_;EPvn%ec~dbE?ikv0PKCqQb`3!l5^47T#fN=;!P+mp;}V#S+EoU(_wE zZLL2ml^Fj?YWeY8Y9zC9s$A>z`n(7+a>~D`(Ep(<%Y6Dl z+y6-AMn{O^CgR&jQqPmH3>vV2lznbX*2$ou^Hj13Fd^T&`t8l2f1&v!M*F>EE+uueH_+SBOmp-H4ed)ztKEOsq; z0vZA<5j-0;3@T3Gx6j%?d`f<}R)M-@!jR#bipFVilqO9Enlq9Fry%N77=5!zducNv z{wTjM2`93CP6UoRHcX&=EsP*V;g;|IjpgbVy9x;D`H+_s|BMBHgh5)>LU8qbsa}&f zQ0@z*S-zAZkDy?JEJgnK&2+GqtGUa+;q$5-aS_#4a@@&xL+zxTPB%zE6l~&CRDZhn zCTJOasNe7=v~1E>m3-VeUc}nb*P%2J1o0MJXp4N46yR}Fb^rIejrZJT%&E;L^6hfN zD#6_F7*oV;rXKNB)^=(%6)Jh?wI^PX0ycG^LfccFh$;0Q3B4Uz?s4bNw_bYPu@gia zb2PF)kn`(153cYjXiO_-7rJf-m!rkzsdJos5$NAImhnb zb)MuU)zEIR6X}pq^-7d!&r51O)YH`R0hs!E(p$b=egfBXL6*rd%60+`7f)e_QRBBd zo$06HWoTihb1=_+St|38CE^@!8wDz+dQvUoGfOU5xUo)a87UqWr2fi8Hh+ch&iIIo zAhR<)=mcCk&`Z=uCRNGg*j^cT+u(RqC+*Y~BSoc;3JxGFEp}F_87wMC86hY;TAvYt zgEF}Y+I;;lh?aeTD)0_?`QPIqSpes5EAr1?`FDwNBVlTy951yFQKnDudt1jVb)@uY z3=Ia>hPF%1k|ns7S7n~m6gDRSiK-e7@j|*9gje0Hx)6Aa9A1NB;DA~^K)`@t5%H3L zuIovgq~ZeAc<%ZE0>(62PhqwwZ`;n-x1?80z()nO7>HHDr$0H*(Vf%f5blX_>yZ;d z2mLty<{EN>bV$8K2!BlB-uD>CJ!D_rOwf$*(!Ub&scv9~Pq zFF9nNg~(nSS}&EGnsM!~osD$l{z&6_Z3jwP*)KD%lc1@-NZ%d&(o}&3iMsaW*X8WD zT1F1_aUWj){P}}#>a9bgcgcp4=@E6C3L)`)H*J;r8A9htIz%+ z%(obSmzzd5Y~{-TBu+K^g18@4lAN$r#*PW_W|||-C2&(1vvSGL`DJETTxh@ZKc;LLzH8l=gIkLPBrs% zQiP+`zubAb$P}nEPdCUZm}dkK9H4M%ehN#;$pHd=e_mv+&`>XSOoq{b@?`KbNiEH%kee(QnC89y`Q@!d9 zK6U`6?X*3k=`aCkZ;Mbn@riLBv&xY>?h#Rd8Lk-wd!O3UFjbN;aSz*v=6)*GD{x2C z084pp595__n~m(;$RMNSRkK3tg}?5hKMy^v7K^<640FCYJeu%!o*wp1cXFWoUljOrUuCBW3MF)LKVeUZ6yd!ufz1(x5OjiY->Y!1Y=Y5NBiI&C6{4>E`rGK^UgcK@CGQV(hr0eV`d2XHj5UKnepyAP%f-D?m7u-Wzv}o{N~DL0)7Ssf&-q9WoSK#Lx`^~dPN7lWRaZpO?;w%u>QH|4yIkQ}!&V!d z#e~Xem`shf2^W>rS1hqCv$Zr#fMxnInYYXkaVm?Oyo--&qLL3n$~>O_2h+*?{4e!zpU=?g@Wfhq7DE+BJ+f4M{IPDH=QF!NY({g61Ed5T4@{h5b zTYfGb=7_gav5sR*`Q`Fr=T3CXo6&L2>Z!#}&I3DK4SC;5-=@`~qk)#r8XBd{N0;k1&Ps%_ne4#wHICt>JF%Wmw_~F!3Q{vYBA%P%Q30^nfv%>S+A}IY z7kc*~z%P8i>t5I67TSlg_3P67M1NE&(cbMEpbb?s;c-&)Z1z`)%|JebYUFVsSxWn5 z_f9)jy$F$a-_&aw<&18wL{9$elrxT!;6JP+gGD`6bIeEP@0RE!!I;iLW+XYc*iR0D16 zu9cq9RtgY$5;`K%rHM%h5UMm45H%o3u>m5@mIj1s0tf+HC?cRJASfzoC@P{NC@OY9 z?0y=sVddmId*6NUzUO()5Bp!pv)0O(bB^&2-25TagsU)3O#F!;B~0;VE7i$yza@j4 zVx9$I7=tTMz(P;Z-$jr2njtg!ak*Pk56Vcn3121ry7JtinB;7tW2T z)Jak{&4~-#KTJ`&b3gd?US)tL^vv2PeR%8lwU(8W6!ppXtLNg*@*p~TS!p9CxHw9n z40ol?`?Dm`kScqrW1R6nMhW*(14TPdWKLQq2F!_kF~V-dkB>$yx>y`~48z~j81dp= z{y7{)<8u&p&!+&$$97sZo-9JiG+l?xM$3m2Y?xXnCV4JW3jfUjU9m&&y(IABZhg4{ zsXrDe;PoNw;MyoA<-slyz;bzEay>P=rp!sh5)|lT=B9tEBl>vkl+u7e$f+)JUqsR; zdc+zXgvR6vrpu=-cijDIp7vb~wCn^1Pe6!IOI1$BsZTIToZf6bv5(x}A1JC&BZpCD(M+_QSsRH9QnqTQ!Ph-J@wW_DVyawsqB2{(8fubOtSOJ+@VmP!wm7O>u-v46 zh&1_~T~m7CG)C&(w0ZR=mPVMcP( zUy)9g)8@Sx>rUd=sm#3Sef7_NWJn$*;)62-;+R^#&o>N-GB+~(Tuj_tprbMqm8CN> zW!o#rT9PnU+;sjPvYxwqbqp13eqxGsM;~(eJ;nNV4)FQ-WX|91y$h9&$k^;>U&&~4 zmHc9m83i5|(`OM3ewC%*toef7YYivc+Xuo5f3KoJiKduKBU{Vc64TM}Hw=vsT6W$L znd;fze=dy=KHt%)wvjwEvuIj@di;!{QD)0*kFGHdkta8=G-*F2CIcw&MY@h!K1c5IBeo^ivhUNy> zJbfJ7|D4D)nirW2=u9)`=QcFr!rF5+(}37%|H>T%Av$$s7J=Pv;|c-{xobxk+U+&! z!P#izW1BKLz;G6!nyP0J>ILKO-4_A-m4%;Gj(#%C`79%{5Tkh?w7j>m&BVbhiC{Iv zUpED3aWQMTdyuh9CH(=;*?fuZ&gO3Z;(1NaNr0iOHIyO1m6||^%bK*nco_!PjzUeM z*0dwh-}3Z&P|86AWh;*y?<&|eQLtyefJ+wf zT|~l2(Ji8HTD&N&&u7_~sB}T(ZQ>%buK+#k;6WTGFGm(r0k;vuw>6{}^*|9~Bs&DC z&UU~`oSBnIoIJSBWiRya@Zo_>qwQtFmVPPHq$>AF=FO1=v7PX|2wFS|gVBqnRmoBm z8cszt5(|e1m%G+e;BzTO6R?T;5?y8N8Z5nHQo3NQ?dni6F<;!>T&gvuC7UQHe6fsY zSC*gc_6kE@H(AQUAo_`9{};JJ42Y*JtDKDxHiO!>`UXy-0ek&-79wfIzP3KM4?~Dl zK)k;W8x(>-4iyv*lnhA7i|!VzX)s`N5!^_m*%f`f*!`PJz($7>8E@aCF@%SF+Z`5i z!=!lc!fCg(=D@om2OFh{F^BzzT&ZbaIX(zCNQSPyDNwGt4om}%ewAT46gF1Ww}Fr} zWxhL|;L+|F?h5TDRIN#d_RLkpeAb*};F*x^o@P*;Q%vsIpAZFY@WZp(ow*`o{f8u< zhxws?LEGw$NfNRL$A=$@3@9Y-F0ayzUBZ7;wcD>c))I=!!Mky*g%g;a*Q--o$f}C! z-E8o-UA1PPUbJ5=21L8GSKRpmXp7w{sph9d@F^EX8I~3n6zF){AS&|L?J(TIF|3p4^$WUh4MI=hS7uwGNN#65zs8b2W z$1RaYb_xOR0heurH=|Q@u-I0B+x>O`#1mp2FJ^=XVB?vXP)Ne*}!ejXgD0=Bl2=@9#_| z5LRgf?0HM~N5hzl@u1te({dtGxT=}nk0IV})(m!;blLhk&MB2?+3GY)*czC>3vTb&Uw108`qd8zdR!H5vW7aHj3Y(N#JqxE(w z^Ga_dHni5}`omNPQuEEqT+1>>sxS9gWpwVLhGPFLtL8V!3!MIvw)^ky9B+Bl`aYm1 zzxCb8mgL;Er(UldChw4zii=!t{p6s1exa@_z*hfMeqX- zJi;O8w8)31!Wc~A-R`$9sxKhTL-3o5zFXqI;CzqlV{y(MAQaAvPhHacav*w5E&0O> ztovMM4Wt`cY^X`<0h-QTz;lFGDz(zAubnAN3gHAe>OJ3Va@JaWam~l?mg=|*y-A!t z%PH0sAZ{1;mj2G)mV6?~7S={z@~&UH%wbkQL{bkq=DsCVVu+OY-;?{p-6NeCmKy&| zDUoGP;_mi*eRiTqpc?cD9wH9xe5VAwGQLU?kChLgcgByxYa}bTIUsc zwk36{iR=O0M~Zxxn|110Lj#6C6$NzFdT615JxD9EH9=Z(HCp3Y)qX)%K_&I1V@U&8 z=pCgv7K^u_UpcqqRPpP+f!kmB@Dsca_ucLdH_V)L99r$14;h2wX5m27#o02KMm|3K zb| z!`OWkSG(K6RdfVWp(=@(hv}Hv74TToQi-id$GJlrsYo+M3<+Uo^c&PY?^F{g7!zlE zti9Ab*xF756-dA3zNb}fBQ)e31;hHsh>xS^6G#qnGOrUtl|zYVq9+c zQ8uzeU8tTpBuFH2uonReW^r?q+GPl{<>Xy;)D?^YbSJ3Hmd;6}s#=xKTiVBerewAY zLLRwt_j6ca8yF1m;h{f4Nj>g5+#s_Re^@L2Sfb*UcZNxg9J*Rcw|=|K9FDQ!u-rH4 z`RDN~T&bwjQryEgD>HHtcuIWqq{ofVxb&qIC1ai|f9-7;S}5#|rKAm68N5ox3NaRd z+54Npz@vc``{~H!JeCi3I=pm{dJ>D}fieE#C6Tlf8?PT{v_4vGcC!wRyr*Jd6^d

kogf^Y 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 literal 0 HcmV?d00001 diff --git a/README.md b/README.md index 81fa351..df3b4bf 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,19 @@ -# metal-metaballs -A 'playground' project for rendering metaball-like graphics in metal. +![Physics simulation](https://raw.githubusercontent.com/vinivendra/metal-metaballs/master/Examples/Animation.gif) + +# Metal Metaballs + +Metal Metaballs is a framework for rendering graphs in an aesthetically pleasing way. It uses an adapted version of [metaball](https://en.wikipedia.org/wiki/Metaballs) math to create fluid graphics, allow vertices to merge with each other and allow edges to flow and animate smoothly. + +Vertices and edges may be added and removed at will and can interact with gestures. Rendering a fullscreen view continuously uses only about 19% of the CPU at 60 fps, though normally the view will only be updated when needed. All rendering is done in a background thread, so the main thread remains almost completely free. These measurements were done using an iPhone 6S Plus (which has more pixels to calculate but more power to do so), so YMMV. + +This framework is being developed to make me learn several different design patters, APIs and features used in iOS and in graphics applications. So far, it uses: + +- [**Metaball**](https://en.wikipedia.org/wiki/Metaballs) math, in an adapted version, to render the graphics. +- [**Metal**](https://developer.apple.com/metal/) compute shaders to draw the metaballs dynamically. +- [**Grand Central Dispatch**](https://developer.apple.com/library/ios/documentation/Performance/Reference/GCD_libdispatch_Ref/) for doing CPU and GPU calculations simultaneously. +- [**Double buffering**](https://en.wikipedia.org/wiki/Multiple_buffering), to speed up rendering times. +- Different [**interpolations**](http://flexmonkey.blogspot.ca/2016/01/playing-with-interpolation-functions-in.html) for animations. + +## Installation + +Just download the app and run it on your metal-enabled device of choice :) From ea6fc18350662dd62580ae4461100aad3f54f40a Mon Sep 17 00:00:00 2001 From: vinivendra Date: Mon, 29 Feb 2016 17:29:57 -0500 Subject: [PATCH 31/31] Updated the readme. --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index df3b4bf..a2775da 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -![Physics simulation](https://raw.githubusercontent.com/vinivendra/metal-metaballs/master/Examples/Animation.gif) +![Example Animation](https://raw.githubusercontent.com/vinivendra/metal-metaballs/master/Examples/Animation.gif) # Metal Metaballs