예제 #1
0
void test_HalfedgeDS_default() {
    // Simple instantiation of the default halfedge data structure.
    typedef CGAL_HALFEDGEDS_DEFAULT<Dummy_traits_2> HDS;
    typedef CGAL::HalfedgeDS_decorator<HDS> Decorator;
    HDS hds;
    Decorator D(hds);

    D.create_loop();
    assert( hds.size_of_vertices() == 1);
    assert( hds.size_of_halfedges() == 2);
    assert( hds.size_of_faces() == 2);
    assert( D.is_valid( false, 3));
    D.make_hole( hds.halfedges_begin()->opposite());
    hds.normalize_border();
    assert( hds.size_of_border_halfedges() == 1);
    assert( hds.size_of_border_edges() == 1);
    assert( D.is_valid( false, 4));
    D.fill_hole( hds.halfedges_begin()->opposite());
    hds.normalize_border();
    assert( hds.size_of_border_halfedges() == 0);
    assert( hds.size_of_border_edges() == 0);
    assert( D.is_valid( false, 4));

    HDS hds2(hds); // copy constructor.
    Decorator D2(hds2);
    assert( D2.is_valid( false, 4));

    hds = hds2; // assignment.
    assert( D.is_valid( false, 4));

    typedef HDS::Halfedge_iterator Halfedge_iterator;
    Halfedge_iterator i = hds.halfedges_begin();
    assert(!(i == hds.halfedges_end()));
}
예제 #2
0
void test_HalfedgeDS_polyhedron_default() {
    // Simple instantiation of the default for polyhedrons.
    typedef CGAL_HALFEDGEDS_DEFAULT< Dummy_traits_3,
        CGAL::Polyhedron_items_3> HDS;
    typedef HDS::Vertex           Vertex;
    typedef HDS::Halfedge         Halfedge;
    typedef HDS::Face             Face;
    typedef Halfedge::Base        HBase;

    HDS hds;
    hds.vertices_push_back( Vertex());
    hds.edges_push_back( Halfedge(), Halfedge());
    hds.faces_push_back( Face());
    hds.halfedges_begin()->HBase::set_face( hds.faces_begin());
    assert( hds.size_of_vertices() == 1);
    assert( hds.size_of_halfedges() == 2);
    assert( hds.size_of_faces() == 1);
    hds.normalize_border();
    assert( hds.size_of_border_halfedges() == 1);
    assert( hds.size_of_border_edges() == 1);
    typedef HDS::Halfedge_iterator Halfedge_iterator;
    Halfedge_iterator i = hds.halfedges_begin();
    assert(!(i == hds.halfedges_end()));
}