CGAL 6.0 - 3D Polyhedral Surface
Loading...
Searching...
No Matches
Polyhedron/polyhedron_prog_incr_builder.cpp
#include <CGAL/Simple_cartesian.h>
#include <CGAL/Polyhedron_incremental_builder_3.h>
#include <CGAL/Polyhedron_3.h>
#include <cassert>
// A modifier creating a triangle with the incremental builder.
template <class HDS>
class Build_triangle : public CGAL::Modifier_base<HDS> {
public:
Build_triangle() {}
void operator()( HDS& hds) {
// Postcondition: hds is a valid polyhedral surface.
B.begin_surface( 3, 1, 6);
typedef typename HDS::Vertex Vertex;
typedef typename Vertex::Point Point;
B.add_vertex( Point( 0, 0, 0));
B.add_vertex( Point( 1, 0, 0));
B.add_vertex( Point( 0, 1, 0));
B.end_facet();
}
};
typedef CGAL::Polyhedron_3<Kernel> Polyhedron;
typedef Polyhedron::HalfedgeDS HalfedgeDS;
int main() {
Polyhedron P;
Build_triangle<HalfedgeDS> triangle;
P.delegate( triangle);
assert( P.is_triangle( P.halfedges_begin()));
return 0;
}
virtual void operator()(R &rep)
A polyhedral surface Polyhedron_3 consists of vertices V, edges E, facets F and an incidence relation...
Definition: Polyhedron_3.h:113
The auxiliary class Polyhedron_incremental_builder_3 supports the incremental construction of polyhed...
Definition: Polyhedron_incremental_builder_3.h:62
Halfedge_handle end_facet()
ends a newly constructed facet.
void add_vertex_to_facet(size_type i)
adds a vertex with index i to the current facet.
Facet_handle begin_facet()
starts a new facet and returns its handle.
void end_surface()
ends the construction.
void begin_surface(size_type v, size_type f, size_type h=0, int mode=RELATIVE_INDEXING)
starts the construction.
Vertex_handle add_vertex(const Point_3 &p)
adds a new vertex for p and returns its handle.