2013-09-01 2 views
0

Я написал программу, используя CGAL следующим образом:Как получить вершины треугольника в триангуляции треугольника delaunay?

typedef CGAL::Exact_predicates_inexact_constructions_kernel  K; 
typedef CGAL::Triangulation_vertex_base_2<K>      Vb; 
typedef CGAL::Triangulation_face_base_with_info_2<FaceInfo2,K> Fbb; 
typedef CGAL::Constrained_triangulation_face_base_2<K,Fbb>  Fb; 
typedef CGAL::Triangulation_data_structure_2<Vb,Fb>    TDS; 
typedef CGAL::Exact_predicates_tag        Itag; 
typedef CGAL::Constrained_Delaunay_triangulation_2<K, TDS, Itag> CDT; 
typedef CDT::Point            Point; 
typedef CGAL::Polygon_2<K>          Polygon_2; 

int main() 
{ 

    //construct two non-intersecting nested polygons 
    Polygon_2 polygon1; 
    polygon1.push_back(Point(0,0)); 
    polygon1.push_back(Point(2,0)); 
    polygon1.push_back(Point(2,2)); 
    polygon1.push_back(Point(0,2)); 
    CDT cdt; 
    insert_polygon(cdt,polygon1); 
    CDT::Finite_faces_iterator t=cdt.faces_begin(); 

for (t = cdt.finite_faces_begin(); t != cdt.finite_faces_end(); t++) 
    { 
     //how can i achieve that? 

    } 

} 

Я хочу, чтобы вершины треугольников из cdt.finite_faces_begin() в треугольник, t пункта, что в каждой итерации для цикла.

например. В первой итерации цикла я получаю вершины первого треугольника, а во второй итерации цикла я получаю вершины первых + вторых треугольников, а в третьем - первые вершины + второй + третий треугольник и т. д. как я могу это достичь?

+0

вы должны уточнить, что вы хотите получить. Когда вы зацикливаете на лицах, в теле цикла вы можете что-то сделать с i-м лицом. Если вы хотите что-то сделать для первого + второго + .. + i, вы должны собрать его в контейнере. –

ответ

1

Если в i-й итерации вы хотите использовать только три вершины лица, используйте for(inti=0;i<3;++i){t->vertex(i);}, или t->vertex(i)->point().

Если вы не хотите получить вершину, которую вы уже получили с предыдущего лица, вы должны использовать std::set<Vertex_handle>, который вы объявляете вне цикла.

Смежные вопросы