Files
artcraft/frontend/apps
Tanish Manku c6c0b193eb PageScene: SceneUtils takes Deps, no Editor reference (P2)
Closes the last "subsystem holds an Editor ref" holdout. SceneUtils
now takes a SceneUtilsDeps surface (Phase 2 idiom — same shape as
SaveManagerDeps, CameraControllerDeps, SelectionBridgeDeps,
GizmoControllerDeps) instead of the full Editor.

Deps surface — 9 single-purpose getters/callbacks for the cross-
subsystem reaches the methods need:
- Gizmo lifecycle (getGizmoControl/detachGizmo/removeGizmoFromScene)
  used by removeTransformControls
- Outline pass (getOutlinePass) used by removeTransformControls
- Selection (publishSelect/clearSelected) used by deleteObject and
  removeTransformControls
- Camera name (getCameraName) used by deleteObject's ::CAM:: guard
- Selected object lookup (getSelectedObject) used by getSelectedSum
- Three scene root (getThreeScene) — provided for future use; the
  current deleteObject still goes through this.scene.scene since
  Scene is an injected primitive, not a subsystem

Editor wires deps inline at SceneUtils construction. Constructor
signature flips: was (editor, scene); now (scene, deps).

Re P2 holdouts: ViewportController already used Deps
(ViewportEngineRefs); roadmap memory was stale. PostProcessingPipeline
and GizmoController.configure only take primitives (renderer/scene/
camera/dom), no subsystem coupling — converting them to options
objects would be pure style and was deferred.
2026-05-01 04:41:22 -07:00
..
2026-03-12 21:35:29 +07:00