| Home | Libraries | People | FAQ | More

## Release Notes

#### Boost 1.51

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)

#### Boost 1.50

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

#### Boost 1.49

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)

#### Boost 1.48

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

#### Boost 1.47

Original release