@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.
@@ -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.0",
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": "^2.1.1",
53
- "three-stdlib": "2.35.14",
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
- const xySquared = this.radii.x ** 2
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 / xySquared,
122
- surfacePosition.y / xySquared,
123
- surfacePosition.z / this.radii.z ** 2
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 { forwardRef, useEffect, useMemo, type ReactNode } from 'react'
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 SetOptional<GeodeticLike, 'height'> {
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 = /*#__PURE__*/ forwardRef<
35
- EastNorthUpFrameGroup,
36
- EastNorthUpFrameProps
37
- >(function EastNorthUpFrame(
38
- { longitude, latitude, height = 0, ellipsoid = Ellipsoid.WGS84, children },
39
- forwardedRef
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 { forwardRef, useRef } from 'react'
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 = /*#__PURE__*/ forwardRef<Mesh, EllipsoidMeshProps>(
24
- function Ellipsoid({ args, children, ...props }, forwardedRef) {
25
- const ref = useRef<Mesh | null>(null)
26
- extend({ EllipsoidGeometry })
27
- return (
28
- <mesh ref={mergeRefs([ref, forwardedRef])} {...props}>
29
- <ellipsoidGeometry args={args} />
30
- {children}
31
- </mesh>
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
+ }
@@ -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 { ReactNode } from 'react';
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: import('react').ForwardRefExoticComponent<EastNorthUpFrameProps & import('react').RefAttributes<EastNorthUpFrameGroup>>;
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: import('react').ForwardRefExoticComponent<Omit<EllipsoidMeshProps, "ref"> & import('react').RefAttributes<Mesh<import('three').BufferGeometry<import('three').NormalBufferAttributes>, import('three').Material | import('three').Material[], import('three').Object3DEventMap>>>;
13
+ export declare const EllipsoidMesh: FC<EllipsoidMeshProps>;