Skip to content

Class: Viewer

Defined in: packages/viewer-core/src/public/Viewer.ts:52

.fmbv 渲染引擎的唯一公开入口。

持有 WebGL 渲染管线与场景,把能力按域拆给 14 个只读 manager 属性 (model / camera / selection / section / explode 等);事件经 on() / once() 订阅。典型流程:Viewer.create(canvas)viewer.model.load(url) → 经各 manager 操作 → 不再使用时 dispose()

Properties

background

readonly background: BackgroundManager

Defined in: packages/viewer-core/src/public/Viewer.ts:72

画布背景(纯色 / 渐变 / 图片 / 透明)。


camera

readonly camera: CameraManager

Defined in: packages/viewer-core/src/public/Viewer.ts:56

相机位姿、标准视图、zoom-to-fit 与交互控制。


diagnostics

readonly diagnostics: DiagnosticsManager

Defined in: packages/viewer-core/src/public/Viewer.ts:68

LOD 等调试诊断查询。


edges

readonly edges: EdgesManager

Defined in: packages/viewer-core/src/public/Viewer.ts:60

全局边线显示开关、颜色与不透明度。


explode

readonly explode: ExplodeManager

Defined in: packages/viewer-core/src/public/Viewer.ts:76

零件爆炸(散开 / 锁定 / 动画)。


export

readonly export: ExportManager

Defined in: packages/viewer-core/src/public/Viewer.ts:74

矢量 SVG 工程图导出(消隐线条)。


lights

readonly lights: LightsManager

Defined in: packages/viewer-core/src/public/Viewer.ts:64

场景光源的增删与强度调整。


model

readonly model: ModelManager

Defined in: packages/viewer-core/src/public/Viewer.ts:54

模型加载 / 卸载、结构树查询与节点级外观控制。


readonly navcube: NavCubeManager

Defined in: packages/viewer-core/src/public/Viewer.ts:70

画布角落导航立方体的开关 / 停靠 / 尺寸。


quality

readonly quality: RenderQualityManager

Defined in: packages/viewer-core/src/public/Viewer.ts:80

渲染质量(抗锯齿 / AO / 色调映射 / 质量档)。


renderMode

readonly renderMode: RenderModeManager

Defined in: packages/viewer-core/src/public/Viewer.ts:62

全局与按节点的渲染模式(实色线框 / 线框 / 实色 / 消隐)。


section

readonly section: SectionManager

Defined in: packages/viewer-core/src/public/Viewer.ts:78

剖切 section 与盖面 / gizmo 交互。


selection

readonly selection: SelectionManager

Defined in: packages/viewer-core/src/public/Viewer.ts:58

点击 / 框选 / 程序化选中与 hover 高亮。


stats

readonly stats: StatsView

Defined in: packages/viewer-core/src/public/Viewer.ts:66

加载与渲染统计快照(fps / 帧时 / chunk 进度等)。

Methods

dispose()

dispose(): void

Defined in: packages/viewer-core/src/public/Viewer.ts:501

销毁 viewer:停止渲染循环、释放全部 GPU 资源与事件订阅。幂等(重复 调用静默返回);销毁后再调各 manager 的方法会抛 ViewerError(Disposed)。

Returns

void


off()

off<K>(event, handler): void

Defined in: packages/viewer-core/src/public/Viewer.ts:475

取消订阅(需传入与 on 时相同的 handler 引用);已销毁时静默返回。

Type Parameters

K

K extends keyof ViewerEvents

Parameters

event

K

handler

(e) => void

Returns

void


on()

on<K>(event, handler): () => void

Defined in: packages/viewer-core/src/public/Viewer.ts:469

订阅一个 viewer 事件(事件清单与 payload 见 ViewerEvents), 返回取消订阅函数;已销毁时抛 ViewerError(Disposed)。

Type Parameters

K

K extends keyof ViewerEvents

Parameters

event

K

handler

(e) => void

Returns

() => void


once()

once<K>(event, handler): () => void

Defined in: packages/viewer-core/src/public/Viewer.ts:481

订阅一个事件且只触发一次,返回取消订阅函数;已销毁时抛 ViewerError(Disposed)。

Type Parameters

K

K extends keyof ViewerEvents

Parameters

event

K

handler

(e) => void

Returns

() => void


resize()

resize(): void

Defined in: packages/viewer-core/src/public/Viewer.ts:492

将渲染器与相机宽高比重新同步到 canvas 当前的 CSS 尺寸。引擎已通过 ResizeObserver 自动处理尺寸变化,宿主通常无需调用——这是一个显式的 逃生口,供宿主在浏览器完成布局前就已知晓布局变化时使用。已销毁时 静默返回。

Returns

void


create()

static create(canvas, options?): Promise<Viewer>

Defined in: packages/viewer-core/src/public/Viewer.ts:458

创建并启动一个 Viewer 实例(唯一构造入口;构造函数私有)。 在给定 canvas 上建立 WebGL 渲染管线并开启渲染循环;options 见 ViewerOptions。若指定了 options.environment,会等 HDRI 环境 加载完成后才 resolve。

Parameters

canvas

HTMLCanvasElement

options?

ViewerOptions = {}

Returns

Promise<Viewer>