@@ -43,6 +43,31 @@ class ViewController: UIViewController, MetaballDataSource {
43 metaballView.addSubview(metaball)
43 metaballView.addSubview(metaball)
46+ let parameters = EdgeAnimationParameters(startDate: NSDate(), duration: 3, fadeIn: true, i: 0, j: 2)
47+ NSTimer.scheduledTimerWithTimeInterval(1.0/60.0, target: self, selector: "animateEdgeWithTimer:", userInfo: parameters, repeats: true)
49+ renderer.state = .Running
52+ func animateEdge(withTimer timer: NSTimer) {
53+ let (animationStart, duration, fadeIn, i, j) = (timer.userInfo as! EdgeAnimationParameters).unpack()
56+ var timeElapsed = Float(now.timeIntervalSinceDate(animationStart))
58+ if timeElapsed > duration {
60+ timeElapsed = duration
63+ let interpolee = timeElapsed / duration
64+ let interpolated = interpolee ^ 3
66+ let newValue = fadeIn ? interpolated : (1 - interpolated)
68+ metaballGraph.adjacencyMatrix.set(i, j, value: newValue)
69+ metaballGraph.adjacencyMatrix.set(j, i, value: newValue)
46 renderer.state = .Running
71 renderer.state = .Running