From 95c6b2d4ddf4310b777370bb1be6c7486db2dccb Mon Sep 17 00:00:00 2001 From: Monique Teillaud Date: Wed, 13 Sep 2006 13:00:06 +0000 Subject: [PATCH] intersect --- .../Spherical_kernel_3_ref/Intersect.tex | 84 +++++++++++++++++++ .../doc_tex/Spherical_kernel_3_ref/intro.tex | 2 + .../doc_tex/Spherical_kernel_3_ref/main.tex | 15 ++++ 3 files changed, 101 insertions(+) create mode 100644 Circular_kernel_3/doc_tex/Spherical_kernel_3_ref/Intersect.tex diff --git a/Circular_kernel_3/doc_tex/Spherical_kernel_3_ref/Intersect.tex b/Circular_kernel_3/doc_tex/Spherical_kernel_3_ref/Intersect.tex new file mode 100644 index 00000000000..3a89e3ca257 --- /dev/null +++ b/Circular_kernel_3/doc_tex/Spherical_kernel_3_ref/Intersect.tex @@ -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}, +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}, +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} diff --git a/Circular_kernel_3/doc_tex/Spherical_kernel_3_ref/intro.tex b/Circular_kernel_3/doc_tex/Spherical_kernel_3_ref/intro.tex index f443030806b..8bfb177350f 100644 --- a/Circular_kernel_3/doc_tex/Spherical_kernel_3_ref/intro.tex +++ b/Circular_kernel_3/doc_tex/Spherical_kernel_3_ref/intro.tex @@ -11,6 +11,8 @@ \subsubsection*{Functors} +\ccRefConceptPage{Intersect_3} + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \section{Algebraic Concepts} diff --git a/Circular_kernel_3/doc_tex/Spherical_kernel_3_ref/main.tex b/Circular_kernel_3/doc_tex/Spherical_kernel_3_ref/main.tex index cea2d480f79..bceb7bc0f25 100644 --- a/Circular_kernel_3/doc_tex/Spherical_kernel_3_ref/main.tex +++ b/Circular_kernel_3/doc_tex/Spherical_kernel_3_ref/main.tex @@ -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