@gisatcz/deckgl-geolib 1.10.1-dev.0 → 1.10.1-dev.1

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,6 +1,7 @@
1
1
  import { Tiff, TiffImage } from '@cogeotiff/core';
2
2
  import LZWDecoder from './lzw';
3
3
  import GeoImage, { GeoImageOptions } from '../geoimage/geoimage.ts';
4
+ export type Bounds = [minX: number, minY: number, maxX: number, maxY: number];
4
5
  declare class CogTiles {
5
6
  cog: Tiff;
6
7
  zoomRange: number[];
@@ -21,7 +22,7 @@ declare class CogTiles {
21
22
  getResolutionFromZoomLevel(tileSize: number, z: number): number;
22
23
  getZoomLevelFromResolution(tileSize: number, resolution: number): number;
23
24
  getLatLon(input: number[]): number[];
24
- getTile(x: number, y: number, z: number): Promise<string>;
25
+ getTile(x: number, y: number, z: number, bounds: Bounds): Promise<string>;
25
26
  getFormat(sampleFormat: number[] | number, bitsPerSample: number[] | number): any;
26
27
  getNoDataValue(tags: any): number;
27
28
  testCog(): Promise<void>;
@@ -0,0 +1,23 @@
1
+ export default class Delatin {
2
+ constructor(data: any, width: any, height?: any);
3
+ run(maxError?: number): void;
4
+ refine(): void;
5
+ getMaxError(): any;
6
+ getRMSD(): number;
7
+ heightAt(x: any, y: any): any;
8
+ _flush(): void;
9
+ _findCandidate(p0x: any, p0y: any, p1x: any, p1y: any, p2x: any, p2y: any, t: any): void;
10
+ _step(): void;
11
+ _addPoint(x: any, y: any): number;
12
+ _addTriangle(a: any, b: any, c: any, ab: any, bc: any, ca: any, e?: any): any;
13
+ _legalize(a: any): void;
14
+ _handleCollinear(pn: any, a: any): void;
15
+ _queuePush(t: any, error: any, rms: any): void;
16
+ _queuePop(): any;
17
+ _queuePopBack(): any;
18
+ _queueRemove(t: any): void;
19
+ _queueLess(i: any, j: any): boolean;
20
+ _queueSwap(i: any, j: any): void;
21
+ _queueUp(j0: any): void;
22
+ _queueDown(i0: any, n: any): boolean;
23
+ }
@@ -1,5 +1,6 @@
1
1
  import { GeoTIFFImage } from 'geotiff';
2
2
  import chroma from 'chroma-js';
3
+ export type Bounds = [minX: number, minY: number, maxX: number, maxY: number];
3
4
  export type ClampToTerrainOptions = {
4
5
  terrainDrawMode?: string;
5
6
  };
@@ -42,12 +43,60 @@ export default class GeoImage {
42
43
  width: number;
43
44
  height: number;
44
45
  rasters: any[];
45
- }, options: GeoImageOptions): Promise<string>;
46
+ bounds: Bounds;
47
+ }, options: GeoImageOptions): Promise<string | {
48
+ loaderData: {
49
+ header: {};
50
+ };
51
+ header: {
52
+ vertexCount: any;
53
+ boundingBox: any;
54
+ };
55
+ mode: number;
56
+ indices: {
57
+ value: Uint32Array;
58
+ size: number;
59
+ };
60
+ attributes: {
61
+ POSITION: {
62
+ value: Float32Array;
63
+ size: number;
64
+ };
65
+ TEXCOORD_0: {
66
+ value: Float32Array;
67
+ size: number;
68
+ };
69
+ };
70
+ }>;
46
71
  getHeightmap(input: string | {
72
+ bounds: Bounds;
47
73
  width: number;
48
74
  height: number;
49
75
  rasters: any[];
50
- }, options: GeoImageOptions): Promise<string>;
76
+ }, options: GeoImageOptions): Promise<{
77
+ loaderData: {
78
+ header: {};
79
+ };
80
+ header: {
81
+ vertexCount: any;
82
+ boundingBox: any;
83
+ };
84
+ mode: number;
85
+ indices: {
86
+ value: Uint32Array;
87
+ size: number;
88
+ };
89
+ attributes: {
90
+ POSITION: {
91
+ value: Float32Array;
92
+ size: number;
93
+ };
94
+ TEXCOORD_0: {
95
+ value: Float32Array;
96
+ size: number;
97
+ };
98
+ };
99
+ }>;
51
100
  getBitmap(input: string | {
52
101
  width: number;
53
102
  height: number;
@@ -0,0 +1,18 @@
1
+ export type EdgeIndices = {
2
+ westIndices: number[];
3
+ northIndices: number[];
4
+ eastIndices: number[];
5
+ southIndices: number[];
6
+ };
7
+ /**
8
+ * Add skirt to existing mesh
9
+ * @param {object} attributes - POSITION and TEXCOOD_0 attributes data
10
+ * @param {any} triangles - indices array of the mesh geometry
11
+ * @param skirtHeight - height of the skirt geometry
12
+ * @param outsideIndices - edge indices from quantized mesh data
13
+ * @returns - geometry data with added skirt
14
+ */
15
+ export declare function addSkirt(attributes: any, triangles: any, skirtHeight: number, outsideIndices?: EdgeIndices): {
16
+ attributes: any;
17
+ triangles: any;
18
+ };
@@ -0,0 +1,3 @@
1
+ import type { LoaderContext } from '@loaders.gl/loader-utils';
2
+ export declare const CogTerrainLoader: LoaderWithParser<any, never, any>;
3
+ export declare function parseTerrain(arrayBuffer: ArrayBuffer, options?: {}, context?: LoaderContext): Promise<void>;
@@ -0,0 +1,83 @@
1
+ import { Color, CompositeLayer, CompositeLayerProps, DefaultProps, Layer, LayersList, Material, TextureSource, UpdateParameters } from '@deck.gl/core';
2
+ import { SimpleMeshLayer } from '@deck.gl/mesh-layers';
3
+ import type { MeshAttributes } from '@loaders.gl/schema';
4
+ import { TileLayerProps, GeoBoundingBox, _TileLoadProps as TileLoadProps, _Tile2DHeader as Tile2DHeader, NonGeoBoundingBox } from '@deck.gl/geo-layers';
5
+ import { GeoImageOptions } from './geoimage/geoimage.ts';
6
+ import CogTiles from './cogtiles/cogtiles.ts';
7
+ export type Bounds = [minX: number, minY: number, maxX: number, maxY: number];
8
+ export type TileBoundingBox = NonGeoBoundingBox | GeoBoundingBox;
9
+ export type ZRange = [minZ: number, maxZ: number];
10
+ export type URLTemplate = string | string[] | null;
11
+ export declare const urlType: {
12
+ type: "object";
13
+ value: URLTemplate;
14
+ validate: (value: any, propType: any) => boolean;
15
+ equal: (value1: any, value2: any) => boolean;
16
+ };
17
+ type ElevationDecoder = {
18
+ rScaler: number;
19
+ gScaler: number;
20
+ bScaler: number;
21
+ offset: number;
22
+ };
23
+ type TerrainLoadProps = {
24
+ bounds: Bounds;
25
+ elevationData: string | null;
26
+ elevationDecoder: ElevationDecoder;
27
+ meshMaxError: number;
28
+ signal?: AbortSignal;
29
+ };
30
+ type MeshAndTexture = [MeshAttributes | null, TextureSource | null];
31
+ /** All properties supported by TerrainLayer */
32
+ export type TerrainLayerProps = _TerrainLayerProps & TileLayerProps<MeshAndTexture> & CompositeLayerProps;
33
+ /** Props added by the TerrainLayer */
34
+ type _TerrainLayerProps = {
35
+ /** Image url that encodes height data. * */
36
+ elevationData: URLTemplate;
37
+ /** Image url to use as texture. * */
38
+ texture?: URLTemplate;
39
+ /** Martini error tolerance in meters, smaller number -> more detailed mesh. * */
40
+ meshMaxError?: number;
41
+ /** Bounding box of the terrain image, [minX, minY, maxX, maxY] in world coordinates. * */
42
+ bounds?: Bounds | null;
43
+ /** Color to use if texture is unavailable. * */
44
+ color?: Color;
45
+ /** Object to decode height data, from (r, g, b) to height in meters. * */
46
+ elevationDecoder?: ElevationDecoder;
47
+ /** Whether to render the mesh in wireframe mode. * */
48
+ wireframe?: boolean;
49
+ /** Material props for lighting effect. * */
50
+ material?: Material;
51
+ /**
52
+ * @deprecated Use `loadOptions.terrain.workerUrl` instead
53
+ */
54
+ workerUrl?: string;
55
+ };
56
+ /** Render mesh surfaces from height map images. */
57
+ export default class TerrainLayer<ExtraPropsT extends {} = {}> extends CompositeLayer<ExtraPropsT & Required<_TerrainLayerProps & Required<TileLayerProps<MeshAndTexture>>>> {
58
+ static defaultProps: DefaultProps<TerrainLayerProps>;
59
+ static layerName: string;
60
+ terrainCogTiles: CogTiles;
61
+ terrainUrl: string;
62
+ minZoom: number;
63
+ maxZoom: number;
64
+ state: {
65
+ isTiled?: boolean;
66
+ terrain?: MeshAttributes;
67
+ zRange?: ZRange | null;
68
+ };
69
+ constructor(props: TerrainLayerProps & ExtraPropsT, terrainOptions: GeoImageOptions);
70
+ initializeState(context: any): Promise<void>;
71
+ init(terrainUrl: string): Promise<void>;
72
+ updateState({ props, oldProps }: UpdateParameters<this>): void;
73
+ loadTerrain({ elevationData, bounds, elevationDecoder, meshMaxError, signal, }: TerrainLoadProps): Promise<MeshAttributes> | null;
74
+ getTiledTerrainData(tile: TileLoadProps): Promise<MeshAndTexture>;
75
+ renderSubLayers(props: TileLayerProps<MeshAndTexture> & {
76
+ id: string;
77
+ data: MeshAndTexture;
78
+ tile: Tile2DHeader<MeshAndTexture>;
79
+ }): SimpleMeshLayer<any, {}>;
80
+ onViewportLoad(tiles?: Tile2DHeader<MeshAndTexture>[]): void;
81
+ renderLayers(): Layer | null | LayersList;
82
+ }
83
+ export {};