mirror of https://github.com/CGAL/cgal
add latex format for \imagei doxygen command
perl -pe 's/^(\s*)\\image\s+html\s+(.*)\s*$/$1\\image html $2\n$1\\image latex $2\n/' -i
This commit is contained in:
parent
0653914893
commit
143a2181b3
|
|
@ -9,6 +9,7 @@ namespace CGAL {
|
||||||
\author Tran Kai Frank Da
|
\author Tran Kai Frank Da
|
||||||
|
|
||||||
\image html alphashape.png
|
\image html alphashape.png
|
||||||
|
\image latex alphashape.png
|
||||||
|
|
||||||
Assume we are given a set \f$ S\f$ of points in 2D or 3D and we'd like to
|
Assume we are given a set \f$ S\f$ of points in 2D or 3D and we'd like to
|
||||||
have something like "the shape formed by these points." This is
|
have something like "the shape formed by these points." This is
|
||||||
|
|
|
||||||
|
|
@ -8,6 +8,7 @@ namespace CGAL {
|
||||||
\authors Tran Kai Frank Da, Sébastien Loriot, and Mariette Yvinec
|
\authors Tran Kai Frank Da, Sébastien Loriot, and Mariette Yvinec
|
||||||
|
|
||||||
\image html alphashape.png
|
\image html alphashape.png
|
||||||
|
\image latex alphashape.png
|
||||||
|
|
||||||
Assume we are given a set \f$ S\f$ of points in 2D or 3D and we'd like to
|
Assume we are given a set \f$ S\f$ of points in 2D or 3D and we'd like to
|
||||||
have something like "the shape formed by these points." This is
|
have something like "the shape formed by these points." This is
|
||||||
|
|
|
||||||
|
|
@ -310,25 +310,31 @@ otherwise it is a finite edge.
|
||||||
<TR>
|
<TR>
|
||||||
<TD>
|
<TD>
|
||||||
\image html ./apollonius-left_vertex.png
|
\image html ./apollonius-left_vertex.png
|
||||||
|
\image latex ./apollonius-left_vertex.png
|
||||||
</TD>
|
</TD>
|
||||||
<TD>
|
<TD>
|
||||||
\image html ./apollonius-right_vertex.png
|
\image html ./apollonius-right_vertex.png
|
||||||
|
\image latex ./apollonius-right_vertex.png
|
||||||
</TD>
|
</TD>
|
||||||
</TR>
|
</TR>
|
||||||
<TR>
|
<TR>
|
||||||
<TD>
|
<TD>
|
||||||
\image html ./apollonius-no_conflict.png
|
\image html ./apollonius-no_conflict.png
|
||||||
|
\image latex ./apollonius-no_conflict.png
|
||||||
</TD>
|
</TD>
|
||||||
<TD>
|
<TD>
|
||||||
\image html ./apollonius-entire_edge.png
|
\image html ./apollonius-entire_edge.png
|
||||||
|
\image latex ./apollonius-entire_edge.png
|
||||||
</TD>
|
</TD>
|
||||||
</TR>
|
</TR>
|
||||||
<TR>
|
<TR>
|
||||||
<TD>
|
<TD>
|
||||||
\image html ./apollonius-interior.png
|
\image html ./apollonius-interior.png
|
||||||
|
\image latex ./apollonius-interior.png
|
||||||
</TD>
|
</TD>
|
||||||
<TD>
|
<TD>
|
||||||
\image html ./apollonius-both_vertices.png
|
\image html ./apollonius-both_vertices.png
|
||||||
|
\image latex ./apollonius-both_vertices.png
|
||||||
</TD>
|
</TD>
|
||||||
</TR>
|
</TR>
|
||||||
</TABLE>
|
</TABLE>
|
||||||
|
|
|
||||||
|
|
@ -13,6 +13,7 @@ common (see figure below). The removal method performs the reverse
|
||||||
operation.
|
operation.
|
||||||
|
|
||||||
\image html insert_degree_2.png
|
\image html insert_degree_2.png
|
||||||
|
\image latex insert_degree_2.png
|
||||||
|
|
||||||
<center><b>Insertion and removal of degree 2 vertices. Left to right:
|
<center><b>Insertion and removal of degree 2 vertices. Left to right:
|
||||||
The edge `(f,i)` is replaced by two edges by means of inserting a
|
The edge `(f,i)` is replaced by two edges by means of inserting a
|
||||||
|
|
|
||||||
|
|
@ -164,6 +164,7 @@ further explanations and examples.
|
||||||
\subsection Arrangement_on_surface_2ASimpleProgram A Simple Program
|
\subsection Arrangement_on_surface_2ASimpleProgram A Simple Program
|
||||||
|
|
||||||
\image html triangle.png
|
\image html triangle.png
|
||||||
|
\image latex triangle.png
|
||||||
|
|
||||||
The simple program listed below constructs a planar map of three line
|
The simple program listed below constructs a planar map of three line
|
||||||
segments forming a triangle. The constructed arrangement is instantiated
|
segments forming a triangle. The constructed arrangement is instantiated
|
||||||
|
|
@ -525,6 +526,7 @@ figure to the left).</LI>
|
||||||
</OL>
|
</OL>
|
||||||
|
|
||||||
\image html connect_comp.png
|
\image html connect_comp.png
|
||||||
|
\image latex connect_comp.png
|
||||||
|
|
||||||
The `Arrangement_2` class offers insertion functions named
|
The `Arrangement_2` class offers insertion functions named
|
||||||
`insert_in_face_interior()`, `insert_from_left_vertex()`,
|
`insert_in_face_interior()`, `insert_from_left_vertex()`,
|
||||||
|
|
@ -700,6 +702,7 @@ by \f$ (\frac{1}{2}, 3)\f$.
|
||||||
\subsection arr_sssecadv_insert Advanced Insertion Functions
|
\subsection arr_sssecadv_insert Advanced Insertion Functions
|
||||||
|
|
||||||
\image html pred_around_vertex.png
|
\image html pred_around_vertex.png
|
||||||
|
\image latex pred_around_vertex.png
|
||||||
|
|
||||||
\cgalAdvancedBegin
|
\cgalAdvancedBegin
|
||||||
Assume that the specialized insertion function
|
Assume that the specialized insertion function
|
||||||
|
|
@ -1422,6 +1425,7 @@ end vertices of `e` becomes isolated or redundant after the removal
|
||||||
of the edge, it is removed as well.
|
of the edge, it is removed as well.
|
||||||
|
|
||||||
\image html h_shape.png
|
\image html h_shape.png
|
||||||
|
\image latex h_shape.png
|
||||||
|
|
||||||
The following example demonstrates the usage of the free removal
|
The following example demonstrates the usage of the free removal
|
||||||
functions. In creates an arrangement of four line segment forming
|
functions. In creates an arrangement of four line segment forming
|
||||||
|
|
|
||||||
|
|
@ -177,6 +177,7 @@ following sections.
|
||||||
\subsection Boolean_set_operations_2ASimpleExample A Simple Example
|
\subsection Boolean_set_operations_2ASimpleExample A Simple Example
|
||||||
|
|
||||||
\image html triangles.png
|
\image html triangles.png
|
||||||
|
\image latex triangles.png
|
||||||
|
|
||||||
Testing whether two polygons intersect results with a Boolean value,
|
Testing whether two polygons intersect results with a Boolean value,
|
||||||
and does not require any additional data beyond the provision of the
|
and does not require any additional data beyond the provision of the
|
||||||
|
|
@ -229,6 +230,7 @@ the closure of the interior of the corresponding ordinary operation as
|
||||||
explained next.
|
explained next.
|
||||||
|
|
||||||
\image html unique.png
|
\image html unique.png
|
||||||
|
\image latex unique.png
|
||||||
|
|
||||||
Consider, for example, the regular set depicted on the right, which is
|
Consider, for example, the regular set depicted on the right, which is
|
||||||
the result of the union of three small triangles translated
|
the result of the union of three small triangles translated
|
||||||
|
|
@ -330,6 +332,7 @@ outputs a range of polygons with holes that represents the complement
|
||||||
of the polygon with holes \f$ P\f$.
|
of the polygon with holes \f$ P\f$.
|
||||||
|
|
||||||
\image html symm_diff.png
|
\image html symm_diff.png
|
||||||
|
\image latex symm_diff.png
|
||||||
|
|
||||||
The following example demonstrates how to compute the symmetric
|
The following example demonstrates how to compute the symmetric
|
||||||
difference between two sets that contain holes. Each set is a
|
difference between two sets that contain holes. Each set is a
|
||||||
|
|
@ -421,6 +424,7 @@ internal representation for the succeeding operation could be time
|
||||||
consuming.
|
consuming.
|
||||||
|
|
||||||
\image html sequence.png
|
\image html sequence.png
|
||||||
|
\image latex sequence.png
|
||||||
|
|
||||||
The next example performs a sequence of three Boolean set-operations.
|
The next example performs a sequence of three Boolean set-operations.
|
||||||
First, it computes the union of two simple polygons depicted in
|
First, it computes the union of two simple polygons depicted in
|
||||||
|
|
@ -517,6 +521,7 @@ S.join (begin, end);
|
||||||
\section bso_secbso_gen Boolean Set-Operations on General Polygons
|
\section bso_secbso_gen Boolean Set-Operations on General Polygons
|
||||||
|
|
||||||
\image html general_polygon.png
|
\image html general_polygon.png
|
||||||
|
\image latex general_polygon.png
|
||||||
|
|
||||||
In previous sections only ordinary (linear) polygons were dealt with. Namely, closed
|
In previous sections only ordinary (linear) polygons were dealt with. Namely, closed
|
||||||
point sets bounded by piecewise linear curves. The Boolean
|
point sets bounded by piecewise linear curves. The Boolean
|
||||||
|
|
@ -543,6 +548,7 @@ edges of a general polygon.
|
||||||
</UL>
|
</UL>
|
||||||
|
|
||||||
\image html general_polygon_with_holes.png
|
\image html general_polygon_with_holes.png
|
||||||
|
\image latex general_polygon_with_holes.png
|
||||||
|
|
||||||
The concept `GeneralPolygonWithHoles_2` is defined in an analogous
|
The concept `GeneralPolygonWithHoles_2` is defined in an analogous
|
||||||
way to the definition of linear polygons with holes. A model of this
|
way to the definition of linear polygons with holes. A model of this
|
||||||
|
|
@ -653,6 +659,7 @@ on non-linear objects; yet, it uses only rational arithmetic and is
|
||||||
very efficient as a consequence.
|
very efficient as a consequence.
|
||||||
|
|
||||||
\image html circles_rects.png
|
\image html circles_rects.png
|
||||||
|
\image latex circles_rects.png
|
||||||
|
|
||||||
The following example uses the `Gps_circle_segment_traits_2` class
|
The following example uses the `Gps_circle_segment_traits_2` class
|
||||||
to compute the union of four rectangles and four circles. Each circle
|
to compute the union of four rectangles and four circles. Each circle
|
||||||
|
|
@ -720,6 +727,7 @@ typedef CGAL::General_polygon_set_2<Traits_2> General_polygon_set_2;
|
||||||
\endcode
|
\endcode
|
||||||
|
|
||||||
\image html tnr_m_g.png
|
\image html tnr_m_g.png
|
||||||
|
\image latex tnr_m_g.png
|
||||||
|
|
||||||
Instantiating the arrangement-traits `Arr_traits_2` above with the
|
Instantiating the arrangement-traits `Arr_traits_2` above with the
|
||||||
traits class that handle Bézier curves `Arr_Bezier_curve_traits_2`,
|
traits class that handle Bézier curves `Arr_Bezier_curve_traits_2`,
|
||||||
|
|
@ -762,6 +770,7 @@ this is not the case, computing the result incrementally may prove
|
||||||
faster.
|
faster.
|
||||||
|
|
||||||
\image html disks.png
|
\image html disks.png
|
||||||
|
\image latex disks.png
|
||||||
|
|
||||||
The next example computes the union of eight unit discs whose centers are
|
The next example computes the union of eight unit discs whose centers are
|
||||||
placed a unit distance from the origin, as depicted to the right. The example
|
placed a unit distance from the origin, as depicted to the right. The example
|
||||||
|
|
|
||||||
|
|
@ -9,6 +9,7 @@ namespace CGAL {
|
||||||
\authors Kaspar Fischer, Bernd Gärtner, Thomas Herrmann, Michael Hoffmann, and Sven Schönherr
|
\authors Kaspar Fischer, Bernd Gärtner, Thomas Herrmann, Michael Hoffmann, and Sven Schönherr
|
||||||
|
|
||||||
\image html ball.png
|
\image html ball.png
|
||||||
|
\image latex ball.png
|
||||||
|
|
||||||
This chapter describes algorithms which for a given point set compute
|
This chapter describes algorithms which for a given point set compute
|
||||||
the <i>best</i> circumscribing object from a specific
|
the <i>best</i> circumscribing object from a specific
|
||||||
|
|
@ -38,6 +39,7 @@ minimum-volume enclosing ellipsoid with user-specified
|
||||||
approximation ratio (`Approximate_min_ellipsoid_d<Traits>`).
|
approximation ratio (`Approximate_min_ellipsoid_d<Traits>`).
|
||||||
|
|
||||||
\image html annulus.png
|
\image html annulus.png
|
||||||
|
\image latex annulus.png
|
||||||
|
|
||||||
Bounding volumes can be used to obtain simple approximations of
|
Bounding volumes can be used to obtain simple approximations of
|
||||||
complicated objects. For example, consider the problem of deciding
|
complicated objects. For example, consider the problem of deciding
|
||||||
|
|
@ -79,6 +81,7 @@ planar point set with between two and four minimal boxes
|
||||||
three boxes; the center points are shown in red.
|
three boxes; the center points are shown in red.
|
||||||
|
|
||||||
\image html pcenter.png
|
\image html pcenter.png
|
||||||
|
\image latex pcenter.png
|
||||||
|
|
||||||
*/
|
*/
|
||||||
} /* namespace CGAL */
|
} /* namespace CGAL */
|
||||||
|
|
|
||||||
|
|
@ -25,6 +25,7 @@ boundary, of course.}, only then the exact answer is computed on the
|
||||||
complicated geometric primitives contained in the boxes.
|
complicated geometric primitives contained in the boxes.
|
||||||
|
|
||||||
\image html box_inters.png
|
\image html box_inters.png
|
||||||
|
\image latex box_inters.png
|
||||||
|
|
||||||
We provide an efficient algorithm \cite cgal:ze-fsbi-02 for finding all
|
We provide an efficient algorithm \cite cgal:ze-fsbi-02 for finding all
|
||||||
intersecting pairs for large numbers of iso-oriented boxes, i.e.,
|
intersecting pairs for large numbers of iso-oriented boxes, i.e.,
|
||||||
|
|
|
||||||
|
|
@ -48,6 +48,7 @@ interface the \cgal 2D Delaunay triangulation with Ipe.
|
||||||
\cgalExample{CGAL_ipelets/simple_triangulation.cpp}
|
\cgalExample{CGAL_ipelets/simple_triangulation.cpp}
|
||||||
|
|
||||||
\image html example.png
|
\image html example.png
|
||||||
|
\image latex example.png
|
||||||
|
|
||||||
\section CGAL_ipeletsInstallation Installation of the Demo Ipelets
|
\section CGAL_ipeletsInstallation Installation of the Demo Ipelets
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -27,6 +27,7 @@ extreme points and subsequences of hull points, such as the lower and
|
||||||
upper hull of a set of points.
|
upper hull of a set of points.
|
||||||
|
|
||||||
\image html saarhull.png
|
\image html saarhull.png
|
||||||
|
\image latex saarhull.png
|
||||||
|
|
||||||
\section secconvex_hull_2 Convex Hull
|
\section secconvex_hull_2 Convex Hull
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -8,6 +8,7 @@
|
||||||
|
|
||||||
<CENTER>
|
<CENTER>
|
||||||
\image html cgal_small.png
|
\image html cgal_small.png
|
||||||
|
\image latex cgal_small.png
|
||||||
</CENTER>
|
</CENTER>
|
||||||
<CENTER><span class="textsc">Computational Geometry Algorithms Library</span></CENTER>
|
<CENTER><span class="textsc">Computational Geometry Algorithms Library</span></CENTER>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -108,9 +108,11 @@ types:
|
||||||
<TR>
|
<TR>
|
||||||
<TD>
|
<TD>
|
||||||
\image html compare_over_point.png
|
\image html compare_over_point.png
|
||||||
|
\image latex compare_over_point.png
|
||||||
</TD>
|
</TD>
|
||||||
<TD>
|
<TD>
|
||||||
\image html compare_over_curve.png
|
\image html compare_over_curve.png
|
||||||
|
\image latex compare_over_curve.png
|
||||||
</TD>
|
</TD>
|
||||||
</TR>
|
</TR>
|
||||||
<TR align="center"><TD>(a)</TD><TD>(b)</TD></TR>
|
<TR align="center"><TD>(a)</TD><TD>(b)</TD></TR>
|
||||||
|
|
@ -217,12 +219,15 @@ traits classes is demonstrated in the next section.
|
||||||
<TR>
|
<TR>
|
||||||
<TD>
|
<TD>
|
||||||
\image html ex_triangles.png
|
\image html ex_triangles.png
|
||||||
|
\image latex ex_triangles.png
|
||||||
</TD>
|
</TD>
|
||||||
<TD>
|
<TD>
|
||||||
\image html ex_tri_le.png
|
\image html ex_tri_le.png
|
||||||
|
\image latex ex_tri_le.png
|
||||||
</TD>
|
</TD>
|
||||||
<TD>
|
<TD>
|
||||||
\image html ex_tri_ue.png
|
\image html ex_tri_ue.png
|
||||||
|
\image latex ex_tri_ue.png
|
||||||
</TD>
|
</TD>
|
||||||
<TR ALIGN="center"><TD>(a)</TD><TD>(b)</TD><TD>(c)</TD></TR>
|
<TR ALIGN="center"><TD>(a)</TD><TD>(b)</TD><TD>(c)</TD></TR>
|
||||||
</TABLE>
|
</TABLE>
|
||||||
|
|
|
||||||
|
|
@ -204,6 +204,7 @@ Generating 20 grid points in 4D
|
||||||
\endverbatim
|
\endverbatim
|
||||||
|
|
||||||
\image html hypergrid.png
|
\image html hypergrid.png
|
||||||
|
\image latex hypergrid.png
|
||||||
|
|
||||||
\section GeneratorExGenCombi Example Generating Combinations
|
\section GeneratorExGenCombi Example Generating Combinations
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -281,6 +281,7 @@ new diagonal, the old face is to the left. The time is proportional
|
||||||
to the distance from `h` to `g` around the face.
|
to the distance from `h` to `g` around the face.
|
||||||
|
|
||||||
\image html euler_face.png
|
\image html euler_face.png
|
||||||
|
\image latex euler_face.png
|
||||||
|
|
||||||
*/
|
*/
|
||||||
Halfedge_handle split_face( Halfedge_handle h, Halfedge_handle g);
|
Halfedge_handle split_face( Halfedge_handle h, Halfedge_handle g);
|
||||||
|
|
@ -296,6 +297,7 @@ of the face removed and the time to compute `h->prev()`.
|
||||||
\cgalRequires `Supports_removal` \f$ \equiv\f$ `CGAL::Tag_true`.
|
\cgalRequires `Supports_removal` \f$ \equiv\f$ `CGAL::Tag_true`.
|
||||||
|
|
||||||
\image html euler_face.png
|
\image html euler_face.png
|
||||||
|
\image latex euler_face.png
|
||||||
|
|
||||||
*/
|
*/
|
||||||
Halfedge_handle join_face( Halfedge_handle h);
|
Halfedge_handle join_face( Halfedge_handle h);
|
||||||
|
|
@ -309,6 +311,7 @@ in the orientation towards the new vertex. The time is proportional
|
||||||
to the distance from `h` to `g` around the vertex.
|
to the distance from `h` to `g` around the vertex.
|
||||||
|
|
||||||
\image html euler_vertex.png
|
\image html euler_vertex.png
|
||||||
|
\image latex euler_vertex.png
|
||||||
|
|
||||||
*/
|
*/
|
||||||
Halfedge_handle split_vertex( Halfedge_handle h, Halfedge_handle g);
|
Halfedge_handle split_vertex( Halfedge_handle h, Halfedge_handle g);
|
||||||
|
|
@ -325,6 +328,7 @@ the time to compute `h->prev()` and `h->opposite()->prev()`.
|
||||||
\cgalRequires `Supports_removal` \f$ \equiv\f$ `CGAL::Tag_true`.
|
\cgalRequires `Supports_removal` \f$ \equiv\f$ `CGAL::Tag_true`.
|
||||||
|
|
||||||
\image html euler_vertex.png
|
\image html euler_vertex.png
|
||||||
|
\image latex euler_vertex.png
|
||||||
|
|
||||||
*/
|
*/
|
||||||
Halfedge_handle join_vertex( Halfedge_handle h);
|
Halfedge_handle join_vertex( Halfedge_handle h);
|
||||||
|
|
@ -340,6 +344,7 @@ The time is proportional to the size of the face.
|
||||||
\pre `h` is not a border halfedge.
|
\pre `h` is not a border halfedge.
|
||||||
|
|
||||||
\image html euler_center.png
|
\image html euler_center.png
|
||||||
|
\image latex euler_center.png
|
||||||
|
|
||||||
*/
|
*/
|
||||||
Halfedge_handle create_center_vertex( Halfedge_handle h);
|
Halfedge_handle create_center_vertex( Halfedge_handle h);
|
||||||
|
|
@ -358,6 +363,7 @@ The time is proportional to the sum of the size of all incident faces.
|
||||||
\cgalRequires `Supports_removal` \f$ \equiv\f$ `CGAL::Tag_true`.
|
\cgalRequires `Supports_removal` \f$ \equiv\f$ `CGAL::Tag_true`.
|
||||||
|
|
||||||
\image html euler_center.png
|
\image html euler_center.png
|
||||||
|
\image latex euler_center.png
|
||||||
*/
|
*/
|
||||||
Halfedge_handle erase_center_vertex( Halfedge_handle g);
|
Halfedge_handle erase_center_vertex( Halfedge_handle g);
|
||||||
|
|
||||||
|
|
@ -374,6 +380,7 @@ data structure and form a cycle: i.e., `h->vertex() == i->opposite()->vertex()`,
|
||||||
\f$\ldots\f$ , `j->vertex() == h->opposite()->vertex()`.
|
\f$\ldots\f$ , `j->vertex() == h->opposite()->vertex()`.
|
||||||
|
|
||||||
\image html euler_loop.png
|
\image html euler_loop.png
|
||||||
|
\image latex euler_loop.png
|
||||||
|
|
||||||
*/
|
*/
|
||||||
Halfedge_handle split_loop( Halfedge_handle h,
|
Halfedge_handle split_loop( Halfedge_handle h,
|
||||||
|
|
@ -391,6 +398,7 @@ data structure unchanged.
|
||||||
\cgalRequires `Supports_removal` \f$ \equiv\f$ `CGAL::Tag_true`.
|
\cgalRequires `Supports_removal` \f$ \equiv\f$ `CGAL::Tag_true`.
|
||||||
|
|
||||||
\image html euler_loop.png
|
\image html euler_loop.png
|
||||||
|
\image latex euler_loop.png
|
||||||
*/
|
*/
|
||||||
Halfedge_handle join_loop( Halfedge_handle h, Halfedge_handle g);
|
Halfedge_handle join_loop( Halfedge_handle h, Halfedge_handle g);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -34,6 +34,7 @@ possible for vertices, halfedges, and faces.
|
||||||
|
|
||||||
\anchor figureOptionalMethods
|
\anchor figureOptionalMethods
|
||||||
\image html hds_optional_small.png "The three classes Vertex, Halfedge, and Face of the halfedge data structure. Member functions with shaded background are mandatory. The others are optionally supported."
|
\image html hds_optional_small.png "The three classes Vertex, Halfedge, and Face of the halfedge data structure. Member functions with shaded background are mandatory. The others are optionally supported."
|
||||||
|
\image latex hds_optional_small.png "The three classes Vertex, Halfedge, and Face of the halfedge data structure. Member functions with shaded background are mandatory. The others are optionally supported."
|
||||||
|
|
||||||
A `HalfedgeDS` organizes the internal storage of its items. Examples
|
A `HalfedgeDS` organizes the internal storage of its items. Examples
|
||||||
are a list-based or a vector-based storage. The `HalfedgeDS` exhibits
|
are a list-based or a vector-based storage. The `HalfedgeDS` exhibits
|
||||||
|
|
|
||||||
|
|
@ -22,6 +22,7 @@ halfedges, vertices, and faces.
|
||||||
|
|
||||||
\anchor figureHalfedgeDSOptionalMethods
|
\anchor figureHalfedgeDSOptionalMethods
|
||||||
\image html hds_optional.png "The three classes Vertex, Halfedge, and Face of the halfedge data structure. Member functions with shaded background are mandatory. The others are optionally supported."
|
\image html hds_optional.png "The three classes Vertex, Halfedge, and Face of the halfedge data structure. Member functions with shaded background are mandatory. The others are optionally supported."
|
||||||
|
\image latex hds_optional.png "The three classes Vertex, Halfedge, and Face of the halfedge data structure. Member functions with shaded background are mandatory. The others are optionally supported."
|
||||||
|
|
||||||
For the protection of the integrity of the data structure classes such
|
For the protection of the integrity of the data structure classes such
|
||||||
as `CGAL::Polyhedron_3` are allowed to redefine the modifying member
|
as `CGAL::Polyhedron_3` are allowed to redefine the modifying member
|
||||||
|
|
|
||||||
|
|
@ -23,6 +23,7 @@ information, for example the halfedge pointers in faces or the
|
||||||
storage of faces at all.
|
storage of faces at all.
|
||||||
|
|
||||||
\image html halfedge_small.png
|
\image html halfedge_small.png
|
||||||
|
\image latex halfedge_small.png
|
||||||
|
|
||||||
The halfedge data structure is a combinatorial data structure,
|
The halfedge data structure is a combinatorial data structure,
|
||||||
geometric interpretation is added by classes built on top of the
|
geometric interpretation is added by classes built on top of the
|
||||||
|
|
@ -141,6 +142,7 @@ type used for the point. The program creates a loop, consisting
|
||||||
of two halfedges, one vertex and two faces, and checks its validity.
|
of two halfedges, one vertex and two faces, and checks its validity.
|
||||||
|
|
||||||
\image html loop.png
|
\image html loop.png
|
||||||
|
\image latex loop.png
|
||||||
|
|
||||||
\cgalExample{HalfedgeDS/hds_prog_default.cpp}
|
\cgalExample{HalfedgeDS/hds_prog_default.cpp}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -23,6 +23,7 @@ and the largest perimeter triangle (orange, containing the top point)
|
||||||
of a point set are different in general.
|
of a point set are different in general.
|
||||||
|
|
||||||
\image html max_triangle.png
|
\image html max_triangle.png
|
||||||
|
\image latex max_triangle.png
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -46,6 +47,7 @@ all iso-rectangles that are inside a given iso-rectangles, and
|
||||||
that do not contain any point of the point set.
|
that do not contain any point of the point set.
|
||||||
|
|
||||||
\image html largestEmptyRect.png
|
\image html largestEmptyRect.png
|
||||||
|
\image latex largestEmptyRect.png
|
||||||
*/
|
*/
|
||||||
} /* namespace CGAL */
|
} /* namespace CGAL */
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -102,6 +102,7 @@ Point_3<Kernel> vertex(int i) const;
|
||||||
/*!
|
/*!
|
||||||
returns `vertex(i)`, as indicated in the figure below:
|
returns `vertex(i)`, as indicated in the figure below:
|
||||||
\image html IsoCuboid.png
|
\image html IsoCuboid.png
|
||||||
|
\image latex IsoCuboid.png
|
||||||
*/
|
*/
|
||||||
Point_3<Kernel> operator[](int i) const;
|
Point_3<Kernel> operator[](int i) const;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -896,6 +896,7 @@ described below.
|
||||||
\ingroup compare_x_grp
|
\ingroup compare_x_grp
|
||||||
\anchor figcompare_x
|
\anchor figcompare_x
|
||||||
\image html compare1.png
|
\image html compare1.png
|
||||||
|
\image latex compare1.png
|
||||||
*/
|
*/
|
||||||
/// @{
|
/// @{
|
||||||
|
|
||||||
|
|
@ -1116,6 +1117,7 @@ Comparison_result
|
||||||
|
|
||||||
\anchor figcomparexaty
|
\anchor figcomparexaty
|
||||||
\image html compare_x_at_y.png
|
\image html compare_x_at_y.png
|
||||||
|
\image latex compare_x_at_y.png
|
||||||
|
|
||||||
\sa `compare_xy_grp`
|
\sa `compare_xy_grp`
|
||||||
\sa `compare_xyz_grp`
|
\sa `compare_xyz_grp`
|
||||||
|
|
@ -1181,6 +1183,7 @@ const CGAL::Line_2<Kernel> &h2);
|
||||||
|
|
||||||
\anchor figcompareyatx
|
\anchor figcompareyatx
|
||||||
\image html compare2.png
|
\image html compare2.png
|
||||||
|
\image latex compare2.png
|
||||||
|
|
||||||
\sa `compare_xy_grp`
|
\sa `compare_xy_grp`
|
||||||
\sa `compare_xyz_grp`
|
\sa `compare_xyz_grp`
|
||||||
|
|
@ -1317,6 +1320,7 @@ global function are available.
|
||||||
|
|
||||||
\anchor figcompare13
|
\anchor figcompare13
|
||||||
\image html compare1.png
|
\image html compare1.png
|
||||||
|
\image latex compare1.png
|
||||||
|
|
||||||
*/
|
*/
|
||||||
/// @{
|
/// @{
|
||||||
|
|
|
||||||
|
|
@ -1067,6 +1067,7 @@ public:
|
||||||
|
|
||||||
\anchor fig-compare_x_at_y_2
|
\anchor fig-compare_x_at_y_2
|
||||||
\image html compare_x_at_y.png
|
\image html compare_x_at_y.png
|
||||||
|
\image latex compare_x_at_y.png
|
||||||
|
|
||||||
\cgalRefines `AdaptableFunctor` (with three arguments)
|
\cgalRefines `AdaptableFunctor` (with three arguments)
|
||||||
|
|
||||||
|
|
@ -1220,6 +1221,7 @@ public:
|
||||||
|
|
||||||
\anchor fig-compare12
|
\anchor fig-compare12
|
||||||
\image html compare1.png
|
\image html compare1.png
|
||||||
|
\image latex compare1.png
|
||||||
|
|
||||||
\cgalRefines `AdaptableFunctor` (with two arguments)
|
\cgalRefines `AdaptableFunctor` (with two arguments)
|
||||||
|
|
||||||
|
|
@ -1306,6 +1308,7 @@ public:
|
||||||
\cgalConcept
|
\cgalConcept
|
||||||
|
|
||||||
\image html compare2.png
|
\image html compare2.png
|
||||||
|
\image latex compare2.png
|
||||||
|
|
||||||
\cgalRefines `AdaptableFunctor` (with three arguments)
|
\cgalRefines `AdaptableFunctor` (with three arguments)
|
||||||
|
|
||||||
|
|
@ -1426,6 +1429,7 @@ public:
|
||||||
|
|
||||||
\anchor fig-compare14
|
\anchor fig-compare14
|
||||||
\image html compare1.png
|
\image html compare1.png
|
||||||
|
\image latex compare1.png
|
||||||
|
|
||||||
\cgalRefines `AdaptableFunctor` (with two arguments)
|
\cgalRefines `AdaptableFunctor` (with two arguments)
|
||||||
|
|
||||||
|
|
@ -6480,6 +6484,7 @@ public:
|
||||||
\cgalConcept
|
\cgalConcept
|
||||||
|
|
||||||
\image html IsoCuboid.png
|
\image html IsoCuboid.png
|
||||||
|
\image latex IsoCuboid.png
|
||||||
|
|
||||||
\cgalRefines `AdaptableFunctor` (with two arguments)
|
\cgalRefines `AdaptableFunctor` (with two arguments)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -414,32 +414,41 @@ visualization support is based on the Coin library http://www.coin3d.org.
|
||||||
<TR>
|
<TR>
|
||||||
<TD>
|
<TD>
|
||||||
\image html delaunay_0.png
|
\image html delaunay_0.png
|
||||||
|
\image latex delaunay_0.png
|
||||||
</TD>
|
</TD>
|
||||||
<TD>
|
<TD>
|
||||||
\image html delaunay_1.png
|
\image html delaunay_1.png
|
||||||
|
\image latex delaunay_1.png
|
||||||
</TD>
|
</TD>
|
||||||
<TD>
|
<TD>
|
||||||
\image html delaunay_2.png
|
\image html delaunay_2.png
|
||||||
|
\image latex delaunay_2.png
|
||||||
</TD>
|
</TD>
|
||||||
<TD>
|
<TD>
|
||||||
\image html delaunay_3.png
|
\image html delaunay_3.png
|
||||||
|
\image latex delaunay_3.png
|
||||||
</TD>
|
</TD>
|
||||||
<TD>
|
<TD>
|
||||||
\image html delaunay_4.png
|
\image html delaunay_4.png
|
||||||
|
\image latex delaunay_4.png
|
||||||
</TD>
|
</TD>
|
||||||
</TR>
|
</TR>
|
||||||
<TR>
|
<TR>
|
||||||
<TD>
|
<TD>
|
||||||
\image html delaunay_5.png
|
\image html delaunay_5.png
|
||||||
|
\image latex delaunay_5.png
|
||||||
</TD>
|
</TD>
|
||||||
<TD>
|
<TD>
|
||||||
\image html delaunay_6.png
|
\image html delaunay_6.png
|
||||||
|
\image latex delaunay_6.png
|
||||||
</TD>
|
</TD>
|
||||||
<TD>
|
<TD>
|
||||||
\image html delaunay_7.png
|
\image html delaunay_7.png
|
||||||
|
\image latex delaunay_7.png
|
||||||
</TD>
|
</TD>
|
||||||
<TD>
|
<TD>
|
||||||
\image html delaunay_8.png
|
\image html delaunay_8.png
|
||||||
|
\image latex delaunay_8.png
|
||||||
</TD>
|
</TD>
|
||||||
</TR>
|
</TR>
|
||||||
</TABLE>
|
</TABLE>
|
||||||
|
|
|
||||||
|
|
@ -308,6 +308,7 @@ Returns a handle on the dart associated with `p0`.
|
||||||
\pre \ref CombinatorialMap::dimension "dimension"\f$ \geq\f$ 2.
|
\pre \ref CombinatorialMap::dimension "dimension"\f$ \geq\f$ 2.
|
||||||
|
|
||||||
\image html make_segment.png "Example of r=lcc.make_segment(p0,p1)."
|
\image html make_segment.png "Example of r=lcc.make_segment(p0,p1)."
|
||||||
|
\image latex make_segment.png "Example of r=lcc.make_segment(p0,p1)."
|
||||||
*/
|
*/
|
||||||
Dart_handle make_segment(const Point& p0, const Point& p1);
|
Dart_handle make_segment(const Point& p0, const Point& p1);
|
||||||
|
|
||||||
|
|
@ -317,6 +318,7 @@ Returns a handle on the dart associated with `p0`.
|
||||||
\pre \ref CombinatorialMap::dimension "dimension"\f$ \geq\f$ 1.
|
\pre \ref CombinatorialMap::dimension "dimension"\f$ \geq\f$ 1.
|
||||||
|
|
||||||
\image html make_triangle.png "Example of r=lcc.make_triangle(p0,p1,p2)."
|
\image html make_triangle.png "Example of r=lcc.make_triangle(p0,p1,p2)."
|
||||||
|
\image latex make_triangle.png "Example of r=lcc.make_triangle(p0,p1,p2)."
|
||||||
*/
|
*/
|
||||||
Dart_handle make_triangle(const Point& p0, const Point& p1, const Point& p2);
|
Dart_handle make_triangle(const Point& p0, const Point& p1, const Point& p2);
|
||||||
|
|
||||||
|
|
@ -327,6 +329,7 @@ Returns a handle on the dart associated with `p0`.
|
||||||
\pre \ref CombinatorialMap::dimension "dimension"\f$ \geq\f$ 1.
|
\pre \ref CombinatorialMap::dimension "dimension"\f$ \geq\f$ 1.
|
||||||
|
|
||||||
\image html make_quadrilateral.png "Example of r=lcc.make_quadrangle(p0,p1,p2,p3)."
|
\image html make_quadrilateral.png "Example of r=lcc.make_quadrangle(p0,p1,p2,p3)."
|
||||||
|
\image latex make_quadrilateral.png "Example of r=lcc.make_quadrangle(p0,p1,p2,p3)."
|
||||||
*/
|
*/
|
||||||
Dart_handle make_quadrangle(const Point& p0,const Point& p1,const Point& p2,const Point& p3);
|
Dart_handle make_quadrangle(const Point& p0,const Point& p1,const Point& p2,const Point& p3);
|
||||||
|
|
||||||
|
|
@ -338,6 +341,7 @@ associated with `p0` and belonging to the 2-cell having
|
||||||
\pre \ref CombinatorialMap::dimension "dimension"\f$ \geq\f$ 2.
|
\pre \ref CombinatorialMap::dimension "dimension"\f$ \geq\f$ 2.
|
||||||
|
|
||||||
\image html make_tetrahedron.png "Example of r=lcc.make_tetrahedron(p0,p1,p2,p3)."
|
\image html make_tetrahedron.png "Example of r=lcc.make_tetrahedron(p0,p1,p2,p3)."
|
||||||
|
\image latex make_tetrahedron.png "Example of r=lcc.make_tetrahedron(p0,p1,p2,p3)."
|
||||||
*/
|
*/
|
||||||
Dart_handle make_tetrahedron(const Point& p0,const Point& p1,const Point& p2,const Point& p3);
|
Dart_handle make_tetrahedron(const Point& p0,const Point& p1,const Point& p2,const Point& p3);
|
||||||
|
|
||||||
|
|
@ -350,6 +354,7 @@ as points.
|
||||||
\pre \ref CombinatorialMap::dimension "dimension" \f$ \geq \f$ 2.
|
\pre \ref CombinatorialMap::dimension "dimension" \f$ \geq \f$ 2.
|
||||||
|
|
||||||
\image html make_hexahedron.png "Example of r=lcc.make_hexahedron(p0,p1,p2,p3,p4,p5,p6,p7)."
|
\image html make_hexahedron.png "Example of r=lcc.make_hexahedron(p0,p1,p2,p3,p4,p5,p6,p7)."
|
||||||
|
\image latex make_hexahedron.png "Example of r=lcc.make_hexahedron(p0,p1,p2,p3,p4,p5,p6,p7)."
|
||||||
*/
|
*/
|
||||||
Dart_handle make_hexahedron(const Point& p0,const Point& p1,const Point& p2,
|
Dart_handle make_hexahedron(const Point& p0,const Point& p1,const Point& p2,
|
||||||
const Point& p3,const Point& p4,const Point& p5,
|
const Point& p3,const Point& p4,const Point& p5,
|
||||||
|
|
|
||||||
|
|
@ -27,6 +27,7 @@ Here a small example:
|
||||||
\endverbatim
|
\endverbatim
|
||||||
|
|
||||||
\image html import_graph.png "Example of import_graph reading the above file as istream."
|
\image html import_graph.png "Example of import_graph reading the above file as istream."
|
||||||
|
\image latex import_graph.png "Example of import_graph reading the above file as istream."
|
||||||
|
|
||||||
<B>Left</B>: A planar graph embedded in the plane with
|
<B>Left</B>: A planar graph embedded in the plane with
|
||||||
<I>P0</I>=(1.0,3.0), <I>P1</I>=(0.0,2.0), <I>P2</I>=(2.0,2.0), <I>P3</I>=(0.0,0.0), <I>P4</I>=(2.0,0.0).
|
<I>P0</I>=(1.0,3.0), <I>P1</I>=(0.0,2.0), <I>P2</I>=(2.0,2.0), <I>P3</I>=(0.0,0.0), <I>P4</I>=(2.0,0.0).
|
||||||
|
|
|
||||||
|
|
@ -203,12 +203,15 @@ is widely known as <I>offsetting</I> the polygon \f$ P\f$ by a radius \f$ r\f$.
|
||||||
<tr>
|
<tr>
|
||||||
<td>
|
<td>
|
||||||
\image html convex_offset.png
|
\image html convex_offset.png
|
||||||
|
\image latex convex_offset.png
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
\image html offset_decomp.png
|
\image html offset_decomp.png
|
||||||
|
\image latex offset_decomp.png
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
\image html offset_conv.png
|
\image html offset_conv.png
|
||||||
|
\image latex offset_conv.png
|
||||||
</td>
|
</td>
|
||||||
<tr align="center"><td>(a)</td><td>(b)</td><td>(c)</td></tr>
|
<tr align="center"><td>(a)</td><td>(b)</td><td>(c)</td></tr>
|
||||||
</table>
|
</table>
|
||||||
|
|
|
||||||
|
|
@ -682,6 +682,7 @@ segments, rays or lines or are part of the bounding frame.
|
||||||
|
|
||||||
\anchor extsegs
|
\anchor extsegs
|
||||||
\image html extsegs.png
|
\image html extsegs.png
|
||||||
|
\image latex extsegs.png
|
||||||
<center><b>
|
<center><b>
|
||||||
Extended geometry: standard vertices are marked by S, non-standard
|
Extended geometry: standard vertices are marked by S, non-standard
|
||||||
vertices are marked by N. <B>A</B>: The possible embeddings of edges:
|
vertices are marked by N. <B>A</B>: The possible embeddings of edges:
|
||||||
|
|
|
||||||
|
|
@ -264,6 +264,7 @@ public:
|
||||||
|
|
||||||
\anchor figureNef3FacetIncidences
|
\anchor figureNef3FacetIncidences
|
||||||
\image html snc.png
|
\image html snc.png
|
||||||
|
\image latex snc.png
|
||||||
|
|
||||||
The member function `twin` returns the opposite halffacet, `incident_volume`
|
The member function `twin` returns the opposite halffacet, `incident_volume`
|
||||||
returns the incident volume. A Halffacet cycle either consists of consecutive
|
returns the incident volume. A Halffacet cycle either consists of consecutive
|
||||||
|
|
@ -554,6 +555,7 @@ public:
|
||||||
|
|
||||||
\anchor figureNef3HalfedgeIncidences
|
\anchor figureNef3HalfedgeIncidences
|
||||||
\image html shalfedge.png
|
\image html shalfedge.png
|
||||||
|
\image latex shalfedge.png
|
||||||
|
|
||||||
The `snext()` member function points
|
The `snext()` member function points
|
||||||
to the successor shalfedge around this sface while the `sprev()` member
|
to the successor shalfedge around this sface while the `sprev()` member
|
||||||
|
|
@ -739,6 +741,7 @@ public:
|
||||||
|
|
||||||
\anchor figureNef3HalfloopIncidences
|
\anchor figureNef3HalfloopIncidences
|
||||||
\image html shalfloopB.png
|
\image html shalfloopB.png
|
||||||
|
\image latex shalfloopB.png
|
||||||
|
|
||||||
A sphere map having a shalfloop models the neighborhood of a vertex which is
|
A sphere map having a shalfloop models the neighborhood of a vertex which is
|
||||||
isolated on a facet. That facet is returned by the member function
|
isolated on a facet. That facet is returned by the member function
|
||||||
|
|
|
||||||
|
|
@ -142,9 +142,11 @@ we define our polyhedron \f$ P := ( h_1 \cap h_2 \cap h_3) - ( h_4 \cap h_5)\f$.
|
||||||
<tr>
|
<tr>
|
||||||
<td>
|
<td>
|
||||||
\image html nef_example.png
|
\image html nef_example.png
|
||||||
|
\image latex nef_example.png
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
\image html nef_pyramids.png
|
\image html nef_pyramids.png
|
||||||
|
\image latex nef_pyramids.png
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
|
|
@ -179,6 +181,7 @@ from the three-dimensional elements. See Chapter
|
||||||
for further details.
|
for further details.
|
||||||
|
|
||||||
\image html sphere_map.png
|
\image html sphere_map.png
|
||||||
|
\image latex sphere_map.png
|
||||||
|
|
||||||
Having sphere maps for all vertices of our polyhedron is a sufficient
|
Having sphere maps for all vertices of our polyhedron is a sufficient
|
||||||
but not easily accessible representation of the polyhedron. We enrich
|
but not easily accessible representation of the polyhedron. We enrich
|
||||||
|
|
@ -186,6 +189,7 @@ the data structure with more explicit representations of all the faces
|
||||||
and incidences between them.
|
and incidences between them.
|
||||||
|
|
||||||
\image html snc.png
|
\image html snc.png
|
||||||
|
\image latex snc.png
|
||||||
|
|
||||||
We depart slightly from the definition of faces in a Nef polyhedron;
|
We depart slightly from the definition of faces in a Nef polyhedron;
|
||||||
we represent the connected components of a face individually and do
|
we represent the connected components of a face individually and do
|
||||||
|
|
@ -475,6 +479,7 @@ notion of a shell. It shows a Nef polyhedron with two volumes and
|
||||||
three shells.
|
three shells.
|
||||||
|
|
||||||
\image html shells.png
|
\image html shells.png
|
||||||
|
\image latex shells.png
|
||||||
|
|
||||||
The first volume is the outer volume and the second volume is the
|
The first volume is the outer volume and the second volume is the
|
||||||
interior of the cube. The first shell is the whole surface of the left
|
interior of the cube. The first shell is the whole surface of the left
|
||||||
|
|
@ -490,6 +495,7 @@ that is in contact with the cube, all halffacets
|
||||||
oriented inwards, and all halfedges (the same as for the second shell).
|
oriented inwards, and all halfedges (the same as for the second shell).
|
||||||
|
|
||||||
\image html closeup.png
|
\image html closeup.png
|
||||||
|
\image latex closeup.png
|
||||||
|
|
||||||
We discuss how sfaces, shalfedges, and sloops belong to the shells
|
We discuss how sfaces, shalfedges, and sloops belong to the shells
|
||||||
with a closeup view of the situation at the antenna foot. As you can
|
with a closeup view of the situation at the antenna foot. As you can
|
||||||
|
|
@ -576,6 +582,7 @@ an QApplication with a main widget of type `Qt_widget_Nef_3` and
|
||||||
how to start the viewer.
|
how to start the viewer.
|
||||||
|
|
||||||
\image html visualization_SNC.png
|
\image html visualization_SNC.png
|
||||||
|
\image latex visualization_SNC.png
|
||||||
|
|
||||||
\cgalExample{Nef_3/visualization_SNC.cpp}
|
\cgalExample{Nef_3/visualization_SNC.cpp}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -564,6 +564,7 @@ this shalfedge of opposite orientation.
|
||||||
|
|
||||||
\anchor figureNefS2SVertexIncidences
|
\anchor figureNefS2SVertexIncidences
|
||||||
\image html shalfedge.png "Incidences of an SHalfedge"
|
\image html shalfedge.png "Incidences of an SHalfedge"
|
||||||
|
\image latex shalfedge.png "Incidences of an SHalfedge"
|
||||||
|
|
||||||
The `snext()` member function points
|
The `snext()` member function points
|
||||||
to the successor shalfedge around this sface while the `sprev()` member
|
to the successor shalfedge around this sface while the `sprev()` member
|
||||||
|
|
@ -708,6 +709,7 @@ depicts the relationship between a shalfloop and sfaces on a sphere map.
|
||||||
|
|
||||||
\anchor figureNefS2SHalfloopIncidences
|
\anchor figureNefS2SHalfloopIncidences
|
||||||
\image html shalfloopB.png "Incidences of an SHalfloop "
|
\image html shalfloopB.png "Incidences of an SHalfloop "
|
||||||
|
\image latex shalfloopB.png "Incidences of an SHalfloop "
|
||||||
|
|
||||||
\cgalHeading{Creation}
|
\cgalHeading{Creation}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -39,6 +39,7 @@ a great circle. A binary operation of two halfspheres cuts the great circles
|
||||||
into great arcs.
|
into great arcs.
|
||||||
|
|
||||||
\image html shalfloopB.png
|
\image html shalfloopB.png
|
||||||
|
\image latex shalfloopB.png
|
||||||
|
|
||||||
The incidence structure of planar Nef polyhedra can be reused. The
|
The incidence structure of planar Nef polyhedra can be reused. The
|
||||||
items are denoted as \em svertex, \em shalfedge and \em sface,
|
items are denoted as \em svertex, \em shalfedge and \em sface,
|
||||||
|
|
|
||||||
|
|
@ -12,6 +12,7 @@ namespace CGAL {
|
||||||
\author Nico Kruithof
|
\author Nico Kruithof
|
||||||
|
|
||||||
\image html 3pts_unique.png
|
\image html 3pts_unique.png
|
||||||
|
\image latex 3pts_unique.png
|
||||||
|
|
||||||
The periodic 2D-triangulation class of \cgal is designed to represent
|
The periodic 2D-triangulation class of \cgal is designed to represent
|
||||||
the triangulation of a set of points in the two-dimensional flat
|
the triangulation of a set of points in the two-dimensional flat
|
||||||
|
|
@ -391,6 +392,7 @@ batch inserted points. The points are uniformly randomly distributed
|
||||||
in the unit rectangle. The tests were done on an Intel i7 @ 2.67GHz.
|
in the unit rectangle. The tests were done on an Intel i7 @ 2.67GHz.
|
||||||
|
|
||||||
\image html p2dt2_performance.png
|
\image html p2dt2_performance.png
|
||||||
|
\image latex p2dt2_performance.png
|
||||||
|
|
||||||
\section P2T2_Design Design and Implementation History
|
\section P2T2_Design Design and Implementation History
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -10,6 +10,7 @@ namespace CGAL {
|
||||||
\authors Manuel Caroli and Monique Teillaud
|
\authors Manuel Caroli and Monique Teillaud
|
||||||
|
|
||||||
\image html p3Delaunay3.jpg
|
\image html p3Delaunay3.jpg
|
||||||
|
\image latex p3Delaunay3.jpg
|
||||||
|
|
||||||
The periodic 3D-triangulation class of \cgal is designed to
|
The periodic 3D-triangulation class of \cgal is designed to
|
||||||
represent the triangulations of a set of points in the
|
represent the triangulations of a set of points in the
|
||||||
|
|
|
||||||
|
|
@ -8,6 +8,7 @@ namespace CGAL {
|
||||||
represented by two halfedges with opposite orientations.
|
represented by two halfedges with opposite orientations.
|
||||||
|
|
||||||
\image html halfedge.png
|
\image html halfedge.png
|
||||||
|
\image latex halfedge.png
|
||||||
|
|
||||||
Vertices represent points in 3d-space. Edges are straight line segments
|
Vertices represent points in 3d-space. Edges are straight line segments
|
||||||
between two endpoints. Facets are planar polygons without holes
|
between two endpoints. Facets are planar polygons without holes
|
||||||
|
|
@ -134,6 +135,7 @@ public:
|
||||||
|
|
||||||
\anchor figurePolyOptionalMethods
|
\anchor figurePolyOptionalMethods
|
||||||
\image html poly_optional.png
|
\image html poly_optional.png
|
||||||
|
\image latex poly_optional.png
|
||||||
<center><b>The three classes `Vertex`, `Halfedge`, and `Facet` of the polyhedral surface. Member functions with shaded background are mandatory. The others are optionally supported.</b></center>
|
<center><b>The three classes `Vertex`, `Halfedge`, and `Facet` of the polyhedral surface. Member functions with shaded background are mandatory. The others are optionally supported.</b></center>
|
||||||
|
|
||||||
The incidences encoded in `Halfedge::opposite()` and `Halfedge::next()` are
|
The incidences encoded in `Halfedge::opposite()` and `Halfedge::next()` are
|
||||||
|
|
@ -1214,6 +1216,7 @@ public:
|
||||||
\pre `h` and `g` are incident to the same facet. `h != g` (no loops). `h->%next() != g` and `g->%next() != h` (no multi-edges).
|
\pre `h` and `g` are incident to the same facet. `h != g` (no loops). `h->%next() != g` and `g->%next() != h` (no multi-edges).
|
||||||
|
|
||||||
\image html euler_facet.png
|
\image html euler_facet.png
|
||||||
|
\image latex euler_facet.png
|
||||||
|
|
||||||
*/
|
*/
|
||||||
Halfedge_handle split_facet( Halfedge_handle h,
|
Halfedge_handle split_facet( Halfedge_handle h,
|
||||||
|
|
@ -1231,6 +1234,7 @@ public:
|
||||||
\cgalRequires `Supports_removal` \f$ \equiv\f$ `CGAL::Tag_true`.
|
\cgalRequires `Supports_removal` \f$ \equiv\f$ `CGAL::Tag_true`.
|
||||||
|
|
||||||
\image html euler_facet.png
|
\image html euler_facet.png
|
||||||
|
\image latex euler_facet.png
|
||||||
|
|
||||||
n */
|
n */
|
||||||
Halfedge_handle join_facet( Halfedge_handle h);
|
Halfedge_handle join_facet( Halfedge_handle h);
|
||||||
|
|
@ -1251,6 +1255,7 @@ n */
|
||||||
\pre `h` and `g` are incident to the same vertex. `h != g` (antennas are not allowed).
|
\pre `h` and `g` are incident to the same vertex. `h != g` (antennas are not allowed).
|
||||||
|
|
||||||
\image html euler_vertex.png
|
\image html euler_vertex.png
|
||||||
|
\image latex euler_vertex.png
|
||||||
|
|
||||||
\note
|
\note
|
||||||
A special application of the split is
|
A special application of the split is
|
||||||
|
|
@ -1275,6 +1280,7 @@ n */
|
||||||
\cgalRequires `Supports_removal` \f$ \equiv\f$ `CGAL::Tag_true`.
|
\cgalRequires `Supports_removal` \f$ \equiv\f$ `CGAL::Tag_true`.
|
||||||
|
|
||||||
\image html euler_vertex.png
|
\image html euler_vertex.png
|
||||||
|
\image latex euler_vertex.png
|
||||||
*/
|
*/
|
||||||
Halfedge_handle join_vertex( Halfedge_handle h);
|
Halfedge_handle join_vertex( Halfedge_handle h);
|
||||||
|
|
||||||
|
|
@ -1310,6 +1316,7 @@ n */
|
||||||
\pre `h` is not a border halfedge.
|
\pre `h` is not a border halfedge.
|
||||||
|
|
||||||
\image html euler_center.png
|
\image html euler_center.png
|
||||||
|
\image latex euler_center.png
|
||||||
|
|
||||||
*/
|
*/
|
||||||
Halfedge_handle create_center_vertex( Halfedge_handle h);
|
Halfedge_handle create_center_vertex( Halfedge_handle h);
|
||||||
|
|
@ -1327,6 +1334,7 @@ n */
|
||||||
\cgalRequires `Supports_removal` \f$ \equiv\f$ `CGAL::Tag_true`.
|
\cgalRequires `Supports_removal` \f$ \equiv\f$ `CGAL::Tag_true`.
|
||||||
|
|
||||||
\image html euler_center.png
|
\image html euler_center.png
|
||||||
|
\image latex euler_center.png
|
||||||
*/
|
*/
|
||||||
Halfedge_handle erase_center_vertex( Halfedge_handle g);
|
Halfedge_handle erase_center_vertex( Halfedge_handle g);
|
||||||
|
|
||||||
|
|
@ -1346,6 +1354,7 @@ n */
|
||||||
\pre `h`, `i`, `j` denote distinct, consecutive vertices of the polyhedron and form a cycle: i.e., `h->vertex() == i->%opposite()->vertex()`, \f$ \ldots\f$ , `j->vertex() == h->%opposite()->vertex()`. The six facets incident to `(h,i,j)` are all distinct.
|
\pre `h`, `i`, `j` denote distinct, consecutive vertices of the polyhedron and form a cycle: i.e., `h->vertex() == i->%opposite()->vertex()`, \f$ \ldots\f$ , `j->vertex() == h->%opposite()->vertex()`. The six facets incident to `(h,i,j)` are all distinct.
|
||||||
|
|
||||||
\image html euler_loop.png
|
\image html euler_loop.png
|
||||||
|
\image latex euler_loop.png
|
||||||
*/
|
*/
|
||||||
Halfedge_handle split_loop( Halfedge_handle h,
|
Halfedge_handle split_loop( Halfedge_handle h,
|
||||||
Halfedge_handle i,
|
Halfedge_handle i,
|
||||||
|
|
@ -1362,6 +1371,7 @@ n */
|
||||||
\cgalRequires `Supports_removal` \f$ \equiv\f$ `CGAL::Tag_true`.
|
\cgalRequires `Supports_removal` \f$ \equiv\f$ `CGAL::Tag_true`.
|
||||||
|
|
||||||
\image html euler_loop.png
|
\image html euler_loop.png
|
||||||
|
\image latex euler_loop.png
|
||||||
|
|
||||||
*/
|
*/
|
||||||
Halfedge_handle join_loop( Halfedge_handle h, Halfedge_handle g);
|
Halfedge_handle join_loop( Halfedge_handle h, Halfedge_handle g);
|
||||||
|
|
@ -1400,6 +1410,7 @@ n */
|
||||||
\pre `h->is_border()`, `g->is_border()`, `h != g`, and `g` can be reached along the same hole starting with `h`.
|
\pre `h->is_border()`, `g->is_border()`, `h != g`, and `g` can be reached along the same hole starting with `h`.
|
||||||
|
|
||||||
\image html add_facet1.png
|
\image html add_facet1.png
|
||||||
|
\image latex add_facet1.png
|
||||||
*/
|
*/
|
||||||
Halfedge_handle add_vertex_and_facet_to_border(
|
Halfedge_handle add_vertex_and_facet_to_border(
|
||||||
Halfedge_handle h, Halfedge_handle g);
|
Halfedge_handle h, Halfedge_handle g);
|
||||||
|
|
@ -1413,6 +1424,7 @@ n */
|
||||||
\pre `h->is_border()`, `g->is_border()`, `h != g`, `h->next() != g`, and `g` can be reached along the same hole starting with `h`.
|
\pre `h->is_border()`, `g->is_border()`, `h != g`, `h->next() != g`, and `g` can be reached along the same hole starting with `h`.
|
||||||
|
|
||||||
\image html add_facet2.png
|
\image html add_facet2.png
|
||||||
|
\image latex add_facet2.png
|
||||||
|
|
||||||
*/
|
*/
|
||||||
Halfedge_handle add_facet_to_border( Halfedge_handle h,
|
Halfedge_handle add_facet_to_border( Halfedge_handle h,
|
||||||
|
|
@ -1434,8 +1446,10 @@ n */
|
||||||
\cgalRequires `Supports_removal` \f$ \equiv\f$ `CGAL::Tag_true`
|
\cgalRequires `Supports_removal` \f$ \equiv\f$ `CGAL::Tag_true`
|
||||||
|
|
||||||
\image html add_facet1.png
|
\image html add_facet1.png
|
||||||
|
\image latex add_facet1.png
|
||||||
|
|
||||||
\image html add_facet2.png
|
\image html add_facet2.png
|
||||||
|
\image latex add_facet2.png
|
||||||
*/
|
*/
|
||||||
void erase_facet( Halfedge_handle h);
|
void erase_facet( Halfedge_handle h);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -18,6 +18,7 @@ boundary. If the surface is closed we call it a <I>polyhedron</I>, for
|
||||||
example, see the following model of a hammerhead:
|
example, see the following model of a hammerhead:
|
||||||
|
|
||||||
\image html shark.png
|
\image html shark.png
|
||||||
|
\image latex shark.png
|
||||||
|
|
||||||
The polyhedral surface is realized as a container class that manages
|
The polyhedral surface is realized as a container class that manages
|
||||||
vertices, halfedges, facets with their incidences, and that maintains
|
vertices, halfedges, facets with their incidences, and that maintains
|
||||||
|
|
@ -37,6 +38,7 @@ halfedges with opposite orientations. The incidences stored with a
|
||||||
halfedge are illustrated in the following figure:
|
halfedge are illustrated in the following figure:
|
||||||
|
|
||||||
\image html halfedge_small.png
|
\image html halfedge_small.png
|
||||||
|
\image latex halfedge_small.png
|
||||||
|
|
||||||
Vertices represent points in space. Edges are straight line segments
|
Vertices represent points in space. Edges are straight line segments
|
||||||
between two endpoints. Facets are planar polygons without
|
between two endpoints. Facets are planar polygons without
|
||||||
|
|
@ -269,6 +271,7 @@ Figure shows six selected steps from the creation sequence. These steps
|
||||||
are also marked in the program code.
|
are also marked in the program code.
|
||||||
|
|
||||||
\image html make_cube.png
|
\image html make_cube.png
|
||||||
|
\image latex make_cube.png
|
||||||
|
|
||||||
\cgalExample{Polyhedron/polyhedron_prog_cube.cpp}
|
\cgalExample{Polyhedron/polyhedron_prog_cube.cpp}
|
||||||
|
|
||||||
|
|
@ -510,6 +513,7 @@ added to the end of the sequences. The program needs additional
|
||||||
processing memory only for the smoothing step of the old vertices.
|
processing memory only for the smoothing step of the old vertices.
|
||||||
|
|
||||||
\image html subdiv_small.png
|
\image html subdiv_small.png
|
||||||
|
\image latex subdiv_small.png
|
||||||
|
|
||||||
The above figure shows three example objects, each
|
The above figure shows three example objects, each
|
||||||
subdivided four times. The initial object for the left sequence is
|
subdivided four times. The initial object for the left sequence is
|
||||||
|
|
|
||||||
|
|
@ -495,6 +495,7 @@ For a sequence \f$ I:=(a_0,\ldots,a_n)\f$ of real numbers with \f$ a_0\neq 0\f$,
|
||||||
where \f$ s\f$ is the number of subsequences of \f$ I\f$ of the form
|
where \f$ s\f$ is the number of subsequences of \f$ I\f$ of the form
|
||||||
|
|
||||||
\image html underbrace.png
|
\image html underbrace.png
|
||||||
|
\image latex underbrace.png
|
||||||
|
|
||||||
with \f$ a\neq 0,b\neq 0, k\geq 0\f$.
|
with \f$ a\neq 0,b\neq 0, k\geq 0\f$.
|
||||||
|
|
||||||
|
|
@ -546,6 +547,7 @@ For a sequence \f$ I:=(a_0,\ldots,a_n)\f$ of real numbers with \f$ a_0\neq 0\f$,
|
||||||
where \f$ s\f$ is the number of subsequences of \f$ I\f$ of the form
|
where \f$ s\f$ is the number of subsequences of \f$ I\f$ of the form
|
||||||
|
|
||||||
\image html underbrace.png
|
\image html underbrace.png
|
||||||
|
\image latex underbrace.png
|
||||||
|
|
||||||
with \f$ a\neq 0,b\neq 0, k\geq 0\f$.
|
with \f$ a\neq 0,b\neq 0, k\geq 0\f$.
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -14,6 +14,7 @@ is the outermost variable.
|
||||||
The \f$ i\f$-th subresultant (with \f$ i=0,\ldots,\min\{n,m\}\f$) is defined by
|
The \f$ i\f$-th subresultant (with \f$ i=0,\ldots,\min\{n,m\}\f$) is defined by
|
||||||
|
|
||||||
\image html subresultant_def.png
|
\image html subresultant_def.png
|
||||||
|
\image latex subresultant_def.png
|
||||||
|
|
||||||
where \f$ p_i\f$ and \f$ q_i\f$ are set to zero if \f$ i<0\f$.
|
where \f$ p_i\f$ and \f$ q_i\f$ are set to zero if \f$ i<0\f$.
|
||||||
In the case that \f$ n=m\f$, \f$ \mathrm{Sres_n}\f$ is set to \f$ q\f$.
|
In the case that \f$ n=m\f$, \f$ \mathrm{Sres_n}\f$ is set to \f$ q\f$.
|
||||||
|
|
|
||||||
|
|
@ -18,6 +18,7 @@ where
|
||||||
The resultant of \f$ f\f$ and \f$ g\f$ is defined as the determinant of the <I>Sylvester matrix</I>:
|
The resultant of \f$ f\f$ and \f$ g\f$ is defined as the determinant of the <I>Sylvester matrix</I>:
|
||||||
|
|
||||||
\image html sylvester_matrix.png
|
\image html sylvester_matrix.png
|
||||||
|
\image latex sylvester_matrix.png
|
||||||
|
|
||||||
Note that this is a \f$ (n+m)\times(n+m)\f$ matrix as there are \f$ n\f$ rows for \f$ f\f$
|
Note that this is a \f$ (n+m)\times(n+m)\f$ matrix as there are \f$ n\f$ rows for \f$ f\f$
|
||||||
and \f$ m\f$ rows that are used for \f$ g\f$. The blank spaces are supposed to be
|
and \f$ m\f$ rows that are used for \f$ g\f$. The blank spaces are supposed to be
|
||||||
|
|
|
||||||
|
|
@ -18,6 +18,7 @@ For \f$ k\in\{0,\ldots,n\}\f$, the <I>\f$ k\f$-th Sturm-Habicht polynomial</I>
|
||||||
of \f$ f\f$ is defined as:
|
of \f$ f\f$ is defined as:
|
||||||
|
|
||||||
\image html sturm_habicht_def.png
|
\image html sturm_habicht_def.png
|
||||||
|
\image latex sturm_habicht_def.png
|
||||||
|
|
||||||
where \f$ \mathrm{Sres}_k(f,f')\f$ is defined
|
where \f$ \mathrm{Sres}_k(f,f')\f$ is defined
|
||||||
as in the concept `PolynomialTraits_d::PolynomialSubresultants`.
|
as in the concept `PolynomialTraits_d::PolynomialSubresultants`.
|
||||||
|
|
|
||||||
|
|
@ -14,6 +14,7 @@ hulls of two given point sets in \f$ d\f$-dimensional Euclidean space
|
||||||
compute the width of a point set in three dimensions (`Width_3<Traits>`).
|
compute the width of a point set in three dimensions (`Width_3<Traits>`).
|
||||||
|
|
||||||
\image html polydist.png
|
\image html polydist.png
|
||||||
|
\image latex polydist.png
|
||||||
|
|
||||||
The obvious application is collision detection between convex bodies
|
The obvious application is collision detection between convex bodies
|
||||||
in space. In the spirit of the bounding volume application above, it
|
in space. In the spirit of the bounding volume application above, it
|
||||||
|
|
|
||||||
|
|
@ -17,6 +17,7 @@ The following figures show a number of rectangles and a 2-dimensional
|
||||||
segment tree built on them.
|
segment tree built on them.
|
||||||
|
|
||||||
\image html segment_ex2.png "Two dimensional interval data and the corresponding segment tree."
|
\image html segment_ex2.png "Two dimensional interval data and the corresponding segment tree."
|
||||||
|
\image latex segment_ex2.png "Two dimensional interval data and the corresponding segment tree."
|
||||||
*/
|
*/
|
||||||
template< typename Data, typename Window >
|
template< typename Data, typename Window >
|
||||||
class Tree_anchor : public Tree_base {
|
class Tree_anchor : public Tree_base {
|
||||||
|
|
|
||||||
|
|
@ -18,6 +18,7 @@ reverses the action of the other.
|
||||||
\anchor figsdgdssplitjoin
|
\anchor figsdgdssplitjoin
|
||||||
|
|
||||||
\image html sdg-join_split.png
|
\image html sdg-join_split.png
|
||||||
|
\image latex sdg-join_split.png
|
||||||
<center><b>
|
<center><b>
|
||||||
The join and split operations. Left to right: The vertex `v` is split
|
The join and split operations. Left to right: The vertex `v` is split
|
||||||
into \f$ v_1\f$ and \f$ v_2\f$. The faces \f$ f\f$ and \f$ g\f$ are
|
into \f$ v_1\f$ and \f$ v_2\f$. The faces \f$ f\f$ and \f$ g\f$ are
|
||||||
|
|
|
||||||
|
|
@ -15,6 +15,7 @@ namespace CGAL {
|
||||||
\author Nico Kruithof
|
\author Nico Kruithof
|
||||||
|
|
||||||
\image html molecule.png ""
|
\image html molecule.png ""
|
||||||
|
\image latex molecule.png ""
|
||||||
|
|
||||||
\section sectionSkinSurfaceIntro Introduction
|
\section sectionSkinSurfaceIntro Introduction
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -15,6 +15,7 @@ Catmull-Clark subdivision on a `CGAL::Polyhedron_3<Cartesian>`.
|
||||||
instantiated with a %Cartesian kernel, which defines the `Point_3` for the vertices.
|
instantiated with a %Cartesian kernel, which defines the `Point_3` for the vertices.
|
||||||
|
|
||||||
\image html CCBorderMask.png
|
\image html CCBorderMask.png
|
||||||
|
\image latex CCBorderMask.png
|
||||||
|
|
||||||
\cgalModels `PQQMask_3`
|
\cgalModels `PQQMask_3`
|
||||||
|
|
||||||
|
|
@ -88,6 +89,7 @@ Doo-Sabin subdivision on a `Polyhedron_3<Cartesian>`.
|
||||||
instantiated with a %Cartesian kernel, which defines the `Point_3` for the vertices.
|
instantiated with a %Cartesian kernel, which defines the `Point_3` for the vertices.
|
||||||
|
|
||||||
\image html DSCornerMask.png
|
\image html DSCornerMask.png
|
||||||
|
\image latex DSCornerMask.png
|
||||||
|
|
||||||
\cgalModels `DQQMask_3`
|
\cgalModels `DQQMask_3`
|
||||||
|
|
||||||
|
|
@ -140,6 +142,7 @@ Loop subdivision on a triangulated `Polyhedron_3<Cartesian>`.
|
||||||
instantiated with a %Cartesian kernel, which defines the `Point_3` for the vertices.
|
instantiated with a %Cartesian kernel, which defines the `Point_3` for the vertices.
|
||||||
|
|
||||||
\image html LoopBorderMask.png
|
\image html LoopBorderMask.png
|
||||||
|
\image latex LoopBorderMask.png
|
||||||
|
|
||||||
\cgalModels `PTQMask_3`
|
\cgalModels `PTQMask_3`
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -37,6 +37,7 @@ the geometry masks.
|
||||||
`PQQ`, `PTQ`, `DQQ` and `Sqrt3`.
|
`PQQ`, `PTQ`, `DQQ` and `Sqrt3`.
|
||||||
|
|
||||||
\image html RefSchemes.png
|
\image html RefSchemes.png
|
||||||
|
\image latex RefSchemes.png
|
||||||
|
|
||||||
\cgalHeading{Example}
|
\cgalHeading{Example}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -8,6 +8,7 @@ policy concept of geometric computations is used in
|
||||||
`CGAL::Subdivision_method_3::DQQ<Polyhedron_3, Mask>`.
|
`CGAL::Subdivision_method_3::DQQ<Polyhedron_3, Mask>`.
|
||||||
|
|
||||||
\image html DSCornerMask.png
|
\image html DSCornerMask.png
|
||||||
|
\image latex DSCornerMask.png
|
||||||
|
|
||||||
\cgalHasModel `CGAL::DooSabin_mask_3<Polyhedron_3>`
|
\cgalHasModel `CGAL::DooSabin_mask_3<Polyhedron_3>`
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -8,6 +8,7 @@ policy concept of geometric computations is used in
|
||||||
`CGAL::Subdivision_method_3::PQQ<Polyhedron_3, Mask>`.
|
`CGAL::Subdivision_method_3::PQQ<Polyhedron_3, Mask>`.
|
||||||
|
|
||||||
\image html CCBorderMask.png
|
\image html CCBorderMask.png
|
||||||
|
\image latex CCBorderMask.png
|
||||||
|
|
||||||
\cgalHasModel `CGAL::CatmullClark_mask_3<Polyhedron_3>`
|
\cgalHasModel `CGAL::CatmullClark_mask_3<Polyhedron_3>`
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -7,6 +7,7 @@ policy concept of geometric computations is used in
|
||||||
`CGAL::Subdivision_method_3::PTQ<Polyhedron_3, Mask>`.
|
`CGAL::Subdivision_method_3::PTQ<Polyhedron_3, Mask>`.
|
||||||
|
|
||||||
\image html LoopBorderMask.png
|
\image html LoopBorderMask.png
|
||||||
|
\image latex LoopBorderMask.png
|
||||||
|
|
||||||
\cgalHasModel `CGAL::Loop_mask_3<Polyhedron_3>`
|
\cgalHasModel `CGAL::Loop_mask_3<Polyhedron_3>`
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -9,6 +9,7 @@ namespace CGAL {
|
||||||
\author Le-Jeng Andy Shiue
|
\author Le-Jeng Andy Shiue
|
||||||
|
|
||||||
\image html subdivision-teaser.jpg
|
\image html subdivision-teaser.jpg
|
||||||
|
\image latex subdivision-teaser.jpg
|
||||||
|
|
||||||
\section sectionSubIntro Introduction
|
\section sectionSubIntro Introduction
|
||||||
|
|
||||||
|
|
@ -67,6 +68,7 @@ DQQ indicates the <I>D</I>ual <I>Q</I>uadtrateral <I>Q</I>uadrisection.
|
||||||
the subdivision surface.
|
the subdivision surface.
|
||||||
|
|
||||||
\image html RefSchemes.png
|
\image html RefSchemes.png
|
||||||
|
\image latex RefSchemes.png
|
||||||
|
|
||||||
The figure demonstrates these four refinement patterns on
|
The figure demonstrates these four refinement patterns on
|
||||||
the 1-disk of a valence-5 vertex/facet.
|
the 1-disk of a valence-5 vertex/facet.
|
||||||
|
|
@ -86,6 +88,7 @@ top row indicate the corresponding stencils of the refined nodes
|
||||||
in red.
|
in red.
|
||||||
|
|
||||||
\image html PQQStencil.png
|
\image html PQQStencil.png
|
||||||
|
\image latex PQQStencil.png
|
||||||
|
|
||||||
Stencils with weights are called <I>geometry masks</I>.
|
Stencils with weights are called <I>geometry masks</I>.
|
||||||
A subdivision method defines a geometry mask for each stencil, and
|
A subdivision method defines a geometry mask for each stencil, and
|
||||||
|
|
@ -96,6 +99,7 @@ The geometry masks of Catmull-Clark subdivision are shown
|
||||||
below.
|
below.
|
||||||
|
|
||||||
\image html cc_mask.png
|
\image html cc_mask.png
|
||||||
|
\image latex cc_mask.png
|
||||||
|
|
||||||
The weights shown here are unnormalized, and \f$ n\f$ is the valence
|
The weights shown here are unnormalized, and \f$ n\f$ is the valence
|
||||||
of the vertex. The generated point, in red, is computed by a summation
|
of the vertex. The generated point, in red, is computed by a summation
|
||||||
|
|
@ -319,6 +323,7 @@ Respectively, they are used by Catmull-Clark, Loop, Doo-Sabin
|
||||||
and \f$ \sqrt{3}\f$ subdivision.
|
and \f$ \sqrt{3}\f$ subdivision.
|
||||||
|
|
||||||
\image html RefSchemes.png
|
\image html RefSchemes.png
|
||||||
|
\image latex RefSchemes.png
|
||||||
|
|
||||||
\code{.cpp}
|
\code{.cpp}
|
||||||
|
|
||||||
|
|
@ -396,6 +401,7 @@ The function collects the vertex neighbors of the primitive handle
|
||||||
based on the neighbors and the mask (i.e.\ the stencil weights).
|
based on the neighbors and the mask (i.e.\ the stencil weights).
|
||||||
|
|
||||||
\image html cc_mask.png
|
\image html cc_mask.png
|
||||||
|
\image latex cc_mask.png
|
||||||
|
|
||||||
This figure shows the geometry masks of
|
This figure shows the geometry masks of
|
||||||
Catmull-Clark subdivision. The weights shown here are unnormalized,
|
Catmull-Clark subdivision. The weights shown here are unnormalized,
|
||||||
|
|
|
||||||
|
|
@ -41,13 +41,16 @@ Let `vgone` be the removed vertex and `vkept` be the remaining vertex.
|
||||||
The function returns vertex `vkept` (which can be either `v0` or `v1`).
|
The function returns vertex `vkept` (which can be either `v0` or `v1`).
|
||||||
|
|
||||||
\image html general_collapse.png
|
\image html general_collapse.png
|
||||||
|
\image latex general_collapse.png
|
||||||
<center><b>
|
<center><b>
|
||||||
General case. The following mesh elements are removed: triangles (\f$ v0,v1,vL\f$) and (\f$ v1,v0,vR\f$), edges \f$ (e,e')\f$, \f$ (ep,epo)\f$ and \f$ (ep',epo')\f$, and vertex \f$ v0\f$.
|
General case. The following mesh elements are removed: triangles (\f$ v0,v1,vL\f$) and (\f$ v1,v0,vR\f$), edges \f$ (e,e')\f$, \f$ (ep,epo)\f$ and \f$ (ep',epo')\f$, and vertex \f$ v0\f$.
|
||||||
</b></center>
|
</b></center>
|
||||||
|
|
||||||
\image html border_collapse3.png "When the collapsing edge is not itself a border, but is incident upon a border edge that is removed, the operation is the same as in the general case."
|
\image html border_collapse3.png "When the collapsing edge is not itself a border, but is incident upon a border edge that is removed, the operation is the same as in the general case."
|
||||||
|
\image latex border_collapse3.png "When the collapsing edge is not itself a border, but is incident upon a border edge that is removed, the operation is the same as in the general case."
|
||||||
|
|
||||||
\image html border_collapse2.png
|
\image html border_collapse2.png
|
||||||
|
\image latex border_collapse2.png
|
||||||
<center><b>
|
<center><b>
|
||||||
When the collapsing edge is not itself a border, but is incident upon
|
When the collapsing edge is not itself a border, but is incident upon
|
||||||
a border edge that is <I>not</I> removed, the operation is still the
|
a border edge that is <I>not</I> removed, the operation is still the
|
||||||
|
|
@ -55,6 +58,7 @@ same as in the general case.
|
||||||
</b></center>
|
</b></center>
|
||||||
|
|
||||||
\image html border_collapse1.png
|
\image html border_collapse1.png
|
||||||
|
\image latex border_collapse1.png
|
||||||
<center><b>
|
<center><b>
|
||||||
When the collapsing edge is itself a border, only 1 triangle is
|
When the collapsing edge is itself a border, only 1 triangle is
|
||||||
removed. Thus, even if \f$ (ep',epo')\f$ exists, it's not removed.
|
removed. Thus, even if \f$ (ep',epo')\f$ exists, it's not removed.
|
||||||
|
|
@ -62,6 +66,7 @@ removed. Thus, even if \f$ (ep',epo')\f$ exists, it's not removed.
|
||||||
|
|
||||||
\anchor CollapseFigure5
|
\anchor CollapseFigure5
|
||||||
\image html border_collapse4.png
|
\image html border_collapse4.png
|
||||||
|
\image latex border_collapse4.png
|
||||||
<center><b>
|
<center><b>
|
||||||
This figure illustrates the single exceptional case when removing \f$
|
This figure illustrates the single exceptional case when removing \f$
|
||||||
(v0,v1)\f$ neccesarily implies removing \f$ (v1)\f$, thus \f$ (v0)\f$
|
(v0,v1)\f$ neccesarily implies removing \f$ (v1)\f$, thus \f$ (v0)\f$
|
||||||
|
|
|
||||||
|
|
@ -9,6 +9,7 @@ namespace CGAL {
|
||||||
\authors Fernando Cacciola
|
\authors Fernando Cacciola
|
||||||
|
|
||||||
\image html Illustration-Simplification-ALL.jpg
|
\image html Illustration-Simplification-ALL.jpg
|
||||||
|
\image latex Illustration-Simplification-ALL.jpg
|
||||||
|
|
||||||
\section Surface_mesh_simplificationIntroduction Introduction
|
\section Surface_mesh_simplificationIntroduction Introduction
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -9,6 +9,7 @@ namespace CGAL {
|
||||||
\cgalAutoToc
|
\cgalAutoToc
|
||||||
|
|
||||||
\image html segmented_head.png
|
\image html segmented_head.png
|
||||||
|
\image latex segmented_head.png
|
||||||
|
|
||||||
\section SurfaceMesher_section_intro Introduction
|
\section SurfaceMesher_section_intro Introduction
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -27,9 +27,11 @@ guarantee the combinatorial validity of the resulting data structure.
|
||||||
|
|
||||||
\anchor figtdssplitjoin
|
\anchor figtdssplitjoin
|
||||||
\image html join_split.png "The join and split operations."
|
\image html join_split.png "The join and split operations."
|
||||||
|
\image latex join_split.png "The join and split operations."
|
||||||
|
|
||||||
\anchor figtdsirdeg2
|
\anchor figtdsirdeg2
|
||||||
\image html tds-insert_degree_2.png "Insertion and removal of degree 2 vertices. "
|
\image html tds-insert_degree_2.png "Insertion and removal of degree 2 vertices. "
|
||||||
|
\image latex tds-insert_degree_2.png "Insertion and removal of degree 2 vertices. "
|
||||||
*/
|
*/
|
||||||
template< typename Vb, typename Fb >
|
template< typename Vb, typename Fb >
|
||||||
class Triangulation_data_structure_2 {
|
class Triangulation_data_structure_2 {
|
||||||
|
|
|
||||||
|
|
@ -449,6 +449,7 @@ exchanges the edge incident to
|
||||||
diagonal of the quadrilateral formed by `f` and `f->neighbor(i)`.
|
diagonal of the quadrilateral formed by `f` and `f->neighbor(i)`.
|
||||||
|
|
||||||
\image html Flip.png "Flip"
|
\image html Flip.png "Flip"
|
||||||
|
\image latex Flip.png "Flip"
|
||||||
*/
|
*/
|
||||||
void flip(Face_handle f, int i);
|
void flip(Face_handle f, int i);
|
||||||
|
|
||||||
|
|
@ -499,6 +500,7 @@ and will be the modified face.
|
||||||
\pre %Vertex `v` is a finite vertex with degree 3 and, if specified, face `f` is incident to `v`.
|
\pre %Vertex `v` is a finite vertex with degree 3 and, if specified, face `f` is incident to `v`.
|
||||||
|
|
||||||
\image html Three.png "Insertion"
|
\image html Three.png "Insertion"
|
||||||
|
\image latex Three.png "Insertion"
|
||||||
*/
|
*/
|
||||||
void remove_degree_3(Vertex_handle v, Face_handle f = Face_handle());
|
void remove_degree_3(Vertex_handle v, Face_handle f = Face_handle());
|
||||||
|
|
||||||
|
|
@ -534,6 +536,7 @@ augmented with the vertex `v` itself; this one is placed on the edge `(f, i)`
|
||||||
|
|
||||||
\anchor figtdsdim_down_2
|
\anchor figtdsdim_down_2
|
||||||
\image html tds-dim_down.png "From a two-dimensional data structure to a one-dimensional data structure."
|
\image html tds-dim_down.png "From a two-dimensional data structure to a one-dimensional data structure."
|
||||||
|
\image latex tds-dim_down.png "From a two-dimensional data structure to a one-dimensional data structure."
|
||||||
|
|
||||||
*/
|
*/
|
||||||
void dim_down(Face_handle f, int i);
|
void dim_down(Face_handle f, int i);
|
||||||
|
|
|
||||||
|
|
@ -76,6 +76,7 @@ Section \ref Section_2D_Triangulations_Constrained_Plus.
|
||||||
</UL>
|
</UL>
|
||||||
|
|
||||||
\image html constraints.png
|
\image html constraints.png
|
||||||
|
\image latex constraints.png
|
||||||
|
|
||||||
|
|
||||||
\tparam Traits is a geometric traits class and must be a model
|
\tparam Traits is a geometric traits class and must be a model
|
||||||
|
|
|
||||||
|
|
@ -28,6 +28,7 @@ boundary of the convex hull are simpler to deal with.
|
||||||
|
|
||||||
\anchor Triangulation_ref_Fig_infinite_vertex
|
\anchor Triangulation_ref_Fig_infinite_vertex
|
||||||
\image html infinite_vertex.png "The infinite vertex."
|
\image html infinite_vertex.png "The infinite vertex."
|
||||||
|
\image latex infinite_vertex.png "The infinite vertex."
|
||||||
|
|
||||||
The class `Triangulation_2` implements this point of view
|
The class `Triangulation_2` implements this point of view
|
||||||
and therefore considers the triangulation of the set of points
|
and therefore considers the triangulation of the set of points
|
||||||
|
|
@ -69,6 +70,7 @@ of `f` (see Figure \ref Triangulation_ref_Fig_neighbors).
|
||||||
|
|
||||||
\anchor Triangulation_ref_Fig_neighbors
|
\anchor Triangulation_ref_Fig_neighbors
|
||||||
\image html neighbors.png "Vertices and neighbors."
|
\image html neighbors.png "Vertices and neighbors."
|
||||||
|
\image latex neighbors.png "Vertices and neighbors."
|
||||||
|
|
||||||
\tparam Traits is the geometric traits which must be
|
\tparam Traits is the geometric traits which must be
|
||||||
a model of the concept `TriangulationTraits_2`.
|
a model of the concept `TriangulationTraits_2`.
|
||||||
|
|
@ -614,13 +616,17 @@ triangulation.
|
||||||
|
|
||||||
\anchor Triangulation_ref_Fig_inser1t
|
\anchor Triangulation_ref_Fig_inser1t
|
||||||
\image html insert1.png "Insertion of a point on an edge."
|
\image html insert1.png "Insertion of a point on an edge."
|
||||||
|
\image latex insert1.png "Insertion of a point on an edge."
|
||||||
|
|
||||||
\anchor Triangulation_ref_Fig_insert2
|
\anchor Triangulation_ref_Fig_insert2
|
||||||
\image html insert2.png "Insertion in a face."
|
\image html insert2.png "Insertion in a face."
|
||||||
|
\image latex insert2.png "Insertion in a face."
|
||||||
\anchor Triangulation_ref_Fig_insert3
|
\anchor Triangulation_ref_Fig_insert3
|
||||||
\image html insert3.png "Insertion outside the convex hull."
|
\image html insert3.png "Insertion outside the convex hull."
|
||||||
|
\image latex insert3.png "Insertion outside the convex hull."
|
||||||
\anchor Triangulation_ref_Fig_remove
|
\anchor Triangulation_ref_Fig_remove
|
||||||
\image html remove.png "Removal."
|
\image html remove.png "Removal."
|
||||||
|
\image latex remove.png "Removal."
|
||||||
*/
|
*/
|
||||||
/// @{
|
/// @{
|
||||||
|
|
||||||
|
|
@ -917,6 +923,7 @@ are not enumerated.
|
||||||
|
|
||||||
\anchor Triangulation_ref_Fig_Line_face_circulator
|
\anchor Triangulation_ref_Fig_Line_face_circulator
|
||||||
\image html walk.png "The line face circulator. A line face circulator is invalidated if the face the circulator refers to is changed."
|
\image html walk.png "The line face circulator. A line face circulator is invalidated if the face the circulator refers to is changed."
|
||||||
|
\image latex walk.png "The line face circulator. A line face circulator is invalidated if the face the circulator refers to is changed."
|
||||||
*/
|
*/
|
||||||
/// @{
|
/// @{
|
||||||
|
|
||||||
|
|
@ -1169,6 +1176,7 @@ turning clockwise around vertex `i`
|
||||||
of `f`.
|
of `f`.
|
||||||
|
|
||||||
\image html neighbors.png "Vertices and neighbors."
|
\image html neighbors.png "Vertices and neighbors."
|
||||||
|
\image latex neighbors.png "Vertices and neighbors."
|
||||||
|
|
||||||
\sa `CGAL::Triangulation_2`
|
\sa `CGAL::Triangulation_2`
|
||||||
\sa `TriangulationDSFaceBase_2`
|
\sa `TriangulationDSFaceBase_2`
|
||||||
|
|
|
||||||
|
|
@ -8,6 +8,7 @@ namespace CGAL {
|
||||||
\author Mariette Yvinec
|
\author Mariette Yvinec
|
||||||
|
|
||||||
\image html tr1dt1.png
|
\image html tr1dt1.png
|
||||||
|
\image latex tr1dt1.png
|
||||||
|
|
||||||
This chapter describes the two dimensional triangulations
|
This chapter describes the two dimensional triangulations
|
||||||
of \cgal.
|
of \cgal.
|
||||||
|
|
@ -834,6 +835,7 @@ section \ref Section_2D_Triangulations_Constrained_Plus.
|
||||||
</UL>
|
</UL>
|
||||||
|
|
||||||
\image html constraints.png
|
\image html constraints.png
|
||||||
|
\image latex constraints.png
|
||||||
|
|
||||||
A constrained triangulation is represented in the \cgal library as an
|
A constrained triangulation is represented in the \cgal library as an
|
||||||
object of the class `Constrained_triangulation_2<Traits,Tds,Itag>`.
|
object of the class `Constrained_triangulation_2<Traits,Tds,Itag>`.
|
||||||
|
|
|
||||||
|
|
@ -9,6 +9,7 @@ and neighbors within a cell.
|
||||||
|
|
||||||
\anchor Triangulation3figutils
|
\anchor Triangulation3figutils
|
||||||
\image html utils.png "Operations on indices."
|
\image html utils.png "Operations on indices."
|
||||||
|
\image latex utils.png "Operations on indices."
|
||||||
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -438,6 +438,7 @@ shaded.
|
||||||
|
|
||||||
\anchor TDS3figflips
|
\anchor TDS3figflips
|
||||||
\image html flips.png "Flips."
|
\image html flips.png "Flips."
|
||||||
|
\image latex flips.png "Flips."
|
||||||
|
|
||||||
The following methods guarantee the validity of the resulting 3D
|
The following methods guarantee the validity of the resulting 3D
|
||||||
combinatorial triangulation. Moreover the flip operations do not
|
combinatorial triangulation. Moreover the flip operations do not
|
||||||
|
|
@ -566,6 +567,7 @@ A handle to `v` is returned.
|
||||||
|
|
||||||
\anchor TDS3figtopoinsert_outside_affine_hull
|
\anchor TDS3figtopoinsert_outside_affine_hull
|
||||||
\image html topo-insert_outside_affine_hull.png "insert_increase_dimension (1-dimensional case)."
|
\image html topo-insert_outside_affine_hull.png "insert_increase_dimension (1-dimensional case)."
|
||||||
|
\image latex topo-insert_outside_affine_hull.png "insert_increase_dimension (1-dimensional case)."
|
||||||
|
|
||||||
*/
|
*/
|
||||||
Vertex_handle
|
Vertex_handle
|
||||||
|
|
@ -638,6 +640,7 @@ augmented with the vertex `v` itself, for \f$ d\f$==2,3; this one is placed on t
|
||||||
|
|
||||||
\anchor TDS3dim_down
|
\anchor TDS3dim_down
|
||||||
\image html tds-dim_down.png
|
\image html tds-dim_down.png
|
||||||
|
\image latex tds-dim_down.png
|
||||||
|
|
||||||
<center><b>From an \f$ S^d\f$ data structure to an \f$ S^{d-1}\f$ data
|
<center><b>From an \f$ S^d\f$ data structure to an \f$ S^{d-1}\f$ data
|
||||||
structure (top: \f$ d==2\f$, bottom: \f$ d==3\f$).
|
structure (top: \f$ d==2\f$, bottom: \f$ d==3\f$).
|
||||||
|
|
|
||||||
|
|
@ -220,6 +220,7 @@ Let us remark that \f$ \Pi({p}^{(w)}-{z}^{(w)}) > 0 \f$ is equivalent to `p` lie
|
||||||
|
|
||||||
\anchor Triangulation3figsidedim2
|
\anchor Triangulation3figsidedim2
|
||||||
\image html sidedim2.png side_of_power_circle
|
\image html sidedim2.png side_of_power_circle
|
||||||
|
\image latex sidedim2.png side_of_power_circle
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/// @{
|
/// @{
|
||||||
|
|
|
||||||
|
|
@ -742,6 +742,7 @@ in convex position.
|
||||||
|
|
||||||
\anchor Triangulation3figflips
|
\anchor Triangulation3figflips
|
||||||
\image html flips.png "Flips"
|
\image html flips.png "Flips"
|
||||||
|
\image latex flips.png "Flips"
|
||||||
|
|
||||||
The following methods guarantee the validity of the resulting 3D
|
The following methods guarantee the validity of the resulting 3D
|
||||||
triangulation. Flips for a 2d triangulation are not implemented yet.
|
triangulation. Flips for a 2d triangulation are not implemented yet.
|
||||||
|
|
@ -916,6 +917,7 @@ Figure \ref Triangulation3figinsert_outside_convex_hull.
|
||||||
|
|
||||||
\anchor Triangulation3figinsert_outside_convex_hull
|
\anchor Triangulation3figinsert_outside_convex_hull
|
||||||
\image html insert_outside_convex_hull.png "insert_outside_convex_hull() (2-dimensional case)"
|
\image html insert_outside_convex_hull.png "insert_outside_convex_hull() (2-dimensional case)"
|
||||||
|
\image latex insert_outside_convex_hull.png "insert_outside_convex_hull() (2-dimensional case)"
|
||||||
*/
|
*/
|
||||||
Vertex_handle insert_outside_convex_hull(const Point & p,
|
Vertex_handle insert_outside_convex_hull(const Point & p,
|
||||||
Cell_handle c);
|
Cell_handle c);
|
||||||
|
|
@ -932,6 +934,7 @@ triangulation.
|
||||||
|
|
||||||
\anchor Triangulation3figinsert_outside_affine_hull
|
\anchor Triangulation3figinsert_outside_affine_hull
|
||||||
\image html insert_outside_affine_hull.png "insert_outside_affine_hull() (2-dimensional case)"
|
\image html insert_outside_affine_hull.png "insert_outside_affine_hull() (2-dimensional case)"
|
||||||
|
\image latex insert_outside_affine_hull.png "insert_outside_affine_hull() (2-dimensional case)"
|
||||||
*/
|
*/
|
||||||
Vertex_handle insert_outside_affine_hull(const Point & p);
|
Vertex_handle insert_outside_affine_hull(const Point & p);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -9,6 +9,7 @@ namespace CGAL {
|
||||||
\authors Sylvain Pion and Monique Teillaud
|
\authors Sylvain Pion and Monique Teillaud
|
||||||
|
|
||||||
\image html triangulation3.png
|
\image html triangulation3.png
|
||||||
|
\image latex triangulation3.png
|
||||||
|
|
||||||
The basic 3D-triangulation class of \cgal is primarily designed to
|
The basic 3D-triangulation class of \cgal is primarily designed to
|
||||||
represent the triangulations of a set of points \f$ A\f$ in \f$ \mathbb{R}^3\f$. It is
|
represent the triangulations of a set of points \f$ A\f$ in \f$ \mathbb{R}^3\f$. It is
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue