@takram/three-geospatial 0.0.1-alpha.6 → 0.0.1-alpha.8
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/index.cjs +1 -1
- package/build/index.cjs.map +1 -1
- package/build/index.js +346 -185
- package/build/index.js.map +1 -1
- package/build/r3f.js +2 -2
- package/build/shaders.cjs +155 -43
- package/build/shaders.cjs.map +1 -1
- package/build/shaders.js +165 -51
- package/build/shaders.js.map +1 -1
- package/build/shared.cjs +1 -1
- package/build/shared.cjs.map +1 -1
- package/build/shared.js +104 -111
- package/build/shared.js.map +1 -1
- package/package.json +17 -1
- package/src/DataLoader.ts +4 -8
- package/src/STBNLoader.ts +21 -0
- package/src/bufferGeometry.ts +5 -4
- package/src/constants.ts +3 -0
- package/src/decorators.ts +207 -0
- package/src/defineShorthand.ts +68 -0
- package/src/index.ts +3 -0
- package/src/math.ts +36 -1
- package/src/r3f/types.ts +14 -13
- package/src/shaders/cascadedShadowMaps.glsl +79 -0
- package/src/shaders/index.ts +6 -2
- package/src/shaders/interleavedGradientNoise.glsl +6 -0
- package/src/shaders/math.glsl +56 -16
- package/src/shaders/vogelDisk.glsl +8 -0
- package/src/typedArrayParsers.ts +19 -8
- package/types/DataLoader.d.ts +4 -4
- package/types/STBNLoader.d.ts +1 -0
- package/types/bufferGeometry.d.ts +2 -1
- package/types/constants.d.ts +1 -0
- package/types/decorators.d.ts +22 -0
- package/types/defineShorthand.d.ts +16 -0
- package/types/index.d.ts +3 -0
- package/types/math.d.ts +4 -1
- package/types/r3f/types.d.ts +6 -7
- package/types/shaders/index.d.ts +3 -1
- package/src/shaders/poissonDisk.glsl +0 -21
package/build/shared.cjs
CHANGED
@@ -1,2 +1,2 @@
|
|
1
|
-
"use strict";
|
1
|
+
"use strict";const c=require("three"),D=new c.Vector3;function R(E,t,i=new c.Vector3,e){const{x:r,y:s,z:n}=E,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(E).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)*E.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,F=w*w,L=V*V,G=S*M,B=F*w,C=L*V;I=u*S+d*F+o*L-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,T=new c.Vector3,U=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 R(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=T,s=U;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=T.copy(e).multiply(t.origin),s=U.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 A=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,O=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)??A.WGS84).reciprocalRadiiSquared(q),s=R(t,r,O,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)??A.WGS84,r=q.multiplyVectors(e.radii,e.radii),s=Math.cos(this.latitude),n=O.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=A;exports.EllipsoidGeometry=P;exports.Geodetic=N;
|
2
2
|
//# sourceMappingURL=shared.cjs.map
|
package/build/shared.cjs.map
CHANGED
@@ -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","
|
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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"}
|
package/build/shared.js
CHANGED
@@ -1,28 +1,24 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
function D(p, t, i = new c(), r) {
|
7
|
-
const { x: s, y: n, z: e } = p, a = t.x, o = t.y, y = t.z, d = s * s * a, u = n * n * o, m = e * e * y, l = d + u + m, h = Math.sqrt(1 / l);
|
8
|
-
if (!Number.isFinite(h))
|
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);
|
5
|
+
if (!Number.isFinite(p))
|
9
6
|
return;
|
10
|
-
const
|
11
|
-
if (l < ((
|
12
|
-
return i.copy(
|
13
|
-
const
|
14
|
-
let
|
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;
|
15
12
|
do {
|
16
|
-
|
17
|
-
const
|
18
|
-
|
19
|
-
} while (Math.abs(
|
20
|
-
return i.set(
|
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);
|
21
18
|
}
|
22
|
-
const
|
23
|
-
constructor(t, i,
|
24
|
-
|
25
|
-
this.radii = new c(t, i, r);
|
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);
|
26
22
|
}
|
27
23
|
get minimumRadius() {
|
28
24
|
return Math.min(this.radii.x, this.radii.y, this.radii.z);
|
@@ -30,105 +26,102 @@ const N = /* @__PURE__ */ new c(), U = /* @__PURE__ */ new c(), O = /* @__PURE__
|
|
30
26
|
get maximumRadius() {
|
31
27
|
return Math.max(this.radii.x, this.radii.y, this.radii.z);
|
32
28
|
}
|
33
|
-
reciprocalRadii(t = new
|
34
|
-
const { x: i, y:
|
35
|
-
return t.set(1 / i, 1 /
|
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);
|
36
32
|
}
|
37
|
-
reciprocalRadiiSquared(t = new
|
38
|
-
const { x: i, y:
|
39
|
-
return t.set(1 / i ** 2, 1 /
|
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);
|
40
36
|
}
|
41
|
-
projectOnSurface(t, i = new
|
42
|
-
return
|
37
|
+
projectOnSurface(t, i = new h(), s) {
|
38
|
+
return C(
|
43
39
|
t,
|
44
40
|
this.reciprocalRadiiSquared(),
|
45
41
|
i,
|
46
|
-
|
42
|
+
s
|
47
43
|
);
|
48
44
|
}
|
49
|
-
getSurfaceNormal(t, i = new
|
50
|
-
return i.multiplyVectors(this.reciprocalRadiiSquared(
|
45
|
+
getSurfaceNormal(t, i = new h()) {
|
46
|
+
return i.multiplyVectors(this.reciprocalRadiiSquared(A), t).normalize();
|
51
47
|
}
|
52
|
-
getEastNorthUpVectors(t, i = new
|
53
|
-
this.getSurfaceNormal(t,
|
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();
|
54
50
|
}
|
55
|
-
getEastNorthUpFrame(t, i = new
|
56
|
-
const
|
57
|
-
return this.getEastNorthUpVectors(t,
|
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);
|
58
54
|
}
|
59
|
-
getIntersection(t, i = new
|
60
|
-
const
|
61
|
-
if (
|
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)
|
62
58
|
return i.copy(t.origin);
|
63
|
-
if (
|
64
|
-
if (
|
59
|
+
if (n > 1) {
|
60
|
+
if (a >= 0 || y < 0)
|
65
61
|
return;
|
66
|
-
const
|
67
|
-
return t.at(Math.min(
|
62
|
+
const u = Math.sqrt(y), d = (-a - u) / o, c = (-a + u) / o;
|
63
|
+
return t.at(Math.min(d, c), i);
|
68
64
|
}
|
69
|
-
if (
|
70
|
-
const
|
71
|
-
return t.at(
|
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);
|
72
68
|
}
|
73
|
-
if (
|
74
|
-
return t.at(-
|
69
|
+
if (a < 0)
|
70
|
+
return t.at(-a / o, i);
|
75
71
|
}
|
76
|
-
getOsculatingSphereCenter(t, i,
|
77
|
-
const
|
78
|
-
t.x /
|
79
|
-
t.y /
|
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,
|
80
76
|
t.z / this.radii.z ** 2
|
81
77
|
).normalize();
|
82
|
-
return
|
78
|
+
return s.copy(e.multiplyScalar(-i).add(t));
|
83
79
|
}
|
84
80
|
};
|
85
|
-
|
81
|
+
S.WGS84 = /* @__PURE__ */ new S(
|
86
82
|
6378137,
|
87
83
|
6378137,
|
88
84
|
6356752314245179e-9
|
89
|
-
)
|
90
|
-
let
|
91
|
-
class
|
92
|
-
constructor(
|
93
|
-
super()
|
94
|
-
|
95
|
-
|
96
|
-
this.parameters = {
|
97
|
-
radii: i,
|
98
|
-
longitudeSegments: r,
|
85
|
+
);
|
86
|
+
let N = S;
|
87
|
+
class Q extends B {
|
88
|
+
constructor(t = new h(1, 1, 1), i = 32, s = 16) {
|
89
|
+
super(), this.type = "EllipsoidGeometry", this.parameters = {
|
90
|
+
radii: t,
|
91
|
+
longitudeSegments: i,
|
99
92
|
latitudeSegments: s
|
100
|
-
},
|
101
|
-
const
|
102
|
-
for (let
|
103
|
-
const
|
104
|
-
let
|
105
|
-
|
106
|
-
for (let
|
107
|
-
const
|
108
|
-
e.x =
|
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);
|
109
102
|
}
|
110
|
-
u.push(
|
103
|
+
u.push(f);
|
111
104
|
}
|
112
|
-
for (let
|
113
|
-
for (let
|
114
|
-
const
|
115
|
-
|
105
|
+
for (let c = 0; c < s; ++c)
|
106
|
+
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);
|
116
109
|
}
|
117
|
-
this.setIndex(
|
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));
|
118
111
|
}
|
119
|
-
copy(
|
120
|
-
return super.copy(
|
112
|
+
copy(t) {
|
113
|
+
return super.copy(t), this.parameters = { ...t.parameters }, this;
|
121
114
|
}
|
122
115
|
}
|
123
|
-
const
|
124
|
-
constructor(t = 0, i = 0,
|
125
|
-
this.longitude = t, this.latitude = i, this.height =
|
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;
|
126
119
|
}
|
127
|
-
set(t, i,
|
128
|
-
return this.longitude = t, this.latitude = i,
|
120
|
+
set(t, i, s) {
|
121
|
+
return this.longitude = t, this.latitude = i, s != null && (this.height = s), this;
|
129
122
|
}
|
130
123
|
clone() {
|
131
|
-
return new
|
124
|
+
return new z(this.longitude, this.latitude, this.height);
|
132
125
|
}
|
133
126
|
copy(t) {
|
134
127
|
return this.longitude = t.longitude, this.latitude = t.latitude, this.height = t.height, this;
|
@@ -146,38 +139,38 @@ const S = /* @__PURE__ */ new c(), R = /* @__PURE__ */ new c(), v = class v {
|
|
146
139
|
return this.height = t, this;
|
147
140
|
}
|
148
141
|
normalize() {
|
149
|
-
return this.longitude <
|
142
|
+
return this.longitude < z.MIN_LONGITUDE && (this.longitude += Math.PI * 2), this;
|
150
143
|
}
|
151
144
|
// See: https://en.wikipedia.org/wiki/Geographic_coordinate_conversion
|
152
145
|
// Reference: https://github.com/CesiumGS/cesium/blob/1.122/packages/engine/Source/Core/Geodetic.js#L119
|
153
146
|
setFromECEF(t, i) {
|
154
|
-
const
|
147
|
+
const r = ((i == null ? void 0 : i.ellipsoid) ?? N.WGS84).reciprocalRadiiSquared(q), e = C(
|
155
148
|
t,
|
156
|
-
|
157
|
-
|
149
|
+
r,
|
150
|
+
O,
|
158
151
|
i
|
159
152
|
);
|
160
|
-
if (
|
153
|
+
if (e == null)
|
161
154
|
throw new Error(
|
162
155
|
`Could not project position to ellipsoid surface: ${t.toArray()}`
|
163
156
|
);
|
164
|
-
const
|
165
|
-
this.longitude = Math.atan2(
|
166
|
-
const
|
167
|
-
return this.height = Math.sign(
|
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;
|
168
161
|
}
|
169
162
|
// See: https://en.wikipedia.org/wiki/Geographic_coordinate_conversion
|
170
163
|
// Reference: https://github.com/CesiumGS/cesium/blob/1.122/packages/engine/Source/Core/Cartesian3.js#L916
|
171
|
-
toECEF(t = new
|
172
|
-
const
|
173
|
-
|
174
|
-
|
175
|
-
),
|
176
|
-
|
177
|
-
|
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),
|
178
171
|
Math.sin(this.latitude)
|
179
172
|
).normalize();
|
180
|
-
return t.multiplyVectors(
|
173
|
+
return t.multiplyVectors(r, n), t.divideScalar(Math.sqrt(n.dot(t))).add(n.multiplyScalar(this.height));
|
181
174
|
}
|
182
175
|
fromArray(t, i = 0) {
|
183
176
|
return this.longitude = t[i], this.latitude = t[i + 1], this.height = t[i + 2], this;
|
@@ -189,11 +182,11 @@ const S = /* @__PURE__ */ new c(), R = /* @__PURE__ */ new c(), v = class v {
|
|
189
182
|
yield this.longitude, yield this.latitude, yield this.height;
|
190
183
|
}
|
191
184
|
};
|
192
|
-
z
|
193
|
-
let
|
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;
|
194
187
|
export {
|
195
|
-
|
196
|
-
|
197
|
-
|
188
|
+
N as E,
|
189
|
+
R as G,
|
190
|
+
Q as a
|
198
191
|
};
|
199
192
|
//# sourceMappingURL=shared.js.map
|
package/build/shared.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"shared.js","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","
|
1
|
+
{"version":3,"file":"shared.js","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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"}
|
package/package.json
CHANGED
@@ -1,7 +1,22 @@
|
|
1
1
|
{
|
2
2
|
"name": "@takram/three-geospatial",
|
3
|
-
"version": "0.0.1-alpha.
|
3
|
+
"version": "0.0.1-alpha.8",
|
4
|
+
"description": "Provides fundamental functions for rendering GIS data in Three.js and R3F",
|
5
|
+
"keywords": [
|
6
|
+
"three",
|
7
|
+
"three.js",
|
8
|
+
"geospatial"
|
9
|
+
],
|
10
|
+
"homepage": "https://github.com/takram-design-engineering/three-geospatial/tree/main/packages/core",
|
11
|
+
"bugs": {
|
12
|
+
"url": "https://github.com/takram-design-engineering/three-geospatial/issues"
|
13
|
+
},
|
14
|
+
"repository": {
|
15
|
+
"type": "git",
|
16
|
+
"url": "https://github.com/takram-design-engineering/three-geospatial.git"
|
17
|
+
},
|
4
18
|
"license": "MIT",
|
19
|
+
"author": "Shota Matsuda <shota@takram.com>",
|
5
20
|
"type": "module",
|
6
21
|
"exports": {
|
7
22
|
".": {
|
@@ -24,6 +39,7 @@
|
|
24
39
|
"module": "./build/index.js",
|
25
40
|
"types": "./types/index.d.ts",
|
26
41
|
"files": [
|
42
|
+
"assets",
|
27
43
|
"build",
|
28
44
|
"src",
|
29
45
|
"types",
|
package/src/DataLoader.ts
CHANGED
@@ -30,18 +30,14 @@ type ParameterProperties<T> = {
|
|
30
30
|
[K in WritableKeysOf<T> as T[K] extends Callable ? never : K]: T[K]
|
31
31
|
}
|
32
32
|
|
33
|
-
export
|
34
|
-
Partial<ParameterProperties<DataTexture>>,
|
35
|
-
'image'
|
36
|
-
> & {
|
33
|
+
export interface DataTextureParameters
|
34
|
+
extends Omit<Partial<ParameterProperties<DataTexture>>, 'image'> {
|
37
35
|
width?: number
|
38
36
|
height?: number
|
39
37
|
}
|
40
38
|
|
41
|
-
export
|
42
|
-
Partial<ParameterProperties<Data3DTexture>>,
|
43
|
-
'image'
|
44
|
-
> & {
|
39
|
+
export interface Data3DTextureParameters
|
40
|
+
extends Omit<Partial<ParameterProperties<Data3DTexture>>, 'image'> {
|
45
41
|
width?: number
|
46
42
|
height?: number
|
47
43
|
depth?: number
|
@@ -0,0 +1,21 @@
|
|
1
|
+
import { NearestFilter, RedFormat, RepeatWrapping } from 'three'
|
2
|
+
|
3
|
+
import {
|
4
|
+
STBN_TEXTURE_DEPTH,
|
5
|
+
STBN_TEXTURE_HEIGHT,
|
6
|
+
STBN_TEXTURE_WIDTH
|
7
|
+
} from './constants'
|
8
|
+
import { createData3DTextureLoaderClass } from './DataLoader'
|
9
|
+
import { parseUint8Array } from './typedArrayParsers'
|
10
|
+
|
11
|
+
export const STBNLoader = createData3DTextureLoaderClass(parseUint8Array, {
|
12
|
+
format: RedFormat,
|
13
|
+
minFilter: NearestFilter,
|
14
|
+
magFilter: NearestFilter,
|
15
|
+
wrapS: RepeatWrapping,
|
16
|
+
wrapT: RepeatWrapping,
|
17
|
+
wrapR: RepeatWrapping,
|
18
|
+
width: STBN_TEXTURE_WIDTH,
|
19
|
+
height: STBN_TEXTURE_HEIGHT,
|
20
|
+
depth: STBN_TEXTURE_DEPTH
|
21
|
+
})
|
package/src/bufferGeometry.ts
CHANGED
@@ -1,9 +1,10 @@
|
|
1
1
|
import { Box3, BufferAttribute, BufferGeometry, Sphere, Vector3 } from 'three'
|
2
2
|
|
3
|
-
export
|
4
|
-
|
5
|
-
|
6
|
-
|
3
|
+
export interface BufferGeometryLike
|
4
|
+
extends Pick<
|
5
|
+
BufferGeometry,
|
6
|
+
'attributes' | 'index' | 'boundingBox' | 'boundingSphere'
|
7
|
+
> {}
|
7
8
|
|
8
9
|
export function toBufferGeometryLike(
|
9
10
|
geometry: BufferGeometry
|
package/src/constants.ts
CHANGED
@@ -1,3 +1,6 @@
|
|
1
1
|
export const STBN_TEXTURE_WIDTH = 128
|
2
2
|
export const STBN_TEXTURE_HEIGHT = 128
|
3
3
|
export const STBN_TEXTURE_DEPTH = 64
|
4
|
+
|
5
|
+
export const DEFAULT_STBN_URL =
|
6
|
+
'https://media.githubusercontent.com/media/takram-design-engineering/three-geospatial/9627216cc50057994c98a2118f3c4a23765d43b9/packages/core/assets/stbn.bin'
|