@takram/three-geospatial 0.0.1-alpha.4 → 0.0.1-alpha.6

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/build/index.cjs +1 -43
  2. package/build/index.cjs.map +1 -1
  3. package/build/index.js +315 -772
  4. package/build/index.js.map +1 -1
  5. package/build/shaders.cjs +276 -0
  6. package/build/shaders.cjs.map +1 -0
  7. package/build/shaders.js +286 -0
  8. package/build/shaders.js.map +1 -0
  9. package/package.json +7 -3
  10. package/src/DataLoader.ts +107 -49
  11. package/src/Texture3DLoader.ts +81 -0
  12. package/src/TypedArrayLoader.ts +25 -9
  13. package/src/bufferGeometry.ts +2 -2
  14. package/src/constants.ts +3 -0
  15. package/src/index.ts +4 -10
  16. package/src/math.ts +1 -0
  17. package/src/r3f/index.ts +1 -0
  18. package/src/r3f/types.ts +64 -0
  19. package/src/resolveIncludes.test.ts +21 -0
  20. package/src/resolveIncludes.ts +22 -0
  21. package/src/shaders/depth.glsl +3 -1
  22. package/src/shaders/generators.glsl +9 -0
  23. package/src/shaders/index.ts +17 -0
  24. package/src/shaders/math.glsl +52 -0
  25. package/src/shaders/poissonDisk.glsl +21 -0
  26. package/src/shaders/raySphereIntersection.glsl +134 -0
  27. package/src/shaders/turbo.glsl +9 -0
  28. package/src/typedArray.ts +29 -52
  29. package/src/typedArrayParsers.ts +77 -0
  30. package/src/types.ts +5 -51
  31. package/src/unrollLoops.ts +23 -0
  32. package/types/DataLoader.d.ts +30 -60
  33. package/types/Texture3DLoader.d.ts +5 -0
  34. package/types/TypedArrayLoader.d.ts +10 -10
  35. package/types/constants.d.ts +3 -0
  36. package/types/index.d.ts +4 -3
  37. package/types/math.d.ts +1 -0
  38. package/types/r3f/index.d.ts +1 -0
  39. package/types/r3f/types.d.ts +22 -0
  40. package/types/resolveIncludes.d.ts +5 -0
  41. package/types/shaders/index.d.ts +8 -0
  42. package/types/typedArray.d.ts +2 -8
  43. package/types/typedArrayParsers.d.ts +11 -0
  44. package/types/types.d.ts +5 -20
  45. package/types/unrollLoops.d.ts +1 -0
@@ -1,67 +1,37 @@
1
1
  import { Callable } from './types';
2
- import { Float32ArrayLoader, Int16ArrayLoader, Uint16ArrayLoader, TypedArrayLoader } from './TypedArrayLoader';
3
- import { Class } from 'type-fest';
4
- import { Data3DTexture, DataTexture, Loader, Texture, TypedArray } from 'three';
2
+ import { TypedArrayParser } from './typedArrayParsers';
3
+ import { TypedArrayLoader } from './TypedArrayLoader';
4
+ import { Class, WritableKeysOf } from 'type-fest';
5
+ import { Data3DTexture, DataTexture, Loader, TypedArray } from 'three';
5
6
 
6
- export interface ImageSize {
7
- width: number;
8
- height: number;
7
+ type ParameterProperties<T> = {
8
+ [K in WritableKeysOf<T> as T[K] extends Callable ? never : K]: T[K];
9
+ };
10
+ export type DataTextureParameters = Omit<Partial<ParameterProperties<DataTexture>>, 'image'> & {
11
+ width?: number;
12
+ height?: number;
13
+ };
14
+ export type Data3DTextureParameters = Omit<Partial<ParameterProperties<Data3DTexture>>, 'image'> & {
15
+ width?: number;
16
+ height?: number;
9
17
  depth?: number;
10
- }
11
- export type DataTextureParameters = Omit<Partial<{
12
- [K in keyof Texture as Texture[K] extends Callable ? never : K]: Texture[K];
13
- }>, 'image'>;
14
- export declare abstract class DataLoader<T extends DataTexture | Data3DTexture, U extends TypedArray> extends Loader<T> {
18
+ };
19
+ export declare abstract class DataLoader<T extends DataTexture | Data3DTexture = DataTexture | Data3DTexture, U extends TypedArray = TypedArray> extends Loader<T> {
15
20
  abstract readonly Texture: Class<T>;
16
21
  abstract readonly TypedArrayLoader: Class<TypedArrayLoader<U>>;
17
- readonly parameters?: DataTextureParameters;
22
+ readonly parameters: DataTextureParameters & Data3DTextureParameters;
18
23
  load(url: string, onLoad: (data: T) => void, onProgress?: (event: ProgressEvent) => void, onError?: (error: unknown) => void): void;
19
24
  }
20
- export declare class Int16Data2DLoader extends DataLoader<DataTexture, Int16Array> {
21
- readonly Texture: typeof DataTexture;
22
- readonly TypedArrayLoader: typeof Int16ArrayLoader;
23
- readonly parameters: {
24
- type: 1015;
25
- format: 1023;
26
- wrapS: 1001;
27
- wrapT: 1001;
28
- minFilter: 1006;
29
- magFilter: 1006;
30
- };
31
- }
32
- export declare class Uint16Data2DLoader extends DataLoader<DataTexture, Uint16Array> {
33
- readonly Texture: typeof DataTexture;
34
- readonly TypedArrayLoader: typeof Uint16ArrayLoader;
35
- readonly parameters: {
36
- type: 1015;
37
- format: 1023;
38
- wrapS: 1001;
39
- wrapT: 1001;
40
- minFilter: 1006;
41
- magFilter: 1006;
42
- };
43
- }
44
- export declare class Float32Data2DLoader extends DataLoader<DataTexture, Float32Array> {
45
- readonly Texture: typeof DataTexture;
46
- readonly TypedArrayLoader: typeof Float32ArrayLoader;
47
- readonly parameters: {
48
- type: 1015;
49
- format: 1023;
50
- wrapS: 1001;
51
- wrapT: 1001;
52
- minFilter: 1006;
53
- magFilter: 1006;
54
- };
55
- }
56
- export declare class Float32Data3DLoader extends DataLoader<Data3DTexture, Float32Array> {
57
- readonly Texture: typeof Data3DTexture;
58
- readonly TypedArrayLoader: typeof Float32ArrayLoader;
59
- readonly parameters: {
60
- type: 1015;
61
- format: 1023;
62
- wrapS: 1001;
63
- wrapT: 1001;
64
- minFilter: 1006;
65
- magFilter: 1006;
66
- };
67
- }
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
+ /** @deprecated Use createDataTextureLoaderClass instead. */
30
+ export declare const Int16Data2DLoader: Class<DataLoader<DataTexture, Int16Array<ArrayBufferLike>>>;
31
+ /** @deprecated Use createDataTextureLoaderClass instead. */
32
+ export declare const Uint16Data2DLoader: Class<DataLoader<DataTexture, Uint16Array<ArrayBufferLike>>>;
33
+ /** @deprecated Use createDataTextureLoaderClass instead. */
34
+ export declare const Float32Data2DLoader: Class<DataLoader<DataTexture, Float32Array<ArrayBufferLike>>>;
35
+ /** @deprecated Use createData3DTextureLoaderClass instead. */
36
+ export declare const Float32Data3DLoader: Class<DataLoader<Data3DTexture, Float32Array<ArrayBufferLike>>>;
37
+ export {};
@@ -0,0 +1,5 @@
1
+ import { Data3DTexture, Loader } from 'three';
2
+
3
+ export declare class Texture3DLoader extends Loader<Data3DTexture> {
4
+ load(url: string, onLoad: (data: Data3DTexture) => void, onProgress?: (event: ProgressEvent) => void, onError?: (error: unknown) => void): void;
5
+ }
@@ -1,16 +1,16 @@
1
- import { parseFloat32Array, parseInt16Array, parseUint16Array } from './typedArray';
1
+ import { TypedArrayParser } from './typedArrayParsers';
2
+ import { Class } from 'type-fest';
2
3
  import { Loader, TypedArray } from 'three';
3
4
 
4
5
  export declare abstract class TypedArrayLoader<T extends TypedArray> extends Loader<T> {
5
6
  abstract parseTypedArray(buffer: ArrayBuffer): T;
6
7
  load(url: string, onLoad: (data: T) => void, onProgress?: (event: ProgressEvent) => void, onError?: (error: unknown) => void): void;
7
8
  }
8
- export declare class Int16ArrayLoader extends TypedArrayLoader<Int16Array> {
9
- readonly parseTypedArray: typeof parseInt16Array;
10
- }
11
- export declare class Uint16ArrayLoader extends TypedArrayLoader<Uint16Array> {
12
- readonly parseTypedArray: typeof parseUint16Array;
13
- }
14
- export declare class Float32ArrayLoader extends TypedArrayLoader<Float32Array> {
15
- readonly parseTypedArray: typeof parseFloat32Array;
16
- }
9
+ export declare function createTypedArrayLoaderClass<T extends TypedArray>(parser: TypedArrayParser<T>): Class<TypedArrayLoader<T>>;
10
+ export declare function createTypedArrayLoader<T extends TypedArray>(parser: TypedArrayParser<T>): TypedArrayLoader<T>;
11
+ /** @deprecated Use createTypedArrayLoaderClass instead. */
12
+ export declare const Int16ArrayLoader: Class<TypedArrayLoader<Int16Array<ArrayBufferLike>>>;
13
+ /** @deprecated Use createTypedArrayLoaderClass instead. */
14
+ export declare const Uint16ArrayLoader: Class<TypedArrayLoader<Uint16Array<ArrayBufferLike>>>;
15
+ /** @deprecated Use createTypedArrayLoaderClass instead. */
16
+ export declare const Float32ArrayLoader: Class<TypedArrayLoader<Float32Array<ArrayBufferLike>>>;
@@ -0,0 +1,3 @@
1
+ export declare const STBN_TEXTURE_WIDTH = 128;
2
+ export declare const STBN_TEXTURE_HEIGHT = 128;
3
+ export declare const STBN_TEXTURE_DEPTH = 64;
package/types/index.d.ts CHANGED
@@ -1,9 +1,7 @@
1
- export declare const depthShader: string;
2
- export declare const packingShader: string;
3
- export declare const transformShader: string;
4
1
  export * from './ArrayBufferLoader';
5
2
  export * from './assertions';
6
3
  export * from './bufferGeometry';
4
+ export * from './constants';
7
5
  export * from './DataLoader';
8
6
  export * from './Ellipsoid';
9
7
  export * from './EllipsoidGeometry';
@@ -11,8 +9,11 @@ export * from './Geodetic';
11
9
  export * from './math';
12
10
  export * from './PointOfView';
13
11
  export * from './Rectangle';
12
+ export * from './resolveIncludes';
14
13
  export * from './TileCoordinate';
15
14
  export * from './TilingScheme';
16
15
  export * from './typedArray';
17
16
  export * from './TypedArrayLoader';
17
+ export * from './typedArrayParsers';
18
18
  export * from './types';
19
+ export * from './unrollLoops';
package/types/math.d.ts CHANGED
@@ -8,6 +8,7 @@ export declare const isPowerOfTwo: typeof import('three/src/math/MathUtils.js').
8
8
  export declare const ceilPowerOfTwo: typeof import('three/src/math/MathUtils.js').ceilPowerOfTwo;
9
9
  export declare const floorPowerOfTwo: typeof import('three/src/math/MathUtils.js').floorPowerOfTwo;
10
10
  export declare const normalize: typeof import('three/src/math/MathUtils.js').normalize;
11
+ export declare const remap: typeof import('three/src/math/MathUtils.js').mapLinear;
11
12
  export declare function smoothstep(min: number, max: number, x: number): number;
12
13
  export declare function saturate(x: number): number;
13
14
  export declare function closeTo(a: number, b: number, relativeEpsilon: number, absoluteEpsilon?: number): boolean;
@@ -1,2 +1,3 @@
1
1
  export * from './EastNorthUpFrame';
2
2
  export * from './EllipsoidMesh';
3
+ export * from './types';
@@ -0,0 +1,22 @@
1
+ import { Callable } from '../types';
2
+ import { WritableKeysOf } from 'type-fest';
3
+ import { Vector2 as Vector2Impl, Vector3 as Vector3Impl, Vector4 as Vector4Impl } from 'three';
4
+ import { Color, ExtendedColors, NodeProps, Overwrite, Vector2, Vector3, Vector4 } from '@react-three/fiber';
5
+
6
+ export type ExtendedVectors<T> = {
7
+ [K in keyof T]: Vector2Impl extends T[K] ? Vector2 | T[K] : Vector3Impl extends T[K] ? Vector3 | T[K] : Vector4Impl extends T[K] ? Vector4 | T[K] : T[K];
8
+ };
9
+ export type ExtendedProps<T> = ExtendedColors<ExtendedVectors<T>>;
10
+ type NonFunctionKeys<T> = keyof {
11
+ [K in keyof T as Callable extends T[K] ? never : K]: any;
12
+ };
13
+ type WritableNonExtendableKeysOf<T> = WritableKeysOf<T> | keyof {
14
+ [K in keyof T as Vector2Impl extends T[K] ? K : Vector3Impl extends T[K] ? K : Vector4Impl extends T[K] ? K : Color extends T[K] ? K : never]: any;
15
+ };
16
+ export type PassThoughInstanceProps<RefType, Args extends readonly any[], Props> = Overwrite<ExtendedProps<{
17
+ [K in NonFunctionKeys<Props> as K extends WritableNonExtendableKeysOf<Props> ? K : never]: Props[K];
18
+ }>, NodeProps<RefType, Args>>;
19
+ export type ExpandNestedProps<T, Prop extends keyof T & string> = {
20
+ [K in keyof T[Prop] as K extends string ? `${Prop}-${K}` : never]: T[Prop][K];
21
+ };
22
+ export {};
@@ -0,0 +1,5 @@
1
+ interface Includes {
2
+ [key: string]: string | Includes;
3
+ }
4
+ export declare function resolveIncludes(source: string, includes: Includes): string;
5
+ export {};
@@ -0,0 +1,8 @@
1
+ export declare const depth: string;
2
+ export declare const generators: string;
3
+ export declare const math: string;
4
+ export declare const packing: string;
5
+ export declare const poissonDisk: string;
6
+ export declare const raySphereIntersection: string;
7
+ export declare const transform: string;
8
+ export declare const turbo: string;
@@ -1,10 +1,4 @@
1
1
  export type TypedArray = Int8Array | Uint8Array | Uint8ClampedArray | Int16Array | Uint16Array | Int32Array | Uint32Array | Float32Array | Float64Array;
2
2
  export type TypedArrayConstructor = Int8ArrayConstructor | Uint8ArrayConstructor | Uint8ClampedArrayConstructor | Int16ArrayConstructor | Uint16ArrayConstructor | Int32ArrayConstructor | Uint32ArrayConstructor | Float32ArrayConstructor | Float64ArrayConstructor;
3
- type GetValue = keyof {
4
- [K in keyof DataView as DataView[K] extends (byteOffset: number) => number ? K : never]: DataView[K];
5
- };
6
- export declare function parseTypedArray<T extends TypedArrayConstructor, K extends GetValue>(buffer: ArrayBuffer, TypedArray: T, getValue: K, littleEndian?: boolean): InstanceType<T>;
7
- export declare function parseInt16Array(buffer: ArrayBuffer, littleEndian?: boolean): Int16Array;
8
- export declare function parseUint16Array(buffer: ArrayBuffer, littleEndian?: boolean): Uint16Array;
9
- export declare function parseFloat32Array(buffer: ArrayBuffer, littleEndian?: boolean): Float32Array;
10
- export {};
3
+ export type TypedArrayElementType = 'int8' | 'uint8' | 'int16' | 'uint16' | 'int32' | 'uint32' | 'float32' | 'float64';
4
+ export declare function getTypedArrayElementType(array: TypedArray): TypedArrayElementType;
@@ -0,0 +1,11 @@
1
+ import { TypedArray } from './typedArray';
2
+
3
+ export type TypedArrayParser<T extends TypedArray> = (buffer: ArrayBuffer, littleEndian?: boolean) => T;
4
+ export declare const parseUint8Array: TypedArrayParser<Uint8Array>;
5
+ export declare const parseInt8Array: TypedArrayParser<Int8Array>;
6
+ export declare const parseUint16Array: TypedArrayParser<Uint16Array>;
7
+ export declare const parseInt16Array: TypedArrayParser<Int16Array>;
8
+ export declare const parseInt32Array: TypedArrayParser<Int32Array>;
9
+ export declare const parseUint32Array: TypedArrayParser<Uint32Array>;
10
+ export declare const parseFloat32Array: TypedArrayParser<Float32Array>;
11
+ export declare const parseFloat64Array: TypedArrayParser<Float64Array>;
package/types/types.d.ts CHANGED
@@ -1,22 +1,7 @@
1
- import { ReadonlyTuple } from 'type-fest';
2
- import { Matrix2, Matrix3, Matrix4, Vector2, Vector3, Vector4 } from 'three';
1
+ import { Uniform } from 'three';
3
2
 
4
3
  export type Callable = (...args: any) => any;
5
- export type ReadonlyTuple2<T = number> = ReadonlyTuple<T, 2>;
6
- export type ReadonlyTuple3<T = number> = ReadonlyTuple<T, 3>;
7
- export type ReadonlyTuple4<T = number> = ReadonlyTuple<T, 4>;
8
- type BuildTupleHelper<Element, Length extends number, Rest extends Element[]> = Rest['length'] extends Length ? [...Rest] : BuildTupleHelper<Element, Length, [Element, ...Rest]>;
9
- export type Tuple<T, Length extends number> = number extends Length ? readonly T[] : BuildTupleHelper<T, Length, []>;
10
- export type Tuple2<T = number> = BuildTupleHelper<T, 2, []>;
11
- export type Tuple3<T = number> = BuildTupleHelper<T, 3, []>;
12
- export type Tuple4<T = number> = BuildTupleHelper<T, 4, []>;
13
- type ReadonlyThreeInstance<T> = Readonly<{
14
- [K in keyof T as T[K] extends Callable ? ReturnType<T[K]> extends T ? K extends 'clone' ? K : never : K : K]: T[K];
15
- }>;
16
- export type ReadonlyVector2 = ReadonlyThreeInstance<Vector2>;
17
- export type ReadonlyVector3 = ReadonlyThreeInstance<Vector3>;
18
- export type ReadonlyVector4 = ReadonlyThreeInstance<Vector4>;
19
- export type ReadonlyMatrix2 = ReadonlyThreeInstance<Matrix2>;
20
- export type ReadonlyMatrix3 = ReadonlyThreeInstance<Matrix3>;
21
- export type ReadonlyMatrix4 = ReadonlyThreeInstance<Matrix4>;
22
- export {};
4
+ export type UniformMap<T> = Omit<Map<string, Uniform>, 'get'> & {
5
+ get: <K extends keyof T>(key: K) => T[K];
6
+ set: <K extends keyof T>(key: K, value: T[K]) => void;
7
+ };
@@ -0,0 +1 @@
1
+ export declare function unrollLoops(string: string): string;