cdf
Version:
A library for creating oldschool demo-like animations with JavaScript
2 lines • 9.95 kB
JavaScript
!function(t){var n={};function e(i){if(n[i])return n[i].exports;var r=n[i]={i:i,l:!1,exports:{}};return t[i].call(r.exports,r,r.exports,e),r.l=!0,r.exports}e.m=t,e.c=n,e.d=function(t,n,i){e.o(t,n)||Object.defineProperty(t,n,{enumerable:!0,get:i})},e.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},e.t=function(t,n){if(1&n&&(t=e(t)),8&n)return t;if(4&n&&"object"==typeof t&&t&&t.__esModule)return t;var i=Object.create(null);if(e.r(i),Object.defineProperty(i,"default",{enumerable:!0,value:t}),2&n&&"string"!=typeof t)for(var r in t)e.d(i,r,function(n){return t[n]}.bind(null,r));return i},e.n=function(t){var n=t&&t.__esModule?function(){return t.default}:function(){return t};return e.d(n,"a",n),n},e.o=function(t,n){return Object.prototype.hasOwnProperty.call(t,n)},e.p="",e(e.s=13)}([function(t,n,e){var i={TWO_PI:2*Math.PI,DEG_TO_RAD:Math.PI/180,RAD_TO_DEG:180/Math.PI,PI_BY_TWO:Math.PI/2,coordRotate:function(t,n,e){var r=e&&e[0]?e[0]:0,o=e&&e[1]?e[1]:0,s=Math.sin(n*i.DEG_TO_RAD),a=Math.cos(n*i.DEG_TO_RAD);return[s*(t[0]-r)+a*(t[1]-o)+r,s*(t[1]-o)-a*(t[0]-r)+o]},clamp:function(t,n,e){return t<=n?n:t>=e?e:t},coordPair:function(t,n){return void 0===t?n||[0,0]:"number"==typeof t?[t,t]:t},between:function(t,n,e){return t>=n&&t<=e},strokeFill:function(t,n,e,i,r){return r&&t.ctx.closePath(),e&&(t.ctx.lineWidth=e),n&&(t.ctx.fillStyle=n),i&&(t.ctx.strokeStyle=i),e&&i&&t.ctx.stroke(),n&&t.ctx.fill(),t},inherit:function(t,n,e){var i=function(){n.apply(this,arguments)};for(var r in i.prototype=Object.create(t.prototype),e)e.hasOwnProperty(r)&&(i[r]=e[r]);return i},eventer:function(t){return t.on=function(t,n,e){if("function"==typeof n)return this.__eventHandlers=this.__eventHandlers||{},this.__eventHandlers[t]=this.__eventHandlers[t]||[],this.__eventHandlers[t].push({callback:n,once:!!e}),this.__lastAssignedEvent=t,this},t.trigger=function(t,n,e){if(void 0===t&&(t=this.__lastAssignedEvent),!this.__eventHandlers||void 0===this.__eventHandlers[t]||!this.__eventHandlers[t].forEach)return this;n=n||this,e=e||[];for(var i=0;i<this.__eventHandlers[t].length;i++){var r=this.__eventHandlers[t][i];r&&r.callback&&(r.callback.apply(n,e),r.once&&delete this.__eventHandlers[t][i])}return this},t},shorthands:function(){e(12)(e(4))}},r=window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame;i.frame=r?function(t){r.call(window,t)}:function(t){window.setTimeout(t,1e3/60)},t.exports=i},function(t,n,e){var i=e(2),r=e(0),o={ngon:function(t){for(var n=new i,e=r.TWO_PI/t,o=0;o<=t;o+=1)n.push([Math.sin(o*e),Math.cos(o*e)]);return n},rect:function(){return(new i).push([-.5,-.5]).push([.5,-.5]).push([.5,.5]).push([-.5,.5])},circle:function(t,n,e){for(var i=new lib.Points,r=(t=(t%360||360)*lib.utils.DEG_TO_RAD)/(n=n||Math.ceil(360*t/lib.utils.TWO_PI)),o=0;o<=n;o++)i.push([Math.sin(o*r+lib.utils.PI_BY_TWO),Math.cos(o*r+lib.utils.PI_BY_TWO)]);return e&&i.push(i[0]),i}};t.exports=o},function(t,n,e){var i=e(0),r=function(){this.push.apply(this,arguments)};(r.prototype=Object.create(Array.prototype)).push=function(){var t=this;return[].forEach.call(arguments,function(n){n.forEach&&void 0!==n[1]&&void 0!==!n[0]&&Array.prototype.push.call(t,[n[0],n[1]])}),this},r.prototype.map=function(){var t=new r;return[].push.apply(t,Array.prototype.map.apply(this,arguments)),t},r.prototype.rotate=function(t,n){return void 0===t?this:this.map(function(e){return i.coordRotate(e,t,n)})},r.prototype.scale=function(t,n){return t.length&&(n=t[1],t=t[0]),t=t||1,n=n||t,this.map(function(e){return[e[0]*t,e[1]*n]})},r.prototype.translate=function(t,n){return t.length&&(n=t[1],t=t[0]),this.map(function(e){return[e[0]+(t||0),e[1]+(n||1)]})},t.exports=r},function(t,n,e){var i=e(0),r=e(11),o=0,s=function(t,n,e){var i;t.length&&(e=n,n=t[1],t=t[1]),this.element=((i=document.createElement("canvas")).style.className="cdf_canvas cdf_canvas"+o++,i),this.ctx=this.element.getContext("2d"),this.style=this.element.style,this.attach(e).size(t,n).handle(0,0)};s.prototype={attach:function(t){return 0===t&&(t=document.body),void 0===t||!1===t?this:(t.appendChild(this.element),this.parent=t,this)},size:function(t,n){return t&&t.length&&(n=t[1],t=t[0]),this.width=this.w=t,this.height=this.h=n,this.cx=t/2,this.cy=t/2,this.center=[this.cx,this.cy],this.ss=t>n?n:t,this.element.setAttribute("width",t),this.element.setAttribute("height",n),this.trigger("resize",[t,n])},handle:function(t){return this.__handle=i.coordPair(t,this.center),this},clear:function(){return this.ctx.clearRect(0,0,this.w,this.h),this},fill:function(t){return this.ctx.fillStyle=t,this.ctx.fillRect(0,0,this.w,this.h),this},poly:function(t,n,e,r,o,s){s&&(this.ctx.lineCap=s),this.ctx.beginPath(),this.ctx.moveTo(t[0][0],t[0][1]);for(var a=1;a<t.length;a++)this.ctx.lineTo(t[a][0],t[a][1]);return i.strokeFill(this,n,e,r,o),this},rect:function(t,n,e){return this.ctx.fillStyle=e,t=i.coordPair(t),n=i.coordPair(n),this.ctx.fillRect(t[0],t[1],n[0],n[1]),this},line:function(t,n,e,r){return this.poly([i.coordPair(t),i.coordPair(n)],void 0,e,r)},circle:function(t,n,e,r,o,s,a){return t=i.coordPair(t),this.ctx.beginPath(),this.ctx.arc(t[0],t[1],n,s||0,void 0===a?360:+a),i.strokeFill(this,e,r,o,!1),this},plot:function(t,n,e){n&&(this.ctx.fillStyle=n);var i=1===e?0:e/2;return this.ctx.fillRect(t[0]-i,t[1]-i,e,e),this},toBase64:function(t,n){return this.element.toDataURL(n||"image/png",t||.92)},draw:function(t,n,e,r,o,s,a){return t.ctx&&(t=t.ctx),t.save(),n=i.coordPair(n),s=i.coordPair(s),a=i.coordPair(a,[this.w-s[0],this.h-s[1]]),void 0!==o&&(t.globalAlpha=o),t.translate(n[0],n[1]),void 0!==e&&t.rotate(e*i.DEG_TO_RAD),r=i.coordPair(r,[1,1]),t.scale(r[0],r[1]),t.translate(-this.__handle[0],-this.__handle[1]),t.drawImage(this.element,s[0],s[1],a[0],a[1],0,0,a[0],a[1]),t.restore(),this},text:function(t,n,e,o,s,a){return n=void 0===n?r.fontPos:i.coordPair(n),void 0!==e&&(this.ctx.fillStyle=e),this.ctx.textAlign=s||r.fontAlign,this.ctx.textBaseline=a||r.fontBaseline,this.ctx.font=o||r.font,this.ctx.fillText(t,n[0],n[1]),this},textWidth:function(t,n){return this.ctx.font=n||r.font,this.ctx.measureText(t)}},i.eventer(s.prototype),t.exports=s},function(t,n,e){var i=e(0),r=function(t,n,e){return"function"==typeof t?r.init(t):"number"==typeof t&&"number"==typeof n?new r.Canvas(t,n,e):void 0};i.eventer(r),r.init=function(t){return r.initialized?(t.call(r,[r,animate]),this):r.on("init",t)},r.Canvas=e(3),r.Image=e(10),r.Point=e(14),r.Points=e(2),r.Scene=e(9),r.utils=i,r.color=e(8),r.shapes=e(1),r.animate=e(7),r.Canvas.prototype.ngon=e(6),r.Canvas.prototype.ellipse=e(5),t.exports=r},function(t,n,e){var i=e(0),o=e(1);t.exports=function(t,n,e,s,a,c,h,u,l){return t=i.coordPair(t),n=i.coordPair(n,[1,1]),h=h||0,r2=r2||r,(u=void 0!==u?u:360)<h?this:this.ctx.ellipse?(this.ctx.beginPath(),this.ctx.ellipse(t[0],t[1],n[0],n[1],(s||0)*i.DEG_TO_RAD,h*i.DEG_TO_RAD,u*i.DEG_TO_RAD),i.strokeFill(this,e,a,c,l)):this.poly(o.circle(u-h).rotate(h).scale(n).rotate(s).translate(t),e,a,c,l)}},function(t,n,e){var i=e(1);e(0);t.exports=function(t,n,e,r,o){return this.poly(i.ngon(e).scale(n).rotate(o).translate(t),r)}},function(t,n,e){var i=e(0);t.exports=function(t,n,e){t=t.__animate||t,n=n||1;var r=0,o=function(){n;var s=n;for(r++;s--;)t.call(window,r*n+n-s,r);"function"==typeof e&&e.call(window,r*n,r),i.frame(o),1};o()}},function(t,n){},function(t,n){t.exports=function(){var t=this;this.draw=function(){return this.init(),this.trigger("draw",[this],this)};var n=this.state=!0;this.toggle=function(e){return n=this.state=void 0===e?!n:!!e,t.trigger(n?"pause":"play",[this],this)},this.animate=this.__animate=function(){n&&t.draw()}}},function(t,n,e){var i=e(3),r=e(0),o=function(t){var n=this,e=this.element=document.createElement("img");this.loaded=!0,e.src=t,this.handle(0,0),e.onload=function(t){n.loaded=!0,n.size([e.width,e.height]),n.trigger("load",n,[t])}};o.prototype={handle:i.prototype.handle,draw:i.prototype.draw,size:i.prototype.size},r.eventer(o.prototype),t.exports=o},function(t,n){t.exports={font:"normal 12px sans-serif",fontAlign:"start",fontBaseline:"top",fontPos:[10,10]}},function(t,n,e){var i=e(0),r=e(14);t.exports=function(t){"undefined"!=typeof window&&(window.L=Math.log,window.C=Math.cos,window.F=Math.floor,window.A=Math.abs,window.R=function(t){return Math.random()*(t||1)},window.T=Math.tan,window.S=Math.sin,window.ZERO_VECTOR=new r([0,0]),window.PI_BY_TWO=i.PI_BY_TWO,window.TWO_PI=i.TWO_PI,window.DEG_TO_RAD=i.DEG_TO_RAD,window.RAD_TO_DEG=i.RAD_TO_DEG),t.Canvas.prototype.fit=function(t){return t=t||this.parent||window,this.size(t.innerWidth,t.innerHeight)},t.Canvas.prototype.fitOnResize=function(){var n=this;return t.on("resize",function(){n.fit()}),this},t.Canvas.prototype.setFit=function(t,n,e){return(t||void 0===t)&&this.addFitCSS(),(n||void 0===n)&&this.fit(),(e||void 0===e)&&this.fitOnResize(),this},t.Canvas.prototype.addFitCSS=function(t){if(!this.__fitCSSAdded)return this.__fitCSSAdded=!0,(t=this.element.style).position="absolute",t.margin="auto",t.top=0,t.bottom=0,t.left=0,t.right=0,this}}},function(t,n,e){var i=e(4);"undefined"!=typeof window?(window.cdf=i,window.addEventListener("resize",function(t){i.trigger("resize",i,[t])}),i.initialized=!1,document.addEventListener("DOMContentLoaded",function(){i.initialized=!0,i.trigger("init",i,[i,i.animate])})):t.exports=i},function(t,n,e){var i=e(0),r=function(t,n){var e=r.getFromArgs(arguments);this[0]=e[0],this[1]=e[1]},o={add:function(){var t=getPointFromArgs(arguments);return new r(this[0]+t[0],this[1]+t[1])},rotate:function(t,n){return new r(i.coordRotate(this,t,n))}};(r=i.inherit(Array,r,o)).getFromArgs=function(t){return t.length<1?[0,0]:t[0].length?i.coordPair(t[0]):i.coordPair([t[0],t[1]])},t.exports=r}]);
//# sourceMappingURL=cdf.min.js.map