/** * Shared types + lookup helpers for the hex-mesh modules. * * Kept as a small leaf module so every hex-mesh builder can depend on it * without pulling the full `useHexasphereMesh` stack. */ import * as THREE from 'three'; import type { Tile } from '../../geometry/hexasphere.types'; import type { TerrainLevel } from '../types/terrain.types'; /** Subset of tile geometry metadata exposed to external overlay renderers. */ export interface TileGeometryInfo { tile: Tile; level: TerrainLevel; } /** Listener notified when the hovered tile id changes. Null = no tile. */ export type HoverListener = (tileId: number | null) => void; /** Shadow cast by an orbiting child onto this planet's surface. */ export type ShadowUniforms = { pos: { value: THREE.Vector3; }; radius: { value: number; }; }; /** Parent body occluding sunlight from reaching this surface. */ export type OccluderUniforms = { pos: { value: THREE.Vector3; }; radius: { value: number; }; }; /** Returns the TerrainLevel matching the given elevation in a sorted palette. */ export declare function getTileLevel(elevation: number, levels: TerrainLevel[]): TerrainLevel; /** Sugar: `new THREE.Vector3(x, y, z)` — scratch builder for per-tile geometry. */ export declare function v(x: number, y: number, z: number): THREE.Vector3; /** Pushes the `(x, y, z)` components of a vector into a flat number buffer. */ export declare function pushVec(arr: number[], vec: THREE.Vector3): void; //# sourceMappingURL=hexMeshShared.d.ts.map