cgal/Triangulation_2/doc_tex/Triangulation_2_ref/TriangulationTraits_2.tex

162 lines
5.5 KiB
TeX

% +------------------------------------------------------------------------+
% | Reference manual page: Triangulation_traits_2.tex
% +------------------------------------------------------------------------+
% | 06.04.2000 Author
% | Package: Package
% |
\RCSdef{\RCSTriangulationtraitsRev}{$Id$}
\RCSdefDate{\RCSTriangulationtraitsDate}{$Date$}
% |
%%RefPage: end of header, begin of main body
% +------------------------------------------------------------------------+
\begin{ccRefConcept}{TriangulationTraits_2}
%% \ccHtmlCrossLink{} %% add further rules for cross referencing links
%% \ccHtmlIndexC[concept]{} %% add further index entries
\ccDefinition
The concept \ccRefName\ describes
the set of requirements to be
fulfilled
by any class used to instantiate the first template parameter of the class
\ccc{Triangulation_2<Traits,Tds>}.
This concept provides the types of the geometric primitives used in the
triangulation and some function object types
for the required predicates on those primitives.
\ccTypes
\ccNestedType{Point_2}{The point type.}
\ccGlue
\ccNestedType{Segment_2}{The segment type.}
\ccGlue
\ccNestedType{Triangle_2}{The triangle type.}
\ccNestedType{Construct_segment_2} {A constructor object for
\ccc{Segment_2}. Provides~: \\
\ccc{Segment_2 operator()(Point_2 p,Point_2 q)}, \\
which constructs a segment from two points.}
\ccGlue
\ccNestedType{Construct_triangle_2} {A constructor object for
\ccc{Triangle_2}. Provides~: \\
\ccc{Triangle_2 operator()(Point_2 p,Point_2 q,Point_2 r )}, \\
which constructs a triangle from three points.}
\ccNestedType{Less_x_2}{Predicate object. Provides
the operator~: \\
\ccc{bool operator()(Point p, Point q)} \\
which returns \ccc{true} if \ccc{p} is before \ccc{q}
according to the $x$-ordering of points.}
\ccGlue
\ccNestedType{Less_y_2}{Predicate object. Provides
the operator~: \\
\ccc{bool operator()(Point p, Point q)} \\
which returns \ccc{true} if \ccc{p} is before \ccc{q}
according to the $y$-ordering of points.}
\ccGlue
\ccNestedType{Compare_x_2}{Predicate object. Provides
the operator~: \\
\ccc{Comparison_result operator()(Point p, Point q)} \\
which returns
\ccc{SMALLER, EQUAL} or \ccc{ LARGER}
according to the
$x$-ordering of points \ccc{p} and \ccc{q}.}
\ccGlue
\ccNestedType{Compare_y_2}{Predicate object. Provides
the operator~: \\
\ccc{Comparison_result operator()(Point p, Point q)}\\
which returns
(\ccc{SMALLER, EQUAL} or \ccc{ LARGER})
according to the
$y$-ordering of points \ccc{p} and \ccc{q}.}
\ccGlue
\ccNestedType{Orientation_2}{Predicate object. Provides
the operator~: \\
\ccc{Orientation operator()(Point p, Point q, Point r)}\\
which returns \ccc{LEFT_TURN}, \ccc{RIGHT_TURN} or \ccc{COLLINEAR}
depending on $r$ being, with respect to
the oriented line \ccc{pq},
on the left side , on the right side or on the line.}
\ccGlue
\ccNestedType{Side_of_oriented_circle_2}{Predicate object. Must
provide the operator
\ccc{Oriented_side operator()(Point p, Point q, Point r, Point s)}
which takes four points $p, q, r, s$ as arguments and returns
\ccc{ON_POSITIVE_SIDE}, \ccc{ON_NEGATIVE_SIDE} or,
\ccc{ON_ORIENTED_BOUNDARY} according to the position of points \ccc{s}
with respect to the oriented circle through through $p,q$
and $r$.
This type is required only if the function
\ccc{side_of_oriented_circle(Face_handle f, Point p)} is
called.}
\ccGlue
\ccNestedType{Construct_circumcenter_2}{Constructor object. Provides
the operator~: \\
\ccc{ Point operator()(Point p, Point q, Point r)} \\
which returns
the circumcenter of the three points \ccc{p, q} and \ccc{r}.
This type is required only if the function
\ccc{Point circumcenter(Face_handle f)}is called.}
\ccCreation
\ccCreationVariable{traits} %% choose variable name
Only a default constructor, copy constructor
and an assignment operator are required.
Note that further constructors
can be provided.
\ccThree{TriangulationTraits_2}{traits=gtrxx }{}
\ccConstructor{TriangulationTraits_2();}{default constructor.}
\ccGlue
\ccConstructor{TriangulationTraits_2(TriangulationTraits_2 gtr);}
{Copy constructor}
\ccMethod{TriangulationTraits_2 operator=(TriangulationTraits_2 gtr);}
{Assignment operator.}
\ccHeading{Predicate functions}
\ccThree{Construct_circumcenter_2}{traits.construct_circumcenter_2_object();}
{}
The following functions give access to the predicate
and constructor objects.
\ccThree{Construct_segment_2}{gt.compare_x(Point p0, Point p1)x}{}
\ccMethod{Construct_segment_2 construct_segment_2_object();}{}
\ccGlue
\ccMethod{Construct_triangle_2 construct_triangle_2_object();}{}
\ccGlue
\ccMethod{Comparison_x_2 compare_x_2_object();}{} \ccGlue
\ccMethod{Comparison_y_2 compare_y_2_object();}{}
\ccGlue
\ccMethod{Orientation_2 orientation_2_object();}{}
\ccGlue
\ccMethod{Side_of_oriented_circle_2
side_of_oriented_circle_2_object();}
{Required only
if \ccc{side_of_oriented_circle} is called
called.}
\ccGlue
\ccMethod{Construct_circumcenter_2 construct_circumcenter_2_object();}
{Required only if \ccc{circumcenter} is called.}
\ccHasModels
All the CGAL Kernels \\
\ccc{CGAL::Triangulation_euclidean_traits_2<K>} \\
\ccc{CGAL::Triangulation_euclidean_traits_xy_3<K>} \\
\ccc{CGAL::Triangulation_euclidean_traits_yz_3<K>} \\
\ccc{CGAL::Triangulation_euclidean_traits_zx_3<K>} \\
\ccSeeAlso
\ccc{CGAL::Triangulation_2<Traits,Tds>}
\end{ccRefConcept}
% +------------------------------------------------------------------------+
%%RefPage: end of main body, begin of footer
% EOF
% +------------------------------------------------------------------------+