UNPKG

@mousepox/math

Version:

Math-related objects and utilities

35 lines (34 loc) 1.37 kB
import { IPoint } from "./core"; import { Vector2 } from "./Vector2"; export interface IGridRaycastResult { distance: number; side: number; value: number | undefined; } export declare type GridForEach = (value: number, x: number, y: number) => void; export declare class Grid { static fromStrings(rows: string[], map: string): Grid; width: number; height: number; cells: number[]; private readonly center; constructor(width?: number, height?: number); resize(width: number, height: number): void; fill(value: number): void; valid(x: number, y: number): boolean; get(x: number, y: number): number; getAdjacentFlags(x: number, y: number): number; set(x: number, y: number, value: number): void; setIndex(index: number, value: number): void; copy(grid: Grid): void; forEach(handler: GridForEach): void; forEachInArea(x: number, y: number, width: number, height: number, handler: GridForEach): void; forEachAdjacent(x: number, y: number, handler: GridForEach): void; rotate(rotations?: number): void; rotatePoint(p: IPoint, angle: number): void; paste(grid: Grid, x: number, y: number): void; raycast(origin: IPoint, direction: Vector2, result?: IGridRaycastResult): IGridRaycastResult; xyToIndex(x: number, y: number): number; private indexToX; private indexToY; }