intersect

This commit is contained in:
Monique Teillaud 2006-09-13 13:00:06 +00:00
parent 9280841257
commit 95c6b2d4dd
3 changed files with 101 additions and 0 deletions

View File

@ -0,0 +1,84 @@
\begin{ccRefFunctionObjectConcept}{SphericalKernel::Intersect_3}
\ccRefines
\ccc{Kernel::Intersect__3}
\ccCreationVariable{fo}
A model \ccVar\ of this type must provide:
\ccMemberFunction{template < class OutputIterator >
OutputIterator
operator()(const Type1 &obj1, const Type2 &obj2,
OutputIterator intersections);}
{Copies in the output iterator the intersection elements between the
two objects. \ccc{intersections} iterates on
elements of type \ccc{CGAL::Object}, in lexicographic order
(where appropriate). See below for more precisions.}
\ccMemberFunction{template < class OutputIterator >
OutputIterator
operator()(const Type1 &obj1, const Type2 &obj2,
const Type3 &obj3,
OutputIterator intersections);}
{Copies in the output iterator the intersection elements between the
two objects. \ccc{intersections} iterates on
elements of type \ccc{CGAL::Object}, in lexicographic order
(where appropriate). See below for more precisions.}
For the \textbf{first operator}, \ccc{Type_1} and \ccc{Type_2} can both
be either
\textbf{!!!!!!! we coded here the intersection \ccc{Line_3}-\ccc{Line_3},
since it was apparently forgotten in \ccc{CGAL::Kernel}, this code
should be moved there}
\begin{itemize}
\item {} \ccc{SphericalKernel::Sphere_3},
\item {} \ccc{SphericalKernel::Plane_3},
\item {} \ccc{SphericalKernel::Line_3},
\item {} \ccc{SphericalKernel::Circle_3},
\item {} \ccc{SphericalKernel::Line_arc_3} or
\item {} \ccc{SphericalKernel::Circular_arc_3},
\end{itemize}
and depending on the types \ccc{Type_1} and \ccc{Type_2}, the computed
\ccc{CGAL::Object}s can be assigned to
\begin{itemize}
\item {} \ccc{std::pair<SphericalKernel::Circular_arc_point_3, unsigned>},
where the unsigned integer is the multiplicity of the corresponding
intersection point between \ccc{obj_1} and \ccc{obj_2},
\item {} \ccc{Type_1}, when \ccc{Type_1} and \ccc{Type_2} are equal, and
if the two objets \ccc{obj1} and \ccc{obj2} are equal,
\item {} \ccc{SphericalKernel::Line_3} or \ccc{SphericalKernel::Circle_3}
when \ccc{Type_1} and \ccc{Type_2} are two-dimensional objets intersecting
along a curve,
\item {} \ccc{SphericalKernel::Circular_arc_3} in case of an overlap of
two circular arcs or
\item {} \ccc{SphericalKernel::Line_arc_3} in case of an overlap of two
line segments.
\end{itemize}
For the \textbf{second operator}, \ccc{Type_1}, \ccc{Type_2} and \ccc{Type_3}
can be either
\textbf{!!!!!!! case of 3 planes is missing, again it should be in Kernel}
\begin{itemize}
\item {} \ccc{SphericalKernel::Sphere_3} or
\item {} \ccc{SphericalKernel::Plane_3}
\end{itemize}
and depending of these types, the computed \ccc{CGAL::Object}s can be
assigned to
\begin{itemize}
\item {} \ccc{std::pair<SphericalKernel::Circular_arc_point_3, unsigned>},
where the unsigned integer is the multiplicity of the corresponding
intersection point,
\item {} \ccc{SphericalKernel::Circle_3} or
\item {} \ccc{Type_1}, when \ccc{Type_1}, \ccc{Type_2} and \ccc{Type_3}
are equal, and if the three objets \ccc{obj1} and \ccc{obj2} and \ccc{obj3}
are equal.
\end{itemize}
\end{ccRefFunctionObjectConcept}

View File

@ -11,6 +11,8 @@
\subsubsection*{Functors}
\ccRefConceptPage{Intersect_3}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{Algebraic Concepts}

View File

@ -1,10 +1,25 @@
\input{Spherical_kernel_3_ref/intro}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% geometric kernels
\input{Spherical_kernel_3_ref/SphericalKernel}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% geometric objects
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% geometric functors
\input{Spherical_kernel_3_ref/Intersect}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% algebraic kernels
\input{Spherical_kernel_3_ref/AlgebraicKernelForSpheres}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% algebraic objects
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% algebraic functors