PageRenderTime 50ms CodeModel.GetById 19ms RepoModel.GetById 1ms app.codeStats 0ms

/plugins/sparklinlabs/tweenjs/runtime.js

https://gitlab.com/Purexo/Pong
JavaScript | 762 lines | 419 code | 328 blank | 15 comment | 84 complexity | d6ebfa6f463cece22a88a67fabaa0805 MD5 | raw file
  1. (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(require,module,exports){
  2. window["TWEEN"] = require("tween.js");
  3. },{"tween.js":2}],2:[function(require,module,exports){
  4. /**
  5. * Tween.js - Licensed under the MIT license
  6. * https://github.com/sole/tween.js
  7. * ----------------------------------------------
  8. *
  9. * See https://github.com/sole/tween.js/graphs/contributors for the full list of contributors.
  10. * Thank you all, you're awesome!
  11. */
  12. // Date.now shim for (ahem) Internet Explo(d|r)er
  13. if ( Date.now === undefined ) {
  14. Date.now = function () {
  15. return new Date().valueOf();
  16. };
  17. }
  18. var TWEEN = TWEEN || ( function () {
  19. var _tweens = [];
  20. return {
  21. REVISION: '14',
  22. getAll: function () {
  23. return _tweens;
  24. },
  25. removeAll: function () {
  26. _tweens = [];
  27. },
  28. add: function ( tween ) {
  29. _tweens.push( tween );
  30. },
  31. remove: function ( tween ) {
  32. var i = _tweens.indexOf( tween );
  33. if ( i !== -1 ) {
  34. _tweens.splice( i, 1 );
  35. }
  36. },
  37. update: function ( time ) {
  38. if ( _tweens.length === 0 ) return false;
  39. var i = 0;
  40. time = time !== undefined ? time : ( typeof window !== 'undefined' && window.performance !== undefined && window.performance.now !== undefined ? window.performance.now() : Date.now() );
  41. while ( i < _tweens.length ) {
  42. if ( _tweens[ i ].update( time ) ) {
  43. i++;
  44. } else {
  45. _tweens.splice( i, 1 );
  46. }
  47. }
  48. return true;
  49. }
  50. };
  51. } )();
  52. TWEEN.Tween = function ( object ) {
  53. var _object = object;
  54. var _valuesStart = {};
  55. var _valuesEnd = {};
  56. var _valuesStartRepeat = {};
  57. var _duration = 1000;
  58. var _repeat = 0;
  59. var _yoyo = false;
  60. var _isPlaying = false;
  61. var _reversed = false;
  62. var _delayTime = 0;
  63. var _startTime = null;
  64. var _easingFunction = TWEEN.Easing.Linear.None;
  65. var _interpolationFunction = TWEEN.Interpolation.Linear;
  66. var _chainedTweens = [];
  67. var _onStartCallback = null;
  68. var _onStartCallbackFired = false;
  69. var _onUpdateCallback = null;
  70. var _onCompleteCallback = null;
  71. var _onStopCallback = null;
  72. // Set all starting values present on the target object
  73. for ( var field in object ) {
  74. _valuesStart[ field ] = parseFloat(object[field], 10);
  75. }
  76. this.to = function ( properties, duration ) {
  77. if ( duration !== undefined ) {
  78. _duration = duration;
  79. }
  80. _valuesEnd = properties;
  81. return this;
  82. };
  83. this.start = function ( time ) {
  84. TWEEN.add( this );
  85. _isPlaying = true;
  86. _onStartCallbackFired = false;
  87. _startTime = time !== undefined ? time : ( typeof window !== 'undefined' && window.performance !== undefined && window.performance.now !== undefined ? window.performance.now() : Date.now() );
  88. _startTime += _delayTime;
  89. for ( var property in _valuesEnd ) {
  90. // check if an Array was provided as property value
  91. if ( _valuesEnd[ property ] instanceof Array ) {
  92. if ( _valuesEnd[ property ].length === 0 ) {
  93. continue;
  94. }
  95. // create a local copy of the Array with the start value at the front
  96. _valuesEnd[ property ] = [ _object[ property ] ].concat( _valuesEnd[ property ] );
  97. }
  98. _valuesStart[ property ] = _object[ property ];
  99. if( ( _valuesStart[ property ] instanceof Array ) === false ) {
  100. _valuesStart[ property ] *= 1.0; // Ensures we're using numbers, not strings
  101. }
  102. _valuesStartRepeat[ property ] = _valuesStart[ property ] || 0;
  103. }
  104. return this;
  105. };
  106. this.stop = function () {
  107. if ( !_isPlaying ) {
  108. return this;
  109. }
  110. TWEEN.remove( this );
  111. _isPlaying = false;
  112. if ( _onStopCallback !== null ) {
  113. _onStopCallback.call( _object );
  114. }
  115. this.stopChainedTweens();
  116. return this;
  117. };
  118. this.stopChainedTweens = function () {
  119. for ( var i = 0, numChainedTweens = _chainedTweens.length; i < numChainedTweens; i++ ) {
  120. _chainedTweens[ i ].stop();
  121. }
  122. };
  123. this.delay = function ( amount ) {
  124. _delayTime = amount;
  125. return this;
  126. };
  127. this.repeat = function ( times ) {
  128. _repeat = times;
  129. return this;
  130. };
  131. this.yoyo = function( yoyo ) {
  132. _yoyo = yoyo;
  133. return this;
  134. };
  135. this.easing = function ( easing ) {
  136. _easingFunction = easing;
  137. return this;
  138. };
  139. this.interpolation = function ( interpolation ) {
  140. _interpolationFunction = interpolation;
  141. return this;
  142. };
  143. this.chain = function () {
  144. _chainedTweens = arguments;
  145. return this;
  146. };
  147. this.onStart = function ( callback ) {
  148. _onStartCallback = callback;
  149. return this;
  150. };
  151. this.onUpdate = function ( callback ) {
  152. _onUpdateCallback = callback;
  153. return this;
  154. };
  155. this.onComplete = function ( callback ) {
  156. _onCompleteCallback = callback;
  157. return this;
  158. };
  159. this.onStop = function ( callback ) {
  160. _onStopCallback = callback;
  161. return this;
  162. };
  163. this.update = function ( time ) {
  164. var property;
  165. if ( time < _startTime ) {
  166. return true;
  167. }
  168. if ( _onStartCallbackFired === false ) {
  169. if ( _onStartCallback !== null ) {
  170. _onStartCallback.call( _object );
  171. }
  172. _onStartCallbackFired = true;
  173. }
  174. var elapsed = ( time - _startTime ) / _duration;
  175. elapsed = elapsed > 1 ? 1 : elapsed;
  176. var value = _easingFunction( elapsed );
  177. for ( property in _valuesEnd ) {
  178. var start = _valuesStart[ property ] || 0;
  179. var end = _valuesEnd[ property ];
  180. if ( end instanceof Array ) {
  181. _object[ property ] = _interpolationFunction( end, value );
  182. } else {
  183. // Parses relative end values with start as base (e.g.: +10, -3)
  184. if ( typeof(end) === "string" ) {
  185. end = start + parseFloat(end, 10);
  186. }
  187. // protect against non numeric properties.
  188. if ( typeof(end) === "number" ) {
  189. _object[ property ] = start + ( end - start ) * value;
  190. }
  191. }
  192. }
  193. if ( _onUpdateCallback !== null ) {
  194. _onUpdateCallback.call( _object, value );
  195. }
  196. if ( elapsed == 1 ) {
  197. if ( _repeat > 0 ) {
  198. if( isFinite( _repeat ) ) {
  199. _repeat--;
  200. }
  201. // reassign starting values, restart by making startTime = now
  202. for( property in _valuesStartRepeat ) {
  203. if ( typeof( _valuesEnd[ property ] ) === "string" ) {
  204. _valuesStartRepeat[ property ] = _valuesStartRepeat[ property ] + parseFloat(_valuesEnd[ property ], 10);
  205. }
  206. if (_yoyo) {
  207. var tmp = _valuesStartRepeat[ property ];
  208. _valuesStartRepeat[ property ] = _valuesEnd[ property ];
  209. _valuesEnd[ property ] = tmp;
  210. }
  211. _valuesStart[ property ] = _valuesStartRepeat[ property ];
  212. }
  213. if (_yoyo) {
  214. _reversed = !_reversed;
  215. }
  216. _startTime = time + _delayTime;
  217. return true;
  218. } else {
  219. if ( _onCompleteCallback !== null ) {
  220. _onCompleteCallback.call( _object );
  221. }
  222. for ( var i = 0, numChainedTweens = _chainedTweens.length; i < numChainedTweens; i++ ) {
  223. _chainedTweens[ i ].start( time );
  224. }
  225. return false;
  226. }
  227. }
  228. return true;
  229. };
  230. };
  231. TWEEN.Easing = {
  232. Linear: {
  233. None: function ( k ) {
  234. return k;
  235. }
  236. },
  237. Quadratic: {
  238. In: function ( k ) {
  239. return k * k;
  240. },
  241. Out: function ( k ) {
  242. return k * ( 2 - k );
  243. },
  244. InOut: function ( k ) {
  245. if ( ( k *= 2 ) < 1 ) return 0.5 * k * k;
  246. return - 0.5 * ( --k * ( k - 2 ) - 1 );
  247. }
  248. },
  249. Cubic: {
  250. In: function ( k ) {
  251. return k * k * k;
  252. },
  253. Out: function ( k ) {
  254. return --k * k * k + 1;
  255. },
  256. InOut: function ( k ) {
  257. if ( ( k *= 2 ) < 1 ) return 0.5 * k * k * k;
  258. return 0.5 * ( ( k -= 2 ) * k * k + 2 );
  259. }
  260. },
  261. Quartic: {
  262. In: function ( k ) {
  263. return k * k * k * k;
  264. },
  265. Out: function ( k ) {
  266. return 1 - ( --k * k * k * k );
  267. },
  268. InOut: function ( k ) {
  269. if ( ( k *= 2 ) < 1) return 0.5 * k * k * k * k;
  270. return - 0.5 * ( ( k -= 2 ) * k * k * k - 2 );
  271. }
  272. },
  273. Quintic: {
  274. In: function ( k ) {
  275. return k * k * k * k * k;
  276. },
  277. Out: function ( k ) {
  278. return --k * k * k * k * k + 1;
  279. },
  280. InOut: function ( k ) {
  281. if ( ( k *= 2 ) < 1 ) return 0.5 * k * k * k * k * k;
  282. return 0.5 * ( ( k -= 2 ) * k * k * k * k + 2 );
  283. }
  284. },
  285. Sinusoidal: {
  286. In: function ( k ) {
  287. return 1 - Math.cos( k * Math.PI / 2 );
  288. },
  289. Out: function ( k ) {
  290. return Math.sin( k * Math.PI / 2 );
  291. },
  292. InOut: function ( k ) {
  293. return 0.5 * ( 1 - Math.cos( Math.PI * k ) );
  294. }
  295. },
  296. Exponential: {
  297. In: function ( k ) {
  298. return k === 0 ? 0 : Math.pow( 1024, k - 1 );
  299. },
  300. Out: function ( k ) {
  301. return k === 1 ? 1 : 1 - Math.pow( 2, - 10 * k );
  302. },
  303. InOut: function ( k ) {
  304. if ( k === 0 ) return 0;
  305. if ( k === 1 ) return 1;
  306. if ( ( k *= 2 ) < 1 ) return 0.5 * Math.pow( 1024, k - 1 );
  307. return 0.5 * ( - Math.pow( 2, - 10 * ( k - 1 ) ) + 2 );
  308. }
  309. },
  310. Circular: {
  311. In: function ( k ) {
  312. return 1 - Math.sqrt( 1 - k * k );
  313. },
  314. Out: function ( k ) {
  315. return Math.sqrt( 1 - ( --k * k ) );
  316. },
  317. InOut: function ( k ) {
  318. if ( ( k *= 2 ) < 1) return - 0.5 * ( Math.sqrt( 1 - k * k) - 1);
  319. return 0.5 * ( Math.sqrt( 1 - ( k -= 2) * k) + 1);
  320. }
  321. },
  322. Elastic: {
  323. In: function ( k ) {
  324. var s, a = 0.1, p = 0.4;
  325. if ( k === 0 ) return 0;
  326. if ( k === 1 ) return 1;
  327. if ( !a || a < 1 ) { a = 1; s = p / 4; }
  328. else s = p * Math.asin( 1 / a ) / ( 2 * Math.PI );
  329. return - ( a * Math.pow( 2, 10 * ( k -= 1 ) ) * Math.sin( ( k - s ) * ( 2 * Math.PI ) / p ) );
  330. },
  331. Out: function ( k ) {
  332. var s, a = 0.1, p = 0.4;
  333. if ( k === 0 ) return 0;
  334. if ( k === 1 ) return 1;
  335. if ( !a || a < 1 ) { a = 1; s = p / 4; }
  336. else s = p * Math.asin( 1 / a ) / ( 2 * Math.PI );
  337. return ( a * Math.pow( 2, - 10 * k) * Math.sin( ( k - s ) * ( 2 * Math.PI ) / p ) + 1 );
  338. },
  339. InOut: function ( k ) {
  340. var s, a = 0.1, p = 0.4;
  341. if ( k === 0 ) return 0;
  342. if ( k === 1 ) return 1;
  343. if ( !a || a < 1 ) { a = 1; s = p / 4; }
  344. else s = p * Math.asin( 1 / a ) / ( 2 * Math.PI );
  345. if ( ( k *= 2 ) < 1 ) return - 0.5 * ( a * Math.pow( 2, 10 * ( k -= 1 ) ) * Math.sin( ( k - s ) * ( 2 * Math.PI ) / p ) );
  346. return a * Math.pow( 2, -10 * ( k -= 1 ) ) * Math.sin( ( k - s ) * ( 2 * Math.PI ) / p ) * 0.5 + 1;
  347. }
  348. },
  349. Back: {
  350. In: function ( k ) {
  351. var s = 1.70158;
  352. return k * k * ( ( s + 1 ) * k - s );
  353. },
  354. Out: function ( k ) {
  355. var s = 1.70158;
  356. return --k * k * ( ( s + 1 ) * k + s ) + 1;
  357. },
  358. InOut: function ( k ) {
  359. var s = 1.70158 * 1.525;
  360. if ( ( k *= 2 ) < 1 ) return 0.5 * ( k * k * ( ( s + 1 ) * k - s ) );
  361. return 0.5 * ( ( k -= 2 ) * k * ( ( s + 1 ) * k + s ) + 2 );
  362. }
  363. },
  364. Bounce: {
  365. In: function ( k ) {
  366. return 1 - TWEEN.Easing.Bounce.Out( 1 - k );
  367. },
  368. Out: function ( k ) {
  369. if ( k < ( 1 / 2.75 ) ) {
  370. return 7.5625 * k * k;
  371. } else if ( k < ( 2 / 2.75 ) ) {
  372. return 7.5625 * ( k -= ( 1.5 / 2.75 ) ) * k + 0.75;
  373. } else if ( k < ( 2.5 / 2.75 ) ) {
  374. return 7.5625 * ( k -= ( 2.25 / 2.75 ) ) * k + 0.9375;
  375. } else {
  376. return 7.5625 * ( k -= ( 2.625 / 2.75 ) ) * k + 0.984375;
  377. }
  378. },
  379. InOut: function ( k ) {
  380. if ( k < 0.5 ) return TWEEN.Easing.Bounce.In( k * 2 ) * 0.5;
  381. return TWEEN.Easing.Bounce.Out( k * 2 - 1 ) * 0.5 + 0.5;
  382. }
  383. }
  384. };
  385. TWEEN.Interpolation = {
  386. Linear: function ( v, k ) {
  387. var m = v.length - 1, f = m * k, i = Math.floor( f ), fn = TWEEN.Interpolation.Utils.Linear;
  388. if ( k < 0 ) return fn( v[ 0 ], v[ 1 ], f );
  389. if ( k > 1 ) return fn( v[ m ], v[ m - 1 ], m - f );
  390. return fn( v[ i ], v[ i + 1 > m ? m : i + 1 ], f - i );
  391. },
  392. Bezier: function ( v, k ) {
  393. var b = 0, n = v.length - 1, pw = Math.pow, bn = TWEEN.Interpolation.Utils.Bernstein, i;
  394. for ( i = 0; i <= n; i++ ) {
  395. b += pw( 1 - k, n - i ) * pw( k, i ) * v[ i ] * bn( n, i );
  396. }
  397. return b;
  398. },
  399. CatmullRom: function ( v, k ) {
  400. var m = v.length - 1, f = m * k, i = Math.floor( f ), fn = TWEEN.Interpolation.Utils.CatmullRom;
  401. if ( v[ 0 ] === v[ m ] ) {
  402. if ( k < 0 ) i = Math.floor( f = m * ( 1 + k ) );
  403. return fn( v[ ( i - 1 + m ) % m ], v[ i ], v[ ( i + 1 ) % m ], v[ ( i + 2 ) % m ], f - i );
  404. } else {
  405. if ( k < 0 ) return v[ 0 ] - ( fn( v[ 0 ], v[ 0 ], v[ 1 ], v[ 1 ], -f ) - v[ 0 ] );
  406. if ( k > 1 ) return v[ m ] - ( fn( v[ m ], v[ m ], v[ m - 1 ], v[ m - 1 ], f - m ) - v[ m ] );
  407. return fn( v[ i ? i - 1 : 0 ], v[ i ], v[ m < i + 1 ? m : i + 1 ], v[ m < i + 2 ? m : i + 2 ], f - i );
  408. }
  409. },
  410. Utils: {
  411. Linear: function ( p0, p1, t ) {
  412. return ( p1 - p0 ) * t + p0;
  413. },
  414. Bernstein: function ( n , i ) {
  415. var fc = TWEEN.Interpolation.Utils.Factorial;
  416. return fc( n ) / fc( i ) / fc( n - i );
  417. },
  418. Factorial: ( function () {
  419. var a = [ 1 ];
  420. return function ( n ) {
  421. var s = 1, i;
  422. if ( a[ n ] ) return a[ n ];
  423. for ( i = n; i > 1; i-- ) s *= i;
  424. return a[ n ] = s;
  425. };
  426. } )(),
  427. CatmullRom: function ( p0, p1, p2, p3, t ) {
  428. var v0 = ( p2 - p0 ) * 0.5, v1 = ( p3 - p1 ) * 0.5, t2 = t * t, t3 = t * t2;
  429. return ( 2 * p1 - 2 * p2 + v0 + v1 ) * t3 + ( - 3 * p1 + 3 * p2 - 2 * v0 - v1 ) * t2 + v0 * t + p1;
  430. }
  431. }
  432. };
  433. module.exports=TWEEN;
  434. },{}]},{},[1]);