/** * SceneQuery.ts * * Scene queries: frustum culling, spatial range queries, * tag/layer filtering, and visitor pattern. * * @module scene */ import { SceneNode } from './SceneNode'; export interface Frustum { position: [number, number, number]; direction: [number, number, number]; fov: number; near: number; far: number; } export type NodeVisitor = (node: SceneNode) => boolean; export declare class SceneQuery { static findByTag(root: SceneNode, tag: string): SceneNode[]; static findByLayer(root: SceneNode, layer: number): SceneNode[]; static findByName(root: SceneNode, name: string): SceneNode | null; static findInRadius(root: SceneNode, center: [number, number, number], radius: number): SceneNode[]; static frustumCull(root: SceneNode, frustum: Frustum): SceneNode[]; static visit(root: SceneNode, visitor: NodeVisitor): void; private static normalize; } //# sourceMappingURL=SceneQuery.d.ts.map