我正在使用CGAL,并且我使用一些顶点创建了一个Polygon。
现在我得到一个片段,其中包含:
Segment_2 segment = polygon.edge(i)
其中i
是从0
到polygon.size()
的索引。
如何将Segment_2
转换为Edge
?就像有一个t.segment(Edge e)
从Segment_2
获得Edge
一样,我希望得到相反的结果(Segment_2
到Edge
)。
现在我完全确定此段属于Triangulation_2上的Edge,我该如何获得它?像triangulation.edge(Segment_2)
这样的东西。
请帮助。
答案 0 :(得分:3)
如果您保留了两个顶点句柄对应于该段的两个点,则可以使用此功能:
bool
CGAL::Triangulation_2< Traits, Tds >::
is_edge(Vertex_handle va,
Vertex_handle vb,
Face_handle & fr,
int & i
)
假设v1
和v2
是顶点句柄,t
是你的三角测量对象:
Face_handle fh;
int i;
if(t.is_edge(v1, v2, fh, i)) {
Edge my_edge = Edge(fh, i);
// ... use your Edge
}