|
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