Skip to content

Class: Viewer

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

.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:83

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


camera

readonly camera: CameraManager

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

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


diagnostics

readonly diagnostics: DiagnosticsManager

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

LOD 等调试诊断查询。


edges

readonly edges: EdgesManager

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

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


explode

readonly explode: ExplodeManager

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

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


explodeEdit

readonly explodeEdit: ExplodeEditManager

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

编辑态零件爆炸(范围/方向/层级/增量;写 transform 通道、进 undo/sidecar)。


export

readonly export: ExportManager

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

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


history

readonly history: HistoryManager

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

统一编辑撤销/重做(变换 + 可见性交错于同一有序栈)。


labels

readonly labels: LabelsManager

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

序号标签:点零件钉编号气泡,随视图持久化、可撤销。


lights

readonly lights: LightsManager

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

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


model

readonly model: ModelManager

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

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


readonly navcube: NavCubeManager

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

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


quality

readonly quality: RenderQualityManager

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

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


renderMode

readonly renderMode: RenderModeManager

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

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


section

readonly section: SectionManager

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

剖切 section 与盖面 / gizmo 交互。


selection

readonly selection: SelectionManager

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

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


stats

readonly stats: StatsView

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

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


transform

readonly transform: TransformManager

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

零部件位置变换编辑(单实例,平移+旋转)。


views

readonly views: ViewsManager

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

视图结果态捕获 / 应用(相机 + 显隐 + 位置变换 + 材质)。

Methods

captureImage()

captureImage(opts?): string

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

渲染一帧并以 data URL 形式返回当前视口截图。

Parameters

opts?
maxSize?

number

限制输出图像最长边(px),等比缩放;省略则全分辨率。

mime?

string

输出 MIME 类型(默认 image/png)。

实现先 renderOnce() 再读 canvas——同步栈内读取,无需 preserveDrawingBuffer

Returns

string


dispose()

dispose(): void

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

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

Returns

void


invalidate()

invalidate(): void

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

请求引擎在下一帧重绘(render-on-demand 兜底逃生口)。宿主绕过公开 API 直接改动了会影响画面的状态(或怀疑某条状态变更路径未接线到失效检测)时 调用;已销毁时静默返回。多数内置状态变更(选中 / hover / 外观 / 剖切 / 显隐 / 变换 / 标签 / 视图 / 投影 / 结构编辑 / 相机)已经过 EventBus 自动 失效,通常无需手动调用。

Returns

void


off()

off<K>(event, handler): void

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

取消订阅(需传入与 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:742

订阅一个 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:754

订阅一个事件且只触发一次,返回取消订阅函数;已销毁时抛 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:778

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

Returns

void


create()

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

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

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

Parameters

canvas

HTMLCanvasElement

options?

ViewerOptions = {}

Returns

Promise<Viewer>