pkgsrc-Changes archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

CVS commit: pkgsrc/geography/geos



Module Name:    pkgsrc
Committed By:   gdt
Date:           Sat Feb 16 01:23:28 UTC 2008

Modified Files:
        pkgsrc/geography/geos: Makefile PLIST distinfo

Log Message:
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).


To generate a diff of this commit:
cvs rdiff -r1.5 -r1.6 pkgsrc/geography/geos/Makefile
cvs rdiff -r1.2 -r1.3 pkgsrc/geography/geos/PLIST
cvs rdiff -r1.4 -r1.5 pkgsrc/geography/geos/distinfo

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.



Home | Main Index | Thread Index | Old Index