UNPKG

@rickosborne/hexgrid

Version:

Rick Osborne's collection of hexagonal grid-related code.

155 lines 4.17 kB
import type { Cube } from "./hex-system.js"; import type { BareQRSPoint, QRSPoint } from "./qrs.js"; /** * Cube points store the `s` value explicitly, instead of calculating it. */ export interface BareHexCubePoint extends BareQRSPoint { /** * Bottom right (negative) to top left (positive). */ s: number; } export interface HexCubePoint extends QRSPoint<Cube>, BareHexCubePoint { } export declare const CUBE_FLAT_SE: Readonly<{ readonly q: 1; readonly r: 0; readonly s: -1; readonly system: "cube"; }>; export declare const CUBE_FLAT_N: Readonly<{ readonly q: 0; readonly r: -1; readonly s: 1; readonly system: "cube"; }>; export declare const CUBE_FLAT_NW: Readonly<{ readonly q: -1; readonly r: 0; readonly s: 1; readonly system: "cube"; }>; export declare const CUBE_FLAT_S: Readonly<{ readonly q: 0; readonly r: 1; readonly s: -1; readonly system: "cube"; }>; export declare const CUBE_NE: Readonly<{ readonly q: 1; readonly r: -1; readonly s: 0; readonly system: "cube"; }>; export declare const CUBE_SW: Readonly<{ readonly q: -1; readonly r: 1; readonly s: 0; readonly system: "cube"; }>; export declare const CUBE_POINTY_E: Readonly<{ readonly q: 1; readonly r: 0; readonly s: -1; readonly system: "cube"; }>; export declare const CUBE_POINTY_NW: Readonly<{ readonly q: 0; readonly r: -1; readonly s: 1; readonly system: "cube"; }>; export declare const CUBE_POINTY_W: Readonly<{ readonly q: -1; readonly r: 0; readonly s: 1; readonly system: "cube"; }>; export declare const CUBE_POINTY_SE: Readonly<{ readonly q: 0; readonly r: 1; readonly s: -1; readonly system: "cube"; }>; export type HexCubeDirection = typeof CUBE_POINTY_E | typeof CUBE_NE | typeof CUBE_POINTY_NW | typeof CUBE_POINTY_W | typeof CUBE_SW | typeof CUBE_POINTY_SE; export declare const HEX_CUBE_DIRECTIONS: Readonly<HexCubeDirection[]>; export declare const stringifyCube: ({ q, r, s }: BareHexCubePoint) => string; /** * Build a branded Cube point from `q` and `r` coordinates. */ export declare const cubeFromQR: (q: number, r: number) => HexCubePoint; export type CubeTuple = [q: number, r: number, s: number]; export declare const CUBE_DIAG_FLAT_E: Readonly<{ readonly q: 2; readonly r: -1; readonly s: 1; readonly system: "cube"; }>; export declare const CUBE_DIAG_FLAT_SW: Readonly<{ readonly q: -1; readonly r: 2; readonly s: -1; readonly system: "cube"; }>; export declare const CUBE_DIAG_FLAT_W: Readonly<{ readonly q: -2; readonly r: 1; readonly s: 1; readonly system: "cube"; }>; export declare const CUBE_DIAG_FLAT_NE: Readonly<{ readonly q: 1; readonly r: -2; readonly s: 1; readonly system: "cube"; }>; export declare const CUBE_DIAG_SE: Readonly<{ readonly q: 1; readonly r: 1; readonly s: -2; readonly system: "cube"; }>; export declare const CUBE_DIAG_NW: Readonly<{ readonly q: -1; readonly r: -1; readonly s: 2; readonly system: "cube"; }>; export declare const CUBE_DIAG_POINTY_N: Readonly<{ readonly q: 1; readonly r: -2; readonly s: 1; readonly system: "cube"; }>; export declare const CUBE_DIAG_POINTY_NE: Readonly<{ readonly q: 2; readonly r: -1; readonly s: 1; readonly system: "cube"; }>; export declare const CUBE_DIAG_POINTY_S: Readonly<{ readonly q: -1; readonly r: 2; readonly s: -1; readonly system: "cube"; }>; export declare const CUBE_DIAG_POINTY_SW: Readonly<{ readonly q: -2; readonly r: 1; readonly s: 1; readonly system: "cube"; }>; export type CubeDiagDirection = typeof CUBE_DIAG_SE | typeof CUBE_DIAG_NW | typeof CUBE_DIAG_POINTY_N | typeof CUBE_DIAG_POINTY_NE | typeof CUBE_DIAG_POINTY_S | typeof CUBE_DIAG_POINTY_SW; export declare const CUBE_ORIGIN: Readonly<{ readonly q: 0; readonly r: 0; readonly s: 0; readonly system: "cube"; }>; export declare const CUBE_EPSILON: Readonly<{ q: number; r: number; s: number; system: "cube"; }>; //# sourceMappingURL=cube.d.ts.map