@takram/three-geospatial 0.2.0 → 0.2.2

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/build/r3f.js CHANGED
@@ -1,39 +1,65 @@
1
- import { jsx as a, jsxs as f } from "react/jsx-runtime";
2
- import { forwardRef as m, useMemo as u, useEffect as l, useRef as E } from "react";
3
- import { Group as h, Vector3 as d, Matrix4 as x } from "three";
4
- import { E as p, G, a as w } from "./shared.js";
5
- import { extend as F } from "@react-three/fiber";
6
- const S = /* @__PURE__ */ new x(), N = /* @__PURE__ */ new G(), U = /* @__PURE__ */ new d();
7
- class j extends h {
8
- set(o, t, r, e = p.WGS84) {
9
- const s = N.set(o, t, r).toECEF(U);
10
- e.getEastNorthUpFrame(s, S).decompose(this.position, this.quaternion, this.scale);
1
+ import { jsx as f, jsxs as a } from "react/jsx-runtime";
2
+ import { useMemo as m, useEffect as u, version as l, useRef as h } from "react";
3
+ import { Group as E, Vector3 as x, Matrix4 as G } from "three";
4
+ import { E as p, G as d, a as R } from "./shared.js";
5
+ import { extend as g } from "@react-three/fiber";
6
+ const S = /* @__PURE__ */ new G(), w = /* @__PURE__ */ new d(), y = /* @__PURE__ */ new x();
7
+ class F extends E {
8
+ set(t, o, r, s = p.WGS84) {
9
+ const n = w.set(t, o, r).toECEF(y);
10
+ s.getEastNorthUpFrame(n, S).decompose(this.position, this.quaternion, this.scale);
11
11
  }
12
12
  }
13
- const g = /* @__PURE__ */ m(function({ longitude: o, latitude: t, height: r = 0, ellipsoid: e = p.WGS84, children: s }, n) {
14
- const c = u(() => new j(), []);
15
- return l(() => {
16
- c.set(o, t, r, e);
17
- }, [o, t, r, e, c]), /* @__PURE__ */ a("primitive", { ref: n, object: c, children: s });
18
- });
19
- function y(i) {
20
- return (o) => {
21
- i.forEach((t) => {
22
- typeof t == "function" ? t(o) : t != null && (t.current = o);
23
- });
13
+ const q = ({
14
+ ref: e,
15
+ longitude: t,
16
+ latitude: o,
17
+ height: r = 0,
18
+ ellipsoid: s = p.WGS84,
19
+ children: n
20
+ }) => {
21
+ const c = m(() => new F(), []);
22
+ return u(() => {
23
+ c.set(t, o, r, s);
24
+ }, [t, o, r, s, c]), /* @__PURE__ */ f("primitive", { ref: e, object: c, children: n });
25
+ };
26
+ function j(e) {
27
+ return (t) => {
28
+ for (const o of e) i(o, t);
24
29
  };
25
30
  }
26
- const q = /* @__PURE__ */ m(
27
- function({ args: o, children: t, ...r }, e) {
28
- const s = E(null);
29
- return F({ EllipsoidGeometry: w }), /* @__PURE__ */ f("mesh", { ref: y([s, e]), ...r, children: [
30
- /* @__PURE__ */ a("ellipsoidGeometry", { args: o }),
31
- t
32
- ] });
33
- }
34
- );
31
+ function v(e) {
32
+ return (t) => {
33
+ const o = [];
34
+ for (const r of e) {
35
+ const s = i(r, t), n = typeof s == "function";
36
+ o.push(n ? s : () => i(r, null));
37
+ }
38
+ return () => {
39
+ for (const r of o) r();
40
+ };
41
+ };
42
+ }
43
+ function i(e, t) {
44
+ if (typeof e == "function")
45
+ return e(t);
46
+ e && (e.current = t);
47
+ }
48
+ var M = parseInt(l.split(".")[0], 10) >= 19 ? v : j;
49
+ const I = ({
50
+ ref: e,
51
+ args: t,
52
+ children: o,
53
+ ...r
54
+ }) => {
55
+ const s = h(null);
56
+ return g({ EllipsoidGeometry: R }), /* @__PURE__ */ a("mesh", { ref: M([s, e]), ...r, children: [
57
+ /* @__PURE__ */ f("ellipsoidGeometry", { args: t }),
58
+ o
59
+ ] });
60
+ };
35
61
  export {
36
- g as EastNorthUpFrame,
37
- q as EllipsoidMesh
62
+ q as EastNorthUpFrame,
63
+ I as EllipsoidMesh
38
64
  };
39
65
  //# sourceMappingURL=r3f.js.map
package/build/r3f.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"r3f.js","sources":["../src/r3f/EastNorthUpFrame.tsx","../node_modules/.pnpm/react-merge-refs@2.1.1/node_modules/react-merge-refs/dist/index.mjs","../src/r3f/EllipsoidMesh.tsx"],"sourcesContent":null,"names":["matrixScratch","Matrix4","geodeticScratch","Geodetic","vectorScratch","Vector3","EastNorthUpFrameGroup","Group","longitude","latitude","height","ellipsoid","Ellipsoid","position","EastNorthUpFrame","forwardRef","children","forwardedRef","group","useMemo","useEffect","o","f","r","n","EllipsoidMesh","args","props","ref","useRef","extend","EllipsoidGeometry","jsxs","mergeRefs","jsx"],"mappings":";;;;;AAOA,MAAMA,wBAAkCC,EAAQ,GAC1CC,wBAAoCC,EAAS,GAC7CC,wBAAkCC,EAAQ;AAEhD,MAAMC,UAA8BC,EAAM;AAAA,EACxC,IACEC,GACAC,GACAC,GACAC,IAAYC,EAAU,OAChB;AAEA,UAAAC,IAAWX,EACd,IAAIM,GAAWC,GAAUC,CAAM,EAC/B,OAAON,CAAa;AAEvB,IADeO,EAAU,oBAAoBE,GAAUb,CAAa,EAC7D,UAAU,KAAK,UAAU,KAAK,YAAY,KAAK,KAAK;AAAA,EAAA;AAE/D;AAQO,MAAMc,IAAiC,gBAAAC,EAG5C,SACA,EAAE,WAAAP,GAAW,UAAAC,GAAU,QAAAC,IAAS,GAAG,WAAAC,IAAYC,EAAU,OAAO,UAAAI,EAAA,GAChEC,GACA;AACA,QAAMC,IAAQC,EAAQ,MAAM,IAAIb,EAAsB,GAAG,CAAA,CAAE;AAE3D,SAAAc,EAAU,MAAM;AACd,IAAAF,EAAM,IAAIV,GAAWC,GAAUC,GAAQC,CAAS;AAAA,EAAA,GAC/C,CAACH,GAAWC,GAAUC,GAAQC,GAAWO,CAAK,CAAC,qBAG/C,aAAU,EAAA,KAAKD,GAAc,QAAQC,GACnC,UAAAF,GACH;AAEJ,CAAC;ACnDD,SAASK,EAAEC,GAAE;AAAC,SAAO,CAAAC,MAAG;AAAC,IAAAD,EAAE,QAAQ,CAAAE,MAAG;AAAC,aAAOA,KAAG,aAAWA,EAAED,CAAC,IAAEC,KAAG,SAAOA,EAAE,UAAQD;AAAA,IAAE,CAAC;AAAA,EAAC;AAAC;ACsBnF,MAAME,IAA8B,gBAAAV;AAAA,EACzC,SAAmB,EAAE,MAAAW,GAAM,UAAAV,GAAU,GAAGW,KAASV,GAAc;AACvD,UAAAW,IAAMC,EAAoB,IAAI;AAC7B,WAAAC,EAAA,EAAE,mBAAAC,GAAmB,GAE1B,gBAAAC,EAAC,QAAK,EAAA,KAAKC,EAAU,CAACL,GAAKX,CAAY,CAAC,GAAI,GAAGU,GAC7C,UAAA;AAAA,MAAA,gBAAAO,EAAC,uBAAkB,MAAAR,GAAY;AAAA,MAC9BV;AAAA,IAAA,GACH;AAAA,EAAA;AAGN;","x_google_ignoreList":[1]}
1
+ {"version":3,"file":"r3f.js","sources":["../src/r3f/EastNorthUpFrame.tsx","../node_modules/.pnpm/react-merge-refs@3.0.2_react@19.1.0/node_modules/react-merge-refs/dist/index.js","../src/r3f/EllipsoidMesh.tsx"],"sourcesContent":null,"names":["matrixScratch","Matrix4","geodeticScratch","Geodetic","vectorScratch","Vector3","EastNorthUpFrameGroup","Group","longitude","latitude","height","ellipsoid","Ellipsoid","position","EastNorthUpFrame","forwardedRef","children","group","useMemo","useEffect","mergeRefsReact16","refs","value","ref","assignRef","mergeRefsReact19","cleanups","cleanup","isCleanup","mergeRefs","version","EllipsoidMesh","args","props","useRef","extend","EllipsoidGeometry","jsxs","jsx"],"mappings":";;;;;AAQA,MAAMA,wBAAkCC,EAAQ,GAC1CC,wBAAoCC,EAAS,GAC7CC,wBAAkCC,EAAQ;AAEhD,MAAMC,UAA8BC,EAAM;AAAA,EACxC,IACEC,GACAC,GACAC,GACAC,IAAYC,EAAU,OAChB;AAEA,UAAAC,IAAWX,EACd,IAAIM,GAAWC,GAAUC,CAAM,EAC/B,OAAON,CAAa;AAEvB,IADeO,EAAU,oBAAoBE,GAAUb,CAAa,EAC7D,UAAU,KAAK,UAAU,KAAK,YAAY,KAAK,KAAK;AAAA,EAAA;AAE/D;AASO,MAAMc,IAA8C,CAAC;AAAA,EAC1D,KAAKC;AAAA,EACL,WAAAP;AAAA,EACA,UAAAC;AAAA,EACA,QAAAC,IAAS;AAAA,EACT,WAAAC,IAAYC,EAAU;AAAA,EACtB,UAAAI;AACF,MAAM;AACJ,QAAMC,IAAQC,EAAQ,MAAM,IAAIZ,EAAsB,GAAG,CAAA,CAAE;AAE3D,SAAAa,EAAU,MAAM;AACd,IAAAF,EAAM,IAAIT,GAAWC,GAAUC,GAAQC,CAAS;AAAA,EAAA,GAC/C,CAACH,GAAWC,GAAUC,GAAQC,GAAWM,CAAK,CAAC,qBAG/C,aAAU,EAAA,KAAKF,GAAc,QAAQE,GACnC,UAAAD,GACH;AAEJ;AClDA,SAASI,EAAiBC,GAAM;AAC9B,SAAO,CAACC,MAAU;AAChB,eAAWC,KAAOF,EAAM,CAAAG,EAAUD,GAAKD,CAAK;AAAA,EAC7C;AACH;AAGA,SAASG,EAAiBJ,GAAM;AAC9B,SAAO,CAACC,MAAU;AAChB,UAAMI,IAAW,CAAE;AACnB,eAAWH,KAAOF,GAAM;AACtB,YAAMM,IAAUH,EAAUD,GAAKD,CAAK,GAC9BM,IAAY,OAAOD,KAAY;AACrC,MAAAD,EAAS,KAAKE,IAAYD,IAAU,MAAMH,EAAUD,GAAK,IAAI,CAAC;AAAA,IACpE;AACI,WAAO,MAAM;AACX,iBAAWI,KAAWD,EAAU,CAAAC,EAAS;AAAA,IAC1C;AAAA,EACF;AACH;AAGA,SAASH,EAAUD,GAAKD,GAAO;AAC7B,MAAI,OAAOC,KAAQ;AACjB,WAAOA,EAAID,CAAK;AACX,EAAIC,MACTA,EAAI,UAAUD;AAElB;AACA,IAAIO,IAAY,SAASC,EAAQ,MAAM,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,KAAKL,IAAmBL;ACXxE,MAAMW,IAAwC,CAAC;AAAA,EACpD,KAAKhB;AAAA,EACL,MAAAiB;AAAA,EACA,UAAAhB;AAAA,EACA,GAAGiB;AACL,MAAM;AACE,QAAAV,IAAMW,EAAoB,IAAI;AAC7B,SAAAC,EAAA,EAAE,mBAAAC,GAAmB,GAE1B,gBAAAC,EAAC,QAAK,EAAA,KAAKR,EAAU,CAACN,GAAKR,CAAY,CAAC,GAAI,GAAGkB,GAC7C,UAAA;AAAA,IAAA,gBAAAK,EAAC,uBAAkB,MAAAN,GAAY;AAAA,IAC9BhB;AAAA,EAAA,GACH;AAEJ;","x_google_ignoreList":[1]}
package/build/shared.cjs CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";const c=require("three"),D=new c.Vector3;function O(A,t,i=new c.Vector3,e){const{x:r,y:s,z:n}=A,h=t.x,a=t.y,y=t.z,u=r*r*h,d=s*s*a,o=n*n*y,l=u+d+o,p=Math.sqrt(1/l);if(!Number.isFinite(p))return;const x=D.copy(A).multiplyScalar(p);if(l<((e==null?void 0:e.centerTolerance)??.1))return i.copy(x);const f=x.multiply(t).multiplyScalar(2);let m=(1-p)*A.length()/(f.length()/2),z=0,M,w,V,I;do{m-=z,M=1/(1+m*h),w=1/(1+m*a),V=1/(1+m*y);const S=M*M,T=w*w,F=V*V,G=S*M,B=T*w,C=F*V;I=u*S+d*T+o*F-1,z=I/((u*G*h+d*B*a+o*C*y)*-2)}while(Math.abs(I)>1e-12);return i.set(r*M,s*w,n*V)}const v=new c.Vector3,L=new c.Vector3,R=new c.Vector3,b=class b{constructor(t,i,e){this.radii=new c.Vector3(t,i,e)}get minimumRadius(){return Math.min(this.radii.x,this.radii.y,this.radii.z)}get maximumRadius(){return Math.max(this.radii.x,this.radii.y,this.radii.z)}reciprocalRadii(t=new c.Vector3){const{x:i,y:e,z:r}=this.radii;return t.set(1/i,1/e,1/r)}reciprocalRadiiSquared(t=new c.Vector3){const{x:i,y:e,z:r}=this.radii;return t.set(1/i**2,1/e**2,1/r**2)}projectOnSurface(t,i=new c.Vector3,e){return O(t,this.reciprocalRadiiSquared(),i,e)}getSurfaceNormal(t,i=new c.Vector3){return i.multiplyVectors(this.reciprocalRadiiSquared(v),t).normalize()}getEastNorthUpVectors(t,i=new c.Vector3,e=new c.Vector3,r=new c.Vector3){this.getSurfaceNormal(t,r),i.set(-t.y,t.x,0).normalize(),e.crossVectors(r,i).normalize()}getEastNorthUpFrame(t,i=new c.Matrix4){const e=v,r=L,s=R;return this.getEastNorthUpVectors(t,e,r,s),i.makeBasis(e,r,s).setPosition(t)}getIntersection(t,i=new c.Vector3){const e=this.reciprocalRadii(v),r=L.copy(e).multiply(t.origin),s=R.copy(e).multiply(t.direction),n=r.lengthSq(),h=s.lengthSq(),a=r.dot(s),y=a**2-h*(n-1);if(n===1)return i.copy(t.origin);if(n>1){if(a>=0||y<0)return;const u=Math.sqrt(y),d=(-a-u)/h,o=(-a+u)/h;return t.at(Math.min(d,o),i)}if(n<1){const u=a**2-h*(n-1),d=Math.sqrt(u),o=(-a+d)/h;return t.at(o,i)}if(a<0)return t.at(-a/h,i)}getOsculatingSphereCenter(t,i,e=new c.Vector3){const r=this.radii.x**2,s=v.set(t.x/r,t.y/r,t.z/this.radii.z**2).normalize();return e.copy(s.multiplyScalar(-i).add(t))}};b.WGS84=new b(6378137,6378137,6356752314245179e-9);let E=b;class P extends c.BufferGeometry{constructor(t=new c.Vector3(1,1,1),i=32,e=16){super(),this.type="EllipsoidGeometry",this.parameters={radii:t,longitudeSegments:i,latitudeSegments:e},i=Math.max(3,Math.floor(i)),e=Math.max(2,Math.floor(e));const r=(i+1)*(e+1),s=new c.Vector3,n=new c.Vector3,h=new Float32Array(r*3),a=new Float32Array(r*3),y=new Float32Array(r*2),u=[],d=[];for(let o=0,l=0,p=0,x=0;o<=e;++o){const f=[],m=o/e,z=m*Math.PI;let M=0;o===0?M=.5/i:o===e&&(M=-.5/i);for(let w=0;w<=i;++w,l+=3,p+=2,++x){const V=w/i,I=V*Math.PI*2;s.x=t.x*Math.cos(I)*Math.sin(z),s.y=t.y*Math.sin(I)*Math.sin(z),s.z=t.z*Math.cos(z),h[l]=s.x,h[l+1]=s.y,h[l+2]=s.z,n.copy(s).normalize(),a[l]=n.x,a[l+1]=n.y,a[l+2]=n.z,y[p]=V+M,y[p+1]=1-m,f.push(x)}u.push(f)}for(let o=0;o<e;++o)for(let l=0;l<i;++l){const p=u[o][l+1],x=u[o][l],f=u[o+1][l],m=u[o+1][l+1];o!==0&&d.push(p,x,m),o!==e-1&&d.push(x,f,m)}this.setIndex(d),this.setAttribute("position",new c.BufferAttribute(h,3)),this.setAttribute("normal",new c.BufferAttribute(a,3)),this.setAttribute("uv",new c.BufferAttribute(y,2))}copy(t){return super.copy(t),this.parameters={...t.parameters},this}}const q=new c.Vector3,U=new c.Vector3,g=class g{constructor(t=0,i=0,e=0){this.longitude=t,this.latitude=i,this.height=e}set(t,i,e){return this.longitude=t,this.latitude=i,e!=null&&(this.height=e),this}clone(){return new g(this.longitude,this.latitude,this.height)}copy(t){return this.longitude=t.longitude,this.latitude=t.latitude,this.height=t.height,this}equals(t){return t.longitude===this.longitude&&t.latitude===this.latitude&&t.height===this.height}setLongitude(t){return this.longitude=t,this}setLatitude(t){return this.latitude=t,this}setHeight(t){return this.height=t,this}normalize(){return this.longitude<g.MIN_LONGITUDE&&(this.longitude+=Math.PI*2),this}setFromECEF(t,i){const r=((i==null?void 0:i.ellipsoid)??E.WGS84).reciprocalRadiiSquared(q),s=O(t,r,U,i);if(s==null)throw new Error(`Could not project position to ellipsoid surface: ${t.toArray()}`);const n=q.multiplyVectors(s,r).normalize();this.longitude=Math.atan2(n.y,n.x),this.latitude=Math.asin(n.z);const h=q.subVectors(t,s);return this.height=Math.sign(h.dot(t))*h.length(),this}toECEF(t=new c.Vector3,i){const e=(i==null?void 0:i.ellipsoid)??E.WGS84,r=q.multiplyVectors(e.radii,e.radii),s=Math.cos(this.latitude),n=U.set(s*Math.cos(this.longitude),s*Math.sin(this.longitude),Math.sin(this.latitude)).normalize();return t.multiplyVectors(r,n),t.divideScalar(Math.sqrt(n.dot(t))).add(n.multiplyScalar(this.height))}fromArray(t,i=0){return this.longitude=t[i],this.latitude=t[i+1],this.height=t[i+2],this}toArray(t=[],i=0){return t[i]=this.longitude,t[i+1]=this.latitude,t[i+2]=this.height,t}*[Symbol.iterator](){yield this.longitude,yield this.latitude,yield this.height}};g.MIN_LONGITUDE=-Math.PI,g.MAX_LONGITUDE=Math.PI,g.MIN_LATITUDE=-Math.PI/2,g.MAX_LATITUDE=Math.PI/2;let N=g;exports.Ellipsoid=E;exports.EllipsoidGeometry=P;exports.Geodetic=N;
1
+ "use strict";const c=require("three");var j=process.env.NODE_ENV==="production",O="Invariant failed";function q(V,t){if(!V){if(j)throw new Error(O);var i=O;throw new Error(i)}}const H=new c.Vector3;function G(V,t,i=new c.Vector3,r){const{x:e,y:n,z:s}=V,o=t.x,h=t.y,u=t.z,d=e*e*o,y=n*n*h,a=s*s*u,l=d+y+a,p=Math.sqrt(1/l);if(!Number.isFinite(p))return;const M=H.copy(V).multiplyScalar(p);if(l<((r==null?void 0:r.centerTolerance)??.1))return i.copy(M);const g=M.multiply(t).multiplyScalar(2);let m=(1-p)*V.length()/(g.length()/2),v=0,x,w,z,E;do{m-=v,x=1/(1+m*o),w=1/(1+m*h),z=1/(1+m*u);const T=x*x,F=w*w,L=z*z,P=T*x,B=F*w,C=L*z;E=d*T+y*F+a*L-1,v=E/((d*P*o+y*B*h+a*C*u)*-2)}while(Math.abs(E)>1e-12);return i.set(e*x,n*w,s*z)}const I=new c.Vector3,R=new c.Vector3,U=new c.Vector3,b=class b{constructor(t,i,r){this.radii=new c.Vector3(t,i,r)}get minimumRadius(){return Math.min(this.radii.x,this.radii.y,this.radii.z)}get maximumRadius(){return Math.max(this.radii.x,this.radii.y,this.radii.z)}reciprocalRadii(t=new c.Vector3){const{x:i,y:r,z:e}=this.radii;return t.set(1/i,1/r,1/e)}reciprocalRadiiSquared(t=new c.Vector3){const{x:i,y:r,z:e}=this.radii;return t.set(1/i**2,1/r**2,1/e**2)}projectOnSurface(t,i=new c.Vector3,r){return G(t,this.reciprocalRadiiSquared(),i,r)}getSurfaceNormal(t,i=new c.Vector3){return i.multiplyVectors(this.reciprocalRadiiSquared(I),t).normalize()}getEastNorthUpVectors(t,i=new c.Vector3,r=new c.Vector3,e=new c.Vector3){this.getSurfaceNormal(t,e),i.set(-t.y,t.x,0).normalize(),r.crossVectors(e,i).normalize()}getEastNorthUpFrame(t,i=new c.Matrix4){const r=I,e=R,n=U;return this.getEastNorthUpVectors(t,r,e,n),i.makeBasis(r,e,n).setPosition(t)}getIntersection(t,i=new c.Vector3){const r=this.reciprocalRadii(I),e=R.copy(r).multiply(t.origin),n=U.copy(r).multiply(t.direction),s=e.lengthSq(),o=n.lengthSq(),h=e.dot(n),u=h**2-o*(s-1);if(s===1)return i.copy(t.origin);if(s>1){if(h>=0||u<0)return;const d=Math.sqrt(u),y=(-h-d)/o,a=(-h+d)/o;return t.at(Math.min(y,a),i)}if(s<1){const d=h**2-o*(s-1),y=Math.sqrt(d),a=(-h+y)/o;return t.at(a,i)}if(h<0)return t.at(-h/o,i)}getOsculatingSphereCenter(t,i,r=new c.Vector3){q(this.radii.x===this.radii.y);const e=this.radii.x**2,n=this.radii.z**2,s=I.set(t.x/e,t.y/e,t.z/n).normalize();return r.copy(s.multiplyScalar(-i).add(t))}getNormalAtHorizon(t,i,r=new c.Vector3){q(this.radii.x===this.radii.y);const e=this.radii.x**2,n=this.radii.z**2,s=t,o=i;let h=(s.x*o.x+s.y*o.y)/e+s.z*o.z/n;h/=(s.x**2+s.y**2)/e+s.z**2/n;const u=I.copy(o).multiplyScalar(-h).add(t);return r.set(u.x/e,u.y/e,u.z/n).normalize()}};b.WGS84=new b(6378137,6378137,6356752314245179e-9);let A=b;class W extends c.BufferGeometry{constructor(t=new c.Vector3(1,1,1),i=32,r=16){super(),this.type="EllipsoidGeometry",this.parameters={radii:t,longitudeSegments:i,latitudeSegments:r},i=Math.max(3,Math.floor(i)),r=Math.max(2,Math.floor(r));const e=(i+1)*(r+1),n=new c.Vector3,s=new c.Vector3,o=new Float32Array(e*3),h=new Float32Array(e*3),u=new Float32Array(e*2),d=[],y=[];for(let a=0,l=0,p=0,M=0;a<=r;++a){const g=[],m=a/r,v=m*Math.PI;let x=0;a===0?x=.5/i:a===r&&(x=-.5/i);for(let w=0;w<=i;++w,l+=3,p+=2,++M){const z=w/i,E=z*Math.PI*2;n.x=t.x*Math.cos(E)*Math.sin(v),n.y=t.y*Math.sin(E)*Math.sin(v),n.z=t.z*Math.cos(v),o[l]=n.x,o[l+1]=n.y,o[l+2]=n.z,s.copy(n).normalize(),h[l]=s.x,h[l+1]=s.y,h[l+2]=s.z,u[p]=z+x,u[p+1]=1-m,g.push(M)}d.push(g)}for(let a=0;a<r;++a)for(let l=0;l<i;++l){const p=d[a][l+1],M=d[a][l],g=d[a+1][l],m=d[a+1][l+1];a!==0&&y.push(p,M,m),a!==r-1&&y.push(M,g,m)}this.setIndex(y),this.setAttribute("position",new c.BufferAttribute(o,3)),this.setAttribute("normal",new c.BufferAttribute(h,3)),this.setAttribute("uv",new c.BufferAttribute(u,2))}copy(t){return super.copy(t),this.parameters={...t.parameters},this}}const N=new c.Vector3,D=new c.Vector3,f=class f{constructor(t=0,i=0,r=0){this.longitude=t,this.latitude=i,this.height=r}set(t,i,r){return this.longitude=t,this.latitude=i,r!=null&&(this.height=r),this}clone(){return new f(this.longitude,this.latitude,this.height)}copy(t){return this.longitude=t.longitude,this.latitude=t.latitude,this.height=t.height,this}equals(t){return t.longitude===this.longitude&&t.latitude===this.latitude&&t.height===this.height}setLongitude(t){return this.longitude=t,this}setLatitude(t){return this.latitude=t,this}setHeight(t){return this.height=t,this}normalize(){return this.longitude<f.MIN_LONGITUDE&&(this.longitude+=Math.PI*2),this}setFromECEF(t,i){const e=((i==null?void 0:i.ellipsoid)??A.WGS84).reciprocalRadiiSquared(N),n=G(t,e,D,i);if(n==null)throw new Error(`Could not project position to ellipsoid surface: ${t.toArray()}`);const s=N.multiplyVectors(n,e).normalize();this.longitude=Math.atan2(s.y,s.x),this.latitude=Math.asin(s.z);const o=N.subVectors(t,n);return this.height=Math.sign(o.dot(t))*o.length(),this}toECEF(t=new c.Vector3,i){const r=(i==null?void 0:i.ellipsoid)??A.WGS84,e=N.multiplyVectors(r.radii,r.radii),n=Math.cos(this.latitude),s=D.set(n*Math.cos(this.longitude),n*Math.sin(this.longitude),Math.sin(this.latitude)).normalize();return t.multiplyVectors(e,s),t.divideScalar(Math.sqrt(s.dot(t))).add(s.multiplyScalar(this.height))}fromArray(t,i=0){return this.longitude=t[i],this.latitude=t[i+1],this.height=t[i+2],this}toArray(t=[],i=0){return t[i]=this.longitude,t[i+1]=this.latitude,t[i+2]=this.height,t}*[Symbol.iterator](){yield this.longitude,yield this.latitude,yield this.height}};f.MIN_LONGITUDE=-Math.PI,f.MAX_LONGITUDE=Math.PI,f.MIN_LATITUDE=-Math.PI/2,f.MAX_LATITUDE=Math.PI/2;let S=f;exports.Ellipsoid=A;exports.EllipsoidGeometry=W;exports.Geodetic=S;exports.invariant=q;
2
2
  //# sourceMappingURL=shared.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"shared.cjs","sources":["../src/helpers/projectOnEllipsoidSurface.ts","../src/Ellipsoid.ts","../src/EllipsoidGeometry.ts","../src/Geodetic.ts"],"sourcesContent":null,"names":["vectorScratch","Vector3","projectOnEllipsoidSurface","position","reciprocalRadiiSquared","result","options","x","y","z","rx","ry","rz","x2","y2","z2","normSquared","ratio","intersection","gradient","lambda","correction","sx","sy","sz","error","sx2","sy2","sz2","sx3","sy3","sz3","vectorScratch1","vectorScratch2","vectorScratch3","_Ellipsoid","east","north","up","Matrix4","ray","reciprocalRadii","p","d","p2","d2","pd","discriminant","Q","t1","t2","t","surfacePosition","radius","xySquared","normal","Ellipsoid","EllipsoidGeometry","BufferGeometry","radii","longitudeSegments","latitudeSegments","elementCount","vertex","vertices","normals","uvs","grid","indices","vertexIndex","uvIndex","rowIndex","rowIndices","v","phi","uOffset","u","theta","a","b","c","BufferAttribute","source","_Geodetic","longitude","latitude","height","other","value","projection","ellipsoid","radiiSquared","cosLatitude","array","offset","Geodetic"],"mappings":"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"}
1
+ {"version":3,"file":"shared.cjs","sources":["../node_modules/.pnpm/tiny-invariant@1.3.3/node_modules/tiny-invariant/dist/esm/tiny-invariant.js","../src/helpers/projectOnEllipsoidSurface.ts","../src/Ellipsoid.ts","../src/EllipsoidGeometry.ts","../src/Geodetic.ts"],"sourcesContent":null,"names":["isProduction","prefix","invariant","condition","message","value","vectorScratch","Vector3","projectOnEllipsoidSurface","position","reciprocalRadiiSquared","result","options","x","y","z","rx","ry","rz","x2","y2","z2","normSquared","ratio","intersection","gradient","lambda","correction","sx","sy","sz","error","sx2","sy2","sz2","sx3","sy3","sz3","vectorScratch1","vectorScratch2","vectorScratch3","_Ellipsoid","east","north","up","Matrix4","ray","reciprocalRadii","p","d","p2","d2","pd","discriminant","Q","t1","t2","t","surfacePosition","radius","a2","b2","normal","direction","v","q","Ellipsoid","EllipsoidGeometry","BufferGeometry","radii","longitudeSegments","latitudeSegments","elementCount","vertex","vertices","normals","uvs","grid","indices","vertexIndex","uvIndex","rowIndex","rowIndices","phi","uOffset","u","theta","a","b","c","BufferAttribute","source","_Geodetic","longitude","latitude","height","other","projection","ellipsoid","radiiSquared","cosLatitude","array","offset","Geodetic"],"mappings":"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","x_google_ignoreList":[0]}
package/build/shared.js CHANGED
@@ -1,24 +1,33 @@
1
- import { Vector3 as h, Matrix4 as j, BufferGeometry as B, BufferAttribute as b } from "three";
2
- const W = /* @__PURE__ */ new h();
3
- function C(E, t, i = new h(), s) {
4
- const { x: r, y: e, z: n } = E, o = t.x, a = t.y, y = t.z, u = r * r * o, d = e * e * a, c = n * n * y, l = u + d + c, p = Math.sqrt(1 / l);
1
+ import { Vector3 as o, Matrix4 as W, BufferGeometry as $, BufferAttribute as S } from "three";
2
+ var H = "production" === "production", O = "Invariant failed";
3
+ function T(f, t) {
4
+ if (!f) {
5
+ if (H)
6
+ throw new Error(O);
7
+ var i = O;
8
+ throw new Error(i);
9
+ }
10
+ }
11
+ const Q = /* @__PURE__ */ new o();
12
+ function C(f, t, i = new o(), r) {
13
+ const { x: s, y: n, z: e } = f, c = t.x, h = t.y, u = t.z, d = s * s * c, y = n * n * h, a = e * e * u, l = d + y + a, p = Math.sqrt(1 / l);
5
14
  if (!Number.isFinite(p))
6
15
  return;
7
- const x = W.copy(E).multiplyScalar(p);
8
- if (l < ((s == null ? void 0 : s.centerTolerance) ?? 0.1))
9
- return i.copy(x);
10
- const f = x.multiply(t).multiplyScalar(2);
11
- let m = (1 - p) * E.length() / (f.length() / 2), I = 0, M, w, g, v;
16
+ const M = Q.copy(f).multiplyScalar(p);
17
+ if (l < ((r == null ? void 0 : r.centerTolerance) ?? 0.1))
18
+ return i.copy(M);
19
+ const v = M.multiply(t).multiplyScalar(2);
20
+ let m = (1 - p) * f.length() / (v.length() / 2), I = 0, x, w, z, E;
12
21
  do {
13
- m -= I, M = 1 / (1 + m * o), w = 1 / (1 + m * a), g = 1 / (1 + m * y);
14
- const V = M * M, F = w * w, L = g * g, D = V * M, G = F * w, P = L * g;
15
- v = u * V + d * F + c * L - 1, I = v / ((u * D * o + d * G * a + c * P * y) * -2);
16
- } while (Math.abs(v) > 1e-12);
17
- return i.set(r * M, e * w, n * g);
22
+ m -= I, x = 1 / (1 + m * c), w = 1 / (1 + m * h), z = 1 / (1 + m * u);
23
+ const V = x * x, F = w * w, L = z * z, G = V * x, j = F * w, B = L * z;
24
+ E = d * V + y * F + a * L - 1, I = E / ((d * G * c + y * j * h + a * B * u) * -2);
25
+ } while (Math.abs(E) > 1e-12);
26
+ return i.set(s * x, n * w, e * z);
18
27
  }
19
- const A = /* @__PURE__ */ new h(), T = /* @__PURE__ */ new h(), U = /* @__PURE__ */ new h(), S = class S {
20
- constructor(t, i, s) {
21
- this.radii = new h(t, i, s);
28
+ const A = /* @__PURE__ */ new o(), U = /* @__PURE__ */ new o(), R = /* @__PURE__ */ new o(), q = class q {
29
+ constructor(t, i, r) {
30
+ this.radii = new o(t, i, r);
22
31
  }
23
32
  get minimumRadius() {
24
33
  return Math.min(this.radii.x, this.radii.y, this.radii.z);
@@ -26,102 +35,111 @@ const A = /* @__PURE__ */ new h(), T = /* @__PURE__ */ new h(), U = /* @__PURE__
26
35
  get maximumRadius() {
27
36
  return Math.max(this.radii.x, this.radii.y, this.radii.z);
28
37
  }
29
- reciprocalRadii(t = new h()) {
30
- const { x: i, y: s, z: r } = this.radii;
31
- return t.set(1 / i, 1 / s, 1 / r);
38
+ reciprocalRadii(t = new o()) {
39
+ const { x: i, y: r, z: s } = this.radii;
40
+ return t.set(1 / i, 1 / r, 1 / s);
32
41
  }
33
- reciprocalRadiiSquared(t = new h()) {
34
- const { x: i, y: s, z: r } = this.radii;
35
- return t.set(1 / i ** 2, 1 / s ** 2, 1 / r ** 2);
42
+ reciprocalRadiiSquared(t = new o()) {
43
+ const { x: i, y: r, z: s } = this.radii;
44
+ return t.set(1 / i ** 2, 1 / r ** 2, 1 / s ** 2);
36
45
  }
37
- projectOnSurface(t, i = new h(), s) {
46
+ projectOnSurface(t, i = new o(), r) {
38
47
  return C(
39
48
  t,
40
49
  this.reciprocalRadiiSquared(),
41
50
  i,
42
- s
51
+ r
43
52
  );
44
53
  }
45
- getSurfaceNormal(t, i = new h()) {
54
+ getSurfaceNormal(t, i = new o()) {
46
55
  return i.multiplyVectors(this.reciprocalRadiiSquared(A), t).normalize();
47
56
  }
48
- getEastNorthUpVectors(t, i = new h(), s = new h(), r = new h()) {
49
- this.getSurfaceNormal(t, r), i.set(-t.y, t.x, 0).normalize(), s.crossVectors(r, i).normalize();
57
+ getEastNorthUpVectors(t, i = new o(), r = new o(), s = new o()) {
58
+ this.getSurfaceNormal(t, s), i.set(-t.y, t.x, 0).normalize(), r.crossVectors(s, i).normalize();
50
59
  }
51
- getEastNorthUpFrame(t, i = new j()) {
52
- const s = A, r = T, e = U;
53
- return this.getEastNorthUpVectors(t, s, r, e), i.makeBasis(s, r, e).setPosition(t);
60
+ getEastNorthUpFrame(t, i = new W()) {
61
+ const r = A, s = U, n = R;
62
+ return this.getEastNorthUpVectors(t, r, s, n), i.makeBasis(r, s, n).setPosition(t);
54
63
  }
55
- getIntersection(t, i = new h()) {
56
- const s = this.reciprocalRadii(A), r = T.copy(s).multiply(t.origin), e = U.copy(s).multiply(t.direction), n = r.lengthSq(), o = e.lengthSq(), a = r.dot(e), y = a ** 2 - o * (n - 1);
57
- if (n === 1)
64
+ getIntersection(t, i = new o()) {
65
+ const r = this.reciprocalRadii(A), s = U.copy(r).multiply(t.origin), n = R.copy(r).multiply(t.direction), e = s.lengthSq(), c = n.lengthSq(), h = s.dot(n), u = h ** 2 - c * (e - 1);
66
+ if (e === 1)
58
67
  return i.copy(t.origin);
59
- if (n > 1) {
60
- if (a >= 0 || y < 0)
68
+ if (e > 1) {
69
+ if (h >= 0 || u < 0)
61
70
  return;
62
- const u = Math.sqrt(y), d = (-a - u) / o, c = (-a + u) / o;
63
- return t.at(Math.min(d, c), i);
71
+ const d = Math.sqrt(u), y = (-h - d) / c, a = (-h + d) / c;
72
+ return t.at(Math.min(y, a), i);
64
73
  }
65
- if (n < 1) {
66
- const u = a ** 2 - o * (n - 1), d = Math.sqrt(u), c = (-a + d) / o;
67
- return t.at(c, i);
74
+ if (e < 1) {
75
+ const d = h ** 2 - c * (e - 1), y = Math.sqrt(d), a = (-h + y) / c;
76
+ return t.at(a, i);
68
77
  }
69
- if (a < 0)
70
- return t.at(-a / o, i);
71
- }
72
- getOsculatingSphereCenter(t, i, s = new h()) {
73
- const r = this.radii.x ** 2, e = A.set(
74
- t.x / r,
75
- t.y / r,
76
- t.z / this.radii.z ** 2
78
+ if (h < 0)
79
+ return t.at(-h / c, i);
80
+ }
81
+ getOsculatingSphereCenter(t, i, r = new o()) {
82
+ T(this.radii.x === this.radii.y);
83
+ const s = this.radii.x ** 2, n = this.radii.z ** 2, e = A.set(
84
+ t.x / s,
85
+ t.y / s,
86
+ t.z / n
77
87
  ).normalize();
78
- return s.copy(e.multiplyScalar(-i).add(t));
88
+ return r.copy(e.multiplyScalar(-i).add(t));
89
+ }
90
+ getNormalAtHorizon(t, i, r = new o()) {
91
+ T(this.radii.x === this.radii.y);
92
+ const s = this.radii.x ** 2, n = this.radii.z ** 2, e = t, c = i;
93
+ let h = (e.x * c.x + e.y * c.y) / s + e.z * c.z / n;
94
+ h /= (e.x ** 2 + e.y ** 2) / s + e.z ** 2 / n;
95
+ const u = A.copy(c).multiplyScalar(-h).add(t);
96
+ return r.set(u.x / s, u.y / s, u.z / n).normalize();
79
97
  }
80
98
  };
81
- S.WGS84 = /* @__PURE__ */ new S(
99
+ q.WGS84 = /* @__PURE__ */ new q(
82
100
  6378137,
83
101
  6378137,
84
102
  6356752314245179e-9
85
103
  );
86
- let N = S;
87
- class Q extends B {
88
- constructor(t = new h(1, 1, 1), i = 32, s = 16) {
104
+ let b = q;
105
+ class k extends $ {
106
+ constructor(t = new o(1, 1, 1), i = 32, r = 16) {
89
107
  super(), this.type = "EllipsoidGeometry", this.parameters = {
90
108
  radii: t,
91
109
  longitudeSegments: i,
92
- latitudeSegments: s
93
- }, i = Math.max(3, Math.floor(i)), s = Math.max(2, Math.floor(s));
94
- const r = (i + 1) * (s + 1), e = new h(), n = new h(), o = new Float32Array(r * 3), a = new Float32Array(r * 3), y = new Float32Array(r * 2), u = [], d = [];
95
- for (let c = 0, l = 0, p = 0, x = 0; c <= s; ++c) {
96
- const f = [], m = c / s, I = m * Math.PI;
97
- let M = 0;
98
- c === 0 ? M = 0.5 / i : c === s && (M = -0.5 / i);
99
- for (let w = 0; w <= i; ++w, l += 3, p += 2, ++x) {
100
- const g = w / i, v = g * Math.PI * 2;
101
- e.x = t.x * Math.cos(v) * Math.sin(I), e.y = t.y * Math.sin(v) * Math.sin(I), e.z = t.z * Math.cos(I), o[l] = e.x, o[l + 1] = e.y, o[l + 2] = e.z, n.copy(e).normalize(), a[l] = n.x, a[l + 1] = n.y, a[l + 2] = n.z, y[p] = g + M, y[p + 1] = 1 - m, f.push(x);
110
+ latitudeSegments: r
111
+ }, i = Math.max(3, Math.floor(i)), r = Math.max(2, Math.floor(r));
112
+ const s = (i + 1) * (r + 1), n = new o(), e = new o(), c = new Float32Array(s * 3), h = new Float32Array(s * 3), u = new Float32Array(s * 2), d = [], y = [];
113
+ for (let a = 0, l = 0, p = 0, M = 0; a <= r; ++a) {
114
+ const v = [], m = a / r, I = m * Math.PI;
115
+ let x = 0;
116
+ a === 0 ? x = 0.5 / i : a === r && (x = -0.5 / i);
117
+ for (let w = 0; w <= i; ++w, l += 3, p += 2, ++M) {
118
+ const z = w / i, E = z * Math.PI * 2;
119
+ n.x = t.x * Math.cos(E) * Math.sin(I), n.y = t.y * Math.sin(E) * Math.sin(I), n.z = t.z * Math.cos(I), c[l] = n.x, c[l + 1] = n.y, c[l + 2] = n.z, e.copy(n).normalize(), h[l] = e.x, h[l + 1] = e.y, h[l + 2] = e.z, u[p] = z + x, u[p + 1] = 1 - m, v.push(M);
102
120
  }
103
- u.push(f);
121
+ d.push(v);
104
122
  }
105
- for (let c = 0; c < s; ++c)
123
+ for (let a = 0; a < r; ++a)
106
124
  for (let l = 0; l < i; ++l) {
107
- const p = u[c][l + 1], x = u[c][l], f = u[c + 1][l], m = u[c + 1][l + 1];
108
- c !== 0 && d.push(p, x, m), c !== s - 1 && d.push(x, f, m);
125
+ const p = d[a][l + 1], M = d[a][l], v = d[a + 1][l], m = d[a + 1][l + 1];
126
+ a !== 0 && y.push(p, M, m), a !== r - 1 && y.push(M, v, m);
109
127
  }
110
- this.setIndex(d), this.setAttribute("position", new b(o, 3)), this.setAttribute("normal", new b(a, 3)), this.setAttribute("uv", new b(y, 2));
128
+ this.setIndex(y), this.setAttribute("position", new S(c, 3)), this.setAttribute("normal", new S(h, 3)), this.setAttribute("uv", new S(u, 2));
111
129
  }
112
130
  copy(t) {
113
131
  return super.copy(t), this.parameters = { ...t.parameters }, this;
114
132
  }
115
133
  }
116
- const q = /* @__PURE__ */ new h(), O = /* @__PURE__ */ new h(), z = class z {
117
- constructor(t = 0, i = 0, s = 0) {
118
- this.longitude = t, this.latitude = i, this.height = s;
134
+ const N = /* @__PURE__ */ new o(), D = /* @__PURE__ */ new o(), g = class g {
135
+ constructor(t = 0, i = 0, r = 0) {
136
+ this.longitude = t, this.latitude = i, this.height = r;
119
137
  }
120
- set(t, i, s) {
121
- return this.longitude = t, this.latitude = i, s != null && (this.height = s), this;
138
+ set(t, i, r) {
139
+ return this.longitude = t, this.latitude = i, r != null && (this.height = r), this;
122
140
  }
123
141
  clone() {
124
- return new z(this.longitude, this.latitude, this.height);
142
+ return new g(this.longitude, this.latitude, this.height);
125
143
  }
126
144
  copy(t) {
127
145
  return this.longitude = t.longitude, this.latitude = t.latitude, this.height = t.height, this;
@@ -139,38 +157,38 @@ const q = /* @__PURE__ */ new h(), O = /* @__PURE__ */ new h(), z = class z {
139
157
  return this.height = t, this;
140
158
  }
141
159
  normalize() {
142
- return this.longitude < z.MIN_LONGITUDE && (this.longitude += Math.PI * 2), this;
160
+ return this.longitude < g.MIN_LONGITUDE && (this.longitude += Math.PI * 2), this;
143
161
  }
144
162
  // See: https://en.wikipedia.org/wiki/Geographic_coordinate_conversion
145
163
  // Reference: https://github.com/CesiumGS/cesium/blob/1.122/packages/engine/Source/Core/Geodetic.js#L119
146
164
  setFromECEF(t, i) {
147
- const r = ((i == null ? void 0 : i.ellipsoid) ?? N.WGS84).reciprocalRadiiSquared(q), e = C(
165
+ const s = ((i == null ? void 0 : i.ellipsoid) ?? b.WGS84).reciprocalRadiiSquared(N), n = C(
148
166
  t,
149
- r,
150
- O,
167
+ s,
168
+ D,
151
169
  i
152
170
  );
153
- if (e == null)
171
+ if (n == null)
154
172
  throw new Error(
155
173
  `Could not project position to ellipsoid surface: ${t.toArray()}`
156
174
  );
157
- const n = q.multiplyVectors(e, r).normalize();
158
- this.longitude = Math.atan2(n.y, n.x), this.latitude = Math.asin(n.z);
159
- const o = q.subVectors(t, e);
160
- return this.height = Math.sign(o.dot(t)) * o.length(), this;
175
+ const e = N.multiplyVectors(n, s).normalize();
176
+ this.longitude = Math.atan2(e.y, e.x), this.latitude = Math.asin(e.z);
177
+ const c = N.subVectors(t, n);
178
+ return this.height = Math.sign(c.dot(t)) * c.length(), this;
161
179
  }
162
180
  // See: https://en.wikipedia.org/wiki/Geographic_coordinate_conversion
163
181
  // Reference: https://github.com/CesiumGS/cesium/blob/1.122/packages/engine/Source/Core/Cartesian3.js#L916
164
- toECEF(t = new h(), i) {
165
- const s = (i == null ? void 0 : i.ellipsoid) ?? N.WGS84, r = q.multiplyVectors(
166
- s.radii,
167
- s.radii
168
- ), e = Math.cos(this.latitude), n = O.set(
169
- e * Math.cos(this.longitude),
170
- e * Math.sin(this.longitude),
182
+ toECEF(t = new o(), i) {
183
+ const r = (i == null ? void 0 : i.ellipsoid) ?? b.WGS84, s = N.multiplyVectors(
184
+ r.radii,
185
+ r.radii
186
+ ), n = Math.cos(this.latitude), e = D.set(
187
+ n * Math.cos(this.longitude),
188
+ n * Math.sin(this.longitude),
171
189
  Math.sin(this.latitude)
172
190
  ).normalize();
173
- return t.multiplyVectors(r, n), t.divideScalar(Math.sqrt(n.dot(t))).add(n.multiplyScalar(this.height));
191
+ return t.multiplyVectors(s, e), t.divideScalar(Math.sqrt(e.dot(t))).add(e.multiplyScalar(this.height));
174
192
  }
175
193
  fromArray(t, i = 0) {
176
194
  return this.longitude = t[i], this.latitude = t[i + 1], this.height = t[i + 2], this;
@@ -182,11 +200,12 @@ const q = /* @__PURE__ */ new h(), O = /* @__PURE__ */ new h(), z = class z {
182
200
  yield this.longitude, yield this.latitude, yield this.height;
183
201
  }
184
202
  };
185
- z.MIN_LONGITUDE = -Math.PI, z.MAX_LONGITUDE = Math.PI, z.MIN_LATITUDE = -Math.PI / 2, z.MAX_LATITUDE = Math.PI / 2;
186
- let R = z;
203
+ g.MIN_LONGITUDE = -Math.PI, g.MAX_LONGITUDE = Math.PI, g.MIN_LATITUDE = -Math.PI / 2, g.MAX_LATITUDE = Math.PI / 2;
204
+ let P = g;
187
205
  export {
188
- N as E,
189
- R as G,
190
- Q as a
206
+ b as E,
207
+ P as G,
208
+ k as a,
209
+ T as i
191
210
  };
192
211
  //# sourceMappingURL=shared.js.map