ReadonlymaxCap on the number of Views the manager will create. Mirrors the
old studio.maxViews knob — drives the WebGL renderer's memory
configuration in Studio, and is enforced here as well.
ReadonlyviewsLive View records keyed by view id. Replaces studio.views.
Every existing consumer (Toolbar, panels) reads
viewManager.views[id].cameraFlight / .viewController.
Create a new View on the underlying Viewer.
When viewParams.elementId and viewParams.htmlElement are
omitted, the manager auto-creates a canvas element and either:
After the View is created, fires ViewManagerHooks.onViewCreated so Studio can layer on context menus, IBL, etc.
Destroy a View created via createView; removes its canvas if auto-created.
Fit the camera of view to the supplied AABB. The caller (Studio)
sources the AABB from its SceneCollisionIndex; the manager
doesn't depend on collision-index internals.
Move an auto-created View from its floating panel back into the
tiled flow-layout grid behind the other floating panels — the
shape a View takes when created with the default floating: false.
No-op if the View was created with an explicit elementId /
htmlElement (the manager owns no DOM for it) or is already
pinned. Idempotent.
Implementation notes: the canvas DOM node is reparented into a
fresh xkt-view-cell wrapper that also hosts the undock button.
The original floating panel is destroyed (its chrome is gone),
but its construction params live on in _panelParamsByViewId
so a follow-up unpinView can restore the same title /
storage key / starting geometry.
OptionalinsertionIndex: numberMove a pinned View out of the flow-layout grid and into a fresh floating ViewPanel, restored to the title / storage key / starting geometry the panel was originally created with. The new panel is brought to the top of the floating-panel z-stack.
No-op if the View has no manager-owned DOM, or is already floating. Idempotent.
Owns the lifecycle and DOM hosting of every View created through Studio: the
viewsregistry, the auto-layout container for tiled canvases, and the per-view ViewPanel hosting when callers passfloating: true.The pre-extraction
createViewran ~70 lines on Studio and pulled in context-menu wiring, HDR setup, CameraFlight construction, ViewController construction, and DOM hosting all at once. Splitting those concerns: the manager handles DOM + records + lifecycle, Studio handles the rest via ViewManagerHooks.onViewCreated.