source: trunk/NEWS@ 3265

Last change on this file since 3265 was 3265, checked in by strk, 13 years ago

Add note aboute GEOSRelateBoundaryNodeRule

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