viewer:ready
"viewer:ready": undefined
viewer:stateChange
viewer:resize
"viewer:resize": { width: number; height: number }
viewer:frame
"viewer:frame": { delta: number; elapsed: number }
viewer:error
"viewer:error": { error: Error; context?: string }
viewer:disposed
"viewer:disposed": undefined
viewer:select
"viewer:select": SelectionEvent
viewer:scene:change
"viewer:scene:change": { settings: SceneSettings }
viewer:scene:theme
"viewer:scene:theme": { theme: SceneTheme }
viewer:clipping:create
"viewer:clipping:create": { planeId: string; axis: string }
viewer:clipping:delete
"viewer:clipping:delete": { planeId: string }
viewer:clipping:change
"viewer:clipping:change": { planeId: string; constant: number }
viewer:clipping:toggle
"viewer:clipping:toggle": { enabled: boolean }
viewer:clipping:modeChange
"viewer:clipping:modeChange": { side: ClipSide } viewer:clipping:planeSideChange
"viewer:clipping:planeSideChange": { planeId: string; side: ClipSide } viewer:clipping:edgeVisibleChange
"viewer:clipping:edgeVisibleChange": { visible: boolean }
viewer:clipping:edgeColorChange
"viewer:clipping:edgeColorChange": { color: number }
viewer:clipping:edgeLineWidthChange
"viewer:clipping:edgeLineWidthChange": { width: number }
viewer:clipping:preciseEdgeChange
"viewer:clipping:preciseEdgeChange": { enabled: boolean }
viewer:clipping:gizmoVisibleChange
"viewer:clipping:gizmoVisibleChange": { visible: boolean }
viewer:clipping:boundsVisibleChange
"viewer:clipping:boundsVisibleChange": { visible: boolean }
viewer:clipping:select
"viewer:clipping:select": {
planeId: string | null;
previousPlaneId: string | null;
}
viewer:clipping:dragChange
"viewer:clipping:dragChange": { planeId: string; dragging: boolean }
viewer:clipping:restore
"viewer:clipping:restore": { planeCount: number }
viewer:clipping:alignModeChange
"viewer:clipping:alignModeChange": { planeId: string | null; enabled: boolean }
viewer:clipping:align
"viewer:clipping:align": {
planeId: string;
normal: [number, number, number];
point: [number, number, number];
}
viewer:clipping:scopeChange
"viewer:clipping:scopeChange": { meshCount: number | null }
viewer:clipping:sectionBoxChange
"viewer:clipping:sectionBoxChange": {
enabled: boolean;
min: [number, number, number] | null;
max: [number, number, number] | null;
}
viewer:clipping:slabChange
"viewer:clipping:slabChange": {
enabled: boolean;
normal: [number, number, number] | null;
center: number | null;
thickness: number | null;
}
viewer:measure:start
viewer:measure:complete
viewer:measure:cancel
"viewer:measure:cancel": undefined
viewer:measure:preview
"viewer:measure:preview": undefined
viewer:measure:added
viewer:measure:deleted
"viewer:measure:deleted": { id: string }
viewer:measure:cleared
"viewer:measure:cleared": undefined
viewer:measure:analysisReady
"viewer:measure:analysisReady": Record<string, never>
viewer:measure:analysisProgress
"viewer:measure:analysisProgress": {
current: number;
total: number;
meshId: string;
}
viewer:measure:labelMoved
"viewer:measure:labelMoved": { id: string; position: Vector3 }
viewer:sceneGraph:nodeAdded
"viewer:sceneGraph:nodeAdded": { node: SceneNode } viewer:sceneGraph:nodeRemoved
"viewer:sceneGraph:nodeRemoved": { node: SceneNode } viewer:sceneGraph:visibilityChange
"viewer:sceneGraph:visibilityChange": { nodeId: string; visible: boolean; state: NodeState; prevState: NodeState;} viewer:sceneGraph:selectionChange
"viewer:sceneGraph:selectionChange": { selectedIds: string[] }
viewcube:hover
"viewcube:hover": ViewCubeHoverEvent
viewcube:click
"viewcube:click": ViewCubeClickEvent
viewcube:animationStart
"viewcube:animationStart": ViewCubeAnimationStartEvent
viewcube:animationEnd
"viewcube:animationEnd": ViewCubeAnimationEndEvent
import:progress
import:fileComplete
import:complete
import:report
"import:report": ImportPerformanceReport
import:error
"import:error": { error: Error; fileName?: string }
import:texture:missing
"import:texture:missing": {
entries: MissingTextureEntry[];
sourceModel: string;
}
import:texture:resolved
"import:texture:resolved": { resolved: string[]; remaining: string[] }
import:texture:cleared
"import:texture:cleared": undefined
batchRender:batchComplete
"batchRender:batchComplete": BatchRenderedEvent
batchRender:allComplete
"batchRender:allComplete": AllRenderedEvent
bvh:complete
"bvh:complete": { buildTime: number; objectCount: number }
viewer:batched:build
"viewer:batched:build": {
batchCount: number;
instanceCount: number;
skippedCount: number;
buildTimeMs: number;
}
viewer:batched:dispose
"viewer:batched:dispose": { batchCount: number }
viewer:batched:instanceEject
"viewer:batched:instanceEject": { nodeId: string }
"transform:start": { object: Object3D }
"transform:modeChange": { enabled: boolean }
material:select
"material:select": { mesh: Mesh }
material:deselect
"material:deselect": {
previousMesh:
| Mesh<
BufferGeometry<NormalBufferAttributes, BufferGeometryEventMap>,
Material<MaterialEventMap> | Material<MaterialEventMap>[],
Object3DEventMap,
>
| null;
}
material:change
"material:change": MaterialChangeEvent
material:undo
"material:undo": { mesh: Mesh }
material:redo
"material:redo": { mesh: Mesh }
material:reset
"material:reset": { mesh: Mesh }
texture:select
texture:deselect
"texture:deselect": { mesh: Mesh }
texture:change
"texture:change": TextureChangeEvent
texture:load
texture:remove
animation:play
"animation:play": AnimationEventData
animation:pause
"animation:pause": AnimationEventData
animation:stop
"animation:stop": AnimationEventData
markup:created
"markup:created": { id: string; type: MarkupType } markup:updated
"markup:updated": { id: string; type: MarkupType } markup:deleted
"markup:deleted": { id: string; type: MarkupType } markup:selected
"markup:selected": { id: string; type: MarkupType } | null markup:modeChange
viewer:camera:fit
"viewer:camera:fit": {
target: { x: number; y: number; z: number };
mode: "object" | "bounds";
}
viewer:camera:upAxis
"viewer:camera:upAxis": { axis: UpAxis; upVector: Position3D } viewer:camera:flipUp
"viewer:camera:flipUp": { upVector: Position3D }
viewer:camera:fixedUp
"viewer:camera:fixedUp": { fixed: boolean }
viewer:camera:projectionChange
"viewer:camera:projectionChange": { mode: ProjectionMode }
viewer:camera:navigationMode
"viewer:camera:navigationMode": { mode: NavigationMode }
viewer:camera:mouseControlMode
"viewer:camera:mouseControlMode": { mode: MouseControlMode }
viewer:camera:view
"viewer:camera:view": { view: StandardView; animated: boolean }
viewer:camera:upVector
"viewer:camera:upVector": {
dir: UpVectorDir;
up: Position3D;
animated: boolean;
}
viewer:snapshot:create
viewer:snapshot:apply
"viewer:snapshot:apply": { snapshotId: string }
viewer:snapshot:delete
"viewer:snapshot:delete": { snapshotId: string }
viewer:snapshot:import
viewer:snapshot:clear
"viewer:snapshot:clear": undefined
cache:hit
"cache:hit": { key: string }
cache:miss
"cache:miss": { key: string; reason?: string }
cache:store
"cache:store": { key: string; byteSize?: number }
cache:clear
"cache:clear": undefined
cache:evict
"cache:evict": { key: string }
cache:error
"cache:error": { key: string; error?: string }
뷰어 event map