cgal/Triangulation_2/doc_tex/Triangulation_2_ref/ConstrainedTriangulationTra...

119 lines
4.1 KiB
TeX

% +------------------------------------------------------------------------+
% | Reference manual page: ConstrainedTriangulationTraits_2.tex
% +------------------------------------------------------------------------+
% | 05.02.2002 Mariette Yvinec
% | Package: Triangulation_2
% |
\RCSdef{\RCSConstrainedTriangulationTraitsRev}{$Id$}
\RCSdefDate{\RCSConstrainedTriangulationTraitsDate}{$Date$}
% |
%%RefPage: end of header, begin of main body
% +------------------------------------------------------------------------+
\begin{ccRefConcept}{ConstrainedTriangulationTraits_2}
%% \ccHtmlCrossLink{} %% add further rules for cross referencing links
%% \ccHtmlIndexC[concept]{} %% add further index entries
\ccDefinition
The concept \ccRefName\ defines the requirements for the geometric
traits class of a constrained triangulation
( \ccc{Constrained_Triangulation_2<Traits,Tds,Itag>})
that supports intersections of input constraints (i. e.
when the template parameter \ccc{Itag} is instantiated
by one of the tag classes \ccc{Exact_intersections_tag} or
\ccc{Exact_predicates_tag}). This concept refines the concept
\ccc{TriangulationTraits_2}, adding requirements for function objects
to compute the intersection points of two constraints.
When \ccc{Exact_predicates_tag} is used, the
traits class is
also required to provide additional types
to compute the squared distance between a point and a line
\ccRefines
\ccc{TriangulationTraits_2}
\ccTypes
\ccNestedType{Intersect_2}{A function object whose operator()
computes the intersection of two segments : \\
\ccc{Object_2 operator()(Segment_2 s1, Segment_2 s2);}
Returns the intersection of \ccc{s1} and \ccc{s2}.}
When the constrained triangulation is instantiated with
the intersection tag \ccc{Exact_predicates_tag},
the used algorithm needs to be able to compare some
distances between points and lines and the following
types are further required.
\ccNestedType{RT}{A number type supporting the comparison operator
\ccc{<}.}
\ccNestedType{Line_2}{The line type.}
\ccGlue
\ccNestedType{Construct_line_2} {A function object whose operator()
constructs a line from two points : \\
\ccc{Line_2 operator()(Point_2 p1, Point_2 p2)}.}
\ccGlue
\ccNestedType{Compute_squared_distance_2}{A function object with an
operator() designed to compute the squared distance between
a line and a point : \\
\ccc{RT operator()(Line_2 l, Point_2 p);} Return the squared distance
between \ccc{p} and \ccc{l}.}
\ccCreationVariable{traits} %% choose variable name
\ccHeading{Access to constructor object}
\ccMethod{Intersect_2 intersect_2_object();}{}
\ccMethod{Construct_line_2 construct_line_2_object();}{required when
the intersection tag is \ccc{Exact_predicates_tag}.}
\ccMethod{Compute_squared_distance_2
compute_squared_distance_2_object();}
{required when
the intersection tag is \ccc{Exact_predicates_tag}.}
\ccHasModels
The kernels of \cgal\ are models for this traits class.\\
\ccRefIdfierPage{CGAL::Projection_traits_xy_3<K>}\\
\ccc{CGAL::Projection_traits_yz_3<K>}\\
\ccc{CGAL::Projection_traits_zx_3<K>}
\begin{ccDeprecated}
\ccRefIdfierPage{CGAL::Triangulation_euclidean_traits_xy_3<K>}, \\
\ccc{CGAL::Triangulation_euclidean_traits_yz_3<K>}, \\
\ccc{CGAL::Triangulation_euclidean_traits_zx_3<K>}.
\end{ccDeprecated}
\ccSeeAlso
\ccc{TriangulationTraits_2} \\
\ccc{ConstrainedDelaunayTriangulationTraits_2} \\
\ccc{CGAL:Constrained_Triangulation_2<Traits,Tds,Itag>}
%\ccExample
%A short example program.
%Instead of a short program fragment, a full running program can be
%included using the
%\verb|\ccIncludeExampleCode{Package/ConstrainedTriangulationPlusTraits_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/ConstrainedTriangulationPlusTraits_2_prog.cpp}
\end{ccRefConcept}
% +------------------------------------------------------------------------+
%%RefPage: end of main body, begin of footer
% EOF
% +------------------------------------------------------------------------+