CGAL - 从Segment_2获取Edge

时间:2013-08-01 17:41:58

标签: c++ geometry computational-geometry cgal

我正在使用CGAL,并且我使用一些顶点创建了一个Polygon。

现在我得到一个片段,其中包含:

Segment_2 segment = polygon.edge(i)

其中i是从0polygon.size()的索引。

如何将Segment_2转换为Edge?就像有一个t.segment(Edge e)Segment_2获得Edge一样,我希望得到相反的结果(Segment_2Edge)。

现在我完全确定此段属于Triangulation_2上的Edge,我该如何获得它?像triangulation.edge(Segment_2)这样的东西。

请帮助。

1 个答案:

答案 0 :(得分:3)

如果您保留了两个顶点句柄对应于该段的两个点,则可以使用此功能:

bool 
CGAL::Triangulation_2< Traits, Tds >::
is_edge(Vertex_handle va,
        Vertex_handle vb,
        Face_handle & fr,
        int & i
)

假设v1v2是顶点句柄,t是你的三角测量对象:

Face_handle fh;
int i;
if(t.is_edge(v1, v2, fh, i)) {
  Edge my_edge = Edge(fh, i);
  // ... use your Edge
}