fix double \cite commands

This commit is contained in:
Philipp Möller 2012-08-17 13:46:35 +00:00
parent b9fef9d269
commit d5c15dafde
22 changed files with 161 additions and 135 deletions

View File

@ -15,7 +15,7 @@
\PkgDescriptionEnd
This chapter presents a framework for alpha shapes. The description is based on
the articles \cite em-tdas-94,e-was-92. Alpha shapes are
the articles \cite em-tdas-94, \cite e-was-92. Alpha shapes are
the generalization of the convex hull of a point set. Let \f$ S\f$ be a finite set of
points in \f$ \R^d\f$, \f$ d = 2,3\f$ and \f$ \alpha\f$ a parameter with \f$ 0 \leq \alpha \leq
\infty\f$. For \f$ \alpha = \infty\f$, the \f$ \alpha\f$-shape is the convex hull of \f$ S\f$. As

View File

@ -244,7 +244,7 @@ The predicates required for the computation of the Apollonius graph
are rather complicated. It is not the purpose of this document to
discuss them in detail. The interested reader may refer to the papers
by Karavelas and Emiris for the details
\cite cgal:ke-ppawv-02,cgal:ke-rctac-03. However, we would like to give a brief
\cite cgal:ke-ppawv-02, \cite cgal:ke-rctac-03. However, we would like to give a brief
overview of what they
compute. There are several predicates needed by this algorithm. We
will discuss the most important/complicated ones. It turns out that

View File

@ -28,7 +28,7 @@ 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 cgal:ke-ppawv-02,cgal:ke-rctac-03.
\cite cgal:ke-ppawv-02, \cite cgal:ke-rctac-03.
The default values for the template parameters are as follows:
`CM = CGAL::Ring_tag`,

View File

@ -18,7 +18,7 @@ evaluation of signs of ring-type expressions, i.e., expressions
involving only additions, subtractions and multiplications. The
default value for `Method_tag` is `CGAL::Ring_tag`.
The way the predicates are evaluated is discussed in
\cite cgal:ke-ppawv-02,cgal:ke-rctac-03.
\cite cgal:ke-ppawv-02, \cite cgal:ke-rctac-03.
\models ::ApolloniusGraphTraits_2

View File

@ -78,9 +78,9 @@ achieved approximation ratio \f$ 1+\epsilon'\f$ can be queried using
</UL>
The ellipsoid \f$ {\cal E}\f$ computed by the algorithm satisfies the inclusions
\f[
\anchor eqapproximate_min_ellipsoid_incl
\frac{1}{(1+\epsilon')d} \mathcalE \subseteq (P) \subseteq \mathcalE
\f[
\frac{1}{(1+\epsilon')d} {\cal E} \subseteq \mathop{\rm conv}\nolimits(P) \subseteq {\cal E}
\f]
where \f$ f {\cal E}\f$ denotes the ellipsoid \f$ {\cal E}\f$ scaled by the
factor \f$ f\in\R^+\f$ with respect to its center, and where \f$ \mathop{\rm

View File

@ -40,7 +40,7 @@ Implementation
We implement the incremental algorithm of Welzl, with move-to-front
heuristic \cite w-sedbe-91a, using the primitives as described
in \cite gs-epsee-97,cgal:gs-seefe-97a. The whole implementation is described
in \cite gs-epsee-97, \cite cgal:gs-seefe-97a. The whole implementation is described
in \cite cgal:gs-seeeg-98.
If randomization is

View File

@ -47,7 +47,7 @@ Implementation
We use a rotating caliper
algorithm
\cite stvwe-mepa-95,v-fmep-90 with worst case running time linear
\cite stvwe-mepa-95, \cite v-fmep-90 with worst case running time linear
in the number of input points.
Example

View File

@ -251,7 +251,7 @@ The runtime is linear for \f$ p \in \{2,\,3\}\f$ and
input points. These runtimes are worst case optimal. The \f$ 3\f$-center
algorithm uses a prune-and-search technique described in
\cite cgal:h-slacr-99. The \f$ 4\f$-center implementation uses sorted matrix
search \cite fj-fkppc-83,fj-gsrsm-84 and fast algorithms for
search \cite fj-fkppc-83, \cite fj-gsrsm-84 and fast algorithms for
piercing rectangles \cite sw-rpppp-96.
Example

View File

@ -89,22 +89,21 @@ The two principle function calls utilizing all default arguments look
as follows:
\code{.cpp}
template< class RandomAccessIterator, class Callback >
void box_intersection_d(
RandomAccessIterator begin, RandomAccessIterator end,
Callback callback);
#include <CGAL/box_intersection_d.h>
template< class RandomAccessIterator, class Callback >
void box_intersection_d(RandomAccessIterator begin,
RandomAccessIterator end,
Callback callback);
template< class RandomAccessIterator1,
class RandomAccessIterator2,
class Callback >
void box_intersection_d(
RandomAccessIterator1 begin1, RandomAccessIterator1 end1,
RandomAccessIterator2 begin2, RandomAccessIterator2 end2,
Callback callback);
class RandomAccessIterator2,
class Callback >
void box_intersection_d(RandomAccessIterator1 begin1, RandomAccessIterator1 end1,
RandomAccessIterator2 begin2, RandomAccessIterator2 end2,
Callback callback);
\endcode
Additional parameters to the functions calls are a <I>cutoff/</I>
value to adjust performance trade-offs, and a <I>topology/</I> parameter
selecting between topologically closed boxes (the default) and
@ -143,48 +142,28 @@ The function signatures for the bipartite case look as follows. The
signatures for the complete case with the `box_self_intersection_d`
function look the same except for the single iterator range.
CONVINCLUDED:CGAL/box_intersection_d.h
\code{.cpp}
#include CGAL/box_intersection_d.h
END:REF
/*!
\ingroup PkgBoxIntersectionD
SPLICE DOC HERE
*/
template< class RandomAccessIterator1,
class RandomAccessIterator2,
class Callback >
void box_intersection_d(
RandomAccessIterator1 begin1, RandomAccessIterator1 end1,
RandomAccessIterator2 begin2, RandomAccessIterator2 end2,
Callback callback,
std::ptrdiff_t cutoff = 10,
Box_intersection_d::Topology topology = Box_intersection_d::CLOSED,
Box_intersection_d::Setting setting = Box_intersection_d::BIPARTITE);
class RandomAccessIterator2,
class Callback >
void box_intersection_d(RandomAccessIterator1 begin1, RandomAccessIterator1 end1,
RandomAccessIterator2 begin2, RandomAccessIterator2 end2,
Callback callback, std::ptrdiff_t cutoff = 10,
Box_intersection_d::Topology topology = Box_intersection_d::CLOSED,
Box_intersection_d::Setting setting = Box_intersection_d::BIPARTITE);
BEGIN:REF
END:REF
/*!
\ingroup PkgBoxIntersectionD
SPLICE DOC HERE
*/
template< class RandomAccessIterator1,
class RandomAccessIterator2,
class Callback, class BoxTraits >
void box_intersection_d(
RandomAccessIterator1 begin1, RandomAccessIterator1 end1,
RandomAccessIterator2 begin2, RandomAccessIterator2 end2,
Callback callback,
BoxTraits box_traits,
std::ptrdiff cutoff = 10,
Box_intersection_d::Topology topology = Box_intersection_d::CLOSED,
Box_intersection_d::Setting setting = Box_intersection_d::BIPARTITE);
BEGIN:REF
class RandomAccessIterator2,
class Callback, class BoxTraits >
void box_intersection_d(RandomAccessIterator1 begin1, RandomAccessIterator1 end1,
RandomAccessIterator2 begin2, RandomAccessIterator2 end2,
Callback callback, BoxTraits box_traits,
std::ptrdiff cutoff = 10,
Box_intersection_d::Topology topology = Box_intersection_d::CLOSED,
Box_intersection_d::Setting setting = Box_intersection_d::BIPARTITE);
\endcode
\section secboxintersectminimal Minimal Example for Intersecting Boxes
@ -307,7 +286,7 @@ just converting from the `double` to the `float`
representation incurs rounding that needs to be controlled properly,
otherwise the box might shrink and one might miss intersections.
\section secboxintersparams Example Using the <I>topology</I> and the <I>cutoff</I> Parameters
\section secboxintersparams Example Using the topology and the cutoff Parameters
Boxes can be interpreted by the box intersection algorithm as closed
or as half-open boxes, see also Section \ref secboxintersdef . Closed

View File

@ -56,7 +56,7 @@ in the worst case. The algorithm chosen depends on the kind of
iterator used to specify the input points. These two algorithms are
also available via the functions `ch_bykat` and `ch_akl_toussaint`,
respectively. Also available are
the \f$ O(n \log n)\f$ Graham-Andrew scan algorithm \cite a-aeach-79,m-mdscg-84
the \f$ O(n \log n)\f$ Graham-Andrew scan algorithm \cite a-aeach-79, \cite m-mdscg-84
(`ch_graham_andrew`),
the \f$ O(n h)\f$ Jarvis march algorithm \cite j-ichfs-73
(`ch_jarvis`),

View File

@ -12,10 +12,9 @@ class AdaptableFunctor {};
class AdaptableUnaryFunction {};
class AdaptableBinaryFunction {};
class Iterator {};
class OutputIterator {};
class InputIterator {};
class ForwardIterator {};
class RandomAccessIterator {};
class BidirectionalIterator {};

View File

@ -54,6 +54,18 @@ namespace for the XML file to be processed properly. -->
</doxygen>
</project>
<project>
<name>Jet_fitting_3</name>
<input>../Jet_fitting_3/doc</input>
<doxygen>
<string name="STRIP_FROM_PATH">../Jet_fitting_3/doc/Jet_fitting_3/</string>
<string name="STRIP_FROM_INC_PATH">../Jet_fitting_3/doc/Jet_fitting_3/</string>
<string name="GENERATE_TAGFILE">./tags/Jet_fitting_3.tag</string>
<string name="IMAGE_PATH">../Jet_fitting_3/doc/Jet_fitting_3/fig</string>
<string name="EXAMPLE_PATH">../Jet_fitting_3/examples</string>
</doxygen>
</project>
<project>
<name>Mesh_3</name>
<input>../Mesh_3/doc</input>
@ -466,6 +478,31 @@ namespace for the XML file to be processed properly. -->
</list>
</doxygen>
</project>
<project>
<name>Circulator</name>
<input>../Circulator/doc</input>
<doxygen>
<string name="STRIP_FROM_PATH">../Circulator/doc/Circulator/</string>
<string name="STRIP_FROM_INC_PATH">../Circulator/doc/Circulator/</string>
<string name="GENERATE_TAGFILE">./tags/Circulator.tag</string>
<string name="IMAGE_PATH">../Circulator/doc/Circulator/fig</string>
<string name="EXAMPLE_PATH">../Circulator/examples</string>
</doxygen>
</project>
<project>
<name>Nef_2</name>
<input>../Nef_2/doc</input>
<doxygen>
<string name="STRIP_FROM_PATH">../Nef_2/doc/Nef_2/</string>
<string name="STRIP_FROM_INC_PATH">../Nef_2/doc/Nef_2/</string>
<string name="GENERATE_TAGFILE">./tags/Nef_2.tag</string>
<string name="IMAGE_PATH">../Nef_2/doc/Nef_2/fig</string>
<string name="EXAMPLE_PATH">../Nef_2/examples</string>
</doxygen>
</project>
<!-- subprojects end -->
</project>
@ -487,74 +524,80 @@ namespace for the XML file to be processed properly. -->
</list>
<list name="IMAGE_PATH" append="false">
<item>./doc/fig</item>
<item>../STL_Extension/doc/STL_Extension/fig</item>
<item>../Mesh_2/doc/Mesh_2/fig</item>
<item>../Mesh_3/doc/Mesh_3/fig</item>
<item>../Algebraic_foundations/doc/Algebraic_foundations/fig</item>
<item>../HalfedgeDS/doc/HalfedgeDS/fig</item>
<item>../Alpha_shapes_2/doc/Alpha_shapes_2/fig</item>
<item>../Alpha_shapes_3/doc/Alpha_shapes_3/fig</item>
<item>../Apollonius_graph_2/doc/Apollonius_graph_2/fig</item>
<item>../Bounding_volumes/doc/Bounding_volumes/fig</item>
<item>../Box_intersection_d/doc/Box_intersection_d/fig</item>
<item>../CGAL_ipelets/doc/CGAL_ipelets/fig</item>
<item>../Circulator/doc/Circulator/fig</item>
<item>../Convex_decomposition_3/doc/Convex_decomposition_3/fig</item>
<item>../Convex_hull_2/doc/Convex_hull_2/fig</item>
<item>../Convex_hull_3/doc/Convex_hull_3/fig</item>
<item>../Convex_hull_d/doc/Convex_hull_d/fig</item>
<item>../Straight_skeleton_2/doc/Straight_skeleton_2/fig</item>
<item>../Partition_2/doc/Partition_2/fig</item>
<item>../Convex_decomposition_3/doc/Convex_decomposition_3/fig</item>
<item>../Point_set_2/doc/Point_set_2/fig</item>
<item>../Interval_skip_list/doc/Interval_skip_list/fig</item>
<item>../Envelope_2/doc/Envelope_2/fig</item>
<item>../Envelope_3/doc/Envelope_3/fig</item>
<item>../Minkowski_sum_2/doc/Minkowski_sum_2/fig</item>
<item>../Minkowski_sum_3/doc/Minkowski_sum_3/fig</item>
<item>../Generator/doc/Generator/fig</item>
<item>../Geomview/doc/Geomview/fig</item>
<item>../Spatial_searching/doc/Spatial_searching/fig</item>
<item>../Box_intersection_d/doc/Box_intersection_d/fig</item>
<item>../GraphicsView/doc/GraphicsView/fig</item>
<item>../HalfedgeDS/doc/HalfedgeDS/fig</item>
<item>../Interval_skip_list/doc/Interval_skip_list/fig</item>
<item>../Nef_2/doc/Nef_2/fig</item>
<item>../Mesh_2/doc/Mesh_2/fig</item>
<item>../Mesh_3/doc/Mesh_3/fig</item>
<item>../Jet_fitting_3/doc/Jet_fitting_3/fig</item>
<item>../Minkowski_sum_2/doc/Minkowski_sum_2/fig</item>
<item>../Minkowski_sum_3/doc/Minkowski_sum_3/fig</item>
<item>../Miscellany/doc/Miscellany/fig</item>
<item>../Polytope_distance_d/doc/Polytope_distance_d/fig</item>
<item>../Bounding_volumes/doc/Bounding_volumes/fig</item>
<item>../Snap_rounding_2/doc/Snap_rounding_2/fig</item>
<item>../Skin_surface_3/doc/Skin_surface_3/fig</item>
<item>../Modular_arithmetic/doc/Modular_arithmetic/fig</item>
<item>../Alpha_shapes_2/doc/Alpha_shapes_2/fig</item>
<item>../Alpha_shapes_3/doc/Alpha_shapes_3/fig</item>
<item>../Partition_2/doc/Partition_2/fig</item>
<item>../Point_set_2/doc/Point_set_2/fig</item>
<item>../Polytope_distance_d/doc/Polytope_distance_d/fig</item>
<item>../Principal_component_analysis/doc/Principal_component_analysis/fig</item>
<item>../CGAL_ipelets/doc/CGAL_ipelets/fig</item>
<item>../Apollonius_graph_2/doc/Apollonius_graph_2/fig</item>
<item>../STL_Extension/doc/STL_Extension/fig</item>
<item>../Skin_surface_3/doc/Skin_surface_3/fig</item>
<item>../Snap_rounding_2/doc/Snap_rounding_2/fig</item>
<item>../Spatial_searching/doc/Spatial_searching/fig</item>
<item>../Straight_skeleton_2/doc/Straight_skeleton_2/fig</item>
</list>
<list name="TAGFILES" append="false">
<item>./tags/STL_Extension.tag=../../CGAL.CGAL.STL_Extension/html</item>
<item>./tags/Mesh_2.tag=../../CGAL.CGAL.Mesh_2/html</item>
<item>./tags/Mesh_3.tag=../../CGAL.CGAL.Mesh_3/html</item>
<item>./tags/Algebraic_foundations.tag=../../CGAL.CGAL.Algebraic_foundations/html</item>
<item>./tags/HalfedgeDS.tag=../../CGAL.CGAL.HalfedgeDS/html</item>
<item>./tags/Alpha_shapes_2.tag=../../CGAL.CGAL.Alpha_shapes_2/html</item>
<item>./tags/Alpha_shapes_3.tag=../../CGAL.CGAL.Alpha_shapes_3/html</item>
<item>./tags/Apollonius_graph_2.tag=../../CGAL.CGAL.Apollonius_graph_2/html</item>
<item>./tags/Bounding_volumes.tag=../../CGAL.CGAL.Bounding_volumes/html</item>
<item>./tags/Box_intersection_d.tag=../../CGAL.CGAL.Box_intersection_d/html</item>
<item>./tags/CGAL_ipelets.tag=../../CGAL.CGAL.CGAL_ipelets/html</item>
<item>./tags/Circulator.tag=../../CGAL.CGAL.Circulator/html</item>
<item>./tags/Convex_decomposition_3.tag=../../CGAL.CGAL.Convex_decomposition_3/html</item>
<item>./tags/Convex_hull_2.tag=../../CGAL.CGAL.Convex_hull_2/html</item>
<item>./tags/Convex_hull_3.tag=../../CGAL.CGAL.Convex_hull_3/html</item>
<item>./tags/Convex_hull_d.tag=../../CGAL.CGAL.Convex_hull_d/html</item>
<item>./tags/Straight_skeleton_2.tag=../../CGAL.CGAL.Straight_skeleton_2/html</item>
<item>./tags/Partition_2.tag=../../CGAL.CGAL.Partition_2/html</item>
<item>./tags/Convex_decomposition_3.tag=../../CGAL.CGAL.Convex_decomposition_3/html</item>
<item>./tags/Point_set_2.tag=../../CGAL.CGAL.Point_set_2/html</item>
<item>./tags/Interval_skip_list.tag=../../CGAL.CGAL.Interval_skip_list/html</item>
<item>./tags/Envelope_2.tag=../../CGAL.CGAL.Envelope_2/html</item>
<item>./tags/Envelope_3.tag=../../CGAL.CGAL.Envelope_3/html</item>
<item>./tags/Minkowski_sum_2.tag=../../CGAL.CGAL.Minkowski_sum_2/html</item>
<item>./tags/Minkowski_sum_3.tag=../../CGAL.CGAL.Minkowski_sum_3/html</item>
<item>./tags/Generator.tag=../../CGAL.CGAL.Generator/html</item>
<item>./tags/Geomview.tag=../../CGAL.CGAL.Geomview/html</item>
<item>./tags/Spatial_searching.tag=../../CGAL.CGAL.Spatial_searching/html</item>
<item>./tags/Box_intersection_d.tag=../../CGAL.CGAL.Box_intersection_d/html</item>
<item>./tags/GraphicsView.tag=../../CGAL.CGAL.GraphicsView/html</item>
<item>./tags/HalfedgeDS.tag=../../CGAL.CGAL.HalfedgeDS/html</item>
<item>./tags/Interval_skip_list.tag=../../CGAL.CGAL.Interval_skip_list/html</item>
<item>./tags/Nef_2.tag=../../CGAL.CGAL.Nef_2/html</item>
<item>./tags/Mesh_2.tag=../../CGAL.CGAL.Mesh_2/html</item>
<item>./tags/Mesh_3.tag=../../CGAL.CGAL.Mesh_3/html</item>
<item>./tags/Jet_fitting_3.tag=../../CGAL.CGAL.Jet_fitting_3/html</item>
<item>./tags/Minkowski_sum_2.tag=../../CGAL.CGAL.Minkowski_sum_2/html</item>
<item>./tags/Minkowski_sum_3.tag=../../CGAL.CGAL.Minkowski_sum_3/html</item>
<item>./tags/Miscellany.tag=../../CGAL.CGAL.Miscellany/html</item>
<item>./tags/Polytope_distance_d.tag=../../CGAL.CGAL.Polytope_distance_d/html</item>
<item>./tags/Bounding_volumes.tag=../../CGAL.CGAL.Bounding_volumes/html</item>
<item>./tags/Snap_rounding_2.tag=../../CGAL.CGAL.Snap_rounding_2/html</item>
<item>./tags/Skin_surface_3.tag=../../CGAL.CGAL.Skin_surface_3/html</item>
<item>./tags/Modular_arithmetic.tag=../../CGAL.CGAL.Modular_arithmetic/html</item>
<item>./tags/Alpha_shapes_2.tag=../../CGAL.CGAL.Alpha_shapes_2/html</item>
<item>./tags/Alpha_shapes_3.tag=../../CGAL.CGAL.Alpha_shapes_3/html</item>
<item>./tags/Partition_2.tag=../../CGAL.CGAL.Partition_2/html</item>
<item>./tags/Point_set_2.tag=../../CGAL.CGAL.Point_set_2/html</item>
<item>./tags/Polytope_distance_d.tag=../../CGAL.CGAL.Polytope_distance_d/html</item>
<item>./tags/Principal_component_analysis.tag=../../CGAL.CGAL.Principal_component_analysis/html</item>
<item>./tags/CGAL_ipelets.tag=../../CGAL.CGAL.CGAL_ipelets/html</item>
<item>./tags/Apollonius_graph_2.tag=../../CGAL.CGAL.Apollonius_graph_2/html</item>
<item>./tags/STL_Extension.tag=../../CGAL.CGAL.STL_Extension/html</item>
<item>./tags/Skin_surface_3.tag=../../CGAL.CGAL.Skin_surface_3/html</item>
<item>./tags/Snap_rounding_2.tag=../../CGAL.CGAL.Snap_rounding_2/html</item>
<item>./tags/Spatial_searching.tag=../../CGAL.CGAL.Spatial_searching/html</item>
<item>./tags/Straight_skeleton_2.tag=../../CGAL.CGAL.Straight_skeleton_2/html</item>
</list>
<bool name="ALLEXTERNALS">true</bool>
<bool name="EXTERNAL_GROUPS">false</bool>

View File

@ -19,6 +19,10 @@ $search
<link href="stylesheet.css" rel="stylesheet" type="text/css" />
</head>
<body>
<span style="display:none">\( \newcommand{\E}{\mathrm{E}} \) \( \newcommand{\A}{\mathrm{A}} \)
\( \newcommand{\R}{\mathrm{R}} \) \( \newcommand{\N}{\mathrm{N}} \) \( \newcommand{\Q}{\mathrm{Q}} \)
</span>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<!--BEGIN TITLEAREA-->

View File

@ -11,7 +11,7 @@ classes built on top of the halfedge data structure.
The data structure defined here is known as the
FE-structure \cite w-ebdss-85, as
halfedges \cite m-ism-88,cgal:bfh-mgedm-95 or as the doubly connected edge
halfedges \cite m-ism-88, \cite cgal:bfh-mgedm-95 or as the doubly connected edge
list (DCEL) \cite bkos-cgaa-97, although the original reference for
the DCEL \cite mp-fitcp-78 describes a different data structure. The
halfedge data structure can also be seen as one of the variants of the

View File

@ -32,7 +32,7 @@ structure is meant as an implementation layer. See for example the
The data structure provided here is also known as the
FE-structure \cite w-ebdss-85, as
halfedges \cite m-ism-88,cgal:bfh-mgedm-95 or as the doubly connected edge
halfedges \cite m-ism-88, \cite cgal:bfh-mgedm-95 or as the doubly connected edge
list (DCEL) \cite bkos-cgaa-97, although the original reference for
the DCEL \cite mp-fitcp-78 describes a different data structure. The
halfedge data structure can also be seen as one of the variants of the
@ -100,21 +100,22 @@ There are two different models for the `HalfedgeDS` concept available,
`HalfedgeDS_list` and `HalfedgeDS_vector`, and more might come.
Therefore we have kept their interface small and factored out common
functionality into separate helper classes, `HalfedgeDS_decorator`,
`HalfedgeDS_const_decorator`, and `HalfedgeDS_items_decorator`,
which are not shown in Figure \ref figureHalfedgeDSDesign ,
but would be placed at the side of the `HalfedgeDS`
since they broaden that interface but do not hide it. These helper
classes contain operations that are useful to implement the operations
in the next layer, for example, the polyhedron. They add, for example,
the Euler operations and partial operations from which further Euler
operations can be built, such as inserting an edge into the ring of
edges at a vertex. Furthermore, the helper classes contain adaptive
functionality. For example, if the `prev()` member function is
not provided for halfedges, the `find_prev()` member function of
a helper class searches in the positive direction along the face for
the previous halfedge. But if the `prev()` member function is
provided, the `find_prev()` member function simply calls it. This
distinction is resolved at compile time with a technique called <I>compile-time tags</I>, similar to iterator tags in \cite cgal:sl-stl-95.
`HalfedgeDS_const_decorator`, and `HalfedgeDS_items_decorator`, which
are not shown in Figure \ref figureHalfedgeDSDesign , but would be
placed at the side of the `HalfedgeDS` since they broaden that
interface but do not hide it. These helper classes contain operations
that are useful to implement the operations in the next layer, for
example, the polyhedron. They add, for example, the Euler operations
and partial operations from which further Euler operations can be
built, such as inserting an edge into the ring of edges at a
vertex. Furthermore, the helper classes contain adaptive
functionality. For example, if the `prev()` member function is not
provided for halfedges, the `find_prev()` member function of a helper
class searches in the positive direction along the face for the
previous halfedge. But if the `prev()` member function is provided,
the `find_prev()` member function simply calls it. This distinction is
resolved at compile time with a technique called <I>compile-time
tags</I>, similar to iterator tags in \cite cgal:sl-stl-95.
The `Polyhedron_3` as an example for the third layer adds the
geometric interpretation, provides an easy-to-use interface of

View File

@ -26,7 +26,7 @@ class in the package \ref chapterPolyhedronRef Polyhedron.
The data structure provided here is known as the
FE-structure \cite w-ebdss-85, as
halfedges \cite m-ism-88,cgal:bfh-mgedm-95 or as the doubly connected edge
halfedges \cite m-ism-88, \cite cgal:bfh-mgedm-95 or as the doubly connected edge
list (DCEL) \cite bkos-cgaa-97, although the original reference for
the DCEL \cite mp-fitcp-78 describes a related but different data
structure. The halfedge data structure can also be seen as one of the

View File

@ -45,7 +45,7 @@ namespace CGAL {
/// Implementation
/// --------------
/// The implementation uses an algorithm by
/// Frederickson and Johnson\cite fj-fkppc-83 \cite fj-gsrsm-84 and runs in
/// Frederickson and Johnson \cite fj-fkppc-83 \cite fj-gsrsm-84 and runs in
/// \f$ \mathcal{O}(n \cdot k + f \cdot \log (n \cdot k))\f$, where \f$ n\f$ is
/// the number of input matrices, \f$ k\f$ denotes the maximal dimension of
/// any input matrix and \f$ f\f$ the time needed for one feasibility test.

View File

@ -45,14 +45,14 @@ for instance in terms of sizing field
or with respect to some user customized quality criteria.
The meshing engine used in this mesh generator
is based on Delaunay refinement \cite c-gqmgc-93, r-draq2d-95, s-tmgdr-98.
is based on Delaunay refinement \cite c-gqmgc-93, \cite r-draq2d-95, \cite s-tmgdr-98.
It uses the notion of restricted Delaunay triangulation
to approximate \f$ 1\f$-dimensional curve segments and surface patches \cite cgal:bo-pgsms-05.
Before the refinement, a mechanism of protecting balls is set up on \f$ 1\f$-dimensional features, if any,
to ensure a fair representation
of those features in the mesh, and also to guarantee the termination of the refinement process,
whatever may be the input geometry, in particular whatever small angles
the boundary and subdivision surface patches may form \cite cgal:cdl-pdma-07,cgal:cdr-drpsc-07.
the boundary and subdivision surface patches may form \cite cgal:cdl-pdma-07, \cite cgal:cdr-drpsc-07.
The Delaunay refinement is followed by a mesh optimization phase
to remove slivers and provide a good quality mesh.
@ -186,7 +186,7 @@ the corresponding points are inserted into the Delaunay triangulation
from the start.
If the domain has \f$ 1\f$-dimensional exposed features,
the method of protecting balls \cite cgal:cdr-drpsc-07, cgal:cdl-pdma-07
the method of protecting balls \cite cgal:cdr-drpsc-07, \cite cgal:cdl-pdma-07
is used to achieve an accurate representation of those features in the mesh
and to guarantee that the refinement process terminates
whatever may be the dihedral angles formed by input surface patches incident to a
@ -240,7 +240,7 @@ a perturber and an exuder.
The Lloyd and odt-smoother are global optimizers
moving the mesh vertices to minimize
a mesh energy. Those optimizers are described respectively in
\cite cgal:dfg-cvtaa-99t, cgal:dw-tmgob-02 and in \cite cgal::c-mssbo-04,cgal:acyd-vtm-05.
\cite cgal:dfg-cvtaa-99t, \cite cgal:dw-tmgob-02 and in \cite cgal::c-mssbo-04, \cite cgal:acyd-vtm-05.
In both cases the mesh energy
is the `L1` error resulting from the interpolation
of the function \f$ f(x) =x^2\f$ by a piecewise linear function.
@ -996,8 +996,8 @@ the boundary and subdivision surface patches,
was pioneered by Cheng et al. \cite cgal:cdr-drpsc-07 and further experimented by Dey, Levine et al.
\cite cgal:cdl-pdma-07.
The optimization phase involves global optimization processes, a perturbation process
and a sliver exudation process. The global optimizers are based on Lloyd smoothing \cite cgal:dfg-cvtaa-99t, cgal:dw-tmgob-02
and odt smoothing \cite cgal::c-mssbo-04,cgal:acyd-vtm-05, where odt means
and a sliver exudation process. The global optimizers are based on Lloyd smoothing \cite cgal:dfg-cvtaa-99t, \cite cgal:dw-tmgob-02
and odt smoothing \cite cgal::c-mssbo-04, \cite cgal:acyd-vtm-05, where odt means
<I>optimal Delaunay triangulation</I>. The perturbation process
is mainly based on the work of Tournois \cite cgal:t-om-09
and Tournois et al. \cite cgal:twad-iropitmg-09,
@ -1024,7 +1024,7 @@ and appeared first in release 3.6 of \cgal.
In collaboration with Laurent Rineau, Stéphane also added demos and examples.
After some experiments on medical imaging data performed by
Dobrina Boltcheva et al. \cite cgal:byb-mgmmi-09, cgal:-byb-fpdmgmmi-09, the handling
Dobrina Boltcheva et al. \cite cgal:byb-mgmmi-09, \cite cgal:-byb-fpdmgmmi-09, the handling
of \f$ 1\f$-dimensional features was worked out by Laurent Rineau, Stéphane Tayeb
and Mariette Yvinec. It appeared first in the release 3.8 of \cgal.

View File

@ -31,7 +31,7 @@ rehashing when set to the number of expected elements in the map.
The design is derived from the \stl `hash_map` and the \leda type
`map`. Its specialization on insertion only and unique hash values
allow for a more time- and space-efficient implementation, see also
[\cite Chapter 5. This implementation makes also use
[\cite mn-lpcgc-00 Chapter 5. This implementation makes also use
of sentinels that lead to defined keys that have not been inserted.
*/

View File

@ -10,7 +10,7 @@ namespace CGAL {
An instance `s` of the parametrized data type `Multiset` is a
multi-set of elements of type `Type`, represented as a red-black tree
(see [\cite Chapter 13 for an excellent introduction to red-black
(see [\cite clrs-ia-01 Chapter 13 for an excellent introduction to red-black
trees).
The main difference between `Multiset` and \stl's `multiset` is that
the latter uses a less-than functor with a Boolean return type, while our

View File

@ -7,7 +7,7 @@ namespace CGAL {
\cgal is designed in the spirit of the generic programming paradigm
to work together with the Standard Template Library (\stl)
\cite cgal:ansi-is14882-98,cgal:a-gps-98. This chapter documents non-geometric
\cite cgal:ansi-is14882-98, \cite cgal:a-gps-98. This chapter documents non-geometric
\stl-like components that are not provided in the \stl standard but
in \cgal: a doubly-connected list managing items in place (where
inserted items are not copied), a compact container, a multi-set class that
@ -72,7 +72,7 @@ probably be useful for other kinds of graphs as well.
The class `Multiset<Type,Compare,Allocator>` represents a
multi-set of elements of type `Type`, represented as a red-black tree
(see [\cite Chapter 13 for an excellent introduction to red-black
(see \cite clrs-ia-01 for an excellent introduction to red-black
trees). It differs from the \stl's `multiset` class-template mainly due
to the fact that it is parameterized by a comparison functor `Compare`
that returns the three-valued `Comparison_result` (namely it returns

View File

@ -12,7 +12,7 @@ namespace CGAL {
Snap Rounding (SR, for short) is a well known method for converting
arbitrary-precision arrangements of segments into a fixed-precision
representation \cite gght-srlse-97, gm-rad-98, h-psifp-99. In
representation \cite gght-srlse-97, \cite gm-rad-98, \cite h-psifp-99. In
the study of robust geometric computing, it can be classified
as a finite precision approximation technique. Iterated Snap Rounding
(ISR, for short) is a modification of SR in which each vertex is at least