vtk.js中如何选择Actor或Volume?PropPicker是否存在?
vtk.js中PropPicker相关问题解答
关于PropPicker的存在性
vtk.js中没有PropPicker这个模块,这就是你导入@kitware/vtk.js/Sources/Rendering/Core/PropPicker时出现找不到错误的原因。
替代方案:使用ActorPicker
如果你需要直接拾取完整的Actor(而非单个单元),可以使用vtkActorPicker,它是vtk.js中专门用于拾取整个Prop(Actor属于Prop的子类)的工具。
示例代码修改
把你原来的CellPicker替换为ActorPicker,调整逻辑如下:
const picker = vtkActorPicker.newInstance(); picker.setPickFromList(1); picker.initializePickList(); picker.addPickList(actorMainAfter); renderWindow.getInteractor().onRightButtonPress((callData) => { const pos = callData.position; const point = [pos.x, pos.y, 0.0]; console.log(`Pick at: ${point}`); picker.pick(point, rendererAfter); const pickedActor = picker.getActor(); // 获取拾取到的完整Actor对象 console.log('Picked actor: ', pickedActor); renderWindow.render(); });
关键说明
vtkActorPicker的核心方法getActor()会返回拾取到的完整Actor实例,满足你获取整个对象的需求。- 它同样支持
setPickFromList、addPickList这类筛选拾取目标的方法,和你之前用CellPicker的逻辑兼容。
补充:其他可选拾取工具
如果你的场景需要更灵活的拾取(比如同时支持Prop和单元),也可以考虑vtkPicker(基础拾取类),但vtkActorPicker是针对完整Prop拾取的最优选择。
内容的提问来源于stack exchange,提问作者Bejota
相关产品推荐
相关产品推荐

