如何选择VTK中的特定单元格元素

时间:2019-03-01 05:04:31

标签: python graphics 3d vtk

对于我正在编写的程序,我希望能够拾取3维对象的特定面。我可以使用python包装器渲染3D非结构化数据。为了简化起见,假设我有一个像这样的非结构化数据

# vtk DataFile Version 2.0
tiny, Created by Gmsh
ASCII
DATASET UNSTRUCTURED_GRID
POINTS 4 double
0 0 0
1.0 0 0
0 1.0 0
0 0 2.0

CELLS 4 16
3 0 1 2
3 0 1 3
3 0 2 3
3 1 2 3

CELL_TYPES 4  
5 
5
5
5

我想交互式地拾取此3D对象的一个​​或多个面部,并获取面部和面部坐标。请注意,将旋转,移动3D对象。我并不是说要获取鼠标单击的坐标。我有兴趣获取可以说的“原始”坐标或“点ID”。 我正在使用python vtk包装器。尽管有一个关于拾取和修改属性(例如颜色)的示例,但是我找不到任何有关如何提取3D对象的拾取面(面ID /点ID)的指针。

任何指针都会有所帮助。谢谢。

1 个答案:

答案 0 :(得分:1)

您正在寻找的是vtkCellPicker类,尤其是 vtkIdType GetCellId()

文档:https://vtk.org/doc/nightly/html/classvtkCellPicker.html

有关用法,请参见以下示例:https://lorensen.github.io/VTKExamples/site/Cxx/Picking/CellPicking/