Commit graph

15 commits

Author SHA1 Message Date
gdt
12152bfefe Update to 3.3.2 (bugfixes from 3.3.0, basically).
Changes in 3.3.2
2012-01-05

- Bug fixes / improvements
    - Fix CMAKE_CXX_FLAGS overriding -std=gnu++0x (#489)
    - Missing versions update in CMake configuration (#490)
    - Fix noding of self-intersecting lines through UnaryUnion (#482)
    - Fix handling of collapsed edges skipping in BufferOp (#494)
    - Print up to 18 digits of precision for TopologyException points
    - Fix noding with reduced precision in Buffer operation (#473)
    - Fix HotPixel original point invalidation (#498)
    - Fix CascadedPolygonUnion to discard non-polygonal components (#499)
    - Improve buffer robustness by reverting to non-snaprounding noder (#495)
    - Fix C++11 build by avoiding std::pair<auto_ptr> (#491)
    - Add --clibs to geos-config and GEOS_C_LIBS to geos.m4 (#497)
    - Apply shoelace formula for area calculation (#485)
    - Fix default initialization issue for clang (#500)
    - Improve overlay robustness by fixing areal validity on snapping (#488)

Changes in 3.3.1
2011-09-27

- Bug fixes / improvements
  - Fix memory leak on invalid geometry in InteriorPointArea (#475)
  - ValidOp abort in presence of 2 touching holes forming an island (#449)
  - Enable prepared intersects operation for points
  - Fortify suspicious code found by static analisys tools
  - Fix for SOLARIS build (#461)
  - Fix EMPTY result from GEOSOffsetCurve with distance 0 (#454)
  - Fix Geometry::clone to copy SRID (#464)
  - Fix for clang builds (#463)
  - Fix out-of-place builds for python binding (#332) and regress testing
  - Fix OS X framework cmake build (#385)
2012-01-08 18:37:33 +00:00
adam
e1520bd5a4 Changes 3.3.0:
- New things:
  - CAPI: GEOSBufferWithParams (allows single sided buffers)
  - CAPI: GEOSOffsetCurve deprecates GEOSSingleSidedBuffer
  - CAPI: GEOSUnaryUnion deprecates GEOSCascadedUnion
  - CAPI: GEOSisValidDetail: tell state, reason & location apart. allows
          passing flags.
  - CAPI: GEOSContext_setNoticeHandler_r, GEOSContext_setErrorHandler_r
  - CAPI: GEOSGeom_createEmptyPoint, GEOSGeom_createEmptyLineString
          GEOSGeom_createEmptyPolygon, GEOSGeom_createEmptyCollection
  - CAPI: GEOSGeom_extractUniquePoints
  - CAPI: GEOSGetGeometryN support for single geometries
  - CAPI: GEOSPolygonize_full to return all informations computed by
          the polygonizer
  - CAPI: GEOSOrientationIndex
  - CAPI: GEOSSharedPaths to find shared paths and their orientation
  - CAPI: GEOSSnap
  - CAPI: GEOSRelatePatternMatch
  - CAPI: GEOSCovers, GEOSCoveredBy
  - CAPI: GEOSRelateBoundaryNodeRule
  -  PHP: new PHP5 bindings based on CAPI
- Semantic C++ API changes:
  - Geometry inheritance chain changed to introduce Puntal, Lineal
    and Polygonal classes (virtual inheritance introduced)
  - Polygonizer::getInvalidRingLines retains ownership of vector elements
  - Geometry::isWithinDistance method is now const
  - Polygonizer::getCutEdges returns by const ref
  - Polygonizer::getDangles returns by const ref
  - Empty LinearRings are closed by definition
- Bug fixes / improvements
  - Fixed Geometry.distance() and DistanceOp to return 0.0 for empty inputs
  - Invalid compound geometries reported as valid
  - Return up to 15 digits of precision from GEOSisValidReason_t
  - CAPI: do not leak contexts when using the non-reentrant interface
  - Fix duplicated dangles returned by Polygonizer
  - Fix SnapIfNeededOverlayOp to throw the originating exception
  - Fixed LineMerger to skip lines with only a single unique coordinate
  - Fix NodedSegmentString to handle zero-length line segments correctly
    (via safeOctant)
  - Fixed buffer OffsetCurveSetBuilder to handle "flat" rings correctly
  - Added illegal state check in LineSegment::pointAlongOffset()
  - Improved performance of RectangleIntersects by always using
    segment-scanning and refining SegmentIntersectionTester
  - Reduce memory use in PreparedGeometry predicates
  - Fix infinite loop in RobustDeterminant with nan/inf input
2011-06-16 09:24:05 +00:00
adam
fd0ee9c723 Added LICENSE 2011-02-15 09:19:29 +00:00
zafer
5e5c9aa1a8 Update geos to 3.2.2
Changelog:
2010-04-18 09:34  Sandro Santilli <strk@keybit.net>

* [r2978] tests/unit/capi/GEOSGetCentroidTest.cpp: Forgot to add
this, since I added the Makefile.am line..

2010-04-17 21:55  Sandro Santilli <strk@keybit.net>

* [r2975] NEWS, capi/geos_c.cpp, capi/geos_c.h.in,
  capi/geos_ts_c.cpp, configure.in,
  source/headers/geos/version.h.vc, tests/unit/Makefile.am:
  Back-port fix of GEOS-context leakage

2010-04-07 14:01  Mateusz Loskot <mateusz@loskot.net>

* [r2973] source/dirlist.mk: Ported r2967 update to branches/3.2

2010-04-07 13:35  Mateusz Loskot <mateusz@loskot.net>

* [r2969] nmake.opt: Removed NDEBUG from CPPFLAGS of debug build
  configuration (Ticket #338)

2010-03-29 17:50  Mateusz Loskot <mateusz@loskot.net>

* [r2966] ., autogen.bat, nmake.opt,
  source/algorithm/distance/DistanceToPoint.cpp: Added NMake 10.x
  version to be recognized by nmake.opt (ported from trunk)

2010-03-29 16:21  Sandro Santilli <strk@keybit.net>

* [r2963] ChangeLog: Update ChangeLog

2010-03-26 12:35  Mateusz Loskot <mateusz@loskot.net>

* [r2956] source/headers/geos/platform.h.vc: platform.h.vc: disable
  min/max macros substitution (ported from trunk)

2010-03-26 12:03  Mateusz Loskot <mateusz@loskot.net>

* [r2953]
  source/headers/geos/operation/union/CascadedPolygonUnion.h: Added
  GEOS_DLL with Microsoft-specific __declspec attribute missing
  from CascadedPolygonUnion class

2010-03-26 12:00  Mateusz Loskot <mateusz@loskot.net>

* [r2951] source/geom/GeometryList.cpp: geom\GeoemtryList.cpp:
  missing implementation of GeometryList::size() function.

2010-03-26 11:57  Mateusz Loskot <mateusz@loskot.net>

* [r2949] source/Makefile.vc: source\Makefile.vc: added missing
  geom\GeometryList.cpp

2010-03-26 11:52  Mateusz Loskot <mateusz@loskot.net>

* [r2947] nmake.opt: nmake.opt: Added missing GEOS_DLL_EXPORT to
  CPPFLAGS

2010-03-19 15:09  Sandro Santilli <strk@keybit.net>

* [r2945] NEWS, capi/geos_ts_c.cpp: Improve formatting for
  GEOSisValidReason_r (issue #329)

2010-03-18 18:28  Sandro Santilli <strk@keybit.net>

* [r2943] NEWS: Add bugfix item

2010-03-18 18:26  Sandro Santilli <strk@keybit.net>

* [r2942] source/headers/geos/operation/valid/IsValidOp.h,
  source/operation/valid/IsValidOp.cpp,
  tests/xmltester/tests/general/TestValid.xml: Fix false-positive
  return from IsValidOp. This is done better than in trunk, so will
  backport later.

2009-12-30 17:55  Mateusz Loskot <mateusz@loskot.net>

* [r2836] source/Makefile.vc: Ported fix for missing
  CoordinateSequenceFactory?.cpp from makefile.vc (Ticket #313)

2009-12-14 19:21  Paul Ramsey <pramsey@cleverelephant.ca>

* [r2830] capi/geos_c.h.in, configure.in,
  source/headers/geos/version.h.vc: Back up the versions to 3.2.1
  for 3.2 branch
2010-04-20 18:35:29 +00:00
gdt
3a85fa0767 Update to 3.2.0:
Changes in 3.2.0

- Add Single-sided buffer operation
- JTS-1.10 sync ...
  - Drastically improved Buffer speed (20x for a case in testsuite)
  - Improved EdgeList duplicate edge finding
  - Added algorithm::distance package
  - Added algorithm::Angle class
  - Added algorithm::BoundaryNodeRule class
  - IsSimpleOp can now return non-simple location coordinate
  - DistanceOp can now check for 'within distance' predicate
    (earlier exit)
  - MultiPolygon::getBoundary always return MultiLineString, also
    when the result is the EMPTY geometry.
- Various bug and leak fixes, optimizations
- Replace MarkupSTL with tinyXML
2009-12-14 23:31:06 +00:00
gdt
4bf0a20854 Fix PLIST - problems pointed out by Hasso Tepper. 2009-03-20 18:57:18 +00:00
gdt
0a4a593465 Version 3.1.0 includes a number of improvements over the 3.0 version:
- PreparedGeometry operations for very fast predicate testing.
  - Intersects()
  - Covers()
  - CoveredBy()
  - ContainsProperly()
- Easier builds under MSVC and OpenSolaris
- Thread-safe CAPI option
- IsValidReason added to CAPI
- CascadedUnion operation for fast unions of geometry sets
- Single-sided buffering operation added
- Numerous bug fixes.
  http://trac.osgeo.org/geos/query?status=closed&milestone=3.1.0&order=priority
2009-03-18 19:41:45 +00:00
gdt
5824dbf303 Update to 3.0.3. Add TEST_TARGET. From NEWS:
Changes in 3.0.3

  - Bug fixes.
2008-12-11 17:17:57 +00:00
gdt
c4d1e9cd9b Update to 3.0.2.
From NEWS:

  Changes in 3.0.1

  - To be added
2008-10-17 23:04:17 +00:00
gdt
cbf8e785cb Update to 3.0.0.
Changes in 3.0.0

   These are mostly ABI breaking changes.
   In few cases the API also changed, but the most external one
   (the documented one) should be unchanged.

- New things:
	- Added geom::BinaryOp class performing a binary operation
	  using different heuristics to reduce probability of robustness
	  issues. Both C-API and XMLTester now use this class for
	  binary operations.
	- Added covers() and coveredBy() predicates to Geometry class
	- Added overlay::overlayOp() adapter class
	- Added GEOSSimplify() and GEOSTopologyPreserveSimplify()
	  to the C API
	- Added closed ring checks in IsValidOp
	- Multi-input support in XMLTester
	- HEXWKB I/O
	- Envelope(string) ctor
	- Ruby interface
	- New ShortCircuitedGeometryVisitor class
	- New operation/predicate package
	- Added CGAlgorithms::isPointInRing() version working with
	  Coordinate::ConstVect type (faster!)
	- Added getAt(int pos, Coordinate &to) funtion to CoordinateSequence
	  class.
	- Moved GetNumGeometries() and GetGeometryN() interfaces
	  from GeometryCollection to Geometry class.
	- New planarSubgraph class
	- New ConnectedSubgraphFinder class.
	- New LineSequencer class
	- New WKTWriter::toLineString and ::toPoint convenience methods
	- New IsValidOp::setSelfTouchingRingFormingHoleValid method
	- New WKTWriter::toLineString and ::toPoint convenience methods
	- New IsValidOp::setSelfTouchingRingFormingHoleValid method
	- New Envelope::centre()
	- New Envelope::intersection(Envelope)
	- New Envelope::expandBy(distance, [ydistance])
	- New LineString::reverse()
	- New MultiLineString::reverse()
	- New Geometry::buffer(distance, quadSeg, endCapStyle)
	- New SnapRounding code
	- New size() and operator[] interfaces to CoordinateSequence
	- New ScaledNoder class
	- New unit tests (make check rule)

- Optimizations:
	- WKT parser speedup
	- Function inlining
	- Coordinate copies reduction
  	- Heap allocations reduction
	- More classes made final
	- Better use of standard containers
	- Use of singletons when appropriate
	- Removed many function calls in loops' end conditions
	- Improved XMLTester output and user interface
	- Improved memory use in geos::geom::util::PolygonExtractor
	- Ported JTS-1.7 version of ConvexHull with big attention to
	  memory usage optimizations.
	- Changed CoordinateArrayFilter to reduce memory copies
	- Changed UniqueCoordinateArrayFilter to reduce memory copies
	- Added rectangle-based optimizations of intersects() and
	  contains() ops
	- Inlined all planarGraphComponent class
	- More iterators returning methods and inlining in planargraph.
	- Obsoleted toInternalGeometry/fromInternalGeometry
	- Improved buffering speed and robustness by using Snap Rounding

- Semantic changes

	- SegmentString: getCoordinates() doesn't return a clone
	  anymore, getCoordinatesRO() obsoleted.
	- JTS packages mapped to geos:: sub-namespaces
	- Geometry::getInteriorPoint() returns NULL if called
	  against an EMPTY geom
	- LineString::get{Start,End}Point return NULL for
	  EMPTY geoms
	- GEOSException is now derived by std::runtim_exception
	  and thrown by const reference.
	- Geometry constructors made protected, to force use
	  of a GeometryFactory.

- Correctness:
	- More const-correct signatures
	- Stronger methods typing (removed some void * args).
	- Changed index-related funx signatures to use size_t
	  rather then int
	- More const-correctness in Buffer "package"
	- Bugfix in LineString::getCoordinate() failing to return
	  NULL from getCoordinat() when empty.
	- Use unsigned int for indexes and sizes.

- Layout changes:
	- Namespaces mapping JTS packages
	- Renamed classes after JTS names (namespaces use made this possible
	  w/out name clashes)
	- Splitted headers, for build speedup and possible API reduction.
	- Moved source/bigtest and source/test to tests/bigtest
	  and test/xmltester
	- Moved C-API in it's own top-level dir capi/
	- Reworked automake scripts to produce a static lib for each subdir
	  and then link all subsystem's libs togheter
	- Renamed DefaultCoordinateSequence to CoordinateArraySequence.
	- Renamed OverlayOp opcodes by prepending the 'op' prefix, and
	  given the enum a name (OpCode) for type-safety.

- Bug fixes:
	- Fixed bug causing redundant linestrings to be returned in the
	  result of overlaying polygons containing touching holes (#13)
	- Fixed integer conversion bug
	- Fixed PointLocator handling of LinearRings
	- Added missing ::clone() methods for Multi* geoms

- (Partial) Detailed list of changes:
	- Changed SegmentNode to contain a *real* Coordinate (not a pointer)
  	  to reduce construction costs.
	- Changed geomgraph nodeMap to use Coordinate pointers as keys
	- Envelope destructor made non-virtual to give compiler more static
	  binding options.
	- Changed BufferSubgraph::computeDepths to use a set instead of a
	  vector for checking visited Edges.
	- Made LineIntersector a concrete type
	- Node::isIncidentEdgeInResult() method made virtual
	- Const-correct signatures in LineMerger package
	- Changed operation/valid/*NestedRingTester classes interface
	  to use Coordinate pointers instead of copies.
	- Changed EdgeIntersectionList to use a set instead of a vector
	- Changed DepthSegment to store a real Coordinate rather then a pointer.
	- Changed SubgraphDepthLocater to store real containers rather then
	  pointers.
	- Changed BufferSubgraph to store a real RightmostEdgeFinder and real
 	  containers rather then pointers.
	- CoordinateSequence API changes:
		- point index and size related functions
	  	  use unsigned int rather then int
	- Changed EdgeEndStar to maintain a single container for EdgeEnds
	- Changed PlanarGraph::addEdges to take a const vector by ref
	  rathern then a non-const vector by pointer
	- Changed EdgeList::addAll to take a const vector by ref
	  rather then a non-const vector by pointer
	- Added apply_rw(CoordinateFilter *) and apply_ro(CoordinateFilter *)
	  const to CoordinateSequence
	- LineBuilder::lineEdgesList made a real vector, rather then pointer
	  (private member)
	- SegmentString::eiList made a real SegmentNodeList, rather then
	  a pointer (private member)
	- Removed coordinate copies in ElevationMatrix::elevate
	- Changed CoordinateFilter interface to have a const method
	  for filter_rw, updated interfaces using this to take
	  const CoordinateFilter (apply_rw).
2008-02-16 01:23:28 +00:00
joerg
05c2492d93 Supports DESTDIR. 2007-08-16 00:23:09 +00:00
gdt
f6e643a8c4 Update to 2.2.3. (Minor and irrelevant changes omitted.)
Take maintainership.

Changes in 2.2.3

- CAPI: multiple finishGEOS() calls made harmless.

Changes in 2.2.2

- Added LinearRing::clone
- Added GEOSArea(), GEOSLength(), GEOSEnvelope(), and GEOSGeomType() to C API
- Cleanups in C-API
- Support for gcc-4
- Fixed Polygon::equalsExact
- Fixed bug in NULL-factory Geometry constructor
- Cleanups in SWIG wrappers
- New Ruby bindings
- Enumerated SweepLineEvent's DELETE and INSERT labels
  renamed to DELETE_EVENT and INSERT_EVENT.
- Fixed geos-config to use system-specific libs path
- Accept correct WKT format for MultiPoints
- SRID support in (E)WKB reader.

Changes in 2.2.0

- Higher dimensions interface for CoordinateSequence
- Added getCoordinatesRO for Point class
- NEW WKB IO
- NEW Simplified and stabler C API

Changes in 2.1.4

- Severe BUGFIX in BufferSubgraphGT and other functions used
  as StrictWeakOrdering predicates for sort()

Changes in 2.1.3

- XMLTester installed by default
- New Node::isIncidentEdgeInResult() method

Changes in 2.1.2

- Added multipolygon buffering test in source/test/testLeaksBig
- Ported JTS robustness patch for RobustLineIntersector
- Removed useless Coordinate copies in OverlayOp::mergeZ()
- Avoided throws by IsValid on invalid input
- Stricter C++ syntax (math.h=>cmath, ieeefp.h in "C" block, ostringstream
  instead of sprintf)
- Better support for older compilers (Polygonizer::LineStringAdder friendship)
- Removed useless Coordinate copies in CGAlgorithms::isOnLine()
- Added support for polygonize and parametrized buffer tests in XMLTester
- Fixed Z interpolation in LineIntersector
- Made polygon::getBoundary() always OGC-valid (no LinearRings)
- Input checking and promoting in GeometryFactory::createMultiLineString()
- Segfault fix in GeometryEditor::editPolygon()

Changes in 2.1.1

- Fixed uninitialized Coordinate in TopologyException
- Added install of version.h, platform.h and timeval.h
- Z interpolation in overlay operations

Changes in 2.1.0

- Added Polygonizer and LineMerger classes.
- python wrapper examples
- Z support in overlay operations.
2006-11-10 21:00:23 +00:00
gdt
9b356774ed Add @LDFLAGS@ to tools/geos-config.in, so that 'geos-config --libs'
prints

  -L/usr/pkg/lib -Wl,-R/usr/pkg/lib -lgeos

instead of

  -L/usr/pkg/lib -lgeos
2006-09-20 16:01:48 +00:00
rillig
144a1ee175 Added "c" to USE_LANGUAGES for packages that use GNU configure scripts,
since they always need a C compiler, even when the source code is
completely in C++.

For some other packages, stated in the comment that a C compiler is
really not needed.
2006-07-22 04:46:13 +00:00
minskim
81648a72c1 Import geos from pkgsrc-wip. Packaged by David Price.
GEOS (Geometry Engine - Open Source) is a C++ port of the Java
Topology Suite (JTS).  It contain the complete functionality of JTS in
C++.  It includes all the OpenGIS "Simple Features for SQL" spatial
predicate functions and spatial operators,and JTS topology functions
like IsValid().
2005-11-06 10:36:46 +00:00