s2maps-gpu
Version:
S2 Maps GPU - An open source, high-performance, and GPU-accelerated map engine for rendering large-scale, interactive maps.
56 lines (55 loc) • 1.95 kB
TypeScript
import type { Glyph } from 'workers/process/glyph/familySource.js';
import type { ImageExtensions } from 'style/style.spec.js';
import type Session from './session.js';
import type TexturePack from './texturePack.js';
/** Metadata for an image source */
export type ImageMetadata = Record<string, Glyph>;
/** Full metadata for an image source including name */
export interface ImageSourceMetadata {
name: string;
metadata: ImageMetadata;
}
/**
* # ImageSource
*
* ## Description
* A collection of images relating to a single source
*/
export default class ImageSource {
active: boolean;
name: string;
path: string;
fileType: ImageExtensions;
metadata: ImageMetadata;
session: Session;
texturePack: TexturePack;
/**
* @param name - the name of the source
* @param path - the path to the source
* @param texturePack - the texture pack to store the glyphs/images into
* @param session - the session
* @param fileType - the file type
*/
constructor(name: string, path: string, texturePack: TexturePack, session: Session, fileType?: ImageExtensions);
/**
* Build the source
* @param _mapID - the id of the map to build for
* @returns the image metadata (we don't need to early ship this)
*/
build(_mapID: string): Promise<undefined | ImageSourceMetadata>;
/**
* Add an image to the source collection
* @param mapID - the id of the map to build for
* @param name - the name of the image
* @param path - the path to the image
* @returns the image metadata if successful
*/
addImage(mapID: string, name: string, path: string): Promise<undefined | ImageSourceMetadata>;
/**
* Fetch an image
* @param path - the path to the image or metadata
* @param mapID - the id of the map
* @returns the image or metadata
*/
_fetch<T>(path: string, mapID: string): Promise<undefined | T>;
}