$include_dir="/home/hyper-archives/boost-commit/include"; include("$include_dir/msg-header.inc") ?>
From: huseyinakcan_at_[hidden]
Date: 2007-06-21 13:45:15
Author: huseyinakcan
Date: 2007-06-21 13:45:13 EDT (Thu, 21 Jun 2007)
New Revision: 7122
URL: http://svn.boost.org/trac/boost/changeset/7122
Log:
changes in mutable concepts, the std::pair is divided into begin and end.
Also other format changes, doc corrections.
Text files modified: 
   sandbox/SOC/2007/geometry/libs/hdstl/dev/hds_archetypes/facet_list_hds_concept_archetype.hpp    |    52 +++++++++++++++++----------             
   sandbox/SOC/2007/geometry/libs/hdstl/dev/hds_archetypes/forward_hds_concept_archetype.hpp       |     2                                         
   sandbox/SOC/2007/geometry/libs/hdstl/dev/hds_archetypes/halfedge_list_hds_concept_archetype.hpp |    52 +++++++++++++++++----------             
   sandbox/SOC/2007/geometry/libs/hdstl/dev/hds_archetypes/vertex_list_hds_concept_archetype.hpp   |    54 +++++++++++++++++-----------            
   sandbox/SOC/2007/geometry/libs/hdstl/dev/hds_concepts.hpp                                       |    10 ++++                                    
   sandbox/SOC/2007/geometry/libs/hdstl/dev/hds_concepts/facet_list_hds_concept.hpp                |    70 ++++++++++++++++++------------------    
   sandbox/SOC/2007/geometry/libs/hdstl/dev/hds_concepts/halfedge_list_hds_concept.hpp             |    74 +++++++++++++++++++-------------------- 
   sandbox/SOC/2007/geometry/libs/hdstl/dev/hds_concepts/mutable_backward_hds_concept.hpp          |     9 ++--                                    
   sandbox/SOC/2007/geometry/libs/hdstl/dev/hds_concepts/mutable_facet_hds_concept.hpp             |    23 +++++------                             
   sandbox/SOC/2007/geometry/libs/hdstl/dev/hds_concepts/mutable_forward_hds_concept.hpp           |     9 ++--                                    
   sandbox/SOC/2007/geometry/libs/hdstl/dev/hds_concepts/mutable_hds_concept.hpp                   |    32 +++++++---------                        
   sandbox/SOC/2007/geometry/libs/hdstl/dev/hds_concepts/mutable_vertex_hds_concept.hpp            |    27 +++++++-------                          
   sandbox/SOC/2007/geometry/libs/hdstl/dev/hds_concepts/vertex_list_hds_concept.hpp               |    69 ++++++++++++++++++------------------    
   13 files changed, 260 insertions(+), 223 deletions(-)
Modified: sandbox/SOC/2007/geometry/libs/hdstl/dev/hds_archetypes/facet_list_hds_concept_archetype.hpp
==============================================================================
--- sandbox/SOC/2007/geometry/libs/hdstl/dev/hds_archetypes/facet_list_hds_concept_archetype.hpp	(original)
+++ sandbox/SOC/2007/geometry/libs/hdstl/dev/hds_archetypes/facet_list_hds_concept_archetype.hpp	2007-06-21 13:45:13 EDT (Thu, 21 Jun 2007)
@@ -15,7 +15,7 @@
 //  template <>
 //  struct hds_traits<FacetListHDSConcept_archetype> {
 //      typedef hdstl_detail::MultiPassInputIteratorConcept<> facet_iterator;
-//      typedef facet_size_type                      facet_size_type;
+//      typedef size_type                      size_type;
 //  };
 //  class FacetListHDSConcept_archetype : public HDSConcept_archetype, 
 //                                        public FacetHDSConcept_archetype {
@@ -24,13 +24,15 @@
 //      typedef typename hds_traits<FacetHDSConcept_archetype
 //                                 >::facet_descriptor facet_descriptor;
 //      typedef typename hds_traits<FacetListHDSConcept_archetype
-//                                 >::facet_size_type facet_size_type;
+//                                 >::size_type size_type;
 //      FacetListHDSConcept_archetype();
 //      FacetListHDSConcept_archetype(const FacetListHDSConcept_archetype&);
 //    public:
-//      std::pair<facet_iterator,facet_iterator>
-//      facets(FacetListHDSConcept_archetype const& hds) const;
-//      facet_size_type
+//      facet_iterator
+//      facets_begin(FacetListHDSConcept_archetype const& hds) const;
+//      facet_iterator
+//      facets_end(FacetListHDSConcept_archetype const& hds) const;
+//      size_type
 //      num_facets(FacetListHDSConcept_archetype const& hds) const;
 //  };
 //..
@@ -49,13 +51,13 @@
 struct hds_traits<FacetListHDSConcept_archetype> {
     // This template specialization of 'hds_traits' for the
     // 'FacetListHDSConcept_archetype' provides the 'facet_iterator'
-    // and 'facet_size_type' types.
+    // and 'size_type' types.
     
     // TYPES
     typedef hdstl_detail::MultiPassInputIteratorConcept<> facet_iterator;
         // Facet iterator type for the 'FacetListHDSConcept' archetype.
 
-    typedef facet_size_type                      facet_size_type;
+    typedef size_type                      size_type;
         // Facet size type for the 'FacetListHDSConcept' archetype.
 };
 
@@ -77,7 +79,7 @@
         //facet_descriptor from the FacetHDSConcept used here.
 
     typedef typename hds_traits<FacetListHDSConcept_archetype
-                               >::facet_size_type facet_size_type;
+                               >::size_type size_type;
     
     // NOT IMPLEMENTED
     FacetListHDSConcept_archetype();
@@ -85,31 +87,41 @@
 
   public:
     // MANIPULATORS
-    std::pair<facet_iterator,facet_iterator>
-    facets(FacetListHDSConcept_archetype const& hds) const;
-        // Returns a 'facet_iterator' pair, consistent with the STL style
-        // iterator ranges, which means all the facets can be accessed by
-        // increasing the first part of the pair until the second part is
-        // reached.
+    facet_iterator
+    facets_begin(FacetListHDSConcept_archetype const& hds) const;
+        // Returns a 'facet_iterator' pointing to the beginning of the 
+        // 'facet list'.
+
+    facet_iterator
+    facets_end(FacetListHDSConcept_archetype const& hds) const;
+        // Returns a 'facet_iterator' pointing to the end of the 
+        // 'facet list'.
 
-    facet_size_type
+    size_type
     num_facets(FacetListHDSConcept_archetype const& hds) const;
         // Returns the number of facets in the 'hds' data structure.
 };
 
 // MANIPULATORS
-typename std::pair<facet_iterator,facet_iterator>
-FacetListHDSConcept_archetype<>::facets(
+typename hds_traits<FacetListHDSConcept_archetype>::facet_iterator
+FacetListHDSConcept_archetype<>::facets_begin(
                                FacetListHDSConcept_archetype const& hds) const
 {
-    return std::pair<facet_iterator,facet_iterator>();
+    return facet_iterator();
 }
 
-typename hds_traits<FacetListHDSConcept_archetype>::facet_size_type
+typename hds_traits<FacetListHDSConcept_archetype>::facet_iterator
+FacetListHDSConcept_archetype<>::facets_end(
+                               FacetListHDSConcept_archetype const& hds) const
+{
+    return facet_iterator();
+}
+
+typename hds_traits<FacetListHDSConcept_archetype>::size_type
 FacetListHDSConcept_archetype<>::num_facets(
                                FacetListHDSConcept_archetype const& hds) const
 {
-    return facet_size_type();
+    return size_type();
 }
 
 } // end namespace hdstl
Modified: sandbox/SOC/2007/geometry/libs/hdstl/dev/hds_archetypes/forward_hds_concept_archetype.hpp
==============================================================================
--- sandbox/SOC/2007/geometry/libs/hdstl/dev/hds_archetypes/forward_hds_concept_archetype.hpp	(original)
+++ sandbox/SOC/2007/geometry/libs/hdstl/dev/hds_archetypes/forward_hds_concept_archetype.hpp	2007-06-21 13:45:13 EDT (Thu, 21 Jun 2007)
@@ -15,7 +15,7 @@
 // class ForwardHDSConcept_archetype
 //    :HDSConcept_archetype {
 //    public:
-//       halfedge_descriptor& next_in_faccet(ForwardHDSConcept_archetype,
+//       halfedge_descriptor& next_in_facet(ForwardHDSConcept_archetype,
 //                                               halfedge_descriptor&) const{};
 //       halfedge_descriptor& next_at_source(ForwardHDSConcept_archetype,
 //                                               halfedge_descriptor&) const{};
Modified: sandbox/SOC/2007/geometry/libs/hdstl/dev/hds_archetypes/halfedge_list_hds_concept_archetype.hpp
==============================================================================
--- sandbox/SOC/2007/geometry/libs/hdstl/dev/hds_archetypes/halfedge_list_hds_concept_archetype.hpp	(original)
+++ sandbox/SOC/2007/geometry/libs/hdstl/dev/hds_archetypes/halfedge_list_hds_concept_archetype.hpp	2007-06-21 13:45:13 EDT (Thu, 21 Jun 2007)
@@ -15,7 +15,7 @@
 //  template <>
 //  struct hds_traits<HalfedgeListHDSConcept_archetype> {
 //      typedef hdstl_detail::MultiPassInputIteratorConcept<> halfedge_iterator;
-//      typedef halfedge_size_type                      halfedge_size_type;
+//      typedef size_type                      size_type;
 //  };
 //  class HalfedgeListHDSConcept_archetype : public HDSConcept_archetype {
 //      typedef typename hds_traits<HalfedgeListHDSConcept_archetype
@@ -23,13 +23,15 @@
 //      typedef typename hds_traits<HalfedgeHDSConcept_archetype
 //                                 >::halfedge_descriptor halfedge_descriptor;
 //      typedef typename hds_traits<HalfedgeListHDSConcept_archetype
-//                                 >::halfedge_size_type halfedge_size_type;
+//                                 >::size_type size_type;
 //      HalfedgeListHDSConcept_archetype();
 //    HalfedgeListHDSConcept_archetype(const HalfedgeListHDSConcept_archetype&);
 //    public:
-//      std::pair<halfedge_iterator,halfedge_iterator>
-//      halfedges(HalfedgeListHDSConcept_archetype const& hds) const;
-//      halfedge_size_type
+//      halfedge_iterator
+//      halfedges_begin(HalfedgeListHDSConcept_archetype const& hds) const;
+//      halfedge_iterator
+//      halfedges_end(HalfedgeListHDSConcept_archetype const& hds) const;
+//      size_type
 //      num_halfedges(HalfedgeListHDSConcept_archetype const& hds) const;
 //  };
 //..
@@ -48,13 +50,13 @@
 struct hds_traits<HalfedgeListHDSConcept_archetype> {
     // This template specialization of 'hds_traits' for the
     // 'HalfedgeListHDSConcept_archetype' provides the 'halfedge_iterator'
-    // and 'halfedge_size_type' types.
+    // and 'size_type' types.
     
     // TYPES
     typedef hdstl_detail::MultiPassInputIteratorConcept<> halfedge_iterator;
         // Halfedge iterator type for the 'HalfedgeListHDSConcept' archetype.
 
-    typedef halfedge_size_type                      halfedge_size_type;
+    typedef size_type                      size_type;
         // Halfedge size type for the 'HalfedgeListHDSConcept' archetype.
 };
 
@@ -74,7 +76,7 @@
         //halfedge_descriptor from the HalfedgeHDSConcept used here.
 
     typedef typename hds_traits<HalfedgeListHDSConcept_archetype
-                               >::halfedge_size_type halfedge_size_type;
+                               >::size_type size_type;
     
     // NOT IMPLEMENTED
     HalfedgeListHDSConcept_archetype();
@@ -82,31 +84,41 @@
 
   public:
     // MANIPULATORS
-    std::pair<halfedge_iterator,halfedge_iterator>
-    halfedges(HalfedgeListHDSConcept_archetype const& hds) const;
-        // Returns a 'halfedge_iterator' pair, consistent with the STL style
-        // iterator ranges, which means all the halfedges can be accessed by
-        // increasing the first part of the pair until the second part is
-        // reached.
+    halfedge_iterator
+    halfedges_begin(HalfedgeListHDSConcept_archetype const& hds) const;
+        // Returns a 'halfedge_iterator' pointing to the beginning of the 
+        // 'halfedge list'.
+
+    halfedge_iterator
+    halfedges_end(HalfedgeListHDSConcept_archetype const& hds) const;
+        // Returns a 'halfedge_iterator' pointing to the end of the 
+        // 'halfedge list'.
 
-    halfedge_size_type
+    size_type
     num_halfedges(HalfedgeListHDSConcept_archetype const& hds) const;
         // Returns the number of halfedges in the 'hds' data structure.
 };
 
 // MANIPULATORS
-typename std::pair<halfedge_iterator,halfedge_iterator>
-HalfedgeListHDSConcept_archetype<>::halfedges(
+typename hds_traits<HalfedgeListHDSConcept_archetype>::halfedge_iterator
+HalfedgeListHDSConcept_archetype<>::halfedges_begin(
                               HalfedgeListHDSConcept_archetype const& hds) const
 {
-    return std::pair<halfedge_iterator,halfedge_iterator>();
+    return halfedge_iterator();
 }
 
-typename hds_traits<HalfedgeListHDSConcept_archetype>::halfedge_size_type
+typename hds_traits<HalfedgeListHDSConcept_archetype>::halfedge_iterator
+HalfedgeListHDSConcept_archetype<>::halfedges_end(
+                              HalfedgeListHDSConcept_archetype const& hds) const
+{
+    return halfedge_iterator();
+}
+
+typename hds_traits<HalfedgeListHDSConcept_archetype>::size_type
 HalfedgeListHDSConcept_archetype<>::num_halfedges(
                               HalfedgeListHDSConcept_archetype const& hds) const
 {
-    return halfedge_size_type();
+    return size_type();
 }
 
 } // end namespace hdstl
Modified: sandbox/SOC/2007/geometry/libs/hdstl/dev/hds_archetypes/vertex_list_hds_concept_archetype.hpp
==============================================================================
--- sandbox/SOC/2007/geometry/libs/hdstl/dev/hds_archetypes/vertex_list_hds_concept_archetype.hpp	(original)
+++ sandbox/SOC/2007/geometry/libs/hdstl/dev/hds_archetypes/vertex_list_hds_concept_archetype.hpp	2007-06-21 13:45:13 EDT (Thu, 21 Jun 2007)
@@ -15,7 +15,7 @@
 //  template <>
 //  struct hds_traits<VertexListHDSConcept_archetype> {
 //      typedef hdstl_detail::MultiPassInputIteratorConcept<> vertex_iterator;
-//      typedef vertex_size_type                      vertex_size_type;
+//      typedef size_type                      size_type;
 //  };
 //  class VertexListHDSConcept_archetype : public HDSConcept_archetype, 
 //                                        public VertexHDSConcept_archetype {
@@ -24,13 +24,15 @@
 //      typedef typename hds_traits<VertexHDSConcept_archetype
 //                                 >::vertex_descriptor vertex_descriptor;
 //      typedef typename hds_traits<VertexListHDSConcept_archetype
-//                                 >::vertex_size_type vertex_size_type;
+//                                 >::size_type size_type;
 //      VertexListHDSConcept_archetype();
 //      VertexListHDSConcept_archetype(const VertexListHDSConcept_archetype&);
 //    public:
-//      std::pair<vertex_iterator,vertex_iterator>
-//      vertices(VertexListHDSConcept_archetype const& hds) const;
-//      vertex_size_type
+//      vertex_iterator
+//      vertices_begin(VertexListHDSConcept_archetype const& hds) const;
+//      vertex_iterator
+//      vertices_end(VertexListHDSConcept_archetype const& hds) const;
+//      size_type
 //      num_vertices(VertexListHDSConcept_archetype const& hds) const;
 //  };
 //..
@@ -49,13 +51,13 @@
 struct hds_traits<VertexListHDSConcept_archetype> {
     // This template specialization of 'hds_traits' for the
     // 'VertexListHDSConcept_archetype' provides the 'vertex_iterator'
-    // and 'vertex_size_type' types.
+    // and 'size_type' types.
     
     // TYPES
     typedef hdstl_detail::MultiPassInputIteratorConcept<> vertex_iterator;
         // Vertex iterator type for the 'VertexListHDSConcept' archetype.
 
-    typedef vertex_size_type                      vertex_size_type;
+    typedef size_type                      size_type;
         // Vertex size type for the 'VertexListHDSConcept' archetype.
 };
 
@@ -77,7 +79,7 @@
         //vertex_descriptor from the VertexHDSConcept used here.
 
     typedef typename hds_traits<VertexListHDSConcept_archetype
-                               >::vertex_size_type vertex_size_type;
+                               >::size_type size_type;
     
     // NOT IMPLEMENTED
     VertexListHDSConcept_archetype();
@@ -85,31 +87,41 @@
 
   public:
     // MANIPULATORS
-    std::pair<vertex_iterator,vertex_iterator>
-    vertices(VertexListHDSConcept_archetype const& hds) const;
-        // Returns a 'vertex_iterator' pair, consistent with the STL style
-        // iterator ranges, which means all the vertices can be accessed by
-        // increasing the first part of the pair until the second part is
-        // reached.
-
-    vertex_size_type
+    vertex_iterator
+    vertices_begin(VertexListHDSConcept_archetype const& hds) const;
+        // Returns a 'vertex_iterator' pointing to the beginning of the 
+        // 'vertex list'.
+
+    vertex_iterator
+    vertices_end(VertexListHDSConcept_archetype const& hds) const;
+        // Returns a 'vertex_iterator' pointing to the end of the 
+        // 'vertex list'.
+    
+    size_type
     num_vertices(VertexListHDSConcept_archetype const& hds) const;
         // Returns the number of vertices in the 'hds' data structure.
 };
 
 // MANIPULATORS
-typename std::pair<vertex_iterator,vertex_iterator>
-VertexListHDSConcept_archetype<>::vertices(
+typename hds_traits<VertexListHDSConcept_archetype>::vertex_iterator
+VertexListHDSConcept_archetype<>::vertices_begin(
+                               VertexListHDSConcept_archetype const& hds) const
+{
+    return vertex_iterator();
+}
+
+typename hds_traits<VertexListHDSConcept_archetype>::vertex_iterator
+VertexListHDSConcept_archetype<>::vertices_end(
                                VertexListHDSConcept_archetype const& hds) const
 {
-    return std::pair<vertex_iterator,vertex_iterator>();
+    return vertex_iterator();
 }
 
-typename hds_traits<VertexListHDSConcept_archetype>::vertex_size_type
+typename hds_traits<VertexListHDSConcept_archetype>::size_type
 VertexListHDSConcept_archetype<>::num_vertices(
                                VertexListHDSConcept_archetype const& hds) const
 {
-    return vertex_size_type();
+    return size_type();
 }
 
 } // end namespace hdstl
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-21 13:45:13 EDT (Thu, 21 Jun 2007)
@@ -4,7 +4,15 @@
 //
 ///HDS Introduction
 ///----------------
-// FILLME
+// 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
 ///------------
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-21 13:45:13 EDT (Thu, 21 Jun 2007)
@@ -20,7 +20,7 @@
 ///Definition
 ///----------
 // This concept refines the 'HDSConcept', and specifies additional accessors
-// to handle facets in the 'HDS' data structure. 
+// to iterate over facets in the 'HDS' data structure. 
 //
 ///Refinement of:
 ///--------------
@@ -31,48 +31,46 @@
 //  - 'HDS'  A type that is a model of FacetListHDSConcept
 //  - 'hds'  A non-modifiable instance of HDS
 //  - 'f'    Facet descriptor, of type 'hds_traits<HDS>::facet_descriptor'
-//  - 'p'    Facet iterator pair, of type 
-//           'std::pair<facet_iterator,facet_iterator>'
-//  - 'F'    Facet size type, of type 'hds_traits<HDS>::facet_size_type'
+//  - 'p'    Facet iterator, of type 'hds_traits<HDS>::facet_iterator'
+//  - 'n'    Facet size type, of type 'hds_traits<HDS>::size_type'
 //
 ///Associated types
 ///----------------
 //  - 'hds_traits<HDS>::facet_descriptor': must be 'DefaultConstructible', 
 //    'CopyConstructible', 'EqualityComparable', and 'Assignable'.
 //  - 'hds_traits<HDS>::facet_iterator': must be 'MultiPassInputIterator'.
-//  - 'hds_traits<HDS>::facet_size_type': facet size type.
+//  - 'hds_traits<HDS>::size_type': unsigned size type.
 //
 ///Definitions
 ///-----------
 //  - 'facet_descriptor' is a type that contains information to access 
 //     the facet.  (See the 'HDSConcept' for a full definition.)
 //  - 'facet_iterator' is an iterator type for the facets.
-//  - 'facet_size_type' defines the size type.
+//  - 'size_type' defines the size type.
 //
 ///Valid Expressions
 ///-----------------
 // In addition to the valid expressions of the 'HDS' concept:
-//  - 'facets(hds)' must return a value assignable to 'p'.  
+//  - 'facets_begin(hds)' must return a value assignable to 'p'.  
+//  - 'facets_end(hds)' must return a value assignable to 'p'.  
 //  - '*p.first' must return a value assignable to 'f'.
-//  - 'num_facets(HDS)' must return a value assignable to 'F'.
+//  - 'num_facets(hds)' must return a value assignable to 'n'.
 //
 ///Expression Semantics
 ///--------------------
 // In addition to the valid expression semantics of the 'HDS' concept:
-//  - 'facets(hds)' returns a 'facet_iterator' pair 'p', consistent 
-//    with the STL style iterator ranges, which means all the facets
-//    can be accessed by increasing the first part of the pair until the second
-//    part is reached.
-//  - '*p.first' returns a 'facet_descriptor'.
+//  - 'facets_begin(hds)' returns a 'facet_iterator' 'p' pointing to the 
+//    beginning of the 'facet list'.
+//  - 'facets_end(hds)' returns a 'facet_iterator' 'p' pointing to the 
+//    end of the 'facet list'.
 //  - 'num_facets(HDS)' returns the number of facets in the 'HDS' data
 //    structure.
 //
 ///Complexity guarantees
 ///---------------------
-//  - 'facets(hds)'    : amortized constant time. (for just getting the 
-//    'facet_iterator' pair, accessing the facets takes linear time.)
-//  - '*p.first'       : amortized constant time.
-//  - 'num_facets(HDS)': amortized constant time.
+//  - 'facets_begin(hds)': amortized constant time.  
+//  - 'facets_end(hds)'  : amortized constant time.  
+//  - 'num_facets(hds)'  : amortized constant time.
 //
 ///Invariants 
 ///----------
@@ -86,7 +84,7 @@
 // struct FacetListHDSConcept {
 //     typedef typename hds_traits<HDS>::facet_iterator  facet_iterator;
 //     typedef typename hds_traits<HDS>::facet_descriptor facet_descriptor;
-//     typedef typename hds_traits<HDS>::facets_size_type facets_size_type;
+//     typedef typename hds_traits<HDS>::size_type size_type;
 //     void constraints() 
 //     {
 //         using namespace boost;
@@ -94,22 +92,23 @@
 //         function_requires<FacetHDSConcept>();
 //         function_requires<hdstl_detail::MultiPassInputIteratorConcept<
 //                                                         facet_iterator> >();
-//         p = facets(hds);
-//         f = *p.first;
-//         F = num_facets(hds);
+//         b = facets_begin(hds);
+//         e = facets_end(hds);
+//         n = num_facets(hds);
 //         const_constraints(hds);
 //     }
 //     void const_constraints(HDS const& hds) 
 //     {
-//         p = facets(hds);
-//         f = *p.first;
-//         F = num_facets(hds);
+//         b = facets_begin(hds);
+//         e = facets_end(hds);
+//         n = num_facets(hds);
 //     }
 //     private:
 //     FacetListHDS hds;   
 //     facet_descriptor f;
-//     std::pair<facet_iterator,facet_iterator> p;
-//     facet_size_type F; 
+//     facet_iterator b;
+//     facet_iterator e;
+//     size_type n; 
 
 // };
 //..
@@ -139,7 +138,7 @@
        // TYPES
        typedef typename hds_traits<HDS>::facet_iterator  facet_iterator;
        typedef typename hds_traits<HDS>::facet_descriptor facet_descriptor;
-       typedef typename hds_traits<HDS>::facets_size_type facets_size_type;
+       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 'FacetListHDS' concept on page 
@@ -156,9 +155,9 @@
            function_requires<FacetHDSConcept>();
            function_requires<hdstl_detail::MultiPassInputIteratorConcept<
                                                            facet_iterator> >();
-           p = facets(hds);
-           f = *p.first;
-           F = num_facets(hds);
+           b = facets_begin(hds);
+           e = facets_end(hds);
+           n = num_facets(hds);
            const_constraints(hds);
        }
 
@@ -167,17 +166,18 @@
            // Check that the non-modifiable 'HDS' template parameters
            // satisfies all the constraints of 'FacetListHDSConcept'.
        {
-           p = facets(hds);
-           f = *p.first;
-           F = num_facets(hds);
+           b = facets_begin(hds);
+           e = facets_end(hds);
+           n = num_facets(hds);
        }
 
        private:
        //DATA
        FacetListHDS hds;     // a halfedge data structure object
        facet_descriptor f;   // a facet descriptor
-       std::pair<facet_iterator,facet_iterator> p; // a facet iterator pair
-       facet_size_type F;    // facet size type
+       facet_iterator b;     // a facet iterator
+       facet_iterator e;     // a facet iterator 
+       size_type n;          // facet size type
 
    };
 
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-21 13:45:13 EDT (Thu, 21 Jun 2007)
@@ -20,7 +20,7 @@
 ///Definition
 ///----------
 // This concept refines the 'HDSConcept', and specifies additional accessors
-// to handle halfedges in the 'HDS' data structure. 
+// to iterate over halfedges in the 'HDS' data structure. 
 //
 ///Refinement of:
 ///--------------
@@ -31,48 +31,45 @@
 //  - 'HDS'  A type that is a model of HalfedgeListHDSConcept
 //  - 'hds'  A non-modifiable instance of HDS
 //  - 'h'    Halfedge descriptor, of type 'hds_traits<HDS>::halfedge_descriptor'
-//  - 'p'    Halfedge iterator pair, of type 
-//           'std::pair<halfedge_iterator,halfedge_iterator>'
-//  - 'H'    Halfedge size type, of type 'hds_traits<HDS>::halfedge_size_type'
+//  - 'p'    Halfedge iterator, of type 'hds_traits<HDS>::halfedge_iterator'
+//  - 'n'    Halfedge size type, 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 'MultiPassInputIterator'.
-//  - 'hds_traits<HDS>::halfedge_size_type': halfedge size type.
+//  - 'hds_traits<HDS>::size_type': halfedge size type.
 //
 ///Definitions
 ///-----------
 //  - 'halfedge_descriptor' is a type that contains information to access 
 //     the halfedge.  (See the 'HDSConcept' for a full definition.)
 //  - 'halfedge_iterator' is an iterator type for the halfedges.
-//  - 'halfedge_size_type' defines the size type.
+//  - 'size_type' defines the size type.
 //
 ///Valid Expressions
 ///-----------------
 // In addition to the valid expressions of the 'HDS' concept:
-//  - 'halfedges(hds)' must return a value assignable to 'p'.  
-//  - '*p.first' must return a value assignable to 'h'.
-//  - 'num_halfedges(HDS)' must return a value assignable to 'H'.
+//  - 'halfedges_begin(hds)' must return a value assignable to 'p'.  
+//  - 'halfedges_end(hds)' must return a value assignable to 'p'.  
+//  - 'num_halfedges(hds)' must return a value assignable to 'n'.
 //
 ///Expression Semantics
 ///--------------------
 // In addition to the valid expression semantics of the 'HDS' concept:
-//  - 'halfedges(hds)' returns a 'halfedge_iterator' pair 'p', consistent 
-//    with the STL style iterator ranges, which means all the halfedges
-//    can be accessed by increasing the first part of the pair until the second
-//    part is reached.
-//  - '*p.first' returns a 'halfedge_descriptor'.
-//  - 'num_halfedges(HDS)' returns the number of halfedges in the 'HDS' data
+//  - 'halfedges_begin(hds)' returns a 'halfedge_iterator' 'p' pointing to the 
+//    beginning of the 'halfedge list'.
+//  - 'halfedges_end(hds)' returns a 'halfedge_iterator' 'p' pointing to the 
+//    end of the 'halfedge list'.
+//  - 'num_halfedges(hds)' returns the number of halfedges in the 'HDS' data
 //    structure.
 //
 ///Complexity guarantees
 ///---------------------
-//  - 'halfedges(hds)'    : amortized constant time. (for just getting the 
-//    'halfedge_iterator' pair, accessing the halfedges takes linear time.)
-//  - '*p.first'          : amortized constant time.
-//  - 'num_halfedges(HDS)': amortized constant time.
+//  - 'halfedges_begin(hds)': amortized constant time.
+//  - 'halfedges_end(hds)'  : amortized constant time.
+//  - 'num_halfedges(HDS)'  : amortized constant time.
 //
 ///Invariants 
 ///----------
@@ -96,23 +93,23 @@
 //         function_requires<EqualityComparableConcept<halfedge_descriptor> >();
 //         function_requires<AssignableConcept<halfedge_descriptor> >();
 //         function_requires<hdstl_detail::MultiPassInputIteratorConcept<halfedge_iterator> >();
-//         p = halfedges(hds);
-//         h = *p.first;
-//         H = num_halfedges(hds);
+//         b = halfedges_begin(hds);
+//         e = halfedges_end(hds);
+//         n = num_halfedges(hds);
 //         const_constraints(hds);
 //     }
 //     void const_constraints(HDS const& hds) 
 //     {
-//         p = halfedges(hds);
-//         h = *p.first;
-//         H = num_halfedges(hds);
+//         b = halfedges_begin(hds);
+//         e = halfedges_end(hds);
+//         n = num_halfedges(hds);
 //     }
-
 //     private:
 //     HalfedgeListHDS hds;
 //     halfedge_descriptor h;
-//     std::pair<halfedge_iterator,halfedge_iterator> p;
-//     halfedge_size_type H;
+//     halfedge_iterator b;
+//     halfedge_iterator e;
+//     size_type n;
 // };
 //..
 
@@ -160,9 +157,9 @@
            function_requires<EqualityComparableConcept<halfedge_descriptor> >();
            function_requires<AssignableConcept<halfedge_descriptor> >();
            function_requires<hdstl_detail::MultiPassInputIteratorConcept<halfedge_iterator> >();
-           p = halfedges(hds);
-           h = *p.first;
-           H = num_halfedges(hds);
+           b = halfedges_begin(hds);
+           e = halfedges_end(hds);
+           n = num_halfedges(hds);
            const_constraints(hds);
        }
 
@@ -171,17 +168,18 @@
            // Check that the non-modifiable 'HDS' template parameters
            // satisfies all the constraints of 'HalfedgeListHDSConcept'.
        {
-           p = halfedges(hds);
-           h = *p.first;
-           H = num_halfedges(hds);
+           b = halfedges_begin(hds);
+           e = halfedges_end(hds);
+           n = num_halfedges(hds);
        }
 
        private:
        //DATA
-       HalfedgeListHDS hds;         // a halfedge data structure object
-       halfedge_descriptor h;   // a halfedge descriptor
-       std::pair<halfedge_iterator,halfedge_iterator> p; // a halfedge iterator pair
-       halfedge_size_type H; // halfedge size type
+       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
+       size_type n;              // halfedge size type
 
    };
 
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-21 13:45:13 EDT (Thu, 21 Jun 2007)
@@ -55,17 +55,18 @@
 ///-----------------
 // In addition to the valid expressions of the 'HDS' concept, and the 
 // 'BackwardHDS' concept:
-//   - 'set_prev_in_facet(hds,h,g)' sets 'g' as the prev_in_facet value of 'h'.
-//   - 'set_prev_at_source(hds,h,g)' sets 'g' as the prev_at_source value of 
+//   - 'set_prev_in_facet(hds,h,g)' sets 'g' as the 'prev_in_facet' value of 
 //     'h'.
-//   - 'set_prev_at_target(hds,h,g)' sets 'g' as the prev_at_target value of
+//   - 'set_prev_at_source(hds,h,g)' sets 'g' as the 'prev_at_source' value of 
+//     'h'.
+//   - 'set_prev_at_target(hds,h,g)' sets 'g' as the 'prev_at_target' value of
 //     'h'.
 //
 ///Expression Semantics
 ///--------------------
 // In addition to the expression semantics of the 'HDS' concept, and the
 // 'BackwardHDS' concept:
-//   - 'set_prev_in_facet(hds,h,g)' set 'g' as the halfedge 
+//   - '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.
 //   - 'set_prev_at_source(hds,h,g)' sets 'g' as the halfedge 
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-21 13:45:13 EDT (Thu, 21 Jun 2007)
@@ -50,30 +50,29 @@
 ///-----------------
 // In addition to the valid expressions of the 'FacetHDS' concept, and the 
 // 'MutableHDS' concept:
-//  - 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.
-//  - remove_facet(hds,f) removes the facet 'f' from the 'hds' data structure.
+//  - '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.
+//  - '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.
-//  - set_facet(hds,h,f) sets the facet descriptor value of 'h' to 'f' for a
+//  - '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,f)   adds a new facet 'f' to the 'hds' data structure.
+//  - 'add_facet(hds,f)'   adds a new facet 'f' to the 'hds' data structure.
 //    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)' 
 //    operation should be used.
-//  - remove_facet(hds,f) removes the facet 'f' from the 'hds' data structure, 
-//    by iterating in counter-clockwise order around this facet and removing
-//    the connections with the halfedges.
+//  - 'remove_facet(hds,f)' removes the facet 'f' from the 'hds' data 
+//    structure. All 'facet_descriptors' related to this facet will be 
+//    invalidated after this call.
 //
 ///Complexity guarantees
 ///---------------------
-//  - set_facet(hds,h,f) : amortized constant time.
-//  - add_facet(hds,f)   : amortized constant time.
-//  - remove_facet(hds,f): 'O(e)', where 'e' is the maximum number of edges of 
-//    the facet.
+//  - 'set_facet(hds,h,f)' : amortized constant time.
+//  - 'add_facet(hds,f)'   : amortized constant time.
+//  - 'remove_facet(hds,f)': amortized constant time.
 //
 ///Invariants 
 ///----------
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-21 13:45:13 EDT (Thu, 21 Jun 2007)
@@ -55,17 +55,18 @@
 ///-----------------
 // In addition to the valid expressions of the 'HDS' concept, and the 
 // 'ForwardHDS' concept:
-//   - '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 
+//   - 'set_next_in_facet(hds,h,g)' sets 'g' as the 'next_in_facet' value of 
 //     'h'.
-//   - 'set_next_at_target(hds,h,g)' sets 'g' as the next_at_target value of
+//   - 'set_next_at_source(hds,h,g)' sets 'g' as the 'next_at_source' value of 
+//     'h'.
+//   - 'set_next_at_target(hds,h,g)' sets 'g' as the 'next_at_target' value of
 //     'h'.
 //
 ///Expression Semantics
 ///--------------------
 // In addition to the expression semantics of the 'HDS' concept, and the
 // 'ForwardHDS' concept:
-//   - 'set_next_in_facet(hds,h,g)' set 'g' as the halfedge 
+//   - '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.
 //   - 'set_next_at_source(hds,h,g)' sets 'g' as the halfedge 
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-21 13:45:13 EDT (Thu, 21 Jun 2007)
@@ -54,36 +54,32 @@
 ///-----------------
 // The following expression must be valid and obey the syntactic requirement:
 //  - 'set_opposite(hds,h1,h2)': sets the opposite halfedge.
-//  - 'h = new_edge(hds,h1,h2)': creates a new edge, with two halfedges. 
-//  - 'delete_edge(hds,h1,h2)' : deletes the edge defined by halfedge pairs 
+//  - 'h = new_edge(hds)': creates a new edge, with two halfedges. 
+//  - 'delete_edge(hds,h1,h2)': deletes the edge defined by halfedge pairs 
 //    'h1' and 'h2'.
 //
 ///Expression Semantics
 ///--------------------
 // The expressions semantics are as follows:
-//  - 'set_opposite(hds,h1,h2)': sets 'h1' and 'h2' as opposites of each other 
+//  - 'set_opposite(hds,h1,h2)' sets 'h1' and 'h2' as opposites of each other 
 //    in the data structure 'hds'. 
-//  - 'h = new_edge(hds,h1,h2)': creates a new edge in data structure 'hds'. 
-//    Since halfedges are actually pairs, the new edge consists of two 
-//    halfedges, 'h1' and 'h2', which are set as opposites of each other.
-//  - 'delete_edge(hds,h1,h2)' : since halfedges are defined as pairs, and a 
-//    single halfedge is useless, they are deleted as pairs also. Delete edge 
-//    removes the opposite halfedges 'h1', and 'h2' from the data structure 
-//    'hds'. Note that only the halfedges that form a pair by validating the 
-//    'opposite' function can be deleted by this method.
+//  - 'h = new_edge(hds)' creates a new edge in data structure 'hds'. 
+//    Halfedges are created as pairs, and this call creates two halfedges
+//    'h' and 'opposite(hds,h)'.
+//  - 'delete_edge(hds,h1,h2)' removes the opposite halfedges 'h1' and 'h2' 
+//    from the data structure 'hds'. Note that only the halfedges that form 
+//    a pair by validating the 'opposite' function can be deleted by this 
+//    method, otherwise the behavior is undefined. 
 //
 ///Complexity guarantees
 ///---------------------
 //  - 'set_opposite(hds,h1,h2)': amortized constant time.
-//  - 'h=new_edge(hds,h1,h2)'  : amortized constant time.
+//  - 'h=new_edge(hds)'        : amortized constant time.
 //  - 'delete_edge(hds,h1,h2)' : amortized constant time.
 //
 ///Invariants
 ///----------
-//  - Post-condition for 'set_opposite(hds,h1,h2)' and 'h=new_edge(hds,h1,h2)':
-//    'h1=opposite(h2)', and 'h2=opposite(h1)' should verify.
-//  - Pre-condition for 'delete_edge(hds,h1,h2)': 'h1=opposite(h2)', and 
-//    'h2=opposite(h1)' should verify. 
+// None.
 //
 ///Concept-checking class
 ///----------------------
@@ -150,7 +146,7 @@
             function_requires<HDSConcept<HDS> >();
 
             set_opposite(hds,h1,h2);
-            h = new_edge(hds,h1,h2);
+            h = new_edge(hds);
             delete_edge(hds,h1,h2);
             const_constraints(hds);
         }
@@ -161,7 +157,7 @@
             // satisfies all the constraints of 'MutableHDSConcept'.
         {
             set_opposite(hds,h1,h2);
-            h = new_edge(hds,h1,h2);
+            h = new_edge(hds);
             delete_edge(hds,h1,h2);
         }
 
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-21 13:45:13 EDT (Thu, 21 Jun 2007)
@@ -49,32 +49,31 @@
 ///-----------------
 // 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 
+//  - '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.
-//  - remove_vertex(hds,v) removes the vertex 'v' from the 'hds' data 
+//  - 'add_vertex(hds,v)'    adds a new vertex 'v' to the 'hds' data structure.
+//  - '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:
-//  - set_vertex(hds,h,v)  sets the source vertex descriptor value of 'h' to 
+//  - '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.
+//  - 'add_vertex(hds,v)'    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.
-//  - remove_vertex(hds,v) removes the vertex 'v' from the 'hds' data 
-//    structure, by iterating in clockwise order around the vertex and removing
-//    the connections with the halfedges.
+//  - 'remove_vertex(hds,v)' removes the vertex 'v' from the 'hds' data 
+//  structure. All 'vertex_descriptors' related to this vertex will be 
+//  invalidated after this call.
 //
 ///Complexity guarantees
 ///---------------------
-//  - set_vertex(hds,h,v)   : amortized constant time.
-//  - add_vertex(hds,f)     : amortized constant time.
-//  - remove_vertex(hds,h,v): O(v), where 'v' is the maximum out-bound value of
-//    a vertex.
+//  - 'set_vertex(hds,h,v)'   : amortized constant time.
+//  - 'add_vertex(hds,f)'     : amortized constant time.
+//  - 'remove_vertex(hds,v)'  : amortized constant time.
 //
 ///Invariants 
 ///----------
@@ -156,7 +155,7 @@
 
             set_vertex(hds,h,v);
             add_vertex(hds,v);
-            remove_vertex(hds,h,v);
+            remove_vertex(hds,v);
 
             const_constraints(hds);
         }
@@ -168,7 +167,7 @@
         {
             set_vertex(hds,h,v);
             add_vertex(hds,v);
-            remove_vertex(hds,h,v);
+            remove_vertex(hds,v);
         }
 
         private:
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-21 13:45:13 EDT (Thu, 21 Jun 2007)
@@ -20,7 +20,7 @@
 ///Definition
 ///----------
 // This concept refines the 'HDSConcept', and specifies additional accessors
-// to handle vertices in the 'HDS' data structure. 
+// to iterate over vertices in the 'HDS' data structure. 
 //
 ///Refinement of:
 ///--------------
@@ -31,48 +31,45 @@
 //  - '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 
-//           'std::pair<vertex_iterator,vertex_iterator>'
-//  - 'V'    Vertex size type, of type 'hds_traits<HDS>::vertex_size_type'
+//  - 'p'    Vertex iterator pair, of type 'hds_traits<HDS>::vertex_iterator' 
+//  - 'n'    Vertex size type, 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>::vertex_size_type': vertex size type.
+//  - 'hds_traits<HDS>::size_type': vertex size type.
 //
 ///Definitions
 ///-----------
 //  - 'vertex_descriptor' is a type that contains information to access 
 //     the vertex.  (See the 'HDSConcept' for a full definition.)
 //  - 'vertex_iterator' is an iterator type for the vertices.
-//  - 'vertex_size_type' defines the size type.
+//  - 'size_type' defines the size type.
 //
 ///Valid Expressions
 ///-----------------
 // In addition to the valid expressions of the 'HDS' concept:
-//  - 'vertices(hds)' must return a value assignable to 'p'.  
-//  - '*p.first' must return a value assignable to 'v'.
-//  - 'num_vertices(HDS)' must return a value assignable to 'V'.
+//  - '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:
-//  - 'vertices(hds)' returns a 'vertex_iterator' pair 'p', consistent 
-//    with the STL style iterator ranges, which means all the vertices
-//    can be accessed by increasing the first part of the pair until the second
-//    part is reached.
-//  - '*p.first' returns a 'vertex_descriptor'.
-//  - 'num_vertices(HDS)' returns the number of vertices in the 'HDS' data
+//  - 'vertices_begin(hds)' returns a 'vertex_iterator' 'p' pointing to the 
+//    beginning of the 'vertex list'.
+//  - 'vertices_end(hds)' returns a 'vertex_iterator' 'p' pointing to the 
+//    end of the 'vertex list'.
+//  - 'num_vertices(hds)' returns the number of vertices in the 'HDS' data
 //    structure.
 //
 ///Complexity guarantees
 ///---------------------
-//  - 'vertices(hds)'    : amortized constant time. (for just getting the 
-//    'vertex_iterator' pair, accessing the vertices takes linear time.)
-//  - '*p.first'         : amortized constant time.
-//  - 'num_vertices(HDS)': amortized constant time.
+//  - 'vertices_begin(hds)': amortized constant time.  
+//  - 'vertices_end(hds)'  : amortized constant time.  
+//  - 'num_vertices(hds)'  : amortized constant time.
 //
 ///Invariants 
 ///----------
@@ -96,22 +93,23 @@
 //         function_requires<EqualityComparableConcept<vertex_descriptor> >();
 //         function_requires<AssignableConcept<vertex_descriptor> >();
 //         function_requires<hdstl_detail::MultiPassInputIteratorConcept<vertex_iterator> >();
-//         p = vertices(hds);
-//         v = *p.first;
-//         V = num_vertices(hds);
+//         b = vertices_begin(hds);
+//         e = vertices_end(hds);
+//         n = num_vertices(hds);
 //         const_constraints(hds);
 //     }
 //     void const_constraints(HDS const& hds) 
 //     {
-//         p = vertices(hds);
-//         v = *p.first;
-//         V = num_vertices(hds);
+//         b = vertices_begin(hds);
+//         e = vertices_end(hds);
+//         n = num_vertices(hds);
 //     }
 //     private:
 //     VertexListHDS hds; 
 //     vertex_descriptor v;
-//     std::pair<vertex_iterator,vertex_iterator> p;
-//     vertex_size_type V;  
+//     vertex_iterator b;
+//     vertex_iterator e;
+//     size_type n;  
 // };
 //..
 
@@ -159,9 +157,9 @@
            function_requires<EqualityComparableConcept<vertex_descriptor> >();
            function_requires<AssignableConcept<vertex_descriptor> >();
            function_requires<hdstl_detail::MultiPassInputIteratorConcept<vertex_iterator> >();
-           p = vertices(hds);
-           v = *p.first;
-           V = num_vertices(hds);
+           b = vertices_begin(hds);
+           e = vertices_end(hds);
+           n = num_vertices(hds);
            const_constraints(hds);
        }
 
@@ -170,17 +168,18 @@
            // Check that the non-modifiable 'HDS' template parameters
            // satisfies all the constraints of 'VertexListHDSConcept'.
        {
-           p = vertices(hds);
-           v = *p.first;
-           V = num_vertices(hds);
+           b = vertices_begin(hds);
+           e = vertices_end(hds);
+           n = num_vertices(hds);
        }
 
        private:
        //DATA
        VertexListHDS hds;     // a halfedge data structure object
        vertex_descriptor v;   // a vertex descriptor
-       std::pair<vertex_iterator,vertex_iterator> p; // a vertex iterator pair
-       vertex_size_type V;    // vertex size type
+       vertex_iterator b;     // a vertex iterator
+       vertex_iterator e;     // a vertex iterator
+       size_type n;    // vertex size type
 
    };