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

    Class Voxel3D

    Implements

    Index

    Accessors

    Constructors

    Methods

    start stop render requestRender setContinuousRender resize getSceneSettings setSceneSettings applySceneTheme setBackgroundColor getBackgroundColor setGridSize setAxesSize setGridVisible setAxesVisible setFOV setUpAxis flipUpVector fitToBounds focusOnObject focusOnSelected setAutoRotate setAutoRotateSpeed setDampingFactor setFixedUpVector getProjectionMode setProjectionMode getNavigationMode setNavigationMode getMouseControlMode setMouseControlMode setView setUpVector computeBVH computeBVHAsync disposeBVH setBVHHelperVisible setBVHHelperDepth setBVHOptions getBVHStats setSelectionEnabled deselect setHighlightColor setHighlightIntensity highlightObject unhighlightAll setOutlineEnabled setOutlineColor setOutlineThickness setOutlineStrength setOutlineGlow setHiddenEdgeColor setOutlinePulsePeriod setFXAAEnabled createClippingPlane deleteClippingPlane deleteAllClippingPlanes setClippingEnabled isClippingEnabled setPlaneConstant setPlaneStep setClippingPlaneFromFace enterClippingAlignMode exitClippingAlignMode getClippingAlignModePlaneId setClippingEdgeVisible setClippingEdgeColor setClippingEdgeLineWidth isClippingEdgeVisible getClippingEdgeColor getClippingEdgeLineWidth setClippingEdgePreview getClippingEdgePreview setClippingPreciseEdge getClippingPreciseEdge setClippingTargetMesh setClippingTargetMeshes setClippingScope getClippingTargetMesh setClippingGizmoVisible selectClippingGizmo deselectClippingGizmo setClippingGizmoMode isClippingGizmoVisible setClippingMode getClippingMode setClippingPlaneSide getClippingPlaneSide setClippingPlanePositionPercent getClippingPlanePositionPercent setClippingBoundsVisible isClippingBoundsVisible setAllClippingUIVisible getClippingPlanes createSectionBox setClippingSectionBox setClippingSectionBoxEnabled setClippingSectionBoxFace deleteClippingSectionBox getClippingSectionBox createClippingSlab setClippingSlabPosition stepClippingSlab setClippingSlabThickness setClippingSlabEnabled deleteClippingSlab getClippingSlab getClippingSnapshot restoreClippingSnapshot setMeasureMode startMeasure cancelMeasure clearAllMeasures deleteMeasure getMeasurements onMeasureComplete exportMeasurements initMeshAnalysis registerAnimationClips unregisterAnimationClips getAnimationClips getAnimatedModels playAnimation pauseAnimation stopAnimation seekAnimation setAnimationSpeed setAnimationLoopMode setAnimationForceVisible crossfadeAnimation getAnimationState loadPLMXML playPLMXML pausePLMXML stopPLMXML seekPLMXMLToFrame seekPLMXMLToTime setPLMXMLPlaybackSpeed setPLMXMLLoop switchPLMXMLSequence getPLMXMLAnimationState getPLMXMLCurrentTransforms isPLMXMLPlaying getPLMXMLTotalDuration getPLMXMLParsedData bindPLMXMLObjects setAutoApplyPLMXMLTransforms applyCurrentPLMXMLTransforms resetPLMXMLObjects unbindPLMXMLObjects setAllLight clearAdditionalLights setRoomEnvironment loadHDR clearEnvironment setEnvironmentBackgroundVisible setEnvironmentIntensity setBackgroundBlurriness setBackgroundIntensity getCanvas takeScreenshot createSnapshot applySnapshot deleteSnapshot updateSnapshot getSnapshots getCurrentSnapshotId exportSnapshotSession importSnapshotSession clearSnapshotSession getPerformanceReport printPerformanceReport printHealth getImportReport getImportPerformanceReport printImportReport printImportProfile benchRender on registerModel registerSceneNode deleteSceneNode setSceneNodeVisible logSceneGraph importJsonTree loadCheckedModels pickFolder loadFiles loadUrl loadNodeById clearImportResources getMissingTextures resolveMissingTextures clearMissingTextures clearModelCache getModelCacheStats setImportFileOverlap getImportFileOverlap setImportBinCacheInject getImportBinCacheInject setImportWorkerParse getImportWorkerParse setImportWorkerParseVerify getImportWorkerParseVerify setImportWorkerLoadPoC getImportWorkerLoadPoC setImportConcurrency getImportConcurrency setImportRenderSuppression getImportRenderSuppression getSceneAddMode setSceneAddMode enableBatchRendering disableBatchRendering flushBatchRender getBatchRenderStats isBatchedRenderingEnabled setBatchedRendering enableTransform disableTransform resetTransform setTransformSpace setTransformTarget undoTransform redoTransform setTransformSnap setTransformGizmoVisible isTransformGizmoVisible selectMaterialTarget deselectMaterialTarget setMaterialColor setMaterialRoughness setMaterialMetalness setMaterialEnvMapIntensity adjustMaterialHSL resetMaterial undoMaterial redoMaterial selectTextureTarget deselectTextureTarget loadTextureFromFile loadTextureFromUrl removeTexture setTextureUVSettings resetTextureUVSettings setTextureFilterSettings getTextureInfo setMarkupEnabled isMarkupEnabled enterMarkupAddMode exitMarkupAddMode getMarkupAddMode selectMarkup deselectMarkup deleteMarkup deleteAllMarkups getMarkupList getMarkupData setViewCubeVisible setViewCubeEnabled setViewCubeCorner setViewCubeSize setViewCubeFaceLabels setViewCubeOffset setViewCubeColors subscribeToLogs getLogHistory setAnalyticsHandler dispose

    Accessors

    • get isReady(): boolean

      뷰어 준비 완료 여부

      Returns boolean

    • get isDisposed(): boolean

      뷰어 해제 여부

      Returns boolean

    • get renderer(): WebGLRenderer | null

      WebGL 렌더러

      Returns WebGLRenderer | null

    • get scene(): Scene<Object3DEventMap> | null

      Three.js 씬

      Returns Scene<Object3DEventMap> | null

    • get camera(): PerspectiveCamera | OrthographicCamera | null

      카메라

      Returns PerspectiveCamera | OrthographicCamera | null

    • get container(): HTMLElement | null

      컨테이너 엘리먼트

      Returns HTMLElement | null

    • get width(): number

      뷰어 너비

      Returns number

    • get height(): number

      뷰어 높이

      Returns number

    • get fixedUpVector(): boolean

      Up 벡터 고정 여부

      Returns boolean

    • get selectedObject(): Object3D<Object3DEventMap> | null

      현재 선택된 오브젝트

      Returns Object3D<Object3DEventMap> | null

    • get outlineEnabled(): boolean

      외곽선 활성화 여부 조회

      Returns boolean

    • get healthCheck(): HealthCheck | null

      Returns the HealthCheck instance for direct access. HealthCheck 인스턴스를 반환합니다.

      Returns HealthCheck | null

    • get hasFolder(): boolean

      GLTF 폴더가 선택되었는지 여부

      Returns boolean

    • get folderName(): string | null

      선택된 GLTF 폴더 이름

      Returns string | null

    • get batchRenderingEnabled(): boolean

      배치 렌더링 활성화 여부

      Returns boolean

    • get transformEnabled(): boolean

      Transform Gizmo 활성화 여부

      Returns boolean

    • get markupCount(): number

      마크업 개수

      Returns number

    Constructors

    Methods

    • 렌더링 루프 시작

      Returns void

    • 렌더링 루프 중지

      Returns void

    • 단일 프레임 렌더링

      Returns void

    • Requests a render on the next animation frame. 다음 애니메이션 프레임에서 렌더링을 요청합니다.

      Returns void

    • Sets continuous rendering mode. 연속 렌더링 모드를 설정합니다.

      Parameters

      • enabled: boolean

        true for always-on rendering, false for on-demand true이면 항상 렌더링, false이면 변경 시에만 렌더링

      Returns void

    • 뷰어 resize

      Parameters

      • Optionalwidth: number
      • Optionalheight: number

      Returns void

    • Scene 설정 일괄 조회

      Returns SceneSettings

    • Scene 설정 일괄 적용

      Parameters

      • settings: Partial<SceneSettings>

        변경할 설정 (부분 적용 가능)

      Returns void

    • Scene 테마 적용

      Parameters

      • theme: SceneTheme

        'light' 또는 'dark'

      Returns void

    • background color config

      Parameters

      • color: ColorRepresentation

      Returns void

    • background color 조회

      Returns Color | null

    • grid size config

      Parameters

      • size: number

        grid 전체 size (기본: 20)

      Returns void

    • 축 size config

      Parameters

      • size: number

        축 길이 (기본: 5)

      Returns void

    • 그리드 표시/숨김 설정

      Parameters

      • visible: boolean

        표시 여부

      Returns void

    • 축 헬퍼 표시/숨김 설정

      Parameters

      • visible: boolean

        표시 여부

      Returns void

    • 카메라 FOV 설정

      Parameters

      • fov: number

        시야각 (도 단위)

      Returns void

    • Up 축 방향 설정

      Parameters

      • axis: UpAxis

        Up 축 ('y' 또는 'z')

      Returns void

    • Up 벡터 반전

      Returns void

    • 씬 내 모든 모델에 카메라를 맞춤

      Parameters

      • Optionaloffset: number

        (선택적) 여백 배수 (기본: 1.5)

      Returns void

    • 특정 오브젝트에 카메라를 포커싱

      Parameters

      • object: Object3D

        대상 오브젝트

      • Optionaloffset: number

        (선택적) 여백 배수 (기본: 1.5)

      Returns void

    • 현재 선택된 오브젝트에 카메라를 포커싱

      Parameters

      • Optionaloffset: number

        (선택적) 여백 배수 (기본: 1.5)

      Returns void

    • 자동 회전 설정

      Parameters

      • enabled: boolean

        활성화 여부

      Returns void

    • 자동 회전 속도 설정

      Parameters

      • speed: number

        회전 속도

      Returns void

    • 댐핑 팩터 설정

      Parameters

      • factor: number

        댐핑 계수

      Returns void

    • Up 벡터 고정 설정

      Parameters

      • fixed: boolean

        true이면 카메라 뒤집힘 방지, false이면 자유 회전

      Returns void

    • Returns the current camera projection mode. 현재 카메라 투영 모드를 반환합니다.

      Returns ProjectionMode

      Current projection mode 현재 투영 모드

    • Switches the camera projection mode (perspective/orthographic). 카메라 투영 모드를 전환합니다 (perspective/orthographic).

      Parameters

      • mode: ProjectionMode

        Target projection mode 대상 투영 모드

      Returns void

      Swaps the camera instance with frustum matching and propagates the new camera to all feature managers (controls/raycast/selection/clipping/ measure/transform/effect composer). 절두체 매칭된 새 카메라 인스턴스로 교체하고 모든 feature 매니저에 전파합니다.

    • Returns the current navigation mode. 현재 내비게이션 모드를 반환합니다.

      Returns NavigationMode

      Current navigation mode 현재 내비게이션 모드

    • Switches the navigation mode (turntable/trackball). 내비게이션 모드를 전환합니다 (turntable/trackball).

      Parameters

      • mode: NavigationMode

        Target navigation mode 대상 내비게이션 모드

      Returns void

      The camera instance is unchanged; only the active controls are swapped (OrbitControls <-> ArcballControls) with target/enabled state carried over. 카메라 인스턴스는 그대로 두고 활성 컨트롤만 스왑합니다 (상태 이어받기 포함).

    • Returns the current mouse control mode. 현재 마우스 컨트롤 모드를 반환합니다.

      Returns MouseControlMode

      Current mouse control mode 현재 마우스 컨트롤 모드

    • Switches the mouse button mapping preset (default/catia). 마우스 버튼 매핑 프리셋을 전환합니다 (default/catia).

      Parameters

      • mode: MouseControlMode

        Target mouse control mode 대상 마우스 컨트롤 모드

      Returns void

    • Moves the camera to a standard view (front/top/iso, edges, corners). 카메라를 표준 뷰로 이동합니다 (면/모서리/코너/iso).

      Parameters

      • view: StandardView

        Standard view identifier 표준 뷰 식별자

      • animate: boolean = true

        (optional) Whether to animate the transition (default: true) (선택적) 전환 애니메이션 여부 (기본: true)

      Returns void

    • Sets the camera up vector to a signed world axis. 카메라 Up 벡터를 부호 있는 월드 축으로 설정합니다.

      Parameters

      • dir: UpVectorDir

        Up vector direction ('x' | 'y' | 'z' | '-x' | '-y' | '-z') Up 벡터 방향

      • animate: boolean = true

        (optional) Whether to animate the re-orientation (default: true) (선택적) 재정렬 애니메이션 여부 (기본: true)

      Returns void

    • 오브젝트에 BVH 생성 (동기)

      Parameters

      • object: Object3D

        BVH를 생성할 3D 오브젝트

      Returns BVHStats | null

      BVH 생성 통계

      메인 스레드에서 동기적으로 BVH를 생성합니다. 대용량 모델의 경우 UI가 블로킹될 수 있습니다. 가능하면 computeBVHAsync를 사용하세요.

    • 오브젝트에 BVH 생성 (비동기, Worker 사용)

      Parameters

      • object: Object3D

        BVH를 생성할 3D 오브젝트

      • Optionaloptions: { onProgress?: (progress: number) => void; filter?: (mesh: Mesh) => boolean }

      Returns Promise<BVHStats | null>

      BVH 생성 통계

      Web Worker를 사용하여 메인 스레드를 블로킹하지 않고 BVH를 생성합니다. 대용량 모델 처리에 권장됩니다.

      const stats = await viewer.computeBVHAsync(model, (progress) => {
      console.log(`BVH 생성 진행률: ${(progress * 100).toFixed(1)}%`);
      });
    • 오브젝트의 BVH 제거

      Parameters

      • object: Object3D

        BVH를 제거할 3D 오브젝트

      Returns void

    • BVH 헬퍼 표시 설정

      Parameters

      • visible: boolean

        헬퍼 표시 여부

      Returns void

      디버그용으로 BVH 구조를 시각화합니다.

    • BVH 헬퍼 깊이 설정

      Parameters

      • depth: number

        헬퍼 깊이 (기본: 10)

      Returns void

      BVH 트리의 시각화 깊이를 설정합니다. 값이 클수록 더 세밀한 BVH 노드가 표시됩니다.

    • BVH 옵션 설정

      Parameters

      • options: Partial<BVHOptions>

        BVH 생성 옵션

      Returns void

    • BVH 통계 조회

      Returns BVHStats | null

      BVH 생성 통계

    • 선택 기능 활성화/비활성화

      Parameters

      • enabled: boolean

        활성화 여부

      Returns void

    • 선택 해제

      Returns void

    • 하이라이트 색상 설정

      Parameters

      • color: ColorRepresentation

        하이라이트 색상

      Returns void

    • 하이라이트 강도 설정

      Parameters

      • intensity: number

        강도 (0~1)

      Returns void

    • 오브젝트 하이라이트

      Parameters

      • object: Object3D

        하이라이트할 Object3D

      Returns void

      배치로 병합된 노드의 오브젝트(씬그래프 트리 선택 경로)는 원본 메시가 씬에서 분리되어 있으므로 nodeId 기반 배치 하이라이트로 라우팅됩니다.

    • 하이라이트 해제

      Returns void

    • 외곽선 활성화/비활성화

      Parameters

      • enabled: boolean

        활성화 여부

      Returns void

    • 외곽선 색상 설정

      Parameters

      • color: ColorRepresentation

        색상 값

      Returns void

    • 외곽선 두께 설정

      Parameters

      • thickness: number

        두께 값 (기본: 2.0)

      Returns void

    • 외곽선 강도 설정

      Parameters

      • strength: number

        강도 값 (기본: 3.0)

      Returns void

    • 외곽선 글로우 설정

      Parameters

      • glow: number

        글로우 값 (0-1)

      Returns void

    • 숨겨진 외곽선 색상 설정

      Parameters

      • color: ColorRepresentation

        색상 값

      Returns void

    • 외곽선 펄스 주기 설정

      Parameters

      • period: number

        펄스 주기 (초, 0이면 비활성화)

      Returns void

    • FXAA 안티앨리어싱 활성화 설정

      Parameters

      • enabled: boolean

        활성화 여부

      Returns void

    • 클리핑 플레인 생성

      Parameters

      Returns string

      생성된 플레인 ID

      같은 축에 여러 개의 플레인 생성이 가능합니다.

    • 클리핑 플레인 삭제

      Parameters

      • planeId: string

        플레인 ID

      Returns void

    • 모든 클리핑 플레인 삭제

      Returns void

    • 클리핑 활성화/비활성화

      Parameters

      • enabled: boolean

        활성화 여부

      Returns void

    • 클리핑 활성화 여부 조회

      Returns boolean

    • 플레인 constant 설정

      Parameters

      • planeId: string

        플레인 ID

      • constant: number

        constant 값

      Returns void

    • Nudges a clipping plane's constant by a signed step from its current value. 클리핑 플레인 constant를 현재값에서 부호 있는 step만큼 증분합니다.

      Parameters

      • planeId: string

        Plane ID 플레인 ID

      • step: number

        Signed increment applied to the current constant 현재 constant에 더할 부호 있는 증분값

      Returns void

      Reuses setPlaneConstant internally, so the dynamic normal-projected bounds clamp and 'viewer:clipping:change' event apply. Positive steps move along the plane normal, negative steps move against it. 내부적으로 setPlaneConstant를 재사용하므로 normal 투영 동적 bounds 클램프와 'viewer:clipping:change' 이벤트가 적용됩니다. 양수 step은 평면 normal 방향, 음수 step은 반대 방향으로 이동합니다.

    • Snaps a clipping plane's normal and constant to a world face (programmatic align). 클리핑 플레인의 normal과 constant를 월드 면에 스냅합니다 (프로그램적 정렬).

      Parameters

      • planeId: string

        Plane ID 플레인 ID

      • worldNormal: Vector3

        World-space face normal (normalized internally) 월드 좌표 면 법선 (내부에서 정규화)

      • worldPoint: Vector3

        World-space point the plane must pass through 평면이 지나야 하는 월드 좌표 점

      Returns void

      Sets the plane flush on the given face (baseNormal = worldNormal, constant = -normal·point). The plane's current clip side decides which side is cut. For interactive picking use enterClippingAlignMode() instead, which snaps on the next model click. Emits 'viewer:clipping:change' and 'viewer:clipping:align'. 주어진 면에 평면을 밀착시킵니다 (baseNormal = worldNormal, constant = -normal·point). 평면의 현재 절단 방향이 자르는 쪽을 결정합니다. 인터랙티브 픽킹은 다음 모델 클릭에 스냅하는 enterClippingAlignMode()를 사용하세요. 'viewer:clipping:change'와 'viewer:clipping:align' 이벤트를 발행합니다.

    • Enters one-shot face-align mode: the next model click snaps the plane to that face. 1회성 면 정렬 모드로 진입합니다: 다음 모델 클릭이 평면을 그 면에 스냅합니다.

      Parameters

      • planeId: string

        Target plane ID 대상 플레인 ID

      Returns void

      Sets a crosshair cursor and locks plane-body picking so the align click reaches the model surface. On a successful surface click the plane's normal + constant snap to the face and the mode auto-exits. Emits 'viewer:clipping:alignModeChange'. 십자선 커서를 설정하고 평면 body 픽킹을 잠가 정렬 클릭이 모델 표면에 닿게 합니다. 표면 클릭이 성공하면 평면의 normal + constant가 그 면에 스냅되고 모드가 자동 종료됩니다. 'viewer:clipping:alignModeChange' 이벤트를 발행합니다.

    • Exits face-align mode (restores the cursor and unlocks plane-body picking). 면 정렬 모드를 종료합니다 (커서 복원, 평면 body 픽킹 잠금 해제).

      Returns void

    • Returns the plane ID currently in face-align mode, or null when inactive. 현재 면 정렬 모드인 플레인 ID를 반환합니다 (비활성이면 null).

      Returns string | null

      Align-mode target plane ID, or null 면 정렬 모드 대상 플레인 ID, 비활성이면 null

    • 교차선 표시 설정

      Parameters

      • visible: boolean

        표시 여부

      Returns void

    • 교차선 색상 설정

      Parameters

      • color: ColorRepresentation

        색상 값

      Returns void

    • 교차선 굵기 설정

      Parameters

      • width: number

        굵기 (픽셀)

      Returns void

    • 교차선 표시 여부 조회

      Returns boolean

    • 교차선 색상 조회 (hex)

      Returns number

    • Enables or disables the GPU shader edge preview during gizmo drag. 기즈모 드래그 중 GPU 셰이더 엣지 프리뷰 사용 여부를 설정합니다.

      Parameters

      • enabled: boolean

        Whether to use the shader edge preview 셰이더 엣지 프리뷰 사용 여부

      Returns void

      The always-on shader edge is now the default clipping edge representation, so this gate has no effect on the default path. It only gates the drag-time preview of the precise edge mode (setClippingPreciseEdge). 셰이더 상시 엣지가 기본 클리핑 엣지 표현이 되면서 이 게이트는 기본 경로에 영향을 주지 않습니다. 정밀 엣지 모드(setClippingPreciseEdge)의 드래그 중 프리뷰 게이트로만 동작합니다.

    • Returns whether the GPU shader edge preview is enabled. GPU 셰이더 엣지 프리뷰 사용 여부를 반환합니다.

      Returns boolean

      True when the shader edge preview is enabled (default: true) 셰이더 엣지 프리뷰가 활성화되어 있으면 true (기본: true)

      Only meaningful in precise edge mode (setClippingPreciseEdge). 정밀 엣지 모드(setClippingPreciseEdge)에서만 의미가 있습니다.

    • Enables or disables the precise edge mode (BVH geometry lines). 정밀 엣지 모드(BVH 지오메트리 라인)를 설정합니다.

      Parameters

      • enabled: boolean

        Whether to use precise (BVH line) edges 정밀(BVH 라인) 엣지 사용 여부

      Returns void

      Off by default: clipping edges are drawn by an always-on GPU shader edge whose line width is a screen-space pixel value (uniform-only updates when planes move, no regeneration). When enabled, the legacy hybrid path is used instead - BVH intersection lines with a shader preview during gizmo drag and a handoff when the lines are finalized. Use this as an opt-in when exact geometric intersection lines are required. 기본값은 비활성이며 클리핑 엣지는 스크린 공간 픽셀 폭의 GPU 셰이더 상시 엣지로 표현됩니다 (평면 이동 시 유니폼만 갱신, 재생성 없음). 활성화하면 종전 하이브리드 경로(BVH 교차선 + 드래그 중 셰이더 프리뷰 + 완료 시 핸드오프)가 대신 사용됩니다. 정확한 기하학적 교차선이 필요한 경우에만 opt-in으로 사용하세요.

    • Returns whether the precise edge mode (BVH geometry lines) is enabled. 정밀 엣지 모드(BVH 지오메트리 라인) 사용 여부를 반환합니다.

      Returns boolean

      True when precise edge mode is enabled (default: false) 정밀 엣지 모드가 활성화되어 있으면 true (기본: false)

    • 클리핑 대상 메시 설정

      Parameters

      • mesh:
            | Mesh<
                BufferGeometry<NormalBufferAttributes, BufferGeometryEventMap>,
                Material<MaterialEventMap> | Material<MaterialEventMap>[],
                Object3DEventMap,
            >
            | null

        클리핑 대상 메시 (null이면 전체)

      Returns void

      • null 또는 미설정: 전체 모델 클리핑
      • Mesh 지정: 해당 메시만 클리핑
    • 클리핑 대상 메시 다중 설정 (부분 스코프 클리핑)

      Parameters

      • meshes:
            | Mesh<
                BufferGeometry<NormalBufferAttributes, BufferGeometryEventMap>,
                Material<MaterialEventMap> | Material<MaterialEventMap>[],
                Object3DEventMap,
            >[]
            | null

        클리핑 대상 메시 배열 (null이나 빈 배열이면 전체 모델)

      Returns void

      CAD "선택 부품만 절단" 워크플로용입니다. clippingPlanes는 머티리얼 단위이므로 대상이 비대상 메시와 머티리얼을 공유하면 함께 잘리며, 배치 모드에서는 개별 인스턴스 부분 스코프가 적용되지 않습니다(비대상은 클립에서 제외/복원).

    • 트리 노드 id 집합으로 클립 대상 스코프 설정 (부분 스코프 클리핑)

      Parameters

      • nodeIds: string[] | null

        트리 노드 id 배열 (null이나 빈 배열이면 전체 모델)

      Returns void

      트리에서 체크/선택된 노드 id 배열을 클립 대상으로 변환합니다. 각 노드 하위의 모델 메시가 대상이 되며, 나머지는 클립에서 제외됩니다. SceneGraph 미주입 시 경고 후 no-op입니다.

    • 현재 클리핑 대상 메시 반환 (단일 대상일 때만, 다중/전체면 null)

      Returns
          | Mesh<
              BufferGeometry<NormalBufferAttributes, BufferGeometryEventMap>,
              Material<MaterialEventMap> | Material<MaterialEventMap>[],
              Object3DEventMap,
          >
          | null

    • Gizmo 표시 설정

      Parameters

      • visible: boolean

        표시 여부

      Returns void

    • 클리핑 Gizmo 선택

      Parameters

      • planeId: string

        선택할 플레인 ID

      Returns void

      선택된 Gizmo만 TransformControls 핸들을 표시합니다.

    • 모든 클리핑 Gizmo 선택 해제

      Returns void

    • 클리핑 Gizmo 표시 여부 반환

      Returns boolean

    • 전체 클리핑 모드 설정

      Parameters

      Returns void

    • Sets the clip side mode of a specific clipping plane. 특정 클리핑 플레인의 절단 방향 모드를 설정합니다.

      Parameters

      • planeId: string

        Plane ID 플레인 ID

      • side: ClipSide

        Clip side mode ('far' | 'near' | 'both') 절단 방향 모드 ('far' | 'near' | 'both')

      Returns void

      Changes only the given plane; other planes keep their current side. Use setClippingMode() to apply the same side to all planes at once. 지정된 평면만 변경하며 다른 평면은 현재 방향을 유지합니다. 모든 평면에 일괄 적용하려면 setClippingMode()를 사용하세요.

    • Returns the clip side mode of a specific clipping plane. 특정 클리핑 플레인의 절단 방향 모드를 반환합니다.

      Parameters

      • planeId: string

        Plane ID 플레인 ID

      Returns ClipSide | null

      Clip side mode, or null if the plane does not exist 절단 방향 모드 (평면이 없으면 null)

    • Sets the clipping plane position as a percentage of its normal-projected range. 클리핑 플레인 위치를 normal 투영 범위 기준 퍼센트(0~100)로 설정합니다.

      Parameters

      • planeId: string

        Plane ID 플레인 ID

      • percent: number

        Position percentage (0~100, clamped) 위치 퍼센트 (0~100, 범위 밖 값은 클램핑)

      Returns void

      0% places the plane at the range minimum, 100% at the maximum. The range is computed by projecting the model bounding box onto the plane normal, so rotated planes are positioned accurately as well. 0%는 범위 최소, 100%는 범위 최대 위치입니다. 범위는 모델 바운딩박스를 평면 normal에 투영해 계산하므로 회전된 평면도 정확히 배치됩니다.

    • Returns the clipping plane position as a percentage of its normal-projected range. 클리핑 플레인 위치를 normal 투영 범위 기준 퍼센트(0~100)로 반환합니다.

      Parameters

      • planeId: string

        Plane ID 플레인 ID

      Returns number | null

      Position percentage (0~100), or null if the plane or model bounds are unavailable 위치 퍼센트 (0~100), 평면 또는 모델 경계가 없으면 null

    • 클리핑 바운딩박스 헬퍼 표시 설정

      Parameters

      • visible: boolean

        표시 여부

      Returns void

    • 클리핑 바운딩박스 헬퍼 표시 여부 반환

      Returns boolean

    • Shows or hides all clipping UI (gizmos, cross-section helpers, bounds helper) at once. 모든 클리핑 UI(기즈모, 교차 단면 헬퍼, 바운딩박스 헬퍼)를 일괄로 표시/숨김합니다.

      Parameters

      • visible: boolean

        Whether all clipping UI is visible 모든 클리핑 UI 표시 여부

      Returns void

      Bundles setClippingGizmoVisible and setClippingBoundsVisible for capture use cases (snapshot/thumbnail): hide the UI, capture, then restore. It keeps no prior-state backup, so read isClippingGizmoVisible()/isClippingBoundsVisible() beforehand to restore an asymmetric UI state after the capture. 캡처(스냅샷/썸네일) 유스케이스를 위해 setClippingGizmoVisible과 setClippingBoundsVisible를 묶습니다(숨김→캡처→복원). 이전 상태를 백업하지 않으므로, 비대칭 UI 상태를 복원하려면 캡처 전에 isClippingGizmoVisible()/isClippingBoundsVisible()를 읽어 두세요.

    • Creates (or refits) the section box from the current model bounds and enables it. 현재 모델 바운드로 섹션 박스를 생성(또는 재맞춤)하고 활성화합니다.

      Returns void

      A section box clips the model with 6 axis-aligned planes, keeping only the region inside the box (professional CAD "section box"). It is initialized to the visible model bounding box and coexists with individual planes/scope (all merged as an intersection). No-op with a warning when no model mesh exists. Master clipping is auto-enabled so the box takes effect immediately. 섹션 박스는 6개 축정렬 평면으로 모델을 잘라 박스 안쪽만 남깁니다(전문 CAD의 "섹션 박스"). 표시 중인 모델 바운딩박스로 초기화되며 개별 평면/스코프와 공존합니다(교집합으로 병합). 모델 메시가 없으면 경고 후 no-op이며, 박스가 즉시 반영되도록 마스터 클리핑을 자동 활성화합니다.

    • Sets the section box to an explicit min/max region (creates it if absent). 섹션 박스를 명시적 min/max 영역으로 설정합니다 (없으면 생성).

      Parameters

      • min: Vector3

        Minimum corner (world space) 최소 코너 (월드 좌표)

      • max: Vector3

        Maximum corner (world space) 최대 코너 (월드 좌표)

      Returns void

      Does not change the enabled state; use setClippingSectionBoxEnabled() to toggle. 활성 상태는 변경하지 않습니다. 토글은 setClippingSectionBoxEnabled()를 사용하세요.

    • Enables or disables the section box clip (auto-creates from bounds if none exists). 섹션 박스 클립을 활성/비활성합니다 (박스가 없으면 바운드로 자동 생성).

      Parameters

      • enabled: boolean

        Whether the section box clip is active 섹션 박스 클립 활성 여부

      Returns void

    • Pushes a single section box face to a new coordinate value. 섹션 박스의 한 면을 새 좌표값으로 밉니다.

      Parameters

      • face: SectionBoxFace

        Face to move ('minX' | 'maxX' | 'minY' | 'maxY' | 'minZ' | 'maxZ') 이동할 면

      • value: number

        New world-space coordinate for that face 해당 면의 새 월드 좌표값

      Returns void

    • Deletes the section box (removes its wireframe helper and disables the clip). 섹션 박스를 삭제합니다 (와이어프레임 헬퍼 제거 및 클립 비활성).

      Returns void

    • Returns the current section box state, or null when no box exists. 현재 섹션 박스 상태를 반환합니다 (박스가 없으면 null).

      Returns SectionBoxData | null

      Section box data with cloned corners, or null 복제된 코너를 담은 섹션 박스 데이터, 또는 null

    • Creates (or reorients) the thin-slab inspection slice and enables it. 얇은 슬랩 인스펙션 단면을 생성(또는 재정렬)하고 활성화합니다.

      Parameters

      • axisOrNormal: ClippingAxis | Vector3

        Preset axis ('x' | 'y' | 'z') or an arbitrary world normal 프리셋 축('x' | 'y' | 'z') 또는 임의 월드 법선

      Returns void

      A slab keeps only a thin slice between two parallel planes along the given axis/normal (default thickness 5% of the model bounds diagonal), letting you scan through the model interior. It coexists with individual planes and the section box (all merged as an intersection). No-op with a warning when no model mesh exists. Master clipping is auto-enabled. Use stepClippingSlab() to scan the slice along its normal. 슬랩은 주어진 축/법선 방향으로 평행한 두 평면 사이의 얇은 한 겹(기본 두께: 모델 바운드 대각선의 5%)만 남겨 모델 내부를 스캔하듯 검사하게 합니다. 개별 평면·섹션 박스와 공존하며(교집합으로 병합), 모델 메시가 없으면 경고 후 no-op입니다. 마스터 클리핑을 자동 활성화하며, 법선 방향 스캔은 stepClippingSlab()을 사용하세요.

    • Sets the slab center position along its normal (n·p value at the slice center). 슬랩 중심 위치를 법선 방향으로 설정합니다 (단면 중심의 n·p 값).

      Parameters

      • center: number

        Signed distance of the slab center along the normal 법선 방향 슬랩 중심의 부호 있는 거리

      Returns void

    • Scans the slab along its normal by a signed delta (position += delta). 슬랩을 법선 방향으로 부호 있는 증분만큼 스캔 이동합니다 (position += delta).

      Parameters

      • delta: number

        Signed step added to the current center (positive: normal direction) 현재 중심에 더할 부호 있는 증분 (양수: 법선 방향)

      Returns void

    • Sets the slab thickness (clamped to a small positive minimum). 슬랩 두께를 설정합니다 (작은 양의 최소값으로 클램프).

      Parameters

      • thickness: number

        Slab thickness in world units (values <= 0 are clamped) 슬랩 두께 (월드 단위, 0 이하는 클램프됨)

      Returns void

    • Enables or disables the slab clip (auto-creates an X-axis slab if none exists). 슬랩 클립을 활성/비활성합니다 (슬랩이 없으면 X축 슬랩으로 자동 생성).

      Parameters

      • enabled: boolean

        Whether the slab clip is active 슬랩 클립 활성 여부

      Returns void

    • Deletes the slab (disables the clip and clears its state). 슬랩을 삭제합니다 (클립 비활성 및 상태 초기화).

      Returns void

    • Returns the current slab state, or null when no slab exists. 현재 슬랩 상태를 반환합니다 (슬랩이 없으면 null).

      Returns SlabData | null

      Slab data with a cloned normal, or null 복제된 법선을 담은 슬랩 데이터, 또는 null

    • Serializes the full clipping state into a plain-JSON snapshot. 전체 클리핑 상태를 순수 JSON 스냅샷으로 직렬화합니다.

      Returns ClippingSnapshot | null

      Clipping snapshot, or null when the viewer is not initialized 클리핑 스냅샷 (뷰어 미초기화 시 null)

      The snapshot contains no THREE objects (vectors are [x, y, z] tuples) and includes a version field for forward-compatible restoration. 스냅샷은 THREE 객체를 포함하지 않으며(벡터는 [x, y, z] 튜플) 향후 호환 복원을 위한 버전 필드를 포함합니다.

    • Restores the clipping state from a snapshot. 스냅샷으로 클리핑 상태를 복원합니다.

      Parameters

      • snapshot: ClippingSnapshot

        Clipping snapshot to restore 복원할 클리핑 스냅샷

      Returns void

      Existing planes are removed first, then the snapshot state is rebuilt. Missing or invalid fields fall back to defaults, and the 'viewer:clipping:restore' event is emitted on completion. 기존 평면을 먼저 정리한 뒤 스냅샷 상태를 재구성합니다. 누락되거나 유효하지 않은 필드는 기본값으로 폴백하며, 완료 시 'viewer:clipping:restore' 이벤트가 발행됩니다.

    • 측정 시작

      Returns void

    • 측정 취소

      Returns void

    • 모든 측정 삭제

      Returns void

    • 특정 측정 삭제

      Parameters

      • id: string

        측정 ID

      Returns void

    • 측정 완료 콜백 등록

      Parameters

      • callback: (data: MeasurementData) => void

        측정 완료 시 호출될 콜백 함수

      Returns void

    • Initializes mesh analysis for arc/circle measurement. 호/원 측정을 위한 mesh 분석을 초기화합니다.

      Parameters

      • force: boolean = false

        (optional) Re-run analysis even when already ready or running (선택적) 분석이 완료/진행 중이어도 강제로 재실행

      Returns Promise<void>

      모델 임포트 완료 시 자동으로 시작되므로 일반적으로 직접 호출할 필요가 없습니다. 이미 분석이 완료/진행 중이면 아무것도 하지 않으며, force로 강제 재분석할 수 있습니다.

    • 애니메이션 클립 등록

      Parameters

      • object: Object3D

        애니메이션이 포함된 Object3D

      • clips: AnimationClip[]

        AnimationClip 배열

      Returns void

    • 애니메이션 클립 등록 해제

      Parameters

      • object: Object3D

        Object3D

      Returns void

    • 애니메이션 재생

      Parameters

      • OptionalclipName: string

        클립 이름 (생략 시 현재 또는 첫 번째 클립)

      • OptionalobjectUuid: string

      Returns void

    • 애니메이션 일시정지

      Returns void

    • 애니메이션 정지 (처음으로 되돌림)

      Returns void

    • 애니메이션 특정 시간으로 이동

      Parameters

      • time: number

        시간 (초)

      Returns void

    • 애니메이션 재생 속도 설정

      Parameters

      • speed: number

        속도 (1.0 = 정상)

      Returns void

    • 애니메이션 재생 중 보이지 않는 오브젝트 강제 표시 설정

      Parameters

      • enabled: boolean

        활성화 여부

      Returns void

    • 다른 애니메이션으로 crossfade 전환

      Parameters

      • clipName: string

        전환할 클립 이름

      • Optionalduration: number

        전환 시간 (초, 기본: 0.5)

      Returns void

    • PLMXML 파일 로드 및 파싱

      Parameters

      • file: File

        PLMXML 파일

      Returns Promise<void>

      파싱된 데이터

    • PLMXML 애니메이션 재생

      Returns void

    • PLMXML 애니메이션 일시정지

      Returns void

    • PLMXML 애니메이션 정지

      Returns void

    • PLMXML 애니메이션 특정 프레임으로 이동

      Parameters

      • frame: number

        프레임 번호

      Returns void

    • PLMXML 애니메이션 특정 시간으로 이동

      Parameters

      • time: number

        시간 (초)

      Returns void

    • PLMXML 애니메이션 재생 속도 설정

      Parameters

      • speed: number

        속도 (1.0 = 정상)

      Returns void

    • PLMXML 애니메이션 루프 설정

      Parameters

      • loop: boolean

        루프 여부

      Returns void

    • PLMXML 시퀀스 전환

      Parameters

      • index: number

        시퀀스 인덱스

      Returns void

    • PLMXML 애니메이션 상태 반환

      Returns PLMXMLAnimationState | null

    • PLMXML 현재 transform 값들 반환

      Returns Map<string, InterpolatedTransform>

      entityId -> transform 맵

    • PLMXML 재생 중 여부

      Returns boolean

    • PLMXML 총 재생 시간 반환 (초)

      Returns number

    • PLMXML 파싱된 데이터 반환

      Returns PLMXMLParsedData | null

    • PLMXML 애니메이션을 Scene 오브젝트에 바인딩

      Parameters

      • coordinateConversion: "none" | "z-up-to-y-up" | "y-up" = 'z-up-to-y-up'

        좌표계 변환 모드 (기본: 'z-up-to-y-up')

      • autoApply: boolean = true

      Returns void

      Scene의 오브젝트 이름과 PLMXML의 partId를 매칭합니다. 바인딩 후 setAutoApplyPLMXMLTransforms(true)를 호출하면 애니메이션 재생 시 자동으로 transform이 적용됩니다.

      await viewer.loadPLMXML(file);
      viewer.bindPLMXMLObjects();
      viewer.setAutoApplyPLMXMLTransforms(true);
      viewer.playPLMXML();
    • PLMXML 자동 transform 적용 활성화/비활성화

      Parameters

      • enabled: boolean

        활성화 여부

      Returns void

    • PLMXML 현재 transform을 수동으로 적용

      Returns void

    • PLMXML 바인딩된 오브젝트들을 초기 상태로 리셋

      Returns void

    • PLMXML 오브젝트 바인딩 해제

      Returns void

    • 전체 조명 설정

      Returns void

    • RoomEnvironment 프리셋 적용

      Returns void

    • 외부 HDR 파일 로드

      Parameters

      • url: string

        HDR 파일 URL

      Returns Promise<void>

    • 환경맵 제거

      Returns void

    • 환경맵을 배경으로 표시할지 설정

      Parameters

      • visible: boolean

        배경 표시 여부

      Returns void

    • 환경맵 강도 설정

      Parameters

      • intensity: number

        강도 값

      Returns void

    • 배경 블러 정도 설정

      Parameters

      • blurriness: number

        블러 정도 (0~1)

      Returns void

    • 배경 강도 설정

      Parameters

      • intensity: number

        강도 값

      Returns void

    • 캔버스 엘리먼트 조회

      Returns HTMLCanvasElement | null

    • 스크린샷 캡처

      Parameters

      • type: string = 'image/png'
      • quality: number = 1.0

      Returns string | null

      Base64 인코딩된 이미지 데이터 URL

    • 현재 뷰어 상태를 스냅샷으로 저장

      Parameters

      • name: string

        스냅샷 이름

      • description: string = ''

        (선택적) 설명

      Returns SnapshotData

      생성된 스냅샷 데이터

    • 스냅샷 적용 (저장된 상태 완전 복원)

      Parameters

      • id: string

        스냅샷 ID

      Returns boolean

      적용 성공 여부

    • 스냅샷 삭제

      Parameters

      • id: string

        스냅샷 ID

      Returns boolean

      삭제 성공 여부

    • 스냅샷 메타데이터 업데이트

      Parameters

      • id: string

        스냅샷 ID

      • updates: { name?: string; description?: string }

        변경할 필드

      Returns boolean

      업데이트 성공 여부

    • 현재 활성 스냅샷 ID

      Returns string | null

    • 스냅샷 세션 초기화 (모든 스냅샷 삭제)

      Returns void

    • Returns a complete performance report snapshot. 전체 성능 리포트 스냅샷을 반환합니다.

      Returns PerformanceReport

      Performance report with renderer stats, scene stats, GPU info, memory info 렌더러 통계, 씬 통계, GPU 정보, 메모리 정보가 포함된 성능 리포트

    • Prints a formatted performance report to the console. 성능 리포트를 콘솔에 포맷팅하여 출력합니다.

      Returns void

    • Prints the current health status to console. 현재 건강 상태를 콘솔에 출력합니다.

      Returns void

    • Returns the last import session report. 마지막 임포트 세션 리포트를 반환합니다.

      Returns ImportReport | null

    • Returns the last import performance report collected during a bulk node load. 대량 노드 로드 중 수집된 마지막 임포트 성능 리포트를 반환합니다.

      Returns ImportPerformanceReport | null

      The last performance report, or null if none has been produced 마지막 성능 리포트 또는 null (생성된 적 없을 때)

    • Prints the last import performance report to console and returns it as markdown. 마지막 임포트 성능 리포트를 콘솔에 출력하고 마크다운 문자열로 반환합니다.

      Returns string

      Markdown-formatted report string, or empty string if no report exists 마크다운 형식 리포트 문자열 또는 빈 문자열 (리포트 없을 때)

    • Prints the last worker-loading step-1 profile as markdown and returns it. 마지막 워커 로딩 1단계 프로파일을 마크다운으로 출력하고 반환합니다.

      Returns string

      Markdown-formatted profile string, or empty string if none exists 마크다운 형식 프로파일 문자열 또는 빈 문자열 (프로파일 없을 때)

      워커 이관 go/no-go의 핵심 숫자인 syncCPU/wallclock 비율을 포함하여, 로드 중 loadOptimized가 소비한 메인스레드 동기 CPU 구간과 async I/O 대기를 분리해 보여줍니다. copy(window.viewer.printImportProfile())로 클립보드 복사할 수 있습니다. Includes the syncCPU/wallclock ratio (the worker-offload go/no-go number), splitting main-thread synchronous CPU spans from async I/O wait consumed during load. Copy via copy(window.viewer.printImportProfile()).

    • Runs an automated render benchmark and returns a markdown report. 자동 렌더 벤치마크를 실행하고 마크다운 리포트를 반환합니다.

      Parameters

      • durationSec: number = 5

        (optional) Benchmark duration in seconds (default: 5) (선택적) 측정 시간 (초, 기본: 5)

      Returns Promise<string>

      Promise that resolves with the markdown report (empty when not ready) 마크다운 리포트로 resolve되는 Promise (뷰어 미준비 시 빈 문자열)

      For reproducibility the camera orbits the controls target exactly once over the duration, forcing a render every frame while sampling frame times and renderer.info (draw calls/triangles accumulated across all passes of a frame). Controls are disabled during the run and the camera, controls and renderer info settings are restored afterwards. Copy the result from the console via copy(await viewer.benchRender()). 재현성을 위해 카메라가 컨트롤 타깃을 중심으로 측정 시간 동안 정확히 1회전하며, 매 프레임 렌더를 강제하고 프레임 시간과 renderer.info(한 프레임의 전 패스 누적 드로우콜/삼각형)를 수집합니다. 실행 중 컨트롤은 비활성화되며 종료 시 카메라/컨트롤/renderer info 설정이 복원됩니다. 콘솔에서 copy(await viewer.benchRender())로 결과를 복사할 수 있습니다.

    • 이벤트 구독

      Type Parameters

      Parameters

      • event: K

        이벤트 이름

      • callback: (data: Voxel3DEvents[K]) => void

        콜백 함수

      Returns () => void

      구독 해제 함수

    • 모델 계층 구조를 SceneGraph에 등록

      Parameters

      • rootObject: Object3D

        루트 Object3D

      • modelName: string

        모델 이름

      Returns string

      생성된 루트 노드 ID

    • SceneGraph에서 노드 삭제

      Parameters

      • nodeId: string

        노드 ID

      Returns void

    • SceneGraph 노드 visible 설정

      Parameters

      • nodeId: string

        노드 ID

      • visible: boolean

        visible 여부

      Returns void

    • SceneGraph 트리를 콘솔에 출력

      Returns void

    • JSON 트리 구조를 import

      Parameters

      • jsonOrUrl: string | JsonTreeNode

        JSON 객체 또는 JSON 파일 URL

      • basePath: string

        GLTF 파일의 기본 경로

      Returns Promise<string>

      생성된 루트 노드 ID

    • 체크된 노드 중 미로드된 모델들을 일괄 로드

      Returns Promise<void>

      로드 결과

    • GLTF 폴더 선택 (File System Access API)

      Returns Promise<boolean>

      선택 성공 여부

    • 파일 목록 로드 (3D 모델 또는 JSON 트리)

      Parameters

      • files: FileList

        FileList 객체

      Returns Promise<ImportResult[]>

      로드 결과 배열

    • URL에서 모델 로드

      Parameters

      • url: string

        모델 URL

      Returns Promise<ImportResult>

      로드 결과

    • 특정 노드 로드 (JSON 트리에서 filePath 기반)

      Parameters

      • nodeId: string

        노드 ID

      Returns Promise<void>

    • Import 리소스 정리 (Blob URL 해제 등)

      Returns void

      누락 텍스처 목록도 함께 비웁니다. 씬이 사라진 뒤에도 목록을 들고 있으면 dispose된 머티리얼 참조가 GC를 막고, 이후 재적용이 죽은 머티리얼에 조용히 쓰게 됩니다.

    • Returns textures the loaded model declares but whose files were not supplied. 로드된 모델이 선언했으나 파일이 제공되지 않은 텍스처 목록을 반환합니다.

      Returns MissingTextureEntry[]

      Snapshot array of missing entries; empty when nothing is missing 누락 항목 스냅샷 배열. 누락이 없으면 빈 배열

      Only external image references in GLTF are tracked. GLB, data: uris and embedded (bufferView) images can never appear here. GLTF의 외부 이미지 참조만 추적합니다. GLB, data: uri, 임베디드(bufferView) 이미지는 여기에 나타나지 않습니다.

    • Fills missing texture slots by matching supplied image files on file name. 제공된 이미지 파일을 파일명으로 매칭하여 누락 텍스처 슬롯을 채웁니다.

      Parameters

      • files: FileList | File[]

        Image files (File[] or FileList). Matching is by basename, case-insensitive. Extra files are ignored. 이미지 파일. 매칭은 basename 기준 대소문자 무시. 여분 파일은 무시됩니다

      Returns Promise<MissingTextureResolveResult>

      Promise resolving with which entries were resolved and which remain 어떤 항목이 해결되고 어떤 항목이 남았는지로 resolve되는 Promise

      The model is never reparsed; only texture slots are assigned, so camera, selection and measurement state is preserved. Partial resolution is supported — supplying 4 of 6 files resolves those 4. 모델을 재파싱하지 않고 텍스처 슬롯만 대입하므로 카메라/선택/측정 상태가 보존됩니다. 부분 해결을 지원합니다 — 6개 중 4개를 주면 그 4개만 해결됩니다.

      const result = await viewer.resolveMissingTextures(files);
      console.log(`${result.resolved.length} resolved, ${result.remaining.length} left`);
    • Clears the missing texture list without filling any slot. 슬롯을 채우지 않고 누락 텍스처 목록을 비웁니다.

      Returns void

    • Clears the model cache. 모델 캐시를 초기화합니다.

      Returns Promise<boolean>

      Whether clear succeeded 초기화 성공 여부

    • Returns model cache statistics. 모델 캐시 통계를 반환합니다.

      Returns ModelCacheStats | null

      Cache statistics or null if cache is not available 캐시 통계 또는 null (캐시 미사용 시)

    • Enables or disables the file-overlap optimization path used during GLTF import. GLTF 임포트 시 사용되는 파일 오버랩 최적화 경로를 켜거나 끕니다.

      Parameters

      • enabled: boolean

        Whether to enable the overlap optimization path 오버랩 최적화 경로 활성화 여부

      Returns void

      When enabled the importer takes the overlap-optimized load path; when disabled it falls back to the legacy loadWithFiles path. This is a stable rollout toggle (not a temporary debug flag) intended to ease import performance benchmarking. 활성화 시 임포터는 오버랩 최적화 로드 경로를 사용하며, 비활성화 시 기존 loadWithFiles 경로로 폴백합니다. 이 설정은 임시 디버그 플래그가 아니라 롤아웃 기간 동안 유지되는 정식 토글로, import 성능 측정을 돕기 위한 것입니다.

    • Returns whether the GLTF import file-overlap optimization path is enabled. GLTF 임포트 파일 오버랩 최적화 경로의 활성화 여부를 반환합니다.

      Returns boolean

      true if the overlap optimization path is enabled, otherwise false. Defaults to true when the importer is not initialized. 오버랩 최적화 경로가 활성화되어 있으면 true, 아니면 false. 임포터가 초기화되지 않은 경우 기본값 true를 반환합니다.

    • Enables or disables the BIN cache injection path used during GLTF import. GLTF 임포트 시 사용되는 BIN 캐시 주입 경로를 켜거나 끕니다.

      Parameters

      • enabled: boolean

        Whether to enable the BIN cache injection path BIN 캐시 주입 경로 활성화 여부

      Returns void

      When enabled the GLTF loader injects decoded BIN buffers into the shared Three.js cache to skip redundant fetch/decode work. Disabling it isolates the cache-injection contribution for import performance benchmarking (perf item #1). No-op when the importer is not initialized. 활성화 시 GLTF 로더는 디코드된 BIN 버퍼를 공유 Three.js 캐시에 주입하여 중복 fetch/decode 작업을 건너뜁니다. 비활성화하면 캐시 주입의 기여도를 분리하여 import 성능(perf #1)을 측정할 수 있습니다. 임포터가 초기화되지 않은 경우 아무 동작도 하지 않습니다.

    • Returns whether the GLTF import BIN cache injection path is enabled. GLTF 임포트 BIN 캐시 주입 경로의 활성화 여부를 반환합니다.

      Returns boolean

      true if the BIN cache injection path is enabled, otherwise false. Defaults to true when the importer is not initialized. BIN 캐시 주입 경로가 활성화되어 있으면 true, 아니면 false. 임포터가 초기화되지 않은 경우 기본값 true를 반환합니다.

    • Enables or disables worker-based GLTF parsing used during import. 임포트 시 사용되는 Worker 기반 GLTF 파싱을 켜거나 끕니다.

      Parameters

      • enabled: boolean

        Whether to enable worker-based GLTF parsing Worker 기반 GLTF 파싱 활성화 여부

      Returns void

      When enabled the JSON node-load path offloads GLTF/GLB parsing to a Worker pool, packing external-resource GLTF into an in-memory GLB first (decision A). Inputs the lightweight worker parser cannot handle (compression/skin/morph/ sparse) silently fall back to the main thread with byte-identical results. Disabling it forces main-thread parsing, isolating the worker-parse contribution for import performance benchmarking. No-op when the importer is not initialized. 활성화 시 JSON 노드 로드 경로는 GLTF/GLB 파싱을 Worker 풀로 오프로딩하며, 외부 리소스 GLTF는 먼저 in-memory GLB로 팩합니다(결정 A). 경량 worker 파서가 처리할 수 없는 입력(압축/스킨/morph/sparse)은 바이트 단위로 동일한 결과로 조용히 메인스레드로 폴백합니다. 비활성화하면 메인스레드 파싱을 강제하여 worker 파싱의 기여도를 분리해 측정할 수 있습니다. 임포터가 초기화되지 않은 경우 아무 동작도 하지 않습니다.

    • Returns whether worker-based GLTF parsing for import is enabled. 임포트 시 Worker 기반 GLTF 파싱의 활성화 여부를 반환합니다.

      Returns boolean

      true if worker-based GLTF parsing is enabled, otherwise false. Defaults to false when the importer is not initialized. Worker 기반 GLTF 파싱이 활성화되어 있으면 true, 아니면 false. 임포터가 초기화되지 않은 경우 기본값 false를 반환합니다.

    • Enables or disables the worker/main-thread 1:1 parse comparison mode. worker/메인스레드 1:1 파싱 비교 모드를 켜거나 끕니다.

      Parameters

      • enabled: boolean

        Whether to enable the parse comparison mode 파싱 비교 모드 활성화 여부

      Returns void

      Debug-only verification mode (design §4.3). When enabled and the worker path is taken, the same packed GLB is also parsed on the main thread and the two results (mesh/vertex/material/animation counts) are compared, logging any mismatch to the console. The worker result is still adopted. Intended to detect fidelity differences (e.g. color space); off by default and not for production. No-op when the importer is not initialized. 디버그 전용 검증 모드(설계 §4.3). 활성화 후 worker 경로를 타면 동일한 팩 GLB를 메인스레드에서도 파싱하여 두 결과(메시/정점/머티리얼/애니메이션 수)를 비교하고 불일치를 콘솔에 로깅합니다. worker 결과는 그대로 채택됩니다. 충실도 차이(예: 색공간) 탐지용이며 기본 off, 운영 비권장입니다. 임포터가 초기화되지 않은 경우 아무 동작도 하지 않습니다.

    • Returns whether the worker/main-thread parse comparison mode is enabled. worker/메인스레드 파싱 비교 모드의 활성화 여부를 반환합니다.

      Returns boolean

      true if the comparison mode is enabled, otherwise false. Defaults to false when the importer is not initialized. 비교 모드가 활성화되어 있으면 true, 아니면 false. 임포터가 초기화되지 않은 경우 기본값 false를 반환합니다.

    • Enables or disables the worker-loading PoC decode path used during import. 임포트 시 사용되는 워커 로딩 PoC 디코드 경로를 켜거나 끕니다.

      Parameters

      • enabled: boolean

        Whether to enable the worker-loading decode path 워커 로딩 디코드 경로 활성화 여부

      Returns void

      Worker-loading gate (workerLoadPoC, default ON). When enabled, external-resource GLTF files are decoded on a robust LoadWorkerPool off the main thread (file handles read inside the worker, zero main-to-worker copy) and assembled on the main thread; any unsupported/failed input silently falls back to main-thread parsing with no loss. Promoted to default ON after measurement (365 files/314MB: 8.0s to 1.74s, 4.6x). No-op when the importer is not initialized. 워커 로딩 게이트(workerLoadPoC, 기본 ON). 활성화 시 외부 리소스 GLTF 파일을 견고 LoadWorkerPool에서 메인 스레드 밖으로 디코드(파일 핸들을 워커가 직접 읽음, 메인→워커 복사 0)하고 메인에서 조립합니다. 미지원/실패 입력은 메인스레드 파싱으로 무손실 폴백합니다. 실측(365파일/314MB: 8.0s→1.74s, 4.6배) 후 기본 ON으로 승격. 임포터가 초기화되지 않은 경우 아무 동작도 하지 않습니다.

    • Returns whether the worker-loading decode path for import is enabled. 임포트 시 워커 로딩 디코드 경로의 활성화 여부를 반환합니다.

      Returns boolean

      true if enabled, otherwise false. Defaults to true (engine default) when the importer is not initialized. 활성화되어 있으면 true, 아니면 false. 임포터가 초기화되지 않은 경우 엔진 기본값 true를 반환합니다.

    • Overrides the concurrency used by the JSON node-load path. JSON 노드 로드 경로의 동시성을 오버라이드합니다.

      Parameters

      • value: number | null

        Concurrency level, or null to use the default 동시성 값, 또는 기본값 사용 시 null

      Returns void

      import 병목이 I/O-bound인지 CPU(parse)-bound인지 가리기 위한 계측용 노브입니다. 동시성을 올렸을 때 wall-clock이 줄면 I/O-bound, 변화가 없으면 parse-bound입니다. null을 전달하면 기본값(IMPORTER_DEFAULTS.maxConcurrent)으로 복원합니다. Benchmark knob to distinguish I/O-bound vs CPU(parse)-bound import. If raising concurrency reduces wall-clock, the load is I/O-bound; otherwise parse-bound. Pass null to restore the default.

    • Returns the effective node-load concurrency. 노드 로드의 유효 동시성을 반환합니다.

      Returns number

      The override value if set, otherwise the default concurrency. 오버라이드가 설정되어 있으면 그 값, 아니면 기본 동시성.

    • Enables or disables render suppression while a model is loading. 모델 로드 중 렌더 억제를 켜거나 끕니다.

      Parameters

      • enabled: boolean

        Whether to enable render suppression during load 로드 중 렌더 억제 활성화 여부

      Returns void

      When enabled the batch render queue defers intermediate batch renders to the on-demand RAF loop (requestRender) instead of rendering each batch synchronously. Disabling it forces synchronous per-batch rendering, which isolates the suppression contribution for import performance benchmarking (perf item #2). No-op when the batch render queue is not initialized. 활성화 시 배치 렌더 큐는 중간 배치 렌더를 동기 렌더 대신 on-demand RAF 루프(requestRender)로 지연시킵니다. 비활성화하면 배치마다 동기 렌더를 강제하여 억제의 기여도를 분리하고 import 성능(perf #2)을 측정할 수 있습니다. 배치 렌더 큐가 초기화되지 않은 경우 아무 동작도 하지 않습니다.

    • Returns whether render suppression during load is enabled. 로드 중 렌더 억제의 활성화 여부를 반환합니다.

      Returns boolean

      true if render suppression during load is enabled, otherwise false. Defaults to true when the batch render queue is not initialized. 로드 중 렌더 억제가 활성화되어 있으면 true, 아니면 false. 배치 렌더 큐가 초기화되지 않은 경우 기본값 true를 반환합니다.

    • Returns the current scene add mode. 현재 씬 추가 모드를 반환합니다.

      Returns SceneAddMode

      'progressive' | '1/2' | '1/3' | '1/5' | 'onComplete' 'progressive' | '1/2' | '1/3' | '1/5' | 'onComplete'

    • Sets the scene add mode. Takes effect on the next import. 씬 추가 모드를 설정합니다. 다음 import부터 적용됩니다.

      Parameters

      • mode: SceneAddMode

        Scene add mode ('progressive' | '1/2' | '1/3' | '1/5' | 'onComplete') 씬 추가 모드 ('progressive' | '1/2' | '1/3' | '1/5' | 'onComplete')

      Returns void

      'progressive' adds each loaded root object to the scene as its file completes. 'onComplete' buffers them and adds everything in one pass at load completion, before the camera fit and the BatchedMesh swap. The fractional modes ('1/2' | '1/3' | '1/5') buffer objects and drain the buffer each time overall progress (completedFiles/totalFiles) crosses a 1/n boundary; the final remainder is added at load completion. An in-flight import keeps the mode it started with. 'progressive'는 파일 완료마다 로드된 루트 오브젝트를 씬에 즉시 추가합니다. 'onComplete'는 버퍼에 축적했다가 로드 완료 시점에 일괄 추가합니다 (카메라 맞춤·BatchedMesh 스왑보다 먼저). 분수 모드 ('1/2' | '1/3' | '1/5')는 버퍼에 축적하다가 전체 진행률 (completedFiles/totalFiles)이 1/n 경계를 넘을 때마다 일괄 추가하며, 마지막 잔여분은 로드 완료 시점에 추가됩니다. 진행 중인 import는 시작 시점의 모드를 유지합니다.

    • 배치 렌더링 활성화 (또는 배치 크기 변경)

      Parameters

      • OptionalbatchSize: number

        배치 크기 (기본: 30)

      Returns void

      기본적으로 활성화되어 있습니다. 이 메서드는 배치 크기를 변경하거나, disableBatchRendering() 후 재활성화할 때 사용합니다.

      // 배치 크기 변경
      viewer.enableBatchRendering(50);

      // 이벤트 구독
      viewer.on('batchRender:batchComplete', (event) => {
      console.log(`Batch ${event.batchIndex}: ${event.count} objects`);
      });
    • 배치 렌더링 비활성화

      Returns void

      큐에 남아있는 오브젝트가 있으면 모두 플러시 후 비활성화합니다.

    • 배치 렌더 큐 플러시

      Returns void

      배치 크기에 미달하는 남은 오브젝트들을 즉시 렌더링합니다.

    • 배치 렌더 큐 통계 반환

      Returns { queueSize: number; totalRendered: number; totalBatches: number } | null

    • Returns whether BatchedMesh-based draw-call merging is enabled. BatchedMesh 기반 드로우 콜 병합 활성화 여부를 반환합니다.

      Returns boolean

      true if the batched rendering gate is on 배치 렌더링 게이트가 켜져 있으면 true

    • Enables or disables BatchedMesh-based draw-call merging (default: on). BatchedMesh 기반 드로우 콜 병합을 켜거나 끕니다 (기본: on).

      Parameters

      • enabled: boolean

        Whether to enable the batched rendering gate 배치 렌더링 게이트 활성화 여부

      Returns void

      Takes effect on the next load completion. Disabling does not restore already-batched meshes (source geometries are disposed at swap time); reload the models to return to the per-mesh path. 다음 로드 완료 시점부터 적용됩니다. 비활성화해도 이미 배치된 메시는 복원되지 않습니다(스왑 시점에 소스 지오메트리를 dispose). per-mesh 경로로 돌아가려면 모델을 다시 로드해야 합니다.

    • Transform Gizmo 활성화

      Returns void

      선택된 오브젝트에 Transform Gizmo를 부착합니다. 선택된 오브젝트가 없으면 아무 동작도 하지 않습니다.

    • Transform Gizmo 비활성화

      Returns void

    • Transform 초기값 복원

      Returns void

      attach 시점의 matrix로 되돌립니다. Undo 히스토리에 기록됩니다.

    • Transform 대상 오브젝트 설정

      Parameters

      • object: Object3D<Object3DEventMap> | null

        대상 오브젝트 (null이면 해제)

      Returns void

    • Transform Undo

      Returns void

    • Transform Redo

      Returns void

    • Transform 스냅 설정

      Parameters

      • snap: { translation?: number | null; rotation?: number | null; scale?: number | null }

        스냅 설정 객체

        • Optionaltranslation?: number | null

          이동 스냅 단위 (null이면 비활성)

        • Optionalrotation?: number | null

          회전 스냅 단위 (라디안, null이면 비활성)

        • Optionalscale?: number | null

          스케일 스냅 단위 (null이면 비활성)

      Returns void

    • Transform Gizmo 시각적 표시 설정

      Parameters

      • visible: boolean

        표시 여부

      Returns void

      Transform 모드 상태는 유지하면서 Gizmo만 숨기거나 표시합니다. 패널 전환 시 시각적 요소만 제어할 때 사용합니다.

    • Transform Gizmo 표시 여부 반환

      Returns boolean

    • Material 편집 대상 선택

      Parameters

      • mesh: Mesh

        편집할 메시

      Returns void

      배치로 병합된 인스턴스(BatchedMesh 픽)가 전달되면 해당 노드를 자동 이탈(eject)시키고 standalone 메시를 편집 대상으로 선택합니다. 이후 편집은 기존 per-mesh 경로 그대로 동작합니다.

    • Material 편집 대상 해제

      Returns void

    • Material 색상 설정

      Parameters

      • color: Color

        새 색상

      Returns void

    • Material Roughness 설정

      Parameters

      • roughness: number

        Roughness 값 (0-1)

      • OptionalrecordHistory: boolean

        히스토리 기록 여부 (기본: true)

      Returns void

    • Material Metalness 설정

      Parameters

      • metalness: number

        Metalness 값 (0-1)

      • OptionalrecordHistory: boolean

        히스토리 기록 여부 (기본: true)

      Returns void

    • Material EnvMap 강도 설정

      Parameters

      • intensity: number

        EnvMap 강도 값 (0-3)

      • OptionalrecordHistory: boolean

        히스토리 기록 여부 (기본: true)

      Returns void

    • Material HSL 조정

      Parameters

      • adjustments: { hue?: number; saturation?: number; brightness?: number }

        HSL 조정값 (hue, saturation, brightness)

      • OptionalrecordHistory: boolean

        히스토리 기록 여부 (기본: true)

      Returns void

    • Material 원본 복원

      Returns void

      편집 대상이 배치 이탈 메시이면 원본 복원 후 편집 대상을 해제하고 배치로 복귀시킵니다 (드로우 콜 원복).

    • Material Undo

      Returns boolean

      성공 여부

    • Material Redo

      Returns boolean

      성공 여부

    • Texture 편집 대상 선택

      Parameters

      • mesh: Mesh

        편집할 메시

      Returns void

      배치로 병합된 인스턴스(BatchedMesh 픽)가 전달되면 해당 노드를 자동 이탈(eject)시키고 첫 standalone 메시를 편집 대상으로 선택합니다.

    • Texture 편집 대상 해제

      Returns void

    • 마크업 시스템 활성화/비활성화

      Parameters

      • enabled: boolean

        활성화 여부

      Returns void

    • 마크업 시스템 활성화 상태 확인

      Returns boolean

    • 마크업 추가 모드 종료

      Returns void

    • 마크업 선택

      Parameters

      • markupId: string

        마크업 ID

      Returns void

    • 마크업 선택 해제

      Returns void

    • 마크업 삭제

      Parameters

      • markupId: string

        마크업 ID

      Returns boolean

      삭제 성공 여부

    • 모든 마크업 삭제

      Returns void

    • 마크업 데이터 조회

      Parameters

      • markupId: string

        마크업 ID

      Returns MarkupData | null

      마크업 데이터

    • ViewCube 표시 여부 설정

      Parameters

      • visible: boolean

        표시 여부

      Returns void

    • ViewCube 활성화 여부 설정

      Parameters

      • enabled: boolean

        활성화 여부

      Returns void

    • ViewCube 코너 위치 설정

      Parameters

      • corner: ViewCubeCorner

        코너 위치

      Returns void

    • ViewCube 크기 설정

      Parameters

      • size: number

        크기 (px)

      Returns void

    • ViewCube 면 라벨 설정

      Parameters

      • labels: Partial<ViewCubeFaceLabels>

        면 라벨

      Returns void

    • ViewCube 코너 기준 오프셋 설정

      Parameters

      • offsetX: number

        X축 오프셋 (px, 안쪽 방향)

      • offsetY: number

        Y축 오프셋 (px, 안쪽 방향)

      Returns void

    • 로그 구독

      Parameters

      • handler: LogHandler

        LogEntry를 수신하는 핸들러 함수

      Returns () => void

      구독 해제 함수

    • Analytics 이벤트 핸들러 설정

      Parameters

      • handler: AnalyticsHandler | null

        Analytics 핸들러 (null이면 해제)

      Returns void

      주요 사용자 액션(import, transform, clipping 등) 발생 시 콜백이 호출됩니다. gtag, Mixpanel 등 외부 analytics 서비스와 연동할 수 있습니다.

    • 리소스 cleanup

      Returns void