Additions and changes to the manual and examples

This commit is contained in:
Fernando Cacciola 2006-09-14 05:28:02 +00:00
parent f9ff2cfb36
commit 9c47f756d9
20 changed files with 513 additions and 129 deletions

8
.gitattributes vendored
View File

@ -364,10 +364,11 @@ BGL/doc_tex/BGL/BGL.tex -text
BGL/doc_tex/BGL/PkgDescription.tex -text
BGL/doc_tex/BGL/main.tex -text
BGL/doc_tex/BGL_ref/ConnectedPlanarDirectedGeometricGraph.tex -text
BGL/doc_tex/BGL_ref/DirectedEmbeddedGraph.tex -text
BGL/doc_tex/BGL_ref/EdgeIsBorderPropertyMap.tex -text
BGL/doc_tex/BGL_ref/Edge_is_border_property.tex -text
BGL/doc_tex/BGL_ref/HalfedgeGraph.tex -text
BGL/doc_tex/BGL_ref/Polyhedron_edge_is_border_map.tex -text
BGL/doc_tex/BGL_ref/Polyhedron_edge_weight_map.tex -text
BGL/doc_tex/BGL_ref/Polyhedron_geometric_graph_traits.tex -text
BGL/doc_tex/BGL_ref/Polyhedron_graph_traits.tex -text
BGL/doc_tex/BGL_ref/Polyhedron_graph_traits_const.tex -text
@ -377,6 +378,11 @@ BGL/doc_tex/BGL_ref/Polyhedron_vertex_is_border_map.tex -text
BGL/doc_tex/BGL_ref/Polyhedron_vertex_point_const_map.tex -text
BGL/doc_tex/BGL_ref/Polyhedron_vertex_point_map.tex -text
BGL/doc_tex/BGL_ref/PropertyMap.tex -text
BGL/doc_tex/BGL_ref/VertexIsBorderPropertyMap.tex -text
BGL/doc_tex/BGL_ref/VertexPointPropertyConstMap.tex -text
BGL/doc_tex/BGL_ref/VertexPointPropertyMap.tex -text
BGL/doc_tex/BGL_ref/Vertex_is_border_property.tex -text
BGL/doc_tex/BGL_ref/Vertex_point_property.tex -text
BGL/doc_tex/BGL_ref/intro.tex -text
BGL/doc_tex/BGL_ref/main.tex -text
BGL/include/CGAL/boost/graph/BGL_properties.h -text

View File

@ -86,6 +86,26 @@ Following the BGL interface, the following graph operations are defined as free
different from \ccc{e}.
}
\ccFunction
{template<class Graph>
typename boost::graph_traits<Graph const>::edge_descriptor
next_edge(typename boost::graph_traits<Graph const>::edge_descriptor e, Graph const& g );
}
{Returns the {\em successor} of \ccc{e}. It is alwat
That is, given the edge \ccc{a->b} returns \ccc{b->c} such that \ccc{c != a}.\\
(non-const version ommited)
}
\ccFunction
{template<class Graph>
typename boost::graph_traits<Graph const>::edge_descriptor
prev_edge(typename boost::graph_traits<Graph const>::edge_descriptor e, Graph const& g );
}
{Returns the {\em predecessor} of \ccc{e}.
That is, given the edge \ccc{b->c} returns \ccc{a->b} such that \ccc{c != a}\\
(non-const version ommited)
}
\ccFunction
{template<class Graph>
typename CGAL::Geometric_graph_traits<Graph>::Point const&

View File

@ -0,0 +1,162 @@
%% Copyright (c) 2004 SciSoft. All rights reserved.
%%
%% This file is part of CGAL (www.cgal.org); you may redistribute it under
%% the terms of the Q Public License version 1.0.
%% See the file LICENSE.QPL distributed with CGAL.
%%
%% Licensees holding a valid commercial license may use this file in
%% accordance with the commercial license agreement provided with the software.
%%
%% This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
%% WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
%%
%%
%%
%% Author(s) : Fernando Cacciola <fernando_cacciola@hotmail.com>
\begin{ccRefConcept}{DirectedEmbeddedGraph}
%% \ccHtmlCrossLink{} %% add further rules for cross referencing links
%% \ccHtmlIndexC[concept]{} %% add further index entries
\ccDefinition
The concept \ccRefName\ describes the requirements of a basic
\ccAnchor{http://www.boost.org/libs/graph/doc/graph_concepts.html}{Boost Graph}
commonly found associated to many geometric data structures.
\ccHeading{Requirements}
All edges are {\em directed}, that is, they are defined as an {\em ordered pair}
of vertices.
The graph is geometrically embedded, that is, each vertex is associated with
a generalized point (whether in the plane, the sphere, a surface, etc.)
Vertices and edges are required to have a distinguishible \ccc{null} state
such that any default constructed vertex or edge descriptor is formally
referring to a non-existing vertex or edge.
Since the graph has a geometric embedding, edges are ordered around a vertex
and such ordering can be used to define the following edge relations:
\begin{description}
\item[Opposite]
An edge \ccc{'v: x->y'} is said to be the {\em opposite} of edge \ccc{'u: a->b'}
iff \ccc{a} $==$ \ccc{y} and \ccc{b} $==$ \ccc{c}.
\item[Rotational Succesor]
An edge \ccc{'v: s->q'} is said to be the {\em rotational succesor}
of edge \ccc{'u: s->p'} iff \ccc{v} is the {\em first} edge found by
a counter-clockwise rotation of \ccc{u} around the source vertex \ccc{s}.
\item[Rotational Predeccesor]
An edge \ccc{'v: s->q'} is said to be the {\em rotational predeccesor}
of edge \ccc{'u: s->p'} iff \ccc{v} is the {\em first} edge found by
a clockwise rotation of \ccc{u} around the source vertex \ccc{s}.
\item[Linear Succesor]
An edge \ccc{'v: b->c'} is said to be the {\em linear succesor} of edge
\ccc{'u:a->b'} iff \ccc{v} is the rotational succesor of the opposite
of v.
\item[Linear Predeccesor]
An edge \ccc{'v: b->c'} is said to be the {\em linear predeccesor} of edge
\ccc{'u:a->b'} iff \ccc{v} is the opposite of the rotational predeccesor
of v.
\end{description}
\ccRefines
\ccAnchor{http://www.boost.org/libs/graph/doc/BidirectionalGraph.html}{BidirectionalGraph}\\
\ccAnchor{http://www.boost.org/libs/graph/doc/AdjacencyGraph.html}{AdjacencyGraph}\\
\ccAnchor{http://www.boost.org/libs/graph/doc/EdgeAndVertexListGraph.html}{EdgeAndVertexListGraph}\\
\ccTypes
\ccNestedType{Point}{The type of generalized point representing the geometric embedding of the graph.}{}
\ccOperations
Following the BGL interface, the following graph operations are defined as free rather than member functions.
\ccFunction
{template<class Graph>
typename boost::graph_traits<Graph const>::edge_descriptor
opposite_edge(typename boost::graph_traits<Graph const>::edge_descriptor e, Graph const& g );
}
{Returns the {\em opposite} of e.\\
If the resulting edge does not belong to \ccc{g} the result is a \ccc{null} (default constructed) edge.\\
(non-const version ommited)
}
\ccFunction
{template<class Graph>
typename boost::graph_traits<Graph const>::edge_descriptor
next_edge_ccw(typename boost::graph_traits<Graph const>::edge_descriptor e, Graph const& g );
}
{Returns the {\em rotational succesor} of e.\\
If the resulting edge does not belong to \ccc{g} the result is a \ccc{null} (default constructed) edge.\\
(non-const version ommited)
}
\ccFunction
{template<class Graph>
typename boost::graph_traits<Graph const>::edge_descriptor
next_edge_cw(typename boost::graph_traits<Graph const>::edge_descriptor e, Graph const& g );
}
{Returns the {\em rotational predeccesor} of e.\\
If the resulting edge does not belong to \ccc{g} the result is a \ccc{null} (default constructed) edge.\\
(non-const version ommited)
}
\ccFunction
{template<class Graph>
typename boost::graph_traits<Graph const>::edge_descriptor
next_edge(typename boost::graph_traits<Graph const>::edge_descriptor e, Graph const& g );
}
{Returns the {\em linear succesor} of e.\\
If the resulting edge does not belong to \ccc{g} the result is a \ccc{null} (default constructed) edge.\\
(non-const version ommited)
}
\ccFunction
{template<class Graph>
typename boost::graph_traits<Graph const>::edge_descriptor
prev_edge(typename boost::graph_traits<Graph const>::edge_descriptor e, Graph const& g );
}
{Returns the {\em linear predeccesor} of e.\\
If the resulting edge does not belong to \ccc{g} the result is a \ccc{null} (default constructed) edge.\\
(non-const version ommited)
}
\ccFunction
{template<class Graph>
typename CGAL::Embeeded_graph_traits<Graph>::Point const&
get_point(typename boost::graph_traits<Graph const>::vertex_descriptor v, Graph const& g );
}
{Returns the generalized point embeeding the vertex \ccc{v}.\\
The exact nature of the point depends on the embeeding of the graph and is
specified by the concrete model.}
\ccFunction
{template<class Graph>
void set_point(typename boost::graph_traits<Graph>::vertex_descriptor v
,Graph& g
,typename CGAL::Embeeded_graph_traits<Graph>::Point p
);
}
{Sets \ccc{p} as the embeeding of the vertex \ccc{v}.
}
\ccHasModels
\ccRefIdfierPage{boost::graph_traits< CGAL::Polyhedron_3<Traits> const > }\\
\ccRefIdfierPage{boost::graph_traits< CGAL::Polyhedron_3<Traits> > }\\
\ccRefIdfierPage{CGAL::Embeeded_graph_traits< CGAL::Polyhedron_3<Traits> > }\\
\end{ccRefConcept}
% +------------------------------------------------------------------------+
%%RefPage: end of main body, begin of footer
% EOF
% +------------------------------------------------------------------------+

View File

@ -14,14 +14,14 @@
%%
%% Author(s) : Fernando Cacciola <fernando_cacciola@hotmail.com>
\begin{ccRefConcept}{EdgeIsBorderProperyMap}
\begin{ccRefConcept}{EdgeIsBorderPropertyMap}
%% \ccHtmlCrossLink{} %% add further rules for cross referencing links
%% \ccHtmlIndexC[concept]{} %% add further index entries
\ccDefinition
The concept \ccRefName\ describes the requirements of a \ccc{PropertyMap} that indicates whether a graph edge is a border edge.
The concept \ccRefName\ describes the requirements of a \ccc{PropertyMap} that accesses the \ccc{CGAL::Edge_is_border_property} for a graph.
\ccRefines
\ccc{PropertyMap}
@ -37,7 +37,7 @@ The concept \ccRefName\ describes the requirements of a \ccc{PropertyMap} that i
{The result type of the map operator.}
\ccNestedType{key_type;}
{The type of \ccc{EdgeDescriptor} to which the boolean is-border property is associated.}
{The type of \ccc{edge-descriptor} to which the boolean is-border property is associated.}
\ccCreation
\ccCreationVariable{pm} %% choose variable name
@ -47,10 +47,14 @@ The concept \ccRefName\ describes the requirements of a \ccc{PropertyMap} that i
\ccMethod
{reference operator[]( key_type const& edge ) const;}
{Returns wether the edge is a border edge or not.}
\ccHasModels
\ccRefIdfierPage{CGAL::Polyhedron_edge_is_border_map<Traits> }\\
\ccSeeAlso
\ccRefIdfierPage{CGAL::Edge_is_border_property}
\end{ccRefConcept}

View File

@ -0,0 +1,16 @@
\begin{ccRefClass}{Edge_is_border_property}
\ccDefinition
The class \ccRefName\ is a \ccAnchor{http://www.boost.org/libs/graph/doc/PropertyTag.html}
{PropertyTag} which identifies the {\em is-border} property attached to the Edge of a \ccAnchor{http://www.boost.org/libs/graph/doc/graph_concepts.html}{Boost Graph}.
This property is a boolean value.
\ccInclude{CGAL/boost/graph/BGL_properties.h}
\ccSeeAlso
\ccRefIdfierPage{CGAL::Vertex_is_border_property} \\
\ccRefIdfierPage{CGAL::Vertex_point_property} \\
\end{ccRefClass}

View File

@ -21,27 +21,35 @@
\ccDefinition
The concept \ccRefName\ describes the requirements and constrians of a \ccc{Boost Graph} representing a subset of a \ccc{HalfedgeDS}.
The concept \ccRefName\ describes the requirements of a
\ccAnchor{http://www.boost.org/libs/graph/doc/graph_concepts.html}{Boost Graph}
representing a subset of a \ccc{HalfedgeDS}.
This is a \ccc{ConnectedPlanarDirectedGeometricGraph} with the added requirement that for each directed edge \ccc{s->t} it's opposite edge \ccc{t->s} is part of the graph, that is, the directed edges are neccesarily symmetric. Furthermore, becasue the symmetry is mandatory, there is the added concept of an {\em undirected} edge which corresponds to both symmetric edges as a whole.
The graph is strictly {\em 4-connected}, that is, each vertex has exactly 4 incident edges. Furthermore, it is strictly {\em 2-connected} in each direction, that is, each vertex has 2 {\em incoming} and 2 {\em outgoing} edges, and each incoming edge is followed by one outgoing edge.\\
For every vertex \ccc{b} there are exactly 4 incident edges: \ccc{a->b}, \ccc{b->a}, \ccc{b->c} and \ccc{c->b} with \ccc{c!=a}. Edge \ccc{b->c} is called the {\em successor} of edge \ccc{a->b}, while edge \ccc{a->b} is called the {\em predeccesor} of edge \ccc{b->c}. Each and every edge is required to have a successor and a predecessor, hence the graph must have at least 3 vertices and 6 edges.
This graph is a refinement of \ccc{DirectedEmbeededGraph} with the added requirement that for each directed edge \ccc{s->t} it's opposite edge \ccc{t->s} is part of the graph, that is, the directed edges are neccesarily symmetric. Furthermore, because the symmetry is mandatory, there is the added concept of an {\em undirected} edge which corresponds to a pair of symmetric edges as a whole.
For each pair of {\em symmetric directed edges} \ccc{s->t} and \ccc{t->s}, there is a correspoding {\em undirected} edge \ccc{s-t}. Therefore, the number of undirected edges is exactly half the number of directed edges.
{\em Symmetric directed edges} are NOT called \ccc{halfedges} (as in a \ccc{HalfedgeDS}) because from the point of view of this graph, being a refinement of a BGL graph, each symmetric directed edge is a {\em whole} edge in itself. In other words, the unqualified term edge refers to one and only one symmetric directed edge and not both. The pair of opposing edges, seen as a unity, is an {\em undirected edge}. Such an undirected edge refers to the pair of opposing edges and this concept does not require the existence of a texplicit ype representing that. In other words, there is only one type of edge, hence only one \ccc{edge_descriptor}, which refers to the directed edge. An undirected edge is implicitely addressed by an edge\_descriptor. There is no requirement about which of the directed edges of the pair must be used to refer to an undirected edge.
{\em Symmetric directed edges} are NOT called \ccc{halfedges} (as in a \ccc{HalfedgeDS}) because from the point of view of this graph, being a refinement of a BGL graph, each symmetric directed edge is a {\em whole} edge in itself. In other words, the unqualified term edge refers to one and only one symmetric directed edge and not both. The pair of opposing edges, seen as a unity, is an {\em undirected edge}.
This concept {\em does not} specify the existence of a explicit type representing
an undirected edge. Instead, if specifies that there is only one type of edge,
hence only one \ccc{edge_descriptor}, which refers to the directed edge.
An undirected edge must be implicitely addressed by one single edge\_descriptor,
and there is no requirement about which of the directed edges of the pair must
be used to refer to an undirected edge.
All edges are {\em cyclically connected} and each cycle implicitely corresponds to a \ccc{facet} (or \ccc{face} or \ccc{cell}) of the underlying data structure (with the exception of the cycle(s) corresponding to the border(s) of the underlying DS, which might not have an associated facet).
\ccRefines
\ccc{ConnectedPlanarDirectedGeometricGraph}
\ccc{DirectedEmbeededGraph}
\ccTypes
\ccNestedType{undirected_edge_iterator}{An iterator that iterates over one and only one of the directed edges
in each opposing pair. This iterator accesses a directed edge (as represented by an \ccc{edge_descriptor})
and not an undirected edge since there is no such kind of edge explicitely}{}
\ccNestedType{undirected_edge_iterator}
{An iterator that iterates over one and only one of the directed edges
in each opposing pair. This iterator accesses a directed edge
(as represented by an \ccc{edge_descriptor}) and not an undirected edge
since there is no type explicitely representing it}{}
\ccOperations
@ -49,32 +57,13 @@ Following the BGL interface, the following graph operations are defined as free
\ccFunction
{template<class Graph>
typename boost::graph_traits<Graph const>::edge_descriptor
next_edge(typename boost::graph_traits<Graph const>::edge_descriptor e, Graph const& g );
}
{Returns the {\em successor} of \ccc{e}.
That is, given the edge \ccc{a->b} returns \ccc{b->c} such that \ccc{c != a}.\\
(non-const version ommited)
}
\ccFunction
{template<class Graph>
typename boost::graph_traits<Graph const>::edge_descriptor
prev_edge(typename boost::graph_traits<Graph const>::edge_descriptor e, Graph const& g );
}
{Returns the {\em predecessor} of \ccc{e}.
That is, given the edge \ccc{b->c} returns \ccc{a->b} such that \ccc{c != a}\\
(non-const version ommited)
}
\ccFunction
{template<class Graph>
std::pair < typename CGAL::Halfedge_graph_traits<Graph const>::edge_descriptor
,typename CGAL::Halfedge_graph_traits<Graph const>::edge_descriptor
std::pair < typename CGAL::Halfedge_graph_traits<Graph const>::undirected_edge_iterator
,typename CGAL::Halfedge_graph_traits<Graph const>::undirected_edge_iterator
>
undirected_edges(Graph const& g );
}
{Returns a pair of iterators representing the range [begin,end) of undirected edges in this graph.\\
{Returns a pair of iterators representing the range [begin,end)
of undirected edges in this graph.\\
(non-const version ommited)
}

View File

@ -15,7 +15,7 @@
%% Author(s) : Fernando Cacciola <fernando_cacciola@hotmail.com>
\begin{ccRefClass}{CGAL::Polyhedron_edge_is_border_map<Traits>}
\begin{ccRefClass}{Polyhedron_edge_is_border_map<Traits>}
%% add template arg's if necessary
@ -23,7 +23,7 @@
%% \ccHtmlIndexC[class]{} %% add further index entries
\ccDefinition
The class \ccRefName\ provides a \ccc{Bgl} \ccc{PropertyMap} which indicates if a \ccc{Polyhedron_3} Halfedge is a border edge.
The class \ccRefName\ provides a {\sc Bgl} \ccc{PropertyMap} which indicates if a \ccc{CGAL::Polyhedron_3} halfedge is a border edge.
\ccInclude{CGAL/boost/graph/Polyhedron_BGL_properties.h}
@ -37,8 +37,8 @@ The class \ccRefName\ provides a \ccc{Bgl} \ccc{PropertyMap} which indicates if
\ccTypedef{bool reference;}
{The result type of the map operator.}
\ccTypedef{typename boost::graph_traits< Polyhedron_3<Traits> const>::edge_descriptor key_type;}
{The key type of the property map: A \ccc{Polyhedron_3::Halfedge_const_handle}.}
\ccTypedef{typename boost::graph_traits< CGAL::Polyhedron_3<Traits> const>::edge_descriptor key_type;}
{The key type of the property map: A \ccc{CGAL::Polyhedron_3::Halfedge_const_handle}.}
\ccCreation
\ccCreationVariable{pm} %% choose variable name

View File

@ -15,7 +15,7 @@
%% Author(s) : Fernando Cacciola <fernando_cacciola@hotmail.com>
\begin{ccRefClass}{CGAL::Geometric_graph_traits< CGAL::Polyhedron_3<Traits> >}
\begin{ccRefClass}{Embedded_graph_traits< CGAL::Polyhedron_3<Traits> >}
%% add template arg's if necessary
@ -23,15 +23,18 @@
%% \ccHtmlIndexC[class]{} %% add further index entries
\ccDefinition
The class \ccRefName\ and corresponding free-function overloads provides the specializations for \ccc{Polyhedron_3} required to make it a model of a \ccc{ConnectedPlanarDirectedGeometricGraph}.
The class \ccRefName\ and corresponding free-function overloads
provides the specializations for \ccc{CGAL::Polyhedron_3}
required to make it a model of a \ccc{DirectedEmbeddedGraph}.
\ccInclude{CGAL/boost/graph/Polyhedron_geometric_graph_traits.h}
\ccTypes
\ccTypedef{typename Polyhedron_3::Point_3 Point ;}{The Point type of the vertex (a 3D point in this case).}
\ccTypedef{typename CGAL::Polyhedron_3::Point_3 Point ;}
{The Point type of the vertex (a 3D point in this case).}
\ccIsModel
\ccc{ConnectedPlanarDirectedGeometricGraph}
\ccc{DirectedEmbeededGraph}
\ccSeeAlso

View File

@ -23,32 +23,37 @@
%% \ccHtmlIndexC[class]{} %% add further index entries
\ccDefinition
The class \ccRefName\ and corresponding free-function overloads provides the specializations for \ccc{Polyhedron_3} required to make it a {\em mutable} model of the Boost Graph types: \ccc{BidirectionalGraph}, \ccc{AdjacencyGraph} and \ccc{EdgeAndVertexListGraph}.
The class \ccRefName\ and corresponding free-function overloads provides the specializations for \ccc{Polyhedron_3} required to make it a {\em mutable} model of the \ccAnchor{http://www.boost.org/libs/graph/doc/graph_concepts.html}{Boost Graph}
concepts:\\
\ccAnchor{http://www.boost.org/libs/graph/doc/BidirectionalGraph.html}{BidirectionalGraph}\\
\ccAnchor{http://www.boost.org/libs/graph/doc/AdjacencyGraph.html}{AdjacencyGraph}\\
\ccAnchor{http://www.boost.org/libs/graph/doc/EdgeAndVertexListGraph.html}{EdgeAndVertexListGraph}\\
\ccInclude{CGAL/boost/graph/Polyhedron_graph_traits.h}
\ccTypes
\ccTypedef{typename Polyhedron_3::Vertex_handle vertex_descriptor;}
\ccTypedef{typename CGAL::Polyhedron_3::Vertex_handle vertex_descriptor;}
{The vertex descriptor.}
\ccTypedef{typename Polyhedron_3::Halfedge_handle edge_descriptor;}
\ccTypedef{typename CGAL::Polyhedron_3::Halfedge_handle edge_descriptor;}
{The edges descriptor.}
\ccTypedef{-implementation-defined- vertex_iterator;}{A \ccc{Polyhedron_3::Vertex_iterator}
wrapped to return a \ccc{Polyhedron_3::Vertex_handle} when dereferenced.}
\ccNestedType{vertex_iterator;}{A \ccc{CGAL::Polyhedron_3::Vertex_iterator}
wrapped to return a \ccc{CGAL::Polyhedron_3::Vertex_handle} when dereferenced.}{}
\ccTypedef{-implementation-defined- edge_iterator;}{A \ccc{Polyhedron_3::Halfedge_iterator}
wrapped to return a \ccc{Polyhedron_3::Halfedge_handle} when dereferenced.}
\ccNestedType{edge_iterator;}{A \ccc{CGAL::Polyhedron_3::Halfedge_iterator}
wrapped to return a \ccc{CGAL::Polyhedron_3::Halfedge_handle} when dereferenced.}{}
\ccTypedef{-implementation-defined- in_edge_iterator;}{An edge iterator which only iterates over
\ccNestedType{in_edge_iterator;}{An edge iterator which only iterates over
the incoming \ccc{halfedges} around a vertex. It correspons to a
\ccc{Polyhedron_3::Halfedge_around_vertex_circulator}
wrapped to return an \ccc{Polyhedron_3::Halfege_handle} when dereferenced}
\ccc{CGAL::Polyhedron_3::Halfedge_around_vertex_circulator}
wrapped to return an \ccc{CGAL::Polyhedron_3::Halfege_handle} when dereferenced}{}
\ccTypedef{-implementation-defined- out_edge_iterator;}{An edge iterator which only iterates over
the outgoing halfedges around a vertex. It correspons to a \ccc{Polyhedron_3::Halfedge_around_vertex_circulator}
wrapped to return an \ccc{Polyhedron_3::Halfege_handle} referring to the {\em opposite halfege} when
dereferenced.}
\ccNestedType{out_edge_iterator;}{An edge iterator which only iterates over
the outgoing halfedges around a vertex. It correspons to a
\ccc{CGAL::Polyhedron_3::Halfedge_around_vertex_circulator}
wrapped to return an \ccc{CGAL::Polyhedron_3::Halfege_handle}
referring to the {\em opposite halfege} when dereferenced.}{}
\ccTypedef{boost::directed_tag directed_category;}{Indicates this is a directed graph.}
@ -68,9 +73,9 @@ The class \ccRefName\ and corresponding free-function overloads provides the spe
{The size tye of the adjacency list.}
\ccIsModel
\ccc{BidirectionalGraph}
\ccc{AdjacencyGraph}
\ccc{EdgeAndVertexListGraph}
\ccAnchor{http://www.boost.org/libs/graph/doc/BidirectionalGraph.html}{BidirectionalGraph}\\
\ccAnchor{http://www.boost.org/libs/graph/doc/AdjacencyGraph.html}{AdjacencyGraph}\\
\ccAnchor{http://www.boost.org/libs/graph/doc/EdgeAndVertexListGraph.html}{EdgeAndVertexListGraph}\\
\ccSeeAlso

View File

@ -23,33 +23,38 @@
%% \ccHtmlIndexC[class]{} %% add further index entries
\ccDefinition
The class \ccRefName\ and corresponding free-function overloads provides the specializations for \ccc{Polyhedron_3 const} required to make it a {\em read-only} model of the Boost Graph types: \ccc{BidirectionalGraph}, \ccc{AdjacencyGraph} and \ccc{EdgeAndVertexListGraph}.
The class \ccRefName\ and corresponding free-function overloads provides the specializations for \ccc{CGAL::Polyhedron_3 const} required to make it a {\em read-only} model of the
\ccAnchor{http://www.boost.org/libs/graph/doc/graph_concepts.html}{Boost Graph}
concepts:\\
\ccAnchor{http://www.boost.org/libs/graph/doc/BidirectionalGraph.html}{BidirectionalGraph}\\
\ccAnchor{http://www.boost.org/libs/graph/doc/AdjacencyGraph.html}{AdjacencyGraph}\\
\ccAnchor{http://www.boost.org/libs/graph/doc/EdgeAndVertexListGraph.html}{EdgeAndVertexListGraph}\\
\ccInclude{CGAL/boost/graph/Polyhedron_graph_traits.h}
\ccTypes
\ccTypedef{typename Polyhedron_3::Vertex_const_handle vertex_descriptor;}
\ccTypedef{typename CGAL::Polyhedron_3::Vertex_const_handle vertex_descriptor;}
{The vertex descriptor.}
\ccTypedef{typename Polyhedron_3::Halfedge_const_handle edge_descriptor;}
\ccTypedef{typename CGAL::Polyhedron_3::Halfedge_const_handle edge_descriptor;}
{The edges descriptor.}
\ccTypedef{-implementation-defined- vertex_iterator;}{A \ccc{Polyhedron_3::Vertex_const_iterator}
wrapped to return a \ccc{Polyhedron_3::Vertex_const_handle} when dereferenced.}
\ccNestedType{vertex_iterator;}{A \ccc{CGAL::Polyhedron_3::Vertex_const_iterator}
wrapped to return a \ccc{CGAL::Polyhedron_3::Vertex_const_handle} when dereferenced.}{}
\ccTypedef{-implementation-defined- edge_iterator;}{A \ccc{Polyhedron_3::Halfedge_const_iterator}
wrapped to return a \ccc{Polyhedron_3::Halfedge_const_handle} when dereferenced.}
\ccNestedType{edge_iterator;}{A \ccc{CGAL::Polyhedron_3::Halfedge_const_iterator}
wrapped to return a \ccc{CGAL::Polyhedron_3::Halfedge_const_handle} when dereferenced.}{}
\ccTypedef{-implementation-defined- in_edge_iterator;}{An edge iterator which only iterates over
\ccNestedType{in_edge_iterator;}{An edge iterator which only iterates over
the incoming \ccc{halfedges} around a vertex.\\It correspons to a
\ccc{Polyhedron_3::Halfedge_around_vertex_const_circulator}
wrapped to return an \ccc{Polyhedron_3::Halfege_const_handle} when dereferenced}
\ccc{CGAL::Polyhedron_3::Halfedge_around_vertex_const_circulator}
wrapped to return an \ccc{CGAL::Polyhedron_3::Halfege_const_handle} when dereferenced}{}
\ccTypedef{-implementation-defined- out_edge_iterator;}{An edge iterator which only iterates over
\ccNestedType{out_edge_iterator;}{An edge iterator which only iterates over
the outgoing halfedges around a vertex. It correspons to a
\ccc{Polyhedron_3::Halfedge_around_vertex_const_circulator}
wrapped to return an \ccc{Polyhedron_3::Halfege_const_handle} referring to the
{\em opposite halfege} when dereferenced.}
\ccc{CGAL::Polyhedron_3::Halfedge_around_vertex_const_circulator}
wrapped to return an \ccc{CGAL::Polyhedron_3::Halfege_const_handle} referring to the
{\em opposite halfege} when dereferenced.}{}
\ccTypedef{boost::directed_tag directed_category;}
{Indicates this is a directed graph.}
@ -70,9 +75,9 @@ The class \ccRefName\ and corresponding free-function overloads provides the spe
{The size tye of the adjacency list.}
\ccIsModel
\ccc{BidirectionalGraph}
\ccc{AdjacencyGraph}
\ccc{EdgeAndVertexListGraph}
\ccAnchor{http://www.boost.org/libs/graph/doc/BidirectionalGraph.html}{BidirectionalGraph}\\
\ccAnchor{http://www.boost.org/libs/graph/doc/AdjacencyGraph.html}{AdjacencyGraph}\\
\ccAnchor{http://www.boost.org/libs/graph/doc/EdgeAndVertexListGraph.html}{EdgeAndVertexListGraph}\\
\ccSeeAlso

View File

@ -15,7 +15,7 @@
%% Author(s) : Fernando Cacciola <fernando_cacciola@hotmail.com>
\begin{ccRefClass}{CGAL::Halfedge_graph_traits< CGAL::Polyhedron_3<Traits> >}
\begin{ccRefClass}{Halfedge_graph_traits< CGAL::Polyhedron_3<Traits> >}
%% add template arg's if necessary
@ -23,14 +23,17 @@
%% \ccHtmlIndexC[class]{} %% add further index entries
\ccDefinition
The class \ccRefName\ and corresponding free-function overloads provides the specializations for \ccc{Polyhedron_3} required to make it a \ccc{mutable} model of a \ccc{HalfedgeGraph}.
The class \ccRefName\ and corresponding free-function overloads provides
the specializations for \ccc{CGAL::Polyhedron_3} required to make
it a \ccc{mutable} model of a \ccc{HalfedgeGraph}.
\ccInclude{CGAL/boost/graph/Polyhedron_halfedge_graph_traits.h}
\ccTypes
\ccTypedef{typename -implementation-defined- undirected_edge_iterator;}{An edge iterator that iterates
over 1 out of 2 halfedges, each time pointing to one and only one of the halfedges for each opposing pair.
When dereferenced, it returns a \ccc{Polyhedron_3::Halfedge_const_handle}}
\ccNestedType{undirected_edge_iterator;}{An edge iterator that iterates
over 1 out of 2 halfedges, each time pointing to one and only one of
the halfedges for each opposing pair.\\
When dereferenced, it returns a \ccc{CGAL::Polyhedron_3::Halfedge_const_handle}}
\ccIsModel
\ccc{HalfedgeGraph}

View File

@ -15,7 +15,7 @@
%% Author(s) : Fernando Cacciola <fernando_cacciola@hotmail.com>
\begin{ccRefClass}{CGAL::Halfedge_graph_traits< CGAL::Polyhedron_3<Traits> >}
\begin{ccRefClass}{Halfedge_graph_traits< CGAL::Polyhedron_3<Traits> >}
%% add template arg's if necessary
@ -23,14 +23,15 @@
%% \ccHtmlIndexC[class]{} %% add further index entries
\ccDefinition
The class \ccRefName\ and corresponding free-function overloads provides the specializations for \ccc{Polyhedron_3} required to make it a model of a \ccc{HalfedgeGraph}.
The class \ccRefName\ and corresponding free-function overloads provides the specializations for \ccc{CGAL::Polyhedron_3} required to make it a model of a \ccc{HalfedgeGraph}.
\ccInclude{CGAL/boost/graph/Polyhedron_halfedge_graph_traits.h}
\ccTypes
\ccTypedef{typename -implementation-defined- undirected_edge_iterator;}{An edge iterator that iterates
over 1 out of 2 halfedges, each time pointing to one and only one of the halfedges for each opposing pair.
When dereferenced, it returns a \ccc{Polyhedron_3::Halfedge_handle}}
\ccNestedType{undirected_edge_iterator;}{An edge iterator that iterates
over 1 out of 2 halfedges, each time pointing to one and only one
of the halfedges for each opposing pair.\\
When dereferenced, it returns a \ccc{CGAL::Polyhedron_3::Halfedge_handle}}
\ccIsModel
\ccc{HalfedgeGraph}

View File

@ -33,6 +33,8 @@ The concept \ccRefName\ describes the requirements of a property map of the
\ccNestedType{key_type} {The key type of the map operator.}{}
\ccCreation
\ccCreationVariable{pm} %% choose variable name
\ccOperations
@ -40,20 +42,10 @@ The concept \ccRefName\ describes the requirements of a property map of the
{reference operator[]( key_type const& key ) const;}
{Returns the property associated with the given \ccc{key}.}
This \cgal\ package defines the following predefined property tags (not found in the {\sc Bgl}):
\begin{enumerate}
\item \ccc{edge_is_border_t}
\item \ccc{vertex_is_border_t}
\item \ccc{vertex_point_t}
\end{enumerate}
Defined in:
\ccInclude{CGAL/boost/graph/BGL_properties.h}
\ccHasModels
\ccRefIdfierPage{CGAL::Edge_is_border_property} \\
\ccRefIdfierPage{CGAL::Vertex_is_border_property} \\
\ccRefIdfierPage{CGAL::Vertex_point_property} \\
\ccRefIdfierPage{CGAL::Polyhedron_edge_weight_map<Traits> }\\
\ccRefIdfierPage{CGAL::Polyhedron_edge_is_border_map<Traits> }\\
\ccRefIdfierPage{CGAL::Polyhedron_vertex_is_border_map<Traits> }\\

View File

@ -14,48 +14,49 @@
%%
%% Author(s) : Fernando Cacciola <fernando_cacciola@hotmail.com>
\begin{ccRefClass}{CGAL::Polyhedron_edge_weight_map<Traits>}
%% add template arg's if necessary
\begin{ccRefConcept}{VertexIsBorderPropertyMap}
%% \ccHtmlCrossLink{} %% add further rules for cross referencing links
%% \ccHtmlIndexC[class]{} %% add further index entries
%% \ccHtmlIndexC[concept]{} %% add further index entries
\ccDefinition
The class \ccRefName\ provides a \ccc{Bgl} \ccc{PropertyMap} for the weight of a \ccc{Polyhedron_3} Halfedge.
\ccInclude{CGAL/boost/graph/Polyhedron_BGL_properties.h}
The concept \ccRefName\ describes the requirements of a \ccc{PropertyMap} that accesses
the \ccc{CGAL::Vertex_is_border_property} for a graph.
\ccRefines
\ccc{PropertyMap}
\ccTypes
\ccTypedef{boost::readable_property_map_tag category;}
{Indicates that this property is read-only.}
\ccTypedef{double value_type;}
\ccTypedef{bool value_type;}
{The type of the property.}
\ccTypedef{double reference;}
\ccTypedef{bool reference;}
{The result type of the map operator.}
\ccTypedef{typename boost::graph_traits< Polyhedron_3<Traits> const>::edge_descriptor key_type;}
{The key type of the property map: A \ccc{Polyhedron_3::Halfedge_const_handle}.}
\ccNestedType{key_type;}
{The type of \ccc{vertex-descriptor} to which the boolean is-border property is associated.}
\ccCreation
\ccCreationVariable{pm} %% choose variable name
\ccConstructor{CGAL::Polyhedron_edge_weight_map<Traits>( CGAL::Polyhedron_3<Traits> const& poly); }
{Initializes an instance storing a const pointer to the polyhedron \ccc{poly}.}
\ccOperations
\ccMethod
{reference operator[]( key_type const& edge ) const;}
{Returns the weight of the edge as the squared distance between the points of the source and target vertices.}
\ccIsModel
\ccc{ProperyMap}
{Returns wether the vertex is a border or not.}
\ccHasModels
\ccRefIdfierPage{CGAL::Polyhedron_vertex_is_border_map<Traits> }\\
\ccSeeAlso
\ccRefIdfierPage{CGAL::Vertex_is_border_property}
\end{ccRefConcept}
\end{ccRefClass}
% +------------------------------------------------------------------------+
%%RefPage: end of main body, begin of footer

View File

@ -0,0 +1,66 @@
%% Copyright (c) 2004 SciSoft. All rights reserved.
%%
%% This file is part of CGAL (www.cgal.org); you may redistribute it under
%% the terms of the Q Public License version 1.0.
%% See the file LICENSE.QPL distributed with CGAL.
%%
%% Licensees holding a valid commercial license may use this file in
%% accordance with the commercial license agreement provided with the software.
%%
%% This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
%% WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
%%
%%
%%
%% Author(s) : Fernando Cacciola <fernando_cacciola@hotmail.com>
\begin{ccRefConcept}{VertexPointPropertyConstMap}
%% \ccHtmlCrossLink{} %% add further rules for cross referencing links
%% \ccHtmlIndexC[concept]{} %% add further index entries
\ccDefinition
The concept \ccRefName\ describes the requirements of a \ccc{PropertyMap}
providing read-only access to the geometric embedding of a graph vertex
(given as the \ccc{CGAL::Vertex_point_property}).
\ccRefines
\ccc{PropertyMap}
\ccTypes
\ccTypedef{boost::readable_property_map_tag category;}
{Indicates that this property is read-only.}
\ccNestedType{value_type;}
{The point type which represent the embeeding of a vertex.}
\ccTypedef{value_type const& reference;}
{The result type of the map operator.}
\ccNestedType{key_type;}
{The type of \ccc{vertex-descriptor} whose embedding is accessed.}
\ccCreation
\ccCreationVariable{pm} %% choose variable name
\ccOperations
\ccMethod
{reference operator[]( key_type const& edge ) const;}
{Returns the geometric embedding of the vertex \ccc{v}.}
\ccHasModels
\ccRefIdfierPage{CGAL::Polyhedron_vertex_point_const_map<Traits> }\\
\ccSeeAlso
\ccRefIdfierPage{CGAL::Vertex_point_property}
\end{ccRefConcept}
% +------------------------------------------------------------------------+
%%RefPage: end of main body, begin of footer
% EOF
% +------------------------------------------------------------------------+

View File

@ -0,0 +1,66 @@
%% Copyright (c) 2004 SciSoft. All rights reserved.
%%
%% This file is part of CGAL (www.cgal.org); you may redistribute it under
%% the terms of the Q Public License version 1.0.
%% See the file LICENSE.QPL distributed with CGAL.
%%
%% Licensees holding a valid commercial license may use this file in
%% accordance with the commercial license agreement provided with the software.
%%
%% This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
%% WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
%%
%%
%%
%% Author(s) : Fernando Cacciola <fernando_cacciola@hotmail.com>
\begin{ccRefConcept}{VertexPointPropertyMap}
%% \ccHtmlCrossLink{} %% add further rules for cross referencing links
%% \ccHtmlIndexC[concept]{} %% add further index entries
\ccDefinition
The concept \ccRefName\ describes the requirements of a \ccc{PropertyMap}
providing mutable access to the geometric embedding of a graph vertex
(given as the \ccc{CGAL::Vertex_point_property}).
\ccRefines
\ccc{PropertyMap}
\ccTypes
\ccTypedef{boost::lvalue_property_map_tag category;}
{Indicates that this property is an lvalue (it can be mutated).}
\ccNestedType{value_type;}
{The point type which represent the embeeding of a vertex.}
\ccTypedef{value_type& reference;}
{The result type of the map operator.}
\ccNestedType{key_type;}
{The type of \ccc{vertex-descriptor} whose embedding is accessed.}
\ccCreation
\ccCreationVariable{pm} %% choose variable name
\ccOperations
\ccMethod
{reference operator[]( key_type const& edge ) const;}
{Returns the geometric embedding of the vertex \ccc{v}.}
\ccHasModels
\ccRefIdfierPage{CGAL::Polyhedron_vertex_point_map<Traits> }\\
\ccSeeAlso
\ccRefIdfierPage{CGAL::Vertex_point_property}
\end{ccRefConcept}
% +------------------------------------------------------------------------+
%%RefPage: end of main body, begin of footer
% EOF
% +------------------------------------------------------------------------+

View File

@ -0,0 +1,16 @@
\begin{ccRefClass}{Vertex_is_border_property}
\ccDefinition
The class \ccRefName\ is a \ccAnchor{http://www.boost.org/libs/graph/doc/PropertyTag.html}
{PropertyTag} which identifies the {\em is-border} property attached to the Vertex of a \ccAnchor{http://www.boost.org/libs/graph/doc/graph_concepts.html}{Boost Graph}.
This property is a boolean value.
\ccInclude{CGAL/boost/graph/BGL_properties.h}
\ccSeeAlso
\ccRefIdfierPage{CGAL::Edge_is_border_property} \\
\ccRefIdfierPage{CGAL::Vertex_point_property} \\
\end{ccRefClass}

View File

@ -0,0 +1,16 @@
\begin{ccRefClass}{Vertex_point_property}
\ccDefinition
The class \ccRefName\ is a \ccAnchor{http://www.boost.org/libs/graph/doc/PropertyTag.html}
{PropertyTag} which identifies the {\em is-border} property attached to a \ccc{DirectedEmbeddedGraph}
Edge.
\ccInclude{CGAL/boost/graph/BGL_properties.h}
\ccSeeAlso
\ccRefIdfierPage{CGAL::Vertex_is_border_property} \\
\ccRefIdfierPage{CGAL::Vertex_point_property} \\
\end{ccRefClass}

View File

@ -22,17 +22,23 @@ The packages provides a framework for interfacing \cgal\ data structures as \ccc
\section{Classified Reference Pages}
\ccHeading{Concepts}
\ccRefConceptPage{ConnectedPlanarDirectedGeometricGraph} \\
\ccRefConceptPage{DirectedEmbeddedGraph} \\
\ccRefConceptPage{HalfedgeGraph} \\
\ccRefConceptPage{PropertyMap} \\
\ccRefConceptPage{EdgeIsBorderPropertyMap} \\
\ccRefConceptPage{VertexIsBorderPropertyMap} \\
\ccRefConceptPage{VertexPointPropertyConstMap} \\
\ccRefConceptPage{VertexPointPropertyMap} \\
\ccHeading{Classes}
\ccRefIdfierPage{CGAL::Edge_is_border_property}\\
\ccRefIdfierPage{CGAL::Vertex_is_border_property}\\
\ccRefIdfierPage{CGAL::Vertex_point_property}\\
\ccRefIdfierPage{boost::graph_traits< CGAL::Polyhedron_3<Traits> const > }\\
\ccRefIdfierPage{boost::graph_traits< CGAL::Polyhedron_3<Traits> > }\\
\ccRefIdfierPage{CGAL::Geometric_graph_traits< CGAL::Polyhedron_3<Traits> > }\\
\ccRefIdfierPage{CGAL::Embedded_graph_traits< CGAL::Polyhedron_3<Traits> > }\\
\ccRefIdfierPage{CGAL::Halfedge_graph_traits< CGAL::Polyhedron_3<Traits> const > }\\
\ccRefIdfierPage{CGAL::Halfedge_graph_traits< CGAL::Polyhedron_3<Traits> > }\\
\ccRefIdfierPage{CGAL::Polyhedron_edge_weight_map<Traits> }\\
\ccRefIdfierPage{CGAL::Polyhedron_edge_is_border_map<Traits> }\\
\ccRefIdfierPage{CGAL::Polyhedron_vertex_is_border_map<Traits> }\\
\ccRefIdfierPage{CGAL::Polyhedron_vertex_point_const_map<Traits> }\\

View File

@ -6,15 +6,22 @@
% +------------------------------------------------------------------------+
% alfabatisch
\input{BGL_ref/intro.tex}
\input{BGL_ref/ConnectedPlanarDirectedGeometricGraph.tex}
\input{BGL_ref/DirectedEmbeddedGraph.tex}
\input{BGL_ref/HalfedgeGraph.tex}
\input{BGL_ref/PropertyMap.tex}
\input{BGL_ref/EdgeIsBorderPropertyMap.tex}
\input{BGL_ref/VertexIsBorderPropertyMap.tex}
\input{BGL_ref/VertexPointPropertyConstMap.tex}
\input{BGL_ref/VertexPointPropertyMap.tex}
\input{BGL_ref/Edge_is_border_property.tex}
\input{BGL_ref/Vertex_is_border_property.tex}
\input{BGL_ref/Vertex_point_property.tex}
\input{BGL_ref/Polyhedron_graph_traits.tex}
\input{BGL_ref/Polyhedron_graph_traits_const.tex}
\input{BGL_ref/Polyhedron_geometric_graph_traits.tex}
\input{BGL_ref/Polyhedron_halfedge_graph_traits.tex}
\input{BGL_ref/Polyhedron_halfedge_graph_traits_const.tex}
\input{BGL_ref/Polyhedron_edge_weight_map.tex}
\input{BGL_ref/Polyhedron_edge_is_border_map.tex}
\input{BGL_ref/Polyhedron_vertex_is_border_map.tex}
\input{BGL_ref/Polyhedron_vertex_point_const_map.tex}