@maplat/transform 0.1.0 → 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -4,7 +4,7 @@
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },
7
- "version": "0.1.0",
7
+ "version": "0.1.1",
8
8
  "description": "A JavaScript library that performs coordinate transformation between two plane coordinate systems using transformation definitions generated by Maplat.",
9
9
  "type": "module",
10
10
  "main": "./dist/maplat_transform.cjs",
package/src/index.ts CHANGED
@@ -10,6 +10,9 @@ import type {
10
10
  } from "./geometry";
11
11
  import { unitCalc, transformArr } from "./geometry";
12
12
  import type { EdgeSet, EdgeSetLegacy } from "./edgeutils";
13
+ export * from './geometry';
14
+ export * from './triangulation';
15
+ export * from './edgeutils';
13
16
 
14
17
  /**
15
18
  * 座標ペアの型定義。[ソース座標, ターゲット座標] の形式
@@ -1 +0,0 @@
1
- "use strict";var it=Object.defineProperty;var ot=(r,t,e)=>t in r?it(r,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):r[t]=e;var A=(r,t,e)=>ot(r,typeof t!="symbol"?t+"":t,e);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const B=11102230246251565e-32,k=134217729,at=(3+8*B)*B;function $(r,t,e,o,f){let s,c,g,l,y=t[0],w=o[0],i=0,u=0;w>y==w>-y?(s=y,y=t[++i]):(s=w,w=o[++u]);let d=0;if(i<r&&u<e)for(w>y==w>-y?(c=y+s,g=s-(c-y),y=t[++i]):(c=w+s,g=s-(c-w),w=o[++u]),s=c,g!==0&&(f[d++]=g);i<r&&u<e;)w>y==w>-y?(c=s+y,l=c-s,g=s-(c-l)+(y-l),y=t[++i]):(c=s+w,l=c-s,g=s-(c-l)+(w-l),w=o[++u]),s=c,g!==0&&(f[d++]=g);for(;i<r;)c=s+y,l=c-s,g=s-(c-l)+(y-l),y=t[++i],s=c,g!==0&&(f[d++]=g);for(;u<e;)c=s+w,l=c-s,g=s-(c-l)+(w-l),w=o[++u],s=c,g!==0&&(f[d++]=g);return(s!==0||d===0)&&(f[d++]=s),d}function ft(r,t){let e=t[0];for(let o=1;o<r;o++)e+=t[o];return e}function D(r){return new Float64Array(r)}const ct=(3+16*B)*B,ut=(2+12*B)*B,ht=(9+64*B)*B*B,X=D(4),j=D(8),J=D(12),z=D(16),S=D(4);function lt(r,t,e,o,f,s,c){let g,l,y,w,i,u,d,v,h,a,n,b,M,x,E,_,m,T;const I=r-f,P=e-f,N=t-s,C=o-s;x=I*C,u=k*I,d=u-(u-I),v=I-d,u=k*C,h=u-(u-C),a=C-h,E=v*a-(x-d*h-v*h-d*a),_=N*P,u=k*N,d=u-(u-N),v=N-d,u=k*P,h=u-(u-P),a=P-h,m=v*a-(_-d*h-v*h-d*a),n=E-m,i=E-n,X[0]=E-(n+i)+(i-m),b=x+n,i=b-x,M=x-(b-i)+(n-i),n=M-_,i=M-n,X[1]=M-(n+i)+(i-_),T=b+n,i=T-b,X[2]=b-(T-i)+(n-i),X[3]=T;let U=ft(4,X),Y=ut*c;if(U>=Y||-U>=Y||(i=r-I,g=r-(I+i)+(i-f),i=e-P,y=e-(P+i)+(i-f),i=t-N,l=t-(N+i)+(i-s),i=o-C,w=o-(C+i)+(i-s),g===0&&l===0&&y===0&&w===0)||(Y=ht*c+at*Math.abs(U),U+=I*w+C*g-(N*y+P*l),U>=Y||-U>=Y))return U;x=g*C,u=k*g,d=u-(u-g),v=g-d,u=k*C,h=u-(u-C),a=C-h,E=v*a-(x-d*h-v*h-d*a),_=l*P,u=k*l,d=u-(u-l),v=l-d,u=k*P,h=u-(u-P),a=P-h,m=v*a-(_-d*h-v*h-d*a),n=E-m,i=E-n,S[0]=E-(n+i)+(i-m),b=x+n,i=b-x,M=x-(b-i)+(n-i),n=M-_,i=M-n,S[1]=M-(n+i)+(i-_),T=b+n,i=T-b,S[2]=b-(T-i)+(n-i),S[3]=T;const et=$(4,X,4,S,j);x=I*w,u=k*I,d=u-(u-I),v=I-d,u=k*w,h=u-(u-w),a=w-h,E=v*a-(x-d*h-v*h-d*a),_=N*y,u=k*N,d=u-(u-N),v=N-d,u=k*y,h=u-(u-y),a=y-h,m=v*a-(_-d*h-v*h-d*a),n=E-m,i=E-n,S[0]=E-(n+i)+(i-m),b=x+n,i=b-x,M=x-(b-i)+(n-i),n=M-_,i=M-n,S[1]=M-(n+i)+(i-_),T=b+n,i=T-b,S[2]=b-(T-i)+(n-i),S[3]=T;const st=$(et,j,4,S,J);x=g*w,u=k*g,d=u-(u-g),v=g-d,u=k*w,h=u-(u-w),a=w-h,E=v*a-(x-d*h-v*h-d*a),_=l*y,u=k*l,d=u-(u-l),v=l-d,u=k*y,h=u-(u-y),a=y-h,m=v*a-(_-d*h-v*h-d*a),n=E-m,i=E-n,S[0]=E-(n+i)+(i-m),b=x+n,i=b-x,M=x-(b-i)+(n-i),n=M-_,i=M-n,S[1]=M-(n+i)+(i-_),T=b+n,i=T-b,S[2]=b-(T-i)+(n-i),S[3]=T;const nt=$(st,J,4,S,z);return z[nt-1]}function gt(r,t,e,o,f,s){const c=(t-s)*(e-f),g=(r-f)*(o-s),l=c-g,y=Math.abs(c+g);return Math.abs(l)>=ct*y?l:-lt(r,t,e,o,f,s,y)}function yt(r,t){var e,o,f=0,s,c,g,l,y,w,i,u=r[0],d=r[1],v=t.length;for(e=0;e<v;e++){o=0;var h=t[e],a=h.length-1;if(w=h[0],w[0]!==h[a][0]&&w[1]!==h[a][1])throw new Error("First and last coordinates in a ring must be the same");for(c=w[0]-u,g=w[1]-d,o;o<a;o++){if(i=h[o+1],l=i[0]-u,y=i[1]-d,g===0&&y===0){if(l<=0&&c>=0||c<=0&&l>=0)return 0}else if(y>=0&&g<=0||y<=0&&g>=0){if(s=gt(c,l,g,y,0,0),s===0)return 0;(s>0&&y>0&&g<=0||s<0&&y<=0&&g>0)&&f++}w=i,g=y,c=l}}return f%2!==0}function p(r,t,e={}){const o={type:"Feature"};return(e.id===0||e.id)&&(o.id=e.id),e.bbox&&(o.bbox=e.bbox),o.properties=t||{},o.geometry=r,o}function W(r,t,e={}){if(!r)throw new Error("coordinates is required");if(!Array.isArray(r))throw new Error("coordinates must be an Array");if(r.length<2)throw new Error("coordinates must be at least 2 numbers long");if(!K(r[0])||!K(r[1]))throw new Error("coordinates must contain numbers");return p({type:"Point",coordinates:r},t,e)}function wt(r,t,e={}){for(const f of r){if(f.length<4)throw new Error("Each LinearRing of a Polygon must have 4 or more Positions.");if(f[f.length-1].length!==f[0].length)throw new Error("First and last Position are not equivalent.");for(let s=0;s<f[f.length-1].length;s++)if(f[f.length-1][s]!==f[0][s])throw new Error("First and last Position are not equivalent.")}return p({type:"Polygon",coordinates:r},t,e)}function F(r,t={}){const e={type:"FeatureCollection"};return t.id&&(e.id=t.id),t.bbox&&(e.bbox=t.bbox),e.features=r,e}function K(r){return!isNaN(r)&&r!==null&&!Array.isArray(r)}function dt(r){if(!r)throw new Error("coord is required");if(!Array.isArray(r)){if(r.type==="Feature"&&r.geometry!==null&&r.geometry.type==="Point")return[...r.geometry.coordinates];if(r.type==="Point")return[...r.coordinates]}if(Array.isArray(r)&&r.length>=2&&!Array.isArray(r[0])&&!Array.isArray(r[1]))return[...r];throw new Error("coord must be GeoJSON Point or an Array of numbers")}function Q(r){if(Array.isArray(r))return r;if(r.type==="Feature"){if(r.geometry!==null)return r.geometry.coordinates}else if(r.coordinates)return r.coordinates;throw new Error("coords must be GeoJSON Feature, Geometry Object or an Array")}function bt(r){return r.type==="Feature"?r.geometry:r}function _t(r,t,e={}){if(!r)throw new Error("point is required");if(!t)throw new Error("polygon is required");const o=dt(r),f=bt(t),s=f.type,c=t.bbox;let g=f.coordinates;if(c&&vt(o,c)===!1)return!1;s==="Polygon"&&(g=[g]);let l=!1;for(var y=0;y<g.length;++y){const w=yt(o,g[y]);if(w===0)return!e.ignoreBoundary;w&&(l=!0)}return l}function vt(r,t){return t[0]<=r[0]&&t[1]<=r[1]&&t[2]>=r[0]&&t[3]>=r[1]}var q=_t;function At(r){const t=[0,1,2,0].map(o=>r[o][0][0]),e={a:{geom:r[0][0][1],index:r[0][1]},b:{geom:r[1][0][1],index:r[1][1]},c:{geom:r[2][0][1],index:r[2][1]}};return wt([t],e)}function V(r,t,e,o,f,s=!1,c){const g=r.map(l=>{(!c||c<2.00703)&&(l=tt(l));const y=isFinite(l)?t[l]:l==="c"?o:l==="b0"?f[0]:l==="b1"?f[1]:l==="b2"?f[2]:l==="b3"?f[3]:function(){const w=l.match(/e(\d+)/);if(w){const i=parseInt(w[1]);return e[i]}throw"Bad index value for indexesToTri"}();return s?[[y[1],y[0]],l]:[[y[0],y[1]],l]});return At(g)}function tt(r){return typeof r=="number"?r:r.replace(/^(c|e|b)(?:ent|dgeNode|box)(\d+)?$/,"$1$2")}function Mt(r,t){return Array.isArray(r[0])?r:r.map(e=>[e.illstNodes,e.mercNodes,e.startEnd])}function H(r,t){for(let e=0;e<t.features.length;e++)if(q(r,t.features[e]))return t.features[e]}function rt(r,t,e){const o=t.geometry.coordinates[0][0],f=t.geometry.coordinates[0][1],s=t.geometry.coordinates[0][2],c=r.geometry.coordinates,g=t.properties.a.geom,l=t.properties.b.geom,y=t.properties.c.geom,w=[f[0]-o[0],f[1]-o[1]],i=[s[0]-o[0],s[1]-o[1]],u=[c[0]-o[0],c[1]-o[1]],d=[l[0]-g[0],l[1]-g[1]],v=[y[0]-g[0],y[1]-g[1]];let h=(i[1]*u[0]-i[0]*u[1])/(w[0]*i[1]-w[1]*i[0]),a=(w[0]*u[1]-w[1]*u[0])/(w[0]*i[1]-w[1]*i[0]);if(e){const n=e[t.properties.a.index],b=e[t.properties.b.index],M=e[t.properties.c.index];let x;if(h<0||a<0||1-h-a<0){const E=h/(h+a),_=a/(h+a);x=h/b/(E/b+_/M),a=a/M/(E/b+_/M)}else x=h/b/(h/b+a/M+(1-h-a)/n),a=a/M/(h/b+a/M+(1-h-a)/n);h=x}return[h*d[0]+a*v[0]+g[0],h*d[1]+a*v[1]+g[1]]}function xt(r,t,e,o){const f=r.geometry.coordinates,s=e.geometry.coordinates,c=Math.atan2(f[0]-s[0],f[1]-s[1]),g=Et(c,t[0]),l=t[1][g];return rt(r,l.features[0],o)}function mt(r,t,e,o,f,s,c,g){let l;if(c&&(l=H(r,F([c]))),!l){if(e){const y=r.geometry.coordinates,w=e.gridNum,i=e.xOrigin,u=e.yOrigin,d=e.xUnit,v=e.yUnit,h=e.gridCache,a=R(y[0],i,d,w),n=R(y[1],u,v,w),b=h[a]?h[a][n]?h[a][n]:[]:[];t=F(b.map(M=>t.features[M]))}l=H(r,t)}return g&&g(l),l?rt(r,l,s):xt(r,o,f,s)}function R(r,t,e,o){let f=Math.floor((r-t)/e);return f>=o&&(f=o-1),f}function Et(r,t){let e=Z(r-t[0]),o=Math.PI*2,f;for(let s=0;s<t.length;s++){const c=(s+1)%t.length,g=Z(r-t[c]),l=Math.min(Math.abs(e),Math.abs(g));e*g<=0&&l<o&&(o=l,f=s),e=g}return f}function Z(r,t=!1){const e=t?function(o){return!(o>=0&&o<Math.PI*2)}:function(o){return!(o>-1*Math.PI&&o<=Math.PI)};for(;e(r);)r=r+2*Math.PI*(r>0?-1:1);return r}const L=2.00703,O=class O{constructor(){A(this,"points",[]);A(this,"pointsWeightBuffer");A(this,"strict_status");A(this,"vertices_params");A(this,"centroid");A(this,"edgeNodes");A(this,"edges");A(this,"tins");A(this,"kinks");A(this,"yaxisMode",O.YAXIS_INVERT);A(this,"strictMode",O.MODE_AUTO);A(this,"vertexMode",O.VERTEX_PLAIN);A(this,"bounds");A(this,"boundsPolygon");A(this,"wh");A(this,"xy");A(this,"indexedTins");A(this,"stateFull",!1);A(this,"stateTriangle");A(this,"stateBackward")}setCompiled(t){if(t.version||!t.tins&&t.points&&t.tins_points){this.points=t.points,this.pointsWeightBuffer=!t.version||t.version<2.00703?["forw","bakw"].reduce((o,f)=>{const s=t.weight_buffer[f];return s&&(o[f]=Object.keys(s).reduce((c,g)=>{const l=tt(g);return c[l]=s[g],c},{})),o},{}):t.weight_buffer,t.strict_status?this.strict_status=t.strict_status:t.kinks_points?this.strict_status=O.STATUS_ERROR:t.tins_points.length==2?this.strict_status=O.STATUS_LOOSE:this.strict_status=O.STATUS_STRICT,this.vertices_params={forw:[t.vertices_params[0]],bakw:[t.vertices_params[1]]},this.vertices_params.forw[1]=[0,1,2,3].map(o=>{const f=(o+1)%4,s=V(["c",`b${o}`,`b${f}`],t.points,t.edgeNodes||[],t.centroid_point,t.vertices_points,!1,L);return F([s])}),this.vertices_params.bakw[1]=[0,1,2,3].map(o=>{const f=(o+1)%4,s=V(["c",`b${o}`,`b${f}`],t.points,t.edgeNodes||[],t.centroid_point,t.vertices_points,!0,L);return F([s])}),this.centroid={forw:W(t.centroid_point[0],{target:{geom:t.centroid_point[1],index:"c"}}),bakw:W(t.centroid_point[1],{target:{geom:t.centroid_point[0],index:"c"}})},this.edges=Mt(t.edges||[]),this.edgeNodes=t.edgeNodes||[];const e=t.tins_points.length==1?0:1;this.tins={forw:F(t.tins_points[0].map(o=>V(o,t.points,t.edgeNodes||[],t.centroid_point,t.vertices_points,!1,t.version))),bakw:F(t.tins_points[e].map(o=>V(o,t.points,t.edgeNodes||[],t.centroid_point,t.vertices_points,!0,t.version)))},this.addIndexedTin(),t.kinks_points&&(this.kinks={bakw:F(t.kinks_points.map(o=>W(o)))}),t.yaxisMode?this.yaxisMode=t.yaxisMode:this.yaxisMode=O.YAXIS_INVERT,t.vertexMode&&(this.vertexMode=t.vertexMode),t.strictMode&&(this.strictMode=t.strictMode),t.bounds?(this.bounds=t.bounds,this.boundsPolygon=t.boundsPolygon,this.xy=t.xy,this.wh=t.wh):(this.xy=[0,0],t.wh&&(this.wh=t.wh),this.bounds=void 0,this.boundsPolygon=void 0)}else{t=JSON.parse(JSON.stringify(t).replace('"cent"','"c"').replace(/"bbox(\d+)"/g,'"b$1"')),this.tins=t.tins,this.addIndexedTin(),this.strict_status=t.strict_status,this.pointsWeightBuffer=t.weight_buffer,this.vertices_params=t.vertices_params,this.centroid=t.centroid,this.kinks=t.kinks;const e=[];for(let o=0;o<this.tins.forw.features.length;o++){const f=this.tins.forw.features[o];["a","b","c"].map((s,c)=>{const g=f.geometry.coordinates[0][c],l=f.properties[s].geom,y=f.properties[s].index;e[y]=[g,l]})}this.points=e}return{tins:this.tins,strict_status:this.strict_status,weight_buffer:this.pointsWeightBuffer,vertices_params:this.vertices_params,centroid:this.centroid,kinks:this.kinks}}addIndexedTin(){const t=this.tins,e=t.forw,o=t.bakw,f=Math.ceil(Math.sqrt(e.features.length));if(f<3){this.indexedTins=void 0;return}let s=[],c=[];const g=e.features.map(h=>{let a=[];return Q(h)[0].map(n=>{s.length===0?s=[Array.from(n),Array.from(n)]:(n[0]<s[0][0]&&(s[0][0]=n[0]),n[0]>s[1][0]&&(s[1][0]=n[0]),n[1]<s[0][1]&&(s[0][1]=n[1]),n[1]>s[1][1]&&(s[1][1]=n[1])),a.length===0?a=[Array.from(n),Array.from(n)]:(n[0]<a[0][0]&&(a[0][0]=n[0]),n[0]>a[1][0]&&(a[1][0]=n[0]),n[1]<a[0][1]&&(a[0][1]=n[1]),n[1]>a[1][1]&&(a[1][1]=n[1]))}),a}),l=(s[1][0]-s[0][0])/f,y=(s[1][1]-s[0][1])/f,w=g.reduce((h,a,n)=>{const b=R(a[0][0],s[0][0],l,f),M=R(a[1][0],s[0][0],l,f),x=R(a[0][1],s[0][1],y,f),E=R(a[1][1],s[0][1],y,f);for(let _=b;_<=M;_++){h[_]||(h[_]=[]);for(let m=x;m<=E;m++)h[_][m]||(h[_][m]=[]),h[_][m].push(n)}return h},[]),i=o.features.map(h=>{let a=[];return Q(h)[0].map(n=>{c.length===0?c=[Array.from(n),Array.from(n)]:(n[0]<c[0][0]&&(c[0][0]=n[0]),n[0]>c[1][0]&&(c[1][0]=n[0]),n[1]<c[0][1]&&(c[0][1]=n[1]),n[1]>c[1][1]&&(c[1][1]=n[1])),a.length===0?a=[Array.from(n),Array.from(n)]:(n[0]<a[0][0]&&(a[0][0]=n[0]),n[0]>a[1][0]&&(a[1][0]=n[0]),n[1]<a[0][1]&&(a[0][1]=n[1]),n[1]>a[1][1]&&(a[1][1]=n[1]))}),a}),u=(c[1][0]-c[0][0])/f,d=(c[1][1]-c[0][1])/f,v=i.reduce((h,a,n)=>{const b=R(a[0][0],c[0][0],u,f),M=R(a[1][0],c[0][0],u,f),x=R(a[0][1],c[0][1],d,f),E=R(a[1][1],c[0][1],d,f);for(let _=b;_<=M;_++){h[_]||(h[_]=[]);for(let m=x;m<=E;m++)h[_][m]||(h[_][m]=[]),h[_][m].push(n)}return h},[]);this.indexedTins={forw:{gridNum:f,xOrigin:s[0][0],yOrigin:s[0][1],xUnit:l,yUnit:y,gridCache:w},bakw:{gridNum:f,xOrigin:c[0][0],yOrigin:c[0][1],xUnit:u,yUnit:d,gridCache:v}}}transform(t,e,o){if(e&&this.strict_status==O.STATUS_ERROR)throw'Backward transform is not allowed if strict_status == "strict_error"';this.yaxisMode==O.YAXIS_FOLLOW&&e&&(t=[t[0],-1*t[1]]);const f=W(t);if(this.bounds&&!e&&!o&&!q(f,this.boundsPolygon))return!1;const s=e?this.tins.bakw:this.tins.forw,c=e?this.indexedTins.bakw:this.indexedTins.forw,g=e?this.vertices_params.bakw:this.vertices_params.forw,l=e?this.centroid.bakw:this.centroid.forw,y=e?this.pointsWeightBuffer.bakw:this.pointsWeightBuffer.forw;let w,i;this.stateFull&&(this.stateBackward==e?w=this.stateTriangle:(this.stateBackward=e,this.stateTriangle=void 0),i=d=>{this.stateTriangle=d});let u=mt(f,s,c,g,l,y,w,i);if(this.bounds&&e&&!o){const d=W(u);if(!q(d,this.boundsPolygon))return!1}else this.yaxisMode==O.YAXIS_FOLLOW&&!e&&(u=[u[0],-1*u[1]]);return u}};A(O,"VERTEX_PLAIN","plain"),A(O,"VERTEX_BIRDEYE","birdeye"),A(O,"MODE_STRICT","strict"),A(O,"MODE_AUTO","auto"),A(O,"MODE_LOOSE","loose"),A(O,"STATUS_STRICT","strict"),A(O,"STATUS_ERROR","strict_error"),A(O,"STATUS_LOOSE","loose"),A(O,"YAXIS_FOLLOW","follow"),A(O,"YAXIS_INVERT","invert");let G=O;exports.Transform=G;exports.format_version=L;
@@ -1,545 +0,0 @@
1
- var it = Object.defineProperty;
2
- var ot = (r, t, e) => t in r ? it(r, t, { enumerable: !0, configurable: !0, writable: !0, value: e }) : r[t] = e;
3
- var A = (r, t, e) => ot(r, typeof t != "symbol" ? t + "" : t, e);
4
- const B = 11102230246251565e-32, T = 134217729, at = (3 + 8 * B) * B;
5
- function $(r, t, e, o, f) {
6
- let s, c, g, l, y = t[0], w = o[0], i = 0, u = 0;
7
- w > y == w > -y ? (s = y, y = t[++i]) : (s = w, w = o[++u]);
8
- let d = 0;
9
- if (i < r && u < e)
10
- for (w > y == w > -y ? (c = y + s, g = s - (c - y), y = t[++i]) : (c = w + s, g = s - (c - w), w = o[++u]), s = c, g !== 0 && (f[d++] = g); i < r && u < e; )
11
- w > y == w > -y ? (c = s + y, l = c - s, g = s - (c - l) + (y - l), y = t[++i]) : (c = s + w, l = c - s, g = s - (c - l) + (w - l), w = o[++u]), s = c, g !== 0 && (f[d++] = g);
12
- for (; i < r; )
13
- c = s + y, l = c - s, g = s - (c - l) + (y - l), y = t[++i], s = c, g !== 0 && (f[d++] = g);
14
- for (; u < e; )
15
- c = s + w, l = c - s, g = s - (c - l) + (w - l), w = o[++u], s = c, g !== 0 && (f[d++] = g);
16
- return (s !== 0 || d === 0) && (f[d++] = s), d;
17
- }
18
- function ft(r, t) {
19
- let e = t[0];
20
- for (let o = 1; o < r; o++) e += t[o];
21
- return e;
22
- }
23
- function D(r) {
24
- return new Float64Array(r);
25
- }
26
- const ct = (3 + 16 * B) * B, ut = (2 + 12 * B) * B, ht = (9 + 64 * B) * B * B, X = D(4), L = D(8), G = D(12), j = D(16), I = D(4);
27
- function lt(r, t, e, o, f, s, c) {
28
- let g, l, y, w, i, u, d, v, h, a, n, b, x, M, m, _, E, k;
29
- const S = r - f, P = e - f, N = t - s, C = o - s;
30
- M = S * C, u = T * S, d = u - (u - S), v = S - d, u = T * C, h = u - (u - C), a = C - h, m = v * a - (M - d * h - v * h - d * a), _ = N * P, u = T * N, d = u - (u - N), v = N - d, u = T * P, h = u - (u - P), a = P - h, E = v * a - (_ - d * h - v * h - d * a), n = m - E, i = m - n, X[0] = m - (n + i) + (i - E), b = M + n, i = b - M, x = M - (b - i) + (n - i), n = x - _, i = x - n, X[1] = x - (n + i) + (i - _), k = b + n, i = k - b, X[2] = b - (k - i) + (n - i), X[3] = k;
31
- let U = ft(4, X), Y = ut * c;
32
- if (U >= Y || -U >= Y || (i = r - S, g = r - (S + i) + (i - f), i = e - P, y = e - (P + i) + (i - f), i = t - N, l = t - (N + i) + (i - s), i = o - C, w = o - (C + i) + (i - s), g === 0 && l === 0 && y === 0 && w === 0) || (Y = ht * c + at * Math.abs(U), U += S * w + C * g - (N * y + P * l), U >= Y || -U >= Y)) return U;
33
- M = g * C, u = T * g, d = u - (u - g), v = g - d, u = T * C, h = u - (u - C), a = C - h, m = v * a - (M - d * h - v * h - d * a), _ = l * P, u = T * l, d = u - (u - l), v = l - d, u = T * P, h = u - (u - P), a = P - h, E = v * a - (_ - d * h - v * h - d * a), n = m - E, i = m - n, I[0] = m - (n + i) + (i - E), b = M + n, i = b - M, x = M - (b - i) + (n - i), n = x - _, i = x - n, I[1] = x - (n + i) + (i - _), k = b + n, i = k - b, I[2] = b - (k - i) + (n - i), I[3] = k;
34
- const et = $(4, X, 4, I, L);
35
- M = S * w, u = T * S, d = u - (u - S), v = S - d, u = T * w, h = u - (u - w), a = w - h, m = v * a - (M - d * h - v * h - d * a), _ = N * y, u = T * N, d = u - (u - N), v = N - d, u = T * y, h = u - (u - y), a = y - h, E = v * a - (_ - d * h - v * h - d * a), n = m - E, i = m - n, I[0] = m - (n + i) + (i - E), b = M + n, i = b - M, x = M - (b - i) + (n - i), n = x - _, i = x - n, I[1] = x - (n + i) + (i - _), k = b + n, i = k - b, I[2] = b - (k - i) + (n - i), I[3] = k;
36
- const st = $(et, L, 4, I, G);
37
- M = g * w, u = T * g, d = u - (u - g), v = g - d, u = T * w, h = u - (u - w), a = w - h, m = v * a - (M - d * h - v * h - d * a), _ = l * y, u = T * l, d = u - (u - l), v = l - d, u = T * y, h = u - (u - y), a = y - h, E = v * a - (_ - d * h - v * h - d * a), n = m - E, i = m - n, I[0] = m - (n + i) + (i - E), b = M + n, i = b - M, x = M - (b - i) + (n - i), n = x - _, i = x - n, I[1] = x - (n + i) + (i - _), k = b + n, i = k - b, I[2] = b - (k - i) + (n - i), I[3] = k;
38
- const nt = $(st, G, 4, I, j);
39
- return j[nt - 1];
40
- }
41
- function gt(r, t, e, o, f, s) {
42
- const c = (t - s) * (e - f), g = (r - f) * (o - s), l = c - g, y = Math.abs(c + g);
43
- return Math.abs(l) >= ct * y ? l : -lt(r, t, e, o, f, s, y);
44
- }
45
- function yt(r, t) {
46
- var e, o, f = 0, s, c, g, l, y, w, i, u = r[0], d = r[1], v = t.length;
47
- for (e = 0; e < v; e++) {
48
- o = 0;
49
- var h = t[e], a = h.length - 1;
50
- if (w = h[0], w[0] !== h[a][0] && w[1] !== h[a][1])
51
- throw new Error("First and last coordinates in a ring must be the same");
52
- for (c = w[0] - u, g = w[1] - d, o; o < a; o++) {
53
- if (i = h[o + 1], l = i[0] - u, y = i[1] - d, g === 0 && y === 0) {
54
- if (l <= 0 && c >= 0 || c <= 0 && l >= 0)
55
- return 0;
56
- } else if (y >= 0 && g <= 0 || y <= 0 && g >= 0) {
57
- if (s = gt(c, l, g, y, 0, 0), s === 0)
58
- return 0;
59
- (s > 0 && y > 0 && g <= 0 || s < 0 && y <= 0 && g > 0) && f++;
60
- }
61
- w = i, g = y, c = l;
62
- }
63
- }
64
- return f % 2 !== 0;
65
- }
66
- function p(r, t, e = {}) {
67
- const o = { type: "Feature" };
68
- return (e.id === 0 || e.id) && (o.id = e.id), e.bbox && (o.bbox = e.bbox), o.properties = t || {}, o.geometry = r, o;
69
- }
70
- function W(r, t, e = {}) {
71
- if (!r)
72
- throw new Error("coordinates is required");
73
- if (!Array.isArray(r))
74
- throw new Error("coordinates must be an Array");
75
- if (r.length < 2)
76
- throw new Error("coordinates must be at least 2 numbers long");
77
- if (!J(r[0]) || !J(r[1]))
78
- throw new Error("coordinates must contain numbers");
79
- return p({
80
- type: "Point",
81
- coordinates: r
82
- }, t, e);
83
- }
84
- function wt(r, t, e = {}) {
85
- for (const f of r) {
86
- if (f.length < 4)
87
- throw new Error(
88
- "Each LinearRing of a Polygon must have 4 or more Positions."
89
- );
90
- if (f[f.length - 1].length !== f[0].length)
91
- throw new Error("First and last Position are not equivalent.");
92
- for (let s = 0; s < f[f.length - 1].length; s++)
93
- if (f[f.length - 1][s] !== f[0][s])
94
- throw new Error("First and last Position are not equivalent.");
95
- }
96
- return p({
97
- type: "Polygon",
98
- coordinates: r
99
- }, t, e);
100
- }
101
- function F(r, t = {}) {
102
- const e = { type: "FeatureCollection" };
103
- return t.id && (e.id = t.id), t.bbox && (e.bbox = t.bbox), e.features = r, e;
104
- }
105
- function J(r) {
106
- return !isNaN(r) && r !== null && !Array.isArray(r);
107
- }
108
- function dt(r) {
109
- if (!r)
110
- throw new Error("coord is required");
111
- if (!Array.isArray(r)) {
112
- if (r.type === "Feature" && r.geometry !== null && r.geometry.type === "Point")
113
- return [...r.geometry.coordinates];
114
- if (r.type === "Point")
115
- return [...r.coordinates];
116
- }
117
- if (Array.isArray(r) && r.length >= 2 && !Array.isArray(r[0]) && !Array.isArray(r[1]))
118
- return [...r];
119
- throw new Error("coord must be GeoJSON Point or an Array of numbers");
120
- }
121
- function z(r) {
122
- if (Array.isArray(r))
123
- return r;
124
- if (r.type === "Feature") {
125
- if (r.geometry !== null)
126
- return r.geometry.coordinates;
127
- } else if (r.coordinates)
128
- return r.coordinates;
129
- throw new Error(
130
- "coords must be GeoJSON Feature, Geometry Object or an Array"
131
- );
132
- }
133
- function bt(r) {
134
- return r.type === "Feature" ? r.geometry : r;
135
- }
136
- function _t(r, t, e = {}) {
137
- if (!r)
138
- throw new Error("point is required");
139
- if (!t)
140
- throw new Error("polygon is required");
141
- const o = dt(r), f = bt(t), s = f.type, c = t.bbox;
142
- let g = f.coordinates;
143
- if (c && vt(o, c) === !1)
144
- return !1;
145
- s === "Polygon" && (g = [g]);
146
- let l = !1;
147
- for (var y = 0; y < g.length; ++y) {
148
- const w = yt(o, g[y]);
149
- if (w === 0) return !e.ignoreBoundary;
150
- w && (l = !0);
151
- }
152
- return l;
153
- }
154
- function vt(r, t) {
155
- return t[0] <= r[0] && t[1] <= r[1] && t[2] >= r[0] && t[3] >= r[1];
156
- }
157
- var q = _t;
158
- function At(r) {
159
- const t = [0, 1, 2, 0].map((o) => r[o][0][0]), e = {
160
- a: { geom: r[0][0][1], index: r[0][1] },
161
- b: { geom: r[1][0][1], index: r[1][1] },
162
- c: { geom: r[2][0][1], index: r[2][1] }
163
- };
164
- return wt([t], e);
165
- }
166
- function V(r, t, e, o, f, s = !1, c) {
167
- const g = r.map(
168
- (l) => {
169
- (!c || c < 2.00703) && (l = tt(l));
170
- const y = isFinite(l) ? t[l] : l === "c" ? o : l === "b0" ? f[0] : l === "b1" ? f[1] : l === "b2" ? f[2] : l === "b3" ? f[3] : function() {
171
- const w = l.match(/e(\d+)/);
172
- if (w) {
173
- const i = parseInt(w[1]);
174
- return e[i];
175
- }
176
- throw "Bad index value for indexesToTri";
177
- }();
178
- return s ? [[y[1], y[0]], l] : [[y[0], y[1]], l];
179
- }
180
- );
181
- return At(g);
182
- }
183
- function tt(r) {
184
- return typeof r == "number" ? r : r.replace(/^(c|e|b)(?:ent|dgeNode|box)(\d+)?$/, "$1$2");
185
- }
186
- function xt(r, t) {
187
- return Array.isArray(r[0]) ? r : r.map((e) => [
188
- e.illstNodes,
189
- e.mercNodes,
190
- e.startEnd
191
- ]);
192
- }
193
- function K(r, t) {
194
- for (let e = 0; e < t.features.length; e++)
195
- if (q(r, t.features[e]))
196
- return t.features[e];
197
- }
198
- function rt(r, t, e) {
199
- const o = t.geometry.coordinates[0][0], f = t.geometry.coordinates[0][1], s = t.geometry.coordinates[0][2], c = r.geometry.coordinates, g = t.properties.a.geom, l = t.properties.b.geom, y = t.properties.c.geom, w = [f[0] - o[0], f[1] - o[1]], i = [s[0] - o[0], s[1] - o[1]], u = [c[0] - o[0], c[1] - o[1]], d = [l[0] - g[0], l[1] - g[1]], v = [y[0] - g[0], y[1] - g[1]];
200
- let h = (i[1] * u[0] - i[0] * u[1]) / (w[0] * i[1] - w[1] * i[0]), a = (w[0] * u[1] - w[1] * u[0]) / (w[0] * i[1] - w[1] * i[0]);
201
- if (e) {
202
- const n = e[t.properties.a.index], b = e[t.properties.b.index], x = e[t.properties.c.index];
203
- let M;
204
- if (h < 0 || a < 0 || 1 - h - a < 0) {
205
- const m = h / (h + a), _ = a / (h + a);
206
- M = h / b / (m / b + _ / x), a = a / x / (m / b + _ / x);
207
- } else
208
- M = h / b / (h / b + a / x + (1 - h - a) / n), a = a / x / (h / b + a / x + (1 - h - a) / n);
209
- h = M;
210
- }
211
- return [
212
- h * d[0] + a * v[0] + g[0],
213
- h * d[1] + a * v[1] + g[1]
214
- ];
215
- }
216
- function Mt(r, t, e, o) {
217
- const f = r.geometry.coordinates, s = e.geometry.coordinates, c = Math.atan2(f[0] - s[0], f[1] - s[1]), g = mt(c, t[0]), l = t[1][g];
218
- return rt(r, l.features[0], o);
219
- }
220
- function Et(r, t, e, o, f, s, c, g) {
221
- let l;
222
- if (c && (l = K(r, F([c]))), !l) {
223
- if (e) {
224
- const y = r.geometry.coordinates, w = e.gridNum, i = e.xOrigin, u = e.yOrigin, d = e.xUnit, v = e.yUnit, h = e.gridCache, a = R(y[0], i, d, w), n = R(y[1], u, v, w), b = h[a] ? h[a][n] ? h[a][n] : [] : [];
225
- t = F(b.map((x) => t.features[x]));
226
- }
227
- l = K(r, t);
228
- }
229
- return g && g(l), l ? rt(r, l, s) : Mt(r, o, f, s);
230
- }
231
- function R(r, t, e, o) {
232
- let f = Math.floor((r - t) / e);
233
- return f >= o && (f = o - 1), f;
234
- }
235
- function mt(r, t) {
236
- let e = Q(r - t[0]), o = Math.PI * 2, f;
237
- for (let s = 0; s < t.length; s++) {
238
- const c = (s + 1) % t.length, g = Q(r - t[c]), l = Math.min(Math.abs(e), Math.abs(g));
239
- e * g <= 0 && l < o && (o = l, f = s), e = g;
240
- }
241
- return f;
242
- }
243
- function Q(r, t = !1) {
244
- const e = t ? function(o) {
245
- return !(o >= 0 && o < Math.PI * 2);
246
- } : function(o) {
247
- return !(o > -1 * Math.PI && o <= Math.PI);
248
- };
249
- for (; e(r); )
250
- r = r + 2 * Math.PI * (r > 0 ? -1 : 1);
251
- return r;
252
- }
253
- const H = 2.00703, O = class O {
254
- constructor() {
255
- A(this, "points", []);
256
- A(this, "pointsWeightBuffer");
257
- A(this, "strict_status");
258
- A(this, "vertices_params");
259
- A(this, "centroid");
260
- A(this, "edgeNodes");
261
- A(this, "edges");
262
- A(this, "tins");
263
- A(this, "kinks");
264
- A(this, "yaxisMode", O.YAXIS_INVERT);
265
- A(this, "strictMode", O.MODE_AUTO);
266
- A(this, "vertexMode", O.VERTEX_PLAIN);
267
- A(this, "bounds");
268
- A(this, "boundsPolygon");
269
- A(this, "wh");
270
- A(this, "xy");
271
- A(this, "indexedTins");
272
- A(this, "stateFull", !1);
273
- A(this, "stateTriangle");
274
- A(this, "stateBackward");
275
- }
276
- /**
277
- * コンパイルされた設定を適用します
278
- *
279
- * @param compiled - コンパイルされた設定オブジェクト
280
- * @returns 変換に必要な主要なオブジェクトのセット
281
- *
282
- * 以下の処理を行います:
283
- * 1. バージョンに応じた設定の解釈
284
- * 2. 各種パラメータの復元
285
- * 3. TINネットワークの再構築
286
- * 4. インデックスの作成
287
- */
288
- setCompiled(t) {
289
- if (t.version || !t.tins && t.points && t.tins_points) {
290
- this.points = t.points, this.pointsWeightBuffer = !t.version || t.version < 2.00703 ? ["forw", "bakw"].reduce((o, f) => {
291
- const s = t.weight_buffer[f];
292
- return s && (o[f] = Object.keys(s).reduce((c, g) => {
293
- const l = tt(g);
294
- return c[l] = s[g], c;
295
- }, {})), o;
296
- }, {}) : t.weight_buffer, t.strict_status ? this.strict_status = t.strict_status : t.kinks_points ? this.strict_status = O.STATUS_ERROR : t.tins_points.length == 2 ? this.strict_status = O.STATUS_LOOSE : this.strict_status = O.STATUS_STRICT, this.vertices_params = {
297
- forw: [t.vertices_params[0]],
298
- bakw: [t.vertices_params[1]]
299
- }, this.vertices_params.forw[1] = [0, 1, 2, 3].map((o) => {
300
- const f = (o + 1) % 4, s = V(
301
- ["c", `b${o}`, `b${f}`],
302
- t.points,
303
- t.edgeNodes || [],
304
- t.centroid_point,
305
- t.vertices_points,
306
- !1,
307
- H
308
- );
309
- return F([s]);
310
- }), this.vertices_params.bakw[1] = [0, 1, 2, 3].map((o) => {
311
- const f = (o + 1) % 4, s = V(
312
- ["c", `b${o}`, `b${f}`],
313
- t.points,
314
- t.edgeNodes || [],
315
- t.centroid_point,
316
- t.vertices_points,
317
- !0,
318
- H
319
- );
320
- return F([s]);
321
- }), this.centroid = {
322
- forw: W(t.centroid_point[0], {
323
- target: {
324
- geom: t.centroid_point[1],
325
- index: "c"
326
- }
327
- }),
328
- bakw: W(t.centroid_point[1], {
329
- target: {
330
- geom: t.centroid_point[0],
331
- index: "c"
332
- }
333
- })
334
- }, this.edges = xt(t.edges || []), this.edgeNodes = t.edgeNodes || [];
335
- const e = t.tins_points.length == 1 ? 0 : 1;
336
- this.tins = {
337
- forw: F(
338
- t.tins_points[0].map(
339
- (o) => V(
340
- o,
341
- t.points,
342
- t.edgeNodes || [],
343
- t.centroid_point,
344
- t.vertices_points,
345
- !1,
346
- t.version
347
- )
348
- )
349
- ),
350
- bakw: F(
351
- t.tins_points[e].map(
352
- (o) => V(
353
- o,
354
- t.points,
355
- t.edgeNodes || [],
356
- t.centroid_point,
357
- t.vertices_points,
358
- !0,
359
- t.version
360
- )
361
- )
362
- )
363
- }, this.addIndexedTin(), t.kinks_points && (this.kinks = {
364
- bakw: F(
365
- t.kinks_points.map((o) => W(o))
366
- )
367
- }), t.yaxisMode ? this.yaxisMode = t.yaxisMode : this.yaxisMode = O.YAXIS_INVERT, t.vertexMode && (this.vertexMode = t.vertexMode), t.strictMode && (this.strictMode = t.strictMode), t.bounds ? (this.bounds = t.bounds, this.boundsPolygon = t.boundsPolygon, this.xy = t.xy, this.wh = t.wh) : (this.xy = [0, 0], t.wh && (this.wh = t.wh), this.bounds = void 0, this.boundsPolygon = void 0);
368
- } else {
369
- t = JSON.parse(
370
- JSON.stringify(t).replace('"cent"', '"c"').replace(/"bbox(\d+)"/g, '"b$1"')
371
- ), this.tins = t.tins, this.addIndexedTin(), this.strict_status = t.strict_status, this.pointsWeightBuffer = t.weight_buffer, this.vertices_params = t.vertices_params, this.centroid = t.centroid, this.kinks = t.kinks;
372
- const e = [];
373
- for (let o = 0; o < this.tins.forw.features.length; o++) {
374
- const f = this.tins.forw.features[o];
375
- ["a", "b", "c"].map((s, c) => {
376
- const g = f.geometry.coordinates[0][c], l = f.properties[s].geom, y = f.properties[s].index;
377
- e[y] = [g, l];
378
- });
379
- }
380
- this.points = e;
381
- }
382
- return {
383
- tins: this.tins,
384
- strict_status: this.strict_status,
385
- weight_buffer: this.pointsWeightBuffer,
386
- vertices_params: this.vertices_params,
387
- centroid: this.centroid,
388
- kinks: this.kinks
389
- };
390
- }
391
- /**
392
- * TINネットワークのインデックスを作成します
393
- *
394
- * インデックスは変換処理を高速化するために使用されます。
395
- * グリッド形式のインデックスを作成し、各グリッドに
396
- * 含まれる三角形を記録します。
397
- */
398
- addIndexedTin() {
399
- const t = this.tins, e = t.forw, o = t.bakw, f = Math.ceil(Math.sqrt(e.features.length));
400
- if (f < 3) {
401
- this.indexedTins = void 0;
402
- return;
403
- }
404
- let s = [], c = [];
405
- const g = e.features.map((h) => {
406
- let a = [];
407
- return z(h)[0].map((n) => {
408
- s.length === 0 ? s = [Array.from(n), Array.from(n)] : (n[0] < s[0][0] && (s[0][0] = n[0]), n[0] > s[1][0] && (s[1][0] = n[0]), n[1] < s[0][1] && (s[0][1] = n[1]), n[1] > s[1][1] && (s[1][1] = n[1])), a.length === 0 ? a = [Array.from(n), Array.from(n)] : (n[0] < a[0][0] && (a[0][0] = n[0]), n[0] > a[1][0] && (a[1][0] = n[0]), n[1] < a[0][1] && (a[0][1] = n[1]), n[1] > a[1][1] && (a[1][1] = n[1]));
409
- }), a;
410
- }), l = (s[1][0] - s[0][0]) / f, y = (s[1][1] - s[0][1]) / f, w = g.reduce(
411
- (h, a, n) => {
412
- const b = R(
413
- a[0][0],
414
- s[0][0],
415
- l,
416
- f
417
- ), x = R(
418
- a[1][0],
419
- s[0][0],
420
- l,
421
- f
422
- ), M = R(
423
- a[0][1],
424
- s[0][1],
425
- y,
426
- f
427
- ), m = R(
428
- a[1][1],
429
- s[0][1],
430
- y,
431
- f
432
- );
433
- for (let _ = b; _ <= x; _++) {
434
- h[_] || (h[_] = []);
435
- for (let E = M; E <= m; E++)
436
- h[_][E] || (h[_][E] = []), h[_][E].push(n);
437
- }
438
- return h;
439
- },
440
- []
441
- ), i = o.features.map((h) => {
442
- let a = [];
443
- return z(h)[0].map((n) => {
444
- c.length === 0 ? c = [Array.from(n), Array.from(n)] : (n[0] < c[0][0] && (c[0][0] = n[0]), n[0] > c[1][0] && (c[1][0] = n[0]), n[1] < c[0][1] && (c[0][1] = n[1]), n[1] > c[1][1] && (c[1][1] = n[1])), a.length === 0 ? a = [Array.from(n), Array.from(n)] : (n[0] < a[0][0] && (a[0][0] = n[0]), n[0] > a[1][0] && (a[1][0] = n[0]), n[1] < a[0][1] && (a[0][1] = n[1]), n[1] > a[1][1] && (a[1][1] = n[1]));
445
- }), a;
446
- }), u = (c[1][0] - c[0][0]) / f, d = (c[1][1] - c[0][1]) / f, v = i.reduce(
447
- (h, a, n) => {
448
- const b = R(
449
- a[0][0],
450
- c[0][0],
451
- u,
452
- f
453
- ), x = R(
454
- a[1][0],
455
- c[0][0],
456
- u,
457
- f
458
- ), M = R(
459
- a[0][1],
460
- c[0][1],
461
- d,
462
- f
463
- ), m = R(
464
- a[1][1],
465
- c[0][1],
466
- d,
467
- f
468
- );
469
- for (let _ = b; _ <= x; _++) {
470
- h[_] || (h[_] = []);
471
- for (let E = M; E <= m; E++)
472
- h[_][E] || (h[_][E] = []), h[_][E].push(n);
473
- }
474
- return h;
475
- },
476
- []
477
- );
478
- this.indexedTins = {
479
- forw: {
480
- gridNum: f,
481
- xOrigin: s[0][0],
482
- yOrigin: s[0][1],
483
- xUnit: l,
484
- yUnit: y,
485
- gridCache: w
486
- },
487
- bakw: {
488
- gridNum: f,
489
- xOrigin: c[0][0],
490
- yOrigin: c[0][1],
491
- xUnit: u,
492
- yUnit: d,
493
- gridCache: v
494
- }
495
- };
496
- }
497
- /**
498
- * 座標変換を実行します
499
- *
500
- * @param apoint - 変換する座標
501
- * @param backward - 逆方向の変換かどうか
502
- * @param ignoreBounds - 境界チェックを無視するかどうか
503
- * @returns 変換後の座標、または境界外の場合はfalse
504
- *
505
- * @throws {Error} 逆方向変換が許可されていない状態での逆変換時
506
- */
507
- transform(t, e, o) {
508
- if (e && this.strict_status == O.STATUS_ERROR)
509
- throw 'Backward transform is not allowed if strict_status == "strict_error"';
510
- this.yaxisMode == O.YAXIS_FOLLOW && e && (t = [t[0], -1 * t[1]]);
511
- const f = W(t);
512
- if (this.bounds && !e && !o && !q(f, this.boundsPolygon))
513
- return !1;
514
- const s = e ? this.tins.bakw : this.tins.forw, c = e ? this.indexedTins.bakw : this.indexedTins.forw, g = e ? this.vertices_params.bakw : this.vertices_params.forw, l = e ? this.centroid.bakw : this.centroid.forw, y = e ? this.pointsWeightBuffer.bakw : this.pointsWeightBuffer.forw;
515
- let w, i;
516
- this.stateFull && (this.stateBackward == e ? w = this.stateTriangle : (this.stateBackward = e, this.stateTriangle = void 0), i = (d) => {
517
- this.stateTriangle = d;
518
- });
519
- let u = Et(
520
- f,
521
- s,
522
- c,
523
- g,
524
- l,
525
- y,
526
- w,
527
- i
528
- );
529
- if (this.bounds && e && !o) {
530
- const d = W(u);
531
- if (!q(d, this.boundsPolygon)) return !1;
532
- } else this.yaxisMode == O.YAXIS_FOLLOW && !e && (u = [u[0], -1 * u[1]]);
533
- return u;
534
- }
535
- };
536
- /**
537
- * 各種モードの定数定義
538
- * すべてreadonlyで、型安全性を確保
539
- */
540
- A(O, "VERTEX_PLAIN", "plain"), A(O, "VERTEX_BIRDEYE", "birdeye"), A(O, "MODE_STRICT", "strict"), A(O, "MODE_AUTO", "auto"), A(O, "MODE_LOOSE", "loose"), A(O, "STATUS_STRICT", "strict"), A(O, "STATUS_ERROR", "strict_error"), A(O, "STATUS_LOOSE", "loose"), A(O, "YAXIS_FOLLOW", "follow"), A(O, "YAXIS_INVERT", "invert");
541
- let Z = O;
542
- export {
543
- Z as Transform,
544
- H as format_version
545
- };