InternalCreates a MeshManager.
Shared renderer context (provides access to viewer + WebGL resources).
GPU memory allocator/uploader used by batches and meshes.
Returns the mesh batches sorted by primitive type.
Handles updates to the camera's view matrix.
Forwards the update to GPUMemoryManager so camera-dependent GPU state can be updated.
InternalEnables (or disables) opt-in step-level timing inside
_addMesh. Off by default; turn on around a workload
(eg. a model load) to attribute time across the substeps
(getMeshBatch, batchAddMesh, rendererMeshCtor), then
read via getStepStats.
Retrieves a mesh batch by index in the sorted batch array.
Batch array index.
The batch if found, otherwise null.
Returns the parameters required for a WebGL drawArrays call for a mesh within a batch.
GPU memory batch index.
Mesh index within the batch.
{first, count} if available, otherwise null.
InternalReturns a snapshot of the current step-stats counters. Safe to call whether or not enableStepStats is on; values stay at the last-recorded numbers when disabled.
Initializes the manager by registering any existing SceneModels and SceneObjects already present in the viewer's scene.
SDKResult that is ok:true when initialization succeeds, or ok:false if
any object registration fails.
InternalZeroes the step-stats counters without changing the enabled flag. Call before the workload you want to attribute.
Registers a newly created SceneGeometry.
The geometry to register.
SDKResult indicating success, or ok:false if registration fails.
Unregisters a SceneGeometry.
The geometry to unregister.
SDKResult indicating success, or ok:false if unregistration fails.
Handles changes to a SceneMesh's color.
Forwards to the corresponding RendererMesh (if registered).
Handles changes to a SceneMesh's world matrix.
Forwards to the corresponding RendererMesh (if registered).
Handles changes to a SceneMesh's opacity.
Forwards to the corresponding RendererMesh (if registered).
Registers a newly created SceneModel.
The model to register.
SDKResult indicating success, or ok:false if a model with the same id
was already registered.
Unregisters a SceneModel.
The model to unregister.
SDKResult indicating success, or ok:false if the model was not registered.
Registers a newly created SceneObject.
Creates a RendererObject, expects that all its meshes are pre-registered and have corresponding RendererMesh instances.
The object to register.
SDKResult indicating success, or ok:false if:
Unregisters a SceneObject.
Destroys the RendererObject.
The object to unregister.
SDKResult indicating success, or ok:false if the object is not registered.
Connects an existing SceneMesh to an existing SceneObject.
Disconnects an existing SceneMesh from an existing SceneObject. The mesh remains cached, but is no longer rendered as part of the object. To do that, we set the mesh as having an object visibility of false for all views.
Handles changes to a ViewObject's clippable state.
Updates the per-view clippable flag on the owning
RendererObject → re-encodes the
meshViewAttributes.renderFlags.g bit on every
underlying mesh.
Handles changes to a ViewObject's colorize state.
Updates the per-view colorize flag on the owning RendererObject.
Handles changes to a ViewObject's culled state.
Updates the per-view culled flag on the owning RendererObject, which drops/restores the object's meshes in that view's GPU draw index.
Handles changes to a ViewObject's highlighted state.
Updates the per-view highlighted flag on the owning RendererObject.
Handles changes to a ViewObject's opacity override.
Updates the per-view opacity value on the owning RendererObject.
Mirrors the colorize bridge's null-or-value contract: when the
ViewObject's OPACITY_UPDATED flag is off (the caller passed
null/undefined to clear the override), forward undefined so
the renderer-side RendererMesh.setOpacityInView falls back to
the SceneMesh's effectiveOpacity and clears the per-mesh
ColoringOpacity flag — without this, a cleared override leaks
to the renderer as an explicit opacity = 1 write, forces glass
and curtain-wall meshes into the opaque bin, and produces
uniform-dark rendering for affected models.
The ViewObject.opacity getter itself can't return null because
the field has type number for backwards compatibility — so the
gating happens here, at the bridge, not in the getter.
Handles changes to a ViewObject's pickable state.
Updates the per-view pickable value on the owning RendererObject.
Handles changes to a ViewObject's selected state.
Updates the per-view selected flag on the owning RendererObject.
Handles changes to a ViewObject's visibility.
Updates the per-view visibility flag on the owning RendererObject.
Handles changes to a ViewObject's x-ray state.
Updates the per-view x-ray flag on the owning RendererObject.
Bridges scene/view state changes into GPU-ready render state for the renderer.
Remarks
MeshManageris owned by a ViewManager, which manages all Views for a single Viewer (not one ViewManager per View).Architectural Role
MeshManageris owned by the ViewManager and manages all renderer objects and meshes for all views.MeshManagerensures that changes in the scene or any view are efficiently reflected in GPU state, supporting high-performance, multi-view rendering.