Appearance
Interface: ModelManager
Defined in: packages/viewer-core/src/public/managers/ModelManager.ts:46
模型加载与节点级外观控制 manager。
职责域:.fmbv 模型的加载 / 卸载、包围盒与结构树元数据查询 (getNodeInfo / iterateNodes / findNodesByName)、节点与面组的 颜色 / 可见性 / 高亮覆盖。典型入口:load() 加载模型,随后经 getRootNodeId() 遍历结构树,用 setNodesColor() / setNodesVisibility() 调整外观。
Remarks
经 Viewer 实例上的 viewer.model 访问,不要直接构造。
Accessors
isLoaded
Get Signature
get isLoaded():
boolean
Defined in: packages/viewer-core/src/public/managers/ModelManager.ts:68
当前是否已有模型加载完成(骨架就绪即为 true)。
Returns
boolean
loadProgress
Get Signature
get loadProgress():
object
Defined in: packages/viewer-core/src/public/managers/ModelManager.ts:74
当前加载进度快照:skeleton 骨架是否就绪、geomReady/geomTotal 几何 LOD 分块的已到达数 / 总数。
Returns
object
geomReady
geomReady:
number
geomTotal
geomTotal:
number
skeleton
skeleton:
boolean
Methods
findNodesByName()
findNodesByName(
name): readonlyNodeId[]
Defined in: packages/viewer-core/src/public/managers/ModelManager.ts:225
按名称精确匹配查找节点(同名节点全部返回);无匹配或未加载返回空数组。
Parameters
name
string
Returns
readonly NodeId[]
getBoundingBox()
getBoundingBox():
Box3|null
Defined in: packages/viewer-core/src/public/managers/ModelManager.ts:143
取整个模型的世界坐标轴对齐包围盒;未加载返回 null。
Returns
Box3 | null
getBoundingSphere()
getBoundingSphere():
BoundingSphere|null
Defined in: packages/viewer-core/src/public/managers/ModelManager.ts:149
取由包围盒推导的模型包围球(球心 = 盒中心,半径 = 到角点距离);未加载返回 null。
Returns
BoundingSphere | null
getFaceGroupColor()
getFaceGroupColor(
id,fg):Color|null
Defined in: packages/viewer-core/src/public/managers/ModelManager.ts:275
取面组当前的覆盖颜色;未设置过返回 null。
Parameters
id
fg
Returns
Color | null
getHighlightedNodeIds()
getHighlightedNodeIds(): readonly
NodeId[]
Defined in: packages/viewer-core/src/public/managers/ModelManager.ts:333
取当前处于高亮状态的节点 id 列表;未加载返回空数组。
Returns
readonly NodeId[]
getLeafNodeIds()
getLeafNodeIds(): readonly
NodeId[]
Defined in: packages/viewer-core/src/public/managers/ModelManager.ts:219
取全部叶子节点(带几何 meshId 的节点)id 列表;未加载返回空数组。
Returns
readonly NodeId[]
getNodeColor()
getNodeColor(
id):Color|null
Defined in: packages/viewer-core/src/public/managers/ModelManager.ts:256
取节点当前的覆盖颜色;未设置过返回 null。
Parameters
id
Returns
Color | null
getNodeInfo()
getNodeInfo(
id):NodeInfo|null
Defined in: packages/viewer-core/src/public/managers/ModelManager.ts:169
取单个节点的结构信息(名称 / 父子关系 / 包围盒 / meshId 等);id 不存在或未加载返回 null。
Parameters
id
Returns
NodeInfo | null
getNodeMaterial()
getNodeMaterial(
id):MaterialInfo|null
Defined in: packages/viewer-core/src/public/managers/ModelManager.ts:175
取节点关联的材质信息(由 materials payload 解析);无材质或未加载返回 null。
Parameters
id
Returns
MaterialInfo | null
getNodeOpacity()
getNodeOpacity(
_id):number
Defined in: packages/viewer-core/src/public/managers/ModelManager.ts:364
取节点透明度 — v2 前恒返回 1(不透明)。
Parameters
_id
Returns
number
getNodeProperties()
getNodeProperties(
id):Promise<readonlyNodeProperty[]>
Defined in: packages/viewer-core/src/public/managers/ModelManager.ts:189
取节点业务属性(按需:首次调用按节点 offset 发一次 range 请求,memoize)。 无属性 / 无 ATTRIBUTES chunk / 未加载 → 返回 []。
Parameters
id
Returns
Promise<readonly NodeProperty[]>
getNodeVisibility()
getNodeVisibility(
id):boolean
Defined in: packages/viewer-core/src/public/managers/ModelManager.ts:314
查询节点当前是否可见;未加载时按默认可见返回 true。
Parameters
id
Returns
boolean
getRootNodeId()
getRootNodeId():
NodeId|null
Defined in: packages/viewer-core/src/public/managers/ModelManager.ts:163
取结构树根节点 id;未加载返回 null。
Returns
NodeId | null
isolateNodes()
isolateNodes(
ids):void
Defined in: packages/viewer-core/src/public/managers/ModelManager.ts:304
Isolate:恰好显示 ids(装配自动展开为子树),其余叶子隐藏;保留集内 先前隐藏的叶子复显。ids 为空数组时静默 no-op。 实际发生变化时触发 visibility-changed。
Parameters
ids
readonly NodeId[]
Returns
void
iterateNodes()
iterateNodes(
visitor):void
Defined in: packages/viewer-core/src/public/managers/ModelManager.ts:213
自根节点深度优先遍历结构树,对每个节点调用 visitor。 visitor 返回 false 时跳过该节点的子树(剪枝),继续遍历其余分支。
Parameters
visitor
(info) => boolean | void
Returns
void
load()
load(
source):Promise<void>
Defined in: packages/viewer-core/src/public/managers/ModelManager.ts:91
加载 .fmbv 模型数据(URL / Uint8Array / Blob / 自定义 fetcher)并开始渐进渲染。
触发 model-loading,骨架(结构树 + 索引)就绪并触发 model-skeleton-ready 后本 Promise resolve;几何 LOD 分块在后台继续流式加载,期间触发 model-geom-progress,全部到达后触发 model-loaded。 再次调用会先卸载当前模型(触发 model-disposed)并取消未完成的旧加载。 失败时抛 ViewerError(InvalidModelSource / NetworkFailed / Cancelled 等)。
Parameters
source
Returns
Promise<void>
resetFaceGroupColors()
resetFaceGroupColors():
void
Defined in: packages/viewer-core/src/public/managers/ModelManager.ts:281
清除所有面组级覆盖颜色。
Returns
void
resetHighlight()
resetHighlight():
void
Defined in: packages/viewer-core/src/public/managers/ModelManager.ts:327
清除所有节点高亮。
Returns
void
resetNodesColor()
resetNodesColor():
void
Defined in: packages/viewer-core/src/public/managers/ModelManager.ts:250
清除所有节点级覆盖颜色。
Returns
void
resetNodesOpacity()
resetNodesOpacity():
void
Defined in: packages/viewer-core/src/public/managers/ModelManager.ts:358
重置节点透明度 — v2 才提供,当前调用必抛 ViewerError。
Returns
void
resetNodesVisibility()
resetNodesVisibility():
void
Defined in: packages/viewer-core/src/public/managers/ModelManager.ts:294
重置所有节点可见性(全部恢复显示);实际发生变化时触发 visibility-changed。
Returns
void
setFaceGroupColor()
setFaceGroupColor(
id,fg,color):void
Defined in: packages/viewer-core/src/public/managers/ModelManager.ts:263
给节点内单个面组设置覆盖颜色(粒度细于节点级染色)。
Parameters
id
fg
color
Returns
void
setHighlightColor()
setHighlightColor(
color):void
Defined in: packages/viewer-core/src/public/managers/ModelManager.ts:339
设置高亮染色所用的颜色。
Parameters
color
Returns
void
setNodesColor()
setNodesColor(
ids,color):void
Defined in: packages/viewer-core/src/public/managers/ModelManager.ts:232
给一组节点设置覆盖颜色(不改原始材质,可经 unset / reset 撤销);未加载抛 ModelNotLoaded。
Parameters
ids
readonly NodeId[]
color
Returns
void
setNodesColors()
setNodesColors(
map):void
Defined in: packages/viewer-core/src/public/managers/ModelManager.ts:238
按映射批量设置节点覆盖颜色(每节点各自一色)。
Parameters
map
Returns
void
setNodesHighlighted()
setNodesHighlighted(
ids,on):void
Defined in: packages/viewer-core/src/public/managers/ModelManager.ts:321
程序化设置一组节点的高亮染色(与交互选中走同一外观高亮通道)。
Parameters
ids
readonly NodeId[]
on
boolean
Returns
void
setNodesOpacity()
setNodesOpacity(
_ids,_opacity):void
Defined in: packages/viewer-core/src/public/managers/ModelManager.ts:346
节点透明度设置 — v2 才提供,当前调用必抛 ViewerError。
Parameters
_ids
readonly NodeId[]
_opacity
number
Returns
void
setNodesVisibility()
setNodesVisibility(
ids,visible):void
Defined in: packages/viewer-core/src/public/managers/ModelManager.ts:288
设置一组节点的显示 / 隐藏;实际发生变化时触发 visibility-changed。
Parameters
ids
readonly NodeId[]
visible
boolean
Returns
void
unload()
unload():
void
Defined in: packages/viewer-core/src/public/managers/ModelManager.ts:126
卸载当前模型并清空场景,触发 model-disposed;未加载时静默返回。
Returns
void
unsetFaceGroupColor()
unsetFaceGroupColor(
id,fg):void
Defined in: packages/viewer-core/src/public/managers/ModelManager.ts:269
撤销单个面组的覆盖颜色。
Parameters
id
fg
Returns
void
unsetNodesColor()
unsetNodesColor(
ids):void
Defined in: packages/viewer-core/src/public/managers/ModelManager.ts:244
撤销指定节点的覆盖颜色,恢复原始材质色。
Parameters
ids
readonly NodeId[]
Returns
void
unsetNodesOpacity()
unsetNodesOpacity(
_ids):void
Defined in: packages/viewer-core/src/public/managers/ModelManager.ts:352
撤销节点透明度 — v2 才提供,当前调用必抛 ViewerError。
Parameters
_ids
readonly NodeId[]
Returns
void