Skip to content

Commit 7ce9005

Browse files
committed
Add type
1 parent 5a06ef4 commit 7ce9005

File tree

3 files changed

+12
-5
lines changed

3 files changed

+12
-5
lines changed

packages/geoview-core/src/api/config/validation-classes/raster-validation-classes/geotiff-layer-entry-config.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import { CONST_LAYER_ENTRY_TYPES, CONST_LAYER_TYPES } from '@/api/types/layer-sc
88
import type { AbstractBaseLayerEntryConfigProps } from '@/api/config/validation-classes/abstract-base-layer-entry-config';
99
import { AbstractBaseLayerEntryConfig } from '@/api/config/validation-classes/abstract-base-layer-entry-config';
1010
import type { TypeGeoTIFFLayerConfig } from '@/geo/layer/geoview-layers/raster/geotiff';
11+
import type { RGBA } from '@/core/utils/utilities';
1112

1213
export interface GeoTIFFLayerEntryConfigProps extends AbstractBaseLayerEntryConfigProps {
1314
/** Source settings to apply to the GeoView layer source at creation time. */
@@ -19,7 +20,7 @@ export interface GeoTIFFLayerEntryConfigProps extends AbstractBaseLayerEntryConf
1920
*/
2021
export class GeoTIFFLayerEntryConfig extends AbstractBaseLayerEntryConfig {
2122
/** Embedded RGBA color palette extracted from the GeoTIFF file, if present. */
22-
embeddedColorMap: [number, number, number, number][] | undefined;
23+
embeddedColorMap: RGBA[] | undefined;
2324

2425
/**
2526
* The class constructor.

packages/geoview-core/src/core/utils/utilities.ts

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,11 @@ interface PingResult {
2929
error?: string;
3030
}
3131

32+
/**
33+
* Represents RGBA color as [Red, Green, Blue, Alpha]
34+
*/
35+
export type RGBA = [r: number, g: number, b: number, a: number];
36+
3237
/**
3338
* Generates an array of numbers from `start` (inclusive) to `end` (exclusive),
3439
* incrementing by `step`.
@@ -528,9 +533,9 @@ export async function validateAndPingUrl(
528533
* Each color is normalized to 8-bit values.
529534
*
530535
* @param url - URL to the GeoTIFF file.
531-
* @returns Array of [R, G, B, A] color tuples, or undefined if no palette.
536+
* @returns Array of RGBA color tuples, or undefined if no palette.
532537
*/
533-
export async function extractGeotiffColorMap(url: string): Promise<[number, number, number, number][] | undefined> {
538+
export async function extractGeotiffColorMap(url: string): Promise<RGBA[] | undefined> {
534539
const tiff = await fromUrl(url);
535540
const image = await tiff.getImage();
536541

@@ -542,7 +547,7 @@ export async function extractGeotiffColorMap(url: string): Promise<[number, numb
542547
}
543548

544549
const size = colorMap.length / 3;
545-
const palette: [number, number, number, number][] = [];
550+
const palette: RGBA[] = [];
546551

547552
for (let i = 0; i < size; i++) {
548553
// Use Math.floor(colorMap[i] / 256) instead of bitwise shift for clarity and to avoid unexpected behavior with large numbers

packages/geoview-core/src/geo/layer/gv-layers/tile/gv-geotiff.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ import { type TypeLegend } from '@/index';
1111
import { CONST_LAYER_TYPES } from '@/api/types/layer-schema-types';
1212
import { logger } from '@/core/utils/logger';
1313
import { Fetch } from '@/core/utils/fetch-helper';
14+
import type { RGBA } from '@/core/utils/utilities';
1415

1516
/**
1617
* Manages a GeoTIFF layer.
@@ -51,7 +52,7 @@ export class GVGeoTIFF extends AbstractGVTile {
5152
*
5253
* @param palette - Array of RGBA color tuples from the GeoTIFF color map.
5354
*/
54-
#applyColorMapStyle(palette: [number, number, number, number][]): void {
55+
#applyColorMapStyle(palette: RGBA[]): void {
5556
// Make nodata index (0) fully transparent
5657
const adjustedPalette = [...palette];
5758
adjustedPalette[0] = [0, 0, 0, 0];

0 commit comments

Comments
 (0)