@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/CHANGELOG.md +13 -0
- package/build/index.cjs +1 -1
- package/build/index.cjs.map +1 -1
- package/build/index.js +453 -462
- package/build/index.js.map +1 -1
- package/build/r3f.cjs +1 -1
- package/build/r3f.cjs.map +1 -1
- package/build/r3f.js +58 -32
- package/build/r3f.js.map +1 -1
- package/build/shared.cjs +1 -1
- package/build/shared.cjs.map +1 -1
- package/build/shared.js +116 -97
- package/build/shared.js.map +1 -1
- package/package.json +3 -3
- package/src/Ellipsoid.ts +23 -4
- package/src/r3f/EastNorthUpFrame.tsx +13 -10
- package/src/r3f/EllipsoidMesh.tsx +16 -13
- package/types/Ellipsoid.d.ts +1 -0
- package/types/r3f/EastNorthUpFrame.d.ts +4 -3
- package/types/r3f/EllipsoidMesh.d.ts +2 -1
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","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.js","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/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@takram/three-geospatial",
|
3
|
-
"version": "0.2.
|
3
|
+
"version": "0.2.2",
|
4
4
|
"description": "Provides fundamental functions for rendering GIS data in Three.js and R3F",
|
5
5
|
"keywords": [
|
6
6
|
"three",
|
@@ -49,8 +49,8 @@
|
|
49
49
|
],
|
50
50
|
"dependencies": {
|
51
51
|
"@petamoriken/float16": "^3.9.1",
|
52
|
-
"react-merge-refs": "^
|
53
|
-
"three-stdlib": "2.
|
52
|
+
"react-merge-refs": "^3.0.2",
|
53
|
+
"three-stdlib": "2.36.0",
|
54
54
|
"tiny-invariant": "^1.3.3",
|
55
55
|
"type-fest": "^4.33.0"
|
56
56
|
},
|
package/src/Ellipsoid.ts
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
import { Matrix4, Vector3, type Ray } from 'three'
|
2
|
+
import invariant from 'tiny-invariant'
|
2
3
|
|
3
4
|
import {
|
4
5
|
projectOnEllipsoidSurface,
|
@@ -115,14 +116,32 @@ export class Ellipsoid {
|
|
115
116
|
radius: number,
|
116
117
|
result = new Vector3()
|
117
118
|
): Vector3 {
|
118
|
-
|
119
|
+
invariant(this.radii.x === this.radii.y)
|
120
|
+
const a2 = this.radii.x ** 2
|
121
|
+
const b2 = this.radii.z ** 2
|
119
122
|
const normal = vectorScratch1
|
120
123
|
.set(
|
121
|
-
surfacePosition.x /
|
122
|
-
surfacePosition.y /
|
123
|
-
surfacePosition.z /
|
124
|
+
surfacePosition.x / a2,
|
125
|
+
surfacePosition.y / a2,
|
126
|
+
surfacePosition.z / b2
|
124
127
|
)
|
125
128
|
.normalize()
|
126
129
|
return result.copy(normal.multiplyScalar(-radius).add(surfacePosition))
|
127
130
|
}
|
131
|
+
|
132
|
+
getNormalAtHorizon(
|
133
|
+
position: Vector3,
|
134
|
+
direction: Vector3,
|
135
|
+
result = new Vector3()
|
136
|
+
): Vector3 {
|
137
|
+
invariant(this.radii.x === this.radii.y)
|
138
|
+
const a2 = this.radii.x ** 2
|
139
|
+
const b2 = this.radii.z ** 2
|
140
|
+
const p = position
|
141
|
+
const v = direction
|
142
|
+
let t = (p.x * v.x + p.y * v.y) / a2 + (p.z * v.z) / b2
|
143
|
+
t /= (p.x ** 2 + p.y ** 2) / a2 + p.z ** 2 / b2
|
144
|
+
const q = vectorScratch1.copy(v).multiplyScalar(-t).add(position)
|
145
|
+
return result.set(q.x / a2, q.y / a2, q.z / b2).normalize()
|
146
|
+
}
|
128
147
|
}
|
@@ -1,4 +1,5 @@
|
|
1
|
-
import {
|
1
|
+
import { type ElementProps } from '@react-three/fiber'
|
2
|
+
import { useEffect, useMemo, type FC, type ReactNode } from 'react'
|
2
3
|
import { Group, Matrix4, Vector3 } from 'three'
|
3
4
|
import { type SetOptional } from 'type-fest'
|
4
5
|
|
@@ -26,18 +27,20 @@ class EastNorthUpFrameGroup extends Group {
|
|
26
27
|
}
|
27
28
|
|
28
29
|
export interface EastNorthUpFrameProps
|
29
|
-
extends
|
30
|
+
extends ElementProps<typeof EastNorthUpFrameGroup, EastNorthUpFrameGroup>,
|
31
|
+
SetOptional<GeodeticLike, 'height'> {
|
30
32
|
ellipsoid?: Ellipsoid
|
31
33
|
children?: ReactNode
|
32
34
|
}
|
33
35
|
|
34
|
-
export const EastNorthUpFrame =
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
36
|
+
export const EastNorthUpFrame: FC<EastNorthUpFrameProps> = ({
|
37
|
+
ref: forwardedRef,
|
38
|
+
longitude,
|
39
|
+
latitude,
|
40
|
+
height = 0,
|
41
|
+
ellipsoid = Ellipsoid.WGS84,
|
42
|
+
children
|
43
|
+
}) => {
|
41
44
|
const group = useMemo(() => new EastNorthUpFrameGroup(), [])
|
42
45
|
|
43
46
|
useEffect(() => {
|
@@ -49,4 +52,4 @@ export const EastNorthUpFrame = /*#__PURE__*/ forwardRef<
|
|
49
52
|
{children}
|
50
53
|
</primitive>
|
51
54
|
)
|
52
|
-
}
|
55
|
+
}
|
@@ -3,7 +3,7 @@ import {
|
|
3
3
|
type ElementProps,
|
4
4
|
type ThreeElement
|
5
5
|
} from '@react-three/fiber'
|
6
|
-
import {
|
6
|
+
import { useRef, type FC } from 'react'
|
7
7
|
import { mergeRefs } from 'react-merge-refs'
|
8
8
|
import { type Mesh } from 'three'
|
9
9
|
|
@@ -20,15 +20,18 @@ export interface EllipsoidMeshProps
|
|
20
20
|
args?: ConstructorParameters<typeof EllipsoidGeometry>
|
21
21
|
}
|
22
22
|
|
23
|
-
export const EllipsoidMesh
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
)
|
33
|
-
|
34
|
-
|
23
|
+
export const EllipsoidMesh: FC<EllipsoidMeshProps> = ({
|
24
|
+
ref: forwardedRef,
|
25
|
+
args,
|
26
|
+
children,
|
27
|
+
...props
|
28
|
+
}) => {
|
29
|
+
const ref = useRef<Mesh | null>(null)
|
30
|
+
extend({ EllipsoidGeometry })
|
31
|
+
return (
|
32
|
+
<mesh ref={mergeRefs([ref, forwardedRef])} {...props}>
|
33
|
+
<ellipsoidGeometry args={args} />
|
34
|
+
{children}
|
35
|
+
</mesh>
|
36
|
+
)
|
37
|
+
}
|
package/types/Ellipsoid.d.ts
CHANGED
@@ -14,4 +14,5 @@ export declare class Ellipsoid {
|
|
14
14
|
getEastNorthUpFrame(position: Vector3, result?: Matrix4): Matrix4;
|
15
15
|
getIntersection(ray: Ray, result?: Vector3): Vector3 | undefined;
|
16
16
|
getOsculatingSphereCenter(surfacePosition: Vector3, radius: number, result?: Vector3): Vector3;
|
17
|
+
getNormalAtHorizon(position: Vector3, direction: Vector3, result?: Vector3): Vector3;
|
17
18
|
}
|
@@ -1,4 +1,5 @@
|
|
1
|
-
import {
|
1
|
+
import { ElementProps } from '@react-three/fiber';
|
2
|
+
import { FC, ReactNode } from 'react';
|
2
3
|
import { Group } from 'three';
|
3
4
|
import { SetOptional } from 'type-fest';
|
4
5
|
import { Ellipsoid } from '../Ellipsoid';
|
@@ -6,9 +7,9 @@ import { GeodeticLike } from '../Geodetic';
|
|
6
7
|
declare class EastNorthUpFrameGroup extends Group {
|
7
8
|
set(longitude: number, latitude: number, height: number, ellipsoid?: Ellipsoid): void;
|
8
9
|
}
|
9
|
-
export interface EastNorthUpFrameProps extends SetOptional<GeodeticLike, 'height'> {
|
10
|
+
export interface EastNorthUpFrameProps extends ElementProps<typeof EastNorthUpFrameGroup, EastNorthUpFrameGroup>, SetOptional<GeodeticLike, 'height'> {
|
10
11
|
ellipsoid?: Ellipsoid;
|
11
12
|
children?: ReactNode;
|
12
13
|
}
|
13
|
-
export declare const EastNorthUpFrame:
|
14
|
+
export declare const EastNorthUpFrame: FC<EastNorthUpFrameProps>;
|
14
15
|
export {};
|
@@ -1,4 +1,5 @@
|
|
1
1
|
import { ElementProps, ThreeElement } from '@react-three/fiber';
|
2
|
+
import { FC } from 'react';
|
2
3
|
import { Mesh } from 'three';
|
3
4
|
import { EllipsoidGeometry } from '../EllipsoidGeometry';
|
4
5
|
declare module '@react-three/fiber' {
|
@@ -9,4 +10,4 @@ declare module '@react-three/fiber' {
|
|
9
10
|
export interface EllipsoidMeshProps extends Omit<ElementProps<typeof Mesh>, 'args'> {
|
10
11
|
args?: ConstructorParameters<typeof EllipsoidGeometry>;
|
11
12
|
}
|
12
|
-
export declare const EllipsoidMesh:
|
13
|
+
export declare const EllipsoidMesh: FC<EllipsoidMeshProps>;
|