added oriented_side() free-function template

This commit is contained in:
Efi Fogel 2010-03-02 14:12:13 +00:00
parent 3c572bbaa3
commit a6e2b1b994
3 changed files with 124 additions and 0 deletions

View File

@ -0,0 +1,121 @@
\ccRefPageBegin
\label{ref_bso_oriented_side}
\begin{ccRefFunction}{oriented_side}
\ccThree{Oriented_side}{oriented_side}{}
\ccThreeToTwo
\ccDefinition
\ccInclude{CGAL/Boolean_set_operations_2.h}
\ccGlobalFunction{Oriented_side oriented_side(const Type1 & p1, const Type2 & p2);}
{Each one of these functions returns \ccc{ON_POSITIVE_SIDE} if the two
given polygons \ccc{p1} and \ccc{p2} intersect in their interior,
\ccc{ON_NEGATIVE_SIDE} if \ccc{p1} and \ccc{p2} do not intersect at
all, and \ccc{ON_ORIENTED_BOUNDARY} if \ccc{p1} and \ccc{p2} intersect
only in their boundaries.}
\begin{ccTexOnly}
\begin{longtable}[c]{|l|l|}
\multicolumn{2}{l}{\sl \ \ }
\endfirsthead
\multicolumn{2}{l}{\sl continued}
\endhead
\hline
\textbf{Arg 1 Type} & \textbf{Arg 2 Type}\\
\hline
\hline
\ccc{Polygon_2} & \ccc{Polygon_2}\\
\hline
\ccc{Polygon_2} & \ccc{Polygon_with_holes_2}\\
\hline
\ccc{Polygon_with_holes_2} & \ccc{Polygon_2}\\
\hline
\ccc{Polygon_with_holes_2} & \ccc{Polygon_with_holes_2}\\
\hline
\ccc{General_polygon_2} & \ccc{General_polygon_2}\\
\hline
\ccc{General_polygon_2} & \ccc{General_polygon_with_holes_2}\\
\hline
\ccc{General_polygon_with_holes_2} & \ccc{General_polygon_2}\\
\hline
\ccc{General_polygon_with_holes_2} & \ccc{General_polygon_with_holes_2}\\
\hline
\end{longtable}
\end{ccTexOnly}
\begin{ccHtmlOnly}
<div align="center">
<table cellpadding=3 border="1">
<tr><th> Arg 1 type</th><th>Arg 2 type</th></tr>
<tr><td valign="center">Polygon_2</td><td valign="center">Polygon_2</td></tr>
<tr><td valign="center">Polygon_2</td><td valign="center">Polygon_with_holes_2</td></tr>
<tr><td valign="center">Polygon_with_holes_2</td><td valign="center">Polygon_2</td></tr>
<tr><td valign="center">Polygon_with_holes_2</td><td valign="center">Polygon_with_holes_2</td></tr>
<tr><td valign="center">General_polygon_2</td><td valign="center">General_polygon_2</td></tr>
<tr><td valign="center">General_polygon_2</td><td valign="center">General_polygon_with_holes_2</td></tr>
<tr><td valign="center">General_polygon_with_holes_2</td><td valign="center">General_polygon_2</td></tr>
<tr><td valign="center">General_polygon_with_holes_2</td><td valign="center">General_polygon_with_holes_2</td></tr>
</table>
</div>
\end{ccHtmlOnly}
\ccGlobalFunction{template <class Kernel, class Container>
Oriented_side oriented_side(const Polygon_2<Kernel, Container> & p1,
const Polygon_2<Kernel, Container> & p2);}
\ccGlue
\ccGlobalFunction{template <class Kernel, class Container>
Oriented_side oriented_side(const Polygon_2<Kernel, Container> & p1,
const Polygon_with_holes_2<Kernel, Container> & p2);}
\ccGlue
\ccGlobalFunction{template <class Kernel, class Container>
Oriented_side oriented_side(const Polygon_with_holes_2<Kernel, Container> & p1,
const Polygon_2<Kernel, Container> & p2);}
\ccGlue
\ccGlobalFunction{template <class Kernel, class Container>
Oriented_side oriented_side(const Polygon_with_holes_2<Kernel, Container> & p1,
const Polygon_with_holes_2<Kernel, Container> & p2);}
\ccGlue
\ccGlobalFunction{template <class Traits>
Oriented_side oriented_side(const General_polygon_2<Traits> & p1,
const General_polygon_2<Traits> & p2);}
\ccGlue
\ccGlobalFunction{template <class Traits>
Oriented_side oriented_side(const General_polygon_2<Traits> & p1,
const General_polygon_with_holes_2<General_polygon_2<Traits> > & p2);}
\ccGlue
\ccGlobalFunction{template <class Traits>
Oriented_side oriented_side(const General_polygon_with_holes_2<General_polygon_2<Traits> > & p1,
const General_polygon_2<Traits> & p2);}
\ccGlue
\ccGlobalFunction{template <class Polygon>
Oriented_side oriented_side(const General_polygon_with_holes_2<Polygon> & p1,
const General_polygon_with_holes_2<Polygon> & p2);}
%% \ccGlobalFunction{template <class InputIterator>
%% Oriented_side oriented_side(InputIterator begin, InputIterator end);}
%% {Returns \ccc{ON_POSITIVE_SIDE} if the set of general polygons (or
%% general polygons with holes) in the given range intersect in their
%% interior, \ccc{ON_NEGATIVE_SIDE} if they do not intersect at all,
%% and \ccc{ON_ORIENTED_BOUNDARY} if they intersect only in their
%% boundaries. (The value type of the input iterator is used to
%% distinguish between the two).}
%% \ccGlobalFunction{template <class InputIterator1, class InputIterator2>
%% Oriented_side oriented_side(InputIterator1 pgn_begin1,
%% InputIterator1 pgn_end1,
%% InputIterator2 pgn_begin2,
%% InputIterator2 pgn_end2);}
%% {Returns \ccc{ON_POSITIVE_SIDE} if the set of general polygons and
%% general polygons with holes in the given two ranges, respectively,
%% intersect in their interior, \ccc{ON_NEGATIVE_SIDE} if they do not
%% intersect at all, and \ccc{ON_ORIENTED_BOUNDARY} if they intersect
%% only in their boundaries.}
\ccSeeAlso
\ccRefIdfierPage{CGAL::do_intersect}
\end{ccRefFunction}
\ccRefPageEnd

View File

@ -56,6 +56,8 @@ containment predicates.
{\lcTex{\dotfill page~\pageref{ref_bso_difference}}}\\
\ccc{CGAL::symmetric_difference}
{\lcTex{\dotfill page~\pageref{ref_bso_symmetric_difference}}}\\
\ccc{CGAL::oriented_side}
{\lcTex{\dotfill page~\pageref{ref_bso_oriented_side}}}\\
\ccc{CGAL::connect_holes}
{\lcTex{\dotfill page~\pageref{ref_bso_connect_holes}}}\\
\ccc{CGAL::operator<<}

View File

@ -21,6 +21,7 @@
\input{Boolean_set_operations_2_ref/Bso_complement.tex}
\input{Boolean_set_operations_2_ref/Bso_difference.tex}
\input{Boolean_set_operations_2_ref/Bso_do_intersect.tex}
\input{Boolean_set_operations_2_ref/Bso_oriented_side.tex}
\input{Boolean_set_operations_2_ref/Bso_intersection.tex}
\input{Boolean_set_operations_2_ref/Bso_join.tex}
\input{Boolean_set_operations_2_ref/Bso_symmetric_difference.tex}