我正在使用CGAL::Delaunay_triangulation_3
生成用于插值的网格。关于Triangulation_3::locate
我有三个问题。
在下文中,如果Cell
返回包含点Location
的四面体的四个顶点? http://doc.cgal.org/latest/TDS_3/classTriangulationDataStructure__3_1_1Cell.html
Delaunay_triangulation_3 Mesh(Points.begin(), Points.end());
Cell_handle Cell = Mesh.locate(Location);
当Cell
位于四面体顶点,边缘,刻面之一时,Location
会回馈什么? Cell
仅返回Location
所在的顶点,边的两个顶点,方面的三个顶点吗?什么会填充Cell->vertex(vertex_no)
,而vertex_no
应为0,1,2,3?
在哪种情况下,由Cell->vertex(vertex_no)
给出的四个顶点构建的四面体是否可能不包含点Location
?为什么我有很多这种情况?同样Cell->vertex(vertex_no)
似乎给出了四个顶点的相同组合和高重复,而Location
没有被它们包围?
http://doc.cgal.org/latest/Triangulation_3/classCGAL_1_1Triangulation__3.html#a63e8c40604ae19d745b5f83e0e927379
答案 0 :(得分:0)
请注意,函数locate()
有几个重载。您应该使用Locate_type lt
,int li
和lj
。这将告诉您查询是在单元格中,在面上,在边缘上还是在顶点上,li
和lj
将告诉您哪个面,边或顶点。 / p>