Index: doc/gtl_connectivity_extraction.htm =================================================================== --- doc/gtl_connectivity_extraction.htm (revision 55867) +++ doc/gtl_connectivity_extraction.htm (working copy) @@ -69,7 +69,7 @@ an edge exists in the graph.  It is required that such vector pre-allocate sufficient elements to store the graph generated by the algorithm, because only the operator[] is used internally to access the graph   The other -supported graph format is std::map<std::set<int> > which is slightly easier to +supported graph format is std::map<int, std::set<int> > which is slightly easier to work with, but potentially more expensive.  Improving the interface to support more generic graph concepts is deferred to future work.

The following is the declaration of the connectivity extraction algorithm.

Index: doc/gtl_connectivity_extraction_45.htm =================================================================== --- doc/gtl_connectivity_extraction_45.htm (revision 55867) +++ doc/gtl_connectivity_extraction_45.htm (working copy) @@ -69,7 +69,7 @@ an edge exists in the graph.  It is required that such vector pre-allocate sufficient elements to store the graph generated by the algorithm, because only the operator[] is used internally to access the graph   The other -supported graph format is std::map<std::set<int> > which is slightly easier to +supported graph format is std::map<int, std::set<int> > which is slightly easier to work with, but potentially more expensive.  Improving the interface to support more generic graph concepts is deferred to future work.

The following is the declaration of the connectivity extraction algorithm.

Index: doc/gtl_connectivity_extraction_90.htm =================================================================== --- doc/gtl_connectivity_extraction_90.htm (revision 55867) +++ doc/gtl_connectivity_extraction_90.htm (working copy) @@ -69,7 +69,7 @@ an edge exists in the graph.  It is required that such vector pre-allocate sufficient elements to store the graph generated by the algorithm, because only the operator[] is used internally to access the graph   The other -supported graph format is std::map<std::set<int> > which is slightly easier to +supported graph format is std::map<int, std::set<int> > which is slightly easier to work with, but potentially more expensive.  Improving the interface to support more generic graph concepts is deferred to future work.

The following is the declaration of the connectivity extraction algorithm.

Index: doc/gtl_coordinate_concept.htm =================================================================== --- doc/gtl_coordinate_concept.htm (revision 55867) +++ doc/gtl_coordinate_concept.htm (working copy) @@ -86,14 +86,14 @@      typedef long long coordinate_difference;
     typedef long double coordinate_distance;
};

-By making use the the coordinate traits of int the library is able to avoid +By making use of the coordinate traits of int the library is able to avoid overflow and handle the normal issues encountered when programming integer geometry.  For the out of the ordinary issues there is a special meta-function that provides the library with a numerical type suitable for exact numerical calculations.  It defaults to the highest precision data type available in most compilers, long double, but can be overridden by specializing for a particular coordinate type.  Use of gmp multi-precision rational or -similar data type is reccomended for numerically robust calculations in the +similar data type is recommended for numerically robust calculations in the general polygon algorithms.

template <typename T>
struct high_precision_type {
Index: doc/gtl_design_overview.htm =================================================================== --- doc/gtl_design_overview.htm (revision 55867) +++ doc/gtl_design_overview.htm (working copy) @@ -123,7 +123,7 @@ specializing the geometry_concept meta-function.  Once mapped and registered, a user data type can be used interchangeably with library data types in the generic free functions that are overloaded on concept.

Traits for -mapping a data type to a concept a broken down into mutable and read only +mapping a data type to a concept are broken down into mutable and read only traits.  Read only traits are specialized internally to work with any types that are refinements of a concept.  The mutable traits are defined only for objects that exactly model the concept.  Both read only traits and mutable Index: doc/gtl_interval_concept.htm =================================================================== --- doc/gtl_interval_concept.htm (revision 55867) +++ doc/gtl_interval_concept.htm (working copy) @@ -434,7 +434,7 @@ interval_data(const - interval_data* that) + interval_data& that) Copy construct Index: doc/gtl_isotropy.htm =================================================================== --- doc/gtl_isotropy.htm (revision 55867) +++ doc/gtl_isotropy.htm (working copy) @@ -180,7 +180,7 @@ unsigned int to_int() const Convert to the integer enum value of current state to use as index.  - Auto-cast to int is disallows for type safety reasons. + Auto-cast to int is disallowed for type safety reasons. @@ -243,7 +243,7 @@ unsigned int to_int() const Convert to the integer enum value of current state to use as index.  - Auto-cast to int is disallows for type safety reasons + Auto-cast to int is disallowed for type safety reasons @@ -303,7 +303,7 @@ unsigned int to_int() const Convert to the integer enum value of current state to use as index.  - Auto-cast to int is disallows for type safety reasons. + Auto-cast to int is disallowed for type safety reasons. @@ -408,7 +408,7 @@ unsigned int to_int() const Convert to the integer enum value of current state to use as index.  - Auto-cast to int is disallows for type safety reasons + Auto-cast to int is disallowed for type safety reasons @@ -420,7 +420,7 @@

direction_3d

-

The direction_3d data type has four possible states.  These +

The direction_3d data type has six possible states.  These are the cardinal directions of the 3D Cartesian coordinate system.   These states can be described by one of the direction_2d_enum values or the direction_3d_enum values:

@@ -467,7 +467,7 @@ unsigned int to_int() const Convert to the integer enum value of current state to use as index.  - Auto-cast to int is disallows for type safety reasons. + Auto-cast to int is disallowed for type safety reasons. Index: doc/gtl_point_concept.htm =================================================================== --- doc/gtl_point_concept.htm (revision 55867) +++ doc/gtl_point_concept.htm (working copy) @@ -69,7 +69,7 @@ point  concept.

template <>
struct geometry_concept<CPoint> { typedef point_concept type; };

-The semantic of an point is that it has an x and y +The semantic of a point is that it has an x and y coordinate.  A std::pair<int, int>, boost::tuple<int, int> or boost::array<int, 2> could all be made models of point by simply providing indirect access to their elements through traits, however, these objects cannot be made a model of both @@ -243,7 +243,7 @@ template <typename T1, typename T2>
- coordinate_distance manhattan_distance(const T1&,
+ coordinate_difference manhattan_distance(const T1&,
                                       const T2&)
Returns the distance in x plus the distance in y from an object that @@ -252,7 +252,7 @@ template <typename T1, typename T2>
- coordinate_distance distance_squared(const T1&,
+ coordinate_difference distance_squared(const T1&,
                                       const T2&)
Returns the square of the distance in x plus the square of the Index: doc/gtl_polygon_45_concept.htm =================================================================== --- doc/gtl_polygon_45_concept.htm (revision 55867) +++ doc/gtl_polygon_45_concept.htm (working copy) @@ -267,7 +267,7 @@

The library provides a model of polygon 45 concept declared -template<typename T> poolygon_45_data where T is the coordinate type.

+template<typename T> polygon_45_data where T is the coordinate type.

This data type is used internally when a 45-degree polygon is needed and is available to the library user who finds it convenient to use a library polygon data type instead of providing their own.  The data type is implemented to @@ -292,12 +292,12 @@ polygon_45_data(const - poolygon_45_data* that) + polygon_45_data& that) Copy construct polygon_45_data& operator=(const - poolygon_45_data& that) + polygon_45_data& that) Assignment operator. Index: doc/gtl_polygon_45_set_concept.htm =================================================================== --- doc/gtl_polygon_45_set_concept.htm (revision 55867) +++ doc/gtl_polygon_45_set_concept.htm (working copy) @@ -61,7 +61,7 @@

Polygon 45 Set Concept

-

The polygon 45 set concept tag is +

The polygon_45_set concept tag is polygon_45_set_concept

The semantic of a polygon_45_set is zero or more @@ -76,7 +76,7 @@ 45-degree angles and is Manhattan a runtime check will default to the Manhattan algorithm.  The results of which are identical to what the 45-degree algorithm would do, but obtained more efficiently.

-The motivation for providing the polygon 45 set is +The motivation for providing the polygon_45_set is to extend the special case of Manhattan geometry capability of the library to encompass the slightly less common, but still important special case of geometry that is described by angles that are multiples of 45-degress with respect to the @@ -304,20 +304,20 @@ template <typename T1, typename T2>
T1& interact(T1& a, const T2& b)
- Given an object that models polygon 45 set and an object that models - polygon 45 set or one of its refinements, modifies a to retain only + Given an object that models polygon_45_set and an object that models + polygon_45_set or one of its refinements, modifies a to retain only regions that overlap or touch regions in b. template <typename T>
T& self_intersect(T& polygon_set)
- Given an object that models polygon 45 set that has self overlapping + Given an object that models polygon_45_set that has self overlapping regions, modifies the argument to contain only the regions of overlap. template <typename T>
T& self_xor(T& polygon_set)
- Given an object that models polygon 45 set that has self overlapping + Given an object that models polygon_45_set that has self overlapping regions, modifies the argument to contain only the regions that do not overlap. Index: doc/gtl_polygon_45_with_holes_concept.htm =================================================================== --- doc/gtl_polygon_45_with_holes_concept.htm (revision 55867) +++ doc/gtl_polygon_45_with_holes_concept.htm (working copy) @@ -61,7 +61,7 @@

Polygon 45 With Holes Concept

-

The polygon_45 concept tag is +

The polygon_45_with_holes concept tag is polygon_45_with_holes_concept

To register a user defined type as a model of @@ -278,7 +278,7 @@

The library provides a model of polygon 45 with holes concept declared -template<typename T> poolygon_45_with_holes_data where T is the +template<typename T> polygon_45_with_holes_data where T is the coordinate type.

This data type is used internally when a 45 degree polygon with holes is needed and is available to the library user who finds it convenient to use a @@ -309,12 +309,12 @@ polygon_45_with_holes_data(const - poolygon_45_with_holes_data* that) + polygon_45_with_holes_data& that) Copy construct - poolygon_45_with_holes_data& -
operator=
(const poolygon_45_with_holes_data& that)
+ polygon_45_with_holes_data& +
operator=
(const polygon_45_with_holes_data& that)
Assignment operator. Index: doc/gtl_polygon_90_concept.htm =================================================================== --- doc/gtl_polygon_90_concept.htm (revision 55867) +++ doc/gtl_polygon_90_concept.htm (working copy) @@ -128,14 +128,14 @@ + compact_iterator_type begin_compact(const T& polygon) + compact_iterator_type end_compact(const T& polygon) @@ -275,7 +275,7 @@

The library provides a model of polygon 90 concept declared -template<typename T> poolygon_90_data where T is the coordinate type.

+template<typename T> polygon_90_data where T is the coordinate type.

This data type is used internally when a Manhattan polygon is needed and is available to the library user who finds it convenient to use a library polygon data type instead of providing their own.  The data type is implemented to @@ -307,12 +307,12 @@

+ polygon_90_data& that) + polygon_90_data& that) Index: doc/gtl_polygon_90_set_concept.htm =================================================================== --- doc/gtl_polygon_90_set_concept.htm (revision 55867) +++ doc/gtl_polygon_90_set_concept.htm (working copy) @@ -61,10 +61,10 @@

Polygon 90 Set Concept

-

The polygon 90 set concept tag is +

The polygon_90_set concept tag is polygon_90_set_concept

-The semantic of a polygon 90 set is zero or more +The semantic of a polygon_90_set is zero or more Manhattan geometry regions.

The motivation for providing the polygon_90_set_concept is that it is a very common special case of planar @@ -79,7 +79,7 @@ rectangle_concept are automatically models of polygon_90_set_concept.

Operators

The return type of some operators is the polygon_90_set_view -operator template type.  This type is itself a model of the polygon 90 set +operator template type.  This type is itself a model of the polygon_90_set concept, but furthermore can be used as an argument to the polygon_90_set_data constructor and assignment operator.  The operator template exists to eliminate temp copies of intermediate results when Boolean operators are chained @@ -279,20 +279,20 @@

- - - Index: doc/gtl_polygon_90_with_holes_concept.htm =================================================================== --- doc/gtl_polygon_90_with_holes_concept.htm (revision 55867) +++ doc/gtl_polygon_90_with_holes_concept.htm (working copy) @@ -61,7 +61,7 @@

Polygon 90 With Holes Concept

-

The polygon_90 concept tag is +

The polygon_90_with_holes concept tag is polygon_90_with_holes_concept

To register a user defined type as a model of @@ -119,14 +119,14 @@

template <typename T>
- iterator_type begin_compact(const T& polygon)
Expects a model of polygon_90.  Returns the begin iterator over the range of coordinates that correspond to horizontal and vertical edges.
template <typename T>
- iterator_type end_compact(const T& polygon)
Expects a model of polygon_90.  Returns the end iterator over the range of coordinates that correspond to horizontal and vertical edges.
polygon_90_data(const - poolygon_90_data* that) Copy construct
polygon_90_data& operator=(const - poolygon_90_data& that) Assignment operator.
template <typename T1, typename T2>
T1& interact(T1& a, const T2& b)
Given an object that models polygon 90 set and an object that models - polygon 90 set or one of its refinements, modifies a to retain only + Given an object that models polygon_90_set and an object that models + polygon_90_set or one of its refinements, modifies a to retain only regions that overlap or touch regions in b.
template <typename T>
T& self_intersect(T& polygon_set)
Given an object that models polygon 90 set that has self overlapping + Given an object that models polygon_90_set that has self overlapping regions, modifies the argument to contain only the regions of overlap.
template <typename T>
T& self_xor(T& polygon_set)
Given an object that models polygon 90 set that has self overlapping + Given an object that models polygon_90_set that has self overlapping regions, modifies the argument to contain only the regions that do not overlap.
+ compact_iterator_type begin_compact(const T& polygon) + compact_iterator_type end_compact(const T& polygon) @@ -300,7 +300,7 @@

The library provides a model of polygon 90 with holes concept declared -template<typename T> poolygon_90_with_holes_data where T is the +template<typename T> polygon_90_with_holes_data where T is the coordinate type.

This data type is used internally when a Manhattan polygon with holes is needed and is available to the library user who finds it convenient to use a @@ -338,12 +338,12 @@

+ polygon_90_with_holes_data& that) - + Index: doc/gtl_polygon_concept.htm =================================================================== --- doc/gtl_polygon_concept.htm (revision 55867) +++ doc/gtl_polygon_concept.htm (working copy) @@ -269,7 +269,7 @@

The library provides a model of polygon concept declared -template<typename T> poolygon_data where T is the coordinate type.

+template<typename T> polygon_data where T is the coordinate type.

This data type is used internally when a polygon is needed and is available to the library user who finds it convenient to use a library polygon data type instead of providing their own.  The data type is implemented to be @@ -297,12 +297,12 @@

+ polygon_data& that) + polygon_data& that) Index: doc/gtl_polygon_set_concept.htm =================================================================== --- doc/gtl_polygon_set_concept.htm (revision 55867) +++ doc/gtl_polygon_set_concept.htm (working copy) @@ -61,7 +61,7 @@

Polygon Set Concept

-

The polygon set concept tag is +

The polygon_set concept tag is polygon_set_concept

The semantic of a polygon_set is zero or more Index: doc/gtl_polygon_with_holes_concept.htm =================================================================== --- doc/gtl_polygon_with_holes_concept.htm (revision 55867) +++ doc/gtl_polygon_with_holes_concept.htm (working copy) @@ -61,7 +61,7 @@

Polygon With Holes Concept

-

The polygon concept tag is +

The polygon_with_holes concept tag is polygon_with_holes_concept

To register a user defined type as a model of @@ -275,7 +275,7 @@

The library provides a model of polygon with holes concept declared -template<typename T> poolygon_with_holes_data where T is the +template<typename T> polygon_with_holes_data where T is the coordinate type.

This data type is used internally when a polygon with holes is needed and is available to the library user who finds it convenient to use a @@ -306,12 +306,12 @@

+ polygon_with_holes_data& that) - + Index: doc/gtl_rectangle_concept.htm =================================================================== --- doc/gtl_rectangle_concept.htm (revision 55867) +++ doc/gtl_rectangle_concept.htm (working copy) @@ -119,7 +119,7 @@
template <typename T>
- iterator_type begin_compact(const T& polygon)
Expects a model of polygon_90.  Returns the begin iterator over the range of coordinates that correspond to horizontal and vertical edges.
template <typename T>
- iterator_type end_compact(const T& polygon)
Expects a model of polygon_90.  Returns the end iterator over the range of coordinates that correspond to horizontal and vertical edges.
polygon_90_with_holes_data(const - poolygon_90_with_holes_data* that) Copy construct
poolygon_90_with_holes_data& -
operator=
(const poolygon_90_with_holes_data& that)
polygon_90_with_holes_data& +
operator=
(const polygon_90_with_holes_data& that)
Assignment operator.
polygon_data(const - poolygon_data* that) Copy construct
polygon_data& operator=(const - poolygon_data& that) Assignment operator.
polygon_with_holes_data(const - poolygon_with_holes_data* that)Copy construct
poolygon_with_holes_data& -
operator=
(const poolygon_with_holes_data& that)
polygon_with_holes_data& +
operator=
(const polygon_with_holes_data& that)
Assignment operator.
+ interval_type get(const T& rectangle, orientation_2d) @@ -684,7 +684,7 @@ + rectangle_data& that)
template <typename T>
- interval_type get(const T& rectangle, orientatin_2d)
Expects a model of rectangle.  Returns the x interval or y interval of the rectangle, depending on the orientation_2d value.
@@ -135,7 +135,7 @@
template <typename T>
- interval_type get(const T& rectangle, orientatin_2d, + interval_type get(const T& rectangle, orientation_2d,
                  direction_1d)
Expects a model of rectangle.  Returns the coordinate specificed by the direction_1d value of the x interval or y interval of the rectangle, depending on the @@ -551,7 +551,7 @@                bool consider_touch = true) Sets rectangle a to the intersection of rectangle a and interval b - along the orinetation_2d + along the orientation_2d and returns true.  If the does not intersect the interval, the rectangle is unchanged and the function returns false.  If the flag consider_touch is true intervals that abut are considered to intersect.
rectangle_data(const - rectangle_data* that) Copy construct