Boost logo

Boost-Commit :

From: hervebronnimann_at_[hidden]
Date: 2007-06-28 02:43:09


Author: hervebronnimann
Date: 2007-06-28 02:43:06 EDT (Thu, 28 Jun 2007)
New Revision: 7295
URL: http://svn.boost.org/trac/boost/changeset/7295

Log:
Major clean up of the documentation, script, providing skeletton for main page,
etc. Doxygen looks really nice now.

Text files modified:
   sandbox/SOC/2007/geometry/libs/hdstl/dev/hds_concepts.hpp | 127 +++++++++++++--
   sandbox/SOC/2007/geometry/libs/hdstl/dev/hds_concepts/backward_hds_concept.hpp | 10
   sandbox/SOC/2007/geometry/libs/hdstl/dev/hds_concepts/bidirectional_hds_concept.hpp | 12
   sandbox/SOC/2007/geometry/libs/hdstl/dev/hds_concepts/facet_hds_concept.hpp | 13
   sandbox/SOC/2007/geometry/libs/hdstl/dev/hds_concepts/facet_list_hds_concept.hpp | 12
   sandbox/SOC/2007/geometry/libs/hdstl/dev/hds_concepts/forward_hds_concept.hpp | 12
   sandbox/SOC/2007/geometry/libs/hdstl/dev/hds_concepts/halfedge_list_hds_concept.hpp | 12
   sandbox/SOC/2007/geometry/libs/hdstl/dev/hds_concepts/hds_concept.hpp | 10
   sandbox/SOC/2007/geometry/libs/hdstl/dev/hds_concepts/mutable_backward_hds_concept.hpp | 12
   sandbox/SOC/2007/geometry/libs/hdstl/dev/hds_concepts/mutable_bidirectional_hds_concept.hpp | 12
   sandbox/SOC/2007/geometry/libs/hdstl/dev/hds_concepts/mutable_facet_hds_concept.hpp | 12
   sandbox/SOC/2007/geometry/libs/hdstl/dev/hds_concepts/mutable_forward_hds_concept.hpp | 12
   sandbox/SOC/2007/geometry/libs/hdstl/dev/hds_concepts/mutable_hds_concept.hpp | 10
   sandbox/SOC/2007/geometry/libs/hdstl/dev/hds_concepts/mutable_vertex_hds_concept.hpp | 12
   sandbox/SOC/2007/geometry/libs/hdstl/dev/hds_concepts/vertex_hds_concept.hpp | 13
   sandbox/SOC/2007/geometry/libs/hdstl/dev/hds_concepts/vertex_list_hds_concept.hpp | 12
   sandbox/SOC/2007/geometry/libs/hdstl/dev/hds_traits.hpp | 333 +++++++++++++++++++++++++++------------
   sandbox/SOC/2007/geometry/libs/hdstl/doc/hdstl.conf | 4
   sandbox/SOC/2007/geometry/libs/hdstl/tools/doc.pl | 54 +++++-
   19 files changed, 490 insertions(+), 204 deletions(-)

Modified: sandbox/SOC/2007/geometry/libs/hdstl/dev/hds_concepts.hpp
==============================================================================
--- sandbox/SOC/2007/geometry/libs/hdstl/dev/hds_concepts.hpp (original)
+++ sandbox/SOC/2007/geometry/libs/hdstl/dev/hds_concepts.hpp 2007-06-28 02:43:06 EDT (Thu, 28 Jun 2007)
@@ -2,21 +2,115 @@
 //
 //@PURPOSE: Provides concept checking classes for HDS-related concepts.
 //
-///HDS Introduction
-///----------------
-// The Halfedge Data Structure Template Library, or HDSTL, is a C++ library of
-// edge-based data structures and algorithms to represent two-dimensional
-// combinatorial structures.Halfedge data structures represent two-dimensional
-// combinatorial structures like planar structures (including planar graphs,
-// triangulations, Voronoi diagrams), and 2-manifolds (like polyhedral
-// boundaries, 2D surfaces).
-
-
-
-//
 ///HDS Concepts
 ///------------
-// FILLME
+// This library defines the following concepts:
+//
+// - [hdsconcept] is the basic concept, which all the other HDS concepts refine.
+// Requires a halfedge descriptor type and access to the opposite halfedge.
+//
+// - [forwardhdsconcept] refines the [hdsconcept], and requires access to the next
+// halfedge along a facet boundary, at source, or at target. All three
+// halfedges are linked by algebraic relations involving opposite, so having
+// one is like having all three.
+//
+// - [backwardhdsconcept] refines the [hdsconcept], and requires access to the
+// previous halfedge along a facet boundary, at source, or at target. All
+// three halfedges are linked by algebraic relations involving opposite, so
+// having one is like having all three.
+//
+// - [bidirectionalhdsconcept] is a combination of the [forwardhdsconcept] and
+// of the [backwardhdSconcept], with no extra requirements.
+//
+// - [facethdsconcept] requires, in addition to the [hdsconcept], a facet
+// descriptor and access to the facet incident to a given halfedge.
+//
+// - [vertexhdsconcept] requires, in addition to the [hdsconcept], a vertex
+// descriptor and access to the vertex incident to a given halfedge, either at
+// source or at target.
+//
+// - [halfedgelisthdsconcept] requires, in addition to [hdsconcept], a halfedge
+// iterator, and methods for accessing the range of all halfedges in a given
+// HDS. Note that there are no pre-defined order for these halfedges.
+//
+// - [facetlisthdsconcept] requires, in addition to [facethdsconcept], a
+// halfedge iterator, and methods for accessing the range of all facets in a
+// given HDS. Note that there are no pre-defined order for these facets.
+//
+// - [vertexlisthdsconcept] requires, in addition to [vertexhdsconcept], a
+// vertex iterator, and methods for accessing the range of all vertices in a
+// given HDS. Note that there are no pre-defined order for these vertices.
+//
+// In addition to these concepts, this library also defines mutable concepts
+// mirroring each one of the above concepts:
+//
+// - [mutablehdsconcept] refines [hdsconcept], and requires the ability to
+// create a new edge (pair of opposite halfedges), and to remove such a pair.
+//
+// - [mutableforwardhdsconcept] refines the [mutablehdsconcept] and the
+// [forwardhdsconcept], and requires the ability to set the next halfedge
+// along a facet boundary, at source, or at target.
+//
+// - [mutablebackwardhdsconcept] refines the [mutablehdsconcept] and the
+// [backwardhdsconcept], and requires the ability to set the
+// previous halfedge along a facet boundary, at source, or at target.
+//
+// - [mutablebidirectionalhdsconcept] is a combination of the [mutableforwardhdsconcept] and
+// of the [mutablebackwardhdSconcept], with no extra requirements.
+//
+// - [mutablefacethdsconcept] requires, in addition to the [mutablehdsconcept]
+// and the [facethdsconcept], the ability to set the facet of a halfedge to a
+// given facet descriptor.
+//
+// - [mutablevertexhdsconcept] requires, in addition to the [mutablehdsconcept]
+// and the [vertexdsconcept], the ability to set the source or target of a
+// halfedge to a given vertex descriptor.
+//
+// The following concept hierarchy gives a description of the relation ships
+// between these concepts. The arrows '-->' describe a *isA* relationship
+// between these concepts, that is, there is an arrow from *B* to *A* when a
+// concept *B* refines another concept *A*.
+//..
+// ,---------------------. ,------------------------. ,----------------------.
+// | FacetListHDSConcept | | HalfedgeListHDSConcept | | VertexListHDSConcept |
+// `---------------------' `------------------------' `----------------------'
+// | | |
+// v | v
+// ,-----------------. | ,------------------.
+// | FacetHDSConcept | | | VertexHDSConcept |
+// `-----------------' | `------------------'
+// | | |
+// | | |
+// | ,-------------------------. |
+// | | BidirectionalHDSConcept | |
+// | `-------------------------' |
+// | | | | |
+// | v | v |
+// | ,-------------------. | ,-------------------. |
+// | | BackwardHDSConcept | | | ForwardHDSConcept | |
+// | `-------------------' | `-------------------' |
+// | | | | |
+// \ v v v |
+// \ ,-------------. /
+// `----------------> | HDSConcept | <-----------------'
+// `-------------'
+//..
+// In addition, there is an identical hierarchy among the mutable concepts,
+// with horizontal arrows between mutable and non-mutable. That is, there is
+// an arrow from *MutableB* to *MutableA* iff there is an arrow from *B* to
+// *A*, and there always is an arrow from *MutableA* to *A*. As an example,
+// the sub-lattice involving the 'HDS', 'ForwardHDS', 'MutableHDS', and
+// 'MutableForwardHDS' concepts looks like this:
+//..
+// . ,-------------------. ,--------------------------.
+// . | ForwardHDSConcept |<-------| MutableForwardHDSConcept |
+// . `-------------------' `--------------------------'
+// . . | . |
+// v v v . v .
+// ,-------------. < . . ,-------------------. .
+// . . >| HDSConcept | <-------| MutableHDSConcept |< . . . .
+// `-------------' `-------------------'
+//..
 
 #ifndef HDSTL_HDS_CONCEPTS_HPP
 #define HDSTL_HDS_CONCEPTS_HPP
@@ -25,17 +119,16 @@
 #include <hds_concepts/forward_hds_concept.hpp>
 #include <hds_concepts/backward_hds_concept.hpp>
 #include <hds_concepts/bidirectional_hds_concept.hpp>
-#include <hds_concepts/vertex_hds_concept.hpp>
 #include <hds_concepts/facet_hds_concept.hpp>
-#include <hds_concepts/mutable_hds_concept.hpp>
+#include <hds_concepts/vertex_hds_concept.hpp>
+#include <hds_concepts/halfedge_list_hds_concept.hpp>
 #include <hds_concepts/vertex_list_hds_concept.hpp>
 #include <hds_concepts/facet_list_hds_concept.hpp>
-#include <hds_concepts/halfedge_list_hds_concept.hpp>
 #include <hds_concepts/mutable_hds_concept.hpp>
 #include <hds_concepts/mutable_forward_hds_concept.hpp>
 #include <hds_concepts/mutable_backward_hds_concept.hpp>
 #include <hds_concepts/mutable_bidirectional_hds_concept.hpp>
-#include <hds_concepts/mutable_vertex_hds_concept.hpp>
 #include <hds_concepts/mutable_facet_hds_concept.hpp>
+#include <hds_concepts/mutable_vertex_hds_concept.hpp>
 
 #endif

Modified: sandbox/SOC/2007/geometry/libs/hdstl/dev/hds_concepts/backward_hds_concept.hpp
==============================================================================
--- sandbox/SOC/2007/geometry/libs/hdstl/dev/hds_concepts/backward_hds_concept.hpp (original)
+++ sandbox/SOC/2007/geometry/libs/hdstl/dev/hds_concepts/backward_hds_concept.hpp 2007-06-28 02:43:06 EDT (Thu, 28 Jun 2007)
@@ -15,7 +15,7 @@
 // argument is a model of the HDS concept described on the page
 // [backwardhds].
 //
-//@CONCEPT: [backwardhds] Backward HDS concept
+//@CONCEPT: [backwardhdsconcept] Backward HDS concept
 //
 ///Definition
 ///----------
@@ -130,6 +130,7 @@
 #ifndef BOOST_HDSTL_CONCEPTS_BACKWARD_HDS_CONCEPT_HPP
 #define BOOST_HDSTL_CONCEPTS_BACKWARD_HDS_CONCEPT_HPP 1
 
+namespace boost {
 namespace hdstl{
 namespace concepts{
 
@@ -147,12 +148,12 @@
         // inside a class definition body, should trigger a compile-time error
         // if the type HDS does not model the 'BackwardHDSConcept'.
 
- // TYPES
+ // OPAQUE TYPES
         typedef typename hds_traits<HDS>::halfedge_descriptor halfedge_descriptor;
         typedef typename hds_traits<HDS>::traversal_category traversal_category;
         typedef typename hds_traits<HDS>::backward_category backward_category;
 
- // MANIPULATORS
+ // OPAQUE MANIPULATORS
         void constraints()
             // Check that the 'HDS' template parameter satisfies all the
             // constraints of 'BackwardHDSConcept' on page
@@ -174,7 +175,7 @@
             const_constraints(hds);
         }
 
- // ACCESSORS
+ // OPAQUE ACCESSORS
         void const_constraints(HDS const& hds)
             // Check that the non-modifiable 'HDS' template parameters
             // satisfies all the constraints of 'BackwardHDSConcept'.
@@ -193,5 +194,6 @@
 
 } // close namespace concepts
 } // close namespace hdstl
+} // close namespace boost
 
 #endif

Modified: sandbox/SOC/2007/geometry/libs/hdstl/dev/hds_concepts/bidirectional_hds_concept.hpp
==============================================================================
--- sandbox/SOC/2007/geometry/libs/hdstl/dev/hds_concepts/bidirectional_hds_concept.hpp (original)
+++ sandbox/SOC/2007/geometry/libs/hdstl/dev/hds_concepts/bidirectional_hds_concept.hpp 2007-06-28 02:43:06 EDT (Thu, 28 Jun 2007)
@@ -14,9 +14,9 @@
 //..
 // inside a class body, checks whether the type given as template
 // argument is a model of the HDS concept described on the page
-// [bidirectionalhds].
+// [bidirectionalhdsconcept].
 //
-//@CONCEPT: [bidirectionalhds] Bidirectional HDS concept
+//@CONCEPT: [bidirectionalhdsconcept] Bidirectional HDS concept
 //
 ///Definition
 ///-----------
@@ -100,6 +100,7 @@
 
 #include <boost/concepts.h>
 
+namespace boost {
 namespace hdstl{
 namespace concepts{
    
@@ -117,7 +118,7 @@
         // inside a class definition body, should trigger a compile-time error
         // if the type HDS does not model the 'BidirectionalHDSConcept'.
 
- // TYPES
+ // OPAQUE TYPES
         typedef typename hds_traits<HDS>::halfedge_descriptor halfedge_descriptor;
         typedef typename hds_traits<HDS>::traversal_category traversal_category;
         typedef typename hds_traits<HDS>::forward_category forward_category;
@@ -127,7 +128,7 @@
             // description of the 'BidirectionalHDS' concept on page
             // [bidirectionalhdsconcept].
 
- //MANIPULATORS
+ // OPAQUE MANIPULATORS
         void constraints()
             // Check that the 'HDS' template parameter satisfies all the
             // constraints of 'BidirectionalHDSConcept' on page
@@ -140,7 +141,7 @@
                                                  bidirectional_traversal_tag> >();
         }
 
- // ACCESSORS
+ // OPAQUE ACCESSORS
         void const_constraints(HDS const& hds)
             // Check that the non-modifiable 'HDS' template parameters
             // satisfies all the constraints of 'BidirectionalHDSConcept'.
@@ -154,5 +155,6 @@
 
 } // close namespace concepts
 } // close namespace hdstl
+} // close namespace boost
 
 #endif

Modified: sandbox/SOC/2007/geometry/libs/hdstl/dev/hds_concepts/facet_hds_concept.hpp
==============================================================================
--- sandbox/SOC/2007/geometry/libs/hdstl/dev/hds_concepts/facet_hds_concept.hpp (original)
+++ sandbox/SOC/2007/geometry/libs/hdstl/dev/hds_concepts/facet_hds_concept.hpp 2007-06-28 02:43:06 EDT (Thu, 28 Jun 2007)
@@ -12,9 +12,10 @@
 // BOOST_CLASS_REQUIRE(HDS, boost::hdstl,FacetHDSConcept);
 //..
 // inside a class body, checks whether the type given as template
-// argument is a model of the HDS concept described on the page [facethds].
+// argument is a model of the HDS concept described on the page
+// [facethdsconcept].
 //
-//@CONCEPT: [facethds] Facet HDS concept
+//@CONCEPT: [facethdsconcept] Facet HDS concept
 //
 ///Definition
 ///----------
@@ -98,6 +99,7 @@
 
 #include <boost/concepts.h>
 
+namespace boost {
 namespace hdstl{
 namespace concepts {
 
@@ -115,13 +117,13 @@
        // inside a class definition body, should trigger a compile-time error
        // if the type HDS does not model the 'FacetHDSConcept'.
 
- // TYPES
+ // OPAQUE TYPES
        typedef typename hds_traits<HDS>::facet_descriptor facet_descriptor;
            // The specialization of 'hds_traits<HDS>' must have these required
            // types, obeying the types requirements stated in the detailed
            // description of the 'FacetHDS' concept on page [facethdsconcept].
 
- //MANIPULATORS
+ // OPAQUE MANIPULATORS
        void constraints()
            // Check that the 'HDS' template parameters satisfies all the
            // constraints of 'FacetHDSConcept' on page [facethdsconcept].
@@ -138,7 +140,7 @@
            const_constraints(hds);
        }
 
- // ACCESSORS
+ // OPAQUE ACCESSORS
        void const_constraints(HDS const& hds)
            // Check that the non-modifiable 'HDS' template parameters
            // satisfies all the constraints of 'FacetHDSConcept'.
@@ -154,5 +156,6 @@
 
 } // close namespace concepts
 } // close namespace hdstl
+} // close namespace boost
 
 #endif

Modified: sandbox/SOC/2007/geometry/libs/hdstl/dev/hds_concepts/facet_list_hds_concept.hpp
==============================================================================
--- sandbox/SOC/2007/geometry/libs/hdstl/dev/hds_concepts/facet_list_hds_concept.hpp (original)
+++ sandbox/SOC/2007/geometry/libs/hdstl/dev/hds_concepts/facet_list_hds_concept.hpp 2007-06-28 02:43:06 EDT (Thu, 28 Jun 2007)
@@ -13,9 +13,9 @@
 //..
 // inside a class body, checks whether the type given as template
 // argument is a model of the HDS concept described on the page
-// [facetlisthds].
+// [facetlisthdsconcept].
 //
-//@CONCEPT: [facetlisthds] Facet List HDS concept
+//@CONCEPT: [facetlisthdsconcept] Facet List HDS concept
 //
 ///Definition
 ///----------
@@ -123,6 +123,7 @@
 
 #include <boost/concepts.h>
 
+namespace boost {
 namespace hdstl{
 namespace concepts {
 
@@ -140,7 +141,7 @@
        // inside a class definition body, should trigger a compile-time error
        // if the type HDS does not model the 'FacetListHDSConcept'.
 
- // TYPES
+ // OPAQUE TYPES
        typedef typename hds_traits<HDS>::facet_iterator facet_iterator;
        typedef typename hds_traits<HDS>::facet_descriptor facet_descriptor;
        typedef typename hds_traits<HDS>::size_type size_type;
@@ -149,7 +150,7 @@
        // description of the 'FacetListHDS' concept on page
        // [facetlisthdsconcept].
 
- //MANIPULATORS
+ // OPAQUE MANIPULATORS
        void constraints()
            // Check that the 'HDS' template parameters satisfies all the
            // constraints of 'FacetListHDSConcept' on page
@@ -169,7 +170,7 @@
            const_constraints(hds);
        }
 
- // ACCESSORS
+ // OPAQUE ACCESSORS
        void const_constraints(HDS const& hds)
            // Check that the non-modifiable 'HDS' template parameters
            // satisfies all the constraints of 'FacetListHDSConcept'.
@@ -192,5 +193,6 @@
 
 } // close namespace concepts
 } // close namespace hdstl
+} // close namespace boost
 
 #endif

Modified: sandbox/SOC/2007/geometry/libs/hdstl/dev/hds_concepts/forward_hds_concept.hpp
==============================================================================
--- sandbox/SOC/2007/geometry/libs/hdstl/dev/hds_concepts/forward_hds_concept.hpp (original)
+++ sandbox/SOC/2007/geometry/libs/hdstl/dev/hds_concepts/forward_hds_concept.hpp 2007-06-28 02:43:06 EDT (Thu, 28 Jun 2007)
@@ -13,9 +13,9 @@
 //..
 // inside a class body, checks whether the type given as template
 // argument is a model of the HDS concept described on the page
-// [forwardhds].
+// [forwardhdsconcept].
 //
-//@CONCEPT: [forwardhds] Forward HDS concept
+//@CONCEPT: [forwardhdsconcept] Forward HDS concept
 //
 ///Definition
 ///----------
@@ -133,6 +133,7 @@
 #ifndef BOOST_HDSTL_CONCEPTS_FORWARD_HDS_CONCEPT_HPP
 #define BOOST_HDSTL_CONCEPTS_FORWARD_HDS_CONCEPT_HPP 1
 
+namespace boost {
 namespace hdstl{
 namespace concepts{
 
@@ -150,7 +151,7 @@
         // inside a class definition body, should trigger a compile-time error
         // if the type HDS does not model the 'ForwardHDSConcept'.
 
- // TYPES
+ // OPAQUE TYPES
         typedef typename hds_traits<HDS>::halfedge_descriptor halfedge_descriptor;
         typedef typename hds_traits<HDS>::traversal_category traversal_category;
         typedef typename hds_traits<HDS>::forward_category forward_category;
@@ -159,7 +160,7 @@
             // description of the 'ForwardHDS' concept on page
             // [forwardhdsconcept].
 
- // MANIPULATORS
+ // OPAQUE MANIPULATORS
         void constraints()
             // Check that the 'HDS' template parameter satisfies all the
             // constraints of 'ForwardHDSConcept' on page
@@ -182,7 +183,7 @@
             const_constraints(hds);
         }
 
- // ACCESSORS
+ // OPAQUE ACCESSORS
         void const_constraints(HDS const& hds)
             // Check that the non-modifiable 'HDS' template parameters
             // satisfies all the constraints of 'ForwardHDSConcept'.
@@ -201,5 +202,6 @@
 
 } // close namespace concepts
 } // close namespace hdstl
+} // close namespace boost
 
 #endif

Modified: sandbox/SOC/2007/geometry/libs/hdstl/dev/hds_concepts/halfedge_list_hds_concept.hpp
==============================================================================
--- sandbox/SOC/2007/geometry/libs/hdstl/dev/hds_concepts/halfedge_list_hds_concept.hpp (original)
+++ sandbox/SOC/2007/geometry/libs/hdstl/dev/hds_concepts/halfedge_list_hds_concept.hpp 2007-06-28 02:43:06 EDT (Thu, 28 Jun 2007)
@@ -13,9 +13,9 @@
 //..
 // inside a class body, checks whether the type given as template
 // argument is a model of the HDS concept described on the page
-// [halfedgelisthds].
+// [halfedgelisthdsconcept].
 //
-//@CONCEPT: [halfedgelisthds] Halfedge List HDS concept
+//@CONCEPT: [halfedgelisthdsconcept] Halfedge List HDS concept
 //
 ///Definition
 ///----------
@@ -121,6 +121,7 @@
 
 #include <boost/concepts.h>
 
+namespace boost {
 namespace hdstl{
 namespace concepts {
 
@@ -138,7 +139,7 @@
        // inside a class definition body, should trigger a compile-time error
        // if the type HDS does not model the 'HalfedgeListHDSConcept'.
 
- // TYPES
+ // OPAQUE TYPES
        typedef typename hds_traits<HDS>::halfedge_iterator halfedge_iterator;
        typedef typename hds_traits<HDS>::halfedge_descriptor halfedge_descriptor;
        typedef typename hds_traits<HDS>::halfedges_size_type halfedges_size_type;
@@ -147,7 +148,7 @@
        // description of the 'HalfedgeListHDS' concept on page
        // [halfedgelisthdsconcept].
 
- //MANIPULATORS
+ // OPAQUE MANIPULATORS
        void constraints()
            // Check that the 'HDS' template parameters satisfies all the
            // constraints of 'HalfedgeListHDSConcept' on page
@@ -164,7 +165,7 @@
            const_constraints(hds);
        }
 
- // ACCESSORS
+ // OPAQUE ACCESSORS
        void const_constraints(HDS const& hds)
            // Check that the non-modifiable 'HDS' template parameters
            // satisfies all the constraints of 'HalfedgeListHDSConcept'.
@@ -185,5 +186,6 @@
 
 } // close namespace concepts
 } // close namespace hdstl
+} // close namespace boost
 
 #endif

Modified: sandbox/SOC/2007/geometry/libs/hdstl/dev/hds_concepts/hds_concept.hpp
==============================================================================
--- sandbox/SOC/2007/geometry/libs/hdstl/dev/hds_concepts/hds_concept.hpp (original)
+++ sandbox/SOC/2007/geometry/libs/hdstl/dev/hds_concepts/hds_concept.hpp 2007-06-28 02:43:06 EDT (Thu, 28 Jun 2007)
@@ -15,7 +15,7 @@
 // argument is a model of the HDS concept described on the page
 // [hdsconcept].
 //
-//@CONCEPT: [hdsconcept] HDS concept definition
+//@CONCEPT: [hdsconcept] HDS concept
 //
 ///Definition
 ///----------
@@ -113,6 +113,7 @@
 
 namespace boost {
 namespace hdstl {
+namespace concepts {
 
     template <class HDS>
     struct HDSConcept {
@@ -128,13 +129,13 @@
         // inside a class definition body, should trigger a compile-time
         // error if the type 'HDS' does not model the 'HDS' concept.
 
- // TYPES
+ // OPAQUE TYPES
         typedef typename hds_traits<HDS>::halfedge_descriptor halfedge_descriptor;
             // The specialization of 'hds_traits<HDS>' must have these required
             // types, obeying the types requirements stated in the detailed
             // description of the 'HDS' concept on page [hdsconcept].
 
- // MANIPULATORS
+ // OPAQUE MANIPULATORS
         void constraints()
             // Check that the 'HDS' template parameters satisfies all the
             // constraints of 'HDSConcept' on page [hdsconcept].
@@ -149,7 +150,7 @@
             const_constraints(hds);
         }
 
- // ACCESSORS
+ // OPAQUE ACCESSORS
         void const_constraints(const HDS& hds)
             // Check that the non-modifiable 'HDS' template parameters
             // satisfies all the constraints of 'HDSConcept'.
@@ -165,6 +166,7 @@
         halfedge_descriptor h; // a halfedge descriptor
     };
 
+} // close namespace concepts
 } // close namespace hdstl
 } // close namespace boost
 

Modified: sandbox/SOC/2007/geometry/libs/hdstl/dev/hds_concepts/mutable_backward_hds_concept.hpp
==============================================================================
--- sandbox/SOC/2007/geometry/libs/hdstl/dev/hds_concepts/mutable_backward_hds_concept.hpp (original)
+++ sandbox/SOC/2007/geometry/libs/hdstl/dev/hds_concepts/mutable_backward_hds_concept.hpp 2007-06-28 02:43:06 EDT (Thu, 28 Jun 2007)
@@ -13,9 +13,9 @@
 //..
 // inside a class body, checks whether the type given as template
 // argument is a model of the HDS concept described on the page
-// [mutablebackwardhds].
+// [mutablebackwardhdsconcept].
 //
-//@CONCEPT: [mutablebackwardhds] Mutable Backward HDS concept
+//@CONCEPT: [mutablebackwardhdsconcept] Mutable Backward HDS concept
 //
 ///Definition
 ///----------
@@ -109,6 +109,7 @@
 
 #include <boost/concepts.h>
 
+namespace boost {
 namespace hdstl{
 namespace concepts{
 
@@ -126,7 +127,7 @@
         // inside a class definition body, should trigger a compile-time error
         // if the type HDS does not model the 'MutableBackwardHDSConcept'.
 
- // TYPES
+ // OPAQUE TYPES
         typedef typename hds_traits<HDS>::halfedge_descriptor halfedge_descriptor;
         typedef typename hds_traits<HDS>::traversal_category traversal_category;
         typedef typename hds_traits<HDS>::backward_category backward_category;
@@ -135,7 +136,7 @@
             // detailed description of the 'MutableBackwardHDS' concept on page
             // [mutablebackwardhdsconcept].
 
- // MANIPULATORS
+ // OPAQUE MANIPULATORS
         void constraints()
             // Check that the 'HDS' template parameters satisfies all the
             // constraints of 'MutableBackwardHDSConcept' on page
@@ -152,7 +153,7 @@
             const_constraints(hds);
         }
 
- // ACCESSORS
+ // OPAQUE ACCESSORS
         void const_constraints(HDS const& hds)
             // Check that the non-modifiable 'HDS' template parameters
             // satisfies all the constraints of 'MutableBackwardHDSConcept'.
@@ -167,5 +168,6 @@
 
 } // close namespace concepts
 } // close namespace hdstl
+} // close namespace boost
 
 #endif

Modified: sandbox/SOC/2007/geometry/libs/hdstl/dev/hds_concepts/mutable_bidirectional_hds_concept.hpp
==============================================================================
--- sandbox/SOC/2007/geometry/libs/hdstl/dev/hds_concepts/mutable_bidirectional_hds_concept.hpp (original)
+++ sandbox/SOC/2007/geometry/libs/hdstl/dev/hds_concepts/mutable_bidirectional_hds_concept.hpp 2007-06-28 02:43:06 EDT (Thu, 28 Jun 2007)
@@ -14,9 +14,9 @@
 //..
 // inside a class body, checks whether the type given as template
 // argument is a model of the HDS concept described on the page
-// [mutablebidirectionalhds].
+// [mutablebidirectionalhdsconcept].
 //
-//@CONCEPT: [mutablebidirectionalhds] Mutable Bidirectional HDS concept
+//@CONCEPT: [mutablebidirectionalhdsconcept] Mutable Bidirectional HDS concept
 //
 ///Definition
 ///-----------
@@ -91,6 +91,7 @@
 
 #include <boost/concepts.h>
 
+namespace boost {
 namespace hdstl{
 namespace concepts{
    
@@ -108,7 +109,7 @@
         // inside a class definition body, should trigger a compile-time error
         // if the type HDS does not model the 'MutableBidirectionalHDSConcept'.
 
- // TYPES
+ // OPAQUE TYPES
         typedef typename hds_traits<HDS>::halfedge_descriptor halfedge_descriptor;
         typedef typename hds_traits<HDS>::traversal_category traversal_category;
         typedef typename hds_traits<HDS>::forward_category forward_category;
@@ -118,7 +119,7 @@
             // description of the 'MutableBidirectionalHDS' concept on page
             // [mutablebidirectionalhdsconcept].
 
- //MANIPULATORS
+ // OPAQUE MANIPULATORS
         void constraints()
             // Check that the 'HDS' template parameters satisfies all the
             // constraints of 'MutableBidirectionalHDSConcept' on page
@@ -132,7 +133,7 @@
                                                  bidirectional_traversal_tag> >();
         }
 
- // ACCESSORS
+ // OPAQUE ACCESSORS
         void const_constraints(HDS const& hds)
             // Check that the non-modifiable 'HDS' template parameters
             // satisfies all the constraints of
@@ -147,5 +148,6 @@
 
 } // close namespace concepts
 } // close namespace hdstl
+} // close namespace boost
 
 #endif

Modified: sandbox/SOC/2007/geometry/libs/hdstl/dev/hds_concepts/mutable_facet_hds_concept.hpp
==============================================================================
--- sandbox/SOC/2007/geometry/libs/hdstl/dev/hds_concepts/mutable_facet_hds_concept.hpp (original)
+++ sandbox/SOC/2007/geometry/libs/hdstl/dev/hds_concepts/mutable_facet_hds_concept.hpp 2007-06-28 02:43:06 EDT (Thu, 28 Jun 2007)
@@ -13,9 +13,9 @@
 //..
 // inside a class body, checks whether the type given as template
 // argument is a model of the HDS concept described on the page
-// [mutablefacethds].
+// [mutablefacethdsconcept].
 //
-//@CONCEPT: [mutablefacethds] Mutable Facet HDS concept
+//@CONCEPT: [mutablefacethdsconcept] Mutable Facet HDS concept
 //
 ///Definition
 ///----------
@@ -105,6 +105,7 @@
 
 #include <boost/concepts.h>
 
+namespace boost {
 namespace hdstl{
 namespace concepts {
 
@@ -122,14 +123,14 @@
        // inside a class definition body, should trigger a compile-time error
        // if the type HDS does not model the 'MutableFacetHDSConcept'.
 
- // TYPES
+ // OPAQUE TYPES
        typedef typename hds_traits<HDS>::facet_descriptor facet_descriptor;
            // The specialization of 'hds_traits<HDS>' must have these required
            // types, obeying the types requirements stated in the detailed
            // description of the 'MutableFacetHDS' concept on page
            // [mutablefacethdsconcept].
 
- //MANIPULATORS
+ // OPAQUE MANIPULATORS
        void constraints()
            // Check that the 'HDS' template parameters satisfies all the
            // constraints of 'MutableFacetHDSConcept' on page
@@ -148,7 +149,7 @@
            const_constraints(hds);
        }
 
- // ACCESSORS
+ // OPAQUE ACCESSORS
        void const_constraints(HDS const& hds)
            // Check that the non-modifiable 'HDS' template parameters
            // satisfies all the constraints of 'MutableFacetHDSConcept'.
@@ -164,5 +165,6 @@
 
 } // close namespace concepts
 } // close namespace hdstl
+} // close namespace boost
 
 #endif

Modified: sandbox/SOC/2007/geometry/libs/hdstl/dev/hds_concepts/mutable_forward_hds_concept.hpp
==============================================================================
--- sandbox/SOC/2007/geometry/libs/hdstl/dev/hds_concepts/mutable_forward_hds_concept.hpp (original)
+++ sandbox/SOC/2007/geometry/libs/hdstl/dev/hds_concepts/mutable_forward_hds_concept.hpp 2007-06-28 02:43:06 EDT (Thu, 28 Jun 2007)
@@ -13,9 +13,9 @@
 //..
 // inside a class body, checks whether the type given as template
 // argument is a model of the HDS concept described on the page
-// [mutableforwardhds].
+// [mutableforwardhdsconcept].
 //
-//@CONCEPT: [mutableforwardhds] Mutable Forward HDS concept
+//@CONCEPT: [mutableforwardhdsconcept] Mutable Forward HDS concept
 //
 ///Definition
 ///----------
@@ -109,6 +109,7 @@
 
 #include <boost/concepts.h>
 
+namespace boost {
 namespace hdstl{
 namespace concepts{
 
@@ -126,7 +127,7 @@
         // inside a class definition body, should trigger a compile-time error
         // if the type HDS does not model the 'MutableForwardHDSConcept'.
 
- // TYPES
+ // OPAQUE TYPES
         typedef typename hds_traits<HDS>::halfedge_descriptor halfedge_descriptor;
         typedef typename hds_traits<HDS>::traversal_category traversal_category;
         typedef typename hds_traits<HDS>::forward_category forward_category;
@@ -135,7 +136,7 @@
             // detailed description of the 'MutableForwardHDS' concept on page
             // [mutableforwardhdsconcept].
 
- // MANIPULATORS
+ // OPAQUE MANIPULATORS
         void constraints()
             // Check that the 'HDS' template parameters satisfies all the
             // constraints of 'MutableForwardHDSConcept' on page
@@ -152,7 +153,7 @@
             const_constraints(hds);
         }
 
- // ACCESSORS
+ // OPAQUE ACCESSORS
         void const_constraints(HDS const& hds)
             // Check that the non-modifiable 'HDS' template parameters
             // satisfies all the constraints of 'MutableForwardHDSConcept'.
@@ -167,5 +168,6 @@
 
 } // close namespace concepts
 } // close namespace hdstl
+} // close namespace boost
 
 #endif

Modified: sandbox/SOC/2007/geometry/libs/hdstl/dev/hds_concepts/mutable_hds_concept.hpp
==============================================================================
--- sandbox/SOC/2007/geometry/libs/hdstl/dev/hds_concepts/mutable_hds_concept.hpp (original)
+++ sandbox/SOC/2007/geometry/libs/hdstl/dev/hds_concepts/mutable_hds_concept.hpp 2007-06-28 02:43:06 EDT (Thu, 28 Jun 2007)
@@ -15,7 +15,7 @@
 // argument is a model of the MutableHDS concept described on the page
 // [mutablehdsconcept].
 //
-//@CONCEPT: [mutablehdsconcept] Mutable HDS concept definition
+//@CONCEPT: [mutablehdsconcept] Mutable HDS concept
 //
 ///Definition
 ///----------
@@ -93,6 +93,7 @@
 
 #include <boost/concepts.h>
 
+namespace boost {
 namespace hdstl {
 namespace concepts {
 
@@ -111,7 +112,7 @@
         // inside a class definition body, should trigger a compile-time
         // error if the type 'HDS' does not model the 'MutableHDS' concept.
 
- // TYPES
+ // OPAQUE TYPES
         typedef typename hds_traits<HDS>::halfedge_descriptor
                                           halfedge_descriptor;
             // The specialization of 'hds_traits<HDS>' must have these
@@ -119,7 +120,7 @@
             // detailed description of the 'MutableHDS' concept on page
             // [mutablehdsconcept].
 
- // MANIPULATORS
+ // OPAQUE MANIPULATORS
         void constraints()
             // Check that the 'HDS' template parameters satisfies all the
             // constraints of 'MutableHDSConcept' on page [mutablehdsconcept].
@@ -132,7 +133,7 @@
             const_constraints(hds);
         }
 
- // ACCESSORS
+ // OPAQUE ACCESSORS
         void const_constraints(HDS const& hds)
             // Check that the non-modifiable 'HDS' template parameters
             // satisfies all the constraints of 'MutableHDSConcept'.
@@ -147,5 +148,6 @@
 
 } // close namespace concepts
 } // close namespace hdstl
+} // close namespace boost
 
 #endif

Modified: sandbox/SOC/2007/geometry/libs/hdstl/dev/hds_concepts/mutable_vertex_hds_concept.hpp
==============================================================================
--- sandbox/SOC/2007/geometry/libs/hdstl/dev/hds_concepts/mutable_vertex_hds_concept.hpp (original)
+++ sandbox/SOC/2007/geometry/libs/hdstl/dev/hds_concepts/mutable_vertex_hds_concept.hpp 2007-06-28 02:43:06 EDT (Thu, 28 Jun 2007)
@@ -13,9 +13,9 @@
 //..
 // inside a class body, checks whether the type given as template
 // argument is a model of the HDS concept described on the page
-// [mutablevertexhds].
+// [mutablevertexhdsconcept].
 //
-//@CONCEPT: [mutablevertexhds] Mutable Vertex HDS concept
+//@CONCEPT: [mutablevertexhdsconcept] Mutable Vertex HDS concept
 //
 ///Definition
 ///----------
@@ -109,6 +109,7 @@
 
 #include <boost/concepts.h>
 
+namespace boost {
 namespace hdstl{
 namespace concepts {
 
@@ -126,14 +127,14 @@
         // inside a class definition body, should trigger a compile-time error
         // if the type HDS does not model the 'MutableVertexHDSConcept'.
 
- // TYPES
+ // OPAQUE TYPES
         typedef typename hds_traits<HDS>::vertex_descriptor vertex_descriptor;
             // The specialization of 'hds_traits<HDS>' must have these required
             // types, obeying the types requirements stated in the detailed
             // description of the 'MutableVertexHDS' concept on page
             // [mutablevertexhdsconcept].
 
- //MANIPULATORS
+ // OPAQUE MANIPULATORS
         void constraints()
             // Check that the 'HDS' template parameters satisfies all the
             // constraints of 'MutableVertexHDSConcept' on page
@@ -154,7 +155,7 @@
             const_constraints(hds);
         }
 
- // ACCESSORS
+ // OPAQUE ACCESSORS
         void const_constraints(HDS const& hds)
             // Check that the non-modifiable 'HDS' template parameters
             // satisfies all the constraints of 'MutableVertexHDSConcept'.
@@ -170,5 +171,6 @@
 
 } // close namespace concepts
 } // close namespace hdstl
+} // close namespace boost
 
 #endif

Modified: sandbox/SOC/2007/geometry/libs/hdstl/dev/hds_concepts/vertex_hds_concept.hpp
==============================================================================
--- sandbox/SOC/2007/geometry/libs/hdstl/dev/hds_concepts/vertex_hds_concept.hpp (original)
+++ sandbox/SOC/2007/geometry/libs/hdstl/dev/hds_concepts/vertex_hds_concept.hpp 2007-06-28 02:43:06 EDT (Thu, 28 Jun 2007)
@@ -12,9 +12,10 @@
 // BOOST_CLASS_REQUIRE(HDS, boost::hdstl,VertexHDSConcept);
 //..
 // inside a class body, checks whether the type given as template
-// argument is a model of the HDS concept described on the page [vertexhds].
+// argument is a model of the HDS concept described on the page
+// [vertexhdsconcept].
 //
-//@CONCEPT: [vertexhds] Vertex HDS concept
+//@CONCEPT: [vertexhdsconcept] Vertex HDS concept
 //
 ///Definition
 ///----------
@@ -102,6 +103,7 @@
 
 #include <boost/concepts.h>
 
+namespace boost {
 namespace hdstl{
 namespace concepts {
 
@@ -119,13 +121,13 @@
         // inside a class definition body, should trigger a compile-time error
         // if the type HDS does not model the 'VertexHDSConcept'.
 
- // TYPES
+ // OPAQUE TYPES
         typedef typename hds_traits<HDS>::vertex_descriptor vertex_descriptor;
             // The specialization of 'hds_traits<HDS>' must have these required
             // types, obeying the types requirements stated in the detailed
             // description of the 'VertexHDS' concept on page [vertexhdsconcept].
 
- //MANIPULATORS
+ // OPAQUE MANIPULATORS
         void constraints()
             // Check that the 'HDS' template parameters satisfies all the
             // constraints of 'VertexHDSConcept' on page [vertexhdsconcept].
@@ -143,7 +145,7 @@
             const_constraints(hds);
         }
 
- // ACCESSORS
+ // OPAQUE ACCESSORS
         void const_constraints(HDS const& hds)
             // Check that the non-modifiable 'HDS' template parameters
             // satisfies all the constraints of 'VertexHDSConcept'.
@@ -160,5 +162,6 @@
 
 } // close namespace concepts
 } // close namespace hdstl
+} // close namespace boost
 
 #endif

Modified: sandbox/SOC/2007/geometry/libs/hdstl/dev/hds_concepts/vertex_list_hds_concept.hpp
==============================================================================
--- sandbox/SOC/2007/geometry/libs/hdstl/dev/hds_concepts/vertex_list_hds_concept.hpp (original)
+++ sandbox/SOC/2007/geometry/libs/hdstl/dev/hds_concepts/vertex_list_hds_concept.hpp 2007-06-28 02:43:06 EDT (Thu, 28 Jun 2007)
@@ -13,9 +13,9 @@
 //..
 // inside a class body, checks whether the type given as template
 // argument is a model of the HDS concept described on the page
-// [vertexlisthds].
+// [vertexlisthdsconcept].
 //
-//@CONCEPT: [vertexlisthds] Vertex List HDS concept
+//@CONCEPT: [vertexlisthdsconcept] Vertex List HDS concept
 //
 ///Definition
 ///----------
@@ -122,6 +122,7 @@
 
 #include <boost/concepts.h>
 
+namespace boost {
 namespace hdstl{
 namespace concepts {
 
@@ -139,7 +140,7 @@
        // inside a class definition body, should trigger a compile-time error
        // if the type HDS does not model the 'VertexListHDSConcept'.
 
- // TYPES
+ // OPAQUE TYPES
        typedef typename hds_traits<HDS>::vertex_iterator vertex_iterator;
        typedef typename hds_traits<HDS>::vertex_descriptor vertex_descriptor;
        typedef typename hds_traits<HDS>::size_type size_type;
@@ -148,7 +149,7 @@
            // description of the 'VertexListHDS' concept on page
            // [vertexlisthdsconcept].
 
- //MANIPULATORS
+ // OPAQUE MANIPULATORS
        void constraints()
            // Check that the 'HDS' template parameters satisfies all the
            // constraints of 'VertexListHDSConcept' on page
@@ -166,7 +167,7 @@
            const_constraints(hds);
        }
 
- // ACCESSORS
+ // OPAQUE ACCESSORS
        void const_constraints(HDS const& hds)
            // Check that the non-modifiable 'HDS' template parameters
            // satisfies all the constraints of 'VertexListHDSConcept'.
@@ -188,5 +189,6 @@
 
 } // close namespace concepts
 } // close namespace hdstl
+} // close namespace boost
 
 #endif

Modified: sandbox/SOC/2007/geometry/libs/hdstl/dev/hds_traits.hpp
==============================================================================
--- sandbox/SOC/2007/geometry/libs/hdstl/dev/hds_traits.hpp (original)
+++ sandbox/SOC/2007/geometry/libs/hdstl/dev/hds_traits.hpp 2007-06-28 02:43:06 EDT (Thu, 28 Jun 2007)
@@ -2,103 +2,129 @@
 //
 //@PURPOSE: Provide all the basic types and choices of the 'HDS'.
 //
-//@DESCRIPTION: This file provides the 'HDS' traits concept as a class, which
-// provides all the component types for 'HDS' and defines the choices.
+//@CLASSES:
+// 'hds_traits<HDS>': parameterized traits class for 'HDS' types
+// 'backward_traversal_tag': tag type for models of 'BackwardHds' concept
+// 'bidirectional_traversal_tag': tag type for models of 'BidirectionalHds' concept
+// 'forward_traversal_tag': tag type for models of 'ForwardHds' concept
+// 'next_at_source_tag': tag type for forward primary access
+// 'next_at_target_tag': tag type for forward primary access
+// 'next_in_facet_tag': tag type for forward primary access
+// 'prev_at_source_tag': tag type for backward primary access
+// 'prev_at_target_tag': tag type for backward primary access
+// 'prev_in_facet_tag': tag type for backward primary access
+//
+//@SEE_ALSO: {hds_concepts.hpp}
 //
-//@CONCEPT: [hdstraits] HDS traits definition
+//@DESCRIPTION: This file provides the default 'HDS' traits class, which
+// provides information about the 'HDS' template parameter. The members of the
+// traits class are as follows, grouped by concepts. Note that, since
+// 'hds_traits' is a template, the types which have no meaning (e.g.,
+// 'facet_descriptor' when the 'HDS' template parameter does not model
+// the 'FacetHds' concept) can remain undefined, so long as they are not
+// used at instantiation.
+//..
+// Hds concept
+// -----------
+// halfedge_descriptor A type that contains information to access the
+// halfedge. Note that the halfedge descriptor type
+// is an opaque type. All that can be done to it is
+// passing it to the function opposite and letting the
+// hds use the information it contains to find the
+// opposite halfedge. In particular, there is no
+// guarantee that the descriptor be a pointer type.
+// traversal_category A type that contains information about the
+// direction of the traversal, which is forward,
+// backward or bidirectional.
+// supports_facets A value usable as a Boolean which is true if 'HDS'
+// models the 'FacetHds' concept.
+// supports_vertices A value usable as a Boolean which is true if 'HDS'
+// models the 'VertexHds' concept.
 //
-///Notation
-///--------
-// - 'HDS' A type that is a model of 'HDSConcept'
+// ForwardHds concept
+// ------------------
+// forward_category A tag type to describe the primary accessor of the
+// forward information for use by algorithms which
+// desire the most direct access. Only for models
+// of 'ForwardHds' concept.
 //
-///Associated types
-///----------------
-// - 'HDS::halfedge_descriptor': must be 'DefaultConstructible',
-// 'CopyConstructible', 'EqualityComparable', and 'Assignable'.
-// - 'HDS::vertex_descriptor': must be 'DefaultConstructible',
-// 'CopyConstructible', 'EqualityComparable', and 'Assignable'.
-// - 'HDS::facet_descriptor': must be 'DefaultConstructible',
-// 'CopyConstructible', 'EqualityComparable', and 'Assignable'.
-// - 'HDS::vertex_iterator': must be a model of the
-// 'ForwardIterator' concept. The value type of the vertex iterator must
-// be the same as the 'vertex_descriptor'.
-// - 'HDS::facet_iterator': must be a model of the
-// 'ForwardIterator' concept. The value type of the facet iterator
-// must be the same as the 'facet_descriptor'.
-// - 'HDS::halfedge_iterator': must be a model of the
-// 'ForwardIterator' concept. The value type of the halfedge iterator
-// must be the same as the 'halfedge_descriptor'.
-// - 'HDS::const_vertex_iterator': must be a model of the
-// 'ForwardIterator' concept. The value type of the vertex iterator must
-// be the same as the 'vertex_descriptor'.
-// - 'HDS::facet_iterator': must be a model of the
-// 'ForwardIterator' concept. The value type of the facet iterator
-// must be the same as the 'facet_descriptor'.
-// - 'HDS::halfedge_iterator': must be a model of the
-// 'ForwardIterator' concept. The value type of the halfedge iterator
-// must be the same as the 'halfedge_descriptor'.
-// - 'HDS::size_type': integral size type.
-// - 'HDS::traversal_category': must be convertible to one of
-// 'hdstl::forward_traversal_tag', 'hdstl::backward_traversal_tag' or
-// 'hdstl::bidirectional_traversal_tag'
-// - 'HDS::forward_category': defines the pointer type for forward iteration.
-// - 'HDS::backward_category': defines the pointer type for backward iteration.
-//
-///Definitions
-///-----------
-// - 'halfedge_descriptor' is a type that contains information to access the
-// halfedge. Note that the halfedge descriptor type is an opaque type. All
-// that can be done to it is passing it to the function opposite and letting
-// the hds use the information it contains to find the opposite halfedge. In
-// particular, there is no guarantee that the descriptor be a pointer type.
-// - 'vertex_descriptor' is a type that contains information to access the
-// vertex at the source or the target of the halfedge.
-// - 'facet_descriptor' is a type that contains information to access the
-// facet to the left of the halfedge, if forward facet cycles are
-// ordered in counter clockwise rotation around the facet.
-// - 'vertex_iterator' is an iterator type for the vertices.
-// - 'facet_iterator' is an iterator type for the facets.
-// - 'halfedge_iterator' is an iterator type for the halfedges.
-// - 'vertex_iterator' is a const iterator type for the vertices.
-// - 'facet_iterator' is a const iterator type for the facets.
-// - 'halfedge_iterator' is a const iterator type for the halfedges.
-// - 'size_type' defines the size type.
-// - 'traversal_category' is a type that contains information about the
-// direction of the traversal, which is forward, backward or bidirectional.
-// - 'forward_category' defines the primary accessor of the forward
-// information for use by algorithms which desire the most direct access.
-// - 'backward_category' defines the primary accessor of the backward
-// information for use by algorithms which desire the most direct access.
-
-
-///HDS Traits class
-///----------------
+// BackwardHds concept
+// ------------------
+// backward_category A tag type to describe the primary accessor of the
+// backward information for use by algorithms which
+// desire the most direct access. Only for models of
+// 'BackwardHds' concept.
+//
+// FacetHds concept
+// ----------------
+// facet_descriptor A type that contains information to access the
+// facet to the left of the halfedge, if forward facet
+// cycles are ordered in counter clockwise rotation
+// around the facet.
+//
+// FacetListHds concept
+// --------------------
+// facet_iterator An iterator type for the facets.
+// facet_const_iterator A 'const' iterator type for the facets.
+// Only for 'FacetListHds' concept.
+// size_type An integral type to return the number of facets,
+// vertices and halfedges. Only for 'FacetListHDS',
+// 'HalfedgeListHds' and/or 'VertexListHds' concepts.
+// Note that the size type must then be the same for
+// each in the subset of those concepts modeled.
+//
+// HalfedgeListHds concept
+// -----------------------
+// halfedge_iterator An iterator type for the halfedges.
+// halfedge_const_iterator A 'const' iterator type for the halfedges.
+// Only for 'HalfedgeListHds' concept.
+// size_type An integral type to return the number of halfedges,
+// See above for 'FacetListHds' concept.
+//
+// VertexHds concept
+// -----------------
+// vertex_descriptor A type that contains information to access the
+// vertex at the source or the target of the halfedge.
+//
+// VertexListHds concept
+// ---------------------
+// vertex_iterator An iterator type for the vertices.
+// vertex_const_iterator A 'const' iterator type for the vertices.
+// size_type An integral type to return the number of facets,
+// See above for 'FacetListHds' concept.
+//..
+//
+///Synopsis
+///--------
 //..
 // template <typename HDS>
 // struct hds_traits{
-// typedef typename HDS::vertex_descriptor vertex_descriptor;
-// typedef typename HDS::halfedge_descriptor halfedge_descriptor;
-// typedef typename HDS::facet_descriptor facet_descriptor;
-// typedef typename HDS::vertex_iterator vertex_iterator;
-// typedef typename HDS::halfedge_iterator halfedge_iterator;
-// typedef typename HDS::facet_iterator facet_iterator;
-// typedef typename HDS::const_vertex_iterator const_vertex_iterator;
+// typedef typename HDS::backward_category backward_category;
 // typedef typename HDS::const_halfedge_iterator const_halfedge_iterator;
 // typedef typename HDS::const_facet_iterator const_facet_iterator;
+// typedef typename HDS::const_vertex_iterator const_vertex_iterator;
+// typedef typename HDS::facet_descriptor facet_descriptor;
+// typedef typename HDS::facet_iterator facet_iterator;
+// typedef typename HDS::forward_category forward_category;
+// typedef typename HDS::halfedge_descriptor halfedge_descriptor;
+// typedef typename HDS::halfedge_iterator halfedge_iterator;
 // typedef typename HDS::size_type size_type;
 // typedef typename HDS::traversal_category traversal_category;
-// typedef typename HDS::forward_category forward_category;
-// typedef typename HDS::backward_category backward_category;
+// typedef typename HDS::vertex_descriptor vertex_descriptor;
+// typedef typename HDS::vertex_iterator vertex_iterator;
 // };
-// struct forward_traversal_tag {};
 // struct backward_traversal_tag {};
-// struct next_in_facet_tag {};
+// struct forward_traversal_tag {};
+// struct bidirectional_traversal_tag
+// : public backward_traversal_tag, public forward_traversal_tag {};
 // struct next_at_source_tag {};
 // struct next_at_target_tag {};
-// struct prev_in_facet_tag {};
+// struct next_in_facet_tag {};
 // struct prev_at_source_tag {};
 // struct prev_at_target_tag {};
+// struct prev_in_facet_tag {};
 //..
+
 #ifndef BOOST_HDSTL_HDS_TRAITS_HPP
 #define BOOST_HDSTL_HDS_TRAITS_HPP 1
 
@@ -107,39 +133,142 @@
 
     template <typename HDS>
     struct hds_traits{
+ // A traits class for describing the types and features associated with
+ // the 'HDS' template parameter. By default, all these types and
+ // values are defined within the 'HDS' class.
 
- typedef typename HDS::vertex_descriptor vertex_descriptor;
- typedef typename HDS::halfedge_descriptor halfedge_descriptor;
+ // TYPES
+ typedef typename HDS::backward_category backward_category;
+ // A tag type to describe the primary accessor of the backward
+ // information for use by algorithms which desire the most direct
+ // access.
+ typedef typename HDS::const_facet_iterator const_facet_iterator;
+ // A 'const' iterator type for the facets.
+ typedef typename HDS::const_halfedge_iterator const_halfedge_iterator;
+ // A 'const' iterator type for the halfedges.
+ typedef typename HDS::const_vertex_iterator const_vertex_iterator;
+ // A 'const' iterator type for the vertices.
         typedef typename HDS::facet_descriptor facet_descriptor;
-
- typedef typename HDS::vertex_iterator vertex_iterator;
- typedef typename HDS::halfedge_iterator halfedge_iterator;
+ // A type that contains information to access the facet to the left
+ // of the halfedge, if forward facet cycles are ordered in counter
+ // clockwise rotation around the facet.
         typedef typename HDS::facet_iterator facet_iterator;
+ // An iterator type for the facets.
+ typedef typename HDS::forward_category forward_category;
+ // A tag type to describe the primary accessor of the forward
+ // information for use by algorithms which desire the most direct
+ // access.
+ typedef typename HDS::halfedge_descriptor halfedge_descriptor;
+ // A type that contains information to access the halfedge.
+ typedef typename HDS::halfedge_iterator halfedge_iterator;
+ // An iterator type for the halfedges.
+ typedef typename HDS::vertex_descriptor vertex_descriptor;
+ // A type that contains information to access the vertex at the
+ // source or the target of the halfedge.
+ typedef typename HDS::vertex_iterator vertex_iterator;
+ // An iterator type for the vertices.
+ typedef typename HDS::size_type size_type;
+ // An integral type to return the number of facets, vertices and/or
+ // halfedges. Note that the size type must then be the same for
+ // all three quantities.
+ typedef typename HDS::traversal_category traversal_category;
+ // A type that contains information about the direction of the
+ // traversal, which is forward, backward or bidirectional.
 
- typedef typename HDS::const_vertex_iterator const_vertex_iterator;
- typedef typename HDS::const_halfedge_iterator const_halfedge_iterator;
- typedef typename HDS::const_facet_iterator const_facet_iterator;
+ enum {
+ // An anonymous enumeration type defining values usable as Boolean
+ // to indicate various features associated with the 'HDS' template
+ // parameter.
+
+ supports_facets = HDS::supports_facets,
+ // A value usable as a Boolean which is true if 'HDS' models
+ // the 'FacetHds' concept.
+ supports_vertices = HDS::supports_vertices
+ // A value usable as a Boolean which is true if 'HDS' models
+ // the 'VertexHds' concept.
+ };
+ };
 
- typedef typename HDS::size_type size_type;
+ struct forward_traversal_tag {
+ // A tag type for indicating a model of 'ForwardHds'. For types 'HDS'
+ // that model the 'ForwardHds' concept, the type
+ // 'hds_traits<HDS>::traversal_category' is convertible to this
+ // 'forward_traversal_tag' type.
+ };
 
- typedef typename HDS::traversal_category traversal_category;
- typedef typename HDS::forward_category forward_category;
- typedef typename HDS::backward_category backward_category;
+ struct backward_traversal_tag {
+ // A tag type for indicating a model of 'BackwardHds'. For types 'HDS'
+ // that model the 'BackwardHds' concept, the type
+ // 'hds_traits<HDS>::traversal_category' is convertible to this
+ // 'backward_traversal_tag' type.
+
+ struct bidirectional_traversal_tag : public backward_traversal_tag, public forward_traversal_tag {
+ // A tag type for indicating a model of both 'ForwardHds' and
+ // 'BackwardHds' concepts. This type if convertible to both
+ // 'forward_traversal_tag' and 'backward_traversal_tag'.
+ };
+
+ struct next_in_facet_tag {
+ // A tag type for indicating the primary pointer used by a model of
+ // the 'ForwardHds' concept. Given a type 'HDS' that models the
+ // 'ForwardHds' concept, if the 'hds_traits<HDS>::forward_category'
+ // is convertible to this 'next_in_facet_tag' type, then
+ // 'set_next_in_facet(h, g, hds)' has the post-condition that
+ // 'next_in_fact(h, hds) == g', otherwise 'next_in_facet(h, hds)' is
+ // not modified.
     };
 
- struct forward_traversal_tag {};
- struct backward_traversal_tag {};
+ struct next_at_source_tag {
+ // A tag type for indicating the primary pointer used by a model of
+ // the 'ForwardHds' concept. Given a type 'HDS' that models the
+ // 'ForwardHds' concept, if the 'hds_traits<HDS>::forward_category'
+ // is convertible to this 'next_at_source_tag' type, then
+ // 'set_next_at_source(h, g, hds)' has the post-condition that
+ // 'next_in_fact(h, hds) == g', otherwise 'next_at_source(h, hds)' is
+ // not modified.
+ };
 
- struct next_in_facet_tag {};
- struct next_at_source_tag {};
- struct next_at_target_tag {};
-
- struct prev_in_facet_tag {};
- struct prev_at_source_tag {};
- struct prev_at_target_tag {};
+ struct next_at_target_tag {
+ // A tag type for indicating the primary pointer used by a model of
+ // the 'ForwardHds' concept. Given a type 'HDS' that models the
+ // 'ForwardHds' concept, if the 'hds_traits<HDS>::forward_category'
+ // is convertible to this 'next_at_target_tag' type, then
+ // 'set_next_at_target(h, g, hds)' has the post-condition that
+ // 'next_in_fact(h, hds) == g', otherwise 'next_at_target(h, hds)' is
+ // not modified.
+ };
+
+ struct prev_in_facet_tag {
+ // A tag type for indicating the primary pointer used by a model of
+ // the 'BackwardHds' concept. Given a type 'HDS' that models the
+ // 'BackwardHds' concept, if the 'hds_traits<HDS>::forward_category'
+ // is convertible to this 'prev_in_facet_tag' type, then
+ // 'set_prev_in_facet(h, g, hds)' has the post-condition that
+ // 'prev_in_fact(h, hds) == g', otherwise 'prev_in_facet(h, hds)' is
+ // not modified.
+ };
+
+ struct prev_at_source_tag {
+ // A tag type for indicating the primary pointer used by a model of
+ // the 'BackwardHds' concept. Given a type 'HDS' that models the
+ // 'BackwardHds' concept, if the 'hds_traits<HDS>::forward_category'
+ // is convertible to this 'prev_at_source_tag' type, then
+ // 'set_prev_at_source(h, g, hds)' has the post-condition that
+ // 'prev_in_fact(h, hds) == g', otherwise 'prev_at_source(h, hds)' is
+ // not modified.
+ };
+
+ struct prev_at_target_tag {
+ // A tag type for indicating the primary pointer used by a model of
+ // the 'BackwardHds' concept. Given a type 'HDS' that models the
+ // 'BackwardHds' concept, if the 'hds_traits<HDS>::forward_category'
+ // is convertible to this 'prev_at_target_tag' type, then
+ // 'set_prev_at_target(h, g, hds)' has the post-condition that
+ // 'prev_in_fact(h, hds) == g', otherwise 'prev_at_target(h, hds)' is
+ // not modified.
+ };
 
 } // namespace hdstl
 } // namespace boost
 
 #endif
-

Modified: sandbox/SOC/2007/geometry/libs/hdstl/doc/hdstl.conf
==============================================================================
--- sandbox/SOC/2007/geometry/libs/hdstl/doc/hdstl.conf (original)
+++ sandbox/SOC/2007/geometry/libs/hdstl/doc/hdstl.conf 2007-06-28 02:43:06 EDT (Thu, 28 Jun 2007)
@@ -468,7 +468,7 @@
 # *.c *.cc *.cxx *.cpp *.c++ *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh *.hxx
 # *.hpp *.h++ *.idl *.odl *.cs *.php *.php3 *.inc *.m *.mm *.py
 
-FILE_PATTERNS =
+FILE_PATTERNS = *.h *.hpp
 
 # The RECURSIVE tag can be used to turn specify whether or not subdirectories
 # should be searched for input files as well. Possible values are YES and NO.
@@ -486,7 +486,7 @@
 # directories that are symbolic links (a Unix filesystem feature) are excluded
 # from the input.
 
-EXCLUDE_SYMLINKS = NO
+EXCLUDE_SYMLINKS = YES
 
 # If the value of the INPUT tag contains directories, you can use the
 # EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude

Modified: sandbox/SOC/2007/geometry/libs/hdstl/tools/doc.pl
==============================================================================
--- sandbox/SOC/2007/geometry/libs/hdstl/tools/doc.pl (original)
+++ sandbox/SOC/2007/geometry/libs/hdstl/tools/doc.pl 2007-06-28 02:43:06 EDT (Thu, 28 Jun 2007)
@@ -62,6 +62,7 @@
         local $remainder = $3;
 
         # Process references
+ $textpart =~ s/\{\([^\}]*\)\}/$1/g;
         $textpart =~ s/\[([^\]]*)\]/\\ref $1/g;
 
         # Guard against template and comparisons
@@ -75,6 +76,7 @@
         $textpart =~ s/\!([^!]*)\!/<b>$1<\/b>/g;
 
         # Process underline
+ $textpart =~ s/SEE_ALSO/SEEALSO/g;
         $textpart =~ s/_([^_]*)_/<u>$1<\/u>/g;
 
         # Process typewriter font
@@ -98,23 +100,36 @@
     $content =~ s/\!([^!]*)\!/<b>$1<\/b>/g;
 
     # Process underline
+ $content =~ s/SEE_ALSO/SEEALSO/g;
     $content =~ s/_([^_]*)_/<u>$1<\/u>/g;
 
     return $output.$content;
 }
 
-my $finishedTopLevel = 0; # to avoid parsing later comments as if preamble
-my $conceptMode = 0; # serves to remember if a @CONCEPT command was parsed
-my $conceptLabel = ""; # and if so, the concept name
-my $conceptRef = 0; # numbers the section references
-my $classOpen = 0; # serves to know if we're within a class body
-my $className = ""; # and if so, the class name
-my $templateName = ""; # and any template parameters (one line before the class def)
-my $groupOpen = 0; # serves to close a named group before opening another
+my $finishedTopLevel = 0; # to avoid parsing later comments as if preamble
+my $conceptMode = 0; # serves to remember if a @CONCEPT command was parsed
+my $conceptLabel = ""; # and if so, the concept name
+my $conceptRef = 0; # numbers the section references
+my $classOpen = 0; # serves to know if we're within a class body
+my $className = ""; # and if so, the class name
+my $classClosePrefix = ""; # how many spaces before "};"
+my $templateName = ""; # and any template parameters (one line before the class def)
+my $groupOpen = 0; # serves to close a named group before opening another
+my $opaqueFlag = 0; # serves to close an \endcond before opening another named group
 
 sub process_toplevel_comment_line {
     my $content = shift;
 
+ if ($content =~ m/\@MAINPAGE: (.*)/) {
+ print " * \\mainpage ".$1."\n";
+ return;
+ }
+
+ if ($content =~ m/\@RELATED: \[(.*)\] (.*)/) {
+ print " * \\page ".$1." ".$2."\n";
+ return;
+ }
+
     if ($content =~ m/\@CONCEPT: \[(.*)\] (.*)/) {
         print " * \\page ".$1." ".$2."\n";
         $conceptMode = 1;
@@ -160,6 +175,14 @@
             print " * \\details ".$2."\n";
         } elsif ($1 eq "PURPOSE") {
             print " * \\brief ".$2."\n";
+ } elsif ($1 eq "CLASS") {
+ print " * \\par Class:\n";
+ } elsif ($1 eq "CLASSES") {
+ print " * \\par Classes:\n";
+ } elsif ($1 eq "SEEALSO") {
+ print " * \\par See also ".$2."\n";
+ } elsif ($1 eq "AUTHORS" || $1 eq "AUTHOR") {
+ print " * \\author ".$2."\n";
         } else {
             die("0x2: Unknown section comment".$1." at line ".$.."\n");
         }
@@ -186,9 +209,14 @@
         # Empty line, convert to @par
         print $prefix." *< \@par\n";
     }
- elsif ($content =~ m/(TYPE|DATA|CREATOR|MANIP|ACCESS)/) {
+ elsif ($content =~ m/(OPAQUE|TYPE|DATA|CREATOR|MANIP|ACCESS)/) {
         if ($groupOpen) {
- print $prefix."//\@\}\n";
+ if ($opaqueFlag) {
+ print $prefix."// \\endcond\n";
+ $opaqueFlag = 0;
+ } else {
+ print $prefix."//\@\}\n";
+ }
         }
         $groupOpen = 1;
         if ($content =~ m/TYPE/) {
@@ -206,6 +234,9 @@
         } elsif ($content =~ m/ACCESS/) {
             print $prefix."//\@\{\n".
                   $prefix.'/** @name Accessors'." */\n";
+ } elsif ($content =~ m/ACCESS/) {
+ print $prefix."//\\cond";
+ $opaqueFlag = 1;
         } else {
             die("0x2: Unknown group comment".$1." at line ".$.."\n");
         }
@@ -295,6 +326,7 @@
                     $groupOpen = 0;
                 }
                 $classOpen = 0;
+ $classClosePrefix = $1;
             }
         }
     } else {
@@ -312,7 +344,7 @@
         # The following is a dirty hack - we read the end of line already
         # and now we still must exit the loop...
         if (0 == $classOpen) {
- $classLine = "};\n";
+ $classLine = $classClosePrefix."};\n";
         } else {
             $classLine = <>;
         }


Boost-Commit list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk