Bugfixes
-
avoid generating output polygons with interior rings below minimum size
(e.g. one or two points)
-
geometry::disjoint
for degenerate segments (patched
by Karsten Ahnert)
-
problem in
geometry::difference
for missing handling tangency,
reported by H2
-
fixed
geometry::for_each
for use with Lambda's
-
fixed
geometry::comparable_distance
point-linestring
(and -range, -polygon)
Additional functionality
-
combinations for
geometry::disjoint
:
point/ring, point/polygon, point/multi_polygon
-
combinations for
geometry::intersects
:
point/ring, point/polygon, point/multi_polygon
Internal changes
-
updates in specializations/not_implemented for various algorithms (as in
an earlier version, these changes are still going on; they take care for
simplified structs, better error reporting, and automatized documentation)
-
fixes in unit tests
Breaking changes
-
points accessed through a pointer (e.g. in a linestring) should now be
specialized without the pointer. In previous versions a type
my_point
used like linestring<my_point*>
had to be specalized like: template<>
struct tag<my_point*>
. Now the library itself removes the
pointer before calling the traits class, so now it should be like: template<>
struct tag<my_point>
Bugfixes
-
intersection was sometimes wrong for integer points, fixed
-
documentation, order of parameters in simplify was wrong, fixed
Solved tickets
-
7030
spherical distance, fixed (by patch of Karsten Ahnert)
Bugfixes
-
the return type of comparable projected point strategy for integer points
was wrong (integer), fixed
-
several robustness issues in intersection of segments and polygons, fixed
-
invalid intersection output is filtered out
-
disjoint for multi_polygon's might incorrectly return true, fixed
Solved tickets
-
6585
patch for alternative syntax multipoint, applied
-
6584
patch for bug in distance, applied
-
5730
same issue as 6584, fixed
-
6166
patch for missing transformation, applied
-
6696
invalid intersection output, was (by chance) already fixed in Trunk before
reported
Additional functionality
-
added algorithm "touches" (OGC SF compliant) for *polygon/*polygon
Breaking changes
-
point_xy was accidentally included in one of the headerfiles. If the point_xy
class is used, it should be included explicitly now.
Bugfixes
-
bugfix: distance for multi-geometries ignored specified distance strategy.
Fixed
-
bugfix: difference for polygon/multi_polygon (reported 2011/10/24 on GGL-list)
-
bugfix: raise exception for calculation of distances of multi-geometrie(s)
where one of them is empty
-
bugfix: multi DSV did not correctly use settings, fixed
-
bugfix: self-intersections could sometimes be missed (introduced in 1.48),
fixed
-
bugfix: convex hull crashed on empty range (e.g. empty multi point), fixed
-
bugfix: area/centroid/side/intersection/distance did not work for "int"
type filled with large (but not overflowing) integers. Fixed.
-
bugfix: disjoint/intersect did not work for degenerate linestrings. Fixed.
-
bugfix: covered_by did not compile for a ring. Fixed.
Solved tickets
-
6019
convex_hull / area, fixed.
-
6021
convex_hull / append (multipoint), fixed.
-
6028
Documentation: closure, fixed.
-
6178
Missing headerfile, fixed.
Additional functionality
-
support for line/polygon intersections and differences
-
support for convert of segment/box of different point types
-
support for append for multi point
-
the scalar function distance now throws an empty_input_exception on empty
input
Documentation
-
updated support status in several algorithms
-
updated conformance to OGC or std
-
other updates and fixes
Internal changes
-
updates in specializations/not_implemented for distance/convert/assign/area/with/covered_by
-
move of wkt/dsv to io folder, making domains redundant
-
warnings: strategy concepts assigned to zero to avoid clang warnings (patched
by Vishnu)
-
warnings: there were several unused parameters, for which gcc/clang warned
(patched by Christophe)
Bugfixes
-
Robustness issue, in some circumstances the union failed to output. Fixed.
-
Robustness issue, in some circumstances the calculated intersection point
was outside the segment. Fixed.
-
Concept issue, cartesian intersect didn't understand segments other than
the provided one. Fixed.
-
Sometimes self-intersections in linestrings were missed. Fixed.
-
The fusion coordinate system was not registered correctly. Fixed.
Solved tickets
-
5726
Segment intersection algorithm still assumes 'first', 'second' members
-
5744
Mistake in fusion adapt example
-
5748
Needed to include <boost/foreach.hpp>
-
5954
distance_pythagoras skips sqrt() step
Improvements on algorithms
-
Checking self-intersections is now not done automatically, this can blast
performance.
-
Besides that, checking self-intersections is made faster.
-
Intersections now avoid outputting duplicate points. So they output the
minimal set.
Additional algorithms
-
covered_by: within is defined as "within, not on boundary". covered_by
is "within or on boundary"
Additional functionality
-
within: strategies can now be specified for within<point, box> and
within<box, box>
-
convert: a much broader range of conversions is supported
-
assign: idem, (currently partly) synonym for convert (but reversed arguments)
Additional coordinate types
-
Basic (limited) support for Boost.Rational
Original release