$include_dir="/home/hyper-archives/boost-commit/include"; include("$include_dir/msg-header.inc") ?>
From: huseyinakcan_at_[hidden]
Date: 2007-06-25 00:37:04
Author: huseyinakcan
Date: 2007-06-25 00:37:02 EDT (Mon, 25 Jun 2007)
New Revision: 7138
URL: http://svn.boost.org/trac/boost/changeset/7138
Log:
syntax corrections in the hds_concepts
Text files modified: 
   sandbox/SOC/2007/geometry/libs/hdstl/dev/hds_concepts/backward_hds_concept.hpp              |    17 +++++-----                              
   sandbox/SOC/2007/geometry/libs/hdstl/dev/hds_concepts/bidirectional_hds_concept.hpp         |    16 ++-------                               
   sandbox/SOC/2007/geometry/libs/hdstl/dev/hds_concepts/facet_hds_concept.hpp                 |    15 +++++----                               
   sandbox/SOC/2007/geometry/libs/hdstl/dev/hds_concepts/forward_hds_concept.hpp               |    19 ++++++-----                             
   sandbox/SOC/2007/geometry/libs/hdstl/dev/hds_concepts/halfedge_list_hds_concept.hpp         |    26 ++++++++--------                        
   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      |    38 +++++++++--------------                 
   sandbox/SOC/2007/geometry/libs/hdstl/dev/hds_concepts/mutable_bidirectional_hds_concept.hpp |    47 +++++++++++------------------           
   sandbox/SOC/2007/geometry/libs/hdstl/dev/hds_concepts/mutable_facet_hds_concept.hpp         |    38 +++++++++++------------                 
   sandbox/SOC/2007/geometry/libs/hdstl/dev/hds_concepts/mutable_forward_hds_concept.hpp       |    39 +++++++++---------------                
   sandbox/SOC/2007/geometry/libs/hdstl/dev/hds_concepts/mutable_hds_concept.hpp               |    33 +++++++-------------                    
   sandbox/SOC/2007/geometry/libs/hdstl/dev/hds_concepts/mutable_vertex_hds_concept.hpp        |    60 +++++++++++++++++---------------------  
   sandbox/SOC/2007/geometry/libs/hdstl/dev/hds_concepts/vertex_hds_concept.hpp                |    33 +++++++++++++++-----                    
   sandbox/SOC/2007/geometry/libs/hdstl/dev/hds_concepts/vertex_list_hds_concept.hpp           |    62 ++++++++++++++++++--------------------- 
   14 files changed, 209 insertions(+), 244 deletions(-)
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-25 00:37:02 EDT (Mon, 25 Jun 2007)
@@ -40,7 +40,7 @@
 //
 ///Associated types
 ///----------------
-//  - 'hds_traits<HDS>::halfedge_descriptor': from 'HDSConcept'.
+// In addition to the types of the 'HDS' concept:
 //  - 'hds_traits<HDS>::traversal_category':  from 'HDSConcept', with
 //     additional requirement that this type must be convertible to
 //     'hdstl::backward_traversal_tag'.
@@ -49,12 +49,12 @@
 //
 ///Definitions
 ///-----------
-//  - 'halfedge_descriptor' is a type that contains information to access 
-//     the halfedge.  (See the 'HDS' concept or a full definition.)
+// In addition to the definitions of the 'HDS' concept:
 //  - 'traversal_category' is a type that contains information about the 
 //     direction of the traversal, which is forward, backward or bidirectional.
-//     For this 'BackwardHDS' concept, the 'traversal_category' has to be convertible to  
-//     the 'hdstl::backward_traversal_tag' type defined in '<boost/hdstl.hpp>'.
+//     For this 'BackwardHDS' concept, the 'traversal_category' has to be 
+//     convertible to the 'hdstl::backward_traversal_tag' type defined in 
+//     '<boost/hdstl.hpp>'.
 //  - 'backward_category' defines the primary accessor of the backward
 //     information for use by algorithms which desire the most direct access. 
 //
@@ -80,6 +80,7 @@
 //
 ///Complexity guarantees
 ///---------------------
+// In addition to the complexity guarantees of the 'HDS' concept:
 //  - 'prev_in_facet(hds,h)': amortized constant time.
 //  - 'prev_at_source(hds,h)': amortized constant time.
 //  - 'prev_at_target(hds,h)': amortized constant time.
@@ -162,9 +163,9 @@
             function_requires<ConvertibleConcept<traversal_category,
             backward_traversal_tag> >();  
             const bool is_valid_storage_tag =
-                    is_convertible<backward_category,prev_at_source_tag>::value ||
-                    is_convertible<backward_category,prev_at_target_tag>::value ||
-                    is_convertible<backward_category,prev_in_facet_tag>::value;
+                  is_convertible<backward_category,prev_at_source_tag>::value ||
+                  is_convertible<backward_category,prev_at_target_tag>::value ||
+                  is_convertible<backward_category,prev_in_facet_tag>::value;
             BOOST_STATIC_ASSERT( is_valid_storage_tag ); 
 
             const_constraints(hds);
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-25 00:37:02 EDT (Mon, 25 Jun 2007)
@@ -37,29 +37,21 @@
 //
 ///Associated types
 ///----------------
-//  - 'hds_traits<HDS>::halfedge_descriptor': from 'HDSConcept'.
+// In addition to the types of the 'ForwardHDS' and 'BackwardHDS' concepts:
 //  - 'hds_traits<HDS>::traversal_category' :  from 'HDSConcept', with
 //     the additional requirement that this type must be convertible to
 //     the 'hds_traits<HDS>::bidirectional_traversal_tag' type which is
 //     defined in '<boost/hdstl.hpp>'.
-//  - 'hds_traits<HDS>::forward_category': from 'ForwardHDSConcept' 
-//  - 'hds_traits<HDS>::backward_category': from 'BackwardHDSConcept' 
 //
 ///Definitions
 ///-----------
-//  - 'halfedge_descriptor' is a type that contains information to access 
-//     the halfedge.  (See the 'HDSConcept' for a full definition.)
+// In addition to the definitions of the 'ForwardHDS' and 'BackwardHDS'
+// concepts:
 //  - 'traversal_category' is a type that contains information about the 
 //     direction of the traversal, which is forward, backward or bidirectional.
 //     For this 'BidirectionalHDS' concept, the 'traversal_category' has to be 
 //     convertible to the 'hdstl::bidirectional_traversal_tag' type defined 
 //     in '<boost/hdstl.hpp>'.
-//  - 'forward_category' defines the primary accessor of the forward
-//     information for use by algorithms which desire the most direct access. 
-//     (See the 'ForwardHDSConcept' for a full definition.)
-//  - 'backward_category' defines the primary accessor of the backward
-//     information for use by algorithms which desire the most direct access. 
-//     (See the 'BackwardHDSConcept' for a full definition.)
 //
 ///Valid Expressions
 ///-----------------
@@ -79,7 +71,7 @@
 ///Invariants 
 ///----------
 // 'BidirectionalHDSConcept' should validate all the invariants for the 
-// 'ForwardHDSConcept', and the 'BackwardHDSConcept'.
+// 'ForwardHDSConcept' and the 'BackwardHDSConcept'.
 //
 ///Concept-checking class
 ///----------------------
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-25 00:37:02 EDT (Mon, 25 Jun 2007)
@@ -34,12 +34,13 @@
 //
 ///Associated types
 ///----------------
-// In addition to the types required by the 'HDSConcept':
+// In addition to the types of the 'HDS' concept:
 //  - 'hds_traits<HDS>::facet_descriptor': must be 'DefaultConstructible', 
 //    'CopyConstructible', 'EqualityComparable', and 'Assignable'.
 //
 ///Definitions
 ///-----------
+// In addition to the definitions of the 'HDS' concept:
 //  - 'halfedge_descriptor' is a type that contains information to access 
 //     the halfedge.  (See the 'HDSConcept' for a full definition.)
 //  - 'facet_descriptor' is a type that contains information to access the
@@ -48,12 +49,12 @@
 //
 ///Valid Expressions
 ///-----------------
-// In addition to the valid expressions of the 'HDSConcept':
+// In addition to the valid expressions of the 'HDS' concept:
 //  - 'facet(hds,h)' must return a value assignable to 'f'.
 //
 ///Expression Semantics
 ///--------------------
-// In addition to the expressions semantics of the 'HDSConcept':
+// In addition to the expressions semantics of the 'HDS' concept:
 //  - 'hds_traits<HDS>::supports_facets': must compare equal to 'true'.
 //  - 'facet(hds,h)' returns the facet descriptor of the facet to the
 //     left of 'h', when forward facet cycles are oriented in
@@ -61,7 +62,7 @@
 //
 ///Complexity guarantees
 ///---------------------
-// In addition to the complexity guarantees of the 'HDSConcept':
+// In addition to the complexity guarantees of the 'HDS' concept:
 //  - 'facet(hds,h)': amortized constant time.
 //
 ///Invariants 
@@ -116,9 +117,9 @@
 
        // 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].
+           // 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
        void constraints() 
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-25 00:37:02 EDT (Mon, 25 Jun 2007)
@@ -40,7 +40,7 @@
 //
 ///Associated types
 ///----------------
-//  - 'hds_traits<HDS>::halfedge_descriptor': from 'HDSConcept'.
+// In addition to the types of the 'HDS' concept:
 //  - 'hds_traits<HDS>::traversal_category':  from 'HDSConcept', with
 //     additional requirement that this type must be convertible to
 //     'hdstl::forward_traversal_tag'.
@@ -49,12 +49,12 @@
 //
 ///Definitions
 ///-----------
-//  - 'halfedge_descriptor' is a type that contains information to access 
-//     the halfedge.  (See the 'HDS' concept or a full definition.)
+// In addition to the definitions of the 'HDS' concept:
 //  - 'traversal_category' is a type that contains information about the 
-//     direction of the traversal, which is forward, forward or bidirectional.
-//     For this 'ForwardHDS' concept, the 'traversal_category' has to be convertible to  
-//     the 'hdstl::forward_traversal_tag' type defined in '<boost/hdstl.hpp>'.
+//     direction of the traversal, which is forward, backward or bidirectional.
+//     For this 'ForwardHDS' concept, the 'traversal_category' has to be 
+//     convertible to the 'hdstl::forward_traversal_tag' type defined in 
+//     '<boost/hdstl.hpp>'.
 //  - 'forward_category' defines the primary accessor of the forward
 //     information for use by algorithms which desire the most direct access. 
 //
@@ -80,6 +80,7 @@
 //
 ///Complexity guarantees
 ///---------------------
+// In addition to the complexity guarantees of the 'HDS' concept:
 //  - 'next_in_facet(hds,h)': amortized constant time.
 //  - 'next_at_source(hds,h)': amortized constant time.
 //  - 'next_at_target(hds,h)': amortized constant time.
@@ -166,9 +167,9 @@
             function_requires<ConvertibleConcept<traversal_category,
             forward_traversal_tag> >();  
             const bool is_valid_storage_tag =
-                    is_convertible<forward_category,next_at_source_tag>::value ||
-                    is_convertible<forward_category,next_at_target_tag>::value ||
-                    is_convertible<forward_category,next_in_facet_tag>::value;
+                   is_convertible<forward_category,next_at_source_tag>::value ||
+                   is_convertible<forward_category,next_at_target_tag>::value ||
+                   is_convertible<forward_category,next_in_facet_tag>::value;
             BOOST_STATIC_ASSERT( is_valid_storage_tag ); 
 
             const_constraints(hds);
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-25 00:37:02 EDT (Mon, 25 Jun 2007)
@@ -32,20 +32,20 @@
 //  - 'hds'  A non-modifiable instance of HDS
 //  - 'h'    Halfedge descriptor, of type 'hds_traits<HDS>::halfedge_descriptor'
 //  - 'p'    Halfedge iterator, of type 'hds_traits<HDS>::halfedge_iterator'
-//  - 'n'    Halfedge size type, of type 'hds_traits<HDS>::size_type'
+//  - 'n'    Halfedge list size, of type 'hds_traits<HDS>::size_type'
 //
 ///Associated types
 ///----------------
-//  - 'hds_traits<HDS>::halfedge_descriptor': must be 'DefaultConstructible', 
-//    'CopyConstructible', 'EqualityComparable', and 'Assignable'.
-//  - 'hds_traits<HDS>::halfedge_iterator': must be 'ForwardIterator'.
+// In addition to the types of the 'HDS' concept:
+//  - 'hds_traits<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'.
 //    Its value type must be the same as the 'halfedge_descriptor' type.
-//  - 'hds_traits<HDS>::size_type': integral halfedge size type.
+//  - 'hds_traits<HDS>::size_type': integral size type.
 //
 ///Definitions
 ///-----------
-//  - 'halfedge_descriptor' is a type that contains information to access 
-//     the halfedge.  (See the 'HDSConcept' for a full definition.)
+// In addition to the definitions of the 'HDS' concept:
 //  - 'halfedge_iterator' is an iterator type for the halfedges.
 //  - 'size_type' defines the size type.
 //
@@ -58,11 +58,11 @@
 //
 ///Expression Semantics
 ///--------------------
-// In addition to the valid expression semantics of the 'HDS' concept:
+// In addition to the expression semantics of the 'HDS' concept:
 //  - 'halfedges_begin(hds)' returns a 'halfedge_iterator' pointing to the 
-//    beginning of the 'halfedge list'.
+//    beginning of the "halfedge list".
 //  - 'halfedges_end(hds)' returns a 'halfedge_iterator' pointing to the 
-//    end of the 'halfedge list'.
+//    end of the "halfedge list".
 //  - 'num_halfedges(hds)' returns the number of halfedges in the 'HDS' data
 //    structure.
 //
@@ -75,7 +75,8 @@
 ///Invariants 
 ///----------
 // In addition to the invariants of the 'HDSConcept':
-//  - 'std::distance(halfedges_begin(hds), halfedges_end(hds)) == num_halfedges(hds)'
+//  - 'std::distance(halfedges_begin(hds), halfedges_end(hds)) 
+//                                       == num_halfedges(hds)'
 //
 ///Concept-checking class
 ///----------------------
@@ -173,8 +174,7 @@
        //DATA
        HalfedgeListHDS hds;      // a halfedge data structure object
        halfedge_descriptor h;    // a halfedge descriptor
-       halfedge_iterator b;      // a halfedge iterator
-       halfedge_iterator e;      // a halfedge iterator
+       halfedge_iterator b,e;    // halfedge iterators
        size_type n;              // halfedge size type
 
    };
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-25 00:37:02 EDT (Mon, 25 Jun 2007)
@@ -35,12 +35,13 @@
 ///--------
 //  - 'HDS'    A type that is a model of 'HDSConcept'
 //  - 'hds'    A non-modifiable instance of 'HDS'
-//  - 'h','g'  Halfedge descriptors, of type 'hds_traits<HDS>::halfedge_descriptor'
+//  - 'h','g'  Halfedge descriptors, of type 
+//    'hds_traits<HDS>::halfedge_descriptor'
 //
 ///Associated types
 ///----------------
-//  - 'hds_traits<HDS>::halfedge_descriptor': must be 'DefaultConstructible' and 
-//    'CopyConstructible', 'EqualityComparable', 'Assignable'.
+//  - 'hds_traits<HDS>::halfedge_descriptor': must be 'DefaultConstructible',
+//    'CopyConstructible', 'EqualityComparable', and 'Assignable'.
 //
 ///Definitions
 ///-----------
@@ -56,12 +57,15 @@
 // The following expression must be valid and obey the syntactic requirement:
 //   - 'opposite(hds, h)' must return a value assignable to 'h'.
 //   - 'hds_traits<HDS>::supports_facets' must be usable as a Boolean.
+//   - 'hds_traits<HDS>::supports_vertices' must be usable as a Boolean.
 //
 ///Expression Semantics
 ///--------------------
 // The expressions semantics are as follows:
 //   - 'hds_traits<HDS>::supports_facets' is true if and only if 'HDS'
 //     is a model of the 'FacetHDS' concept (see the page [facethdsconcept]).
+//   - 'hds_traits<HDS>::supports_vertices' is true if and only if 'HDS'
+//     is a model of the 'VertexHDS' concept (see the page [vertexhdsconcept]).
 //   - 'opposite(hds, h)' returns a descriptor to the halfedge opposite 'h' in
 //     the data structure 'hds'. Does not modify the state of either 'hds'
 //     or 'h'.
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-25 00:37:02 EDT (Mon, 25 Jun 2007)
@@ -30,30 +30,22 @@
 ///Notation
 ///--------
 //  - 'HDS'    A type that is a model of 'MutableBackwardHDSConcept'
-//  - 'hds'    A non-modifiable instance of 'HDS'
+//  - 'hds'    A modifiable instance of 'HDS'
 //  - 'h','g'  Halfedge descriptors, of type 
 //    'hds_traits<HDS>::halfedge_descriptor'
 //
 ///Associated types
 ///----------------
-//  - 'hds_traits<HDS>::halfedge_descriptor': from 'HDSConcept'.
-//  - 'hds_traits<HDS>::traversal_category':  from 'BackwardHDSConcept'.
-//  - 'hds_traits<HDS>::backward_category':   from 'BackwardHDSConcept'.
+// None besides the types in the 'MutableHDS' and 'BackwardHDS' concepts.
 //
 ///Definitions
 ///-----------
-//  - 'halfedge_descriptor' is a type that contains information to access 
-//     the halfedge.  (See the 'HDS' concept for a full definition.)
-//  - 'traversal_category' is a type that contains information about the 
-//     direction of the traversal, which is forward, backward or bidirectional.
-//     (See the 'HDS' concept for a full definition.)
-//  - 'backward_category' defines the primary accessor of the backward
-//     information for use by algorithms which desire the most direct access. 
-//     (See the 'HDS' concept for a full definition.)
+// None besides the definitions in the 'MutableHDS' and 'BackwardHDS' 
+// concepts.
 //
 ///Valid Expressions
 ///-----------------
-// In addition to the valid expressions of the 'HDS' and the 
+// In addition to the valid expressions of the 'MutableHDS' and the 
 // 'BackwardHDS' concepts:
 //   - 'set_prev_in_facet(hds,h,g)' sets 'g' as the 'prev_in_facet' value of 
 //     'h'.
@@ -64,8 +56,8 @@
 //
 ///Expression Semantics
 ///--------------------
-// In addition to the expression semantics of the 'HDS' concept, and the
-// 'BackwardHDS' concept:
+// In addition to the expression semantics of the 'Mutable HDS' and the
+// 'BackwardHDS' concepts:
 //   - 'set_prev_in_facet(hds,h,g)' sets 'g' as the halfedge 
 //      preceding 'h' in the adjacent facet cycle, when facet cycles are
 //      oriented in counter-clockwise order.
@@ -78,6 +70,8 @@
 //
 ///Complexity guarantees
 ///---------------------
+// In addition to the complexity guarantees of the 'Mutable HDS' and the
+// 'BackwardHDS' concepts:
 //  - 'set_prev_in_facet(hds,h,g)': amortized constant time.
 //  - 'set_prev_at_source(hds,h,g)': amortized constant time.
 //  - 'set_prev_at_target(hds,h,g)': amortized constant time.
@@ -110,8 +104,7 @@
 //      }
 //    private:
 //      MutableBackwardHDS hds;
-//      halfedge_descriptor h;
-//      halfedge_descriptor g;
+//      halfedge_descriptor h,g;
 //  };
 //..
 
@@ -141,10 +134,10 @@
         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;
-        // The specialization of 'hds_traits<HDS>' must have these
-        // required types, obeying the types requirements stated in the
-        // detailed description of the 'MutableBackwardHDS' concept on page
-        // [mutablebackwardhdsconcept].
+            // The specialization of 'hds_traits<HDS>' must have these
+            // required types, obeying the types requirements stated in the
+            // detailed description of the 'MutableBackwardHDS' concept on page
+            // [mutablebackwardhdsconcept].
 
         // MANIPULATORS
         void constraints() 
@@ -174,8 +167,7 @@
       private:
         // DATA
         MutableBackwardHDS hds; // a halfedge data structure object
-        halfedge_descriptor h;  // a halfedge descriptor
-        halfedge_descriptor g;  // another halfedge descriptor
+        halfedge_descriptor h,g;  // halfedge descriptors
     };
 
 }  // close namespace concepts
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-25 00:37:02 EDT (Mon, 25 Jun 2007)
@@ -34,46 +34,34 @@
 ///Notation
 ///--------
 //  - 'HDS'     A type that is a model of 'MutableBidirectionalHDSConcept'
-//  - 'hds'     A non-modifiable instance of 'HDS'
+//  - 'hds'     A modifiable instance of 'HDS'
 //  - 'h','g'   Halfedge descriptors, of type 
 //              'hds_traits<HDS>::halfedge_descriptor'
 //
 ///Associated types
 ///----------------
-//  - 'hds_traits<HDS>::halfedge_descriptor': from 'HDSConcept'.
-//  - 'hds_traits<HDS>::traversal_category' : must be convertible to
-//    'hds_traits<HDS>::bidirectional_traversal_tag'.
-//  - 'hds_traits<HDS>::forward_category'   : from 'ForwardHDSConcept' 
-//  - 'hds_traits<HDS>::backward_category'  : from 'BackwardHDSConcept' 
+//  None besides the types in the 'BidirectionalHDS', 'MutableForwardHDS',
+//  and 'MutableBackwardHDS' concepts
 //
 ///Definitions
 ///-----------
-//  - 'halfedge_descriptor' is a type that contains information to access 
-//     the halfedge.  (See the 'HDSConcept' for a full definition.)
-//  - 'traversal_category' is a type that contains information about the 
-//     direction of the traversal, which is forward, backward or bidirectional.
-//     For this 'MutableBidirectionalHDS' concept, the 'traversal_category' has to be 
-//     convertible to the 'hdstl::bidirectional_traversal_tag' type defined 
-//     in '<boost/hdstl.hpp>'.
-//  - '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. 
+//  Same as the definitions in the 'BidirectionalHDS', 'MutableForwardHDS',
+//  and 'MutableBackwardHDS' concepts
 //
 ///Valid Expressions
 ///-----------------
-//  See the valid expressions of the 'MutableForwardHDSConcept' and 
-//    the 'MutableBackwardHDSConcept'.
+//  Same as the valid expressions in the 'BidirectionalHDS', 
+//  'MutableForwardHDS', and 'MutableBackwardHDS' concepts
 //
 ///Expression Semantics
 ///--------------------
-//  See the expression semantics of the 'MutableForwardHDSConcept' and 
-//  the 'MutableBackwardHDSConcept'.
+//  Same as the expression semantics in the 'BidirectionalHDS', 
+//  'MutableForwardHDS', and 'MutableBackwardHDS' concepts
 //
 ///Complexity guarantees
 ///---------------------
-//  See the complexity guarantees of the 'MutableForwardHDSConcept' and 
-//  the 'MutableBackwardHDSConcept'.
+//  Same as the complexity guarantees in the 'BidirectionalHDS', 
+//  'MutableForwardHDS', and 'MutableBackwardHDS' concepts
 //
 ///Invariants 
 ///----------
@@ -130,10 +118,10 @@
         typedef typename hds_traits<HDS>::traversal_category traversal_category;
         typedef typename hds_traits<HDS>::forward_category forward_category;
         typedef typename hds_traits<HDS>::backward_category backward_category;
-        // The specialization of 'hds_traits<HDS>' must have these required
-        // types, obeying the types requirements stated in the detailed
-        // description of the 'MutableBidirectionalHDS' concept on page 
-        // [mutablebidirectionalhdsconcept].
+            // The specialization of 'hds_traits<HDS>' must have these required
+            // types, obeying the types requirements stated in the detailed
+            // description of the 'MutableBidirectionalHDS' concept on page 
+            // [mutablebidirectionalhdsconcept].
 
         //MANIPULATORS
         void constraints() 
@@ -152,11 +140,12 @@
         // ACCESSORS
         void const_constraints(HDS const& hds)
             // Check that the non-modifiable 'HDS' template parameters
-            // satisfies all the constraints of 'MutableBidirectionalHDSConcept'.
+            // satisfies all the constraints of 
+            // 'MutableBidirectionalHDSConcept'.
         {
         }
 
-        private:
+      private:
         //DATA
         MutableBidirectionalHDS hds;     // a halfedge data structure object
    };
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-25 00:37:02 EDT (Mon, 25 Jun 2007)
@@ -31,36 +31,32 @@
 ///Notation
 ///--------
 //  - 'HDS'   A type that is a model of MutableFacetHDSConcept
-//  - 'hds'   A non-modifiable instance of HDS
+//  - 'hds'   A modifiable instance of HDS
 //  - 'f'     Facet descriptor, of type 'hds_traits<HDS>::facet_descriptor'
 //
 ///Associated types
 ///----------------
-//  - 'hds_traits<HDS>::facet_descriptor': must be 'DefaultConstructible', 
-//    'CopyConstructible', 'EqualityComparable', and 'Assignable'.
+//  None besides the types in the 'MutableHDS' and 'FacetHDS' concepts.
 //
 ///Definitions
 ///-----------
-//  - 'halfedge_descriptor' is a type that contains information to access 
-//     the halfedge.  (See the 'HDSConcept' for a full definition.)
-//  - 'facet_descriptor' is a type that contains information to access the
-//     facets. (See the 'FacetHDSConcept' for a full definition.) 
+//  Same as the definitions in the 'MutableHDS' and 'FacetHDS' concepts.
 //
 ///Valid Expressions
 ///-----------------
-// In addition to the valid expressions of the 'FacetHDS' concept, and the 
-// 'MutableHDS' concept:
+// In addition to the valid expressions of the 'FacetHDS' and the 
+// 'MutableHDS' concepts:
 //  - 'set_facet(hds,h,f)' sets the facet descriptor value of 'h' to 'f'.
-//  - 'add_facet(hds,f)'   adds a new facet 'f' to the 'hds' data structure.
+//  - 'new_facet(hds)' creates a new facet 'f' in data structure 'hds'.
 //  - 'remove_facet(hds,f)' removes the facet 'f' from the 'hds' data structure.
 //
 ///Expression Semantics
 ///--------------------
-// In addition to the expression semantics of the 'FacetHDS' concept, and the 
-// 'MutableHDS' concept.
+// In addition to the expression semantics of the 'FacetHDS' and the 
+// 'MutableHDS' concepts.
 //  - 'set_facet(hds,h,f)' sets the facet descriptor value of 'h' to 'f' for a
 //    single halfedge in the 'hds' data structure.
-//  - 'add_facet(hds)'   adds a new facet to the 'hds' data structure
+//  - 'new_facet(hds)' creates a new facet 'f' data structure 'hds'
 //    and returns the facet descriptor of this new facet.
 //    By this operation the facet is added but no connections to the halfedges
 //    are set. In order to assign facets to halfedges 'set_facet(hds,h,f)' 
@@ -71,8 +67,10 @@
 //
 ///Complexity guarantees
 ///---------------------
+// In addition to the complexity guarantees of the 'FacetHDS' and the 
+// 'MutableHDS' concepts.
 //  - 'set_facet(hds,h,f)' : amortized constant time.
-//  - 'add_facet(hds)': amortized constant time.
+//  - 'new_facet(hds)': amortized constant time.
 //  - 'remove_facet(hds,f)': amortized constant time.
 //
 ///Invariants 
@@ -93,12 +91,12 @@
 //       function_requires<CopyConstructibleConcept<facet_descriptor> >();
 //       function_requires<EqualityComparableConcept<facet_descriptor> >();
 //       function_requires<AssignableConcept<facet_descriptor> >();
-//    }
-//    void const_constraints(HDS const& hds) {
 //       set_facet(hds,h,f);
-//       f = add_facet(hds);
+//       f = new_facet(hds);
 //       remove_facet(hds,f);
 //    }
+//    void const_constraints(HDS const& hds) {
+//    }
 //    HDS hds;
 //    halfedge_descriptor h;
 //    facet_descriptor f;
@@ -146,6 +144,9 @@
            function_requires<CopyConstructibleConcept<facet_descriptor> >();
            function_requires<EqualityComparableConcept<facet_descriptor> >();
            function_requires<AssignableConcept<facet_descriptor> >();
+           set_facet(hds,h,f);
+           f = new_facet(hds);
+           delete_facet(hds,f);
            const_constraints(hds);
        }
 
@@ -154,9 +155,6 @@
            // Check that the non-modifiable 'HDS' template parameters
            // satisfies all the constraints of 'MutableFacetHDSConcept'.
        {
-           set_facet(hds,h,f);
-           f = add_facet(hds);
-           delete_facet(hds,f);
        }
 
      private:
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-25 00:37:02 EDT (Mon, 25 Jun 2007)
@@ -30,31 +30,22 @@
 ///Notation
 ///--------
 //  - 'HDS'    A type that is a model of 'MutableForwardHDSConcept'
-//  - 'hds'    A non-modifiable instance of 'HDS'
+//  - 'hds'    A modifiable instance of 'HDS'
 //  - 'h','g'  Halfedge descriptors, of type 
 //    'hds_traits<HDS>::halfedge_descriptor'
 //
 ///Associated types
 ///----------------
-//  - 'hds_traits<HDS>::halfedge_descriptor': from 'HDSConcept'.
-//  - 'hds_traits<HDS>::traversal_category':  from 'ForwardHDSConcept'.
-//  - 'hds_traits<HDS>::forward_category':   from 'ForwardHDSConcept'.
+// None besides the types in the 'MutableHDS' and the 'ForwardHDS' concepts.
 //
 ///Definitions
 ///-----------
-//  - 'halfedge_descriptor' is a type that contains information to access 
-//     the halfedge.  (See the 'HDS' concept for a full definition.)
-//  - 'traversal_category' is a type that contains information about the 
-//     direction of the traversal, which is forward, backward or bidirectional.
-//     (See the 'HDS' concept for a full definition.)
-//  - 'forward_category' defines the primary accessor of the forward
-//     information for use by algorithms which desire the most direct access. 
-//     (See the 'HDS' concept for a full definition.)
+// Same as the definitions in the 'MutableHDS' and the 'ForwardHDS' concepts.
 //
 ///Valid Expressions
 ///-----------------
-// In addition to the valid expressions of the 'HDS' concept, and the 
-// 'ForwardHDS' concept:
+// In addition to the valid expressions of the 'MutableHDS' and the 
+// 'ForwardHDS' concepts:
 //   - 'set_next_in_facet(hds,h,g)' sets 'g' as the 'next_in_facet' value of 
 //     'h'.
 //   - 'set_next_at_source(hds,h,g)' sets 'g' as the 'next_at_source' value of 
@@ -64,8 +55,8 @@
 //
 ///Expression Semantics
 ///--------------------
-// In addition to the expression semantics of the 'HDS' concept, and the
-// 'ForwardHDS' concept:
+// In addition to the expression semantics of the 'MutableHDS' and the
+// 'ForwardHDS' concepts:
 //   - 'set_next_in_facet(hds,h,g)' sets 'g' as the halfedge 
 //      succeeding 'h' in the adjacent facet cycle, when facet cycles are
 //      oriented in counter-clockwise order.
@@ -78,6 +69,8 @@
 //
 ///Complexity guarantees
 ///---------------------
+// In addition to the complexity guarantees of the 'MutableHDS' and the
+// 'ForwardHDS' concepts:
 //  - 'set_next_in_facet(hds,h,g)': amortized constant time.
 //  - 'set_next_at_source(hds,h,g)': amortized constant time.
 //  - 'set_next_at_target(hds,h,g)': amortized constant time.
@@ -110,8 +103,7 @@
 //      }
 //    private:
 //      MutableForwardHDS hds;
-//      halfedge_descriptor h;
-//      halfedge_descriptor g;
+//      halfedge_descriptor h,g;
 //  };
 //..
 
@@ -141,10 +133,10 @@
         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;
-        // The specialization of 'hds_traits<HDS>' must have these
-        // required types, obeying the types requirements stated in the
-        // detailed description of the 'MutableForwardHDS' concept on page
-        // [mutableforwardhdsconcept].
+            // The specialization of 'hds_traits<HDS>' must have these
+            // required types, obeying the types requirements stated in the
+            // detailed description of the 'MutableForwardHDS' concept on page
+            // [mutableforwardhdsconcept].
 
         // MANIPULATORS
         void constraints() 
@@ -174,8 +166,7 @@
       private:
         // DATA
         MutableForwardHDS hds; // a halfedge data structure object
-        halfedge_descriptor h;  // a halfedge descriptor
-        halfedge_descriptor g;  // another halfedge descriptor
+        halfedge_descriptor h,g;  // halfedge descriptors
     };
 
 }  // close namespace concepts
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-25 00:37:02 EDT (Mon, 25 Jun 2007)
@@ -34,33 +34,26 @@
 //  - 'HDS'      A type that is a model of 'MutableHDSConcept'
 //  - 'hds'      A modifiable instance of 'HDS'
 //  - 'h', h1','h2'
-//               Halfedge descriptors, of type 'hds_traits<HDS>::halfedge_descriptor'
+//         Halfedge descriptors, of type 'hds_traits<HDS>::halfedge_descriptor'
 //
 ///Associated types
 ///----------------
-//  - 'hds_traits<HDS>::halfedge_descriptor': must be 'DefaultConstructible', 
-//    'CopyConstructible', 'EqualityComparable', and 'Assignable'.
+// None besides the types of the 'HDS' concept,
 //
 ///Definitions
 ///-----------
-// 'halfedge descriptor' is a type that contains information to access
-// the halfedge.  Note that the halfedge descriptor type (accessible as a
-// member of the 'hds_traits<HDS>' 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 it is a pointer type.
+// Same as the definitions of the 'HDS' concept,
 //
 ///Valid Expressions
 ///-----------------
-// In addition to the valid expressions of the 'HDS' concept,
-// the following expressions must be valid and obey the syntactic requirement:
+// In addition to the valid expressions of the 'HDS' concept:
 //  - 'set_opposite(hds,h1,h2)'
 //  - 'h = new_edge(hds)'
 //  - 'delete_edge(hds,h)'
 //
 ///Expression Semantics
 ///--------------------
-// The expressions semantics are as follows:
+// In addition to the expression semantics of the 'HDS' concept:
 //  - 'set_opposite(hds,h1,h2)' sets 'h1' and 'h2' as opposites of each other 
 //    in the data structure 'hds'. 
 //  - 'new_edge(hds)' creates a new edge in data structure 'hds', and
@@ -74,6 +67,7 @@
 //
 ///Complexity guarantees
 ///---------------------
+// In addition to the complexity guarantees of the 'HDS' concept:
 //  - 'set_opposite(hds,h1,h2)': amortized constant time.
 //  - 'new_edge(hds)': amortized constant time.
 //  - 'delete_edge(hds,h)' : amortized constant time.
@@ -99,8 +93,7 @@
 //    void const_constraints(HDS const& hds) {
 //    }
 //    HDS hds;
-//    halfedge_descriptor h1;
-//    halfedge_descriptor h2;
+//    halfedge_descriptor h,h1,h2;
 // };
 //.. 
 
@@ -130,10 +123,10 @@
         // 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 'MutableHDS' concept on page
-        // [mutablehdsconcept].
+            // The specialization of 'hds_traits<HDS>' must have these
+            // required types, obeying the types requirements stated in the
+            // detailed description of the 'MutableHDS' concept on page
+            // [mutablehdsconcept].
 
         // MANIPULATORS
         void constraints() 
@@ -159,9 +152,7 @@
         private:
         // DATA
             HDS hds;                   // a halfedge data structure object
-            halfedge_descriptor h;     // a halfedge descriptor
-            halfedge_descriptor h1;    // a halfedge descriptor
-            halfedge_descriptor h2;    // a halfedge descriptor
+            halfedge_descriptor h,h1,h2;  // halfedge descriptors
    };
 
 }  // close namespace concepts
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-25 00:37:02 EDT (Mon, 25 Jun 2007)
@@ -12,7 +12,8 @@
 //  BOOST_CLASS_REQUIRE(HDS, boost::hdstl,MutableVertexHDSConcept);
 //..
 // inside a class body, checks whether the type given as template
-// argument is a model of the HDS concept described on the page [mutablevertexhds].
+// argument is a model of the HDS concept described on the page 
+// [mutablevertexhds].
 //
 //@CONCEPT: [mutablevertexhds] Mutable Vertex HDS concept
 //
@@ -30,38 +31,35 @@
 ///Notation
 ///--------
 //  - 'HDS'  A type that is a model of 'MutableVertexHDSConcept'
-//  - 'hds'  A non-modifiable instance of 'HDS'
+//  - 'hds'  A modifiable instance of 'HDS'
 //  - 'v'    Vertex descriptor, of type 'hds_traits<HDS>::vertex_descriptor'
 //
 ///Associated types
 ///----------------
-//  - 'hds_traits<HDS>::vertex_descriptor': must be 'DefaultConstructible', 
-//    'CopyConstructible', 'EqualityComparable', and 'Assignable'.
+// None besides the types in the 'VertexHDS' and the 'MutableHDS' concepts.
 //
 ///Definitions
 ///-----------
-//  - 'halfedge_descriptor' is a type that contains information to access 
-//     the halfedge.  (See the 'HDSConcept' for a full definition.)
-//  - 'vertex_descriptor' is a type that contains information to access the
-//     vertex at the source of the halfedge.
+// Same as the definitions in the 'VertexHDS' and the 'MutableHDS' concepts.
 //
 ///Valid Expressions
 ///-----------------
-// In addition to the valid expressions of the 'MutableHDS' concept, and the
-// 'VertexHDS' concept:
-//  - 'set_vertex(hds,h,v)'  sets the source vertex descriptor value of 'h' to 
+// In addition to the valid expressions of the 'VertexHDS' and the
+// 'MutableHDS' concepts:
+//  - 'set_vertex(hds,h,v)' sets the source vertex descriptor value of 'h' to 
 //    'v'.
-//  - 'add_vertex(hds,v)'    adds a new vertex 'v' to the 'hds' data structure.
+//  - 'new_vertex(hds)' adds a new vertex 'v' to the 'hds' data structure
+//    and returns the vertex descriptor to this new vertex.
 //  - 'remove_vertex(hds,v)' removes the vertex 'v' from the 'hds' data 
 //    structure.
 //
 ///Expression Semantics
 ///--------------------
-// In addition to the expression semantics of the 'MutableHDS' concept, and the
-// 'VertexHDS' concept:
+// In addition to the expression semantics of the 'VertexHDS' and the
+// 'MutableHDS' concepts:
 //  - 'set_vertex(hds,h,v)'  sets the source vertex descriptor value of 'h' to 
 //    'v' for a single halfedge in the 'hds' data structure.
-//  - 'add_vertex(hds,v)'    adds a new vertex 'v' to the 'hds' data structure.
+//  - 'new_vertex(hds)' adds a new vertex 'v' to the 'hds' data structure.
 //    By this operation the vertex is added but no connections to the halfedges
 //    are set. In order to assign vertces to halfedges 'set_vertex(hds,h,v)' 
 //    operation should be used.
@@ -71,14 +69,16 @@
 //
 ///Complexity guarantees
 ///---------------------
-//  - 'set_vertex(hds,h,v)'   : amortized constant time.
-//  - 'add_vertex(hds,f)'     : amortized constant time.
-//  - 'remove_vertex(hds,v)'  : amortized constant time.
+// In addition to the complexity guarantees of the 'VertexHDS' and the
+// 'MutableHDS' concepts:
+//  - 'set_vertex(hds,h,v)': amortized constant time.
+//  - 'new_vertex(hds)': amortized constant time.
+//  - 'remove_vertex(hds,v)': amortized constant time.
 //
 ///Invariants 
 ///----------
-// 'MutableVertexHDSConcept' should validate all the invariants for the 
-// 'VertexHDSConcept', and the 'MutableHDSConcept'.
+// 'MutableVertexHDSConcept' should verify all the invariants for the 
+// 'VertexHDSConcept' and the 'MutableHDSConcept'.
 //
 ///Concept-checking class
 ///----------------------
@@ -95,14 +95,11 @@
 //       function_requires<EqualityComparableConcept<vertex_descriptor> >();
 //       function_requires<AssignableConcept<vertex_descriptor> >();
 //       set_vertex(hds,h,v);
-//       add_vertex(hds,v);
+//       v = new_vertex(hds);
 //       remove_vertex(hds,h,v);
 //       const_constraints(hds);
 //    }
 //    void const_constraints(HDS const& hds) {
-//       set_vertex(hds,h,v);
-//       add_vertex(hds,v);
-//       remove_vertex(hds,h,v);
 //    }
 //    HDS hds;
 //    halfedge_descriptor h;
@@ -134,10 +131,10 @@
 
         // 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].
+            // 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
         void constraints() 
@@ -154,7 +151,7 @@
             function_requires<AssignableConcept<vertex_descriptor> >();
 
             set_vertex(hds,h,v);
-            add_vertex(hds,v);
+            v = new_vertex(hds);
             remove_vertex(hds,v);
 
             const_constraints(hds);
@@ -165,12 +162,9 @@
             // Check that the non-modifiable 'HDS' template parameters
             // satisfies all the constraints of 'MutableVertexHDSConcept'.
         {
-            set_vertex(hds,h,v);
-            add_vertex(hds,v);
-            remove_vertex(hds,v);
         }
 
-        private:
+      private:
         //DATA
         MutableVertexHDS hds;  // a halfedge data structure object
         halfedge_descriptor h; // a vertex descriptor
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-25 00:37:02 EDT (Mon, 25 Jun 2007)
@@ -18,7 +18,7 @@
 //
 ///Definition
 ///----------
-// This concept refines the 'HDSConcept', and specifies additional vertex
+// This concept refines the 'HDSConcept', and requires an additional vertex
 // descriptor to handle vertices in the 'HDS' data structure. 
 //
 ///Refinement of:
@@ -29,31 +29,40 @@
 ///--------
 //  - 'HDS'  A type that is a model of 'VertexHDSConcept'
 //  - 'hds'  A non-modifiable instance of 'HDS'
+//  - 'h'    Halfedge descriptor, of type 'hds_traits<HDS>::halfedge_descriptor'
 //  - 'v'    Vertex descriptor, of type 'hds_traits<HDS>::vertex_descriptor'
 //
 ///Associated types
 ///----------------
+// In addition to the types in the 'HDS' concept:
 //  - 'hds_traits<HDS>::vertex_descriptor': must be 'DefaultConstructible', 
 //    'CopyConstructible', 'EqualityComparable', and 'Assignable'.
 //
 ///Definitions
 ///-----------
+// In addition to the definitions in the 'HDS' concept:
 //  - 'halfedge_descriptor' is a type that contains information to access 
 //     the halfedge.  (See the 'HDSConcept' for a full definition.)
 //  - 'vertex_descriptor' is a type that contains information to access the
-//     vertex at the source of the halfedge.
+//     vertex at the source or the target of the halfedge.
 //
 ///Valid Expressions
 ///-----------------
-// See the valid expressions of the 'HDS' concept.
+// In addition to the valid expressions of the 'HDS' concept:
+//  - 'vertex(hds,h)' must return a value assignable to 'v'.
 //
 ///Expression Semantics
 ///--------------------
-// See the expression semantics of the 'HDS' concept.
+// In addition to the expressions semantics of the 'HDS' concept:
+//  - 'hds_traits<HDS>::supports_vertices': must compare equal to 'true'.
+//  - 'vertex(hds,h)' returns the vertex descriptor of the vertex to the
+//    source or target of 'h', depending on the 'source_access_tag' and
+//    'target_access_tag'.
 //
 ///Complexity guarantees
 ///---------------------
-// See the complexity guarantees of the 'HDS' concept.
+// In addition to the complexity guarantees of the 'HDS' concept:
+//  - 'vertex(hds,h)': amortized constant time.
 //
 ///Invariants 
 ///----------
@@ -72,9 +81,12 @@
 //       function_requires<CopyConstructibleConcept<vertex_descriptor> >();
 //       function_requires<EqualityComparableConcept<vertex_descriptor> >();
 //       function_requires<AssignableConcept<vertex_descriptor> >();
+//       BOOST_STATIC_ASSERT(hds_traits<HDS>::supports_vertices);
+//       v = vertex(hds,h);
 //       const_constraints(hds);
 //    }
 //    void const_constraints(HDS const& hds) {
+//       v = vertex(hds,h);
 //    }
 //    HDS hds;
 //    vertex_descriptor v;
@@ -105,9 +117,9 @@
 
         // 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].
+            // 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
         void constraints() 
@@ -120,7 +132,9 @@
             function_requires<CopyConstructibleConcept<vertex_descriptor> >();
             function_requires<EqualityComparableConcept<vertex_descriptor> >();
             function_requires<AssignableConcept<vertex_descriptor> >();
+            BOOST_STATIC_ASSERT(hds_traits<HDS>::supports_vertices);
 
+            v = vertex(hds,h);
             const_constraints(hds);
         }
 
@@ -129,9 +143,10 @@
             // Check that the non-modifiable 'HDS' template parameters
             // satisfies all the constraints of 'VertexHDSConcept'.
         {
+            v = vertex(hds,h);
         }
 
-        private:
+      private:
         //DATA
         VertexHDS hds;         // a halfedge data structure object
         vertex_descriptor f;   // a vertex descriptor
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-25 00:37:02 EDT (Mon, 25 Jun 2007)
@@ -24,57 +24,58 @@
 //
 ///Refinement of:
 ///--------------
-//  - 'HDSConcept'
+//  - 'VertexHDSConcept'
 //
 ///Notation
 ///--------
 //  - 'HDS'  A type that is a model of VertexListHDSConcept
 //  - 'hds'  A non-modifiable instance of HDS
 //  - 'v'    Vertex descriptor, of type 'hds_traits<HDS>::vertex_descriptor'
-//  - 'p'    Vertex iterator pair, of type 'hds_traits<HDS>::vertex_iterator' 
-//  - 'n'    Vertex size type, of type 'hds_traits<HDS>::size_type'
+//  - 'p'    Vertex iterator, of type 'hds_traits<HDS>::vertex_iterator' 
+//  - 'n'    Vertex list size, of type 'hds_traits<HDS>::size_type'
 //
 ///Associated types
 ///----------------
-//  - 'hds_traits<HDS>::vertex_descriptor': must be 'DefaultConstructible', 
-//    'CopyConstructible', 'EqualityComparable', and 'Assignable'.
-//  - 'hds_traits<HDS>::vertex_iterator': must be 'MultiPassInputIterator'.
-//  - 'hds_traits<HDS>::size_type': vertex size type.
+// In addition to the types of the 'VertexHDS' concept:
+//  - 'hds_traits<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_traits<HDS>::size_type': integral size type.
 //
 ///Definitions
 ///-----------
-//  - 'vertex_descriptor' is a type that contains information to access 
-//     the vertex.  (See the 'HDSConcept' for a full definition.)
+// In addition to the definitions of the 'VertexHDS' concept:
 //  - 'vertex_iterator' is an iterator type for the vertices.
 //  - 'size_type' defines the size type.
 //
 ///Valid Expressions
 ///-----------------
-// In addition to the valid expressions of the 'HDS' concept:
+// In addition to the valid expressions of the 'VertexHDS' concept:
 //  - 'vertices_begin(hds)' must return a value assignable to 'p'.  
 //  - 'vertices_end(hds)' must return a value assignable to 'p'.  
 //  - 'num_vertices(hds)' must return a value assignable to 'n'.
 //
 ///Expression Semantics
 ///--------------------
-// In addition to the valid expression semantics of the 'HDS' concept:
+// In addition to the valid expression semantics of the 'VertexHDS' concept:
 //  - 'vertices_begin(hds)' returns a 'vertex_iterator' 'p' pointing to the 
-//    beginning of the 'vertex list'.
+//    beginning of the "vertex list".
 //  - 'vertices_end(hds)' returns a 'vertex_iterator' 'p' pointing to the 
-//    end of the 'vertex list'.
+//    end of the "vertex list".
 //  - 'num_vertices(hds)' returns the number of vertices in the 'HDS' data
 //    structure.
 //
 ///Complexity guarantees
 ///---------------------
+// In addition to the complexity guarantees of the 'VertexHDS' concept:
 //  - 'vertices_begin(hds)': amortized constant time.  
-//  - 'vertices_end(hds)'  : amortized constant time.  
-//  - 'num_vertices(hds)'  : amortized constant time.
+//  - 'vertices_end(hds)': amortized constant time.  
+//  - 'num_vertices(hds)': amortized constant time.
 //
 ///Invariants 
 ///----------
-// 'VertexListHDSConcept' should validate all the invariants for the 
-// 'HDSConcept'.
+//  - 'std::distance(vertices_begin(hds), vertices_end(hds)) 
+//                                     ==  num_vertices(hds)'
 //
 ///Concept-checking class
 ///----------------------
@@ -92,10 +93,8 @@
 //         function_requires<CopyConstructibleConcept<vertex_descriptor> >();
 //         function_requires<EqualityComparableConcept<vertex_descriptor> >();
 //         function_requires<AssignableConcept<vertex_descriptor> >();
-//         function_requires<hdstl_detail::MultiPassInputIteratorConcept<vertex_iterator> >();
-//         b = vertices_begin(hds);
-//         e = vertices_end(hds);
-//         n = num_vertices(hds);
+//         function_requires<ForwardIteratorConcept<vertex_iterator> >();
+//         function_requires<ConvertibleConcept<size_type,int> >();
 //         const_constraints(hds);
 //     }
 //     void const_constraints(HDS const& hds) 
@@ -138,11 +137,11 @@
        // TYPES
        typedef typename hds_traits<HDS>::vertex_iterator  vertex_iterator;
        typedef typename hds_traits<HDS>::vertex_descriptor vertex_descriptor;
-       typedef typename hds_traits<HDS>::vertices_size_type vertices_size_type;
-       // The specialization of 'hds_traits<HDS>' must have these required
-       // types, obeying the types requirements stated in the detailed
-       // description of the 'VertexListHDS' concept on page 
-       // [vertexlisthdsconcept].
+       typedef typename hds_traits<HDS>::size_type size_type;
+           // The specialization of 'hds_traits<HDS>' must have these required
+           // types, obeying the types requirements stated in the detailed
+           // description of the 'VertexListHDS' concept on page 
+           // [vertexlisthdsconcept].
 
        //MANIPULATORS
        void constraints() 
@@ -156,10 +155,8 @@
            function_requires<CopyConstructibleConcept<vertex_descriptor> >();
            function_requires<EqualityComparableConcept<vertex_descriptor> >();
            function_requires<AssignableConcept<vertex_descriptor> >();
-           function_requires<hdstl_detail::MultiPassInputIteratorConcept<vertex_iterator> >();
-           b = vertices_begin(hds);
-           e = vertices_end(hds);
-           n = num_vertices(hds);
+           function_requires<ForwardIteratorConcept<vertex_iterator> >();
+           function_requires<ConvertibleConcept<size_type,int> >();
            const_constraints(hds);
        }
 
@@ -173,12 +170,11 @@
            n = num_vertices(hds);
        }
 
-       private:
+     private:
        //DATA
        VertexListHDS hds;     // a halfedge data structure object
        vertex_descriptor v;   // a vertex descriptor
-       vertex_iterator b;     // a vertex iterator
-       vertex_iterator e;     // a vertex iterator
+       vertex_iterator b,e;   // a vertex iterators
        size_type n;    // vertex size type
 
    };