Boost logo

Boost-Commit :

From: huseyinakcan_at_[hidden]
Date: 2007-06-25 00:37:04


Author: huseyinakcan
Date: 2007-06-25 00:37:02 EDT (Mon, 25 Jun 2007)
New Revision: 7138
URL: http://svn.boost.org/trac/boost/changeset/7138

Log:
syntax corrections in the hds_concepts

Text files modified:
   sandbox/SOC/2007/geometry/libs/hdstl/dev/hds_concepts/backward_hds_concept.hpp | 17 +++++-----
   sandbox/SOC/2007/geometry/libs/hdstl/dev/hds_concepts/bidirectional_hds_concept.hpp | 16 ++-------
   sandbox/SOC/2007/geometry/libs/hdstl/dev/hds_concepts/facet_hds_concept.hpp | 15 +++++----
   sandbox/SOC/2007/geometry/libs/hdstl/dev/hds_concepts/forward_hds_concept.hpp | 19 ++++++-----
   sandbox/SOC/2007/geometry/libs/hdstl/dev/hds_concepts/halfedge_list_hds_concept.hpp | 26 ++++++++--------
   sandbox/SOC/2007/geometry/libs/hdstl/dev/hds_concepts/hds_concept.hpp | 10 ++++-
   sandbox/SOC/2007/geometry/libs/hdstl/dev/hds_concepts/mutable_backward_hds_concept.hpp | 38 +++++++++--------------
   sandbox/SOC/2007/geometry/libs/hdstl/dev/hds_concepts/mutable_bidirectional_hds_concept.hpp | 47 +++++++++++------------------
   sandbox/SOC/2007/geometry/libs/hdstl/dev/hds_concepts/mutable_facet_hds_concept.hpp | 38 +++++++++++------------
   sandbox/SOC/2007/geometry/libs/hdstl/dev/hds_concepts/mutable_forward_hds_concept.hpp | 39 +++++++++---------------
   sandbox/SOC/2007/geometry/libs/hdstl/dev/hds_concepts/mutable_hds_concept.hpp | 33 +++++++-------------
   sandbox/SOC/2007/geometry/libs/hdstl/dev/hds_concepts/mutable_vertex_hds_concept.hpp | 60 +++++++++++++++++---------------------
   sandbox/SOC/2007/geometry/libs/hdstl/dev/hds_concepts/vertex_hds_concept.hpp | 33 +++++++++++++++-----
   sandbox/SOC/2007/geometry/libs/hdstl/dev/hds_concepts/vertex_list_hds_concept.hpp | 62 ++++++++++++++++++---------------------
   14 files changed, 209 insertions(+), 244 deletions(-)

Modified: sandbox/SOC/2007/geometry/libs/hdstl/dev/hds_concepts/backward_hds_concept.hpp
==============================================================================
--- sandbox/SOC/2007/geometry/libs/hdstl/dev/hds_concepts/backward_hds_concept.hpp (original)
+++ sandbox/SOC/2007/geometry/libs/hdstl/dev/hds_concepts/backward_hds_concept.hpp 2007-06-25 00:37:02 EDT (Mon, 25 Jun 2007)
@@ -40,7 +40,7 @@
 //
 ///Associated types
 ///----------------
-// - 'hds_traits<HDS>::halfedge_descriptor': from 'HDSConcept'.
+// In addition to the types of the 'HDS' concept:
 // - 'hds_traits<HDS>::traversal_category': from 'HDSConcept', with
 // additional requirement that this type must be convertible to
 // 'hdstl::backward_traversal_tag'.
@@ -49,12 +49,12 @@
 //
 ///Definitions
 ///-----------
-// - 'halfedge_descriptor' is a type that contains information to access
-// the halfedge. (See the 'HDS' concept or a full definition.)
+// In addition to the definitions of the 'HDS' concept:
 // - 'traversal_category' is a type that contains information about the
 // direction of the traversal, which is forward, backward or bidirectional.
-// For this 'BackwardHDS' concept, the 'traversal_category' has to be convertible to
-// the 'hdstl::backward_traversal_tag' type defined in '<boost/hdstl.hpp>'.
+// For this 'BackwardHDS' concept, the 'traversal_category' has to be
+// convertible to the 'hdstl::backward_traversal_tag' type defined in
+// '<boost/hdstl.hpp>'.
 // - 'backward_category' defines the primary accessor of the backward
 // information for use by algorithms which desire the most direct access.
 //
@@ -80,6 +80,7 @@
 //
 ///Complexity guarantees
 ///---------------------
+// In addition to the complexity guarantees of the 'HDS' concept:
 // - 'prev_in_facet(hds,h)': amortized constant time.
 // - 'prev_at_source(hds,h)': amortized constant time.
 // - 'prev_at_target(hds,h)': amortized constant time.
@@ -162,9 +163,9 @@
             function_requires<ConvertibleConcept<traversal_category,
             backward_traversal_tag> >();
             const bool is_valid_storage_tag =
- is_convertible<backward_category,prev_at_source_tag>::value ||
- is_convertible<backward_category,prev_at_target_tag>::value ||
- is_convertible<backward_category,prev_in_facet_tag>::value;
+ is_convertible<backward_category,prev_at_source_tag>::value ||
+ is_convertible<backward_category,prev_at_target_tag>::value ||
+ is_convertible<backward_category,prev_in_facet_tag>::value;
             BOOST_STATIC_ASSERT( is_valid_storage_tag );
 
             const_constraints(hds);

Modified: sandbox/SOC/2007/geometry/libs/hdstl/dev/hds_concepts/bidirectional_hds_concept.hpp
==============================================================================
--- sandbox/SOC/2007/geometry/libs/hdstl/dev/hds_concepts/bidirectional_hds_concept.hpp (original)
+++ sandbox/SOC/2007/geometry/libs/hdstl/dev/hds_concepts/bidirectional_hds_concept.hpp 2007-06-25 00:37:02 EDT (Mon, 25 Jun 2007)
@@ -37,29 +37,21 @@
 //
 ///Associated types
 ///----------------
-// - 'hds_traits<HDS>::halfedge_descriptor': from 'HDSConcept'.
+// In addition to the types of the 'ForwardHDS' and 'BackwardHDS' concepts:
 // - 'hds_traits<HDS>::traversal_category' : from 'HDSConcept', with
 // the additional requirement that this type must be convertible to
 // the 'hds_traits<HDS>::bidirectional_traversal_tag' type which is
 // defined in '<boost/hdstl.hpp>'.
-// - 'hds_traits<HDS>::forward_category': from 'ForwardHDSConcept'
-// - 'hds_traits<HDS>::backward_category': from 'BackwardHDSConcept'
 //
 ///Definitions
 ///-----------
-// - 'halfedge_descriptor' is a type that contains information to access
-// the halfedge. (See the 'HDSConcept' for a full definition.)
+// In addition to the definitions of the 'ForwardHDS' and 'BackwardHDS'
+// concepts:
 // - 'traversal_category' is a type that contains information about the
 // direction of the traversal, which is forward, backward or bidirectional.
 // For this 'BidirectionalHDS' concept, the 'traversal_category' has to be
 // convertible to the 'hdstl::bidirectional_traversal_tag' type defined
 // in '<boost/hdstl.hpp>'.
-// - 'forward_category' defines the primary accessor of the forward
-// information for use by algorithms which desire the most direct access.
-// (See the 'ForwardHDSConcept' for a full definition.)
-// - 'backward_category' defines the primary accessor of the backward
-// information for use by algorithms which desire the most direct access.
-// (See the 'BackwardHDSConcept' for a full definition.)
 //
 ///Valid Expressions
 ///-----------------
@@ -79,7 +71,7 @@
 ///Invariants
 ///----------
 // 'BidirectionalHDSConcept' should validate all the invariants for the
-// 'ForwardHDSConcept', and the 'BackwardHDSConcept'.
+// 'ForwardHDSConcept' and the 'BackwardHDSConcept'.
 //
 ///Concept-checking class
 ///----------------------

Modified: sandbox/SOC/2007/geometry/libs/hdstl/dev/hds_concepts/facet_hds_concept.hpp
==============================================================================
--- sandbox/SOC/2007/geometry/libs/hdstl/dev/hds_concepts/facet_hds_concept.hpp (original)
+++ sandbox/SOC/2007/geometry/libs/hdstl/dev/hds_concepts/facet_hds_concept.hpp 2007-06-25 00:37:02 EDT (Mon, 25 Jun 2007)
@@ -34,12 +34,13 @@
 //
 ///Associated types
 ///----------------
-// In addition to the types required by the 'HDSConcept':
+// In addition to the types of the 'HDS' concept:
 // - 'hds_traits<HDS>::facet_descriptor': must be 'DefaultConstructible',
 // 'CopyConstructible', 'EqualityComparable', and 'Assignable'.
 //
 ///Definitions
 ///-----------
+// In addition to the definitions of the 'HDS' concept:
 // - 'halfedge_descriptor' is a type that contains information to access
 // the halfedge. (See the 'HDSConcept' for a full definition.)
 // - 'facet_descriptor' is a type that contains information to access the
@@ -48,12 +49,12 @@
 //
 ///Valid Expressions
 ///-----------------
-// In addition to the valid expressions of the 'HDSConcept':
+// In addition to the valid expressions of the 'HDS' concept:
 // - 'facet(hds,h)' must return a value assignable to 'f'.
 //
 ///Expression Semantics
 ///--------------------
-// In addition to the expressions semantics of the 'HDSConcept':
+// In addition to the expressions semantics of the 'HDS' concept:
 // - 'hds_traits<HDS>::supports_facets': must compare equal to 'true'.
 // - 'facet(hds,h)' returns the facet descriptor of the facet to the
 // left of 'h', when forward facet cycles are oriented in
@@ -61,7 +62,7 @@
 //
 ///Complexity guarantees
 ///---------------------
-// In addition to the complexity guarantees of the 'HDSConcept':
+// In addition to the complexity guarantees of the 'HDS' concept:
 // - 'facet(hds,h)': amortized constant time.
 //
 ///Invariants
@@ -116,9 +117,9 @@
 
        // TYPES
        typedef typename hds_traits<HDS>::facet_descriptor facet_descriptor;
- // The specialization of 'hds_traits<HDS>' must have these required
- // types, obeying the types requirements stated in the detailed
- // description of the 'FacetHDS' concept on page [facethdsconcept].
+ // The specialization of 'hds_traits<HDS>' must have these required
+ // types, obeying the types requirements stated in the detailed
+ // description of the 'FacetHDS' concept on page [facethdsconcept].
 
        //MANIPULATORS
        void constraints()

Modified: sandbox/SOC/2007/geometry/libs/hdstl/dev/hds_concepts/forward_hds_concept.hpp
==============================================================================
--- sandbox/SOC/2007/geometry/libs/hdstl/dev/hds_concepts/forward_hds_concept.hpp (original)
+++ sandbox/SOC/2007/geometry/libs/hdstl/dev/hds_concepts/forward_hds_concept.hpp 2007-06-25 00:37:02 EDT (Mon, 25 Jun 2007)
@@ -40,7 +40,7 @@
 //
 ///Associated types
 ///----------------
-// - 'hds_traits<HDS>::halfedge_descriptor': from 'HDSConcept'.
+// In addition to the types of the 'HDS' concept:
 // - 'hds_traits<HDS>::traversal_category': from 'HDSConcept', with
 // additional requirement that this type must be convertible to
 // 'hdstl::forward_traversal_tag'.
@@ -49,12 +49,12 @@
 //
 ///Definitions
 ///-----------
-// - 'halfedge_descriptor' is a type that contains information to access
-// the halfedge. (See the 'HDS' concept or a full definition.)
+// In addition to the definitions of the 'HDS' concept:
 // - 'traversal_category' is a type that contains information about the
-// direction of the traversal, which is forward, forward or bidirectional.
-// For this 'ForwardHDS' concept, the 'traversal_category' has to be convertible to
-// the 'hdstl::forward_traversal_tag' type defined in '<boost/hdstl.hpp>'.
+// direction of the traversal, which is forward, backward or bidirectional.
+// For this 'ForwardHDS' concept, the 'traversal_category' has to be
+// convertible to the 'hdstl::forward_traversal_tag' type defined in
+// '<boost/hdstl.hpp>'.
 // - 'forward_category' defines the primary accessor of the forward
 // information for use by algorithms which desire the most direct access.
 //
@@ -80,6 +80,7 @@
 //
 ///Complexity guarantees
 ///---------------------
+// In addition to the complexity guarantees of the 'HDS' concept:
 // - 'next_in_facet(hds,h)': amortized constant time.
 // - 'next_at_source(hds,h)': amortized constant time.
 // - 'next_at_target(hds,h)': amortized constant time.
@@ -166,9 +167,9 @@
             function_requires<ConvertibleConcept<traversal_category,
             forward_traversal_tag> >();
             const bool is_valid_storage_tag =
- is_convertible<forward_category,next_at_source_tag>::value ||
- is_convertible<forward_category,next_at_target_tag>::value ||
- is_convertible<forward_category,next_in_facet_tag>::value;
+ is_convertible<forward_category,next_at_source_tag>::value ||
+ is_convertible<forward_category,next_at_target_tag>::value ||
+ is_convertible<forward_category,next_in_facet_tag>::value;
             BOOST_STATIC_ASSERT( is_valid_storage_tag );
 
             const_constraints(hds);

Modified: sandbox/SOC/2007/geometry/libs/hdstl/dev/hds_concepts/halfedge_list_hds_concept.hpp
==============================================================================
--- sandbox/SOC/2007/geometry/libs/hdstl/dev/hds_concepts/halfedge_list_hds_concept.hpp (original)
+++ sandbox/SOC/2007/geometry/libs/hdstl/dev/hds_concepts/halfedge_list_hds_concept.hpp 2007-06-25 00:37:02 EDT (Mon, 25 Jun 2007)
@@ -32,20 +32,20 @@
 // - 'hds' A non-modifiable instance of HDS
 // - 'h' Halfedge descriptor, of type 'hds_traits<HDS>::halfedge_descriptor'
 // - 'p' Halfedge iterator, of type 'hds_traits<HDS>::halfedge_iterator'
-// - 'n' Halfedge size type, of type 'hds_traits<HDS>::size_type'
+// - 'n' Halfedge list size, of type 'hds_traits<HDS>::size_type'
 //
 ///Associated types
 ///----------------
-// - 'hds_traits<HDS>::halfedge_descriptor': must be 'DefaultConstructible',
-// 'CopyConstructible', 'EqualityComparable', and 'Assignable'.
-// - 'hds_traits<HDS>::halfedge_iterator': must be 'ForwardIterator'.
+// In addition to the types of the 'HDS' concept:
+// - 'hds_traits<HDS>::halfedge_iterator': must be a model of the
+// 'ForwardIterator' concept. The value type of the halfedge iterator
+// must be the same as the 'halfedge_descriptor'.
 // Its value type must be the same as the 'halfedge_descriptor' type.
-// - 'hds_traits<HDS>::size_type': integral halfedge size type.
+// - 'hds_traits<HDS>::size_type': integral size type.
 //
 ///Definitions
 ///-----------
-// - 'halfedge_descriptor' is a type that contains information to access
-// the halfedge. (See the 'HDSConcept' for a full definition.)
+// In addition to the definitions of the 'HDS' concept:
 // - 'halfedge_iterator' is an iterator type for the halfedges.
 // - 'size_type' defines the size type.
 //
@@ -58,11 +58,11 @@
 //
 ///Expression Semantics
 ///--------------------
-// In addition to the valid expression semantics of the 'HDS' concept:
+// In addition to the expression semantics of the 'HDS' concept:
 // - 'halfedges_begin(hds)' returns a 'halfedge_iterator' pointing to the
-// beginning of the 'halfedge list'.
+// beginning of the "halfedge list".
 // - 'halfedges_end(hds)' returns a 'halfedge_iterator' pointing to the
-// end of the 'halfedge list'.
+// end of the "halfedge list".
 // - 'num_halfedges(hds)' returns the number of halfedges in the 'HDS' data
 // structure.
 //
@@ -75,7 +75,8 @@
 ///Invariants
 ///----------
 // In addition to the invariants of the 'HDSConcept':
-// - 'std::distance(halfedges_begin(hds), halfedges_end(hds)) == num_halfedges(hds)'
+// - 'std::distance(halfedges_begin(hds), halfedges_end(hds))
+// == num_halfedges(hds)'
 //
 ///Concept-checking class
 ///----------------------
@@ -173,8 +174,7 @@
        //DATA
        HalfedgeListHDS hds; // a halfedge data structure object
        halfedge_descriptor h; // a halfedge descriptor
- halfedge_iterator b; // a halfedge iterator
- halfedge_iterator e; // a halfedge iterator
+ halfedge_iterator b,e; // halfedge iterators
        size_type n; // halfedge size type
 
    };

Modified: sandbox/SOC/2007/geometry/libs/hdstl/dev/hds_concepts/hds_concept.hpp
==============================================================================
--- sandbox/SOC/2007/geometry/libs/hdstl/dev/hds_concepts/hds_concept.hpp (original)
+++ sandbox/SOC/2007/geometry/libs/hdstl/dev/hds_concepts/hds_concept.hpp 2007-06-25 00:37:02 EDT (Mon, 25 Jun 2007)
@@ -35,12 +35,13 @@
 ///--------
 // - 'HDS' A type that is a model of 'HDSConcept'
 // - 'hds' A non-modifiable instance of 'HDS'
-// - 'h','g' Halfedge descriptors, of type 'hds_traits<HDS>::halfedge_descriptor'
+// - 'h','g' Halfedge descriptors, of type
+// 'hds_traits<HDS>::halfedge_descriptor'
 //
 ///Associated types
 ///----------------
-// - 'hds_traits<HDS>::halfedge_descriptor': must be 'DefaultConstructible' and
-// 'CopyConstructible', 'EqualityComparable', 'Assignable'.
+// - 'hds_traits<HDS>::halfedge_descriptor': must be 'DefaultConstructible',
+// 'CopyConstructible', 'EqualityComparable', and 'Assignable'.
 //
 ///Definitions
 ///-----------
@@ -56,12 +57,15 @@
 // The following expression must be valid and obey the syntactic requirement:
 // - 'opposite(hds, h)' must return a value assignable to 'h'.
 // - 'hds_traits<HDS>::supports_facets' must be usable as a Boolean.
+// - 'hds_traits<HDS>::supports_vertices' must be usable as a Boolean.
 //
 ///Expression Semantics
 ///--------------------
 // The expressions semantics are as follows:
 // - 'hds_traits<HDS>::supports_facets' is true if and only if 'HDS'
 // is a model of the 'FacetHDS' concept (see the page [facethdsconcept]).
+// - 'hds_traits<HDS>::supports_vertices' is true if and only if 'HDS'
+// is a model of the 'VertexHDS' concept (see the page [vertexhdsconcept]).
 // - 'opposite(hds, h)' returns a descriptor to the halfedge opposite 'h' in
 // the data structure 'hds'. Does not modify the state of either 'hds'
 // or 'h'.

Modified: sandbox/SOC/2007/geometry/libs/hdstl/dev/hds_concepts/mutable_backward_hds_concept.hpp
==============================================================================
--- sandbox/SOC/2007/geometry/libs/hdstl/dev/hds_concepts/mutable_backward_hds_concept.hpp (original)
+++ sandbox/SOC/2007/geometry/libs/hdstl/dev/hds_concepts/mutable_backward_hds_concept.hpp 2007-06-25 00:37:02 EDT (Mon, 25 Jun 2007)
@@ -30,30 +30,22 @@
 ///Notation
 ///--------
 // - 'HDS' A type that is a model of 'MutableBackwardHDSConcept'
-// - 'hds' A non-modifiable instance of 'HDS'
+// - 'hds' A modifiable instance of 'HDS'
 // - 'h','g' Halfedge descriptors, of type
 // 'hds_traits<HDS>::halfedge_descriptor'
 //
 ///Associated types
 ///----------------
-// - 'hds_traits<HDS>::halfedge_descriptor': from 'HDSConcept'.
-// - 'hds_traits<HDS>::traversal_category': from 'BackwardHDSConcept'.
-// - 'hds_traits<HDS>::backward_category': from 'BackwardHDSConcept'.
+// None besides the types in the 'MutableHDS' and 'BackwardHDS' concepts.
 //
 ///Definitions
 ///-----------
-// - 'halfedge_descriptor' is a type that contains information to access
-// the halfedge. (See the 'HDS' concept for a full definition.)
-// - 'traversal_category' is a type that contains information about the
-// direction of the traversal, which is forward, backward or bidirectional.
-// (See the 'HDS' concept for a full definition.)
-// - 'backward_category' defines the primary accessor of the backward
-// information for use by algorithms which desire the most direct access.
-// (See the 'HDS' concept for a full definition.)
+// None besides the definitions in the 'MutableHDS' and 'BackwardHDS'
+// concepts.
 //
 ///Valid Expressions
 ///-----------------
-// In addition to the valid expressions of the 'HDS' and the
+// In addition to the valid expressions of the 'MutableHDS' and the
 // 'BackwardHDS' concepts:
 // - 'set_prev_in_facet(hds,h,g)' sets 'g' as the 'prev_in_facet' value of
 // 'h'.
@@ -64,8 +56,8 @@
 //
 ///Expression Semantics
 ///--------------------
-// In addition to the expression semantics of the 'HDS' concept, and the
-// 'BackwardHDS' concept:
+// In addition to the expression semantics of the 'Mutable HDS' and the
+// 'BackwardHDS' concepts:
 // - 'set_prev_in_facet(hds,h,g)' sets 'g' as the halfedge
 // preceding 'h' in the adjacent facet cycle, when facet cycles are
 // oriented in counter-clockwise order.
@@ -78,6 +70,8 @@
 //
 ///Complexity guarantees
 ///---------------------
+// In addition to the complexity guarantees of the 'Mutable HDS' and the
+// 'BackwardHDS' concepts:
 // - 'set_prev_in_facet(hds,h,g)': amortized constant time.
 // - 'set_prev_at_source(hds,h,g)': amortized constant time.
 // - 'set_prev_at_target(hds,h,g)': amortized constant time.
@@ -110,8 +104,7 @@
 // }
 // private:
 // MutableBackwardHDS hds;
-// halfedge_descriptor h;
-// halfedge_descriptor g;
+// halfedge_descriptor h,g;
 // };
 //..
 
@@ -141,10 +134,10 @@
         typedef typename hds_traits<HDS>::halfedge_descriptor halfedge_descriptor;
         typedef typename hds_traits<HDS>::traversal_category traversal_category;
         typedef typename hds_traits<HDS>::backward_category backward_category;
- // The specialization of 'hds_traits<HDS>' must have these
- // required types, obeying the types requirements stated in the
- // detailed description of the 'MutableBackwardHDS' concept on page
- // [mutablebackwardhdsconcept].
+ // The specialization of 'hds_traits<HDS>' must have these
+ // required types, obeying the types requirements stated in the
+ // detailed description of the 'MutableBackwardHDS' concept on page
+ // [mutablebackwardhdsconcept].
 
         // MANIPULATORS
         void constraints()
@@ -174,8 +167,7 @@
       private:
         // DATA
         MutableBackwardHDS hds; // a halfedge data structure object
- halfedge_descriptor h; // a halfedge descriptor
- halfedge_descriptor g; // another halfedge descriptor
+ halfedge_descriptor h,g; // halfedge descriptors
     };
 
 } // close namespace concepts

Modified: sandbox/SOC/2007/geometry/libs/hdstl/dev/hds_concepts/mutable_bidirectional_hds_concept.hpp
==============================================================================
--- sandbox/SOC/2007/geometry/libs/hdstl/dev/hds_concepts/mutable_bidirectional_hds_concept.hpp (original)
+++ sandbox/SOC/2007/geometry/libs/hdstl/dev/hds_concepts/mutable_bidirectional_hds_concept.hpp 2007-06-25 00:37:02 EDT (Mon, 25 Jun 2007)
@@ -34,46 +34,34 @@
 ///Notation
 ///--------
 // - 'HDS' A type that is a model of 'MutableBidirectionalHDSConcept'
-// - 'hds' A non-modifiable instance of 'HDS'
+// - 'hds' A modifiable instance of 'HDS'
 // - 'h','g' Halfedge descriptors, of type
 // 'hds_traits<HDS>::halfedge_descriptor'
 //
 ///Associated types
 ///----------------
-// - 'hds_traits<HDS>::halfedge_descriptor': from 'HDSConcept'.
-// - 'hds_traits<HDS>::traversal_category' : must be convertible to
-// 'hds_traits<HDS>::bidirectional_traversal_tag'.
-// - 'hds_traits<HDS>::forward_category' : from 'ForwardHDSConcept'
-// - 'hds_traits<HDS>::backward_category' : from 'BackwardHDSConcept'
+// None besides the types in the 'BidirectionalHDS', 'MutableForwardHDS',
+// and 'MutableBackwardHDS' concepts
 //
 ///Definitions
 ///-----------
-// - 'halfedge_descriptor' is a type that contains information to access
-// the halfedge. (See the 'HDSConcept' for a full definition.)
-// - 'traversal_category' is a type that contains information about the
-// direction of the traversal, which is forward, backward or bidirectional.
-// For this 'MutableBidirectionalHDS' concept, the 'traversal_category' has to be
-// convertible to the 'hdstl::bidirectional_traversal_tag' type defined
-// in '<boost/hdstl.hpp>'.
-// - 'forward_category' defines the primary accessor of the forward
-// information for use by algorithms which desire the most direct access.
-// - 'backward_category' defines the primary accessor of the backward
-// information for use by algorithms which desire the most direct access.
+// Same as the definitions in the 'BidirectionalHDS', 'MutableForwardHDS',
+// and 'MutableBackwardHDS' concepts
 //
 ///Valid Expressions
 ///-----------------
-// See the valid expressions of the 'MutableForwardHDSConcept' and
-// the 'MutableBackwardHDSConcept'.
+// Same as the valid expressions in the 'BidirectionalHDS',
+// 'MutableForwardHDS', and 'MutableBackwardHDS' concepts
 //
 ///Expression Semantics
 ///--------------------
-// See the expression semantics of the 'MutableForwardHDSConcept' and
-// the 'MutableBackwardHDSConcept'.
+// Same as the expression semantics in the 'BidirectionalHDS',
+// 'MutableForwardHDS', and 'MutableBackwardHDS' concepts
 //
 ///Complexity guarantees
 ///---------------------
-// See the complexity guarantees of the 'MutableForwardHDSConcept' and
-// the 'MutableBackwardHDSConcept'.
+// Same as the complexity guarantees in the 'BidirectionalHDS',
+// 'MutableForwardHDS', and 'MutableBackwardHDS' concepts
 //
 ///Invariants
 ///----------
@@ -130,10 +118,10 @@
         typedef typename hds_traits<HDS>::traversal_category traversal_category;
         typedef typename hds_traits<HDS>::forward_category forward_category;
         typedef typename hds_traits<HDS>::backward_category backward_category;
- // The specialization of 'hds_traits<HDS>' must have these required
- // types, obeying the types requirements stated in the detailed
- // description of the 'MutableBidirectionalHDS' concept on page
- // [mutablebidirectionalhdsconcept].
+ // The specialization of 'hds_traits<HDS>' must have these required
+ // types, obeying the types requirements stated in the detailed
+ // description of the 'MutableBidirectionalHDS' concept on page
+ // [mutablebidirectionalhdsconcept].
 
         //MANIPULATORS
         void constraints()
@@ -152,11 +140,12 @@
         // ACCESSORS
         void const_constraints(HDS const& hds)
             // Check that the non-modifiable 'HDS' template parameters
- // satisfies all the constraints of 'MutableBidirectionalHDSConcept'.
+ // satisfies all the constraints of
+ // 'MutableBidirectionalHDSConcept'.
         {
         }
 
- private:
+ private:
         //DATA
         MutableBidirectionalHDS hds; // a halfedge data structure object
    };

Modified: sandbox/SOC/2007/geometry/libs/hdstl/dev/hds_concepts/mutable_facet_hds_concept.hpp
==============================================================================
--- sandbox/SOC/2007/geometry/libs/hdstl/dev/hds_concepts/mutable_facet_hds_concept.hpp (original)
+++ sandbox/SOC/2007/geometry/libs/hdstl/dev/hds_concepts/mutable_facet_hds_concept.hpp 2007-06-25 00:37:02 EDT (Mon, 25 Jun 2007)
@@ -31,36 +31,32 @@
 ///Notation
 ///--------
 // - 'HDS' A type that is a model of MutableFacetHDSConcept
-// - 'hds' A non-modifiable instance of HDS
+// - 'hds' A modifiable instance of HDS
 // - 'f' Facet descriptor, of type 'hds_traits<HDS>::facet_descriptor'
 //
 ///Associated types
 ///----------------
-// - 'hds_traits<HDS>::facet_descriptor': must be 'DefaultConstructible',
-// 'CopyConstructible', 'EqualityComparable', and 'Assignable'.
+// None besides the types in the 'MutableHDS' and 'FacetHDS' concepts.
 //
 ///Definitions
 ///-----------
-// - 'halfedge_descriptor' is a type that contains information to access
-// the halfedge. (See the 'HDSConcept' for a full definition.)
-// - 'facet_descriptor' is a type that contains information to access the
-// facets. (See the 'FacetHDSConcept' for a full definition.)
+// Same as the definitions in the 'MutableHDS' and 'FacetHDS' concepts.
 //
 ///Valid Expressions
 ///-----------------
-// In addition to the valid expressions of the 'FacetHDS' concept, and the
-// 'MutableHDS' concept:
+// In addition to the valid expressions of the 'FacetHDS' and the
+// 'MutableHDS' concepts:
 // - 'set_facet(hds,h,f)' sets the facet descriptor value of 'h' to 'f'.
-// - 'add_facet(hds,f)' adds a new facet 'f' to the 'hds' data structure.
+// - 'new_facet(hds)' creates a new facet 'f' in data structure 'hds'.
 // - 'remove_facet(hds,f)' removes the facet 'f' from the 'hds' data structure.
 //
 ///Expression Semantics
 ///--------------------
-// In addition to the expression semantics of the 'FacetHDS' concept, and the
-// 'MutableHDS' concept.
+// In addition to the expression semantics of the 'FacetHDS' and the
+// 'MutableHDS' concepts.
 // - 'set_facet(hds,h,f)' sets the facet descriptor value of 'h' to 'f' for a
 // single halfedge in the 'hds' data structure.
-// - 'add_facet(hds)' adds a new facet to the 'hds' data structure
+// - 'new_facet(hds)' creates a new facet 'f' data structure 'hds'
 // and returns the facet descriptor of this new facet.
 // By this operation the facet is added but no connections to the halfedges
 // are set. In order to assign facets to halfedges 'set_facet(hds,h,f)'
@@ -71,8 +67,10 @@
 //
 ///Complexity guarantees
 ///---------------------
+// In addition to the complexity guarantees of the 'FacetHDS' and the
+// 'MutableHDS' concepts.
 // - 'set_facet(hds,h,f)' : amortized constant time.
-// - 'add_facet(hds)': amortized constant time.
+// - 'new_facet(hds)': amortized constant time.
 // - 'remove_facet(hds,f)': amortized constant time.
 //
 ///Invariants
@@ -93,12 +91,12 @@
 // function_requires<CopyConstructibleConcept<facet_descriptor> >();
 // function_requires<EqualityComparableConcept<facet_descriptor> >();
 // function_requires<AssignableConcept<facet_descriptor> >();
-// }
-// void const_constraints(HDS const& hds) {
 // set_facet(hds,h,f);
-// f = add_facet(hds);
+// f = new_facet(hds);
 // remove_facet(hds,f);
 // }
+// void const_constraints(HDS const& hds) {
+// }
 // HDS hds;
 // halfedge_descriptor h;
 // facet_descriptor f;
@@ -146,6 +144,9 @@
            function_requires<CopyConstructibleConcept<facet_descriptor> >();
            function_requires<EqualityComparableConcept<facet_descriptor> >();
            function_requires<AssignableConcept<facet_descriptor> >();
+ set_facet(hds,h,f);
+ f = new_facet(hds);
+ delete_facet(hds,f);
            const_constraints(hds);
        }
 
@@ -154,9 +155,6 @@
            // Check that the non-modifiable 'HDS' template parameters
            // satisfies all the constraints of 'MutableFacetHDSConcept'.
        {
- set_facet(hds,h,f);
- f = add_facet(hds);
- delete_facet(hds,f);
        }
 
      private:

Modified: sandbox/SOC/2007/geometry/libs/hdstl/dev/hds_concepts/mutable_forward_hds_concept.hpp
==============================================================================
--- sandbox/SOC/2007/geometry/libs/hdstl/dev/hds_concepts/mutable_forward_hds_concept.hpp (original)
+++ sandbox/SOC/2007/geometry/libs/hdstl/dev/hds_concepts/mutable_forward_hds_concept.hpp 2007-06-25 00:37:02 EDT (Mon, 25 Jun 2007)
@@ -30,31 +30,22 @@
 ///Notation
 ///--------
 // - 'HDS' A type that is a model of 'MutableForwardHDSConcept'
-// - 'hds' A non-modifiable instance of 'HDS'
+// - 'hds' A modifiable instance of 'HDS'
 // - 'h','g' Halfedge descriptors, of type
 // 'hds_traits<HDS>::halfedge_descriptor'
 //
 ///Associated types
 ///----------------
-// - 'hds_traits<HDS>::halfedge_descriptor': from 'HDSConcept'.
-// - 'hds_traits<HDS>::traversal_category': from 'ForwardHDSConcept'.
-// - 'hds_traits<HDS>::forward_category': from 'ForwardHDSConcept'.
+// None besides the types in the 'MutableHDS' and the 'ForwardHDS' concepts.
 //
 ///Definitions
 ///-----------
-// - 'halfedge_descriptor' is a type that contains information to access
-// the halfedge. (See the 'HDS' concept for a full definition.)
-// - 'traversal_category' is a type that contains information about the
-// direction of the traversal, which is forward, backward or bidirectional.
-// (See the 'HDS' concept for a full definition.)
-// - 'forward_category' defines the primary accessor of the forward
-// information for use by algorithms which desire the most direct access.
-// (See the 'HDS' concept for a full definition.)
+// Same as the definitions in the 'MutableHDS' and the 'ForwardHDS' concepts.
 //
 ///Valid Expressions
 ///-----------------
-// In addition to the valid expressions of the 'HDS' concept, and the
-// 'ForwardHDS' concept:
+// In addition to the valid expressions of the 'MutableHDS' and the
+// 'ForwardHDS' concepts:
 // - 'set_next_in_facet(hds,h,g)' sets 'g' as the 'next_in_facet' value of
 // 'h'.
 // - 'set_next_at_source(hds,h,g)' sets 'g' as the 'next_at_source' value of
@@ -64,8 +55,8 @@
 //
 ///Expression Semantics
 ///--------------------
-// In addition to the expression semantics of the 'HDS' concept, and the
-// 'ForwardHDS' concept:
+// In addition to the expression semantics of the 'MutableHDS' and the
+// 'ForwardHDS' concepts:
 // - 'set_next_in_facet(hds,h,g)' sets 'g' as the halfedge
 // succeeding 'h' in the adjacent facet cycle, when facet cycles are
 // oriented in counter-clockwise order.
@@ -78,6 +69,8 @@
 //
 ///Complexity guarantees
 ///---------------------
+// In addition to the complexity guarantees of the 'MutableHDS' and the
+// 'ForwardHDS' concepts:
 // - 'set_next_in_facet(hds,h,g)': amortized constant time.
 // - 'set_next_at_source(hds,h,g)': amortized constant time.
 // - 'set_next_at_target(hds,h,g)': amortized constant time.
@@ -110,8 +103,7 @@
 // }
 // private:
 // MutableForwardHDS hds;
-// halfedge_descriptor h;
-// halfedge_descriptor g;
+// halfedge_descriptor h,g;
 // };
 //..
 
@@ -141,10 +133,10 @@
         typedef typename hds_traits<HDS>::halfedge_descriptor halfedge_descriptor;
         typedef typename hds_traits<HDS>::traversal_category traversal_category;
         typedef typename hds_traits<HDS>::forward_category forward_category;
- // The specialization of 'hds_traits<HDS>' must have these
- // required types, obeying the types requirements stated in the
- // detailed description of the 'MutableForwardHDS' concept on page
- // [mutableforwardhdsconcept].
+ // The specialization of 'hds_traits<HDS>' must have these
+ // required types, obeying the types requirements stated in the
+ // detailed description of the 'MutableForwardHDS' concept on page
+ // [mutableforwardhdsconcept].
 
         // MANIPULATORS
         void constraints()
@@ -174,8 +166,7 @@
       private:
         // DATA
         MutableForwardHDS hds; // a halfedge data structure object
- halfedge_descriptor h; // a halfedge descriptor
- halfedge_descriptor g; // another halfedge descriptor
+ halfedge_descriptor h,g; // halfedge descriptors
     };
 
 } // close namespace concepts

Modified: sandbox/SOC/2007/geometry/libs/hdstl/dev/hds_concepts/mutable_hds_concept.hpp
==============================================================================
--- sandbox/SOC/2007/geometry/libs/hdstl/dev/hds_concepts/mutable_hds_concept.hpp (original)
+++ sandbox/SOC/2007/geometry/libs/hdstl/dev/hds_concepts/mutable_hds_concept.hpp 2007-06-25 00:37:02 EDT (Mon, 25 Jun 2007)
@@ -34,33 +34,26 @@
 // - 'HDS' A type that is a model of 'MutableHDSConcept'
 // - 'hds' A modifiable instance of 'HDS'
 // - 'h', h1','h2'
-// Halfedge descriptors, of type 'hds_traits<HDS>::halfedge_descriptor'
+// Halfedge descriptors, of type 'hds_traits<HDS>::halfedge_descriptor'
 //
 ///Associated types
 ///----------------
-// - 'hds_traits<HDS>::halfedge_descriptor': must be 'DefaultConstructible',
-// 'CopyConstructible', 'EqualityComparable', and 'Assignable'.
+// None besides the types of the 'HDS' concept,
 //
 ///Definitions
 ///-----------
-// 'halfedge descriptor' is a type that contains information to access
-// the halfedge. Note that the halfedge descriptor type (accessible as a
-// member of the 'hds_traits<HDS>' type) is an opaque type. All that can be
-// done to it is passing it to the function opposite and letting the hds use
-// the information it contains to find the opposite halfedge. In
-// particular, there is no guarantee that it is a pointer type.
+// Same as the definitions of the 'HDS' concept,
 //
 ///Valid Expressions
 ///-----------------
-// In addition to the valid expressions of the 'HDS' concept,
-// the following expressions must be valid and obey the syntactic requirement:
+// In addition to the valid expressions of the 'HDS' concept:
 // - 'set_opposite(hds,h1,h2)'
 // - 'h = new_edge(hds)'
 // - 'delete_edge(hds,h)'
 //
 ///Expression Semantics
 ///--------------------
-// The expressions semantics are as follows:
+// In addition to the expression semantics of the 'HDS' concept:
 // - 'set_opposite(hds,h1,h2)' sets 'h1' and 'h2' as opposites of each other
 // in the data structure 'hds'.
 // - 'new_edge(hds)' creates a new edge in data structure 'hds', and
@@ -74,6 +67,7 @@
 //
 ///Complexity guarantees
 ///---------------------
+// In addition to the complexity guarantees of the 'HDS' concept:
 // - 'set_opposite(hds,h1,h2)': amortized constant time.
 // - 'new_edge(hds)': amortized constant time.
 // - 'delete_edge(hds,h)' : amortized constant time.
@@ -99,8 +93,7 @@
 // void const_constraints(HDS const& hds) {
 // }
 // HDS hds;
-// halfedge_descriptor h1;
-// halfedge_descriptor h2;
+// halfedge_descriptor h,h1,h2;
 // };
 //..
 
@@ -130,10 +123,10 @@
         // TYPES
         typedef typename hds_traits<HDS>::halfedge_descriptor
                                           halfedge_descriptor;
- // The specialization of 'hds_traits<HDS>' must have these
- // required types, obeying the types requirements stated in the
- // detailed description of the 'MutableHDS' concept on page
- // [mutablehdsconcept].
+ // The specialization of 'hds_traits<HDS>' must have these
+ // required types, obeying the types requirements stated in the
+ // detailed description of the 'MutableHDS' concept on page
+ // [mutablehdsconcept].
 
         // MANIPULATORS
         void constraints()
@@ -159,9 +152,7 @@
         private:
         // DATA
             HDS hds; // a halfedge data structure object
- halfedge_descriptor h; // a halfedge descriptor
- halfedge_descriptor h1; // a halfedge descriptor
- halfedge_descriptor h2; // a halfedge descriptor
+ halfedge_descriptor h,h1,h2; // halfedge descriptors
    };
 
 } // close namespace concepts

Modified: sandbox/SOC/2007/geometry/libs/hdstl/dev/hds_concepts/mutable_vertex_hds_concept.hpp
==============================================================================
--- sandbox/SOC/2007/geometry/libs/hdstl/dev/hds_concepts/mutable_vertex_hds_concept.hpp (original)
+++ sandbox/SOC/2007/geometry/libs/hdstl/dev/hds_concepts/mutable_vertex_hds_concept.hpp 2007-06-25 00:37:02 EDT (Mon, 25 Jun 2007)
@@ -12,7 +12,8 @@
 // BOOST_CLASS_REQUIRE(HDS, boost::hdstl,MutableVertexHDSConcept);
 //..
 // inside a class body, checks whether the type given as template
-// argument is a model of the HDS concept described on the page [mutablevertexhds].
+// argument is a model of the HDS concept described on the page
+// [mutablevertexhds].
 //
 //@CONCEPT: [mutablevertexhds] Mutable Vertex HDS concept
 //
@@ -30,38 +31,35 @@
 ///Notation
 ///--------
 // - 'HDS' A type that is a model of 'MutableVertexHDSConcept'
-// - 'hds' A non-modifiable instance of 'HDS'
+// - 'hds' A modifiable instance of 'HDS'
 // - 'v' Vertex descriptor, of type 'hds_traits<HDS>::vertex_descriptor'
 //
 ///Associated types
 ///----------------
-// - 'hds_traits<HDS>::vertex_descriptor': must be 'DefaultConstructible',
-// 'CopyConstructible', 'EqualityComparable', and 'Assignable'.
+// None besides the types in the 'VertexHDS' and the 'MutableHDS' concepts.
 //
 ///Definitions
 ///-----------
-// - 'halfedge_descriptor' is a type that contains information to access
-// the halfedge. (See the 'HDSConcept' for a full definition.)
-// - 'vertex_descriptor' is a type that contains information to access the
-// vertex at the source of the halfedge.
+// Same as the definitions in the 'VertexHDS' and the 'MutableHDS' concepts.
 //
 ///Valid Expressions
 ///-----------------
-// In addition to the valid expressions of the 'MutableHDS' concept, and the
-// 'VertexHDS' concept:
-// - 'set_vertex(hds,h,v)' sets the source vertex descriptor value of 'h' to
+// In addition to the valid expressions of the 'VertexHDS' and the
+// 'MutableHDS' concepts:
+// - 'set_vertex(hds,h,v)' sets the source vertex descriptor value of 'h' to
 // 'v'.
-// - 'add_vertex(hds,v)' adds a new vertex 'v' to the 'hds' data structure.
+// - 'new_vertex(hds)' adds a new vertex 'v' to the 'hds' data structure
+// and returns the vertex descriptor to this new vertex.
 // - 'remove_vertex(hds,v)' removes the vertex 'v' from the 'hds' data
 // structure.
 //
 ///Expression Semantics
 ///--------------------
-// In addition to the expression semantics of the 'MutableHDS' concept, and the
-// 'VertexHDS' concept:
+// In addition to the expression semantics of the 'VertexHDS' and the
+// 'MutableHDS' concepts:
 // - 'set_vertex(hds,h,v)' sets the source vertex descriptor value of 'h' to
 // 'v' for a single halfedge in the 'hds' data structure.
-// - 'add_vertex(hds,v)' adds a new vertex 'v' to the 'hds' data structure.
+// - 'new_vertex(hds)' adds a new vertex 'v' to the 'hds' data structure.
 // By this operation the vertex is added but no connections to the halfedges
 // are set. In order to assign vertces to halfedges 'set_vertex(hds,h,v)'
 // operation should be used.
@@ -71,14 +69,16 @@
 //
 ///Complexity guarantees
 ///---------------------
-// - 'set_vertex(hds,h,v)' : amortized constant time.
-// - 'add_vertex(hds,f)' : amortized constant time.
-// - 'remove_vertex(hds,v)' : amortized constant time.
+// In addition to the complexity guarantees of the 'VertexHDS' and the
+// 'MutableHDS' concepts:
+// - 'set_vertex(hds,h,v)': amortized constant time.
+// - 'new_vertex(hds)': amortized constant time.
+// - 'remove_vertex(hds,v)': amortized constant time.
 //
 ///Invariants
 ///----------
-// 'MutableVertexHDSConcept' should validate all the invariants for the
-// 'VertexHDSConcept', and the 'MutableHDSConcept'.
+// 'MutableVertexHDSConcept' should verify all the invariants for the
+// 'VertexHDSConcept' and the 'MutableHDSConcept'.
 //
 ///Concept-checking class
 ///----------------------
@@ -95,14 +95,11 @@
 // function_requires<EqualityComparableConcept<vertex_descriptor> >();
 // function_requires<AssignableConcept<vertex_descriptor> >();
 // set_vertex(hds,h,v);
-// add_vertex(hds,v);
+// v = new_vertex(hds);
 // remove_vertex(hds,h,v);
 // const_constraints(hds);
 // }
 // void const_constraints(HDS const& hds) {
-// set_vertex(hds,h,v);
-// add_vertex(hds,v);
-// remove_vertex(hds,h,v);
 // }
 // HDS hds;
 // halfedge_descriptor h;
@@ -134,10 +131,10 @@
 
         // TYPES
         typedef typename hds_traits<HDS>::vertex_descriptor vertex_descriptor;
- // The specialization of 'hds_traits<HDS>' must have these required
- // types, obeying the types requirements stated in the detailed
- // description of the 'MutableVertexHDS' concept on page
- // [mutablevertexhdsconcept].
+ // The specialization of 'hds_traits<HDS>' must have these required
+ // types, obeying the types requirements stated in the detailed
+ // description of the 'MutableVertexHDS' concept on page
+ // [mutablevertexhdsconcept].
 
         //MANIPULATORS
         void constraints()
@@ -154,7 +151,7 @@
             function_requires<AssignableConcept<vertex_descriptor> >();
 
             set_vertex(hds,h,v);
- add_vertex(hds,v);
+ v = new_vertex(hds);
             remove_vertex(hds,v);
 
             const_constraints(hds);
@@ -165,12 +162,9 @@
             // Check that the non-modifiable 'HDS' template parameters
             // satisfies all the constraints of 'MutableVertexHDSConcept'.
         {
- set_vertex(hds,h,v);
- add_vertex(hds,v);
- remove_vertex(hds,v);
         }
 
- private:
+ private:
         //DATA
         MutableVertexHDS hds; // a halfedge data structure object
         halfedge_descriptor h; // a vertex descriptor

Modified: sandbox/SOC/2007/geometry/libs/hdstl/dev/hds_concepts/vertex_hds_concept.hpp
==============================================================================
--- sandbox/SOC/2007/geometry/libs/hdstl/dev/hds_concepts/vertex_hds_concept.hpp (original)
+++ sandbox/SOC/2007/geometry/libs/hdstl/dev/hds_concepts/vertex_hds_concept.hpp 2007-06-25 00:37:02 EDT (Mon, 25 Jun 2007)
@@ -18,7 +18,7 @@
 //
 ///Definition
 ///----------
-// This concept refines the 'HDSConcept', and specifies additional vertex
+// This concept refines the 'HDSConcept', and requires an additional vertex
 // descriptor to handle vertices in the 'HDS' data structure.
 //
 ///Refinement of:
@@ -29,31 +29,40 @@
 ///--------
 // - 'HDS' A type that is a model of 'VertexHDSConcept'
 // - 'hds' A non-modifiable instance of 'HDS'
+// - 'h' Halfedge descriptor, of type 'hds_traits<HDS>::halfedge_descriptor'
 // - 'v' Vertex descriptor, of type 'hds_traits<HDS>::vertex_descriptor'
 //
 ///Associated types
 ///----------------
+// In addition to the types in the 'HDS' concept:
 // - 'hds_traits<HDS>::vertex_descriptor': must be 'DefaultConstructible',
 // 'CopyConstructible', 'EqualityComparable', and 'Assignable'.
 //
 ///Definitions
 ///-----------
+// In addition to the definitions in the 'HDS' concept:
 // - 'halfedge_descriptor' is a type that contains information to access
 // the halfedge. (See the 'HDSConcept' for a full definition.)
 // - 'vertex_descriptor' is a type that contains information to access the
-// vertex at the source of the halfedge.
+// vertex at the source or the target of the halfedge.
 //
 ///Valid Expressions
 ///-----------------
-// See the valid expressions of the 'HDS' concept.
+// In addition to the valid expressions of the 'HDS' concept:
+// - 'vertex(hds,h)' must return a value assignable to 'v'.
 //
 ///Expression Semantics
 ///--------------------
-// See the expression semantics of the 'HDS' concept.
+// In addition to the expressions semantics of the 'HDS' concept:
+// - 'hds_traits<HDS>::supports_vertices': must compare equal to 'true'.
+// - 'vertex(hds,h)' returns the vertex descriptor of the vertex to the
+// source or target of 'h', depending on the 'source_access_tag' and
+// 'target_access_tag'.
 //
 ///Complexity guarantees
 ///---------------------
-// See the complexity guarantees of the 'HDS' concept.
+// In addition to the complexity guarantees of the 'HDS' concept:
+// - 'vertex(hds,h)': amortized constant time.
 //
 ///Invariants
 ///----------
@@ -72,9 +81,12 @@
 // function_requires<CopyConstructibleConcept<vertex_descriptor> >();
 // function_requires<EqualityComparableConcept<vertex_descriptor> >();
 // function_requires<AssignableConcept<vertex_descriptor> >();
+// BOOST_STATIC_ASSERT(hds_traits<HDS>::supports_vertices);
+// v = vertex(hds,h);
 // const_constraints(hds);
 // }
 // void const_constraints(HDS const& hds) {
+// v = vertex(hds,h);
 // }
 // HDS hds;
 // vertex_descriptor v;
@@ -105,9 +117,9 @@
 
         // TYPES
         typedef typename hds_traits<HDS>::vertex_descriptor vertex_descriptor;
- // The specialization of 'hds_traits<HDS>' must have these required
- // types, obeying the types requirements stated in the detailed
- // description of the 'VertexHDS' concept on page [vertexhdsconcept].
+ // The specialization of 'hds_traits<HDS>' must have these required
+ // types, obeying the types requirements stated in the detailed
+ // description of the 'VertexHDS' concept on page [vertexhdsconcept].
 
         //MANIPULATORS
         void constraints()
@@ -120,7 +132,9 @@
             function_requires<CopyConstructibleConcept<vertex_descriptor> >();
             function_requires<EqualityComparableConcept<vertex_descriptor> >();
             function_requires<AssignableConcept<vertex_descriptor> >();
+ BOOST_STATIC_ASSERT(hds_traits<HDS>::supports_vertices);
 
+ v = vertex(hds,h);
             const_constraints(hds);
         }
 
@@ -129,9 +143,10 @@
             // Check that the non-modifiable 'HDS' template parameters
             // satisfies all the constraints of 'VertexHDSConcept'.
         {
+ v = vertex(hds,h);
         }
 
- private:
+ private:
         //DATA
         VertexHDS hds; // a halfedge data structure object
         vertex_descriptor f; // a vertex descriptor

Modified: sandbox/SOC/2007/geometry/libs/hdstl/dev/hds_concepts/vertex_list_hds_concept.hpp
==============================================================================
--- sandbox/SOC/2007/geometry/libs/hdstl/dev/hds_concepts/vertex_list_hds_concept.hpp (original)
+++ sandbox/SOC/2007/geometry/libs/hdstl/dev/hds_concepts/vertex_list_hds_concept.hpp 2007-06-25 00:37:02 EDT (Mon, 25 Jun 2007)
@@ -24,57 +24,58 @@
 //
 ///Refinement of:
 ///--------------
-// - 'HDSConcept'
+// - 'VertexHDSConcept'
 //
 ///Notation
 ///--------
 // - 'HDS' A type that is a model of VertexListHDSConcept
 // - 'hds' A non-modifiable instance of HDS
 // - 'v' Vertex descriptor, of type 'hds_traits<HDS>::vertex_descriptor'
-// - 'p' Vertex iterator pair, of type 'hds_traits<HDS>::vertex_iterator'
-// - 'n' Vertex size type, of type 'hds_traits<HDS>::size_type'
+// - 'p' Vertex iterator, of type 'hds_traits<HDS>::vertex_iterator'
+// - 'n' Vertex list size, of type 'hds_traits<HDS>::size_type'
 //
 ///Associated types
 ///----------------
-// - 'hds_traits<HDS>::vertex_descriptor': must be 'DefaultConstructible',
-// 'CopyConstructible', 'EqualityComparable', and 'Assignable'.
-// - 'hds_traits<HDS>::vertex_iterator': must be 'MultiPassInputIterator'.
-// - 'hds_traits<HDS>::size_type': vertex size type.
+// In addition to the types of the 'VertexHDS' concept:
+// - 'hds_traits<HDS>::vertex_iterator': must be a model of the
+// 'ForwardIterator' concept. The value type of the vertex iterator must
+// be the same as the 'vertex_descriptor'.
+// - 'hds_traits<HDS>::size_type': integral size type.
 //
 ///Definitions
 ///-----------
-// - 'vertex_descriptor' is a type that contains information to access
-// the vertex. (See the 'HDSConcept' for a full definition.)
+// In addition to the definitions of the 'VertexHDS' concept:
 // - 'vertex_iterator' is an iterator type for the vertices.
 // - 'size_type' defines the size type.
 //
 ///Valid Expressions
 ///-----------------
-// In addition to the valid expressions of the 'HDS' concept:
+// In addition to the valid expressions of the 'VertexHDS' concept:
 // - 'vertices_begin(hds)' must return a value assignable to 'p'.
 // - 'vertices_end(hds)' must return a value assignable to 'p'.
 // - 'num_vertices(hds)' must return a value assignable to 'n'.
 //
 ///Expression Semantics
 ///--------------------
-// In addition to the valid expression semantics of the 'HDS' concept:
+// In addition to the valid expression semantics of the 'VertexHDS' concept:
 // - 'vertices_begin(hds)' returns a 'vertex_iterator' 'p' pointing to the
-// beginning of the 'vertex list'.
+// beginning of the "vertex list".
 // - 'vertices_end(hds)' returns a 'vertex_iterator' 'p' pointing to the
-// end of the 'vertex list'.
+// end of the "vertex list".
 // - 'num_vertices(hds)' returns the number of vertices in the 'HDS' data
 // structure.
 //
 ///Complexity guarantees
 ///---------------------
+// In addition to the complexity guarantees of the 'VertexHDS' concept:
 // - 'vertices_begin(hds)': amortized constant time.
-// - 'vertices_end(hds)' : amortized constant time.
-// - 'num_vertices(hds)' : amortized constant time.
+// - 'vertices_end(hds)': amortized constant time.
+// - 'num_vertices(hds)': amortized constant time.
 //
 ///Invariants
 ///----------
-// 'VertexListHDSConcept' should validate all the invariants for the
-// 'HDSConcept'.
+// - 'std::distance(vertices_begin(hds), vertices_end(hds))
+// == num_vertices(hds)'
 //
 ///Concept-checking class
 ///----------------------
@@ -92,10 +93,8 @@
 // function_requires<CopyConstructibleConcept<vertex_descriptor> >();
 // function_requires<EqualityComparableConcept<vertex_descriptor> >();
 // function_requires<AssignableConcept<vertex_descriptor> >();
-// function_requires<hdstl_detail::MultiPassInputIteratorConcept<vertex_iterator> >();
-// b = vertices_begin(hds);
-// e = vertices_end(hds);
-// n = num_vertices(hds);
+// function_requires<ForwardIteratorConcept<vertex_iterator> >();
+// function_requires<ConvertibleConcept<size_type,int> >();
 // const_constraints(hds);
 // }
 // void const_constraints(HDS const& hds)
@@ -138,11 +137,11 @@
        // TYPES
        typedef typename hds_traits<HDS>::vertex_iterator vertex_iterator;
        typedef typename hds_traits<HDS>::vertex_descriptor vertex_descriptor;
- typedef typename hds_traits<HDS>::vertices_size_type vertices_size_type;
- // The specialization of 'hds_traits<HDS>' must have these required
- // types, obeying the types requirements stated in the detailed
- // description of the 'VertexListHDS' concept on page
- // [vertexlisthdsconcept].
+ typedef typename hds_traits<HDS>::size_type size_type;
+ // The specialization of 'hds_traits<HDS>' must have these required
+ // types, obeying the types requirements stated in the detailed
+ // description of the 'VertexListHDS' concept on page
+ // [vertexlisthdsconcept].
 
        //MANIPULATORS
        void constraints()
@@ -156,10 +155,8 @@
            function_requires<CopyConstructibleConcept<vertex_descriptor> >();
            function_requires<EqualityComparableConcept<vertex_descriptor> >();
            function_requires<AssignableConcept<vertex_descriptor> >();
- function_requires<hdstl_detail::MultiPassInputIteratorConcept<vertex_iterator> >();
- b = vertices_begin(hds);
- e = vertices_end(hds);
- n = num_vertices(hds);
+ function_requires<ForwardIteratorConcept<vertex_iterator> >();
+ function_requires<ConvertibleConcept<size_type,int> >();
            const_constraints(hds);
        }
 
@@ -173,12 +170,11 @@
            n = num_vertices(hds);
        }
 
- private:
+ private:
        //DATA
        VertexListHDS hds; // a halfedge data structure object
        vertex_descriptor v; // a vertex descriptor
- vertex_iterator b; // a vertex iterator
- vertex_iterator e; // a vertex iterator
+ vertex_iterator b,e; // a vertex iterators
        size_type n; // vertex size type
 
    };


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