From bbbb0cc5d0eae08376df3fd1eac043e4ae07304c Mon Sep 17 00:00:00 2001 From: Andreas Fabri Date: Fri, 20 Apr 2012 11:01:37 +0000 Subject: [PATCH] Add ref man page of Polyline_constrained_triangulation_2 --- .../Polyline_constrained_triangulation_2.tex | 264 ++++++++++++++++++ 1 file changed, 264 insertions(+) create mode 100755 Triangulation_2/doc_tex/Triangulation_2_ref/Polyline_constrained_triangulation_2.tex diff --git a/Triangulation_2/doc_tex/Triangulation_2_ref/Polyline_constrained_triangulation_2.tex b/Triangulation_2/doc_tex/Triangulation_2_ref/Polyline_constrained_triangulation_2.tex new file mode 100755 index 00000000000..c1fe36e59aa --- /dev/null +++ b/Triangulation_2/doc_tex/Triangulation_2_ref/Polyline_constrained_triangulation_2.tex @@ -0,0 +1,264 @@ +% +------------------------------------------------------------------------+ +% | Reference manual page: Polyline_constrained_triangulation_2.tex +% +------------------------------------------------------------------------+ +% | 05.02.2002 Mariette Yvinec +% | Package: Triangulation_2 +% | +\RCSdef{\RCSConstrainedtriangulationplusRev}{$Id$} +\RCSdefDate{\RCSConstrainedtriangulationplusDate}{$Date$} +% | +%%RefPage: end of header, begin of main body +% +------------------------------------------------------------------------+ + + +\begin{ccRefClass}{Polyline_constrained_triangulation_2} %% add template arg's if necessary + +%% \ccHtmlCrossLink{} %% add further rules for cross referencing links +%% \ccHtmlIndexC[class]{} %% add further index entries + +The class \ccRefName\ +implements a constrained triangulation +with an additional data +structure called the constraint hierarchy +that keeps track of the input constraints and of their refinement +in the triangulation. + +The class \ccc{Polyline_constrained_triangulation_2} +inherits from its template parameter Tr, which has to be instantiated +by a constrained or constrained Delaunay triangulation. + +According to its intersection tag, the base class +will support intersecting input constraints or not. +When intersections of input constraints are supported, +the base class constructs a triangulation of the arrangement +of the constraints, +introducing new vertices at each proper intersection +point and refining the input constraints into sub-constraints +which are edges (more precisely constrained edges) of the +triangulation. +In this context, the constraint hierarchy +keeps track of the input constraints and of their refinement +in the triangulation. This data structure +maintains for each input constraints +the sequence of intersection vertices added on this constraint. +The constraint hierarchy also allows the user to retrieve the set +of constrained edges of the triangulation, and for each +constrained edge, the set of input constraints that overlap it. + +\ccInclude{CGAL/Polyline_constrained_triangulation_2.h} + +\ccInheritsFrom +\ccc{Tr} which is either a \ccc{CGAL::Constrained_triangulation_2} or a \ccc{CGAL::Constrained_Delaunay_triangulation_2}. + +\ccTypes +\ccTypedef{typedef Tr Triangulation;}{the triangulation base class.} +\ccGlue +\ccTypedef{typedef Itag Intersection_tag;}{the intersection tag.s} + +\ccNestedType{Constaint_id}{The identifier of a polyline constraint.} +\ccNestedType{Constraint_iterator}{An iterator to visit +all the input constraints. The order of visit is arbitrary. +The value type of this iterator is a \ccc{Constraint_id}.} + +\ccNestedType{Subconstraint_iterator}{An iterator +to visit all the sub-constraints of the triangulation. +The order of visit is arbitrary. +The value type of this iterator is a pair +\ccc{std::pair} +corresponding to the vertices of the +sub-constraint.} + +\ccNestedType{Vertices_in_constraint_iterator}{ An iterator on the +vertices of the chain of triangulation edges representing a +constraint. The value type of this iterator is \ccc{Vertex_handle}.} + +\ccTypedef{typedef Context;}{This type is intended to describe +a constraint enclosing a sub-constraint and the position of the +sub-constraint in this constraint. +It provides three member functions \ccc{vertices_begin()}, \ccc{vertices_end()} +and \ccc{current()} returning +iterators of the type \ccc{Vertices_in_constraint_iterator} +on the sequence of vertices of the enclosing constraint. +These iterators point +respectively on the first vertex of the enclosing constraint, +past the last vertex +and on the first vertex of the sub-constraint.} + + + +\ccTypedef{typedef Context_iterator;}{An iterator on + constraints enclosing a given sub-constraint. The value type of this +iterator +is \ccc{Context}.} + + +\ccCreation +\ccCreationVariable{ctp} + +\ccConstructor{Polyline_constrained_triangulation_2(const Geom_traits& gt=Geom_traits())} +{Introduces an empty triangulation.} + +\ccConstructor{Polyline_constrained_triangulation_2(const +Polyline_constrained_triangulation_2& ct);}{Copy constructor.} + +\ccConstructor{Polyline_constrained_triangulation_2(std::list& lc, +const Geom_traits& t = Geom_traits())} +{Introduces and builds a constrained triangulation +from the list of constraints \ccc{lc}.} + +\ccConstructor{ template +Polyline_constrained_triangulation_2( + InputIterator first, + InputIterator last, + const Geom_traits& gt= Geom_traits());} +{Introduces and builds a constrained triangulation +from the constraints in the range +$\left[\right.$\ccc{first}, \ccc{last}$\left.\right)$. +\ccPrecond The \ccc{value_type} of \ccc{first} and \ccc{last} + is \ccc{Constraint}. +} + +\ccFunction{void ~ctp();} +{Destructor. All vertices and faces are deleted. +The constraint hierarchy is deleted.} + + + +\ccHeading{Assignment} + +\ccMethod{Polyline_constrained_triangulation_2 operator=(const +Polyline_constrained_triangulation_2& tr);} +{Assignment. All the vertices and faces are duplicated. + The constraint hierarchy is also duplicated.} + +\ccMethod{void swap(Polyline_constrained_triangulation_2 tr);} +{The triangulations \ccc{tr} and \ccVar\ are swapped. +This operation should be preferred to \ccVar\ = \ccc{tr} or to +\ccc{t(tr)} if \ccc{tr} is deleted after that.} + +\ccHeading{Insertion and Removal} +The class \ccRefName\ overwrites the following insertion and removal +member functions for points and constraints. + +\ccMethod{Vertex_handle insert(const Point& p, +Face_handle start = Face_handle() );} +{Inserts point \ccc{p} as a vertex of the triangulation.} + +\ccMethod{Vertex_handle insert(const Point& p, + Locate_type lt, + Face_handle loc, int li );} +{inserts a point \ccc{p} whose location is assumed +to be given by \ccc{(lt,loc,li)}.} + +\ccMethod{Vertex_handle push_back(const Point& p);} +{Equivalent to \ccc{insert(p)}.} + +\ccMethod{template < class InputIterator > + size_type + insert(InputIterator first, InputIterator last);} +{Inserts the points in the range + $\left[\right.$\ccc{first}, \ccc{last}$\left.\right)$. + Returns the number of inserted points. + \ccPrecond The \ccc{value_type} of \ccc{first} and \ccc{last} + is \ccc{Point}.} + +\ccMethod{ Constraint_id insert_constraint(Point a, Point b);} +{Inserts the constraint segment ab in the triangulation. } + +\ccMethod{ Constraint_id push_back(const Constraint& c);} +{Inserts the constraint \ccc{c}.} + +\ccMethod{ Constraint_id insert_constraint(Vertex_handle va, Vertex_handle vb);} +{ Inserts a constraint whose endpoints are the vertices +pointed by \ccc{va} and \ccc{vb} in the triangulation. } + +\ccMethod{void remove_constraint(Constraint_id id);} +{Removes the constraint \ccc{id}.} + + +\ccHeading{Queries} +\ccMethod{ Constraint_iterator constraints_begin() const;} +{Returns a \ccc{Constraint_iterator} pointing on the first +constraint.} +\ccGlue +\ccMethod{Constraint_iterator constraints_end() const;} +{Returns a \ccc{Constraint_iterator} pointing past the last +constraint.} +\ccGlue +\ccMethod{Subconstraint_iterator subconstraints_begin() const;} +{Returns a \ccc{Subconstraint_iterator} pointing on the first +sub-constraint.} +\ccGlue +\ccMethod{Subconstraint_iterator subconstraints_end() const;} +{Returns a \ccc{Subconstraint_iterator} pointing past the last +sub-constraint.} +\ccGlue +\ccMethod{int number_of_enclosing_constraints(Vertex_handle va, + Vertex_handle vb);} +{Returns the number of constraints enclosing the sub-constraint +\ccc{(va,vb).} +\ccPrecond \ccc{va} and \ccc{vb} refer to the vertices +of a constrained edge of the triangulation.} +\ccGlue +\ccMethod{Context context(Vertex_handle va, Vertex_handle vb);} +{Returns the \ccc{Context} relative to one of the constraint +enclosing the sub-constraint \ccc{(va,vb)}. +\ccPrecond \ccc{va} and \ccc{vb} refer to the vertices +of a constrained edge of the triangulation.} +\ccGlue +\ccMethod{Context_iterator contexts_begin(Vertex_handle va, + Vertex_handle vb);} +{Returns an iterator pointing on the first \ccc{Context} +of the sequence of \ccc{Contexts} +corresponding to the constraints enclosing the sub-constraint\ccc{(va,vb).} +\ccPrecond \ccc{va} and \ccc{vb} refer to the vertices +of a constrained edge of the triangulation.} +\ccGlue +\ccMethod{Context_iterator contexts_end(Vertex_handle va, + Vertex_handle vb);} +{Returns an iterator past the last \ccc{Context} +of the sequence of \ccc{Contexts} +corresponding to the constraints enclosing the \ccc{(va,vb).} +\ccPrecond \ccc{va} and \ccc{vb} refer to the vertices +of a constrained edge of the triangulation.} +\ccGlue +\ccMethod{Vertices_in_constraint_iterator +vertices_in_constraint_begin(Constraint_id id);} +{Returns an iterator on the first vertex on the constraint +\ccc{id}.} +\ccGlue +\ccMethod{Vertices_in_constraint_iterator +vertices_in_constraint_end(Constraint_id id);} +{Returns an iterator past the last vertex on the constraint +\ccc{id}.} + + +\ccSeeAlso +\ccc{CGAL::Constrained_triangulation_plus_2} \\ +\ccc{CGAL::Constrained_triangulation_2} \\ +\ccc{CGAL::Constrained_Delaunay_triangulation_2} \\ +\ccc{ConstrainedTriangulationTraits_2} \\ +\ccc{ConstrainedDelaunayTriangulationTraits_2} +%\ccExample + +%A short example program. +%Instead of a short program fragment, a full running program can be +%included using the +%\verb|\ccIncludeExampleCode{Package/Polyline_constrained_triangulation_2_prog.cpp}| +%macro. The program example would be part of the source code distribution and +%also part of the automatic test suite. + +%\begin{ccExampleCode} +%void your_example_code() { +%} +%\end{ccExampleCode} + +%% \ccIncludeExampleCode{Package/Polyline_constrained_triangulation_2_prog.cpp} + +\end{ccRefClass} + +% +------------------------------------------------------------------------+ +%%RefPage: end of main body, begin of footer +% EOF +% +------------------------------------------------------------------------+ +