]> git.proxmox.com Git - ceph.git/blob - ceph/src/boost/libs/geometry/doc/release_notes.qbk
add subtree-ish sources for 12.0.3
[ceph.git] / ceph / src / boost / libs / geometry / doc / release_notes.qbk
1 [/============================================================================
2 Boost.Geometry (aka GGL, Generic Geometry Library)
3
4 Copyright (c) 2009-2016 Barend Gehrels, Geodan, Amsterdam, the Netherlands.
5 Copyright (c) 2009-2016 Bruno Lalande, Paris, France.
6 Copyright (c) 2009-2016 Mateusz Loskot <mateusz@loskot.net>, London, UK.
7 Copyright (c) 2011-2016 Adam Wulkiewicz, Lodz, Poland.
8
9 This file was modified by Oracle on 2015, 2016.
10 Modifications copyright (c) 2015-2016, Oracle and/or its affiliates.
11 Contributed and/or modified by Menelaos Karavelas, on behalf of Oracle
12 Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle
13
14 Use, modification and distribution is subject to the Boost Software License,
15 Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
16 http://www.boost.org/LICENSE_1_0.txt)
17 =============================================================================/]
18
19 [section:release_notes Release Notes]
20
21 [/=================]
22 [heading Boost 1.62]
23 [/=================]
24
25 [*Improvements]
26
27 * SVG: support boost::variant of geometries
28 * SVG: coordinates are now written as double (by default) to svg
29 * Rename namespace concept to concepts to avoid conflicts with the newest compilers
30
31 [*Solved tickets]
32
33 * [@https://svn.boost.org/trac/boost/ticket/12189 12189] Relational operations not compiling when point types of inputs are different
34 * [@https://svn.boost.org/trac/boost/ticket/12287 12287] Invalid result of rtree.query() for contains() predicate
35
36 [/=================]
37 [heading Boost 1.61]
38 [/=================]
39
40 [*Additional functionality]
41
42 * Support within and covered_by for Box/Box in spherical and geographic coordinate systems.
43
44 [*Improvements]
45
46 * Overlay: handle_tangencies replaced by clusters, fixing many cases with colocated turns
47
48 [*Solved tickets]
49
50 * [@https://svn.boost.org/trac/boost/ticket/9162 9162] Invalid result of relational operations for non-cartesian Point/Areal.
51 * [@https://svn.boost.org/trac/boost/ticket/10866 10866] union_ doesn't work in 1.56 and 1.57.
52 * [@https://svn.boost.org/trac/boost/ticket/11018 11018] Invalid geometry intersection
53 * [@https://svn.boost.org/trac/boost/ticket/11576 11576] Intersection gives wrong results.
54 * [@https://svn.boost.org/trac/boost/ticket/11637 11637] Unused parameter warning.
55 * [@https://svn.boost.org/trac/boost/ticket/11725 11725] union_ fails to create holes
56 * [@https://svn.boost.org/trac/boost/ticket/11789 11789] Assertion failure or invalid result of set operations for spherical_equatorial coordinate system.
57 * [@https://svn.boost.org/trac/boost/ticket/11917 11917] Andoyer distance strategy returns 0 for antipodal points (default geographic distance).
58 * [@https://svn.boost.org/trac/boost/ticket/11928 11928] Improvement of the accuracy of surveyor area strategy.
59 * [@https://svn.boost.org/trac/boost/ticket/11966 11966] Compilation error in svg() for box and non-int coordinate type.
60 * [@https://svn.boost.org/trac/boost/ticket/11984 11984] union_() generates self-intersecting polygon
61 * [@https://svn.boost.org/trac/boost/ticket/11987 11987] rtree::remove() not compiling for geographic CS.
62 * [@https://svn.boost.org/trac/boost/ticket/12000 12000] Uninitialized reference in (unused) constructor of relate's mask_handler.
63 * [@https://svn.boost.org/trac/boost/ticket/12106 12106] Invalid assertion failure in envelope() for non-cartesian very short segments.
64
65 [*Bugfixes]
66
67 * Fix intersects and disjoint for Segment/Box in cartesian coordinate system when Segment is parallel to Box's face.
68 * Fix relation operations for Point/Areal in spherical and geographic coordinate systems for edge cases.
69 * Fix intersects and disjoint for Point/Box and Box/Box in spherical and geographic coordinate systems for some cases.
70 * Fix within and covered_by for Point/Box in spherical and geographic coordinate systems for some cases.
71
72 [/=================]
73 [heading Boost 1.60]
74 [/=================]
75
76 [*Solved tickets]
77
78 * [@https://svn.boost.org/trac/boost/ticket/10803 10803] Union algorithm returning invalid geometry
79 * [@https://svn.boost.org/trac/boost/ticket/11522 11522] Namespace clash in buffer for traits::detail
80 * [@https://svn.boost.org/trac/boost/ticket/11533 11533] Assert failure in rtree caused by a bug in remove() if min elements number is 1
81 * [@https://svn.boost.org/trac/boost/ticket/11607 11607] Private geometry::exception::what()
82 * [@https://svn.boost.org/trac/boost/ticket/11709 11709] is_simple segfault
83 * [@https://svn.boost.org/trac/boost/ticket/11710 11710] is_simple - empty geometry logic
84 * [@https://svn.boost.org/trac/boost/ticket/11711 11711] is_simple and is_valid - Points that are NaN or Infinity
85
86 [*Bugfixes]
87
88 * Fix colocations of touching interior ring / exterior ring, where it also touches another polygon
89 * Fix removing values from an empty rtree - no effect and 0 returned instead of assertion failure
90 * Fix segfault in centroid for multi geometries containing empty single geometries (thanks to Jiri Drbalek)
91 * Fix liang_barsky strategy for integral coordinates (thanks to Dane Springmeyer)
92
93 [/=================]
94 [heading Boost 1.59]
95 [/=================]
96
97 [*Additional functionality]
98
99 * Added rtree const_iterator, begin(), end() and the support for Boost.Range.
100 * The support for C++11 `std::initializer_list` in geometries models.
101 * Disjoint and intersects support the following geometry combinations: multipoint/linestring, multipoint/multilinestring.
102 * Added relate() and relation() algorithms.
103 * Intersection has been implemented for combinations of pointlike and linear geometries
104 * Added implementation for difference(pointlike, linear)
105 * New algorithm is_empty, returning true if the geometry represents the empty set
106 * The envelope algorithm supports pointlike and linear geometries in the spherical equatorial coordinate system
107 * The envelope algorithm supports pointlike geometries in the geographic coordinate system
108
109 [*Improvements]
110
111 * Upgraded rtree const_query_iterator category to ForwardIterator.
112 * Buffer performance of buffers around multi-points is improved significantly
113
114 [*Breaking changes]
115
116 * buffer side strategy now returns error_code instead of bool. If you have your own custom side strategy, it should be adapted
117
118 [*Solved tickets]
119
120 * [@https://svn.boost.org/trac/boost/ticket/11113 11113] Support easy enumeration of all elements with BOOST_FOREACH
121 * [@https://svn.boost.org/trac/boost/ticket/11232 11232] Feature request - relate()
122 * [@https://svn.boost.org/trac/boost/ticket/11236 11236] Invalid result of centroid() for integer coordinate type
123 * [@https://svn.boost.org/trac/boost/ticket/11268 11268] Regression in boost::geometry::intersection interface with multi_linestring and box -- does not compile on 1.57 VS 1.55
124 * [@https://svn.boost.org/trac/boost/ticket/11332 11332] Assertion failure in buffer for extreme coordinate differences
125 * [@https://svn.boost.org/trac/boost/ticket/11346 11346] Segment iterator does not work with ranges returning values instead of references
126 * [@https://svn.boost.org/trac/boost/ticket/11436 11436] sym_difference(py1, py2, mpy) returns invalid multipolygon
127
128 [*Bugfixes]
129
130 * Buffer: use a more robust way to calculate the side of an intersection, this fixes several errors in buffer generation
131 * Fix in selection of segment to which calculate from IP from, in intersection of two segments. Now is selected the one close to a segment-point point, or else the one on the shortest segment. This avoids (rarely occuring) generation of tiny triangles making output polygons invalid
132 * In rescaling round instead of truncate to the integer grid (this fix and the previous mentioned can have some impact on output geometries)
133 * Fix potential infinite loop in detail::has_spikes (the loop can happen if the points passed have NaN coordinates)
134
135 [/=================]
136 [heading Boost 1.58]
137 [/=================]
138
139 [*Additional functionality]
140
141 * New algorithm num_segments, returning the number of segments of a geometry
142 * New overload for is_valid algorithm, that takes a string reference as a second argument and fills it with a message related to the validity or invalidity of the geometry
143 * New overload for is_valid algorithm, that takes an enum reference as a second argument and fills it with a value related to the validity or invalidity of the geometry
144 * Disjoint and intersects support the following geometry combinations: point/multipoint, multipoint/multipoint, multipoint/segment, multipoint/box
145
146 [*Improvements]
147
148 * Buffer now supports flat-ends for linestrings with a bend close to the start (such that buffered segment crosses flat-end).
149 * Buffer performance is improved significantly
150 * Partition performance is improved significantly for polygons, potentially enhancing all overlay operations
151
152 [*Solved tickets]
153
154 * [@https://svn.boost.org/trac/boost/ticket/8379 8379] Invalid comparison of the result of determinant
155 * [@https://svn.boost.org/trac/boost/ticket/10108 10108] Error in overlay operations in specific cases where geometries touch at one point
156 * [@https://svn.boost.org/trac/boost/ticket/10201 10201] Suggestion to use different function to compare coordinates [wontfix]
157 * [@https://svn.boost.org/trac/boost/ticket/10467 10467] Template parameter name coliding with B0 macro name defined in termios.h
158 * [@https://svn.boost.org/trac/boost/ticket/10640 10640] Invalid result of buffer() for CCW Polygons.
159 * [@https://svn.boost.org/trac/boost/ticket/10666 10666] MSVC compiler warning C4127: conditional expression is constant
160 * [@https://svn.boost.org/trac/boost/ticket/10747 10747] Error in rescaling causing errors in areal/areal set operations
161 * [@https://svn.boost.org/trac/boost/ticket/10770 10770] Buffer fails for large distances, or rough round joins, where concavities where not intersected properly
162 * [@https://svn.boost.org/trac/boost/ticket/10658 10658] sym_difference yields bad result for int polygons
163 * [@https://svn.boost.org/trac/boost/ticket/10835 10835] Difference of multilinestring and polygon yields wrong result
164 * [@https://svn.boost.org/trac/boost/ticket/10861 10861] Rtree failing to compile for Value being a pair or a tuple containing pointer to Geometry and the default equal_to<> used
165 * [@https://svn.boost.org/trac/boost/ticket/10863 10863] Template parameter name coliding with B0 macro name defined in termios.h (duplicate of 10467)
166 * [@https://svn.boost.org/trac/boost/ticket/10887 10887] Invalid result of within() and relate() for Linear/MultiPolygon
167 * [@https://svn.boost.org/trac/boost/ticket/10890 10890] Invalid result of disjoint() for Point/Segment.
168 * [@https://svn.boost.org/trac/boost/ticket/10904 10904] Invalid calculation of most significant Dimension of a segment in relate_cartesian_segments strategy
169 * [@https://svn.boost.org/trac/boost/ticket/10912 10912] Invalid result of within() and relate() for Areal/Areal
170 * [@https://svn.boost.org/trac/boost/ticket/10951 10951] Tests failing on windows with intel compiler due to lack of /bigobj flag.
171 * [@https://svn.boost.org/trac/boost/ticket/10957 10957] Assertion failure and invalid results of various relational operations.
172 * [@https://svn.boost.org/trac/boost/ticket/10958 10958] Invalid results of disjoint() L/L and L/A.
173 * [@https://svn.boost.org/trac/boost/ticket/10959 10959] Assertion failure in get_turns() used with no_rescale_policy.
174 * [@https://svn.boost.org/trac/boost/ticket/10960 10960] Invalid result of get_turns() for L/A, missing turn.
175 * [@https://svn.boost.org/trac/boost/ticket/10961 10961] Invalid result of get_turns() for L/A, invalid turn for a Linear spike.
176 * [@https://svn.boost.org/trac/boost/ticket/11112 11112] Compilation failure on Solaris due to a CS name clash (used for a macro on this platform)
177 * [@https://svn.boost.org/trac/boost/ticket/11121 11121] Invalid result of difference() for integral coordinates
178
179 [*Bugfixes]
180
181 * Bug in multipoint/polygon multipoint/multipolygon distance computation (wrong detection of points inside the areal geometry)
182 * Bug in flatten_iterator's assignment operator causing an access violation
183 * Bug in Cartesian segment-segment intersection strategy when one segment degenerates to a point and is collinear to the other non-degenerate segment
184 * Bug in centroid(), non-deterministic result if calculated for e.g. a Polygon with zero-area.
185 * Bug in buffers for joins with a limited number of points
186 * Bug in buffers for round joins with limited number of points around sharp corners
187 * Bug in buffers for joins with large buffer distances
188 * Bug in buffers for round ends with an odd number of points
189 * Bug in buffers for flat ends with large buffer distances
190 * Bug in buffers for interior rings with large negative buffer distances
191 * Bug in closing_iterator not working properly when the input range is empty
192 * Bug in is_simple, not handling properly closed simple linestrings within multilinestrings
193 * Bug in rtree constructors taking a pair of Iterators or a Range (packing algorithm), the use of reference to destroyed temporary when Iterator's reference is not true reference, e.g. for some of the Range Adaptors. It also affects distance() and comparable_distance(). This bug may cause unexpected behavior of the rtree or distance() algorithm, e.g. an assertion failure or a SEGFAULT.
194 * Bug in rtree count() member function, the use of reference to destroyed temporary when object of type convertible but not the same as value_type or indexable_type is passed. If this happens, wrong result may be returned, in most cases 0.
195 * Bugs related to the handling of Ranges, preventing compilation of Geometries using non-Container Ranges in some algorithms (thanks to Samuel Debionne)
196
197 [/=================]
198 [heading Boost 1.57]
199 [/=================]
200
201 [*Improvements]
202
203 * The support of parameters convertible to value_type in rtree insert(), remove() and count() functions
204 * Support for counterclockwise input/output in algorithm buffer
205 * Support for open-geometry input in algorithm buffer (open output not yet supported)
206 * Support for degenerate input (point-like linestrings, polygons) in algorithm buffer
207
208 [*Solved tickets]
209
210 * [@https://svn.boost.org/trac/boost/ticket/6443 6443] Wrong degenerated hulls returned by convex_hull().
211 * [@https://svn.boost.org/trac/boost/ticket/8402 8402] Implicit conversion warnings
212 * [@https://svn.boost.org/trac/boost/ticket/9354 9354] Bug in winding strategy affecting within() and covered_by() for non-cartesian coordinate systems
213 * [@https://svn.boost.org/trac/boost/ticket/10177 10177] Missing include
214 * [@https://svn.boost.org/trac/boost/ticket/10345 10345] Distance fails to compile for some coordinate types
215 * [@https://svn.boost.org/trac/boost/ticket/10398 10398] Wrong neighbour check in buffer, calculating turns
216 * [@https://svn.boost.org/trac/boost/ticket/10421 10421] Invalid Point-Box distance for spherical CS
217 * [@https://svn.boost.org/trac/boost/ticket/10562 10562] Invalid number of Points in the result of convex_hull() for open output
218 * [@https://svn.boost.org/trac/boost/ticket/10615 10615] Rtree constructor feature request
219 * [@https://svn.boost.org/trac/boost/ticket/10643 10643] Invalid point_on_surface() result for big coordinates
220 * [@https://svn.boost.org/trac/boost/ticket/10647 10647] Invalid result of disjoint() in some cases when polygon is inside inner ring of other polygon
221 * [@https://svn.boost.org/trac/boost/ticket/10668 10668] Implicit conversion warnings (duplicated 8402)
222
223 [*Bugfixes]
224
225 * Several fixes of bugs in algorithm buffer
226 * Bug in point_on_surface() for CCW Polygons (extreme_points()) and numerical issue (thanks to Matt Amos)
227 * Bug in disjoint() for A/A fixed by replacement of point_on_surface() with point_on_border() (thanks to Matt Amos)
228 * The result of convex_hull(), duplicated Point in open output, too small number of Points for 1- and 2-Point input
229 * Imprecision for big coordinates in centroid(), fixed by Points translation (related with ticket 10643)
230 * for_each_segment() not taking into account the last segment of open Geometry
231
232 [/=================]
233 [heading Boost 1.56]
234 [/=================]
235
236 [*Additional functionality]
237
238 * New algorithm buffer for inflating/deflating geometries (buffer itself already existed but that was only to enlarge a box)
239 * New algorithm remove_spikes, algorithm to remove spikes from a ring, polygon or multi_polygon
240 * New algorithm point_on_surface, generating a point lying on the surface (interior) of the polygon
241 * New algorithm is_simple, returning true if a geometry is simple according to the OGC standard
242 * New algorithm is_valid, returning true if a geometry is valid according to the OGC standard
243 * New algorithm crosses for checking this spatial relation according to the OGC standard
244 * The set operation algorithms (difference, intersection, sym_difference and union_) now support as input pairs of pointlike or linear geometries
245 * The distance and comparable_distance algorithms now support all pairs of geometry combinations
246 * The spatial relations which didn't support it (covered_by, touches, within, etc.) now support as input linear and/or areal geometries
247 * The support for boost::variants as input geometries in various algorithms
248 * The rtree support for indexing segments
249 * The rtree nearest() predicate support for arbitrary geometries
250
251 [*Improvements]
252
253 * The rtree pack-creation algorithm optimization (thanks to Lu Wang)
254
255 [*Solved tickets]
256
257 * [@https://svn.boost.org/trac/boost/ticket/8310 8310] Wrong results with overlapping polygons (fixed using point_on_surface for disjoint)
258 * [@https://svn.boost.org/trac/boost/ticket/8375 8375] sym_difference of non-closed polygons returns closed polygon
259 * [@https://svn.boost.org/trac/boost/ticket/8376 8376] difference of non-closed polygons returns closed polygon
260 * [@https://svn.boost.org/trac/boost/ticket/9081 9081] Booleans create self-intersecting polygons from non-self-intersecting polygons
261 * [@https://svn.boost.org/trac/boost/ticket/9245 9245] Check for process errors in make_qbk.py
262 * [@https://svn.boost.org/trac/boost/ticket/9563 9563] (Sym)difference not successful, fixed by rescaling to robust type
263 * [@https://svn.boost.org/trac/boost/ticket/9628 9628] Wrong result of within() due to the winding strategy not working correctly for nearly-horizontal segments
264 * [@https://svn.boost.org/trac/boost/ticket/9828 9828] boost::geometry::union_(...) creates redundant closing point
265 * [@https://svn.boost.org/trac/boost/ticket/9871 9871] Remove spike in polygon with only a spike
266 * [@https://svn.boost.org/trac/boost/ticket/9941 9941] Add support for touches(box, box)
267 * [@https://svn.boost.org/trac/boost/ticket/9947 9947] Missing info about WKT in documentation
268 * [@https://svn.boost.org/trac/boost/ticket/9759 9759] Invalid results of R-tree knn queries for non-cartesian coordinate systems
269 * [@https://svn.boost.org/trac/boost/ticket/10019 10019] Difference of Linestring and Box returns their intersection
270 * [@https://svn.boost.org/trac/boost/ticket/10077 10077] Wrong types in concept checks in boost/geometry/arithmetic/arithmetic.hpp
271 * [@https://svn.boost.org/trac/boost/ticket/10234 10234] Wrong results of covered_by() for nearly-horizontal segments
272
273 [*Bugfixes]
274
275 * intersects(polygon) could return a self-intersection-point for its closing point, fixed
276 * equals() could return invalid results for non-simple linear geometries according to the OGC standard, fixed
277 * touches() didn't work properly for CCW areal geomtries, fixed
278 * rtree nearest queries returned wrong elements for non-cartesian coordinate systems, fixed
279 * rtree crashed in some cases when used with Interprocess allocator, fixed
280
281 [/=================]
282 [heading Boost 1.55]
283 [/=================]
284
285 [*Additional functionality]
286
287 * Added centroid for segment type
288 * Added intersects() and disjoints() for Segment-Box and Linestring-Box
289 * Added rtree creation using packing algorithm
290 * Added contains() and covers() spatial query predicates
291 * Added iterative queries
292
293 [*Documentation]
294
295 [*Bugfixes]
296
297 * In some cases .back() or .clear() was called, violating the usage of Concepts. Fixed for the reported cases
298 * Use consistent side information in cart_intersect and get_turn_info and handle_tangencies and enrich_intersection_info. This
299 is done by switching to integer (if necessary) for the specific 6 points only, zooming in on the 4 or 3 segments
300
301 [*Solved tickets]
302
303 * [@https://svn.boost.org/trac/boost/ticket/6958 6958] Intersection generates self-intersection. Caused by spike, fixed
304 * [@https://svn.boost.org/trac/boost/ticket/8364 8364] Invalid input exception, caused by spikes in previous steps, fixed
305 * [@https://svn.boost.org/trac/boost/ticket/8365 8365] Invalid input exception, caused by spikes in previous steps, fixed
306 * [@https://svn.boost.org/trac/boost/ticket/8969 8969] boost::geometry::model::point single argument constructor should be explicit
307 * [@https://svn.boost.org/trac/boost/ticket/8825 8825] Patch adding member variable documentation to doxygen_xml2qbk
308 * [@https://svn.boost.org/trac/boost/ticket/8652 8652] Intersection fails for triangle-triangle intersection. Caused by spike, fixed
309 * [@https://svn.boost.org/trac/boost/ticket/9047 9047] Boost files that include themselves (strategies/intersection.hpp), fixed
310
311 [*Internal changes]
312
313 * Adapted projected_point<> distance strategy, point-type in template is replaced by calculation-type
314 * Adapted transform strategies, they have points now as member-template, and calculation-type as template. Similar to what was done for projected_point distance
315 * Spikes (could be generated in difference) in integer-based overlays are now avoided during generation
316 * Cleanup, removed old MSVC2005 project files
317 * R*-tree balancing algorithm optimized
318
319 [/=================]
320 [heading Boost 1.54]
321 [/=================]
322
323 [*Additional functionality]
324
325 * added Spatial Index, developed for Boost.Geometry by Adam Wulkiewicz. The spatial index was originally started by Federico J. Fernandez during the Google Summer of Code 2008 program, mentored by Hartmut Kaiser.
326 * added SVG-output, this was already in extensions for several years
327
328 [*Documentation]
329
330 * small fixes of missing words
331 * fixes in doc of template parameters (convex_hull, exterior_ring, return_buffer)
332
333 [*Bugfixes]
334
335 * collinear opposite segments did sometimes (in circles) have a robustness issue, fixed
336 * fixed insertion of false intersection point (found by buffer)
337 * applied patch of Vladimir Petrovic for debugging traversals
338
339
340 [*Solved tickets]
341
342 * [@https://svn.boost.org/trac/boost/ticket/7462 7462] degenerate union result for float, fixed
343 * [@https://svn.boost.org/trac/boost/ticket/7465 7465] wrong construtors access type in scale_transformer class, fixed
344 * [@https://svn.boost.org/trac/boost/ticket/7802 7802] cart_intersect.hpp unused parameter warnings, fixed
345 * [@https://svn.boost.org/trac/boost/ticket/8254 8254] faulty intersection, fixed
346 * [@https://svn.boost.org/trac/boost/ticket/8393 8393] polygon model doesn't adhere to stated Polygon concept rules, doc updated.
347 * [@https://svn.boost.org/trac/boost/ticket/8403 8403] silenced compiler warning C4127: conditional expression is constant
348 * [@https://svn.boost.org/trac/boost/ticket/8405 8405] silenced compiler warning C4189: '...' : local variable is initialized but not referenced
349
350 [*Internal changes]
351
352 * Made several algorithms variant-aware (append, area, clear, convert, equals, length, num_points)
353
354
355 [/=================]
356 [heading Boost 1.53]
357 [/=================]
358
359 [*Bugfixes]
360
361 * avoid generating output polygons with interior rings below minimum size (e.g. one or two points)
362 * `geometry::disjoint` for degenerate segments (patched by Karsten Ahnert)
363 * problem in `geometry::difference` for missing handling tangency, reported by H2
364 * fixed `geometry::for_each` for use with Lambda's
365 * fixed `geometry::comparable_distance` point-linestring (and -range, -polygon)
366
367 [*Additional functionality]
368
369 * combinations for `geometry::disjoint`: point/ring, point/polygon, point/multi_polygon
370 * combinations for `geometry::intersects`: point/ring, point/polygon, point/multi_polygon
371
372 [*Internal changes]
373
374 * 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)
375 * fixes in unit tests
376
377 [/=================]
378 [heading Boost 1.51]
379 [/=================]
380
381 [*Breaking changes]
382
383 * 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>`
384
385 [*Bugfixes]
386
387 * intersection was sometimes wrong for integer points, fixed
388 * documentation, order of parameters in simplify was wrong, fixed
389
390 [*Solved tickets]
391
392 * [@https://svn.boost.org/trac/boost/ticket/7030 7030] spherical distance, fixed (by patch of Karsten Ahnert)
393
394
395 [/=================]
396 [heading Boost 1.50]
397 [/=================]
398
399 [*Bugfixes]
400
401 * the return type of comparable projected point strategy for integer points was wrong (integer), fixed
402 * several robustness issues in intersection of segments and polygons, fixed
403 * invalid intersection output is filtered out
404 * disjoint for multi_polygon's might incorrectly return true, fixed
405
406 [*Solved tickets]
407
408 * [@https://svn.boost.org/trac/boost/ticket/6585 6585] patch for alternative syntax multipoint, applied
409 * [@https://svn.boost.org/trac/boost/ticket/6584 6584] patch for bug in distance, applied
410 * [@https://svn.boost.org/trac/boost/ticket/5730 5730] same issue as 6584, fixed
411 * [@https://svn.boost.org/trac/boost/ticket/6166 6166] patch for missing transformation, applied
412 * [@https://svn.boost.org/trac/boost/ticket/6696 6696] invalid intersection output, was (by chance) already fixed in Trunk before reported
413
414 [*Additional functionality]
415
416 * added algorithm "touches" (OGC SF compliant) for *polygon/*polygon
417
418 [/=================]
419 [heading Boost 1.49]
420 [/=================]
421
422 [*Breaking changes]
423
424 * point_xy was accidentally included in one of the headerfiles. If the point_xy class is used, it should be included explicitly now.
425
426 [*Bugfixes]
427
428 * bugfix: distance for multi-geometries ignored specified distance strategy. Fixed
429 * bugfix: difference for polygon/multi_polygon (reported 2011/10/24 on GGL-list)
430 * bugfix: raise exception for calculation of distances of multi-geometrie(s) where one of them is empty
431 * bugfix: multi DSV did not correctly use settings, fixed
432 * bugfix: self-intersections could sometimes be missed (introduced in 1.48), fixed
433 * bugfix: convex hull crashed on empty range (e.g. empty multi point), fixed
434 * bugfix: area/centroid/side/intersection/distance did not work for "int" type filled with large (but not overflowing) integers. Fixed.
435 * bugfix: disjoint/intersect did not work for degenerate linestrings. Fixed.
436 * bugfix: covered_by did not compile for a ring. Fixed.
437
438 [*Solved tickets]
439
440 * [@https://svn.boost.org/trac/boost/ticket/6019 6019] convex_hull / area, fixed.
441 * [@https://svn.boost.org/trac/boost/ticket/6021 6021] convex_hull / append (multipoint), fixed.
442 * [@https://svn.boost.org/trac/boost/ticket/6028 6028] Documentation: closure, fixed.
443 * [@https://svn.boost.org/trac/boost/ticket/6178 6178] Missing headerfile, fixed.
444
445 [*Additional functionality]
446
447 * support for line/polygon intersections and differences
448 * support for convert of segment/box of different point types
449 * support for append for multi point
450 * the scalar function distance now throws an empty_input_exception on empty input
451
452 [*Documentation]
453
454 * updated support status in several algorithms
455 * updated conformance to OGC or std
456 * other updates and fixes
457
458 [*Internal changes]
459
460 * updates in specializations/not_implemented for distance/convert/assign/area/with/covered_by
461 * move of wkt/dsv to io folder, making domains redundant
462 * warnings: strategy concepts assigned to zero to avoid clang warnings (patched by Vishnu)
463 * warnings: there were several unused parameters, for which gcc/clang warned (patched by Christophe)
464
465 [/=================]
466 [heading Boost 1.48]
467 [/=================]
468
469 [*Bugfixes]
470
471 * Robustness issue, in some circumstances the union failed to output. Fixed.
472 * Robustness issue, in some circumstances the calculated intersection point was outside the segment. Fixed.
473 * Concept issue, cartesian intersect didn't understand segments other than the provided one. Fixed.
474 * Sometimes self-intersections in linestrings were missed. Fixed.
475 * The fusion coordinate system was not registered correctly. Fixed.
476
477 [*Solved tickets]
478
479 * [@https://svn.boost.org/trac/boost/ticket/5726 5726] Segment intersection algorithm still assumes 'first', 'second' members
480 * [@https://svn.boost.org/trac/boost/ticket/5744 5744] Mistake in fusion adapt example
481 * [@https://svn.boost.org/trac/boost/ticket/5748 5748] Needed to include <boost/foreach.hpp>
482 * [@https://svn.boost.org/trac/boost/ticket/5954 5954] distance_pythagoras skips sqrt() step
483
484 [*Improvements on algorithms]
485
486 * Checking self-intersections is now not done automatically, this can blast performance.
487 * Besides that, checking self-intersections is made faster.
488 * Intersections now avoid outputting duplicate points. So they output the minimal set.
489
490 [*Additional algorithms]
491
492 * covered_by: within is defined as "within, not on boundary". covered_by is "within or on boundary"
493
494 [*Additional functionality]
495
496 * within: strategies can now be specified for within<point, box> and within<box, box>
497 * convert: a much broader range of conversions is supported
498 * assign: idem, (currently partly) synonym for convert (but reversed arguments)
499
500 [*Additional coordinate types]
501
502 * Basic (limited) support for Boost.Rational
503
504 [heading Boost 1.47]
505
506 Original release
507
508 [endsect]