mirror of https://github.com/CGAL/cgal
Fix some minor glitches in headings
This commit is contained in:
parent
967cc9b616
commit
6615bcee09
|
|
@ -6,7 +6,6 @@ namespace CGAL {
|
|||
\anchor ChapterCombinatorialMap
|
||||
|
||||
\author Guillaume Damiand
|
||||
\autotoc
|
||||
|
||||
# Introduction # {#Combinatorial_mapIntroduction}
|
||||
|
||||
|
|
@ -204,8 +203,7 @@ in a given building from rooms to rooms by traversing doors.
|
|||
|
||||
\todo Solve the problem with the links to linear cell complex package that do not work.
|
||||
|
||||
# Data Structure Presentation #
|
||||
\anchor sec_presentation
|
||||
# Data Structure Presentation # {#sec_presentation}
|
||||
|
||||
In this section, we describe <I>d</I>D combinatorial maps in terms of data
|
||||
structure and operations. Mathematical definitions are provided in
|
||||
|
|
@ -213,8 +211,7 @@ Section \ref sec_definition "Mathematical Definitions", and a package
|
|||
description is given in
|
||||
Section \ref secsoftwaredesign "Software Design".
|
||||
|
||||
## Combinatorial Map and Darts ##
|
||||
\anchor sseccombimapanddarts
|
||||
## Combinatorial Map and Darts ## {#sseccombimapanddarts}
|
||||
|
||||
A <I>d</I>D combinatorial map is a set of darts <I>D</I>. A dart
|
||||
<I>d0</I> is an element that can be <I>linked</I> with <I>d</I>+1
|
||||
|
|
@ -263,8 +260,7 @@ with a little gray segment joining them (for example \f$
|
|||
segments (for example \f$ \beta_3\f$(1)=5).
|
||||
</b></center>
|
||||
|
||||
## Cells as Sets of Darts ##
|
||||
\anchor sseccellsinmap
|
||||
## Cells as Sets of Darts ## {#sseccellsinmap}
|
||||
|
||||
A cell in a <I>d</I>D combinatorial map is implicitly represented by a
|
||||
subset of darts. In this section, we will see how to retrieve all
|
||||
|
|
@ -425,9 +421,7 @@ obtain the set of darts {1,2,3,4}. Intuitively we "forget" \f$
|
|||
\beta_3\f$ and we obtain the set of darts of the facet containing dart
|
||||
1 restricted to the volume containing this dart.
|
||||
|
||||
## How to Associate Information to Cells ##
|
||||
|
||||
\anchor ssecassociateattributes
|
||||
## How to Associate Information to Cells ## {#ssecassociateattributes}
|
||||
|
||||
Combinatorial maps only describe the cells of the subdvision, and all
|
||||
the incidence and adjacency relations between these cells. This is not
|
||||
|
|
@ -478,8 +472,7 @@ containing a color in RGB format. Only three 2-cells of the
|
|||
combinatorial map, among the ten, are associated to a 2-attribute.
|
||||
</b></center>
|
||||
|
||||
## Combinatorial Map Properties ##
|
||||
\anchor sseccombimapvalidity
|
||||
## Combinatorial Map Properties ## {#sseccombimapvalidity}
|
||||
|
||||
There are some conditions that a combinatorial map must satisfy to be
|
||||
valid. Some of them have already been given about the \f$ \beta\f$
|
||||
|
|
@ -587,8 +580,7 @@ example to modify locally a combinatorial map in a really fast way. In
|
|||
such a case, additional operations may be needed to restore these
|
||||
validity conditions.
|
||||
|
||||
# Software Design # {#Combinatorial_mapSoftwarre}
|
||||
\anchor secsoftwaredesign
|
||||
# Software Design # {#secsoftwaredesign}
|
||||
|
||||
The diagram in \ref figure9 "Figure 9" shows the different
|
||||
classes of the package. `Combinatorial_map` is the main class
|
||||
|
|
@ -606,8 +598,7 @@ accessed through <I>handles</I>. A handle is a model of the
|
|||
\anchor figure9
|
||||
\image html Diagramme_class.png "Figure 9: UML diagram of the main classes of the package. k is the number of non void attributes."
|
||||
|
||||
## Combinatorial Maps ##
|
||||
\anchor sseccombinatorialmap
|
||||
## Combinatorial Maps ## {#sseccombinatorialmap}
|
||||
|
||||
The class `Combinatorial_map<d,Items,Alloc>` is a model of the
|
||||
`CombinatorialMap` concept. It has three template parameters standing
|
||||
|
|
@ -653,8 +644,7 @@ for a handle to the <I>i</I>-attributes (and the const version
|
|||
|
||||
\todo Add links to the corresponding types in CombinatorialMap concept asap the types were defined correctly in the concept.
|
||||
|
||||
## Combinatorial Map Items ##
|
||||
\anchor ssecitem
|
||||
## Combinatorial Map Items ## {#ssecitem}
|
||||
|
||||
The `CombinatorialMapItems` concept defines dart and attribute types
|
||||
of a combinatorial map. It contains one inner class named
|
||||
|
|
@ -688,8 +678,7 @@ The class `Combinatorial_map_min_items<d>` is a model of the
|
|||
behaviors. It defines `Dart<d,CMap>` as type of dart, and
|
||||
`Attributes` as empty tuple.
|
||||
|
||||
## Darts ##
|
||||
\anchor ssecdarts
|
||||
## Darts ## {#ssecdarts}
|
||||
|
||||
The class `Dart<d,CMap>`, a model of the `::Dart` concept, defines a
|
||||
<I>d</I>D dart. It has two template parameters standing for the
|
||||
|
|
@ -714,8 +703,7 @@ combinatorial map class. Users can provide their own model of the
|
|||
`::Dart` concept, and pass it to the combinatorial map with the help of
|
||||
a custom item class.
|
||||
|
||||
## Cell Attributes ##
|
||||
\anchor ssecattributes
|
||||
## Cell Attributes ## {#ssecattributes}
|
||||
|
||||
The class `Cell_attribute<CMap,Info_,Tag,OnMerge,OnSplit>`, a model of
|
||||
the `CellAttribute` concept, represents an attribute associated with a
|
||||
|
|
@ -757,8 +745,7 @@ What we said for the dart also holds for the cell attribute. The
|
|||
combinatorial map can be used with any user defined model of the
|
||||
`CellAttribute` concept.
|
||||
|
||||
## Example of Combinatorial Map Definition ##
|
||||
\anchor ssecexampledef
|
||||
## Example of Combinatorial Map Definition ## {#ssecexampledef}
|
||||
|
||||
Here comes an example of two combinatorial map definitions. The first
|
||||
case `Example_cmap4` defines a 4D combinatorial map which uses all the
|
||||
|
|
@ -806,8 +793,7 @@ following, we denote by
|
|||
`dh0`, `dh1`, `dh2` the dart handles for the darts `d0`, `d1`, `d2`,
|
||||
respectively. That is `d0 == *dh0`.
|
||||
|
||||
## Iterating over Orbits, Cells, and Attributes ##
|
||||
\anchor ssecrange
|
||||
## Iterating over Orbits, Cells, and Attributes ## {#ssecrange}
|
||||
|
||||
The combinatorial map offers iterators to traverse the darts of a
|
||||
specific orbit, to traverse all darts of one cell, or one dart per
|
||||
|
|
@ -889,8 +875,7 @@ For each range, there is an associated const range, a model of the
|
|||
`ConstRange` concept. You can find some examples of ranges in Section
|
||||
\ref ssecexample3DCM "A 3D Combinatorial Map".
|
||||
|
||||
## Construction Operations ##
|
||||
\anchor ssecconstruction
|
||||
## Construction Operations ## {#ssecconstruction}
|
||||
|
||||
Several global functions allow to create specific configurations of
|
||||
darts into a combinatorial map. Existing darts in the combinatorial
|
||||
|
|
@ -917,8 +902,7 @@ together by \f$ \beta_2\f$); dimension must be greater or equal than
|
|||
two.
|
||||
</UL>
|
||||
|
||||
## Boolean Marks ##
|
||||
\anchor ssecadvmarks
|
||||
## Boolean Marks ## {#ssecadvmarks}
|
||||
|
||||
\advanced It is often necessary to mark darts, for example to retrieve
|
||||
in <I>O(1)</I> if a given dart was already processed during a specific
|
||||
|
|
@ -960,7 +944,7 @@ to know which darts come from the first and second tetrahedron.
|
|||
|
||||
\cgalexample{Combinatorial_map/map_3_marks.cpp}
|
||||
|
||||
# Modification Operations #
|
||||
# Modification Operations # {#ssecmodoperations}
|
||||
|
||||
Several operations allow to modify a given combinatorial map.
|
||||
There are two main categories of modification operations:
|
||||
|
|
@ -973,8 +957,7 @@ Section \ref sseclinkdarts "Sewing Orbits and Linking Darts");
|
|||
\ref ssecoperations "Removal and Insertion Operations").
|
||||
</UL>
|
||||
|
||||
## Sewing Orbits and Linking Darts ##
|
||||
\anchor sseclinkdarts
|
||||
## Sewing Orbits and Linking Darts ## {#sseclinkdarts}
|
||||
|
||||
The `CombinatorialMap` defines two groups of methods to modify the
|
||||
\f$ \beta\f$ pointers of existing darts.
|
||||
|
|
@ -1148,15 +1131,14 @@ attributes. In \ref figure10 "Figure 10" (Left), if we call
|
|||
no longer valid (for example dart 2 is 3-free and we should have \f$
|
||||
\beta_3\f$(2)=8).
|
||||
|
||||
## Removal and Insertion Operations ##
|
||||
\anchor ssecoperations
|
||||
## Removal and Insertion Operations ## {#ssecoperations}
|
||||
|
||||
The following high level operations are defined as global functions
|
||||
taking an instance `cm` of `CombinatorialMap` as first argument. All
|
||||
these methods ensure that given a valid combinatorial map and a
|
||||
possible operation, the modified combinatorial map is also valid.
|
||||
|
||||
The first one is `remove_cell<CMap,i>(cm,dh0)` which modifies the
|
||||
The first one is `::remove_cell<CMap,i>(cm,dh0)` which modifies the
|
||||
combinatorial map to remove the <I>i</I>-cell containing dart `d0`,
|
||||
with 0\f$ \leq\f$<I>i</I>\f$ \leq\f$<I>d</I>. This operation is
|
||||
possible if <I>i</I>=<I>d</I> or if the given <I>i</I>-cell is
|
||||
|
|
@ -1248,8 +1230,7 @@ ssecexempleoperations "High Level Operations".
|
|||
|
||||
# Examples # {#Combinatorial_mapExamples}
|
||||
|
||||
## A 3D Combinatorial Map ##
|
||||
\anchor ssecexample3DCM
|
||||
## A 3D Combinatorial Map ## {#ssecexample3DCM}
|
||||
|
||||
In this example, a 3-dimensional combinatorial map is constructed. Two
|
||||
combinatorial tetrahedra are created, then the numbers of cells of the
|
||||
|
|
@ -1381,9 +1362,7 @@ The output is:
|
|||
#Darts=24, #0-cells=4, #1-cells=6, #2-cells=4, #3-cells=1, #4-cells=2, #ccs=1, valid=1
|
||||
\endverbatim
|
||||
|
||||
## Combinatorial Map With Attributes ##
|
||||
|
||||
\anchor sseccombimapwithcolor
|
||||
## Combinatorial Map With Attributes ## {#sseccombimapwithcolor}
|
||||
|
||||
In the following example, we illustrate how to specify the
|
||||
2-attributes in a 3D combinatorial map. For that, we define our own
|
||||
|
|
@ -1427,8 +1406,7 @@ contained in 2-attributes in an `int`). At the end, we obtain five
|
|||
2-attributes with 7 as value, five 2-attributes with 13 as value, and
|
||||
four 2-attributes having respectively 2, 2, 5 and 10 as values.
|
||||
|
||||
# Mathematical Definitions # {#Combinatorial_mapMathematical}
|
||||
\anchor sec_definition
|
||||
# Mathematical Definitions # {#sec_definition}
|
||||
|
||||
The initial definition of combinatorial map in any dimension is given
|
||||
in \cite cgal:l-tmbrc-91, \cite l-ndgcm-94. But it allows only to
|
||||
|
|
|
|||
|
|
@ -86,7 +86,7 @@ UML diagram of the main classes of the package. Gray elements come from the \ref
|
|||
</b></center>
|
||||
|
||||
|
||||
\section sseclinearcellcomplex Linear Cell Complex
|
||||
# Linear Cell Complex # {#sseclinearcellcomplex}
|
||||
|
||||
The `CGAL::Linear_cell_complex<d,d2,LCCTraits,Items,Alloc>` class
|
||||
is a model of the `CombinatorialMap` concept. It guarantees that
|
||||
|
|
@ -192,7 +192,7 @@ linear cell complex. As for a combinatorial map, it is also possible
|
|||
to use low level operations but additional operations may be needed to
|
||||
restore the validity conditions.
|
||||
|
||||
\subsection sseclcclinkdarts Sewing and Unsewing
|
||||
## Sewing and Unsewing ## {#sseclcclinkdarts}
|
||||
|
||||
As explained in the combinatorial map user manual,
|
||||
Section \ref sseclinkdarts, it is possible to glue two <I>i</I>-cells
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@
|
|||
/*!
|
||||
\addtogroup PkgProperty_map
|
||||
|
||||
\PkgDescriptionBegin{CGAL and Boost Property Maps,Pkg:Property_mapSummary}
|
||||
\PkgDescriptionBegin{CGAL and Boost Property Maps,PkgProperty_mapSummary}
|
||||
\PkgPicture{property_map.png}
|
||||
\PkgAuthors{Andreas Fabri and Laurent Saboret}
|
||||
\PkgDesc{This package provides a framework for interfacing \cgal data structures with algorithms expecting Boost Property Maps.}
|
||||
|
|
|
|||
Loading…
Reference in New Issue