UNPKG

@spearwolf/twopoint5d

Version:

Create 2.5D realtime graphics and pixelart with WebGL and three.js

52 lines 1.83 kB
import type { Matrix4, Object3D, Vector2, Vector3 } from 'three/webgpu'; import type { AABB2 } from './AABB2.js'; import type { Map2DTileCoordsUtil } from './Map2DTileCoordsUtil.js'; export interface IMap2DRenderableArea { aabb: AABB2; } export interface IMap2DTileDataProvider { getTileIdAt(col: number, row: number): number; getTileIdsWithin(left: number, top: number, width: number, height: number, target?: Uint32Array): Uint32Array; } export interface IMap2DTileCoords { id: string; x: number; y: number; view: AABB2; } export interface IMapTileFactory<T = unknown> { addToNode(node: Object3D): void; removeFromNode(node: Object3D): void; createTile(tileCoords: IMap2DTileCoords): T | undefined; updateTile(tile: T, tileCoords: IMap2DTileCoords): void; destroyTile(tile: T): void; update(): void; } export interface IMap2DTileRenderer { node: Object3D; beginUpdatingTiles(position: Vector3): void; addTile(tileCoords: IMap2DTileCoords): void; reuseTile(tileCoords: IMap2DTileCoords): void; removeTile(tileCoords: IMap2DTileCoords): void; endUpdatingTiles(): void; clearTiles(): void; dispose(): void; } export interface IMap2DVisibleTiles { tiles: IMap2DTileCoords[]; offset?: Vector2; translate?: Vector3; removeTiles?: IMap2DTileCoords[]; reuseTiles?: IMap2DTileCoords[]; createTiles?: IMap2DTileCoords[]; } export interface IMap2DVisibilitor { computeVisibleTiles(previousTiles: IMap2DTileCoords[], centerPoint: [number, number], tileCoords: Map2DTileCoordsUtil, matrixWorld: Matrix4): IMap2DVisibleTiles | undefined; } export interface IMap2DVisibilitorHelpers { add(scene: Object3D): void; remove(scene: Object3D): void; update(): void; show: boolean; } //# sourceMappingURL=types.d.ts.map