| <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> |