% +------------------------------------------------------------------------+ % | Reference manual page: is_simple_2.tex % +------------------------------------------------------------------------+ % | 21.06.2001 Author % | Package: Polygon % | \RCSdef{\RCSissimpleRev}{$Id$} \RCSdefDate{\RCSissimpleDate}{$Date$} % | %%RefPage: end of header, begin of main body % +------------------------------------------------------------------------+ \begin{ccRefFunction}{is_simple_2} %% \ccHtmlCrossLink{} %% add further rules for cross referencing links %% \ccHtmlIndexC[function]{} %% add further index entries \ccDefinition The function \ccRefName\ computes if a polygon is simple, that is, if the edges do not intersect, except consecutive edges in their common vertex. \ccInclude{CGAL/Polygon_2_algorithms.h} \ccGlobalFunction{ template inline bool is_simple_2(ForwardIterator first, ForwardIterator last, Traits traits); } { Checks if the polygon defined by the iterator range \ccc{first} \ldots\ \ccc{last} is simple. } \ccHeading{Requirements} \ccIndexSubitem[C]{bottom_vertex_2}{requirements} \begin{enumerate} \item \ccc{Traits} is a model of the concept \ccc{PolygonTraits_2}\ccIndexMainItem[c]{PolygonTraits_2}. Only the following members of this traits class are used: \begin{itemize} \item \ccc{Point_2} \item \ccc{Less_xy_2} \item \ccc{Orientation_2} \item \ccc{less_xy_2_object()} \item \ccc{orientation_2_object()} \end{itemize} \item The value type of \ccc{ForwardIterator} must be \ccc{Traits::Point_2}, \end{enumerate} \ccImplementation The simplicity test is implemented by means of a plane sweep algorithm. The algorithm is quite robust when used with inexact number types. The running time is O(n log n), where n is the number of vertices of the polygon. \ccSeeAlso \ccRefIdfierPage{PolygonTraits_2} \\ \ccRefIdfierPage{CGAL::Polygon_2} \\ %% \ccIncludeExampleCode{Polygon/is_simple_2_prog.cpp} \end{ccRefFunction} % +------------------------------------------------------------------------+ %%RefPage: end of main body, begin of footer % EOF % +------------------------------------------------------------------------+