@expofp/floorplan
Version:
Interactive floor plan library for expos and events
2 lines (1 loc) • 623 B
JavaScript
export function createLayerManager(o){const s=o.scene;if(!s)throw new Error("renderer: rendererService.scene is null \u2014 start RendererService before constructing renderer");const a=s.rootLayer.children,t=new Map,r=new Map;return{touchedLayers:r,resolveLayer(e){const n=t.get(e);if(n)return n;const c=a.find(l=>l.name===e);if(!c)throw new Error(`renderer: layer "${e}" not found in scene`);return t.set(e,c),c},touchLayer(e){const n=this.resolveLayer(e);return r.set(e,n),n},flush(){if(r.size!==0){for(const e of r.values())e.children=[...e.children];o.update(...r.values()),r.clear()}},destroy(){r.clear(),t.clear()}}}