/** * SceneNode.ts * * Scene graph node: hierarchical transform, parent/child, * local+world matrices, dirty flags, tag/layer assignment. * * @module scene */ export interface Transform { position: [number, number, number]; rotation: [number, number, number]; scale: [number, number, number]; } export type Matrix4 = Float64Array; export declare class SceneNode { readonly id: string; name: string; tags: Set; layer: number; visible: boolean; private local; private worldMatrix; private dirty; private parent; private children; constructor(id: string, name?: string); setPosition(x: number, y: number, z: number): void; setRotation(x: number, y: number, z: number): void; setScale(x: number, y: number, z: number): void; getLocalTransform(): { position: { x: number; y: number; z: number; }; rotation: { x: number; y: number; z: number; }; scale: { x: number; y: number; z: number; }; }; getWorldPosition(): { x: number; y: number; z: number; }; getWorldMatrix(): Matrix4; addChild(child: SceneNode): void; removeChild(child: SceneNode): void; getParent(): SceneNode | null; getChildren(): SceneNode[]; getChildCount(): number; traverse(callback: (node: SceneNode, depth: number) => void, depth?: number): void; private markDirty; updateWorldMatrix(): void; private computeLocalMatrix; private setIdentity; private multiply; isDirty(): boolean; } //# sourceMappingURL=SceneNode.d.ts.map