% +------------------------------------------------------------------------+
% | Reference manual page: LargestEmptyIsoRectangleTraits_2.tex
% +------------------------------------------------------------------------+
% | 06.04.2000   Author
% | Package: Package
% | 
\RCSdef{\RCSLargestEmptyIsoRectangleTraits_2Rev}{$Id$}
\RCSdefDate{\RCSLargestEmptyIsoRectangleTraits_2Date}{$Date$}
% |
%%RefPage: end of header, begin of main body
% +------------------------------------------------------------------------+


\begin{ccRefConcept}{LargestEmptyIsoRectangleTraits_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 template parameter of
the class \ccc{Largest_empty_iso_rectangle_2<T>}.
This concept provides the types of the geometric primitives used in
this class and some function object types for the required
predicates on those primitives.

%% Less_x_2, Less_yx_2, Less_yx_2, Compare_x_2, Compare_y_2, Comparison_result

\ccTypes
\ccNestedType{Point_2}{The  point type.}
\ccGlue
\ccNestedType{Iso_rectangle_2}{The iso rectangle  type.}

\ccNestedType{Compare_x_2}{Predicate object. Must provide
the operator
\ccc{Comparison_result operator()(Point_2 p, Point_2 q)}
which returns 
\ccc{SMALLER, EQUAL} or \ccc{ LARGER}
 according ding to the
$x$-ordering of points \ccc{p} and \ccc{q}.}
\ccGlue
\ccNestedType{Compare_y_2}{Predicate object. Must provide
the operator
\ccc{Comparison_result operator()(Point_2 p, Point_2 q)}
which returns
\ccc{SMALLER, EQUAL} or \ccc{ LARGER}
according to the
$y$-ordering of points \ccc{p} and \ccc{q}.}
\ccGlue
\ccNestedType{Less_x_2}{Predicate object. Must provide
the operator
\ccc{bool operator()(Point_2 p, Point_2 q)}
which returns
whether \ccc{p} is less than \ccc{q} according to their $x$-ordering.}
\ccGlue
\ccNestedType{Less_y_2}{Predicate object. Must provide
the operator
\ccc{bool operator()(Point_2 p, Point_2 q)}
which returns
whether \ccc{p} is less than \ccc{q} according to their $y$-ordering.}

\ccCreation
\ccCreationVariable{traits}  %% choose variable name
Only a default constructor, copy constructor
 and an assignement operator are required. 
Note that further constructors
can be provided. 

\ccConstructor{LargestEmptyIsoRectangleTraits_2();}{Default constructor.}
\ccGlue
\ccConstructor{LargestEmptyIsoRectangleTraits_2(LargestEmptyIsoRectangleTraits_2);}
{Copy constructor}
\ccMethod{LargestEmptyIsoRectangleTraits_2 operator=(LargestEmptyIsoRectangleTraits_2 gtr);}
{Assignment operator.}

\ccHeading{Predicate functions}

The following functions give access to the  predicate 
and constructor objects.

\ccThree{Construct_segment_2}{gt.compare_x(Point p0, Point p1)x}{}

\ccMethod{Compare_x_2 compare_x_2_object();}{}                               
\ccGlue
\ccMethod{Compare_y_2 compare_y_2_object();}{}
\ccGlue
\ccMethod{Less_x_2 less_x_2_object();}{}
\ccGlue
\ccMethod{Less_y_2 less_y_2_object();}{}

\ccHasModels
\ccc{CGAL::Cartesian<R>} \\
\ccc{CGAL::Homogeneous<R>}

\ccSeeAlso
\ccc{CGAL::Largest_empty_iso_rectangle_2<Traits>}



\end{ccRefConcept}

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

