From df609d3f1903ffb874757c5c67cc07072784c8a0 Mon Sep 17 00:00:00 2001 From: Eric Berberich Date: Tue, 27 Mar 2007 15:09:43 +0000 Subject: [PATCH] added Intersection functor --- .../Quadrical_kernel_3_ref/Intersect.tex | 64 +++++++++++++++++++ 1 file changed, 64 insertions(+) create mode 100644 Quadrical_kernel_3/doc_tex/Quadrical_kernel_3_ref/Intersect.tex diff --git a/Quadrical_kernel_3/doc_tex/Quadrical_kernel_3_ref/Intersect.tex b/Quadrical_kernel_3/doc_tex/Quadrical_kernel_3_ref/Intersect.tex new file mode 100644 index 00000000000..37eb57d8050 --- /dev/null +++ b/Quadrical_kernel_3/doc_tex/Quadrical_kernel_3_ref/Intersect.tex @@ -0,0 +1,64 @@ +\begin{ccRefFunctionObjectConcept}{QuadricalKernel_3::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 + +\begin{itemize} +\item {} \ccc{QuadricalKernel_3::Quadric_3}, +\item {} \ccc{QuadricalKernel_3::Curve_3}, +\item {} \ccc{QuadricalKernel_3::Curve_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{QuadricalKernel_3::Curve_arc_3} in case of an overlap of +two arcs +\end{itemize} + +For the \textbf{second operator}, \ccc{Type_1}, \ccc{Type_2} and \ccc{Type_3} +are of type \ccc{QuadricalKernel_3::Quadric_3}. +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{QuadricalKernel_3::Curve_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}