mirror of https://github.com/CGAL/cgal
fix double \cite commands
This commit is contained in:
parent
b9fef9d269
commit
d5c15dafde
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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`,
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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`),
|
||||
|
|
|
|||
|
|
@ -12,10 +12,9 @@ class AdaptableFunctor {};
|
|||
class AdaptableUnaryFunction {};
|
||||
class AdaptableBinaryFunction {};
|
||||
|
||||
class Iterator {};
|
||||
class OutputIterator {};
|
||||
class InputIterator {};
|
||||
class ForwardIterator {};
|
||||
|
||||
class RandomAccessIterator {};
|
||||
class BidirectionalIterator {};
|
||||
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
|
|
|
|||
|
|
@ -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-->
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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.
|
||||
|
|
|
|||
|
|
@ -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.
|
||||
|
||||
|
|
|
|||
|
|
@ -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.
|
||||
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
Loading…
Reference in New Issue