对于我正在编写的程序,我希望能够选择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)的任何指针。
任何指针都会有所帮助。谢谢。
您正在寻找的是vtkCellPicker
类,尤其是vtkIdType GetCellId()
。
文档:https://vtk.org/doc/nightly/html/classvtkCellPicker.html
请参阅此示例以了解用法:https://lorensen.github.io/VTKExamples/site/Cxx/Picking/CellPicking/