@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.
- package/CHANGELOG.md +15 -0
- package/build/index.cjs +1 -1
- package/build/index.cjs.map +1 -1
- package/build/index.js +1293 -1282
- package/build/index.js.map +1 -1
- package/build/r3f.cjs +1 -1
- package/build/r3f.cjs.map +1 -1
- package/build/r3f.js +28 -55
- package/build/r3f.js.map +1 -1
- package/build/shaders.cjs.map +1 -1
- package/build/shaders.js.map +1 -1
- package/build/shared.cjs.map +1 -1
- package/build/shared.js.map +1 -1
- package/package.json +1 -2
- package/src/DataTextureLoader.ts +134 -0
- package/src/EXR3DTextureLoader.ts +66 -0
- package/src/{EXR3DLoader.ts → EXRTextureLoader.ts} +25 -12
- package/src/STBNLoader.ts +28 -13
- package/src/TilingScheme.ts +1 -1
- package/src/TypedArrayLoader.ts +11 -21
- package/src/capabilities.ts +5 -0
- package/src/constants.ts +1 -0
- package/src/decorators.ts +0 -1
- package/src/defineShorthand.ts +1 -1
- package/src/index.ts +5 -3
- package/src/r3f/EastNorthUpFrame.tsx +2 -2
- package/src/r3f/EllipsoidMesh.tsx +3 -5
- package/src/r3f/index.ts +1 -1
- package/src/r3f/types.ts +1 -1
- package/src/typedArrayParsers.ts +1 -1
- package/src/types.ts +3 -1
- package/types/DataTextureLoader.d.ts +27 -0
- package/types/EXR3DTextureLoader.d.ts +11 -0
- package/types/EXRTextureLoader.d.ts +10 -0
- package/types/STBNLoader.d.ts +5 -1
- package/types/TypedArrayLoader.d.ts +4 -6
- package/types/capabilities.d.ts +2 -0
- package/types/index.d.ts +5 -3
- package/types/r3f/index.d.ts +1 -1
- package/types/types.d.ts +2 -1
- package/src/DataLoader.ts +0 -164
- package/src/Texture3DLoader.ts +0 -81
- package/types/DataLoader.d.ts +0 -29
- package/types/EXR3DLoader.d.ts +0 -6
- package/types/Texture3DLoader.d.ts +0 -4
package/src/Texture3DLoader.ts
DELETED
@@ -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
|
-
}
|
package/types/DataLoader.d.ts
DELETED
@@ -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 {};
|
package/types/EXR3DLoader.d.ts
DELETED
@@ -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
|
-
}
|