217e527cb3
[SVN r53749]
149 lines
3.4 KiB
HTML
149 lines
3.4 KiB
HTML
<HTML>
|
|
<!-- Copyright 2007 Aaron Windsor
|
|
|
|
Distributed under the Boost Software License, Version 1.0.
|
|
(See accompanying file LICENSE_1_0.txt or copy at
|
|
http://www.boost.org/LICENSE_1_0.txt)
|
|
|
|
-->
|
|
<HEAD>
|
|
<TITLE>Planar Face Visitor Concept</TITLE>
|
|
</HEAD>
|
|
<BODY BGCOLOR="#ffffff" LINK="#0000ee" TEXT="#000000" VLINK="#551a8b"
|
|
ALINK="#ff0000">
|
|
<IMG SRC="../../../boost.png"
|
|
ALT="C++ Boost" width="277" height="86">
|
|
|
|
<BR Clear>
|
|
|
|
<H1>Planar Face Visitor Concept</H1>
|
|
|
|
This concept defines the visitor interface for
|
|
<a href="./planar_face_traversal.html"><tt>planar_face_traversal</tt></a>.
|
|
Users can define a class with the Planar Face Visitor interface and pass an
|
|
object of the class to <tt>planar_face_traversal</tt>, thereby augmenting the
|
|
actions taken during the traversal. Note that objects passed to
|
|
<tt>planar_face_traversal</tt> are passed by reference.
|
|
|
|
<h3>Notation</h3>
|
|
|
|
<table>
|
|
<tbody><tr>
|
|
<td><tt>V</tt></td>
|
|
<td>A type that is a model of Planar Face Visitor.</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td><tt>vis</tt></td>
|
|
<td>An object of type <tt>V</tt>.</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td><tt>G</tt></td>
|
|
<td>A type that is a model of Graph.</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td><tt>e</tt></td>
|
|
<td>An object of type <tt>boost::graph_traits<G>::edge_descriptor</tt>.
|
|
</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td><tt>v</tt></td>
|
|
<td>An object of type <tt>boost::graph_traits<G>::vertex_descriptor</tt>.
|
|
</td>
|
|
</tr>
|
|
|
|
</tbody></table>
|
|
|
|
|
|
<h3>Valid Expressions</h3>
|
|
|
|
<table border="1">
|
|
<tbody><tr>
|
|
<th>Name</th><th>Expression</th><th>Return Type</th><th>Description</th>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td>Begin Traversal</td>
|
|
<td><tt>vis.begin_traversal()</tt></td>
|
|
<td><tt>void</tt></td>
|
|
<td>
|
|
This is invoked once per traversal, before the traversal begins.
|
|
</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td>Begin Face</td>
|
|
<td><tt>vis.begin_face()</tt></td>
|
|
<td><tt>void</tt></td>
|
|
<td>
|
|
This is invoked once for each face, before any vertices or edges on the face
|
|
are visited.
|
|
</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td>Next Vertex</td>
|
|
<td><tt>vis.next_vertex(v)</tt></td>
|
|
<td><tt>void</tt></td>
|
|
<td>
|
|
This is invoked when a vertex is encountered while traversing a face.
|
|
</td>
|
|
</tr>
|
|
|
|
|
|
<tr>
|
|
<td>Next Edge</td>
|
|
<td><tt>vis.next_edge(e)</tt></td>
|
|
<td><tt>void</tt></td>
|
|
<td>
|
|
This is invoked when an edge is encountered while traversing a face.
|
|
</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td>End Face</td>
|
|
<td><tt>vis.end_face()</tt></td>
|
|
<td><tt>void</tt></td>
|
|
<td>
|
|
This is invoked once for each face, after all vertices and edges on the face
|
|
are visited.
|
|
</td>
|
|
</tr>
|
|
|
|
|
|
<tr>
|
|
<td>End Traversal</td>
|
|
<td><tt>vis.end_traversal()</tt></td>
|
|
<td><tt>void</tt></td>
|
|
<td>
|
|
This is invoked once per traversal, after the traversal ends.
|
|
</td>
|
|
</tr>
|
|
|
|
</tbody></table>
|
|
|
|
<h3>Models</h3>
|
|
|
|
<ul>
|
|
<li> The file <a href="../../../boost/graph/planar_face_traversal.hpp">
|
|
<tt>planar_face_traversal.hpp</tt></a> contains a class
|
|
<tt>planar_face_traversal_visitor</tt> that implements empty actions for
|
|
all event points of a Planar Face Visitor. In the case where only a few of the
|
|
event points of Planar Face Visitor need to be implemented, one can derive from
|
|
<tt>planar_face_traversal_visitor</tt> and only implement the necessary event
|
|
points. <li> The implementation of <a href="./make_maximal_planar.html">
|
|
<tt>make_maximal_planar</tt></a> uses a <tt>triangulation_visitor</tt> that is
|
|
a model of Planar Face Visitor.
|
|
</li>
|
|
</ul>
|
|
|
|
<br>
|
|
<HR>
|
|
Copyright © 2007 Aaron Windsor (<a href="mailto:aaron.windsor@gmail.com">
|
|
aaron.windsor@gmail.com</a>)
|
|
</BODY>
|
|
</HTML>
|