% +------------------------------------------------------------------------+
% | Reference manual page: PolygonTraits_2.tex
% +------------------------------------------------------------------------+
% | 21.06.2001   Author
% | Package: Polygon
% | 
\RCSdef{\RCSPolygonTraitsRev}{$Id$}
\RCSdefDate{\RCSPolygonTraitsDate}{$Date$}
% |
%%RefPage: end of header, begin of main body
% +------------------------------------------------------------------------+


\begin{ccRefConcept}{PolygonTraits_2}

%% \ccHtmlCrossLink{}     %% add further rules for cross referencing links
%% \ccHtmlIndexC[concept]{} %% add further index entries

\ccDefinition

The \ccc{Polygon_2} class and the functions that implement the functionality
found in that class each are parameterized by a traits class that defines the
primitives used in the algorithms.
The concept \ccRefName\ defines this common set of requirements.

The requirements of \ccRefName\ are a subset of the kernel requirements.
We only list the types and methods which are required and refer to the
description of the kernel concept for details.

\ccTypes

\ccNestedType{FT}{}
\ccNestedType{Point_2}{The point type.}
\ccNestedType{Segment_2}{The segment type.}
\ccNestedType{Construct_segment_2}{}
\ccNestedType{Equal_2}{}
\ccNestedType{Less_xy_2}{}
\ccNestedType{Less_yx_2}{}
\ccNestedType{Compare_x_2}{}
\ccNestedType{Compare_y_2}{}
\ccNestedType{Orientation_2}{}
\ccNestedType{Compute_area_2}{Computes the signed area of the oriented
triangle defined by 3 \ccc{Point_2} passed as arguments.}

\ccCreation
\ccCreationVariable{traits}  

A default constructor and copy constructor are required.

\ccOperations

The following functions that create instances of the above predicate object
types must exist.

\ccMethod{Equal_2 equal_2_object();}{}

\ccMethod{Less_xy_2 less_xy_2_object();}{}

\ccMethod{Less_yx_2 less_yx_2_object();}{}

\ccMethod{Compare_y_2 compare_y_2_object();}{}

\ccMethod{Compare_x_2 compare_x_2_object();}{}

\ccMethod{Orientation_2 orientation_2_object();}{}

\ccMethod{Compute_area_2 compute_area_2_object();}{}

\ccMethod{Construct_segment_2 construct_segment_2_object();}{}


\ccHasModels

The kernels supplied by \cgal\ are models of \ccRefName. \\
\ccRefConceptPage{CGAL::Projection_traits_xy_3<K>}\\
\ccc{CGAL::Projection_traits_yz_3<K>}\\
\ccc{CGAL::Projection_traits_zx_3<K>}

\ccSeeAlso

\ccRefIdfierPage{CGAL::Polygon_2<PolygonTraits_2, Container>}

\end{ccRefConcept}

% +------------------------------------------------------------------------+
%%RefPage: end of main body, begin of footer
% EOF
% +------------------------------------------------------------------------+

