@takram/three-geospatial 0.2.1 → 0.3.0

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.
Files changed (51) hide show
  1. package/CHANGELOG.md +22 -0
  2. package/build/index.cjs +1 -1
  3. package/build/index.cjs.map +1 -1
  4. package/build/index.js +1311 -1309
  5. package/build/index.js.map +1 -1
  6. package/build/r3f.cjs +1 -1
  7. package/build/r3f.cjs.map +1 -1
  8. package/build/r3f.js +33 -50
  9. package/build/r3f.js.map +1 -1
  10. package/build/shaders.cjs.map +1 -1
  11. package/build/shaders.js.map +1 -1
  12. package/build/shared.cjs +1 -1
  13. package/build/shared.cjs.map +1 -1
  14. package/build/shared.js +116 -97
  15. package/build/shared.js.map +1 -1
  16. package/package.json +2 -3
  17. package/src/DataTextureLoader.ts +134 -0
  18. package/src/EXR3DTextureLoader.ts +66 -0
  19. package/src/{EXR3DLoader.ts → EXRTextureLoader.ts} +25 -12
  20. package/src/Ellipsoid.ts +23 -4
  21. package/src/STBNLoader.ts +28 -13
  22. package/src/TilingScheme.ts +1 -1
  23. package/src/TypedArrayLoader.ts +11 -21
  24. package/src/capabilities.ts +5 -0
  25. package/src/constants.ts +1 -0
  26. package/src/decorators.ts +0 -1
  27. package/src/defineShorthand.ts +1 -1
  28. package/src/index.ts +5 -3
  29. package/src/r3f/EastNorthUpFrame.tsx +14 -11
  30. package/src/r3f/EllipsoidMesh.tsx +16 -15
  31. package/src/r3f/index.ts +1 -1
  32. package/src/r3f/types.ts +1 -1
  33. package/src/typedArrayParsers.ts +1 -1
  34. package/src/types.ts +3 -1
  35. package/types/DataTextureLoader.d.ts +27 -0
  36. package/types/EXR3DTextureLoader.d.ts +11 -0
  37. package/types/EXRTextureLoader.d.ts +10 -0
  38. package/types/Ellipsoid.d.ts +1 -0
  39. package/types/STBNLoader.d.ts +5 -1
  40. package/types/TypedArrayLoader.d.ts +4 -6
  41. package/types/capabilities.d.ts +2 -0
  42. package/types/index.d.ts +5 -3
  43. package/types/r3f/EastNorthUpFrame.d.ts +4 -3
  44. package/types/r3f/EllipsoidMesh.d.ts +2 -1
  45. package/types/r3f/index.d.ts +1 -1
  46. package/types/types.d.ts +2 -1
  47. package/src/DataLoader.ts +0 -164
  48. package/src/Texture3DLoader.ts +0 -81
  49. package/types/DataLoader.d.ts +0 -29
  50. package/types/EXR3DLoader.d.ts +0 -6
  51. package/types/Texture3DLoader.d.ts +0 -4
@@ -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.1",
3
+ "version": "0.3.0",
4
4
  "description": "Provides fundamental functions for rendering GIS data in Three.js and R3F",
5
5
  "keywords": [
6
6
  "three",
@@ -49,8 +49,7 @@
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
+ "three-stdlib": "2.36.0",
54
53
  "tiny-invariant": "^1.3.3",
55
54
  "type-fest": "^4.33.0"
56
55
  },
@@ -0,0 +1,134 @@
1
+ import {
2
+ ByteType,
3
+ FloatType,
4
+ HalfFloatType,
5
+ IntType,
6
+ LinearFilter,
7
+ Loader,
8
+ RGBAFormat,
9
+ ShortType,
10
+ UnsignedByteType,
11
+ UnsignedIntType,
12
+ UnsignedShortType,
13
+ type ColorSpace,
14
+ type Data3DTexture,
15
+ type DataTexture,
16
+ type LoadingManager,
17
+ type MagnificationTextureFilter,
18
+ type Mapping,
19
+ type MinificationTextureFilter,
20
+ type PixelFormat,
21
+ type TextureDataType,
22
+ type Wrapping
23
+ } from 'three'
24
+ import invariant from 'tiny-invariant'
25
+ import type { Class } from 'type-fest'
26
+
27
+ import { Float16Array, type TypedArray } from './typedArray'
28
+ import { TypedArrayLoader } from './TypedArrayLoader'
29
+ import type { TypedArrayParser } from './typedArrayParsers'
30
+
31
+ function getTextureDataType(array: TypedArray): TextureDataType {
32
+ // prettier-ignore
33
+ const type = (
34
+ array instanceof Int8Array ? ByteType :
35
+ array instanceof Uint8Array ? UnsignedByteType :
36
+ array instanceof Uint8ClampedArray ? UnsignedByteType :
37
+ array instanceof Int16Array ? ShortType :
38
+ array instanceof Uint16Array ? UnsignedShortType :
39
+ array instanceof Int32Array ? IntType :
40
+ array instanceof Uint32Array ? UnsignedIntType :
41
+ array instanceof Float16Array ? HalfFloatType :
42
+ array instanceof Float32Array ? FloatType :
43
+ array instanceof Float64Array ? FloatType :
44
+ null
45
+ )
46
+ invariant(type != null)
47
+ return type
48
+ }
49
+
50
+ export interface DataTextureLoaderOptions {
51
+ width?: number
52
+ height?: number
53
+ depth?: number
54
+ mapping?: Mapping
55
+ wrapS?: Wrapping
56
+ wrapT?: Wrapping
57
+ wrapR?: Wrapping
58
+ magFilter?: MagnificationTextureFilter
59
+ minFilter?: MinificationTextureFilter
60
+ format?: PixelFormat
61
+ type?: TextureDataType
62
+ anisotropy?: number
63
+ colorSpace?: ColorSpace
64
+ manager?: LoadingManager
65
+ }
66
+
67
+ export class DataTextureLoader<
68
+ T extends DataTexture | Data3DTexture = DataTexture | Data3DTexture,
69
+ U extends TypedArray = TypedArray
70
+ > extends Loader<T> {
71
+ textureClass: Class<T>
72
+ parser: TypedArrayParser<U>
73
+ options: DataTextureLoaderOptions
74
+
75
+ constructor(
76
+ textureClass: Class<T>,
77
+ parser: TypedArrayParser<U>,
78
+ options: DataTextureLoaderOptions = {},
79
+ manager?: LoadingManager
80
+ ) {
81
+ super(manager)
82
+ this.textureClass = textureClass
83
+ this.parser = parser
84
+ this.options = {
85
+ format: RGBAFormat,
86
+ minFilter: LinearFilter,
87
+ magFilter: LinearFilter,
88
+ ...options
89
+ }
90
+ }
91
+
92
+ override load(
93
+ url: string,
94
+ onLoad?: (data: T) => void,
95
+ onProgress?: (event: ProgressEvent) => void,
96
+ onError?: (error: unknown) => void
97
+ ): T {
98
+ // eslint-disable-next-line new-cap
99
+ const texture = new this.textureClass()
100
+
101
+ const loader = new TypedArrayLoader(this.parser, this.manager)
102
+ loader.setRequestHeader(this.requestHeader)
103
+ loader.setPath(this.path)
104
+ loader.setWithCredentials(this.withCredentials)
105
+ loader.load(
106
+ url,
107
+ array => {
108
+ texture.image.data =
109
+ array instanceof Float16Array ? new Uint16Array(array.buffer) : array
110
+ const { width, height, depth, ...options } = this.options
111
+ if (width != null) {
112
+ texture.image.width = width
113
+ }
114
+ if (height != null) {
115
+ texture.image.height = height
116
+ }
117
+ if ('depth' in texture.image && depth != null) {
118
+ texture.image.depth = depth
119
+ }
120
+
121
+ // Populate the default texture type for the array type.
122
+ texture.type = getTextureDataType(array)
123
+
124
+ Object.assign(texture, options)
125
+ texture.needsUpdate = true
126
+ onLoad?.(texture)
127
+ },
128
+ onProgress,
129
+ onError
130
+ )
131
+
132
+ return texture
133
+ }
134
+ }
@@ -0,0 +1,66 @@
1
+ import { Data3DTexture, Loader, type LoadingManager } from 'three'
2
+ import { EXRLoader } from 'three-stdlib'
3
+
4
+ export interface EXR3DTextureLoaderOptions {
5
+ width?: number
6
+ height?: number
7
+ depth?: number
8
+ }
9
+
10
+ export class EXR3DTextureLoader extends Loader<Data3DTexture> {
11
+ options: EXR3DTextureLoaderOptions
12
+
13
+ constructor(
14
+ options: EXR3DTextureLoaderOptions = {},
15
+ manager?: LoadingManager
16
+ ) {
17
+ super(manager)
18
+ this.options = options
19
+ }
20
+
21
+ override load(
22
+ url: string,
23
+ onLoad?: (data: Data3DTexture) => void,
24
+ onProgress?: (event: ProgressEvent) => void,
25
+ onError?: (error: unknown) => void
26
+ ): Data3DTexture {
27
+ const { width, height, depth } = this.options
28
+ const texture = new Data3DTexture(null, width, height, depth)
29
+
30
+ const loader = new EXRLoader(this.manager)
31
+ loader.setRequestHeader(this.requestHeader)
32
+ loader.setPath(this.path)
33
+ loader.setWithCredentials(this.withCredentials)
34
+ loader.load(
35
+ url,
36
+ exr => {
37
+ const { image } = exr
38
+ texture.image = {
39
+ data: image.data,
40
+ width: width ?? image.width,
41
+ height: height ?? image.height,
42
+ depth: depth ?? Math.sqrt(image.height)
43
+ }
44
+ texture.type = exr.type
45
+ texture.format = exr.format
46
+ texture.colorSpace = exr.colorSpace
47
+ texture.needsUpdate = true
48
+
49
+ try {
50
+ onLoad?.(texture)
51
+ } catch (error) {
52
+ if (onError != null) {
53
+ onError(error)
54
+ } else {
55
+ console.error(error)
56
+ }
57
+ this.manager.itemError(url)
58
+ }
59
+ },
60
+ onProgress,
61
+ onError
62
+ )
63
+
64
+ return texture
65
+ }
66
+ }
@@ -1,20 +1,28 @@
1
- import { Data3DTexture, Loader } from 'three'
1
+ import { DataTexture, Loader, type LoadingManager } from 'three'
2
2
  import { EXRLoader } from 'three-stdlib'
3
3
 
4
- export class EXR3DLoader extends Loader<Data3DTexture> {
5
- depth?: number
4
+ export interface EXRTextureLoaderOptions {
5
+ width?: number
6
+ height?: number
7
+ }
8
+
9
+ export class EXRTextureLoader extends Loader<DataTexture> {
10
+ options: EXRTextureLoaderOptions
6
11
 
7
- setDepth(value: number): this {
8
- this.depth = value
9
- return this
12
+ constructor(options: EXRTextureLoaderOptions = {}, manager?: LoadingManager) {
13
+ super(manager)
14
+ this.options = options
10
15
  }
11
16
 
12
17
  override load(
13
18
  url: string,
14
- onLoad: (data: Data3DTexture) => void,
19
+ onLoad?: (data: DataTexture) => void,
15
20
  onProgress?: (event: ProgressEvent) => void,
16
21
  onError?: (error: unknown) => void
17
- ): void {
22
+ ): DataTexture {
23
+ const { width, height } = this.options
24
+ const texture = new DataTexture(null, width, height)
25
+
18
26
  const loader = new EXRLoader(this.manager)
19
27
  loader.setRequestHeader(this.requestHeader)
20
28
  loader.setPath(this.path)
@@ -22,16 +30,19 @@ export class EXR3DLoader extends Loader<Data3DTexture> {
22
30
  loader.load(
23
31
  url,
24
32
  exr => {
25
- const { data, width, height } = exr.image
26
- const depth = this.depth ?? Math.sqrt(height)
27
- const texture = new Data3DTexture(data, width, height / depth, depth)
33
+ const { image } = exr
34
+ texture.image = {
35
+ data: image.data,
36
+ width: width ?? image.width,
37
+ height: height ?? image.height
38
+ }
28
39
  texture.type = exr.type
29
40
  texture.format = exr.format
30
41
  texture.colorSpace = exr.colorSpace
31
42
  texture.needsUpdate = true
32
43
 
33
44
  try {
34
- onLoad(texture)
45
+ onLoad?.(texture)
35
46
  } catch (error) {
36
47
  if (onError != null) {
37
48
  onError(error)
@@ -44,5 +55,7 @@ export class EXR3DLoader extends Loader<Data3DTexture> {
44
55
  onProgress,
45
56
  onError
46
57
  )
58
+
59
+ return texture
47
60
  }
48
61
  }
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
  }
package/src/STBNLoader.ts CHANGED
@@ -1,21 +1,36 @@
1
- import { NearestFilter, RedFormat, RepeatWrapping } from 'three'
1
+ import {
2
+ Data3DTexture,
3
+ NearestFilter,
4
+ RedFormat,
5
+ RepeatWrapping,
6
+ type LoadingManager
7
+ } from 'three'
2
8
 
3
9
  import {
4
10
  STBN_TEXTURE_DEPTH,
5
11
  STBN_TEXTURE_HEIGHT,
6
12
  STBN_TEXTURE_WIDTH
7
13
  } from './constants'
8
- import { createData3DTextureLoaderClass } from './DataLoader'
14
+ import { DataTextureLoader } from './DataTextureLoader'
9
15
  import { parseUint8Array } from './typedArrayParsers'
10
16
 
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
- })
17
+ export class STBNLoader extends DataTextureLoader<Data3DTexture> {
18
+ constructor(manager?: LoadingManager) {
19
+ super(
20
+ Data3DTexture,
21
+ parseUint8Array,
22
+ {
23
+ format: RedFormat,
24
+ minFilter: NearestFilter,
25
+ magFilter: NearestFilter,
26
+ wrapS: RepeatWrapping,
27
+ wrapT: RepeatWrapping,
28
+ wrapR: RepeatWrapping,
29
+ width: STBN_TEXTURE_WIDTH,
30
+ height: STBN_TEXTURE_HEIGHT,
31
+ depth: STBN_TEXTURE_DEPTH
32
+ },
33
+ manager
34
+ )
35
+ }
36
+ }
@@ -1,6 +1,6 @@
1
1
  import { Vector2 } from 'three'
2
2
 
3
- import { type GeodeticLike } from './Geodetic'
3
+ import type { GeodeticLike } from './Geodetic'
4
4
  import { Rectangle, type RectangleLike } from './Rectangle'
5
5
  import { TileCoordinate, type TileCoordinateLike } from './TileCoordinate'
6
6
 
@@ -1,12 +1,16 @@
1
- import { Loader } from 'three'
2
- import { type Class } from 'type-fest'
1
+ import { Loader, type LoadingManager } from 'three'
3
2
 
4
3
  import { ArrayBufferLoader } from './ArrayBufferLoader'
5
- import { type TypedArray } from './typedArray'
6
- import { type TypedArrayParser } from './typedArrayParsers'
4
+ import type { TypedArray } from './typedArray'
5
+ import type { TypedArrayParser } from './typedArrayParsers'
7
6
 
8
- export abstract class TypedArrayLoader<T extends TypedArray> extends Loader<T> {
9
- abstract parseTypedArray(buffer: ArrayBuffer): T
7
+ export class TypedArrayLoader<T extends TypedArray> extends Loader<T> {
8
+ parser: TypedArrayParser<T>
9
+
10
+ constructor(parser: TypedArrayParser<T>, manager?: LoadingManager) {
11
+ super(manager)
12
+ this.parser = parser
13
+ }
10
14
 
11
15
  override load(
12
16
  url: string,
@@ -22,7 +26,7 @@ export abstract class TypedArrayLoader<T extends TypedArray> extends Loader<T> {
22
26
  url,
23
27
  arrayBuffer => {
24
28
  try {
25
- onLoad(this.parseTypedArray(arrayBuffer))
29
+ onLoad(this.parser(arrayBuffer))
26
30
  } catch (error) {
27
31
  if (onError != null) {
28
32
  onError(error)
@@ -37,17 +41,3 @@ export abstract class TypedArrayLoader<T extends TypedArray> extends Loader<T> {
37
41
  )
38
42
  }
39
43
  }
40
-
41
- export function createTypedArrayLoaderClass<T extends TypedArray>(
42
- parser: TypedArrayParser<T>
43
- ): Class<TypedArrayLoader<T>> {
44
- return class extends TypedArrayLoader<T> {
45
- readonly parseTypedArray = parser
46
- }
47
- }
48
-
49
- export function createTypedArrayLoader<T extends TypedArray>(
50
- parser: TypedArrayParser<T>
51
- ): TypedArrayLoader<T> {
52
- return new (createTypedArrayLoaderClass(parser))()
53
- }
@@ -0,0 +1,5 @@
1
+ import type { WebGLRenderer } from 'three'
2
+
3
+ export function isFloatLinearSupported(renderer: WebGLRenderer): boolean {
4
+ return renderer.getContext().getExtension('OES_texture_float_linear') != null
5
+ }
package/src/constants.ts CHANGED
@@ -2,5 +2,6 @@ export const STBN_TEXTURE_WIDTH = 128
2
2
  export const STBN_TEXTURE_HEIGHT = 128
3
3
  export const STBN_TEXTURE_DEPTH = 64
4
4
 
5
+ // Reference to the latest assets.
5
6
  const ref = '9627216cc50057994c98a2118f3c4a23765d43b9'
6
7
  export const DEFAULT_STBN_URL = `https://media.githubusercontent.com/media/takram-design-engineering/three-geospatial/${ref}/packages/core/assets/stbn.bin`
package/src/decorators.ts CHANGED
@@ -23,7 +23,6 @@ export function define(name: string) {
23
23
  this.defines ??= {}
24
24
  this.defines[name] = '1'
25
25
  } else {
26
- // eslint-disable-next-line @typescript-eslint/no-dynamic-delete
27
26
  delete this.defines?.[name]
28
27
  }
29
28
  this.needsUpdate = true
@@ -1,4 +1,4 @@
1
- import { type Uniform } from 'three'
1
+ import type { Uniform } from 'three'
2
2
 
3
3
  // TODO: Make mutable value types (e.g. vectors, matrices) read-only.
4
4
 
package/src/index.ts CHANGED
@@ -1,13 +1,15 @@
1
1
  export * from './ArrayBufferLoader'
2
2
  export * from './assertions'
3
3
  export * from './bufferGeometry'
4
+ export * from './capabilities'
4
5
  export * from './constants'
5
- export * from './DataLoader'
6
+ export * from './DataTextureLoader'
6
7
  export * from './decorators'
7
8
  export * from './defineShorthand'
8
9
  export * from './Ellipsoid'
9
10
  export * from './EllipsoidGeometry'
10
- export * from './EXR3DLoader'
11
+ export * from './EXR3DTextureLoader'
12
+ export * from './EXRTextureLoader'
11
13
  export * from './Geodetic'
12
14
  export * from './math'
13
15
  export * from './PointOfView'
@@ -19,5 +21,5 @@ export * from './TilingScheme'
19
21
  export * from './typedArray'
20
22
  export * from './TypedArrayLoader'
21
23
  export * from './typedArrayParsers'
22
- export * from './types'
24
+ export type * from './types'
23
25
  export * from './unrollLoops'
@@ -1,6 +1,7 @@
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
- import { type SetOptional } from 'type-fest'
4
+ import type { SetOptional } from 'type-fest'
4
5
 
5
6
  import { Ellipsoid } from '../Ellipsoid'
6
7
  import { Geodetic, type GeodeticLike } from '../Geodetic'
@@ -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
+ }