1 line
4.0 KiB
JavaScript
1 line
4.0 KiB
JavaScript
!function(r,n){"object"==typeof exports&&"undefined"!=typeof module?n(exports,require("d3-array")):"function"==typeof define&&define.amd?define(["exports","d3-array"],n):n(r.d3=r.d3||{},r.d3)}(this,function(r,n){"use strict";function e(r,e,o){var s=r.layout,x=[],y=0;Object.keys(r.hexes).forEach(function(n){r.hexes[n].key=n,x.push(r.hexes[n])});var i=n.max(x,function(r){return+r.q}),h=n.min(x,function(r){return+r.q}),f=n.max(x,function(r){return+r.r}),d=n.min(x,function(r){return+r.r}),q=i-h+1,v=f-d+1;y="odd-r"===s||"even-r"===s?n.min([e/((q+.5)*Math.sqrt(3)),o/(1.5*(v+1/3))]):n.min([o/((v+.5)*Math.sqrt(3)),e/(1.5*(q+1/3))]);var p=y*Math.sqrt(3),m=a(s,p,y),b=c(m);return x.forEach(function(r){r.qc=r.q-h,r.rc=f-r.r,r.x=t(r,s,p,y),r.y=u(r,s,p,y),r.vertices=m,r.points=b}),x}function t(r,n,e,t){var u=0,a=0;switch(n){case"odd-r":a=r.rc%2==1?e:e/2,u=r.qc*e+a;break;case"even-r":a=r.rc%2==0?e:e/2,u=r.qc*e+a;break;case"odd-q":case"even-q":u=r.qc*t*1.5+t}return u}function u(r,n,e,t){var u=0,a=0;switch(n){case"odd-r":case"even-r":u=r.rc*t*1.5+t;break;case"odd-q":a=r.qc%2==1?e:e/2,u=r.rc*e+a;break;case"even-q":a=r.qc%2==0?e:e/2,u=r.rc*e+a}return u}function a(r,n,e){var t=[];switch(r){case"odd-r":case"even-r":t.push({x:0,y:0-e}),t.push({x:0+.5*n,y:0-.5*e}),t.push({x:0+.5*n,y:0+.5*e}),t.push({x:0,y:0+e}),t.push({x:0-.5*n,y:0+.5*e}),t.push({x:0-.5*n,y:0-.5*e});break;case"odd-q":case"even-q":t.push({x:0-e,y:0}),t.push({x:0-.5*e,y:0-.5*n}),t.push({x:0+.5*e,y:0-.5*n}),t.push({x:0+e,y:0}),t.push({x:0+.5*e,y:0+.5*n}),t.push({x:0-.5*e,y:0+.5*n})}return t}function c(r){var n="";return r.forEach(function(r){n+=r.x+","+r.y+" "}),n.substring(0,n.length-1)}function o(r){var e={};e.layout=r.layout,e.hexes={};var t=[];Object.keys(r.hexes).forEach(function(n){t.push(r.hexes[n])});var u,a,c,o=n.max(t,function(r){return+r.q}),s=n.min(t,function(r){return+r.q}),x=n.max(t,function(r){return+r.r}),y=n.min(t,function(r){return+r.r});for(u=s;u<=o;u++)for(a=y;a<=x;a++)c="Q"+u+"R"+a,e.hexes[c]={q:u,r:a};return e}function s(r,e,a,c){var o=[];const s=r.layout;Object.keys(r.hexes).forEach(function(n){o.push(r.hexes[n])});var x,y=n.max(o,function(r){return+r.q}),i=n.min(o,function(r){return+r.q}),h=n.max(o,function(r){return+r.r}),f=n.min(o,function(r){return+r.r}),d=y-i+1,q=h-f+1;x="odd-r"===s||"even-r"===s?n.min([e/((d+.5)*Math.sqrt(3)),a/(1.5*(q+1/3))]):n.min([a/((q+.5)*Math.sqrt(3)),e/(1.5*(d+1/3))]);var v=x*Math.sqrt(3),p=[];const m=x*x*4,b=o.length;if(b>1){o.forEach(function(r){r.qc=r.q-i,r.rc=h-r.r,r.x=t(r,s,v,x),r.y=u(r,s,v,x)});for(var M=0;M<b-1;M++)for(var l=M+1;l<b;l++){var k=o[M],O=o[l];if(k[c]!==O[c]&&Math.abs(k.q-O.q)<=1&&Math.abs(k.r-O.r)<=1&&(k.x-O.x)*(k.x-O.x)+(k.y-O.y)*(k.y-O.y)<m){var g={};g.x=O.x+(k.x-O.x)/2,g.y=O.y+(k.y-O.y)/2;var E={};const j=4*Math.sqrt(3);E.dx=(k.y-O.y)/j,E.dy=-(k.x-O.x)/j,p.push({x:g.x-2*E.dx,y:g.y-2*E.dy}),p.push({x:g.x-E.dx,y:g.y-E.dy}),p.push({x:g.x,y:g.y}),p.push({x:g.x+E.dx,y:g.y+E.dy}),p.push({x:g.x+2*E.dx,y:g.y+2*E.dy})}}}return p}function x(r,e,a,c){var o=[];const s=r.layout;Object.keys(r.hexes).forEach(function(n){o.push(r.hexes[n])});var x,y=n.max(o,function(r){return+r.q}),i=n.min(o,function(r){return+r.q}),h=n.max(o,function(r){return+r.r}),f=n.min(o,function(r){return+r.r}),d=y-i+1,q=h-f+1;x="odd-r"===s||"even-r"===s?n.min([e/((d+.5)*Math.sqrt(3)),a/(1.5*(q+1/3))]):n.min([a/((q+.5)*Math.sqrt(3)),e/(1.5*(d+1/3))]);var v=x*Math.sqrt(3),p=[];const m=x*x*4,b=o.length;if(b>1){o.forEach(function(r){r.qc=r.q-i,r.rc=h-r.r,r.x=t(r,s,v,x),r.y=u(r,s,v,x)});for(var M=0;M<b-1;M++)for(var l=M+1;l<b;l++){var k=o[M],O=o[l];if(k[c]!==O[c]&&Math.abs(k.q-O.q)<=1&&Math.abs(k.r-O.r)<=1&&(k.x-O.x)*(k.x-O.x)+(k.y-O.y)*(k.y-O.y)<m){var g={};g.x=O.x+(k.x-O.x)/2,g.y=O.y+(k.y-O.y)/2;var E={},j=1;k[c]<O[c]&&(j=-1);const S=2*Math.sqrt(3)*j;E.dx=(k.y-O.y)/S,E.dy=-(k.x-O.x)/S,p.push({x1:g.x-E.dx,y1:g.y-E.dy,x2:g.x+E.dx,y2:g.y+E.dy})}}}return p}r.renderHexJSON=e,r.getGridForHexJSON=o,r.getBoundaryDotsForHexJSON=s,r.getBoundarySegmentsForHexJSON=x,Object.defineProperty(r,"__esModule",{value:!0})}); |