vtkClip
多面裁切之闭裁 vtkClipClosedSurface
(1)
vtkClipClosedSurface
文档
详细说明
使用平面集合剪裁闭合曲面。
vtkClipClosedSurface 将使用剪裁平面集合 vtkPlaneCollection剪裁闭合的多边形数据图面。它将通过创建新的多边形面来生成新的闭合表面,其中输入数据被裁剪。
形成曲面的多边形的方向很重要。多边形具有正面和背面,正是背面定义了闭合曲面的内部或"实体"区域。当剪裁平面切入"实心"区域时,将生成新的切削面,但当剪裁平面切入孔或"空"区域时,不会生成新的切削面。在处理复杂表面时,这种区别至关重要。请注意,如果简单曲面的背面朝外,则该曲面在潜在的无限实体中定义了一个孔。
不应将非流形曲面用作此滤波器的输入。输入图面不应有开放边,并且不得有任何由两个以上面共享的边。vtkFeatureEdges 筛选器可用于验证数据集是否满足这些条件。此外,输入曲面不应自相交,这意味着曲面的面应仅在其边缘处接触。
如果 GenerateOutline
处于打开状态,则此筛选器将在剪裁平面与数据相交的任何位置生成轮廓。ScalarMode
选项会将单元格标量添加到输出中,以便生成的面可以以与原始表面不同的颜色进行可视化。
InsideOut
标志可用于反转剪辑区域内部/外部的含义。这将更改剪裁平面的哪一侧被剪裁掉。
此筛选器可以配置为计算第二个输出。第二个输出是具有新三角化面的多边形数据。如果要访问此输出数据,请设置 GenerateClipFaceOutput
布尔值。
警告
对于简单的凸输入,新面的三角测量在 O(n) 时间内完成,但对于非凸输入,最坏情况时间为 O(n2*m2),其中 n 是点数,m 是 3D 腔数。相比之下,最好的三角测量算法是 O(n log n)。在极少数情况下,三角测量无法产生水密输出。打开 TriangulationErrorDisplay 以收到有关这些故障的通知。
另请参阅
vtkOutlineFilter vtkOutlineSource vtkVolumeOutlineSource vtkContourTriangulator
谢谢:
感谢 David Gobbi 为 VTK 贡献了这门课。
在线示例:
[ClipClosedSurface
](https://examples.vtk.org/site/Cxx/Meshes/ClipClosedSurface)
测试:
vtkClipClosedSurface(测试)
文件 vtkClipClosedSurface.h 的第 104 行中的定义。
测试练习
vtk
中的三把刀
比较: TestPolyDataPlaneClipper
- 运行结果:
>>> Processing: 4186112 triangles
vtkPolyDataPlaneClipper Execution time: 0.23137998580932617 # 最快
vtkClipClosedSurface Execution time: 0.8350319862365723 # 中等
vtkClipPolyData Execution time: 2.144352912902832 # 最慢
小结
- 速度比较:
vtkPolyDataPlaneClip
>vtkClipClosedSurface
>vtkClipPloyData
- 功能比较:(具体暂略) 相比较:
vtkClipClosedSurface
较全面
故而, 我们主要介绍闭裁
vtkClipClosedSurface
- 未完待续