-
Notifications
You must be signed in to change notification settings - Fork 9
/
tesspathy.min.js
8 lines (8 loc) · 36.6 KB
/
tesspathy.min.js
1
2
3
4
5
6
7
8
/**
* Tesspathy 0.1.0
* Copyright (C) 2015 Guangyao Liu / GREE, Inc.
* Tesspathy is licensed under the MIT license.
*/
!function(e){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{var t;t="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this,t.Tesspathy=e()}}(function(){return function e(t,n,r){function i(a,l){if(!n[a]){if(!t[a]){var s="function"==typeof require&&require;if(!l&&s)return s(a,!0);if(o)return o(a,!0);var c=new Error("Cannot find module '"+a+"'");throw c.code="MODULE_NOT_FOUND",c}var u=n[a]={exports:{}};t[a][0].call(u.exports,function(e){var n=t[a][1][e];return i(n?n:e)},u,u.exports,e,t,n,r)}return n[a].exports}for(var o="function"==typeof require&&require,a=0;a<r.length;a++)i(r[a]);return i}({1:[function(e,t,n){var r=e("./constants/TpConstants"),i=e("./core/shape/TpShape"),o=e("./core/stroke/TpStroke"),a={straight:{s:r.DEFAULT_STRAIGHT_S,t:r.DEFAULT_STRAIGHT_T},out_anchor0:{s:r.DEFAULT_ANCHOR0_S,t:r.DEFAULT_ANCHOR0_T},out_control:{s:r.DEFAULT_CONTROL_S,t:r.DEFAULT_CONTROL_T},out_anchor1:{s:r.DEFAULT_ANCHOR1_S,t:r.DEFAULT_ANCHOR1_T},in_anchor0:{s:-r.DEFAULT_ANCHOR0_S,t:-r.DEFAULT_ANCHOR0_T},in_control:{s:-r.DEFAULT_CONTROL_S,t:-r.DEFAULT_CONTROL_T},in_anchor1:{s:-r.DEFAULT_ANCHOR1_S,t:-r.DEFAULT_ANCHOR1_T}};i.setFillCoordinates(a),o.setFillCoordinates(a);var l={PATH_START:r.PATH_START,PATH_ANCHOR:r.PATH_ANCHOR,PATH_CONTROL:r.PATH_CONTROL,triangulate:i.triangulate,triangulateLine:o.triangulate,setFillCoordinates:function(e){e&&(e.straight&&(a.straight=e.straight),e.out_anchor0&&(a.out_anchor0=e.out_anchor0),e.out_control&&(a.out_control=e.out_control),e.out_anchor1&&(a.out_anchor1=e.out_anchor1),e.in_anchor0&&(a.in_anchor0=e.in_anchor0),e.in_control&&(a.in_control=e.in_control),e.in_anchor1&&(a.in_anchor1=e.in_anchor1),i.setFillCoordinates(a),o.setFillCoordinates(a))},getFillCoordinates:function(){return a}};t.exports=l},{"./constants/TpConstants":2,"./core/shape/TpShape":11,"./core/stroke/TpStroke":12}],2:[function(e,t,n){var r={PATH_START:1,PATH_ANCHOR:2,PATH_CONTROL:3,UNDETERMINED_START:-4,UNDETERMINED_END:-2,MERGE_VERTEX:1,END_VERTEX:2,REGULAR_LEFT_VERTEX:3,START_VERTEX:4,SPLIT_VERTEX:5,REGULAR_RIGHT_VERTEX:6,ANCHOR:1,CONTROL_IN:2,CONTROL_OUT:4,DEFAULT_STRAIGHT_S:-2,DEFAULT_STRAIGHT_T:-2,DEFAULT_ANCHOR0_S:0,DEFAULT_ANCHOR0_T:0,DEFAULT_CONTROL_S:.5,DEFAULT_CONTROL_T:.5,DEFAULT_ANCHOR1_S:1,DEFAULT_ANCHOR1_T:2};t.exports=r},{}],3:[function(e,t,n){var r=e("../constants/TpConstants"),i=r.UNDETERMINED_START,o=r.UNDETERMINED_END,a=r.MERGE_VERTEX,l=r.END_VERTEX,s=r.REGULAR_LEFT_VERTEX,c=r.START_VERTEX,u=r.SPLIT_VERTEX,d=r.REGULAR_RIGHT_VERTEX,h=function(){function e(e,t,n,r,i,o,a){this.type=e||null,this.depth=null==t?null:t;var l=this.head=n||null,s=this.tail=r||n||null;l&&(l.event=this),s&&s!==l&&(s.event=this),this.before=i||null,this.after=o||null,this.rank=null==a?-1:a}var t=e.prototype;return t.addNewHead=function(e){this.head=e,e.event=this},t.addNewTail=function(e){this.tail=e,e.event=this},t.removeHead=function(){var e=this.head;return e&&(this.head=e.next.event===this?e.next:null,e.event=null,null===this.head&&(this.tail=null)),e},t.removeTail=function(){var e=this.tail;return e&&(this.tail=e.prev.event===this?e.prev:null,e.event=null,null===this.tail&&(this.head=null)),e},t.removeVertex=function(e){e&&(e===this.head&&(this.head=e.next.event===this?e.next:null,e.event=null),e===this.tail&&(this.tail=e.prev.event===this?e.prev:null,e.event=null))},t.determineType=function(e){if(this.head&&this.tail&&this.before&&this.after){var t,n,r,h,f=this.before.x,x=this.before.y,v=this.head.x,p=this.tail.x,T=this.depth,g=this.after.x,y=this.after.y,_=f-v,C=x-T,b=g-p,R=y-T;C>0&&R>0?v===p?(t=_/C,n=b/R,n>t?h=u:t>n?h=c:void 0!==e?(r={index:this.tail.index,baseK:null,nextK:null,prevK:null,left:null,right:null,fail:c},C>R?(r.prevK=t,r.left=c,r.right=u):R>C?(r.nextK=n,r.left=u,r.right=c):(r.baseK=t,r.left=c,r.right=u),e.push(r),h=i):h=c):h=p>v?u:c:0>C&&0>R?v===p?(t=_/C,n=b/R,n>t?h=a:t>n?h=l:void 0!==e?(r={index:this.tail.index,baseK:null,nextK:null,prevK:null,left:null,right:null,fail:l},R>C?(r.prevK=t,r.left=a,r.right=l):C>R?(r.nextK=n,r.left=l,r.right=a):(r.baseK=t,r.left=l,r.right=a),e.push(r),h=o):h=l):h=v>p?a:l:h=C>R?d:s,this.type=h}},t.revertType=function(){var e=this.type,t=e;return e===a?t=l:e===l?t=a:e===u?t=c:e===c?t=u:e===d?t=s:e===s&&(t=d),this.type=t,t},t.concatBefore=function(e){this.before=e.before;for(var t=this.head=e.head;t.event===e;)t.event=this,t=t.next},e}();t.exports=h},{"../constants/TpConstants":2}],4:[function(e,t,n){function r(e,t,n,r,i){for(var o,a,l,c,h,f={},x={},v=n[e].objectIndices,p=Object.keys(v),T=0,g={},y=0,_=p.length;_>y;y++)if(h=p[y],0!==v[h]&&!(r[h]&&r[h].curves[e]&&g[h])){o=h,a=i[o],u.insideTriangle(a,t,!0)>0?(l=a,c="prev"):u.insideTriangle(a.next,t,!0)>0?(l=a.next,c="next",a.label!==d?(f[o]=1,T++):(x[o]=1,T++)):a.label!==d&&u.insideTriangle(a.prev,t,!0)>0?(l=a.prev,c="prev"):(l=a,c="next"),v[o]=0;do g[l.index]=1,o=s(l),1!==f[o]&&1!==x[o]?(i[o].label===d?(x[o]=1,l=i[o][c]):(f[o]=1,a=i[o],n[o]||(r[o]={index:o,originCoordinates:[a.actualPrev,a,a.actualNext],segments:{},curves:{},subCoordinates:[],intersectionCount:0}),l="prev"===c?a.prev.prev:a.next),T++,void 0!==v[o]&&(v[o]=0)):l=i[o][c];while(u.insideTriangle(l,t,!0)>0&&!g[l.index]);void 0!==v[o]&&(v[o]=0)}return{index:e,originCoordinates:t,segments:x,curves:f,subCoordinates:[],intersectionCount:T}}function i(e,t){var n,r,i,o,a,l,s=e.subCoordinates,c=t.subCoordinates,d=u.triangleOverlapping(e.originCoordinates,t.originCoordinates);if(0===s.length&&0===c.length||d===!1)return d;for(0===s.length?s=[e.originCoordinates]:0===c.length&&(c=[t.originCoordinates]),i=0,o=s.length;o>i;i++)for(n=s[i],a=0,l=c.length;l>a;a++)if(r=c[a],u.triangleOverlapping(n,r))return!0;return!1}function o(e,t,n,r){var i,o=t.subCoordinates,a=e.next,l=function(e,t,n){if(u.insideTriangle(e,n,!0)>0||u.insideTriangle(t,n,!0)>0)return!0;var r=n[0],i=n[1],o=n[2];return u.intersect(e,t,r,i,!0)||u.intersect(e,t,r,o,!0)||u.intersect(e,t,i,o,!0)};if(r||0===o.length)return l(e,a,t.originCoordinates);for(var s=0,c=o.length;c>s;s++)if(i=o[s],l(e,a,i))return!0;return!1}function a(e,t){var n=e.subCoordinates;if(!n||0===n.length)return void(e.subCoordinates=l(e.originCoordinates,t));for(var r,i=[],o=0,a=n.length;a>o;o++)r=l(n[o],t),u.segmentLengthSq(r[0][0],r[0][2])<18&&(e.limitReached=!0),i.push(r[0],r[1]);e.subCoordinates=i}function l(e,t){var n,r,i,o=e[0],a=e[1],l=e[2],s=null,c={x:o.x+l.x-2*a.x,y:o.y+l.y-2*a.y},u={x:2*(a.x-o.x),y:2*(a.y-o.y)},d={x:o.x,y:o.y};return i=0>t?0:t>1?1:t,null===s&&(s={x:c.x*i*i+u.x*i+d.x,y:c.y*i*i+u.y*i+d.y}),n={x:o.x+(a.x-o.x)*i,y:o.y+(a.y-o.y)*i},r={x:(l.x-a.x)*i+a.x,y:(l.y-a.y)*i+a.y},[[o,n,s],[s,r,l]]}function s(e){var t;return t=e.label!==d?e.index:e.next.label!==d?e.next.index:e.next!==e.actualNext?e.actualNext.index:e.index}var c=e("../constants/TpConstants"),u=e("../utils/Geometry"),d=c.ANCHOR,h=(c.CONTROL_IN,c.CONTROL_OUT,{initializeBezierCurve:r,isCurveOverlapping:i,isSegmentOverlapping:o,subdivideBezierCurve:a,subdivideQuadraticBezier:l,criticalIndex:s});t.exports=h},{"../constants/TpConstants":2,"../utils/Geometry":16}],5:[function(e,t,n){var r=e("./VertexConnection"),i=function(){function e(e,t,n,r,i,o,a,l){this.index=e,this.x=t,this.y=n,this.label=r||null,this.setNext(i),this.setPrev(o),this.setActualNext(a),this.setActualPrev(l),this.event=null,this.connections=[]}var t=e.prototype;return t.setNext=function(e){e?(this.next=e,e.prev=this):this.next=null},t.setPrev=function(e){e?(this.prev=e,e.next=this):this.prev=null},t.setActualNext=function(e){e?(this.actualNext=e,e.actualPrev=this):this.actualNext=null},t.setActualPrev=function(e){e?(this.actualPrev=e,e.actualNext=this):this.actualPrev=null},t.connectTo=function(e){var t=new r(this,e);return this.connections.push(t),t},t.addConnection=function(e){this.connections.push(e)},t.clearConnections=function(){this.connections=[]},e}();t.exports=i},{"./VertexConnection":6}],6:[function(e,t,n){var r=function(){function e(e,t,n){this.fromVertex=e,this.toVertex=t,this.direction=void 0!==n?n:this.generateDirection(e,t)}var t=e.prototype;return t.generateDirection=function(e,t){var n,r=e.x-t.x,i=e.y-t.y;if(i>0)n=r>0?1:0>r?2:1.5;else{if(!(0>i)){if(r>0)n=.5;else{if(!(0>r))return null;n=2.5}return{section:n,ratio:NaN}}n=r>0?0:0>r?3:3.5}return{section:n,ratio:r/i}},t.reverse=function(){var t=this.fromVertex,n=this.toVertex,r=this.direction,i=null!==r?{ratio:r.ratio,section:(r.section+2)%4}:null;return new e(n,t,i)},e}();t.exports=r},{}],7:[function(e,t,n){function r(e,t){var n,r,i,o,a,l,c,u,h,f,x,v,p,T,g,y,_,C,b,R=.5,E=[],N={},A=0,O=Object.keys(e);for(T=0,g=O.length;g>T;T++)if(x=+O[T],i=e[x],r=i.count,a=t[x],a.label!==d){for(A++,y=0,_=E.length;_>y;y++)if(r>=E[y].count){E.splice(y,0,{index:x,count:r});break}y===_&&E.push({index:x,count:r})}else for(h=Object.keys(i.objectIndices),C=0,b=r;b>C;C++)if(u=t[h[C]],u.label===d&&a.next.next===u){if(v=s.criticalIndex(a.prev),p=s.criticalIndex(u.next),e[v]&&1===e[v].objectIndices[u.index]||e[p]&&1===e[p].objectIndices[a.index])continue;u.event.revertType(),a.next.event!==u.event&&a.next.event.revertType()}if(0===A)return null;for(y=0,_=E.length;_>y;y++)o=E[y].index,a=t[o],a.label!==d?(l=a.actualPrev,c=a.actualNext,N[o]||(f=N[o]=s.initializeBezierCurve(o,[l,a,c],e,N,t))):E[y]=null;var I,m,L,S,w,H,D,V,U,M;for(y=0,_=E.length;_>y;y++)if(n=E[y],!(!n||n.count<=0||(o=n.index,f=N[o],f.intersectionCount<=0))){m=!1,L=f.segments,H=f.curves,M=!1;do for(s.subdivideBezierCurve(f,R),f.limitReached&&(M=!0),I=!1,S=Object.keys(L),C=0,b=S.length;b>C;C++)w=S[C],null!==L[w]&&(s.isSegmentOverlapping(t[w],f,t,!1)?I=!0:L[w]=null);while(I&&!M);M=!1;do{for(I=!1,D=Object.keys(H),C=0,b=D.length;b>C;C++)V=D[C],null!==H[V]&&(U=N[V],s.isCurveOverlapping(U,f)?(s.subdivideBezierCurve(U,R),U.limitReached?(M=!0,H[V]=null):s.isCurveOverlapping(U,f)?I=!0:H[V]=null):H[V]=null);I&&!f.limitReached&&(s.subdivideBezierCurve(f,R),M=M&&f.limitReached)}while(I&&!M)}return N}function i(e,t,n,r){for(var i,o,a,c,u,h,f,b,R,E=10,N=new Array(E),A=Math.floor(r/E)+1,O={},I=!1,m=new Array(2*t.length),L=[],S=0;E>S;S++)N[S]={segments:[],enter:[]};var w=function(e){var t,r,i,o,a,c,u,h,f,x,v,p,T=e.prev,g=e.next,y=e.actualPrev,_=(e.actualNext,e.x),C=g.x,b=e.y,R=g.y;if(_!==C||b!==R){for(g.actualNext.label!==d&&l.insideTriangle(e,[g.actualNext.actualNext,g,g.actualNext])>0&&(I=!0,p=s.criticalIndex(e),v=g.actualNext.index,O[p]?O[p].objectIndices[v]||(O[p].objectIndices[v]=1,O[p].count++):(O[p]={objectIndices:{},count:1},O[p].objectIndices[v]=1),O[v]?O[v].objectIndices[p]||(O[v].objectIndices[p]=1,O[v].count++):(O[v]={objectIndices:{},count:1},O[v].objectIndices[p]=1)),y.label!==d&&l.insideTriangle(g,[y,e,y.actualPrev])>0&&(I=!0,p=s.criticalIndex(e),v=y.index,O[p]?O[p].objectIndices[v]||(O[p].objectIndices[v]=1,O[p].count++):(O[p]={objectIndices:{},count:1},O[p].objectIndices[v]=1),O[v]?O[v].objectIndices[p]||(O[v].objectIndices[p]=1,O[v].count++):(O[v]={objectIndices:{},count:1},O[v].objectIndices[p]=1)),C>_?(i=_,o=C):(i=C,o=_),t=Math.floor((i-n)/A),r=Math.floor((o-n)/A),a=N[t].segments,h=0,f=a.length;f>h;h++)x=a[h],x!==T&&x!==g&&l.intersect(e,g,x,x.next)&&(I=!0,p=s.criticalIndex(e),v=s.criticalIndex(x),O[p]?O[p].objectIndices[v]||(O[p].objectIndices[v]=1,O[p].count++):(O[p]={objectIndices:{},count:1},O[p].objectIndices[v]=1),O[v]?O[v].objectIndices[p]||(O[v].objectIndices[p]=1,O[v].count++):(O[v]={objectIndices:{},count:1},O[v].objectIndices[p]=1));for(u=t+1;r>=u;u++)for(c=N[u].enter,h=0,f=c.length;f>h;h++)x=c[h],x!==T&&x!==g&&l.intersect(e,g,x,x.next)&&(I=!0,p=s.criticalIndex(e),v=s.criticalIndex(x),O[p]?O[p].objectIndices[v]||(O[p].objectIndices[v]=1,O[p].count++):(O[p]={objectIndices:{},count:1},O[p].objectIndices[v]=1),O[v]?O[v].objectIndices[p]||(O[v].objectIndices[p]=1,O[v].count++):(O[v]={objectIndices:{},count:1},O[v].objectIndices[p]=1));for(N[t].enter.push(e),u=t;r>=u;u++)N[u].segments.push(e);var E=2*e.index;m[E]=t,m[E+1]=r}},H=function(e){var t=2*e.index;if(null!=m[t]){for(var n=m[t],r=m[t+1],i=N[n].enter,o=0,a=i.length;a>o;o++)if(i[o]===e){i.splice(o,1);break}for(var l,s=n;r>=s;s++)for(l=N[s].segments,o=0,a=l.length;a>o;o++)if(l[o]===e){l.splice(o,1);break}m[t]=null}};if(!e||e.length<2)return null;for(var D=0,V=e.length-1;V>D;D++){if(i=e[D],i.rank=D,o=i.type,u=i.head,a=i.tail,c=a.index,void 0!==R&&i.depth!==R)for(;L.length>0;)H(L.pop());if(u!==a){h=u;do w(h),L.push(h),h=h.next;while(h.event===i&&h.next.event===i&&h!==u)}o===y||o===_||o===x?(f=i.after,b=i.before,w(a),w(b)):o===T||o===p||o===v?(L.push(i.before),L.push(a)):o===C?(b=i.before,L.push(a),w(b)):o===g&&(f=i.after,L.push(i.before),w(a)),R=i.depth}return e[V].rank=V,I?O:null}function o(e,t,n,r,i){var o,a,l,x,v,p,T,g,y,_,C,b,R,E,N,A,O,I,m,L,S,w,H,D,V,U=[],M=t,X=[];if(!e)return null;var j=Object.keys(e);for(o=0,a=j.length;a>o;o++)if(y=e[j[o]],T=y.subCoordinates,p=T.length,0!==p){if(_=r[y.index].label,_===h&&X.push(y.index),A=2*p-1,N=M+A-1,b=y.originCoordinates[0],E=y.originCoordinates[2],_===f){if(b.event===E.event){C=E.event,I=new u(null,C.depth,b,b,C.before),w=b;do C.removeVertex(w),I.addNewHead(w),w=w.prev;while(w.event===C&&w!==E);n.push(I)}for(O=E,I=O.event,S=I.depth,l=p-1;l>0;l--)N--,g=T[l],H=g[0],i[2*N]=H.x,i[2*N+1]=H.y,D=r[N]=new c(N,H.x,H.y,d,O),D.connectTo(O),D.y!==S?(I.before=D,I.determineType(),S=D.y,I=new u(null,S,D,D,null,O),U.push(I)):I.addNewHead(D),H=g[1],i[2*(N+1)]=H.x,i[2*(N+1)+1]=H.y,V=r[N+1]=new c(N+1,H.x,H.y,_,null,null,O,D),V.next=O,V.prev=D,O=D,N--;H=T[0][1],i[2*N]=H.x,i[2*N+1]=H.y,V=r[N]=new c(N,H.x,H.y,_,O,b,O,b),b.setNext(O),b.clearConnections(),b.connectTo(O),b.y!==S?(I.before=b,I.determineType(),I=b.event,I.after=O,I.determineType()):(I=b.event,I.after=U.pop().after,I.addNewTail(O),I.determineType()),r[y.index]=null}else{if(R=y.originCoordinates[1],C=R.event,C===b.event||C===E.event){if(b.event===E.event)continue;C.head===R?C.removeHead():C.removeTail()}for(O=E,I=O.event,S=I.depth,l=p-1;l>0;l--)g=T[l],H=g[1],i[2*N]=H.x,i[2*N+1]=H.y,D=r[N]=new c(N,H.x,H.y,_,O,null,O,null),D.connectTo(O),H.y!==S?(I.before=D,I.determineType(),S=H.y,I=new u(null,S,D,D,null,O),U.push(I)):I.addNewHead(D),O=D,N--,H=g[0],i[2*N]=H.x,i[2*N+1]=H.y,D=r[N]=new c(N,H.x,H.y,d,O,null,O,null),D.connectTo(O),H.y!==S?(I.before=D,I.determineType(),S=H.y,I=new u(null,S,D,D,null,O),U.push(I)):I.addNewHead(D),O=D,N--;H=T[0][1],i[2*N]=H.x,i[2*N+1]=H.y,D=r[N]=new c(N,H.x,H.y,_,O,b,O,b),D.connectTo(O),H.y!==S?(I.before=D,I.determineType(),S=H.y,I=new u(null,S,D,D,null,O),U.push(I)):I.addNewHead(D),b.clearConnections(),b.connectTo(D),b.y!==S?(I.before=b,I.determineType(),I=b.event,I.after=D,I.determineType()):(I=b.event,I.after=U.pop().after,I.addNewTail(D),I.determineType())}y.limitReached&&(s.isSegmentOverlapping(b.prev,y,r,!0)&&s.isSegmentOverlapping(b.prev,y,r,!1)&&b.event.revertType(),s.isSegmentOverlapping(E,y,r,!0)&&s.isSegmentOverlapping(E,y,r,!1)&&E.event.revertType()),M+=A}for(x=0,v=X.length;v>x;x++)L=X[x],m=r[L].event,m&&m.head===m.tail&&m.tail.index===L&&(n[m.rank]=U.pop()),r[L]=null;return n=n.concat(U)}var a=e("../../constants/TpConstants"),l=e("../../utils/Geometry"),s=e("../QuadCurve"),c=e("../Vertex"),u=e("../MonotoneEvent"),d=a.ANCHOR,h=a.CONTROL_IN,f=a.CONTROL_OUT,x=a.UNDETERMINED_START,v=a.UNDETERMINED_END,p=a.MERGE_VERTEX,T=a.END_VERTEX,g=a.REGULAR_LEFT_VERTEX,y=a.START_VERTEX,_=a.SPLIT_VERTEX,C=a.REGULAR_RIGHT_VERTEX,b={resolveIntersections:r,detectIntersection:i,updateVertexData:o};t.exports=b},{"../../constants/TpConstants":2,"../../utils/Geometry":16,"../MonotoneEvent":3,"../QuadCurve":4,"../Vertex":5}],8:[function(e,t,n){function r(e,t,n,r,l){var s,c,u,h,x,p,T=l>0,g=[],y=[],_=0,C=1/0,b=-(1/0),R=[];void 0===l?l=p=1:p=Math.abs(l/1e4);for(var E=0,N=t.length;N>E;E++)s=t[E].vertices,s.length<3||0===t[E].area||l>0!=t[E].area>0&&Math.abs(t[E].area)<p||(c=o(R,s,n,r,_,T),null!==c&&(g=g.concat(c.events),y=y.concat(c.undeterminedEvents),c.minX<C&&(C=c.minX),c.maxX>b&&(b=c.maxX)),_+=s.length);if(g.sort(function(e,t){return e.depth-t.depth||e.tail.x-t.tail.x||e.type-t.type}),x=e.triangleLocations=i(R),h=v.detectIntersection(g,R,C,b-C),null!==h){var A=v.updateVertexData(v.resolveIntersections(h,R),_,g,R,x);y.length>0&&f(y,R),A&&(g=A,g.sort(function(e,t){return e.depth-t.depth||e.tail.x-t.tail.x||e.type-t.type}))}else y.length>0&&f(y,R);return d(g),u=a(g),{monotoneShapes:u,allVertexData:R}}function i(e){for(var t,n=0,r=e.length,i=new Array(2*r),o=0;r>n;n++)t=e[n],i[o++]=t.x,i[o++]=t.y;return i}function o(e,t,n,r,i,o){if(t.length<3)return null;var a,l,s,c,u,d,h,f,x,v,g,b,R,E=t.length,N=[],A=n[t[0]],O=A[0],I=A[1],m=[],L=O,S=O;o?(b=0,h=E-1,R=-1):(b=_+C,h=1,R=1),e[i]=a=new p(i,O,I,y),x=I,g=v=new T(null,x,a),l=c=a;for(var w=1,H=E;H>w;w++)d=i+h,f=t[h],A=n[f],O=A[0],I=A[1],u=r[f],u=u&y||u^b,h+=R,e[d]=s=new p(d,O,I,u,l,null,c),l!==c&&(c.prev=s),u!==C&&(s.connectTo(l),I!==x?(v.before=s,v.determineType(m),x=I,v=new T(null,x,s,s,null,l),N.push(v)):v.addNewHead(s),l=s),c=s,O>S?S=O:L>O&&(L=O);return a.setNext(l),a.setActualNext(c),a.connectTo(l),c!==l&&(c.prev=a),v===g?(g.after=g.head,g.before=g.tail,N.push(g),{undeterminedEvents:m,events:N,minX:L,maxX:S}):(x===g.depth?(v.concatBefore(g),v.determineType(m)):(v.before=a,g.after=l,v.determineType(m),g.determineType(m),N.push(g)),{undeterminedEvents:m,events:N,minX:L,maxX:S})}function a(e){var t,n,r,i,o,a,l,s,u,d=[];if(!e||e.length<2)return null;for(var h=0,f=e.length;f>h;){for(u=e[h],n=u.tail;n&&null===n.connections;)n=u.removeTail();if(n){for(r=n,t=[n],s=null,o=c(n.connections,s,null,n.next,!1),i=o.toVertex;i!==n;)t.push(i),l=r,a=o,s=null!==a.direction?a.direction:s,r=a.toVertex,o=c(r.connections,s,l,r.next,l.next===r),i=o.toVertex,0===r.connections.length&&(r.connections=null);0===n.connections.length&&(n.connections=null),d.push(t)}else h++}return d}function l(e,t,n,r){for(var i,o,a,l=r||0,s=t.section,c=t.ratio,u=e[l].direction,d=l,h=(u.section+2)%4,f=u.ratio,x=s===h&&c>f,v=1,p=e.length;p>v;v++)if(null===n||e[v].toVertex!==n){if(u=e[v].direction,null===u)return v;if(i=(u.section+2)%4,x){if(i!==h)continue;u.ratio>f&&u.ratio<c&&(f=u.ratio,d=v)}else i===s&&(c!==c&&u.ratio!==u.ratio||u.ratio<=c)?(x=!0,f=u.ratio,d=v):i!==h?(o=h-s,0>=o&&(o+=4),a=i-s,0>=a&&(a+=4),o>a&&(h=i,f=u.ratio,d=v)):u.ratio>f&&(f=u.ratio,d=v)}return d}function s(e,t,n){var r={direction:e};return 1===l([{direction:n},r],t,null)}function c(e,t,n,r,i){if(1===e.length||2===e.length&&i&&e[0].toVertex===r&&e[1].toVertex!==n)return e.pop();var o,a;if(null===t){var s=-1;for(o=0,a=e.length;a>o;o++)if(e[o].toVertex!==n){if(null===e[o].direction)return e.splice(o,1)[0];0>s&&(s=o)}return e.splice(s,1)[0]}var c,u=0;if(null===e[0].direction){if(c=e[0].toVertex,c!==n)return e.shift();u=1}var d=l(e,t,n,u);return e.splice(d,1)[0]}function u(e,t,n,r){var i,o,a,l,s,c,u,d;return n&&r?(i=n,o=r):e.head===e.tail&&t.head===t.tail?(i=e.head,o=t.head):(e.head.x<e.tail.x?(a=e.head,l=e.tail):(a=e.tail,l=e.head),t.head.x<t.tail.x?(s=t.head,c=t.tail):(s=t.tail,c=t.head),a.x>=c.x?(i=a,o=c):l.x<=s.x?(i=l,o=s):(i=a,o=s)),u=i.connectTo(o),d=u.reverse(),o.addConnection(d),{from:[i.x,i.y],to:[o.x,o.y]}}function d(e){var t,n,r,i,o,a,l,s,c,d,f,x,v,p=[];if(e&&!(e.length<2)){for(d=0,f=e.length-1;f>d;d++)if(r=e[d],r.rank=d,i=r.type,a=r.tail,i===N)l=r.after,p.push({vertex:a,x:a.x,y:a.y,endX:l.x,endY:l.y,direction:r.tail.connections[0].direction,helper:r});else if(i===R){for(x=0,v=p.length;v>x;x++)if(t=p[x],t.vertex===r.before){o=t.helper,o.type===b&&u(r,o),p.splice(x,1);break}}else if(i===A)n=h(p,r.head,r.before.connections[0].direction,r.head.connections[0].direction),null!==n&&(o=n.helper,u(r,o),n.helper=r),l=r.after,p.push({vertex:a,x:a.x,y:a.y,endX:l.x,endY:l.y,direction:r.tail.connections[0].direction,helper:r});else if(i===b){for(x=0,v=p.length;v>x;x++)if(t=p[x],t.vertex===r.before){o=t.helper,o.type===b&&u(r,o,r.head,o.tail),p.splice(x,1);break}n=h(p,a,r.head!==r.tail?r.head.connections[0].direction:r.before.connections[0].direction,r.tail.connections[0].direction),null!==n&&(o=n.helper,o.type===b&&u(r,o,r.tail,o.head),n.helper=r)}else if(i===O)r.head.x<=a.x?(s=r.head,c=r.tail,n=h(p,s,r.before.connections[0].direction,s.connections[0].direction)):(s=r.tail,c=r.head,n=h(p,s,r.head.connections[0].direction,r.tail.connections[0].direction)),n&&(n.helper.type===b&&(o=n.helper,u(r,o,s,o.head)),n.helper=r);else if(i===E){for(l=r.after,x=0,v=p.length;v>x;x++)if(t=p[x],t.vertex===r.before){o=t.helper,o.type===b&&u(r,o,r.head,o.tail),p.splice(x,1);break}p.push({vertex:a,x:a.x,y:a.y,endX:l.x,endY:l.y,direction:r.tail.connections[0].direction,helper:r})}for(d=e.length-1,r=e[d],a=r.tail,r.rank=d,x=0,v=p.length;v>x;x++)if(t=p[x],t.vertex===r.before){o=t.helper,o.type===b&&u(r,o);break}}}function h(e,t,n,r){for(var i,o,a,l,c=-(1/0),u=t.x,d=t.y,h=null,f=0,x=e.length;x>f;f++)if(o=e[f],o.helper){if(a=o.direction.ratio,a!==a){if(o.y!==d)continue;i=Math.max(o.x,o.endX)}else if(i=o.x+a*(d-o.y),i===t.x)if(i===o.x){if(l=new g({x:o.x,y:o.y},{x:o.endX,y:o.endY}).direction,!s(l,n,r))continue}else if(i===o.endX){if(l=new g({x:o.endX,y:o.endY},{x:o.x,y:o.y}).direction,!s(l,n,r))continue}else{if(l=new g({x:i,y:d},{x:o.endX,y:o.endY}).direction,!s(l,n,r))continue;if(l=new g({x:i,y:d},{x:o.x,y:o.y}).direction,!s(l,n,r))continue}u>=i&&i>c&&(c=i,h=o)}return h}function f(e,t){for(var n,r,i,o,a,s,c,u,d,h,f,x=0,v=e.length;v>x;x++)if(n=e[x],r=t[n.index],r&&r.event&&!(r.event.type>0))if(o=!1,null!==n.baseK){s=n.baseK,i=u=r.event.before;do{if(c=u.event,u=c.head===u?c.before:c.head,u===i){o=!0;break}d=u.connections[0]}while(!d.direction||d.direction.ratio===s);if(o){r.event.type=n.fail;continue}var p=d.direction;for(i=d=r.event.after.connections[0];!d.direction||d.direction.ratio===s;)if(d=d.toVertex.connections[0],d===i){o=!0;break}if(o){r.event.type=n.fail;continue}var T=[d,r.event.before.connections[0]],g=l(T,p,null);r.event.type=g===d?n.left:n.right}else{if(null!==n.nextK){s=n.nextK,i=u=r.event.before;do{if(c=u.event,u=c.head===u?c.before:c.head,u===i){o=!0;break}d=u.connections[0]}while(!d.direction||d.direction.ratio===s);h=u}else if(null!==n.prevK){for(s=n.prevK,i=d=r.event.after.connections[0];!d.direction||d.direction.ratio===s;)if(d=d.toVertex.connections[0],d===i){o=!0;break}h=d.toVertex}if(o){r.event.type=n.fail;continue}a=r.x-s*r.y,f=s*h.y+a,r.event.type=h.x<f?n.left:n.right}}var x=e("../../constants/TpConstants"),v=e("./IntersectionResolver"),p=e("../Vertex"),T=e("../MonotoneEvent"),g=e("../VertexConnection"),y=x.ANCHOR,_=x.CONTROL_IN,C=x.CONTROL_OUT,b=(x.UNDETERMINED_START,x.UNDETERMINED_END,x.MERGE_VERTEX),R=x.END_VERTEX,E=x.REGULAR_LEFT_VERTEX,N=x.START_VERTEX,A=x.SPLIT_VERTEX,O=x.REGULAR_RIGHT_VERTEX,I={process:r};t.exports=I},{"../../constants/TpConstants":2,"../MonotoneEvent":3,"../Vertex":5,"../VertexConnection":6,"./IntersectionResolver":7}],9:[function(e,t,n){function r(e){o=e.straight.s,a=e.straight.t,l=e.out_anchor0.s,s=e.out_anchor0.t,c=e.out_control.s,u=e.out_control.t,d=e.out_anchor1.s,h=e.out_anchor1.t}function i(e,t,n,r){var i,x,v,p,T,g,y,_,C,b,R,E=0,N=2*e,A=new Array(N),O=[],I=new Array(N),m=0,L=e;for(_=0,C=t.length;C>_;_++){for(i=t[_].vertices,x=E,v=-1,T=n[i[0]],A[m]=T[0],I[m++]=o,A[m]=T[1],I[m++]=a,b=1,R=i.length;R>b;b++)p=i[b],T=n[p],E++,r[p]!==f.ANCHOR?(g=n[i[0>b-1?R-1:b-1]],y=n[i[b+1>=R?0:b+1]],A.push(g[0],g[1],y[0],y[1]),O.push(L,E,L+1),L+=2,I.push(l,s,d,h),A[m]=T[0],I[m++]=c,A[m]=T[1],I[m++]=u):(v>=0&&O.push(x,v,E),A[m]=T[0],I[m++]=o,A[m]=T[1],I[m++]=a,v=E);E++}return{triangleLocations:A,triangleIndices:O,fillCoordinates:I,vertexCount:L}}var o,a,l,s,c,u,d,h,f=e("../../constants/TpConstants"),x={resetCoordinatesTemplate:r,triangulate:i};t.exports=x},{"../../constants/TpConstants":2}],10:[function(e,t,n){function r(e){if(e.length<3)return null;var t,n,r,o,a,l=[],s=1,c=e.length-1,u=e[s],d=e[c],h=u.y,f=d.y;f>=h?(t=u,u=e[++s],h=u.y,n=0):(t=d,d=e[--c],f=d.y,n=1);var x=[e[0],t];for(r=n;c>s;){if(a=f>h?0:h>f?1:(r+1)%2,0===a?(t=u,u=e[++s],h=u.y,n=0):(t=d,d=e[--c],f=d.y,n=1),n!==r)for(;x.length>1;)l.push(x[0].index,x[1].index,t.index),o=x.shift();else for(;x.length>1&&i(x,t,0===n);)l.push(x[x.length-1].index,x[x.length-2].index,t.index),o=x.pop();x.push(t),r=n}for(;x.length>1;)l.push(x[0].index,x[1].index,e[s].index),x.shift();return l}function i(e,t,n){var r,i,o,a,l;if(i=e[e.length-1],r=e[e.length-2],t.x===r.x)return!0;o=(t.y-r.y)/(t.x-r.x);var s=r.y+(i.x-r.x)*o;return s===i.y?!0:(a=i.y<=s,l=o>=0?n?!a:a:n?a:!a)}var o={triangulate:r};t.exports=o},{}],11:[function(e,t,n){function r(e,t){if(!(e&&t&&e.length&&t.length&&e.length===t.length&&e[0].length&&t[0].length))return null;var n=e.length;if(4>n)return null;for(var r,o,a,l,s,c,u,d,h=[],f=new Array(n),x=0,v=0,p=null,T=null,g=e[0],y=t[0][0],_=0,b=!0,R=!0,E=0,S=0,w=n-1;w>S;S++){if(T=g,g=e[S+1],a=y,y=t[S+1][0],a===N)r&&r.length>=3&&t[S-1][0]===A&&l[0]===p[0]&&l[1]===p[1]?(h.push({vertices:r,area:x-v}),v=x,R=R&&b,_=d):(x=v,b=R,d=_),r=[S],f[S]=I,l=T,s=g,o=T,E++;else{if(p[0]===T[0]&&p[1]===T[1])continue;if(x+=(T[0]-p[0])*(T[1]+p[1]),a===A)y===N?c=s:(c=y===A?g:e[S+2],r.push(S),f[S]=I,E++),b&&c&&(u=C.vectorSide(o,T,c)),o=T;else{if(a!==O)return null;r.push(S),u=C.vectorSide(o,T,g),f[S]=0>u?L:m,E++}b&&0!==u&&(0===d?d=u:u!==d&&(b=!1))}p=T}return T=g,(p[0]!==T[0]||p[1]!==T[1])&&(x+=(T[0]-p[0])*(T[1]+p[1]),b&&(u=C.vectorSide(o,T,s),0!==u&&u!==d&&(b=!1))),r&&r.length>=3&&y===A&&l[0]===T[0]&&l[1]===T[1]&&(h.push({vertices:r,area:x-v}),R=R&&b),0===h.length?null:i(h,E,e,f,x,R)}function i(e,t,n,r,i,a){if(a)return b.triangulate(t,e,n,r);var l,s=[],c={triangleLocations:null,triangleIndices:null,fillCoordinates:null,vertexCount:0},u=E.process(c,e,n,r,i),d=u.monotoneShapes;if(d)for(var h=0,f=d.length;f>h;h++)l=R.triangulate(d[h]),null!==l&&(s=s.concat(l));return c.triangleIndices=s,o(c,u.allVertexData),c}function o(e,t){var n,r,i,o,_,C,b=e.triangleLocations,R=e.triangleIndices,E=0,N=L,A=b.length,O=A/2,m=new Array(A);for(_=0,C=A;C>_;)n=t[E++],m[_++]=a,m[_++]=l,n&&(r=n.label,r!==I&&(i=n.actualPrev,o=n.actualNext,b.push(i.x,i.y,n.x,n.y,o.x,o.y),R.push(O,O+1,O+2),O+=3,r===N?m.push(s,c,u,d,h,f):m.push(x,v,p,T,g,y)));e.fillCoordinates=m,e.vertexCount=O}var a,l,s,c,u,d,h,f,x,v,p,T,g,y,_=e("../../constants/TpConstants"),C=e("../../utils/Geometry"),b=e("./TpConvexShape"),R=e("./TpMonotoneShape"),E=e("./MonotonePartition"),N=_.PATH_START,A=_.PATH_ANCHOR,O=_.PATH_CONTROL,I=_.ANCHOR,m=_.CONTROL_IN,L=_.CONTROL_OUT,S={triangulate:r,setFillCoordinates:function(e){b.resetCoordinatesTemplate(e),a=e.straight.s,l=e.straight.t,s=e.out_anchor0.s,c=e.out_anchor0.t,u=e.out_control.s,d=e.out_control.t,h=e.out_anchor1.s,f=e.out_anchor1.t,x=e.in_anchor0.s,v=e.in_anchor0.t,p=e.in_control.s,T=e.in_control.t,g=e.in_anchor1.s,y=e.in_anchor1.t}};t.exports=S},{"../../constants/TpConstants":2,"../../utils/Geometry":16,"./MonotonePartition":8,"./TpConvexShape":9,"./TpMonotoneShape":10}],12:[function(e,t,n){function r(e,t,n){if(!(e&&t&&e.length&&t.length&&e.length===t.length&&e[0].length&&t[0].length))return null;if(!(n&&n.width&&"number"==typeof n.width&&n.width>0))return null;for(var r,o,f,x,v,p,T=null,g=0,y=[],_=[],C=[],b=0,R=0,E=!1,N=n.width,A=n.cap||"round",O=n.join||"round",I="round"===A?s.getRoundCapRecords:s.getSpecialCapRecords,m="round"===O?c.getRoundJoinRecords:c.getSpecialJoinRecords,L=0,S=e.length;S>L;L++)r=e[L],f=r,o=t[L][0],o===u?(p=x=f,E=!0):o===d?(E&&(v=I(g,N,x,null===T?f:T,A),y.push(v.triangleLocations),_.push(v.triangleIndices),C.push(v.fillCoordinates),b+=v.triangleLocations.data.length,R+=v.triangleIndices.data.length,g+=v.triangleLocations.data.length/2,E=!1),v=null===T||0===a.sideOfLine(T[0],T[1],x[0],x[1],f[0],f[1])?l.getContourRecords(g,N,x,f,null):l.getContourRecords(g,N,x,f,T),y.push(v.triangleLocations),_.push(v.triangleIndices),C.push(v.fillCoordinates),b+=v.triangleLocations.data.length,R+=v.triangleIndices.data.length,g+=v.triangleLocations.data.length/2,v=L+1===S||t[L+1][0]===u||L+2===S&&t[L+1][0]===h||S>L+2&&t[L+2][0]===u&&t[L+1][0]===h?f[0]!==p[0]||f[1]!==p[1]?I(g,N,f,null===T?x:T,A):null:m(g,N,f,null===T?x:T,e[L+1],O),v&&(y.push(v.triangleLocations),_.push(v.triangleIndices),C.push(v.fillCoordinates),b+=v.triangleLocations.data.length,R+=v.triangleIndices.data.length,g+=v.triangleLocations.data.length/2),T=null,x=f):o===h&&(T=f);return i(y,_,C,b,R,g)}function i(e,t,n,r,i,o){for(var a,l,s,c,u,d,h,f,x,v,p=new Array(r),T=new Array(i),g=new Array(r),y=0,_=0,C=0,b=0,R=e.length;R>b;b++){for(a=e[b],d=a.data,s=a.biasX,c=a.biasY,l=t[b],h=l.data,u=l.biasIndex,f=n[b],x=0,v=d.length;v>x;x+=2)p[y++]=d[x]+s,p[y++]=d[x+1]+c,g[C++]=f[x],g[C++]=f[x+1];for(x=0,v=h.length;v>x;x++)T[_++]=h[x]+u}return{triangleLocations:p,triangleIndices:T,fillCoordinates:g,vertexCount:o}}var o=e("../../constants/TpConstants"),a=e("../../utils/Geometry"),l=e("./TpStrokeContour"),s=e("./TpStrokeCap"),c=e("./TpStrokeJoin"),u=o.PATH_START,d=o.PATH_ANCHOR,h=o.PATH_CONTROL,f={triangulate:r,setFillCoordinates:function(e){l.resetCoordinatesTemplate(e),s.resetCoordinatesTemplate(e),c.resetCoordinatesTemplate(e)}};t.exports=f},{"../../constants/TpConstants":2,"../../utils/Geometry":16,"./TpStrokeCap":13,"./TpStrokeContour":14,"./TpStrokeJoin":15}],13:[function(e,t,n){function r(e){for(var t=[],n=0;32>n;n+=4)t.push(e.straight.s,e.straight.t,e.out_control.s,e.out_control.t);for(n=0;8>n;n++)t.push(e.out_anchor0.s,e.out_anchor0.t,e.out_anchor1.s,e.out_anchor1.t);s=t}function i(e,t,n){var r=a(t);return{triangleLocations:{data:r.triangleLocations,biasX:n[0],biasY:n[1]},triangleIndices:{data:r.triangleIndices,biasIndex:e},fillCoordinates:r.fillCoordinates}}function o(e,t,n,r,i){}function a(e){var t,n=Math.abs(e/2),r=n/(1+Math.sqrt(2)),i=n/Math.sqrt(2);t=[0,-n,-r,-n,-i,-i,-n,-r,-n,0,-n,r,-i,i,-r,n,0,n,r,n,i,i,n,r,n,0,n,-r,i,-i,r,-n];for(var o=0,a=0;8>a;a++)t.push(t[o],t[o+1],t[o+4],t[o+5]),o+=4;return{triangleLocations:t,triangleIndices:l,fillCoordinates:s}}var l=[0,2,14,2,4,14,14,4,12,4,6,12,12,6,10,6,8,10];!function(){for(var e=16,t=0;8>t;t++)l.push(e,e-15,e+1),e+=2}();var s,c={resetCoordinatesTemplate:r,getRoundCapRecords:i,getSpecialCapRecords:o};t.exports=c},{}],14:[function(e,t,n){function r(e){s=e.straight.s,c=e.straight.t,u=e.out_anchor0.s,d=e.out_anchor0.t,h=e.out_control.s,f=e.out_control.t,x=e.out_anchor1.s,v=e.out_anchor1.t,p=e.in_anchor0.s,T=e.in_anchor0.t,g=e.in_control.s,y=e.in_control.t,_=e.in_anchor1.s,C=e.in_anchor1.t,b=[s,c,s,c,s,c,s,c,s,c,s,c,u,d,h,f,x,v,p,T,g,y,_,C],R=[s,c,s,c,s,c,s,c,s,c,s,c,p,T,g,y,_,C,u,d,h,f,x,v],E=[s,c,s,c,s,c,s,c]}function i(e,t,n,r,i){var a,l,s,c,u,d,h,f,x,v,p,T,g,y,_,C,S,w,H,D,V,U,M=Math.abs(t/2),X=n[0],j=n[1],k=r[0],F=r[1],P=!1,G=!1;if(i){if(a=i[0],l=i[1],X===a?(s=X+M,c=j,u=X-M,d=j,P=!0):(D=(j-l)/(X-a),H=M/Math.sqrt(D*D+1),w=D*H,s=X-w,c=j+H,u=X+w,d=j-H),k===a?(h=k+M,f=F,x=k-M,v=F,G=!0):(V=(F-l)/(k-a),H=M/Math.sqrt(V*V+1),w=V*H,h=k-w,f=F+H,x=k+w,v=F-H),A.sideOfLine(s,c,X,j,a,l)===A.sideOfLine(x,v,a,l,k,F)){var K=h,q=f;h=x,f=v,x=K,v=q}P?(C=f-V*h,p=s,T=V*s+C,C=v-V*x,g=u,y=V*u+C):G?(_=c-D*s,p=h,T=D*h+_,_=d-D*u,g=x,y=D*x+_):(_=c-D*s,C=f-V*h,p=(C-_)/(D-V),T=D*p+_,_=d-D*u,C=v-V*x,g=(C-_)/(D-V),y=D*g+_),U=[s,c,p,T,h,f,x,v,g,y,u,d];for(var Y=0,z=0;8>=z;z+=2)Y+=(U[z+2]-U[z])*(U[z+3]+U[z+1]);if(Y+=(U[0]-U[10])*(U[1]+U[11]),0>Y)for(z=0;6>z;z+=2)K=U[10-z],q=U[11-z],U[10-z]=U[z],U[11-z]=U[z+1],U[z]=K,U[z+1]=q;var B,J,Q,W,Z,$,ee;return A.sideOfLine(U[0],U[1],U[2],U[3],U[4],U[5])<0?(L.vertices[1].label=N.CONTROL_OUT,L.vertices[4].label=N.CONTROL_IN,J={x:U[8],y:U[9]},Q=[{x:U[0],y:U[1]},{x:U[2],y:U[3]},{x:U[4],y:U[5]}],W=!0):(L.vertices[1].label=N.CONTROL_IN,L.vertices[4].label=N.CONTROL_OUT,J={x:U[2],y:U[3]},Q=[{x:U[6],y:U[7]},{x:U[8],y:U[9]},{x:U[10],y:U[11]}],W=!1),B=A.insideTriangle(J,Q,!0),B?o(U,W,e):(Z=U.concat(U),W?($=O,ee=b):($=I,ee=R),{triangleLocations:{data:Z,biasX:0,biasY:0},triangleIndices:{data:$,biasIndex:e},fillCoordinates:ee})}return X===k?U=F>j?[X+M,j,X-M,j,k-M,F,k+M,F]:[X-M,j,X+M,j,k+M,F,k-M,F]:(S=(j-F)/(X-k),H=M/Math.sqrt(S*S+1),w=S*H,s=X-w,c=j+H,u=X+w,d=j-H,h=k-w,f=F+H,x=k+w,v=F-H,U=k>X?[u,d,s,c,h,f,x,v]:[s,c,u,d,x,v,h,f]),
{triangleLocations:{data:U,biasX:0,biasY:0},triangleIndices:{data:m,biasIndex:e},fillCoordinates:E}}function o(e,t,n){var r,i,o,b,R,E,N,A=!0;for(t?(i=e.slice(6,12),o=[e.slice(0,6)]):(i=e.slice(0,6),o=[e.slice(6,12)]),N=i[0],i[0]=i[4],i[4]=N,N=i[1],i[1]=i[5],i[5]=N,r=[i];A;)for(A=!1,a(o),a(r),R=0,E=o.length;E>R;R++)if(l(r[R],o[R])){A=!0;break}var O,I=o.length,m=18*I+4,L=new Array(m),S=new Array(m),w=r[0][0],H=r[0][1],D=0;for(L[D]=w,S[D++]=s,L[D]=H,S[D++]=c,R=0;I>R;R++)i=r[R],L[D]=i[2],S[D++]=s,L[D]=i[3],S[D++]=c,L[D]=i[4],S[D++]=s,L[D]=i[5],S[D++]=c,L[D]=w,S[D++]=p,L[D]=H,S[D++]=T,L[D]=i[2],S[D++]=g,L[D]=i[3],S[D++]=y,L[D]=w=i[4],S[D++]=_,L[D]=H=i[5],S[D++]=C;for(w=o[0][0],H=o[0][1],L[D]=w,S[D++]=s,L[D]=H,S[D++]=c,R=0;I>R;R++)b=o[R],L[D]=b[4],S[D++]=s,L[D]=b[5],S[D++]=c,L[D]=w,S[D++]=u,L[D]=H,S[D++]=d,L[D]=b[2],S[D++]=h,L[D]=b[3],S[D++]=f,L[D]=w=b[4],S[D++]=x,L[D]=H=b[5],S[D++]=v;D=0;var V=0,U=5*I+1,M=1,X=U+1;for(O=new Array(15*I),R=0;I>R;R++)O[D++]=V,O[D++]=M,O[D++]=U,O[D++]=U,O[D++]=M,O[D++]=X,O[D++]=M++,V=M,O[D++]=M++,O[D++]=X,U=X++,O[D++]=M++,O[D++]=M++,O[D++]=M++,O[D++]=X++,O[D++]=X++,O[D++]=X++;return{triangleLocations:{data:L,biasX:0,biasY:0},triangleIndices:{data:O,biasIndex:n},fillCoordinates:S}}function a(e){for(var t,n,r,i,o,a,l,s=0,c=0,u=e.length;u>c;c++)t=e[s],n=(t[0]+t[2])/2,r=(t[1]+t[3])/2,i=(t[2]+t[4])/2,o=(t[3]+t[5])/2,a=(n+i)/2,l=(r+o)/2,e.splice(s,1,[t[0],t[1],n,r,a,l],[a,l,i,o,t[4],t[5]]),s+=2}function l(e,t){return A.insideTriangleArray(e[2],e[3],t[0],t[1],t[2],t[3],t[4],t[5],!0)}var s,c,u,d,h,f,x,v,p,T,g,y,_,C,b,R,E,N=e("../../constants/TpConstants"),A=e("../../utils/Geometry"),O=[0,2,4,0,4,5,2,3,4,6,7,8,9,10,11],I=[0,1,5,1,2,3,1,3,5,6,7,8,9,10,11],m=[0,1,2,0,2,3],L={vertices:[{index:0,label:N.ANCHOR},{index:1,label:null},{index:2,label:N.ANCHOR},{index:3,label:N.ANCHOR},{index:4,label:null},{index:5,label:N.ANCHOR}],area:1},S={resetCoordinatesTemplate:r,getContourRecords:i};t.exports=S},{"../../constants/TpConstants":2,"../../utils/Geometry":16}],15:[function(e,t,n){function r(e){}function i(e,t,n,r,i){return r[0]===n[0]&&i[0]===n[0]||r[1]===n[1]&&i[1]===n[1]?null:a.getRoundCapRecords(e,t,n)}function o(e,t,n,r,i,o){}var a=e("./TpStrokeCap"),l={resetCoordinatesTemplate:r,getRoundJoinRecords:i,getSpecialJoinRecords:o};t.exports=l},{"./TpStrokeCap":13}],16:[function(e,t,n){function r(e){for(var t,n=-(1/0),r=n,i=1/0,o=i,a=0,l=e.length;l>a;a++)t=e[a],t.x>n&&(n=t.x),t.x<i&&(i=t.x),t.y>r&&(r=t.y),t.y<o&&(o=t.y);return Math.abs((n-i)*(r-o))}function i(e,t){var n=e.x-t.x,r=e.y-t.y;return n*n+r*r}function o(e,t,n){return l(e[0],e[1],t[0],t[1],n[0],n[1])}function a(e,t,n,r,i){var o=e.x,a=e.y,s=t.x,c=t.y,u=n.x,d=n.y,h=r.x,f=r.y,x=l(u,d,o,a,s,c),v=l(h,f,o,a,s,c),p=0===x,T=0===v;if(i){if(p||T)return!1;if(x>0==v>0)return!1;if(x=l(o,a,u,d,h,f),v=l(s,c,u,d,h,f),0===x||0===v)return!1;if(x>0==v>0)return!1}else{if(p&&T)return!(Math.max(o,s)<Math.min(u,h)||Math.min(o,s)>Math.max(u,h)||Math.max(a,c)<Math.min(d,f)||Math.min(a,c)>Math.max(d,f));if(!p&&!T&&x>0==v>0)return!1;if(x=l(o,a,u,d,h,f),v=l(s,c,u,d,h,f),x>0&&v>0||0>x&&0>v)return!1}return!0}function l(e,t,n,r,i,o){var a=(i-n)*(t-r)-(o-r)*(e-n);return 0>a?-1:a>0?1:0}function s(e,t,n,r,i,o,a,s,c){var u,d,h=l(e,t,n,r,i,o);return c?0===h?!1:(u=l(e,t,i,o,a,s),0===u||h!==u?!1:(d=l(e,t,a,s,n,r),0===d||u!==d?!1:!0)):(u=l(e,t,i,o,a,s),0!==h&&0!==u&&h!==u?!1:(d=l(e,t,a,s,n,r),0!==h?0===d?!0:d===h:0!==u?0===d?!0:d===u:0!==d?!0:e<=Math.max(n,i,a)&&e>=Math.min(n,i,a)))}function c(e,t,n){return s(e.x,e.y,t[0].x,t[0].y,t[1].x,t[1].y,t[2].x,t[2].y,n)}function u(e,t){var n,r,i,o=e[0],a=e[1],l=e[2],s=t[0],c=t[1],u=t[2],d=function(e,t,n,r){return e*t>=0?!1:n*r>=0?!1:!0},h=o.x-a.x,f=o.y-a.y,x=o.x-s.x,v=o.y-s.y,p=o.x-c.x,T=o.y-c.y,g=s.x-c.x,y=s.y-c.y,_=a.x-s.x,C=a.y-s.y,b=h*v,R=f*x,E=h*T,N=f*p,A=v*g,O=x*y,I=C*g,m=_*y;if(d(b-R,E-N,O-A,m-I))return!0;var L=o.x-u.x,S=o.y-u.y,w=a.x-c.x,H=a.y-c.y,D=c.x-u.x,V=c.y-u.y,U=h*S,M=f*L,X=p*V,j=T*D,k=w*V,F=H*D;if(d(E-N,U-M,X-j,k-F))return!0;var P=s.x-u.x,G=s.y-u.y,K=x*G,q=v*P,Y=_*G,z=C*P;if(d(b-R,U-M,K-q,Y-z))return!0;var B=o.x-l.x,J=o.y-l.y,Q=l.x-s.x,W=l.y-s.y,Z=B*v,$=J*x,ee=B*T,te=J*p,ne=W*g,re=Q*y;if(d(Z-$,ee-te,O-A,re-ne))return!0;var ie=l.x-c.x,oe=l.y-c.y,ae=B*S,le=J*L,se=ie*V,ce=oe*D;if(d(ee-te,ae-le,X-j,se-ce))return!0;var ue=Q*G,de=W*P;if(d(Z-$,ae-le,K-q,ue-de))return!0;var he=a.x-l.x,fe=a.y-l.y,xe=he*C,ve=fe*_,pe=he*H,Te=fe*w;if(d(xe-ve,pe-Te,m-I,re-ne))return!0;var ge=a.x-u.x,ye=a.y-u.y,_e=he*ye,Ce=fe*ge;if(d(pe-Te,_e-Ce,k-F,se-ce))return!0;if(d(xe-ve,_e-Ce,Y-z,ue-de))return!0;var be,Re,Ee,Ne=function(e,t,n){if(0===be||0===Re||0===Ee)return 0;var r=0>be,i=0>Re,o=0>Ee;return r===i&&i===o?1:-1},Ae=S*P,Oe=L*G;if(be=O-A,Re=X-j,Ee=Ae-Oe,(n=Ne(be,Re,Ee))>0)return!0;var Ie=ye*P,me=ge*G;if(be=m-I,Re=k-F,Ee=Ie-me,(r=Ne(be,Re,Ee))>0)return!0;var Le=l.x-u.x,Se=l.y-u.y,we=Se*P,He=Le*G;if(be=re-ne,Re=se-ce,Ee=we-He,(i=Ne(be,Re,Ee))>0)return!0;if(0===n&&0===r&&0===i)return!0;var De=J*Q,Ve=B*W;if(be=b-R,Re=xe-ve,Ee=De-Ve,(n=Ne(be,Re,Ee))>0)return!0;var Ue=J*ie,Me=B*oe;if(be=E-N,Re=pe-Te,Ee=Ue-Me,(r=Ne(be,Re,Ee))>0)return!0;var Xe=J*Le,je=B*Se;return be=U-M,Re=_e-Ce,Ee=Xe-je,(i=Ne(be,Re,Ee))>0?!0:0===n&&0===r&&0===i?!0:!1}var d={boundingArea:r,segmentLengthSq:i,vectorSide:o,intersect:a,sideOfLine:l,insideTriangleArray:s,insideTriangle:c,triangleOverlapping:u};t.exports=d},{}]},{},[1])(1)});
//# sourceMappingURL=tesspathy.min.js.map