| 1 | Changes 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 |
|
|---|
| 44 | Changes in 3.2.0
|
|---|
| 45 | 2009-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 |
|
|---|
| 62 | Changes 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 |
|
|---|
| 77 | Changes 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 |
|
|---|
| 229 | Changes in 2.2.4
|
|---|
| 230 |
|
|---|
| 231 | - Added version.in.vc to distribution
|
|---|
| 232 |
|
|---|
| 233 | Changes 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 |
|
|---|
| 239 | Changes 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 |
|
|---|
| 249 | Changes in 2.1.4
|
|---|
| 250 |
|
|---|
| 251 | - Severe BUGFIX in BufferSubgraphGT and other functions used
|
|---|
| 252 | as StrictWeakOrdering predicates for sort()
|
|---|
| 253 |
|
|---|
| 254 | Changes 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 |
|
|---|
| 272 | Changes 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 |
|
|---|
| 295 | Changes 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 |
|
|---|
| 307 | Changes 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 |
|
|---|
| 319 | Changes 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 |
|
|---|