@takram/three-geospatial 0.2.2 → 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 (45) hide show
  1. package/CHANGELOG.md +15 -0
  2. package/build/index.cjs +1 -1
  3. package/build/index.cjs.map +1 -1
  4. package/build/index.js +1293 -1282
  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 +28 -55
  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.map +1 -1
  13. package/build/shared.js.map +1 -1
  14. package/package.json +1 -2
  15. package/src/DataTextureLoader.ts +134 -0
  16. package/src/EXR3DTextureLoader.ts +66 -0
  17. package/src/{EXR3DLoader.ts → EXRTextureLoader.ts} +25 -12
  18. package/src/STBNLoader.ts +28 -13
  19. package/src/TilingScheme.ts +1 -1
  20. package/src/TypedArrayLoader.ts +11 -21
  21. package/src/capabilities.ts +5 -0
  22. package/src/constants.ts +1 -0
  23. package/src/decorators.ts +0 -1
  24. package/src/defineShorthand.ts +1 -1
  25. package/src/index.ts +5 -3
  26. package/src/r3f/EastNorthUpFrame.tsx +2 -2
  27. package/src/r3f/EllipsoidMesh.tsx +3 -5
  28. package/src/r3f/index.ts +1 -1
  29. package/src/r3f/types.ts +1 -1
  30. package/src/typedArrayParsers.ts +1 -1
  31. package/src/types.ts +3 -1
  32. package/types/DataTextureLoader.d.ts +27 -0
  33. package/types/EXR3DTextureLoader.d.ts +11 -0
  34. package/types/EXRTextureLoader.d.ts +10 -0
  35. package/types/STBNLoader.d.ts +5 -1
  36. package/types/TypedArrayLoader.d.ts +4 -6
  37. package/types/capabilities.d.ts +2 -0
  38. package/types/index.d.ts +5 -3
  39. package/types/r3f/index.d.ts +1 -1
  40. package/types/types.d.ts +2 -1
  41. package/src/DataLoader.ts +0 -164
  42. package/src/Texture3DLoader.ts +0 -81
  43. package/types/DataLoader.d.ts +0 -29
  44. package/types/EXR3DLoader.d.ts +0 -6
  45. package/types/Texture3DLoader.d.ts +0 -4
@@ -1,81 +0,0 @@
1
- import {
2
- Data3DTexture,
3
- ImageLoader,
4
- LinearFilter,
5
- Loader,
6
- RepeatWrapping
7
- } from 'three'
8
-
9
- export class Texture3DLoader extends Loader<Data3DTexture> {
10
- override load(
11
- url: string,
12
- onLoad: (data: Data3DTexture) => void,
13
- onProgress?: (event: ProgressEvent) => void,
14
- onError?: (error: unknown) => void
15
- ): void {
16
- const loader = new ImageLoader(this.manager)
17
- loader.setRequestHeader(this.requestHeader)
18
- loader.setPath(this.path)
19
- loader.setWithCredentials(this.withCredentials)
20
- loader.load(
21
- url,
22
- image => {
23
- const canvas = document.createElement('canvas')
24
- const context = canvas.getContext('2d')
25
- if (context == null) {
26
- onError?.(new Error('Could not obtain canvas context.'))
27
- return
28
- }
29
-
30
- // Assume cubic 3D texture.
31
- const { width, height } = image
32
- const size = Math.min(width, height)
33
- canvas.width = width
34
- canvas.height = height
35
- context.drawImage(image, 0, 0)
36
- const imageData = context.getImageData(0, 0, width, height).data
37
- let data: Uint8Array
38
-
39
- if (width < height) {
40
- data = new Uint8Array(imageData.buffer)
41
- } else {
42
- data = new Uint8Array(imageData.length)
43
- const sizeSq = size ** 2
44
- for (let z = 0; z < size; ++z) {
45
- for (let y = 0; y < size; ++y) {
46
- for (let x = 0; x < size; ++x) {
47
- const src = (x + z * size + y * sizeSq) * 4
48
- const dest = (x + y * size + z * sizeSq) * 4
49
- data[dest + 0] = imageData[src + 0]
50
- data[dest + 1] = imageData[src + 1]
51
- data[dest + 2] = imageData[src + 2]
52
- data[dest + 3] = imageData[src + 3]
53
- }
54
- }
55
- }
56
- }
57
-
58
- const texture = new Data3DTexture(data, size, size, size)
59
- texture.minFilter = LinearFilter
60
- texture.magFilter = LinearFilter
61
- texture.wrapS = RepeatWrapping
62
- texture.wrapT = RepeatWrapping
63
- texture.wrapR = RepeatWrapping
64
- texture.needsUpdate = true
65
-
66
- try {
67
- onLoad(texture)
68
- } catch (error) {
69
- if (onError != null) {
70
- onError(error)
71
- } else {
72
- console.error(error)
73
- }
74
- this.manager.itemError(url)
75
- }
76
- },
77
- onProgress,
78
- onError
79
- )
80
- }
81
- }
@@ -1,29 +0,0 @@
1
- import { Data3DTexture, DataTexture, Loader } from 'three';
2
- import { Class, WritableKeysOf } from 'type-fest';
3
- import { TypedArray } from './typedArray';
4
- import { TypedArrayLoader } from './TypedArrayLoader';
5
- import { TypedArrayParser } from './typedArrayParsers';
6
- import { Callable } from './types';
7
- type ParameterProperties<T> = {
8
- [K in WritableKeysOf<T> as T[K] extends Callable ? never : K]: T[K];
9
- };
10
- export interface DataTextureParameters extends Omit<Partial<ParameterProperties<DataTexture>>, 'image'> {
11
- width?: number;
12
- height?: number;
13
- }
14
- export interface Data3DTextureParameters extends Omit<Partial<ParameterProperties<Data3DTexture>>, 'image'> {
15
- width?: number;
16
- height?: number;
17
- depth?: number;
18
- }
19
- export declare abstract class DataLoader<T extends DataTexture | Data3DTexture = DataTexture | Data3DTexture, U extends TypedArray = TypedArray> extends Loader<T> {
20
- abstract readonly Texture: Class<T>;
21
- abstract readonly TypedArrayLoader: Class<TypedArrayLoader<U>>;
22
- readonly parameters: DataTextureParameters & Data3DTextureParameters;
23
- load(url: string, onLoad: (data: T) => void, onProgress?: (event: ProgressEvent) => void, onError?: (error: unknown) => void): void;
24
- }
25
- export declare function createData3DTextureLoaderClass<T extends TypedArray>(parser: TypedArrayParser<T>, parameters?: Data3DTextureParameters): Class<DataLoader<Data3DTexture, T>>;
26
- export declare function createDataTextureLoaderClass<T extends TypedArray>(parser: TypedArrayParser<T>, parameters?: DataTextureParameters): Class<DataLoader<DataTexture, T>>;
27
- export declare function createData3DTextureLoader<T extends TypedArray>(parser: TypedArrayParser<T>, parameters?: Data3DTextureParameters): DataLoader<Data3DTexture, T>;
28
- export declare function createDataTextureLoader<T extends TypedArray>(parser: TypedArrayParser<T>, parameters?: DataTextureParameters): DataLoader<DataTexture, T>;
29
- export {};
@@ -1,6 +0,0 @@
1
- import { Data3DTexture, Loader } from 'three';
2
- export declare class EXR3DLoader extends Loader<Data3DTexture> {
3
- depth?: number;
4
- setDepth(value: number): this;
5
- load(url: string, onLoad: (data: Data3DTexture) => void, onProgress?: (event: ProgressEvent) => void, onError?: (error: unknown) => void): void;
6
- }
@@ -1,4 +0,0 @@
1
- import { Data3DTexture, Loader } from 'three';
2
- export declare class Texture3DLoader extends Loader<Data3DTexture> {
3
- load(url: string, onLoad: (data: Data3DTexture) => void, onProgress?: (event: ProgressEvent) => void, onError?: (error: unknown) => void): void;
4
- }