Boost logo

Boost-Commit :

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


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