-
Notifications
You must be signed in to change notification settings - Fork 443
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add Alpha-shapes to ConcaveHull #952
Merged
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Signed-off-by: Martin Davis <mtnclimb@gmail.com>
pramsey
added a commit
to libgeos/geos
that referenced
this pull request
Jan 26, 2023
Add Alpha-shapes to ConcaveHull
clrpackages
pushed a commit
to clearlinux-pkgs/geos
that referenced
this pull request
Jul 10, 2024
Aaron Barany (1): Fix CMake on Windows with Visual Studio (#945) Andrew Hershberger (1): Clarify thread safety requirements for C API (#907) Bas Couwenberg (1): Fix spelling errors. (#920) Ben Wolsieffer (1): geos-config: remove reference to geos-3 library (#644) Brendan Ward (1): Update docstring of GEOSSnap / GeometrySnapper (#815) Casper van der Wel (1): Construction of XYZ points with NaN coordinates (#881) Daniel Baston (180): Fix docs, add tests for GEOSEnvelope edge cases (#656) WKTReader: Parse and handle Z/M flags in geometry type Clear some clang-tidy issues in WKTReaderTest Add some cases to WKTReaderTest WKTReader: Allow implied M dimension Remove unused arg in WKTReader::getPreciseCoordinate Add test cases for Trac #1134 (#670) Add test cases for Trac #590 (#672) WKTReader: Enforce consistent coordinate dimension Fix invalid WKT in unit tests WKTReader: Raise error if extra text present after end of geometry Fix more invalid WKT in unit tests Resolve C++20 compile error NEWS entries for WKTReader fixes Fix crash in GEOSIntersects with empty point inputs (#673) Inline Geometry::geometryChangedAction Add Point::setXY CAPI: Add XY variants of several GEOSPrepared functions Inline Point::getCoordinate Inline Envelope::covers Make HilbertEncoder::sort generic Pre-sort inputs to CoverageUnion GeometryFactory: Add createMultiPoint(std::vector<Coordinate>&&) Fix RelateOp for empty geometry and closed linear geometry LineMerger: Recursively collect all components from GeometryCollections (#683) Remove heap alloc in GEOSGeom_setPrecision GeometryPrecisionReducer: Avoid returning 3D Polygon on 2D input CI: Update MacOS to version 11 (#689) CMake: Add -Wsign-conversion (#686) Add CoordinateSequenceIterator (#685) Remove GEOSPreparedContainsProperlyXY Delegate PreparedGeometry::isWithinDistance to PreparedPolygon::distance Implement IndexedFacetDistance::isWithinDistance Add clustering functions (#688) Avoid copying test geometry in PreparedPolygonIntersects SimplePointInAreaLocator: avoid dynamic_cast and rearrange some envelope checks Update NEWS entries geosop: add clusterWithin PreparedPolygonDistance: Remove unnecessary segment intersection testing Remove RayCrossingCounterDD (#694) Add CoordinateXY type (#701) Use CoordinateXY type for TopologyValidationError (#711) Remove set::find() before set::insert() CI: Migrate MacOS and cppcheck to GitHub, remove Azure pipelines (#712) Convert LocationIndex... to 2D Convert Centroid to 2D Convert RepeatedPointTester to 2D Convert IsValidOp to 2D Convert DistanceToPoint to 2D Convert Assert to 2D Convert GeometricShapeFactory to 2D Fix double-free when Node::add throws (#730) Catch and report GeosOp exceptions Improve short-circuits in SubgraphDepthLocater (#727) Add GEOSLineSubstring (#708) Move readers from geosop into library (#735) Remove AppVeyor testing (#737) Pull CoordinateSequence into SegmentString base class (#731) Add queryPairs method to TemplateSTRtree Use STRtree queryPairs for MCIndexNoder Multi-dimensional CoordinateSequence (#721) Remove raw pointer Geometry ctrs / GeometryFactory methods (#745) geosop: Fix relateBNR declaration Fix null pointer deref when constructing empty point (#749) CoordinateSequence: Allow XYZM contsruction by numeric dimension (#753) Fix DiscreteFrechetDistance crash on empty inputs (#752) OverlayGraph: avoid minor copies, heap allocs OverlayEdgeRing: presize hole vector PolygonBuilder: presize vector LinearRing: Fix error message for invalid size RepeatedPointRemover: Avoid reading invalidated reference (#762) Add tests for discrete Frechet distance with tiny dens. frac (#767) Fix GEOSCoodSeq_copyFromBuffer for XYM (#772) PreparedLineStringIntersects: Fix incorrect result for mixed-dim GC with points (#774) LinearComponentExtracter: Avoid dynamic_cast LinearComponentExtracter: Remove unused filter_rw method Add test for Trac #769 C API: Add GEOSHasM (#776) Delegate Geometry::intersects to PreparedGeometry::intersects (#775) perf_intersection: Allow selection of predicate and operation Benchmarks: Add PreparedPolygonIntersectPerfTest DouglasPeuckerSimplifier: Allow ring origin to be removed (#773) RepeatedPointRemover: Allow creating LinearRing of length 3 (#763) PreparedPolygonIntersects: Use SimplePointInAreaLocator for first test (#777) NodingIntersectionFinder: Fix false-positive intersection (#780) CI: Add 32-bit build (#746) Perf testing: Add benchmark comparing point locators Convert Voronoi perf test to Google benchmark Fix some C API doc errors Add some C API tests Add tests for GEOSWKBWriter Add test for GEOSSTRtree_iterate Add test for GEOSInterpolateNormalized Add tests for some CAPI error paths Add tests for more paths in GEOSCoordSeq functions GEOSLineSubstring: Fix input validation for reversed substring GEOSHasZ: Fix incorrect result for XYM geometry CAPI: Remove null checks from functions that do not return null Add buffer params tests Add GEOSWKBReader tests Add GEOSWKTWriter test Add tests for GEOSGeomToHEX_buf_r Add tests for CAPI error and notice handlers Add test for GEOSGeom_clone Add test for GEOSTopologyPreserveSimplify Remove bigtest (#785) Remove thread test (#787) Remove geostest (#786) Voronoi: Add option to reorder diagram to match order of input points (#781) TopologyPreservingSimplifier: Allow ring origin to be removed (#784) Avoid FE_INVALID on operations with empty Envelopes Add Envelope tests and fix incorrect implementation of Envelope::disjoint Add NEWS entries Remove some parts of old overlay engine (#788) Envelope: Add hasher struct Remove SimpleWKTTester (#793) Fix crash on on empty Voronoi diagram (#796) Fix CoordinateXYZM construction from CoordinateXYM RepeatedPointRemover: Preserve input coordinate sequence dimension WKTWriter: Output dimension flags for empty geometries (#792) GeometryFactory: Create Points from all Coordinate types Polygonizer: Fix duplicate results from getInvalidRingLines() (#801) Point: Make getCoordinate() return CoordinateXY IndexedPointInAreaLocator: Support all CoordinateSequence dimensions CoordinateFilter: Support multiple CoordinateSequence dimensions (#799) CoordinateSequence: Add type-detecting forEach for use with auto lambdas CI: Switch C++11 builds to C++14 Doc: Update doc references to C++11 Remove std::make_unique backport GeometryFactory: Construct MultiPoint with correct dims from CoordinateSequence Add GEOSEqualsIdentical C API function for checking pointwise equivalence (#810) OverlayNG: Interpolate M values (#802) NEWS update Area: Use 2D coordinate access LineString: Avoid 3D coordinate access in isClosed() Orientation::isCCW: Avoid coord copy and 3d access computeOrientationTest: Avoid 3D coord access Polygon::getCoordinates: Preserve coordinate dimension RayCrossingCounter: Avoid 3d coordinate access Length: Avoid 3d coordinate access LineString::getCoordinate: Avoid 3d coord access InteriorPointArea: Avoid 3d coord access Centroid: Avoid 3d coordinate access LineString: Preserve dimension in normalize() Point::isEmpty(): Avoid 3d coord access PointLocator: Avoid 3d coordinate access GEOSCoordSeq_getXY: Avoid 3d coordinate access MonotoneChain: Avoid 3d coordinate access GEOSGeom_transformXY: Avoid 3d coordinate access IsValidOp: Remove 3d coordinate access SegmentIntersectionDetector: Avoid 3d coordinate access DistanceOp: Avoid 3d coordinate access DisjointOperation: Fix compile error, add test GeometryFactory: Ensure empty geometries 2D by default (#819) BufferBuilder: Propagate input geom dimensionality WKTWriter: Disable removal of empty dimensions by default Polygon: Remove unnecessary duplication of shell envelope Add multithreaded test for Geometry::relate Geometry: Calculate envelope eagerly Fix MSVC build Fix crash on GC union with empty points (#831) GEOSSTRtree_iterate: Do not return removed items (#834) Add NEWS entry for GH-833 GEOSBuffer: Fix segfault with Inf coords (#836) IndexedFacetDistance: Avoid crash on Inf inputs Add test for GH-821 geosop: Add hausdorffDistance HausdorffDistance: Fix crash on collection with empty components DistanceOp: Fix crash on collection with empty component (#842) MaximumInscribedCircle: Fix infinite loop with non-finite coordinates (#843) C API: Add GEOSSTRtree_build (#835) Relax equality test in GEOSUnaryUnionTest Add DisjointSubsetUnion AbstractClusterFinder: Ensure that greatest complexity geometries are prepared CI: Use ccache for Linux, MacOS, and mingw64 builds (#845) C API: Add \since tags C API: Add more \since tags CMake: Remove test_cs target Add GEOSOrientPolygons (#818) CoordinateSequence: Fix logic error when adding another CoordSeq (#963) Even Rouault (1): Make NodeMap::nodeMap hold a std::unique_ptr<>, and other const related cppcheck fixes (#664) Eyal (1): fix: maxX (#715) Heiko Becker (1): Fix build with gcc 13 by including <cstdint> (#805) Joris Van den Bossche (3): DOC: add missing entry to NEWS (empty points change) (#658) DOC: update GEOSCoordSeq_create doc comment about dimension argument (#771) Avoid FE_INVALID floating point errors in HausdorffDistance and VoronoiDiagram (#806) Kai Pastor (2): Remove obsolete code for .inl (#738) Extend msvc (DLL) configuration to clang-cl and mingw (#739) Loïc Bartoletti (1): geosop: GeosOp.cpp: catch ParseException (#668) Martijn Visser (1): DOC: GEOSEquals place -> plane (#778) Martin Davis (107): Add NEWS items for 3.11 Fix geosop to output full FP precision Change geosop to output result unless quieted Add geosop aggregate functions flag Fix geosop agg function creation Define geosop agg ops Improve geosop help doc Remove inaccurate comment Improve CoverageValidator definition Fix CoverageValidator, add unit test and geosop op geosop - recategorize coverage ops Fix PreparedGeometry for EMPTY elements (#678) Standardize PreparedGeometryTouches test Add geosop ops maxDiameter and minDiameter Edit EOL policy Fix EOL policy wording Clarify EOL doc wording Add geosop op relateBNR Fix LineSegment.orientationIndex(LineSegment) (#699) Update NEWS Fix DepthSegment comparison op (#707) Update NEWS Fix typo in DepthSegment.compareTo Add OverlayNG support for simple GeometryCollection inputs (#716) Update NEWS.md Remove obsolete Azure CI badges Remove Azure CI list from website Fix TPSimplifier to be deterministic (#718) Update NEWS.md Improve ConvexHull radial sort robustness (#724) Update NEWS Clean up ConvexHull unit tests More robust Delaunay Triangulation frame size heuristic (#728) Update NEWS Fix NEWS Improve C-API doc for ConcaveHull Improve C API doc linking Try to fix doxygen deploy for for main branch Improve C API doc descriptions, function order Add GEOSConcaveHullByLength Add geosop concaveHullByLength Fix OffsetCurve to handle zero-distance offset (#852) Add Tri invalid index exceptions (#853) Add doc for GeoPHP binding Enhance LargestEmptyCircle boundary handling (#859) Update NEWS Update NEWS Update NEWS Improve geosop performance, refactor (#861) Fix doc WKT examples Fix doc WKT examples Refactor geosop op parameters Allow geosop ops to have 2 parameters Rename geosop vars Add geosop offset argument Add doc bindings entry Add geosop coverageSimplify Add unit test for GEOSCoverageSimplifyVW for inner Improve C API doc Improve GEOS C API header doc C APi doc improvments Minor C API doc improvements C API doc formatting Add note to try sorting in CoverageUnion Add geosop node operation Add gesoop operation unaryUnionSR Remove Orientation.isCCW exception (#878) Fix Coverage ops to handle empty and collapsed cases (#879) Fix doxygen link Fix and improve MIC and LEC (#883) Update NEWS Update NEWS Add web doc for CMake option Improve geosop OffsetCurve call Fix OffsetCurve EndCap parameter handling (#899) Update NEWS Improve C-API doc for GEOSPolygonize_valid Add geosOp polygonizeValid Update NEWS.md Fix PolygonNodeTopology unit tests Fix IncrementalDelaunayTriangulator to ensure triangulation boundary is convex (#953) Add const decls to IncrementalDelanayTriangulator Update NEWS Fix PreparedLineStringDistance for lines within envelope and polygons (#959) Update NEWS Remove debug prints Remove debugging output Improve scale handling for PrecisionModel (#956) Update NEWS Fix InteriorPointPoint to handle empty elements (#977) Update NEWS Fix TopologyPreservingSimplifier endpoint handling to avoid self-intersections (#986) Update NEWS Clean up simplifier unit test code Fix DiscreteHausdorffDistance for LinearRing (#1000) Update NEWS Fix IsSimpleOp for MultiPoint with empty element (#1005) Update NEWS Add geosop operation largestEmptyCircleBdy Fix PreparedPolygonContains for GC with MultiPoint (#1008) Update NEWS Add geosop minAreaRectangle op Fix buffer Inverted Ring Removal check (#1056) Update NEWS Add CoveragePolygonValidator section performance optimization (#1099) Update NEW change to using auto in Coverage classes Max Gabrielsson (1): Remove warning by changing sprintf to snprintf (#789) Mike Taves (26): Add/sort .mailmap Amend a few more .mailmap entries Add linear referencing functions "interpolate" and "project" to geosop (#858) geosop: add 'hasZ' and 'hasM' operations; change output to show Z/M (#862) Add Point::getM() to C++ API and GEOSGeomGetM to C API (#864) Change WKTWriter Old3D option to only add "M" for XYM (#871) geosop: set default nArgs = 0 to fix "wrong number of arguments for operation" CAPI: fix GEOSHasZ with empty geometries (#887) Fix reading MultiPoint Z/M WKT (#901) geosop: add option to output GeoJSON (#911) Improve util/geosop/README.md GeoJSONReader: Fix 2D empty geometry creation (#909) Change MultiPoint WKT to use parentheses in sub-members (#903) docs: add USE_CCACHE; a few corrections/improvements related to CMake Upgrade GH actions for container.yml GHA: provide unique Job ID names (for `act -l` and `act -j name`) Change WKBWriter default output dimension to 4 (#908) TST: swap "ensure_equals(y,x)" to correct "ensure_equals(x,y)" GEOSClipByRect: Fix case with POINT EMPTY, add more tests (#913) Change WKTWriter default output dimension to 4 and trim to 'on' (#915) CI: workaround for actions/runner-images#8659 CI: tune ubuntu/clang workaround Fix StringTokenizer::peekNextToken (#1025) Make line intersection computation more robust (#937) Regression test for mitre buffer that previously made an invalid geometry Test overlay op with mixed GeometryCollection Paul Ramsey (108): Bump main versions forj 3.12 dev UTC time zone on post draft false trying to find a date format hugo likes date format Port locationtech/jts#900 Add news entry for JTS-900 port Fix CI for older gcc versions Fix CI for older gcc versions clarify links in README Bump actions/checkout to v3 per GH deprecation warnings Add endian switch for hexwkb test Fix spelling error in getFrechetDistance, closes #725 Remove RETURN_UNIQUE_PTR and support for gcc-4.8, closes #589 (#726) Link to 3.11.1 download Bump current_release Update download links for 3.10 and 3.9 Fix link to NEWS url Quiet doxygen 1.9.5 errors Patch release news post Bump actions/checkout to v3 to quiet GHA warnings Bump to ubuntu 20 for all gcc versions that support it. Port of locationtech/jts#946, fixes Remove dead code and pass const references instead Port locationtech/jts#952 Update link to 3.6.6 EOL release Update documentation on snapper to remove old guidance on using snapping as a bandaid for overlay failures. Disallow Inf envelopes in Quadtree. Add test to ensure isValid tests for infinite coordinates Fix XML test Remove memory leak in case where argB contains invalid WKT Add an 'ASAN' build type to CMake build, which turns on the Woops, turn on the other CI targets Remove use of ubuntu-18.04 to prepare for deprecation. Add ASAN builds for MacOS Reorganize web layout a little Improve OffsetCurve behaviour and add Joined mode. Update cmake message to reflect new C++ std Include stdc++ in static linking, references GH-783 Add test <24> for GH-811 Add test for GH-662 Preserve collection-level of the input geometry on the output reduced geometry. Guard against non-finite distances in OffsetCurve and BufferOp. Port JTS locationtech/jts#965 Remove ASAN cflag options from the cache Fix syntax error in conditional build Only run container job on project repo Update DL links for 3.10.5 and 3.11.2 News item on 3.11.2 release Port Coverage Simplification locationtech/jts#911 Fix spelling mistake for "LessThan", inline some STL container support methods Remove unneeded aliases in CAPI link to other downstream projects Finish up marking since on CAPI, closes #854 CAPI: GEOSCoverageIsValid, GEOSCoverageSimplifyVW GH-867 Move CoverageUnion into the coverage section Add some CAPI tests for the Coverage functionality. Move to overlayng CoverageUnion, after testing a number of cases, seems mostly the better performing one. Revert "Move to overlayng CoverageUnion, after testing a number of cases, seems mostly the better performing one." Add an interrupt check to that in interactive use a user can cancel a long-running MaximumInscribedCircle operation, GH-875 Throw exception on non-initialization rather than quiet failure, GH-873 (#880) Add GEOSGeom_releaseCollection to CAPI (#882) Use the coverage/CoverageUnion for the CAPI GEOSCoverageUnion remove EOLed versions from download list Update current release number Update TocTree to use custom entry for news. Update theme files. higher res logo Add MinimumAreaRectangle, a bounding rectangle algorithm. Update NEWS for MinimumAreaRectangle * Port locationtech/jts#981 Add unit test for QGIS reported offset curve weirdness from @strk Add note on changed behaviour in CoverageUnion Prep 3.12.0beta1 Back to dev patchword GEOSDistanceCallback documentation gives wrong information about required return values Fix license to match GEOS project license Remove defunct doxygen entry Add STRTree example to web documentation Add another example program, showing spatial index and user data Add entry for new example Overlay with mixed dimension (#923) 3.12.0beta2 release back to dev version suffix Version number / news for release 3.12 remove web from 3.12 branch Remove undefined behaviour in use of null PrecisionModel, closes #931 Remove undefined behaviour in use of null PrecisionModel, closes #931 Explicitly set endianness for some tests so that output matches expected. Closes #934 News item for GH-934 Fix final WKB test, GH-934 Skip over testing empty distances for mixed collections. Closes #979 News entry for #979 Fix build on Illumus (GH-971) Port JTS-819, Add IntersectionLineSegment function, News entry for GH-995 Fix mis-named test function in GH-995 fix Add test for LINESTRING EMPTY, GH-993 Return 2D empty linestring on GEOSGeom_createLineString(NULL) (#998) News item for GH-998 PointOnSurface crashes with a collection containing a empty linestring GH-1002 News entry for GH-1002 Add a test to guard against LEC bug GH-1003 Fix TopologyPreservingSimplifier to prevent jumping components causing incorrect topology (#1012) Fix segfault when coverage simplify called with nonpolygons, references GH-1031 (#1039) News for GH-1039 Remove cmake version requirement as it gets checked in the parent file Add missing doxygen entries for rtree, references #1096 Prep for 3.12.2 release Peter Stace (1): Clarify coverage union behaviour with unmet constraints (#890) Regina Obe (30): Mark 3.5.2 as eol'd Fix typo in last commit First pass at an EOL policy First pass at an EOL / Version policy Fix typos Add the word generally so we are not committed to releasing in 1-2 years Put in estimated final and final dates, and link to rfc11 per - https://lists.osgeo.org/pipermail/geos-devel/2022-September/010784.html Reorder the PSC alphabetically. Current order was in no meaningful order Fix Martin's github link get rid of emojis, center columns, add Current in front of most current release Add a final release column, and a note that all future dates are subject to change Put final future dates in italics Correct PostGIS url Paul is now officially new chair, cause someone has to be chair per https://lists.osgeo.org/pipermail/geos-devel/2022-October/010796.html Fix unsigned conversion issue on arm. Closes libgeos/geos#698 Mark GEOS 3.6.5 as EOL Oops changes have been made since last release of 3.6.5. Push the final date out to future Unitalicize the geos 3.6 final release, since it's passed Add link to 3.11 doxygen docs Prevent web deploy from overwriting doxygen folder Revert GH-828 - group decided putting since in the docs is simpler Fix EOL policy link on download page Fix email on code of conduct page. That old email was phased out long ago Fix copy paste error Update berrie64 and winnie tool list Prepping for 3.12.1 release Add some missing note items. Revise release instructions Put back in dev mode Try to test i386 bookworm to uncover GH-947 issues Fix ci badges to point at 3.12 Sandro Mani (1): Fix multiple docstring issues (#647) Sandro Santilli (9): [gitlab-ci] skip make check, keep distcheck Encode latest port commit for BufferBuilder Encode latest port commit for BufferCurveSetBuilder Fix debug build of BufferBuilder.cpp Use xml prefix for xml tests (#893) Make MCIndexNoder::intersectChains interruptible Reduce interrupt checks in MCIndexNoder::intersectChains Only keep biggest polygon from single-sided buffer Fix single-sided buffer of multigeoms (#912) Sergei Trofimovich (1): Add missing <cstdint> includes for gcc-13 (#743) Timofey Samsonov (1): Doc: Change duplicated LinearRing to LineString (#768) Tom Payne (1): Replace scripting language bindings with link to all language bindings (#676) Ulysse Buonomo (1): Change `GEOSVoronoiDiagram` to return edges as MultiLineString (#702) jMichaelA (1): Added illumos macro for int8_t parse_value override. chars are signed in illumos implementation of stdint.h. (#971)
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Adds the ability to compute Alpha-shapes to the
ConcaveHull
class.Signed-off-by: Martin Davis mtnclimb@gmail.com