1 |
- !function(t,i){"object"==typeof exports&&"undefined"!=typeof module?i(exports):"function"==typeof define&&define.amd?define(["exports"],i):i((t=t||self).Escher={})}(this,function(t){"use strict";function n(){this.events=[]}function r(t,i){this.x=t||0,this.y=i||0}function l(t){void 0!==t?this.m=t:this.identity()}function i(){}function p(){this.uuid=i.generate(),this.children=[],this.parent=null,this.level=0,this.position=new r(0,0),this.origin=new r(0,0),this.scale=new r(1,1),this.rotation=0,this.visible=!0,this.layer=0,this.matrix=new l,this.globalMatrix=new l,this.inverseGlobalMatrix=new l,this.masks=[],this.matrixNeedsUpdate=!0,this.draggable=!1,this.pointerEvents=!0,this.ignoreViewport=!1,this.saveContextState=!0,this.restoreContextState=!0,this.pointerInside=!1,this.beingDragged=!1}function h(){this.pressed=!1,this.justPressed=!1,this.justReleased=!1}function y(t,i){this._keys=new Array(5),this._position=new r(0,0),this._positionUpdated=!1,this._delta=new r(0,0),this._wheel=0,this._wheelUpdated=!1,this._doubleClicked=new Array(5),this.keys=new Array(5),this.position=new r(0,0),this.delta=new r(0,0),this.wheel=0,this.doubleClicked=new Array(5),this.domElement=void 0!==t?t:window,this.canvas=null,void 0!==i&&this.setCanvas(i),this.events=new n;for(var e=0;e<5;e++)this._doubleClicked[e]=!1,this.doubleClicked[e]=!1,this._keys[e]=new h,this.keys[e]=new h;var o=this;if(void 0!==window.onmousewheel?this.events.add(this.domElement,"mousewheel",function(t){o._wheel=t.deltaY,o._wheelUpdated=!0}):void 0!==window.addEventListener?this.events.add(this.domElement,"DOMMouseScroll",function(t){o._wheel=30*t.detail,o._wheelUpdated=!0}):this.events.add(this.domElement,"wheel",function(t){o._wheel=t.deltaY,o._wheelUpdated=!0}),void 0!==window.ontouchstart||0<navigator.msMaxTouchPoints){var s=new r(0,0);this.events.add(this.domElement,"touchstart",function(t){var i=t.touches[0];o.updatePosition(i.clientX,i.clientY,0,0),o.updateKey(y.LEFT,h.DOWN),s.set(i.clientX,i.clientY)}),this.events.add(this.domElement,"touchend",function(t){o.updateKey(y.LEFT,h.UP)}),this.events.add(this.domElement,"touchcancel",function(t){o.updateKey(y.LEFT,h.UP)}),this.events.add(document.body,"touchmove",function(t){var i=t.touches[0];o.updatePosition(i.clientX,i.clientY,i.clientX-s.x,i.clientY-s.y),s.set(i.clientX,i.clientY)})}this.events.add(this.domElement,"mousemove",function(t){o.updatePosition(t.clientX,t.clientY,t.movementX,t.movementY)}),this.events.add(this.domElement,"mousedown",function(t){o.updateKey(t.which-1,h.DOWN)}),this.events.add(this.domElement,"mouseup",function(t){o.updateKey(t.which-1,h.UP)}),this.events.add(this.domElement,"dragstart",function(t){o.updateKey(t.which-1,h.UP)}),this.events.add(this.domElement,"dblclick",function(t){o._doubleClicked[t.which-1]=!0}),this.create()}function e(t){this.uuid=i.generate(),this.canvas=t,this.position=new r(0,0),this.scale=1,this.rotation=0,this.matrix=new l,this.inverseMatrix=new l,this.matrixNeedsUpdate=!0,this.moveOnScale=!1,this.rotationPoint=null}function a(t){this.viewport=t,this.dragButton=y.RIGHT,this.allowScale=!0,this.moveOnScale=!1,this.allowRotation=!0,this.rotationPoint=null,this.rotationInitial=0}function o(t,i){void 0===i&&(i={alpha:!0}),this.canvas=t,this.context=t.getContext("2d",{alpha:i.alpha}),this.context.imageSmoothingEnabled=!0,this.context.globalCompositeOperation="source-over",this.pointer=new y(window,t),this.autoClear=!0}function s(t,i){this.min=void 0!==t?t:new r,this.max=void 0!==i?i:new r}function m(){p.call(this)}function u(){m.call(this),this.box=new s(new r(-50,-35),new r(50,35)),this.invert=!1}function c(){p.call(this),this.radius=10,this.strokeStyle="#000000",this.lineWidth=1,this.fillStyle="#FFFFFF"}function d(){}function x(){p.call(this),this.box=new s(new r(-50,-35),new r(50,35)),this.strokeStyle="#000000",this.lineWidth=1,this.fillStyle="#FFFFFF"}function f(){p.call(this),this.from=new r,this.to=new r,this.dashPattern=[5,5],this.strokeStyle="#000000",this.lineWidth=1}function v(){p.call(this),this.text="",this.font="16px Arial",this.strokeStyle=null,this.lineWidth=1,this.fillStyle="#000000",this.textAlign="center"}function b(t){p.call(this),this.box=new s,this.image=document.createElement("img"),void 0!==t&&this.setImage(t)}function w(t,i){p.call(this),this.parentDOM=t,this.element=document.createElement("div"),this.element.style.transformStyle="preserve-3d",this.element.style.position="absolute",this.element.style.top="0px",this.element.style.bottom="0px",this.element.style.transformOrigin="0px 0px",this.element.style.overflow="auto",this.element.style.pointerEvents="none",this.size=new r(100,100)}function g(t){p.call(this),this.box=new s,this.image=document.createElement("img"),this.repetition="repeat",void 0!==t&&this.setImage(t)}function P(){p.call(this),this.box=new s(new r(-50,-35),new r(50,35)),this.strokeStyle="rgb(0, 153, 255)",this.lineWidth=1,this.fillStyle="rgba(0, 153, 255, 0.3)",this.min=0,this.max=10,this.data=[]}function S(){p.call(this),this.from=new r,this.fromCp=new r,this.to=new r,this.toCp=new r,this.dashPattern=[5,5],this.strokeStyle="#000000",this.lineWidth=1}n.prototype.add=function(t,i,e){this.events.push([t,i,e,!1])},n.prototype.clear=function(){this.destroy(),this.events=[]},n.prototype.create=function(){for(var t=0;t<this.events.length;t++){var i=this.events[t];i[0].addEventListener(i[1],i[2]),i[3]=!0}},n.prototype.destroy=function(){for(var t=0;t<this.events.length;t++){var i=this.events[t];i[0].removeEventListener(i[1],i[2]),i[3]=!1}},r.prototype.set=function(t,i){this.x=t,this.y=i},r.prototype.setScalar=function(t){this.x=t,this.y=t},r.prototype.clone=function(){return new r(this.x,this.y)},r.prototype.copy=function(t){this.x=t.x,this.y=t.y},r.prototype.add=function(t){this.x+=t.x,this.y+=t.y},r.prototype.addScalar=function(t){this.x+=t,this.y+=t},r.prototype.addVectors=function(t,i){this.x=t.x+i.x,this.y=t.y+i.y},r.prototype.addScaledVector=function(t,i){this.x+=t.x*i,this.y+=t.y*i},r.prototype.sub=function(t){this.x-=t.x,this.y-=t.y},r.prototype.subScalar=function(t){this.x-=t,this.y-=t},r.prototype.subVectors=function(t,i){this.x=t.x-i.x,this.y=t.y-i.y},r.prototype.multiply=function(t){this.x*=t.x,this.y*=t.y},r.prototype.multiplyScalar=function(t){this.x*=t,this.y*=t},r.prototype.divide=function(t){this.x/=t.x,this.y/=t.y},r.prototype.divideScalar=function(t){return this.multiplyScalar(1/t)},r.prototype.min=function(t){this.x=Math.min(this.x,t.x),this.y=Math.min(this.y,t.y)},r.prototype.max=function(t){this.x=Math.max(this.x,t.x),this.y=Math.max(this.y,t.y)},r.prototype.clamp=function(t,i){this.x=Math.max(t.x,Math.min(i.x,this.x)),this.y=Math.max(t.y,Math.min(i.y,this.y))},r.prototype.clampScalar=function(t,i){this.x=Math.max(t,Math.min(i,this.x)),this.y=Math.max(t,Math.min(i,this.y))},r.prototype.clampLength=function(t,i){var e=this.length();return this.divideScalar(e||1).multiplyScalar(Math.max(t,Math.min(i,e)))},r.prototype.floor=function(){this.x=Math.floor(this.x),this.y=Math.floor(this.y)},r.prototype.ceil=function(){this.x=Math.ceil(this.x),this.y=Math.ceil(this.y)},r.prototype.round=function(){this.x=Math.round(this.x),this.y=Math.round(this.y)},r.prototype.negate=function(){return this.x=-this.x,this.y=-this.y,this},r.prototype.dot=function(t){return this.x*t.x+this.y*t.y},r.prototype.cross=function(t){return this.x*t.y-this.y*t.x},r.prototype.lengthSq=function(){return this.x*this.x+this.y*this.y},r.prototype.length=function(){return Math.sqrt(this.x*this.x+this.y*this.y)},r.prototype.manhattanLength=function(){return Math.abs(this.x)+Math.abs(this.y)},r.prototype.normalize=function(){return this.divideScalar(this.length()||1)},r.prototype.angle=function(){var t=Math.atan2(this.y,this.x);return t<0&&(t+=2*Math.PI),t},r.prototype.distanceTo=function(t){return Math.sqrt(this.distanceToSquared(t))},r.prototype.distanceToSquared=function(t){var i=this.x-t.x,e=this.y-t.y;return i*i+e*e},r.prototype.manhattanDistanceTo=function(t){return Math.abs(this.x-t.x)+Math.abs(this.y-t.y)},r.prototype.setLength=function(t){return this.normalize().multiplyScalar(t)},r.prototype.lerp=function(t,i){this.x+=(t.x-this.x)*i,this.y+=(t.y-this.y)*i},r.prototype.lerpVectors=function(t,i,e){return this.subVectors(i,t).multiplyScalar(e).add(t)},r.prototype.equals=function(t){return t.x===this.x&&t.y===this.y},r.prototype.fromArray=function(t,i){void 0===i&&(i=0),this.x=t[i],this.y=t[i+1]},r.prototype.toArray=function(t,i){return void 0===t&&(t=[]),void 0===i&&(i=0),t[i]=this.x,t[i+1]=this.y,t},r.prototype.rotateAround=function(t,i){var e=Math.cos(i),o=Math.sin(i),s=this.x-t.x,n=this.y-t.y;this.x=s*e-n*o+t.x,this.y=s*o+n*e+t.y},l.prototype.copy=function(t){this.m=t.m.slice(0)},l.prototype.clone=function(){return new l(this.m.slice(0))},l.prototype.identity=function(){this.m=[1,0,0,1,0,0]},l.prototype.multiply=function(t){var i=this.m[0]*t.m[0]+this.m[2]*t.m[1],e=this.m[1]*t.m[0]+this.m[3]*t.m[1],o=this.m[0]*t.m[2]+this.m[2]*t.m[3],s=this.m[1]*t.m[2]+this.m[3]*t.m[3],n=this.m[0]*t.m[4]+this.m[2]*t.m[5]+this.m[4],r=this.m[1]*t.m[4]+this.m[3]*t.m[5]+this.m[5];this.m=[i,e,o,s,n,r]},l.prototype.premultiply=function(t){var i=t.m[0]*this.m[0]+t.m[2]*this.m[1],e=t.m[1]*this.m[0]+t.m[3]*this.m[1],o=t.m[0]*this.m[2]+t.m[2]*this.m[3],s=t.m[1]*this.m[2]+t.m[3]*this.m[3],n=t.m[0]*this.m[4]+t.m[2]*this.m[5]+t.m[4],r=t.m[1]*this.m[4]+t.m[3]*this.m[5]+t.m[5];this.m=[i,e,o,s,n,r]},l.prototype.compose=function(t,i,e,o,s,n,r){if(this.m=[1,0,0,1,t,i],0!==r){var h=Math.cos(r),a=Math.sin(r);this.multiply(new l([h,a,-a,h,0,0]))}1===e&&1===o||this.scale(e,o),0===s&&0===n||this.multiply(new l([1,0,0,1,-s,-n]))},l.prototype.translate=function(t,i){this.m[4]+=this.m[0]*t+this.m[2]*i,this.m[5]+=this.m[1]*t+this.m[3]*i},l.prototype.rotate=function(t){var i=Math.cos(t),e=Math.sin(t),o=this.m[0]*i+this.m[2]*e,s=this.m[1]*i+this.m[3]*e,n=this.m[0]*-e+this.m[2]*i,r=this.m[1]*-e+this.m[3]*i;this.m[0]=o,this.m[1]=s,this.m[2]=n,this.m[3]=r},l.prototype.scale=function(t,i){this.m[0]*=t,this.m[1]*=t,this.m[2]*=i,this.m[3]*=i},l.prototype.setPosition=function(t,i){this.m[4]=t,this.m[5]=i},l.prototype.getScale=function(){return new r(this.m[0],this.m[3])},l.prototype.getPosition=function(){return new r(this.m[4],this.m[5])},l.prototype.skew=function(t,i){this.multiply(new l([1,Math.tan(i),Math.tan(t),1,0,0]))},l.prototype.determinant=function(){return 1/(this.m[0]*this.m[3]-this.m[1]*this.m[2])},l.prototype.getInverse=function(){var t=this.determinant();return new l([this.m[3]*t,-this.m[1]*t,-this.m[2]*t,this.m[0]*t,t*(this.m[2]*this.m[5]-this.m[3]*this.m[4]),t*(this.m[1]*this.m[4]-this.m[0]*this.m[5])])},l.prototype.transformPoint=function(t){return new r(t.x*this.m[0]+t.y*this.m[2]+this.m[4],t.x*this.m[1]+t.y*this.m[3]+this.m[5])},l.prototype.setContextTransform=function(t){t.setTransform(this.m[0],this.m[1],this.m[2],this.m[3],this.m[4],this.m[5])},l.prototype.tranformContext=function(t){t.transform(this.m[0],this.m[1],this.m[2],this.m[3],this.m[4],this.m[5])},l.prototype.cssTransform=function(){return"matrix("+this.m[0]+","+this.m[1]+","+this.m[2]+","+this.m[3]+","+this.m[4]+","+this.m[5]+")"},i.generate=function(){for(var s=[],t=0;t<256;t++)s[t]=(t<16?"0":"")+t.toString(16);return function(){var t=4294967295*Math.random()|0,i=4294967295*Math.random()|0,e=4294967295*Math.random()|0,o=4294967295*Math.random()|0;return(s[255&t]+s[t>>8&255]+s[t>>16&255]+s[t>>24&255]+"-"+s[255&i]+s[i>>8&255]+"-"+s[i>>16&15|64]+s[i>>24&255]+"-"+s[63&e|128]+s[e>>8&255]+"-"+s[e>>16&255]+s[e>>24&255]+s[255&o]+s[o>>8&255]+s[o>>16&255]+s[o>>24&255]).toUpperCase()}}(),p.prototype.traverse=function(t){t(this);for(var i=this.children,e=0;e<i.length;e++)i[e].traverse(t)},p.prototype.getChildByUUID=function(i){var e=null;return this.traverse(function(t){t.uuid===i&&(e=t)}),e},p.prototype.add=function(t){t.parent=this,t.level=this.level+1,t.traverse(function(t){null!==t.onAdd&&t.onAdd(this)}),this.children.push(t)},p.prototype.remove=function(t){var i=this.children.indexOf(t);-1!==i&&((t=this.children[i]).parent=null,t.level=0,t.traverse(function(t){null!==t.onRemove&&t.onRemove(this)}),this.children.splice(i,1))},p.prototype.isInside=function(t){return!1},p.prototype.updateMatrix=function(t){this.matrixNeedsUpdate&&(this.matrix.compose(this.position.x,this.position.y,this.scale.x,this.scale.y,this.origin.x,this.origin.y,this.rotation),this.globalMatrix.copy(this.matrix),null!==this.parent&&this.globalMatrix.premultiply(this.parent.globalMatrix),this.inverseGlobalMatrix=this.globalMatrix.getInverse())},p.prototype.transform=function(t,i){this.globalMatrix.tranformContext(t)},p.prototype.draw=function(t,i,e){},p.prototype.onPointerDrag=function(t,i,e){this.position.add(e)},p.prototype.onAdd=null,p.prototype.onRemove=null,p.prototype.onUpdate=null,p.prototype.onPointerEnter=null,p.prototype.onPointerLeave=null,p.prototype.onPointerOver=null,p.prototype.onButtonPressed=null,p.prototype.onDoubleClick=null,p.prototype.onButtonDown=null,p.prototype.onButtonUp=null,h.DOWN=-1,h.UP=1,h.RESET=0,(h.prototype.constructor=h).prototype.update=function(t){this.justPressed=!1,this.justReleased=!1,t===h.DOWN?(!1===this.pressed&&(this.justPressed=!0),this.pressed=!0):t===h.UP?(this.pressed&&(this.justReleased=!0),this.pressed=!1):t===h.RESET&&(this.justReleased=!1,this.justPressed=!1)},h.prototype.set=function(t,i,e){this.justPressed=t,this.pressed=i,this.justReleased=e},h.prototype.reset=function(){this.justPressed=!1,this.pressed=!1,this.justReleased=!1},((y.prototype=y).constructor=y).LEFT=0,y.MIDDLE=1,y.RIGHT=2,y.BACK=3,y.FORWARD=4,y.setCanvas=function(t){(this.canvas=t).pointerInside=!1,t.addEventListener("mouseenter",function(){this.pointerInside=!0}),t.addEventListener("mouseleave",function(){this.pointerInside=!1})},y.insideCanvas=function(){return null!==this.canvas&&this.canvas.pointerInside},y.buttonPressed=function(t){return this.keys[t].pressed},y.buttonDoubleClicked=function(t){return this.doubleClicked[t]},y.buttonJustPressed=function(t){return this.keys[t].justPressed},y.buttonJustReleased=function(t){return this.keys[t].justReleased},y.updatePosition=function(t,i,e,o){if(null!==this.canvas){var s=this.canvas.getBoundingClientRect();t-=s.left,i-=s.top}this._position.set(t,i),this._delta.x+=e,this._delta.y+=o,this._positionUpdated=!0},y.updateKey=function(t,i){-1<t&&this._keys[t].update(i)},y.update=function(){for(var t=0;t<5;t++)this._keys[t].justPressed&&this.keys[t].justPressed&&(this._keys[t].justPressed=!1),this._keys[t].justReleased&&this.keys[t].justReleased&&(this._keys[t].justReleased=!1),this.keys[t].set(this._keys[t].justPressed,this._keys[t].pressed,this._keys[t].justReleased),!0===this._doubleClicked[t]?(this.doubleClicked[t]=!0,this._doubleClicked[t]=!1):this.doubleClicked[t]=!1;this._wheelUpdated?(this.wheel=this._wheel,this._wheelUpdated=!1):this.wheel=0,this._positionUpdated?(this.delta.copy(this._delta),this.position.copy(this._position),this._delta.set(0,0),this._positionUpdated=!1):(this.delta.x=0,this.delta.y=0)},y.create=function(){this.events.create()},y.dispose=function(){this.events.destroy()},e.prototype.updateMatrix=function(){if(this.matrixNeedsUpdate){if(this.matrix.m=[1,0,0,1,this.position.x,this.position.y],0!==this.rotation){var t=Math.cos(this.rotation),i=Math.sin(this.rotation);this.matrix.multiply(new l([t,i,-i,t,0,0]))}1!==this.scale&&this.matrix.scale(this.scale,this.scale),this.inverseMatrix=this.matrix.getInverse(),this.matrixNeedsUpdate=!1}},e.prototype.centerObject=function(t,i){var e=t.globalMatrix.transformPoint(new r);e.multiplyScalar(-this.scale),e.x+=i.width/2,e.y+=i.height/2,this.position.copy(e),this.matrixNeedsUpdate=!0},a.prototype.update=function(t){if(this.allowScale&&0!==t.wheel){var i=.001*t.wheel*this.viewport.scale;if(this.viewport.scale-=i,this.viewport.matrixNeedsUpdate=!0,this.moveOnScale&&null!==t.canvas){this.viewport.updateMatrix();var e=this.viewport.inverseMatrix.transformPoint(t.position),o=new r(t.canvas.width/2,t.canvas.height/2);o=this.viewport.inverseMatrix.transformPoint(o);var s=e.clone();s.sub(o),s.multiplyScalar(.1),this.viewport.position.sub(s),this.viewport.matrixNeedsUpdate=!0}}this.allowRotation&&t.buttonPressed(y.RIGHT)&&t.buttonPressed(y.LEFT)?null===this.rotationPoint?(this.rotationPoint=t.position.clone(),this.rotationInitial=this.viewport.rotation):((t=t.position.clone()).sub(this.rotationPoint),this.viewport.rotation=this.rotationInitial+t.angle(),this.viewport.matrixNeedsUpdate=!0):(this.rotationPoint=null,t.buttonPressed(this.dragButton)&&(this.viewport.position.x+=t.delta.x,this.viewport.position.y+=t.delta.y,this.viewport.matrixNeedsUpdate=!0))},o.prototype.createRenderLoop=function(i,e,o){var s=this,n=new a(e);!function t(){void 0!==o&&o(),n.update(s.pointer),s.update(i,e),requestAnimationFrame(t)}()},o.prototype.update=function(t,i){var e=[];t.traverse(function(t){t.visible&&e.push(t)}),e.sort(function(t,i){return i.layer===t.layer?i.level-t.level:i.layer-t.layer});var o=this.pointer;o.update(),i.updateMatrix();for(var s=o.position.clone(),n=i.inverseMatrix.transformPoint(s),r=0;r<e.length;r++){if((a=e[r]).pointerEvents){var h=a.inverseGlobalMatrix.transformPoint(a.ignoreViewport?s:n);if(a.isInside(h)){if(a.pointerInside||null===a.onPointerEnter||a.onPointerEnter(o,i),null!==a.onPointerOver&&a.onPointerOver(o,i),o.buttonDoubleClicked(y.LEFT)&&null!==a.onDoubleClick&&a.onDoubleClick(o,i),o.buttonPressed(y.LEFT)&&null!==a.onButtonPressed&&a.onButtonPressed(o,i),o.buttonJustReleased(y.LEFT)&&null!==a.onButtonUp&&a.onButtonUp(o,i),o.buttonJustPressed(y.LEFT)&&(null!==a.onButtonDown&&a.onButtonDown(o,i),a.draggable)){a.beingDragged=!0;break}a.pointerInside=!0}else a.pointerInside&&(null!==a.onPointerLeave&&a.onPointerLeave(o,i),a.pointerInside=!1);o.buttonJustReleased(y.LEFT)&&a.draggable&&(a.beingDragged=!1)}}for(r=0;r<e.length;r++){var a;if((a=e[r]).beingDragged){var l=o.position.clone();l.sub(o.delta);var p=i.inverseMatrix.transformPoint(o.position),m=i.inverseMatrix.transformPoint(l);p.sub(m),null!==a.onPointerDrag&&a.onPointerDrag(o,i,p)}null!==a.onUpdate&&a.onUpdate()}t.traverse(function(t){t.updateMatrix()}),this.context.setTransform(1,0,0,1,0,0),this.autoClear&&this.context.clearRect(0,0,this.canvas.width,this.canvas.height);for(r=e.length-1;0<=r;r--)if(!e[r].isMask){e[r].saveContextState&&this.context.save();for(var u=e[r].masks,c=0;c<u.length;c++)u[c].ignoreViewport||i.matrix.setContextTransform(this.context),u[c].transform(this.context,i,this.canvas),u[c].clip(this.context,i,this.canvas);e[r].ignoreViewport?0<u.length&&this.context.setTransform(1,0,0,1,0,0):i.matrix.setContextTransform(this.context),e[r].transform(this.context,i,this.canvas),e[r].draw(this.context,i,this.canvas),e[r].restoreContextState&&this.context.restore()}},s.prototype.set=function(t,i){return this.min.copy(t),this.max.copy(i),this},s.prototype.setFromPoints=function(t){this.min=new r(1/0,1/0),this.max=new r(-1/0,-1/0);for(var i=0,e=t.length;i<e;i++)this.expandByPoint(t[i]);return this},s.prototype.setFromCenterAndSize=function(t,i){var e=(new r).copy(i).multiplyScalar(.5);return this.min.copy(t).sub(e),this.max.copy(t).add(e),this},s.prototype.clone=function(){var t=new s;return t.copy(this),t},s.prototype.copy=function(t){this.min.copy(t.min),this.max.copy(t.max)},s.prototype.isEmpty=function(){return this.max.x<this.min.x||this.max.y<this.min.y},s.prototype.getCenter=function(t){return void 0===t&&(t=new r),this.isEmpty()?t.set(0,0):t.addVectors(this.min,this.max).multiplyScalar(.5),t},s.prototype.getSize=function(t){return void 0===t&&(t=new r),this.isEmpty()?t.set(0,0):t.subVectors(this.max,this.min),t},s.prototype.expandByPoint=function(t){return this.min.min(t),this.max.max(t),this},s.prototype.expandByVector=function(t){this.min.sub(t),this.max.add(t)},s.prototype.expandByScalar=function(t){this.min.addScalar(-t),this.max.addScalar(t)},s.prototype.containsPoint=function(t){return!(t.x<this.min.x||t.x>this.max.x||t.y<this.min.y||t.y>this.max.y)},s.prototype.containsBox=function(t){return this.min.x<=t.min.x&&t.max.x<=this.max.x&&this.min.y<=t.min.y&&t.max.y<=this.max.y},s.prototype.intersectsBox=function(t){return!(t.max.x<this.min.x||t.min.x>this.max.x||t.max.y<this.min.y||t.min.y>this.max.y)},s.prototype.distanceToPoint=function(t){return(new r).copy(t).clamp(this.min,this.max).sub(t).length()},s.prototype.intersect=function(t){this.min.max(t.min),this.max.min(t.max)},s.prototype.union=function(t){this.min.min(t.min),this.max.max(t.max)},s.prototype.translate=function(t){this.min.add(t),this.max.add(t)},s.prototype.equals=function(t){return t.min.equals(this.min)&&t.max.equals(this.max)},(m.prototype=Object.create(p.prototype)).isMask=!0,m.prototype.clip=function(t,i,e){},(u.prototype=Object.create(m.prototype)).isInside=function(t){return this.box.containsPoint(t)},u.prototype.clip=function(t,i,e){t.beginPath();var o=this.box.max.x-this.box.min.x;if(this.invert)t.rect(this.box.min.x-1e4,-5e3,1e4,1e4),t.rect(this.box.max.x,-5e3,1e4,1e4),t.rect(this.box.min.x,this.box.min.y-1e4,o,1e4),t.rect(this.box.min.x,this.box.max.y,o,1e4);else{var s=this.box.max.y-this.box.min.y;t.fillRect(this.box.min.x,this.box.min.y,o,s)}t.clip()},(c.prototype=Object.create(p.prototype)).isInside=function(t){return t.length()<=this.radius},c.prototype.onPointerEnter=function(t,i){this.fillStyle="#CCCCCC"},c.prototype.onPointerLeave=function(t,i){this.fillStyle="#FFFFFF"},c.prototype.draw=function(t,i,e){t.beginPath(),t.arc(0,0,this.radius,0,2*Math.PI),null!==this.fillStyle&&(t.fillStyle=this.fillStyle,t.fill()),null!==this.strokeStyle&&(t.lineWidth=this.lineWidth,t.strokeStyle=this.strokeStyle,t.stroke())},d.rotateTool=function(o){var t=new c;t.radius=4,t.layer=o.layer+1,t.onPointerDrag=function(t,i,e){o.rotation+=.001*e.x},o.add(t)},d.boxResizeTool=function(o){if(void 0!==o.box){var s=new c;s.radius=4,s.layer=o.layer+1,s.draggable=!0,s.onPointerDrag=function(t,i,e){p.prototype.onPointerDrag.call(this,t,i,e),o.box.min.copy(s.position),a()},o.add(s);var n=new c;n.radius=4,n.layer=o.layer+1,n.draggable=!0,n.onPointerDrag=function(t,i,e){p.prototype.onPointerDrag.call(this,t,i,e),o.box.max.x=n.position.x,o.box.min.y=n.position.y,a()},o.add(n);var r=new c;r.radius=4,r.layer=o.layer+1,r.draggable=!0,r.onPointerDrag=function(t,i,e){p.prototype.onPointerDrag.call(this,t,i,e),o.box.max.copy(r.position),a()},o.add(r);var h=new c;h.radius=4,h.layer=o.layer+1,h.draggable=!0,h.onPointerDrag=function(t,i,e){p.prototype.onPointerDrag.call(this,t,i,e),o.box.min.x=h.position.x,o.box.max.y=h.position.y,a()},o.add(h),a()}else console.warn("escher.js: Helpers.boxResizeTool(), object box property missing.");function a(){s.position.copy(o.box.min),r.position.copy(o.box.max),n.position.set(o.box.max.x,o.box.min.y),h.position.set(o.box.min.x,o.box.max.y)}},(x.prototype=Object.create(p.prototype)).onPointerEnter=function(t,i){this.fillStyle="#CCCCCC"},x.prototype.onPointerLeave=function(t,i){this.fillStyle="#FFFFFF"},x.prototype.isInside=function(t){return this.box.containsPoint(t)},x.prototype.draw=function(t,i,e){var o=this.box.max.x-this.box.min.x,s=this.box.max.y-this.box.min.y;null!==this.fillStyle&&(t.fillStyle=this.fillStyle,t.fillRect(this.box.min.x,this.box.min.y,o,s)),null!==this.strokeStyle&&(t.lineWidth=this.lineWidth,t.strokeStyle=this.strokeStyle,t.strokeRect(this.box.min.x,this.box.min.y,o,s))},(f.prototype=Object.create(p.prototype)).draw=function(t,i,e){t.lineWidth=this.lineWidth,t.strokeStyle=this.strokeStyle,t.setLineDash(this.dashPattern),t.beginPath(),t.moveTo(this.from.x,this.from.y),t.lineTo(this.to.x,this.to.y),t.stroke()},(v.prototype=Object.create(p.prototype)).draw=function(t,i,e){t.font=this.font,t.textAlign=this.textAlign,t.textBaseline="middle",null!==this.fillStyle&&(t.fillStyle=this.fillStyle,t.fillText(this.text,0,0)),null!==this.strokeStyle&&(t.strokeStyle=this.strokeStyle,t.strokeText(this.text,0,0))},(b.prototype=Object.create(p.prototype)).setImage=function(t){var i=this;this.image.onload=function(){i.box.min.set(0,0),i.box.max.set(this.naturalWidth,this.naturalHeight)},this.image.src=t},b.prototype.isInside=function(t){return this.box.containsPoint(t)},b.prototype.draw=function(t,i,e){0<this.image.src.length&&t.drawImage(this.image,0,0,this.image.naturalWidth,this.image.naturalHeight,this.box.min.x,this.box.min.y,this.box.max.x-this.box.min.x,this.box.max.y-this.box.min.y)},(w.prototype=Object.create(p.prototype)).onAdd=function(){this.parentDOM.appendChild(this.element)},w.prototype.onRemove=function(){this.parentDOM.removeChild(this.element)},w.prototype.transform=function(t,i,e){if(this.ignoreViewport)this.element.style.transform=this.globalMatrix.cssTransform();else{var o=i.matrix.clone();o.multiply(this.globalMatrix),this.element.style.transform=o.cssTransform()}this.element.style.width=this.size.x+"px",this.element.style.height=this.size.y+"px",this.element.style.display=this.visible?"block":"none"},(g.prototype=Object.create(p.prototype)).setImage=function(t){var i=this;this.image.onload=function(){i.box.min.set(0,0),i.box.max.set(this.naturalWidth,this.naturalHeight)},this.image.src=t},g.prototype.isInside=function(t){return this.box.containsPoint(t)},g.prototype.draw=function(t,i,e){var o=this.box.max.x-this.box.min.x,s=this.box.max.y-this.box.min.y;if(0<this.image.src.length){var n=t.createPattern(this.image,this.repetition);t.fillStyle=n,t.fillRect(this.box.min.x,this.box.min.y,o,s)}},(P.prototype=Object.create(p.prototype)).isInside=function(t){return this.box.containsPoint(t)},P.prototype.draw=function(t,i,e){if(0!==this.data.length){var o=this.box.max.x-this.box.min.x,s=this.box.max.y-this.box.min.y;t.lineWidth=this.lineWidth,t.strokeStyle=this.strokeStyle,t.beginPath();var n=o/(this.data.length-1),r=this.max-this.min;t.moveTo(this.box.min.x,this.box.max.y-(this.data[0]-this.min)/r*s);for(var h=1,a=n;h<this.data.length;a+=n,h++)t.lineTo(this.box.min.x+a,this.box.max.y-(this.data[h]-this.min)/r*s);t.stroke(),null!==this.fillStyle&&(t.fillStyle=this.fillStyle,t.lineTo(this.box.max.x,this.box.max.y),t.lineTo(this.box.min.x,this.box.max.y),t.fill())}},S.prototype=Object.create(p.prototype),S.curveHelper=function(o){var s=new c;s.radius=3,s.layer=o.layer+1,s.draggable=!0,s.onPointerDrag=function(t,i,e){p.prototype.onPointerDrag.call(this,t,i,e),o.fromCp.copy(s.position)},o.parent.add(s);var t=new f;t.from=o.from,t.to=o.fromCp,o.parent.add(t);var n=new c;n.radius=3,n.layer=o.layer+1,n.draggable=!0,n.onPointerDrag=function(t,i,e){p.prototype.onPointerDrag.call(this,t,i,e),o.toCp.copy(n.position)},o.parent.add(n);var i=new f;i.from=o.to,i.to=o.toCp,o.parent.add(i)},S.prototype.draw=function(t,i,e){t.lineWidth=this.lineWidth,t.strokeStyle=this.strokeStyle,t.setLineDash(this.dashPattern),t.beginPath(),t.moveTo(this.from.x,this.from.y),t.bezierCurveTo(this.fromCp.x,this.fromCp.y,this.toCp.x,this.toCp.y,this.to.x,this.to.y),t.stroke()},t.BezierCurve=S,t.Box=x,t.Box2=s,t.BoxMask=u,t.Circle=c,t.DOM=w,t.EventManager=n,t.Graph=P,t.Helpers=d,t.Image=b,t.Key=h,t.Line=f,t.Mask=m,t.Matrix=l,t.Object2D=p,t.Pattern=g,t.Pointer=y,t.Renderer=o,t.Text=v,t.UUID=i,t.Vector2=r,t.Viewport=e,t.ViewportControls=a,Object.defineProperty(t,"__esModule",{value:!0})});
|