source: tags/3.2.3/NEWS

Last change on this file was 3478, checked in by strk, 5 years ago

Prepare for 3.2.3 release

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 12.0 KB
Line 
1Changes in 3.2.3
22011-09-21
3
4- Bug fixes / improvements
5  - ValidOp abort in presence of 2 touching holes forming an island (#449)
6  - DistanceOp segfaults on MULTIPOLYGON with EMPTY elements (#367)
7  - RobustDeterminant is not robust (#450)
8  - Fix out-of-place build for python binding (#332)
9  - Fix LinearReferencing functions segfault (#353)
10
11Changes in 3.2.2
12 
13- Bug fixes:
14  - CAPI: do not leak contexts when using the non-reentrant interface
15
16Changes in 3.2.1
17
18- Bug fixes:
19  - False positive return from IsValidOp (#333)
20  - Return up to 15 digits of precision from GEOSisValidReason_t (#329)
21
22Changes in 3.2.0
23
24- Add Single-sided buffer operation
25- JTS-1.10 sync ...
26  - Drastically improved Buffer speed (20x for a case in testsuite)
27  - Improved EdgeList duplicate edge finding
28  - Added algorithm::distance package
29  - Added algorithm::Angle class
30  - Added algorithm::BoundaryNodeRule class
31  - IsSimpleOp can now return non-simple location coordinate
32  - DistanceOp can now check for 'within distance' predicate
33    (earlier exit)
34  - MultiPolygon::getBoundary always return MultiLineString, also
35    when the result is the EMPTY geometry.
36- Various bug and leak fixes, optimizations
37- Replace MarkupSTL with tinyXML
38
39Changes in 3.1.0
40
41- PreparedGeometry operations for very fast predicate testing.
42  - Intersects()
43  - Covers()
44  - CoveredBy()
45  - ContainsProperly()
46- Easier builds under MSVC and OpenSolaris
47- Thread-safe CAPI option
48- IsValidReason added to CAPI
49- CascadedUnion operation for fast unions of geometry sets
50- Numerous bug fixes.
51  http://trac.osgeo.org/geos/query?status=closed&milestone=3.1.0&order=priority
52
53Changes in 3.0.0
54
55   These are mostly ABI breaking changes.
56   In few cases the API also changed, but the most external one
57   (the documented one) should be unchanged.
58
59- New things:
60        - Added geom::BinaryOp class performing a binary operation
61          using different heuristics to reduce probability of robustness
62          issues. Both C-API and XMLTester now use this class for
63          binary operations.
64        - Added covers() and coveredBy() predicates to Geometry class
65        - Added overlay::overlayOp() adapter class
66        - Added GEOSSimplify() and GEOSTopologyPreserveSimplify()
67          to the C API
68        - Added closed ring checks in IsValidOp
69        - Multi-input support in XMLTester
70        - HEXWKB I/O
71        - Envelope(string) ctor
72        - Ruby interface
73        - New ShortCircuitedGeometryVisitor class
74        - New operation/predicate package
75        - Added CGAlgorithms::isPointInRing() version working with
76          Coordinate::ConstVect type (faster!)
77        - Added getAt(int pos, Coordinate &to) funtion to CoordinateSequence
78          class.
79        - Moved GetNumGeometries() and GetGeometryN() interfaces
80          from GeometryCollection to Geometry class.
81        - New planarSubgraph class
82        - New ConnectedSubgraphFinder class.
83        - New LineSequencer class
84        - New WKTWriter::toLineString and ::toPoint convenience methods
85        - New IsValidOp::setSelfTouchingRingFormingHoleValid method
86        - New WKTWriter::toLineString and ::toPoint convenience methods
87        - New IsValidOp::setSelfTouchingRingFormingHoleValid method
88        - New Envelope::centre()
89        - New Envelope::intersection(Envelope)
90        - New Envelope::expandBy(distance, [ydistance])
91        - New LineString::reverse()
92        - New MultiLineString::reverse()
93        - New Geometry::buffer(distance, quadSeg, endCapStyle)
94        - New SnapRounding code
95        - New size() and operator[] interfaces to CoordinateSequence
96        - New ScaledNoder class
97        - New unit tests (make check rule)
98
99- Optimizations:
100        - WKT parser speedup
101        - Function inlining
102        - Coordinate copies reduction
103        - Heap allocations reduction
104        - More classes made final
105        - Better use of standard containers
106        - Use of singletons when appropriate
107        - Removed many function calls in loops' end conditions
108        - Improved XMLTester output and user interface
109        - Improved memory use in geos::geom::util::PolygonExtractor
110        - Ported JTS-1.7 version of ConvexHull with big attention to
111          memory usage optimizations.
112        - Changed CoordinateArrayFilter to reduce memory copies
113        - Changed UniqueCoordinateArrayFilter to reduce memory copies
114        - Added rectangle-based optimizations of intersects() and
115          contains() ops
116        - Inlined all planarGraphComponent class
117        - More iterators returning methods and inlining in planargraph.
118        - Obsoleted toInternalGeometry/fromInternalGeometry
119        - Improved buffering speed and robustness by using Snap Rounding
120
121- Semantic changes
122
123        - SegmentString: getCoordinates() doesn't return a clone
124          anymore, getCoordinatesRO() obsoleted.
125        - JTS packages mapped to geos:: sub-namespaces
126        - Geometry::getInteriorPoint() returns NULL if called
127          against an EMPTY geom
128        - LineString::get{Start,End}Point return NULL for
129          EMPTY geoms
130        - GEOSException is now derived by std::runtim_exception
131          and thrown by const reference.
132        - Geometry constructors made protected, to force use
133          of a GeometryFactory.
134
135- Correctness:
136        - More const-correct signatures
137        - Stronger methods typing (removed some void * args).
138        - Changed index-related funx signatures to use size_t
139          rather then int
140        - More const-correctness in Buffer "package"
141        - Bugfix in LineString::getCoordinate() failing to return
142          NULL from getCoordinat() when empty.
143        - Use unsigned int for indexes and sizes.
144
145- Layout changes:
146        - Namespaces mapping JTS packages
147        - Renamed classes after JTS names (namespaces use made this possible
148          w/out name clashes)
149        - Splitted headers, for build speedup and possible API reduction.
150        - Moved source/bigtest and source/test to tests/bigtest
151          and test/xmltester
152        - Moved C-API in it's own top-level dir capi/
153        - Reworked automake scripts to produce a static lib for each subdir
154          and then link all subsystem's libs togheter
155        - Renamed DefaultCoordinateSequence to CoordinateArraySequence.
156        - Renamed OverlayOp opcodes by prepending the 'op' prefix, and
157          given the enum a name (OpCode) for type-safety.
158
159- Bug fixes:
160        - Fixed bug causing redundant linestrings to be returned in the
161          result of overlaying polygons containing touching holes (#13)
162        - Fixed integer conversion bug
163        - Fixed PointLocator handling of LinearRings
164        - Added missing ::clone() methods for Multi* geoms
165
166- (Partial) Detailed list of changes:
167        - Changed SegmentNode to contain a *real* Coordinate (not a pointer)
168          to reduce construction costs.
169        - Changed geomgraph nodeMap to use Coordinate pointers as keys
170        - Envelope destructor made non-virtual to give compiler more static
171          binding options.
172        - Changed BufferSubgraph::computeDepths to use a set instead of a
173          vector for checking visited Edges.
174        - Made LineIntersector a concrete type
175        - Node::isIncidentEdgeInResult() method made virtual
176        - Const-correct signatures in LineMerger package
177        - Changed operation/valid/*NestedRingTester classes interface
178          to use Coordinate pointers instead of copies.
179        - Changed EdgeIntersectionList to use a set instead of a vector
180        - Changed DepthSegment to store a real Coordinate rather then a pointer.
181        - Changed SubgraphDepthLocater to store real containers rather then
182          pointers.
183        - Changed BufferSubgraph to store a real RightmostEdgeFinder and real
184          containers rather then pointers.
185        - CoordinateSequence API changes:
186                - point index and size related functions
187                  use unsigned int rather then int
188        - Changed EdgeEndStar to maintain a single container for EdgeEnds
189        - Changed PlanarGraph::addEdges to take a const vector by ref
190          rathern then a non-const vector by pointer
191        - Changed EdgeList::addAll to take a const vector by ref
192          rather then a non-const vector by pointer
193        - Added apply_rw(CoordinateFilter *) and apply_ro(CoordinateFilter *)
194          const to CoordinateSequence
195        - LineBuilder::lineEdgesList made a real vector, rather then pointer
196          (private member)
197        - SegmentString::eiList made a real SegmentNodeList, rather then
198          a pointer (private member)
199        - Removed coordinate copies in ElevationMatrix::elevate
200        - Changed CoordinateFilter interface to have a const method
201          for filter_rw, updated interfaces using this to take
202          const CoordinateFilter (apply_rw).
203
204
205Changes in 2.2.4
206
207        - Added version.in.vc to distribution
208
209Changes in 2.2.1
210
211- Support for MingW builds
212- Bugfix in Polygonizer chocking on invalid LineString inputs
213- CAPI: small leak removed in GEOSHasZ()
214
215Changes in 2.2.0
216
217- Performance improvement in OverlayOp::insertUniqueEdge()
218- CoordinateSequence copy removal in EdgeRing
219- Minor memory allocation improvements
220- Higher dimensions interface for CoordinateSequence
221- Added getCoordinatesRO for Point class
222- NEW WKB IO
223- NEW Simplified and stabler C API
224
225Changes in 2.1.4
226
227- Severe BUGFIX in BufferSubgraphGT and other functions used
228  as StrictWeakOrdering predicates for sort()
229
230Changes in 2.1.3
231
232- win32/mingw build support
233- Segfault fix in LinearRing and LineString constructors
234- Segfault fix in Polygonizer
235- XMLTester installed by default
236- XMLTester code cleanup
237- Fixed handling of collection input in GeometryFactory::buildGeometry
238- Added shortcircuit test for Union operation
239- Reduced useless Coordinate copies in CGAlgorithms::isPointInRing()
240- Performance improvements in CGAlgorithms::isOnLine()
241- Other minor performance improvements
242- New Node::isIncidentEdgeInResult() method
243- OverlayOp's PointBuilder performance improvement by reduction
244  of LineIntersector calls.
245- Optimizations in Buffer operation
246- Sever BUGFIX in DepthSegmentLT as suggested by Graeme Hiebert
247
248Changes in 2.1.2
249
250- Segfault fix in Point::isEmpty
251- Mem Leak fix in OffsetCurveBuilder::getRingCurve
252- Bugfix in LineSegment::reverse
253- Added multipolygon buffering test in source/test/testLeaksBig
254- Ported JTS robustness patch for RobustLineIntersector
255- Removed useless Coordinate copies in OverlayOp::mergeZ()
256- Avoided throws by IsValid on invalid input
257- Stricter C++ syntax (math.h=>cmath, ieeefp.h in "C" block, ostringstream
258  instead of sprintf)
259- Better support for older compilers (Polygonizer::LineStringAdder friendship)
260- Removed useless Coordinate copies in CGAlgorithms::isOnLine()
261- Added support for polygonize and parametrized buffer tests in XMLTester
262- Fixed support for --includedir and --libdir
263- Fixed Z interpolation in LineIntersector
264- Handled NULL results from getCentroid() in XMLTester
265- Segfault fix in (EMPTY)Geometry::getCentroid()
266- Made polygon::getBoundary() always OGC-valid (no LinearRings)
267- Input checking and promoting in GeometryFactory::createMultiLineString()
268- Segfault fix in GeometryEditor::editPolygon()
269
270
271Changes in 2.1.1
272
273- Fixed uninitialized Coordinate in TopologyException
274- Added install of version.h, platform.h and timeval.h
275- Memleak fix in PolygonizeGraph
276- Memleak fix in OverlayOp
277- Compiler warnings removal
278- Cleaner w32 build
279- Z interpolation in overlay operations
280- Debian package build scripts
281
282
283Changes in 2.1.0
284
285- Added Polygonizer and LineMerger classes.
286- python wrapper examples
287- General cleanup / warnings removal
288- cleaner win32 / older copilers builds
289- Reduced heap allocations
290- debian package builder scripts
291- reduction of standard C lib headers dependency
292- Z support in overlay operations.
293
294
295Changes in 2.0.0
296
297- CoordinateList renamed to CoordinateSequence, BasicCoordinateList
298  renamed to DefaultCoordinateSequence to reflect JTS changes.
299  DefaultCoordinateSequenceFactory and CoordinateSequenceFactory
300  got same interface as JTS.
301- Added geos/version.h defining versioning infos
302- Added geos.h for quick inclusion. It will include geos/geom.h,
303  new geos/version.h, geos/util.h geos/io.h and geos/unload.h
304  (geometry input/output, exceptions, operations).
305- Added a geos::version() function showing GEOS and equivalent
306  JTS versions as strings.
307- All geometry constructors take ownership of given arguments.
308  GeometryFactory provides pass-by-reference geometry creators
309  to take care of a deep-copy.
310- GeometryFactory::createMultiPoint(const CoordinateList *)
311  has been renamed to
312  GeometryFactory::createMultiPoint(const CoordinateList &)
313  to reflect copy semantic
314- GeometryFactory: EMPTY geometry creation do now have their
315  own constructors taking no arguments.
316- Geometry constructors taking PrecisionModel and SRID have
317  been dropped. You have to use GeometryFactory instead.
318- WKTWriter default constructor has been dropped. You need
319  to initialize it with an explicit GeometryFactory
320
Note: See TracBrowser for help on using the repository browser.