@expofp/floorplan
Version:
Interactive floor plan library for expos and events
27 lines • 1.17 kB
TypeScript
import type { LayerDef } from "@expofp/renderer";
import type { RendererService } from "../../renderer";
/**
* Manages scene layer resolution, caching, dirty-tracking, and flush.
*
* Layers are resolved by name from `scene.rootLayer.children` and cached.
* `touchLayer` marks a layer as dirty; `flush` commits all dirty layers
* to `RendererService` in a single update call.
*/
export interface LayerManager {
/** Layers modified since the last {@link flush}. */
readonly touchedLayers: Map<string, LayerDef>;
/** Resolve a layer by name (cached). Throws if not found. */
resolveLayer(name: string): LayerDef;
/** Resolve a layer and mark it as dirty for the next {@link flush}. */
touchLayer(name: string): LayerDef;
/** Commit all dirty layers to `RendererService` and clear the dirty set. */
flush(): void;
/** Clear caches and dirty set. */
destroy(): void;
}
/**
* Create a {@link LayerManager} bound to the given `RendererService`.
* Throws if `rendererService.scene` is null.
*/
export declare function createLayerManager(rendererService: RendererService): LayerManager;
//# sourceMappingURL=layerManager.d.ts.map