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

    Interface ISceneGraphManager

    SceneGraphManager 클래스 인터페이스

    interface ISceneGraphManager {
        root: SceneNode;
        getTree(): SceneNode;
        findNodeById(nodeId: string): SceneNode | null;
        findNodeByObject(object: Object3D): SceneNode | null;
        findNodesByGroup(group: SceneNodeGroup): SceneNode[];
        getGroupRoot(group: SceneNodeGroup): SceneNode | null;
        findModelRoot(nodeId: string): SceneNode | null;
        registerNode(options: RegisterNodeOptions): string;
        registerModelHierarchy(
            rootObject: Object3D,
            options: RegisterModelOptions,
        ): string;
        unregisterNode(nodeId: string): void;
        setNodeChecked(nodeId: string, checked: boolean): void;
        showAll(): void;
        hideAll(): void;
        setVisibilitySink(sink: NodeVisibilitySink | null): void;
        setNodeSelected(
            nodeId: string,
            selected: boolean,
            multiSelect?: boolean,
        ): void;
        getSelectedNodes(): SceneNode[];
        deselectAll(): void;
        setNodeExpanded(nodeId: string, expanded: boolean): void;
        expandAll(): void;
        collapseAll(): void;
        expandToNode(nodeId: string): void;
        deleteNode(nodeId: string): void;
        getNodeState(nodeId: string): NodeState;
        restoreNodeStates(states: Map<string, Partial<NodeState>>): void;
        onNodeStateChange(callback: NodeStateChangeCallback): () => void;
        onNodeDelete(callback: NodeDeleteCallback): () => void;
        onNodeAdd(callback: NodeAddCallback): () => void;
        importFromJson(json: JsonTreeNode, options: ImportJsonTreeOptions): string;
        getUnloadedCheckedNodes(): UnloadedNodeInfo[];
        getUnloadedDescendants(nodeId: string): UnloadedNodeInfo[];
        attachLoadedObject(
            nodeId: string,
            object: Object3D,
            addToScene?: boolean,
        ): void;
        logTree(): void;
        dispose(): void;
    }

    Implemented by

    Index

    Methods

    • 전체 트리 반환 (root 노드)

      Returns SceneNode

    • ID로 노드 조회

      Parameters

      • nodeId: string

        노드 ID

      Returns SceneNode | null

    • Object3D로 노드 조회

      Parameters

      • object: Object3D

        Three.js Object3D

      Returns SceneNode | null

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

      Parameters

      • nodeId: string

        노드 ID

      Returns SceneNode | null

      모델 루트 노드 또는 null

      models 그룹의 직접 자식 노드(모델 루트)를 찾아 반환합니다. 모델 그룹에 속하지 않은 노드는 null을 반환합니다.

    • 단일 노드 등록

      Parameters

      Returns string

      생성된 노드 ID

    • Object3D 계층 구조를 Models 그룹에 등록

      Parameters

      Returns string

      생성된 루트 노드 ID

    • 노드 등록 해제 (삭제하지 않고 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

    • 노드 선택 상태 설정

      Parameters

      • nodeId: string

        노드 ID

      • selected: boolean

        선택 상태

      • OptionalmultiSelect: boolean

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

      Returns void

    • 선택된 노드 목록 반환

      Returns SceneNode[]

    • 전체 선택 해제

      Returns void

    • 노드 확장 상태 설정

      Parameters

      • nodeId: string

        노드 ID

      • expanded: boolean

        확장 상태

      Returns void

    • 전체 확장

      Returns void

    • 전체 접기

      Returns void

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

      Parameters

      • nodeId: string

        대상 노드 ID

      Returns void

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

      Parameters

      • nodeId: string

        노드 ID

      Returns void

    • 노드 상태 조회

      Parameters

      • nodeId: string

        노드 ID

      Returns NodeState

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

      Parameters

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

        nodeId → NodeState 매핑

      Returns void

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

    • 노드 상태 변경 리스너 등록

      Parameters

      Returns () => void

      리스너 해제 함수

    • 노드 삭제 리스너 등록

      Parameters

      Returns () => void

      리스너 해제 함수

    • 노드 추가 리스너 등록

      Parameters

      Returns () => void

      리스너 해제 함수

    • JSON 트리 구조를 import하여 SceneGraph에 등록 모델은 로드하지 않고 트리 구조만 생성

      Parameters

      Returns string

      생성된 루트 노드 ID

    • 체크된 노드 중 미로드된 것들의 정보 반환

      Returns UnloadedNodeInfo[]

      미로드 노드 정보 배열

    • 특정 노드와 그 자손 중 미로드된 노드 목록 반환

      Parameters

      • nodeId: string

      Returns UnloadedNodeInfo[]

    • 노드에 로드된 Object3D 연결

      Parameters

      • nodeId: string

        노드 ID

      • object: Object3D

        로드된 Object3D

      • OptionaladdToScene: boolean

      Returns void

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

      Returns void

    • 리소스 정리

      Returns void

    Properties

    root: SceneNode

    루트 노드 반환