@voxel-3d/docs
    Preparing search index...

    Class SceneGraphManager

    SceneGraph 관리자

    Three.js Scene의 오브젝트를 논리적 트리로 구조화하여 관리합니다. 실제 Scene 구조는 변경하지 않고, 가상 트리(virtual tree)로 오브젝트를 분류합니다.

    • Settings 그룹: Grid, Axes, Lights, Camera
    • Models 그룹: 로드된 모델 계층 구조
    • Clipping 그룹: ClippingPlane, Edge Highlighting (동적 생성)
    • Measurements 그룹: 측정 결과 (동적 생성)

    Implements

    Index

    Accessors

    Constructors

    Methods

    • Object3D로 노드 조회

      Parameters

      • object: Object3D

        Three.js Object3D

      Returns SceneNode | null

      직접 등록된 노드를 먼저 찾고, 없으면 부모를 타고 올라가면서 등록된 노드를 찾습니다. 이는 JSON import 방식에서 leaf 노드의 자식 mesh들이 개별 등록되지 않는 경우를 처리합니다.

    • 노드가 속한 모델 루트 노드 조회

      Parameters

      • nodeId: string

        노드 ID

      Returns SceneNode | null

      모델 루트 노드 또는 null

      models 그룹의 직접 자식 노드(모델 루트)를 찾아 반환합니다. 부모를 타고 올라가면서 models 그룹 루트의 직접 자식을 찾습니다.

    • 노드 등록 해제 (삭제하지 않고 SceneGraph에서만 제거)

      Parameters

      • nodeId: string

        노드 ID

      Returns void

    • 노드 체크 상태 설정 (visibility)

      Parameters

      • nodeId: string

        노드 ID

      • checked: boolean

        체크 상태

      Returns void

    • 전체 노드 visible

      Returns void

    • 전체 노드 hidden

      Returns void

    • Sets the visibility sink mirrored on every checked-state sync (null clears). 체크 상태 동기화 시마다 호출될 가시성 싱크를 설정합니다 (null이면 해제).

      Parameters

      • sink: NodeVisibilitySink | null

        Sink invoked with each synced node id and its checked state, or null 동기화된 노드 id와 체크 상태로 호출될 싱크, null이면 해제

      Returns void

      Mirrors visibility onto render paths that do not follow Object3D.visible (e.g. BatchedMesh instances). The sink is called synchronously from setNodeChecked / showAll / hideAll for every synced node. Object3D.visible을 따르지 않는 렌더 경로(예: BatchedMesh 인스턴스)에 가시성을 반영합니다. setNodeChecked / showAll / hideAll에서 동기화되는 모든 노드에 대해 동기 호출됩니다.

    • 노드 선택 상태 설정

      Parameters

      • nodeId: string

        노드 ID

      • selected: boolean

        선택 상태

      • multiSelect: boolean = false

        다중 선택 여부 (기본: false)

      Returns void

    • 전체 선택 해제

      Returns void

    • 노드 확장 상태 설정

      Parameters

      • nodeId: string

        노드 ID

      • expanded: boolean

        확장 상태

      Returns void

    • 전체 확장

      Returns void

    • 특정 노드까지 부모 노드들을 모두 확장

      Parameters

      • nodeId: string

        대상 노드 ID

      Returns void

    • 노드 삭제 (Scene에서도 제거)

      Parameters

      • nodeId: string

        노드 ID

      Returns void

    • 노드 상태 일괄 복원 (스냅샷용)

      부모→자식 전파 없이 각 노드의 상태를 직접 설정합니다. Object3D.visible도 동기화합니다.

      Parameters

      • states: Map<string, Partial<NodeState>>

        nodeId → Partial 매핑

      Returns void

    • 노드에 로드된 Object3D 연결

      Parameters

      • nodeId: string

        노드 ID

      • object: Object3D

        로드된 Object3D

      • addToScene: boolean = true

      Returns void

    • 트리 구조를 콘솔에 출력 (디버그용)

      Returns void

    • 리소스 정리

      Returns void