Appearance
Interface: SelectionManager
Defined in: packages/viewer-core/src/public/managers/SelectionManager.ts:55
选中与悬停状态 manager。
职责域:节点 / 面 / 边三种粒度的选中集维护(apply / clear)、悬停 (setHover)、点击拾取(pick / pickBox)、可拾取粒度过滤 (setPickableMask)与高亮 / 描边样式(setHighlightMode / setStyle)。 状态变化经 selection-changed / hover-changed 事件对外广播。
Remarks
经 Viewer 实例上的 viewer.selection 访问,不要直接构造。
Methods
apply()
apply(
items,mode):void
Defined in: packages/viewer-core/src/public/managers/SelectionManager.ts:114
程序化修改选中集:Set 替换、Add 追加、Toggle 反选。
实际选中集发生变化时触发 selection-changed(含 added / removed / current); 无净变化不触发。item 非法(nodeId 不存在 / Face 缺 faceGroupId 等)抛 ViewerError。
Parameters
items
SelectionItem | readonly SelectionItem[]
mode
Returns
void
clear()
clear():
void
Defined in: packages/viewer-core/src/public/managers/SelectionManager.ts:142
清空选中集并触发 selection-changed;本就为空时静默返回。
Returns
void
dispose()
dispose():
void
Defined in: packages/viewer-core/src/public/managers/SelectionManager.ts:98
释放内部事件订阅;由 Viewer.dispose 统一调用。
Returns
void
getAutoSelectOnClick()
getAutoSelectOnClick():
boolean
Defined in: packages/viewer-core/src/public/managers/SelectionManager.ts:256
取「点击画布自动选中」开关状态。
Returns
boolean
getHighlightMode()
getHighlightMode():
SelectionHighlightMode
Defined in: packages/viewer-core/src/public/managers/SelectionManager.ts:227
取当前选中视觉呈现模式。
Returns
getHover()
getHover():
SelectionItem|null
Defined in: packages/viewer-core/src/public/managers/SelectionManager.ts:190
取当前悬停项;无悬停返回 null。
Returns
SelectionItem | null
getPickableMask()
getPickableMask():
number
Defined in: packages/viewer-core/src/public/managers/SelectionManager.ts:213
取当前可拾取粒度位掩码。
Returns
number
getSelection()
getSelection(): readonly
SelectionItem[]
Defined in: packages/viewer-core/src/public/managers/SelectionManager.ts:153
取当前选中集快照(返回副本,可安全持有)。
Returns
readonly SelectionItem[]
getStyle()
getStyle():
Readonly<SelectionStyle>
Defined in: packages/viewer-core/src/public/managers/SelectionManager.ts:242
取当前完整选中 / 悬停样式。
Returns
Readonly<SelectionStyle>
has()
has(
item):boolean
Defined in: packages/viewer-core/src/public/managers/SelectionManager.ts:158
判断某个 item(同类型 + 同 id)当前是否在选中集中。
Parameters
item
Returns
boolean
pick()
pick(
x,y,mask?):SelectionItem|null
Defined in: packages/viewer-core/src/public/managers/SelectionManager.ts:271
在画布坐标 (x, y) 处做一次拾取,返回命中的 item;未命中返回 null。 只拾取、不改选中集;mask 缺省时用当前 pickableMask。
Parameters
x
number
y
number
mask?
number
Returns
SelectionItem | null
pickBox()
pickBox(
x1,y1,x2,y2,opts?): readonlySelectionItem[]
Defined in: packages/viewer-core/src/public/managers/SelectionManager.ts:283
框选拾取:返回画布矩形 (x1,y1)-(x2,y2) 内命中的 item 列表(不改选中集)。
v1 仅支持 Node 粒度(mask 含 Face / Edge 位会降级并告警); opts.mustBeFullyInside 为 true 时要求节点完全落入矩形才算命中 (默认相交即命中);模型未就绪时返回空数组。
Parameters
x1
number
y1
number
x2
number
y2
number
opts?
Returns
readonly SelectionItem[]
setAutoHoverOnMove()
setAutoHoverOnMove(
enabled):void
Defined in: packages/viewer-core/src/public/managers/SelectionManager.ts:261
开关「指针移动自动悬停」(默认开);关闭时同时清除当前悬停,以免高亮残留。
Parameters
enabled
boolean
Returns
void
setAutoSelectOnClick()
setAutoSelectOnClick(
enabled):void
Defined in: packages/viewer-core/src/public/managers/SelectionManager.ts:249
开关「点击画布自动选中」(默认开);关闭后点击不再改选中集,仍可用 pick() 自行拾取。
Parameters
enabled
boolean
Returns
void
setHighlightMode()
setHighlightMode(
mode):void
Defined in: packages/viewer-core/src/public/managers/SelectionManager.ts:218
设置选中的视觉呈现模式:仅染色 / 仅描边 / 染色+描边。
Parameters
mode
Returns
void
setHover()
setHover(
item):void
Defined in: packages/viewer-core/src/public/managers/SelectionManager.ts:170
程序化设置悬停项(传 null 清除),变化时触发 hover-changed;同项重复设置为 no-op。
Parameters
item
SelectionItem | null
Returns
void
setPickableMask()
setPickableMask(
mask):void
Defined in: packages/viewer-core/src/public/managers/SelectionManager.ts:201
设置可拾取的实体粒度位掩码(Node / Face / Edge 可按位组合;默认仅 SelectionMask.Node,即零件级)。含非法位时抛 ViewerError;影响 点击 / 悬停拾取与不带 mask 的 pick()。
Parameters
mask
number
Returns
void
setStyle()
setStyle(
patch):void
Defined in: packages/viewer-core/src/public/managers/SelectionManager.ts:232
增量更新选中 / 悬停样式(颜色、描边强度、染色混合度等),只覆盖传入字段。
Parameters
patch
Partial<SelectionStyle>
Returns
void
size()
size():
number
Defined in: packages/viewer-core/src/public/managers/SelectionManager.ts:163
取当前选中项数量。
Returns
number