vtkPicker 拾取接口注解

部署运行你感兴趣的模型镜像

vtkPicker 拾取接口详解

vtkPointPicker

作用
用于拾取三维空间中的点,返回最接近鼠标位置的顶点坐标及其所在数据集。

基本应用场景

  • 交互式选择点数据(如标记关键点)。
  • vtkInteractorStyle结合实现点拾取交互。

高级功能

  • 设置拾取容差(SetTolerance)以适应不同精度需求。
  • 通过GetPointId获取拾取点的全局ID,支持跨数据集操作。
  • 可以通过AddPickListSetPickFromList控制拾取范围,提升拾取效率

常见问题

  • 容差基于窗口像素比例,容差过小可能导致拾取失败,需根据场景缩放调整。
  • 仅适用于显式几何数据(如vtkPolyData顶点)。
  • 拾取过程中不处理遮挡关系,所以可能拾取到后面的点

代码示例

vtkNew<vtkPointPicker> picker;
renderWindowInteractor->SetPicker(picker);
picker->Pick(displayPos[0], displayPos[1], 0, renderer);
double* pickedPos = picker->GetPickPosition();

vtkCellPicker

作用
精确拾取单元格(如三角形、四边形),返回单元格对象及交点坐标。

基本应用场景

  • 网格编辑工具中的面片选择。
  • 物理仿真中的碰撞检测。

高级功能

  • SetUseCells控制是否考虑单元格层级关系。
  • GetCellIJK获取结构化网格(如vtkImageData)的索引。
  • 通过GetCellId获取拾取Cell的全局ID,支持跨数据集操作。

常见问题

  • 控制裁剪平面对的拾取的影响SetPickClippingPlanes
  • 对非流形几何可能返回无效结果。

代码示例

vtkNew<vtkCellPicker> cellPicker;
cellPicker->SetTolerance(0.001);
cellPicker->Pick(x, y, 0, renderer);
vtkCell* cell = cellPicker->GetCell();

vtkPropPicker

作用
直接拾取vtkProp对象(如Actor),不关注底层几何细节。

基本应用场景

  • 快速选择场景中的可视化实体。

高级功能

  • 通过GetProp3D获取变换矩阵等属性。
  • 支持vtkAssembly等复合Prop的层级拾取。

常见问题

  • 无法区分同一Prop中的子元素。
  • 不会返回PointId和CellId信息
  • 需配合vtkPropCollection处理重叠对象。

代码示例

vtkNew<vtkPropPicker> propPicker;
propPicker->Pick(displayPos[0], displayPos[1], renderer);
vtkProp* pickedProp = propPicker->GetProp();

vtkHardwarePicker

作用
基于GPU加速的精确拾取,支持深度缓冲和多重采样。

基本应用场景

  • 大规模数据集的实时交互。
  • 需要亚像素级精度的医学影像应用。

高级功能

  • SetSnapToMeshPoint启用顶点吸附。
  • GetPickedPositions返回多重采样交点集合。

常见问题

  • 依赖硬件支持,需检查OpenGL兼容性。
  • 可能受抗锯齿设置影响。

代码示例

vtkNew<vtkHardwarePicker> hwPicker;
hwPicker->SetRenderer(renderer);
hwPicker->Pick(x, y, z);

接口对比

特性PointPickerCellPickerPropPickerHardwarePicker
拾取粒度单元格Prop对象像素级
性能最高依赖GPU
数据结构依赖
适用场景点云编辑网格处理UI交互高精度可视化

推荐扩展学习

  1. vtkAreaPicker:区域拾取工具
  2. vtkInteractorStyleRubberBandPick:框选交互样式
  3. vtkSelectionNode:高级选择数据管理

参考链接

您可能感兴趣的与本文相关的镜像

Wan2.2-I2V-A14B

Wan2.2-I2V-A14B

图生视频
Wan2.2

Wan2.2是由通义万相开源高效文本到视频生成模型,是有​50亿参数的轻量级视频生成模型,专为快速内容创作优化。支持480P视频生成,具备优秀的时序连贯性和运动推理能力

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Dave.B

赠人玫瑰,手有余香

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值