diff --git a/Packages/Apollonius_graph_2/doc_tex/Apollonius_graph_2/Apollonius_2.tex b/Packages/Apollonius_graph_2/doc_tex/Apollonius_graph_2/Apollonius_2.tex index a3c775a753f..ae45e2d4f75 100644 --- a/Packages/Apollonius_graph_2/doc_tex/Apollonius_graph_2/Apollonius_2.tex +++ b/Packages/Apollonius_graph_2/doc_tex/Apollonius_graph_2/Apollonius_2.tex @@ -20,7 +20,7 @@ %// %//============================================================================ -\chapter{2D Apollonius graph} +\chapter{2D Apollonius graphs} \label{chapter-apollonius2} \minitoc @@ -454,7 +454,6 @@ otherwise it is a finite edge. \end{ccHtmlOnly} \end{figure} - The last predicate that we want to discuss is called \ccc{Is_degenerate_edge_2}. It tells us whether an edge in the Apollonius diagram is degenerate, that is if its two endpoints @@ -462,9 +461,53 @@ coincide. In the Apollonius graph such an edge corresponds to one of the additional edges that we use to triangulate the non-triangular faces. -% TALK ABOUT THE METHOD TAG AND THE FILTERED AND NON-FILTERED TRAITS +The afore mentioned predicates are part of the +\ccc{ApolloniusGraphTraits_2} concept of \cgal. \cgal{} also provides +a model for this concept, the +\ccc{Apollonius_graph_traits_2} class. The first +template parameter of this class must be a model of the \ccc{Kernel} +concept. The second template parameter is a tag that indicates what +operations are allowed in the computations that take place within the +traits class. +The two possible values of the \ccc{Method_tag} parameter are +\ccc{CGAL::Ring_tag} and \ccc{CGAL::Sqrt_field_tag}. When +\ccc{CGAL::Ring_tag} is used, only ring operations are used during the +evaluation of the predicates, whereas if \ccc{CGAL::Sqrt_field_tag} is +chosen, all four field operations, as well as square roots, as used +during the predicate evaluation. +The \ccc{Apollonius_graph_traits_2} class provides exact +predicates if the number type in the kernel \ccc{K} is an exact number +type. This is to be associated with the type of operations allowed for +the predicate evaluation. For example \ccc{CGAL::MP_Float} as number +type, with \ccc{CGAL::Ring_tag} as tag will give exact predicates, +whereas \ccc{CGAL::MP_Float} with \ccc{CGAL::Sqrt_field_tag} will give +inexact predicates. +Since using an exact number type may be too slow, the +\ccc{Apollonius_graph_traits_2} class is designed to +support the dynamic filtering of \cgal{} through the +\ccc{Filtered_exact} mechanism. In particular if \ccc{CT} is an +inexact number type that supports the operations denoted by the tag +\ccc{Method_tag} and \ccc{ET} is an exact number type for these +operations, then kernel with number type \ccc{Filtered_exact} +will yield exact predicates for the Apollonius graph traits. To give a +concrete example, \ccc{Filtered_exact} with +\ccc{CGAL::Ring_tag} will produce exact predicates. + +Another possibility for fast and exact predicate evalutation is to use +the +\ccc{Apollonius_graph_filtered_traits_2} +class. This class is the analog of a filtered kernel. It takes a +constructions kernel \ccc{CK}, a filtering kernel \ccc{FK} and an +exact kernel \ccc{EK}, as well as the corresponding tags +(\ccc{CM}, \ccc{FM} and \ccc{EM}, respectively). +It evaluates the predicates by first using the filtering kernel, and +if this fails the evaluation is performed using the exact kernel. The +constructions are done using the kernel \ccc{CK}, which means that +they are not necessarily exact. All template parameters except +\ccc{CK} have default values, which are explained in the reference +manual. diff --git a/Packages/Apollonius_graph_2/doc_tex/Apollonius_graph_2_ref/ApolloniusGraphTraits_2.tex b/Packages/Apollonius_graph_2/doc_tex/Apollonius_graph_2_ref/ApolloniusGraphTraits_2.tex index 307f2e0984c..adeefe850c8 100644 --- a/Packages/Apollonius_graph_2/doc_tex/Apollonius_graph_2_ref/ApolloniusGraphTraits_2.tex +++ b/Packages/Apollonius_graph_2/doc_tex/Apollonius_graph_2_ref/ApolloniusGraphTraits_2.tex @@ -298,13 +298,14 @@ construct_Apollonius_site_2_object();}{} \ccHasModels -\ccc{CGAL::Apollonius_graph_traits_2} +\ccc{CGAL::Apollonius_graph_traits_2}\\ +\ccc{CGAL::Apollonius_graph_filtered_traits_2} \ccSeeAlso \ccc{CGAL::Apollonius_graph_2}\\ -\ccc{CGAL::Apollonius_graph_traits_2} - +\ccc{CGAL::Apollonius_graph_traits_2}\\ +\ccc{CGAL::Apollonius_graph_filtered_traits_2} \end{ccRefConcept} % +------------------------------------------------------------------------+ diff --git a/Packages/Apollonius_graph_2/doc_tex/Apollonius_graph_2_ref/ApolloniusSite_2.tex b/Packages/Apollonius_graph_2/doc_tex/Apollonius_graph_2_ref/ApolloniusSite_2.tex index 06aef409b4e..b9b91187655 100644 --- a/Packages/Apollonius_graph_2/doc_tex/Apollonius_graph_2_ref/ApolloniusSite_2.tex +++ b/Packages/Apollonius_graph_2/doc_tex/Apollonius_graph_2_ref/ApolloniusSite_2.tex @@ -56,8 +56,8 @@ site.} \ccSeeAlso \ccc{ApolloniusGraphTraits_2}\\ \ccc{CGAL::Apollonius_site_2}\\ -\ccc{CGAL::Apollonius_graph_traits_2}. - +\ccc{CGAL::Apollonius_graph_traits_2}\\ +\ccc{CGAL::Apollonius_graph_filtered_traits_2} \end{ccRefConcept} diff --git a/Packages/Apollonius_graph_2/doc_tex/Apollonius_graph_2_ref/Apollonius_graph_2.tex b/Packages/Apollonius_graph_2/doc_tex/Apollonius_graph_2_ref/Apollonius_graph_2.tex index f8eb3f13eab..2359f8e05c3 100644 --- a/Packages/Apollonius_graph_2/doc_tex/Apollonius_graph_2_ref/Apollonius_graph_2.tex +++ b/Packages/Apollonius_graph_2/doc_tex/Apollonius_graph_2_ref/Apollonius_graph_2.tex @@ -559,6 +559,7 @@ be preferred to \ccVar\ccc{ = other} or to \ccVar\ccc{(other)} if \ccc{ApolloniusGraphVertexBase_2}\\ \ccc{ApolloniusGraphFaceBase_2}\\ \ccc{CGAL::Apollonius_graph_traits_2}\\ +\ccc{CGAL::Apollonius_graph_filtered_traits_2}\\ \ccc{CGAL::Apollonius_graph_data_structure_2}\\ \ccc{CGAL::Apollonius_graph_vertex_base_2}\\ \ccc{CGAL::Apollonius_graph_face_base_2} diff --git a/Packages/Apollonius_graph_2/doc_tex/Apollonius_graph_2_ref/Apollonius_graph_filtered_traits_2.tex b/Packages/Apollonius_graph_2/doc_tex/Apollonius_graph_2_ref/Apollonius_graph_filtered_traits_2.tex new file mode 100644 index 00000000000..f2cf246ed1a --- /dev/null +++ b/Packages/Apollonius_graph_2/doc_tex/Apollonius_graph_2_ref/Apollonius_graph_filtered_traits_2.tex @@ -0,0 +1,94 @@ +% +------------------------------------------------------------------------+ +% | Reference manual page: Apollonius_graph_euclidean_traits_2.tex +% +------------------------------------------------------------------------+ +% | 12.04.2000 Author +% | Package: Package +% | +%\RCSdef{\RCSRegulartriangulationtraitsRev}{$Revision$} +%\RCSdefDate{\RCSRegulartriangulationtraitsDate}{$Date$} +% | +%%RefPage: end of header, begin of main body +% +------------------------------------------------------------------------+ + + +\begin{ccRefClass} +{Apollonius_graph_filtered_traits_2} +%% add template arg's if necessary + +%% \ccHtmlCrossLink{} %% add further rules for cross referencing links +%% \ccHtmlIndexC[class]{} %% add further index entries +\ccDefinition + +The class \ccRefName\ provides a model for the +\ccc{ApolloniusGraphTraits_2} concept. + +The class \ccRefName\ uses the filtering technique \cite{bbp-iayed-01} +to achieve traits for the \ccc{Apollonius_graph_2} class +with efficient and exact predicates given an exact +kernel \ccc{EK} and a filtering kernel \ccc{FK}. The geometric +constructions associated provided by this class are equivalent +to those provided by the traits class +\ccc{Apollonius_graph_traits_2}, which means that they may +be inexact. + +This class has six template parameters. The first, third and fifth +template parameters must be a models of the \ccc{Kernel} concept. The +second, fourth and sixth template parameters correspond to how +predicates are evaluated. There are two predefined possible values for +\ccc{Method_tag}, namely \ccc{CGAL::Sqrt_field_tag} and +\ccc{CGAL::Ring_tag}. The first one must be used when the number type +used in the representation supports the exact evaluation of signs of +expressions involving all four basic operations and square roots, +whereas the second one requires the exact evaluation of signs of +ring-type expressions, i.e., expressions involving only additions, +subtractions and multiplications. +% +The way the predicates are evaluated is discussed in +\cite{ke-ppawv-02,ke-rctac-03}. + +The default values for the template parameters are as follows: +\ccc{CM = CGAL::Ring_tag}, +\ccc{EK = CGAL::Simple_cartesian}, +\ccc{EM = CM}, +\ccc{FK = CGAL::Simple_cartesian >}, +\ccc{FM = CM}. + + +\ccInclude{CGAL/Apollonius_graph_filtered_traits_2.h} + +\ccIsModel +\ccc{ApolloniusGraphTraits_2} + +\ccCreationVariable{traits} +\ccCreation +\ccThree{Apollonius_graph_filtered_traits_2+} +{traits = other;+}{} +\ccThreeToTwo +% +\ccConstructor{ Apollonius_graph_filtered_traits_2();} + {Default constructor.} +\ccGlue +\ccConstructor{ +Apollonius_graph_filtered_traits_2 +(Apollonius_graph_filtered_traits_2 other);} +{Copy constructor.} +\ccGlue +\ccMethod{Apollonius_graph_filtered_traits_2 operator=(Apollonius_graph_filtered_traits_2 other);}{Assignment operator.} + + +\ccSeeAlso +\ccc{Kernel}\\ +\ccc{ApolloniusGraphTraits_2} \\ +\ccc{CGAL::Ring_tag}\\ +\ccc{CGAL::Sqrt_field_tag}\\ +\ccc{CGAL::Apollonius_graph_2}\\ +\ccc{CGAL::Apollonius_graph_traits_2} + + +\end{ccRefClass} + +% +------------------------------------------------------------------------+ +%%RefPage: end of main body, begin of footer +% EOF +% +------------------------------------------------------------------------+ + diff --git a/Packages/Apollonius_graph_2/doc_tex/Apollonius_graph_2_ref/Apollonius_graph_hierarchy_2.tex b/Packages/Apollonius_graph_2/doc_tex/Apollonius_graph_2_ref/Apollonius_graph_hierarchy_2.tex index 344b1bdecd3..4d6c79474ae 100644 --- a/Packages/Apollonius_graph_2/doc_tex/Apollonius_graph_2_ref/Apollonius_graph_hierarchy_2.tex +++ b/Packages/Apollonius_graph_2/doc_tex/Apollonius_graph_2_ref/Apollonius_graph_hierarchy_2.tex @@ -193,11 +193,11 @@ other} or to \ccVar\ccc{(other)} if \ccc{other} is deleted afterwards.} \ccc{CGAL::Apollonius_graph_2}\\ \ccc{CGAL::Apollonius_graph_data_structure_2}\\ \ccc{CGAL::Apollonius_graph_traits_2}\\ +\ccc{CGAL::Apollonius_graph_filtered_traits_2}\\ \ccc{CGAL::Apollonius_graph_hierarchy_vertex_base_2} - \end{ccRefClass} % +------------------------------------------------------------------------+ diff --git a/Packages/Apollonius_graph_2/doc_tex/Apollonius_graph_2_ref/Apollonius_graph_traits_2.tex b/Packages/Apollonius_graph_2/doc_tex/Apollonius_graph_2_ref/Apollonius_graph_traits_2.tex index 2594fd95d87..27c183e004e 100644 --- a/Packages/Apollonius_graph_2/doc_tex/Apollonius_graph_2_ref/Apollonius_graph_traits_2.tex +++ b/Packages/Apollonius_graph_2/doc_tex/Apollonius_graph_2_ref/Apollonius_graph_traits_2.tex @@ -29,7 +29,8 @@ must be used when the number type used in the representation supports the exact evaluation of signs of expressions involving all four basic operations and square roots, whereas the second one requires the exact evaluation of signs of ring-type expressions, i.e., expressions -involving only additions, subtractions and multiplications. +involving only additions, subtractions and multiplications. The +default value for \ccc{Method_tag} is \ccc{CGAL::Ring_tag}. % The way the predicates are evaluated is discussed in \cite{ke-ppawv-02,ke-rctac-03}. @@ -63,8 +64,8 @@ other);}{Assignment operator.} \ccc{ApolloniusGraphTraits_2} \\ \ccc{CGAL::Ring_tag}\\ \ccc{CGAL::Sqrt_field_tag}\\ -\ccc{CGAL::Apollonius_graph_2} - +\ccc{CGAL::Apollonius_graph_2}\\ +\ccc{CGAL::Apollonius_graph_filtered_traits_2} \end{ccRefClass} diff --git a/Packages/Apollonius_graph_2/doc_tex/Apollonius_graph_2_ref/Apollonius_graph_vertex_base_2.tex b/Packages/Apollonius_graph_2/doc_tex/Apollonius_graph_2_ref/Apollonius_graph_vertex_base_2.tex index eda045f3826..9046fc45827 100644 --- a/Packages/Apollonius_graph_2/doc_tex/Apollonius_graph_2_ref/Apollonius_graph_vertex_base_2.tex +++ b/Packages/Apollonius_graph_2/doc_tex/Apollonius_graph_2_ref/Apollonius_graph_vertex_base_2.tex @@ -61,8 +61,8 @@ embedded at the center of \ccc{s}.} \ccc{ApolloniusGraphDataStructure_2}\\ \ccc{ApolloniusGraphTraits_2}\\ \ccc{CGAL::Apollonius_graph_data_structure_2}\\ -\ccc{CGAL::Apollonius_graph_traits_2} - +\ccc{CGAL::Apollonius_graph_traits_2}\\ +\ccc{CGAL::Apollonius_graph_filtered_traits_2} \end{ccRefClass} % +------------------------------------------------------------------------+ diff --git a/Packages/Apollonius_graph_2/doc_tex/Apollonius_graph_2_ref/Apollonius_site_2.tex b/Packages/Apollonius_graph_2/doc_tex/Apollonius_graph_2_ref/Apollonius_site_2.tex index 235665a3ff2..18e183078fe 100644 --- a/Packages/Apollonius_graph_2/doc_tex/Apollonius_graph_2_ref/Apollonius_site_2.tex +++ b/Packages/Apollonius_graph_2/doc_tex/Apollonius_graph_2_ref/Apollonius_site_2.tex @@ -45,8 +45,8 @@ concept \ccc{ApolloniusSite_2}. \ccSeeAlso \ccc{Kernel}\\ \ccc{ApolloniusSite_2}\\ -\ccc{CGAL::Apollonius_graph_traits_2} - +\ccc{CGAL::Apollonius_graph_traits_2}\\ +\ccc{CGAL::Apollonius_graph_filtered_traits_2} \end{ccRefClass} diff --git a/Packages/Apollonius_graph_2/doc_tex/Apollonius_graph_2_ref/intro.tex b/Packages/Apollonius_graph_2/doc_tex/Apollonius_graph_2_ref/intro.tex index 4328efc5367..79e494767f9 100644 --- a/Packages/Apollonius_graph_2/doc_tex/Apollonius_graph_2_ref/intro.tex +++ b/Packages/Apollonius_graph_2/doc_tex/Apollonius_graph_2_ref/intro.tex @@ -50,6 +50,7 @@ afore-mentioned concepts. \ccRefIdfierPage{CGAL::Apollonius_graph_vertex_base_2}\\ \ccRefIdfierPage{CGAL::Apollonius_graph_face_base_2}\\ \ccRefIdfierPage{CGAL::Apollonius_graph_traits_2}\\ +\ccRefIdfierPage{CGAL::Apollonius_graph_filtered_traits_2}\\ \ccRefIdfierPage{CGAL::Apollonius_graph_hierarchy_2} \\ \ccRefIdfierPage{CGAL::Apollonius_graph_hierarchy_vertex_base_2} diff --git a/Packages/Apollonius_graph_2/doc_tex/Apollonius_graph_2_ref/main.tex b/Packages/Apollonius_graph_2/doc_tex/Apollonius_graph_2_ref/main.tex index 4b2ecabe84f..62bf10c654a 100644 --- a/Packages/Apollonius_graph_2/doc_tex/Apollonius_graph_2_ref/main.tex +++ b/Packages/Apollonius_graph_2/doc_tex/Apollonius_graph_2_ref/main.tex @@ -11,6 +11,7 @@ \input{Apollonius_graph_2_ref/Apollonius_graph_face_base_2.tex} \input{Apollonius_graph_2_ref/ApolloniusGraphTraits_2.tex} \input{Apollonius_graph_2_ref/Apollonius_graph_traits_2.tex} +\input{Apollonius_graph_2_ref/Apollonius_graph_filtered_traits_2.tex} \input{Apollonius_graph_2_ref/Apollonius_graph_hierarchy_2.tex} \input{Apollonius_graph_2_ref/ApolloniusGraphHierarchyVertexBase_2.tex} \input{Apollonius_graph_2_ref/Apollonius_graph_hierarchy_vertex_base_2.tex} diff --git a/Packages/Apollonius_graph_2/doc_tex/basic/Apollonius_graph_2/Apollonius_2.tex b/Packages/Apollonius_graph_2/doc_tex/basic/Apollonius_graph_2/Apollonius_2.tex index a3c775a753f..ae45e2d4f75 100644 --- a/Packages/Apollonius_graph_2/doc_tex/basic/Apollonius_graph_2/Apollonius_2.tex +++ b/Packages/Apollonius_graph_2/doc_tex/basic/Apollonius_graph_2/Apollonius_2.tex @@ -20,7 +20,7 @@ %// %//============================================================================ -\chapter{2D Apollonius graph} +\chapter{2D Apollonius graphs} \label{chapter-apollonius2} \minitoc @@ -454,7 +454,6 @@ otherwise it is a finite edge. \end{ccHtmlOnly} \end{figure} - The last predicate that we want to discuss is called \ccc{Is_degenerate_edge_2}. It tells us whether an edge in the Apollonius diagram is degenerate, that is if its two endpoints @@ -462,9 +461,53 @@ coincide. In the Apollonius graph such an edge corresponds to one of the additional edges that we use to triangulate the non-triangular faces. -% TALK ABOUT THE METHOD TAG AND THE FILTERED AND NON-FILTERED TRAITS +The afore mentioned predicates are part of the +\ccc{ApolloniusGraphTraits_2} concept of \cgal. \cgal{} also provides +a model for this concept, the +\ccc{Apollonius_graph_traits_2} class. The first +template parameter of this class must be a model of the \ccc{Kernel} +concept. The second template parameter is a tag that indicates what +operations are allowed in the computations that take place within the +traits class. +The two possible values of the \ccc{Method_tag} parameter are +\ccc{CGAL::Ring_tag} and \ccc{CGAL::Sqrt_field_tag}. When +\ccc{CGAL::Ring_tag} is used, only ring operations are used during the +evaluation of the predicates, whereas if \ccc{CGAL::Sqrt_field_tag} is +chosen, all four field operations, as well as square roots, as used +during the predicate evaluation. +The \ccc{Apollonius_graph_traits_2} class provides exact +predicates if the number type in the kernel \ccc{K} is an exact number +type. This is to be associated with the type of operations allowed for +the predicate evaluation. For example \ccc{CGAL::MP_Float} as number +type, with \ccc{CGAL::Ring_tag} as tag will give exact predicates, +whereas \ccc{CGAL::MP_Float} with \ccc{CGAL::Sqrt_field_tag} will give +inexact predicates. +Since using an exact number type may be too slow, the +\ccc{Apollonius_graph_traits_2} class is designed to +support the dynamic filtering of \cgal{} through the +\ccc{Filtered_exact} mechanism. In particular if \ccc{CT} is an +inexact number type that supports the operations denoted by the tag +\ccc{Method_tag} and \ccc{ET} is an exact number type for these +operations, then kernel with number type \ccc{Filtered_exact} +will yield exact predicates for the Apollonius graph traits. To give a +concrete example, \ccc{Filtered_exact} with +\ccc{CGAL::Ring_tag} will produce exact predicates. + +Another possibility for fast and exact predicate evalutation is to use +the +\ccc{Apollonius_graph_filtered_traits_2} +class. This class is the analog of a filtered kernel. It takes a +constructions kernel \ccc{CK}, a filtering kernel \ccc{FK} and an +exact kernel \ccc{EK}, as well as the corresponding tags +(\ccc{CM}, \ccc{FM} and \ccc{EM}, respectively). +It evaluates the predicates by first using the filtering kernel, and +if this fails the evaluation is performed using the exact kernel. The +constructions are done using the kernel \ccc{CK}, which means that +they are not necessarily exact. All template parameters except +\ccc{CK} have default values, which are explained in the reference +manual. diff --git a/Packages/Apollonius_graph_2/doc_tex/basic/Apollonius_graph_2_ref/ApolloniusGraphTraits_2.tex b/Packages/Apollonius_graph_2/doc_tex/basic/Apollonius_graph_2_ref/ApolloniusGraphTraits_2.tex index 307f2e0984c..adeefe850c8 100644 --- a/Packages/Apollonius_graph_2/doc_tex/basic/Apollonius_graph_2_ref/ApolloniusGraphTraits_2.tex +++ b/Packages/Apollonius_graph_2/doc_tex/basic/Apollonius_graph_2_ref/ApolloniusGraphTraits_2.tex @@ -298,13 +298,14 @@ construct_Apollonius_site_2_object();}{} \ccHasModels -\ccc{CGAL::Apollonius_graph_traits_2} +\ccc{CGAL::Apollonius_graph_traits_2}\\ +\ccc{CGAL::Apollonius_graph_filtered_traits_2} \ccSeeAlso \ccc{CGAL::Apollonius_graph_2}\\ -\ccc{CGAL::Apollonius_graph_traits_2} - +\ccc{CGAL::Apollonius_graph_traits_2}\\ +\ccc{CGAL::Apollonius_graph_filtered_traits_2} \end{ccRefConcept} % +------------------------------------------------------------------------+ diff --git a/Packages/Apollonius_graph_2/doc_tex/basic/Apollonius_graph_2_ref/ApolloniusSite_2.tex b/Packages/Apollonius_graph_2/doc_tex/basic/Apollonius_graph_2_ref/ApolloniusSite_2.tex index 06aef409b4e..b9b91187655 100644 --- a/Packages/Apollonius_graph_2/doc_tex/basic/Apollonius_graph_2_ref/ApolloniusSite_2.tex +++ b/Packages/Apollonius_graph_2/doc_tex/basic/Apollonius_graph_2_ref/ApolloniusSite_2.tex @@ -56,8 +56,8 @@ site.} \ccSeeAlso \ccc{ApolloniusGraphTraits_2}\\ \ccc{CGAL::Apollonius_site_2}\\ -\ccc{CGAL::Apollonius_graph_traits_2}. - +\ccc{CGAL::Apollonius_graph_traits_2}\\ +\ccc{CGAL::Apollonius_graph_filtered_traits_2} \end{ccRefConcept} diff --git a/Packages/Apollonius_graph_2/doc_tex/basic/Apollonius_graph_2_ref/Apollonius_graph_2.tex b/Packages/Apollonius_graph_2/doc_tex/basic/Apollonius_graph_2_ref/Apollonius_graph_2.tex index f8eb3f13eab..2359f8e05c3 100644 --- a/Packages/Apollonius_graph_2/doc_tex/basic/Apollonius_graph_2_ref/Apollonius_graph_2.tex +++ b/Packages/Apollonius_graph_2/doc_tex/basic/Apollonius_graph_2_ref/Apollonius_graph_2.tex @@ -559,6 +559,7 @@ be preferred to \ccVar\ccc{ = other} or to \ccVar\ccc{(other)} if \ccc{ApolloniusGraphVertexBase_2}\\ \ccc{ApolloniusGraphFaceBase_2}\\ \ccc{CGAL::Apollonius_graph_traits_2}\\ +\ccc{CGAL::Apollonius_graph_filtered_traits_2}\\ \ccc{CGAL::Apollonius_graph_data_structure_2}\\ \ccc{CGAL::Apollonius_graph_vertex_base_2}\\ \ccc{CGAL::Apollonius_graph_face_base_2} diff --git a/Packages/Apollonius_graph_2/doc_tex/basic/Apollonius_graph_2_ref/Apollonius_graph_face_base_2.tex b/Packages/Apollonius_graph_2/doc_tex/basic/Apollonius_graph_2_ref/Apollonius_graph_face_base_2.tex index 9477f83a9b7..11c2743db43 100644 --- a/Packages/Apollonius_graph_2/doc_tex/basic/Apollonius_graph_2_ref/Apollonius_graph_face_base_2.tex +++ b/Packages/Apollonius_graph_2/doc_tex/basic/Apollonius_graph_2_ref/Apollonius_graph_face_base_2.tex @@ -53,8 +53,8 @@ the \ccc{ApolloniusGraphTraits_2} concept. \ccc{ApolloniusGraphTraits_2}\\ \ccc{CGAL::Triangulation_face_base_2}\\ \ccc{CGAL::Apollonius_graph_data_structure_2}\\ -\ccc{CGAL::Apollonius_graph_traits_2} - +\ccc{CGAL::Apollonius_graph_traits_2}\\ +\ccc{CGAL::Apollonius_graph_filtered_traits_2} \end{ccRefClass} diff --git a/Packages/Apollonius_graph_2/doc_tex/basic/Apollonius_graph_2_ref/Apollonius_graph_filtered_traits_2.tex b/Packages/Apollonius_graph_2/doc_tex/basic/Apollonius_graph_2_ref/Apollonius_graph_filtered_traits_2.tex new file mode 100644 index 00000000000..f2cf246ed1a --- /dev/null +++ b/Packages/Apollonius_graph_2/doc_tex/basic/Apollonius_graph_2_ref/Apollonius_graph_filtered_traits_2.tex @@ -0,0 +1,94 @@ +% +------------------------------------------------------------------------+ +% | Reference manual page: Apollonius_graph_euclidean_traits_2.tex +% +------------------------------------------------------------------------+ +% | 12.04.2000 Author +% | Package: Package +% | +%\RCSdef{\RCSRegulartriangulationtraitsRev}{$Revision$} +%\RCSdefDate{\RCSRegulartriangulationtraitsDate}{$Date$} +% | +%%RefPage: end of header, begin of main body +% +------------------------------------------------------------------------+ + + +\begin{ccRefClass} +{Apollonius_graph_filtered_traits_2} +%% add template arg's if necessary + +%% \ccHtmlCrossLink{} %% add further rules for cross referencing links +%% \ccHtmlIndexC[class]{} %% add further index entries +\ccDefinition + +The class \ccRefName\ provides a model for the +\ccc{ApolloniusGraphTraits_2} concept. + +The class \ccRefName\ uses the filtering technique \cite{bbp-iayed-01} +to achieve traits for the \ccc{Apollonius_graph_2} class +with efficient and exact predicates given an exact +kernel \ccc{EK} and a filtering kernel \ccc{FK}. The geometric +constructions associated provided by this class are equivalent +to those provided by the traits class +\ccc{Apollonius_graph_traits_2}, which means that they may +be inexact. + +This class has six template parameters. The first, third and fifth +template parameters must be a models of the \ccc{Kernel} concept. The +second, fourth and sixth template parameters correspond to how +predicates are evaluated. There are two predefined possible values for +\ccc{Method_tag}, namely \ccc{CGAL::Sqrt_field_tag} and +\ccc{CGAL::Ring_tag}. The first one must be used when the number type +used in the representation supports the exact evaluation of signs of +expressions involving all four basic operations and square roots, +whereas the second one requires the exact evaluation of signs of +ring-type expressions, i.e., expressions involving only additions, +subtractions and multiplications. +% +The way the predicates are evaluated is discussed in +\cite{ke-ppawv-02,ke-rctac-03}. + +The default values for the template parameters are as follows: +\ccc{CM = CGAL::Ring_tag}, +\ccc{EK = CGAL::Simple_cartesian}, +\ccc{EM = CM}, +\ccc{FK = CGAL::Simple_cartesian >}, +\ccc{FM = CM}. + + +\ccInclude{CGAL/Apollonius_graph_filtered_traits_2.h} + +\ccIsModel +\ccc{ApolloniusGraphTraits_2} + +\ccCreationVariable{traits} +\ccCreation +\ccThree{Apollonius_graph_filtered_traits_2+} +{traits = other;+}{} +\ccThreeToTwo +% +\ccConstructor{ Apollonius_graph_filtered_traits_2();} + {Default constructor.} +\ccGlue +\ccConstructor{ +Apollonius_graph_filtered_traits_2 +(Apollonius_graph_filtered_traits_2 other);} +{Copy constructor.} +\ccGlue +\ccMethod{Apollonius_graph_filtered_traits_2 operator=(Apollonius_graph_filtered_traits_2 other);}{Assignment operator.} + + +\ccSeeAlso +\ccc{Kernel}\\ +\ccc{ApolloniusGraphTraits_2} \\ +\ccc{CGAL::Ring_tag}\\ +\ccc{CGAL::Sqrt_field_tag}\\ +\ccc{CGAL::Apollonius_graph_2}\\ +\ccc{CGAL::Apollonius_graph_traits_2} + + +\end{ccRefClass} + +% +------------------------------------------------------------------------+ +%%RefPage: end of main body, begin of footer +% EOF +% +------------------------------------------------------------------------+ + diff --git a/Packages/Apollonius_graph_2/doc_tex/basic/Apollonius_graph_2_ref/Apollonius_graph_hierarchy_2.tex b/Packages/Apollonius_graph_2/doc_tex/basic/Apollonius_graph_2_ref/Apollonius_graph_hierarchy_2.tex index 344b1bdecd3..4d6c79474ae 100644 --- a/Packages/Apollonius_graph_2/doc_tex/basic/Apollonius_graph_2_ref/Apollonius_graph_hierarchy_2.tex +++ b/Packages/Apollonius_graph_2/doc_tex/basic/Apollonius_graph_2_ref/Apollonius_graph_hierarchy_2.tex @@ -193,11 +193,11 @@ other} or to \ccVar\ccc{(other)} if \ccc{other} is deleted afterwards.} \ccc{CGAL::Apollonius_graph_2}\\ \ccc{CGAL::Apollonius_graph_data_structure_2}\\ \ccc{CGAL::Apollonius_graph_traits_2}\\ +\ccc{CGAL::Apollonius_graph_filtered_traits_2}\\ \ccc{CGAL::Apollonius_graph_hierarchy_vertex_base_2} - \end{ccRefClass} % +------------------------------------------------------------------------+ diff --git a/Packages/Apollonius_graph_2/doc_tex/basic/Apollonius_graph_2_ref/Apollonius_graph_traits_2.tex b/Packages/Apollonius_graph_2/doc_tex/basic/Apollonius_graph_2_ref/Apollonius_graph_traits_2.tex index 2594fd95d87..27c183e004e 100644 --- a/Packages/Apollonius_graph_2/doc_tex/basic/Apollonius_graph_2_ref/Apollonius_graph_traits_2.tex +++ b/Packages/Apollonius_graph_2/doc_tex/basic/Apollonius_graph_2_ref/Apollonius_graph_traits_2.tex @@ -29,7 +29,8 @@ must be used when the number type used in the representation supports the exact evaluation of signs of expressions involving all four basic operations and square roots, whereas the second one requires the exact evaluation of signs of ring-type expressions, i.e., expressions -involving only additions, subtractions and multiplications. +involving only additions, subtractions and multiplications. The +default value for \ccc{Method_tag} is \ccc{CGAL::Ring_tag}. % The way the predicates are evaluated is discussed in \cite{ke-ppawv-02,ke-rctac-03}. @@ -63,8 +64,8 @@ other);}{Assignment operator.} \ccc{ApolloniusGraphTraits_2} \\ \ccc{CGAL::Ring_tag}\\ \ccc{CGAL::Sqrt_field_tag}\\ -\ccc{CGAL::Apollonius_graph_2} - +\ccc{CGAL::Apollonius_graph_2}\\ +\ccc{CGAL::Apollonius_graph_filtered_traits_2} \end{ccRefClass} diff --git a/Packages/Apollonius_graph_2/doc_tex/basic/Apollonius_graph_2_ref/Apollonius_graph_vertex_base_2.tex b/Packages/Apollonius_graph_2/doc_tex/basic/Apollonius_graph_2_ref/Apollonius_graph_vertex_base_2.tex index eda045f3826..9046fc45827 100644 --- a/Packages/Apollonius_graph_2/doc_tex/basic/Apollonius_graph_2_ref/Apollonius_graph_vertex_base_2.tex +++ b/Packages/Apollonius_graph_2/doc_tex/basic/Apollonius_graph_2_ref/Apollonius_graph_vertex_base_2.tex @@ -61,8 +61,8 @@ embedded at the center of \ccc{s}.} \ccc{ApolloniusGraphDataStructure_2}\\ \ccc{ApolloniusGraphTraits_2}\\ \ccc{CGAL::Apollonius_graph_data_structure_2}\\ -\ccc{CGAL::Apollonius_graph_traits_2} - +\ccc{CGAL::Apollonius_graph_traits_2}\\ +\ccc{CGAL::Apollonius_graph_filtered_traits_2} \end{ccRefClass} % +------------------------------------------------------------------------+ diff --git a/Packages/Apollonius_graph_2/doc_tex/basic/Apollonius_graph_2_ref/Apollonius_site_2.tex b/Packages/Apollonius_graph_2/doc_tex/basic/Apollonius_graph_2_ref/Apollonius_site_2.tex index 235665a3ff2..18e183078fe 100644 --- a/Packages/Apollonius_graph_2/doc_tex/basic/Apollonius_graph_2_ref/Apollonius_site_2.tex +++ b/Packages/Apollonius_graph_2/doc_tex/basic/Apollonius_graph_2_ref/Apollonius_site_2.tex @@ -45,8 +45,8 @@ concept \ccc{ApolloniusSite_2}. \ccSeeAlso \ccc{Kernel}\\ \ccc{ApolloniusSite_2}\\ -\ccc{CGAL::Apollonius_graph_traits_2} - +\ccc{CGAL::Apollonius_graph_traits_2}\\ +\ccc{CGAL::Apollonius_graph_filtered_traits_2} \end{ccRefClass} diff --git a/Packages/Apollonius_graph_2/doc_tex/basic/Apollonius_graph_2_ref/intro.tex b/Packages/Apollonius_graph_2/doc_tex/basic/Apollonius_graph_2_ref/intro.tex index 4328efc5367..79e494767f9 100644 --- a/Packages/Apollonius_graph_2/doc_tex/basic/Apollonius_graph_2_ref/intro.tex +++ b/Packages/Apollonius_graph_2/doc_tex/basic/Apollonius_graph_2_ref/intro.tex @@ -50,6 +50,7 @@ afore-mentioned concepts. \ccRefIdfierPage{CGAL::Apollonius_graph_vertex_base_2}\\ \ccRefIdfierPage{CGAL::Apollonius_graph_face_base_2}\\ \ccRefIdfierPage{CGAL::Apollonius_graph_traits_2}\\ +\ccRefIdfierPage{CGAL::Apollonius_graph_filtered_traits_2}\\ \ccRefIdfierPage{CGAL::Apollonius_graph_hierarchy_2} \\ \ccRefIdfierPage{CGAL::Apollonius_graph_hierarchy_vertex_base_2} diff --git a/Packages/Apollonius_graph_2/doc_tex/basic/Apollonius_graph_2_ref/main.tex b/Packages/Apollonius_graph_2/doc_tex/basic/Apollonius_graph_2_ref/main.tex index 4b2ecabe84f..62bf10c654a 100644 --- a/Packages/Apollonius_graph_2/doc_tex/basic/Apollonius_graph_2_ref/main.tex +++ b/Packages/Apollonius_graph_2/doc_tex/basic/Apollonius_graph_2_ref/main.tex @@ -11,6 +11,7 @@ \input{Apollonius_graph_2_ref/Apollonius_graph_face_base_2.tex} \input{Apollonius_graph_2_ref/ApolloniusGraphTraits_2.tex} \input{Apollonius_graph_2_ref/Apollonius_graph_traits_2.tex} +\input{Apollonius_graph_2_ref/Apollonius_graph_filtered_traits_2.tex} \input{Apollonius_graph_2_ref/Apollonius_graph_hierarchy_2.tex} \input{Apollonius_graph_2_ref/ApolloniusGraphHierarchyVertexBase_2.tex} \input{Apollonius_graph_2_ref/Apollonius_graph_hierarchy_vertex_base_2.tex}