Skip to content

History / dms polygon operators

Revisions

  • #1214 The dissolve derives one grid per call and reads coverage by the nonzero rule; the testcases that pin it dms_union_polygon and dms_split_union_polygon no longer fold their elements pairwise on a grid derived per tile: every element is cleaned alone and the rings are noded once on one lattice for the whole call, taken from the values unit's declared range when it has one and from the extent of all the elements otherwise, so the result does not depend on the order of the elements or on the tiling of the attribute. The family page gets that rule in the grid table and a paragraph under it, and lists the three testcases that ship with 20.20.0 for the dissolve and the crossing sweep; the dms_union_polygon page describes the dissolve as it now works, with the nonzero rule that lets an element wound the wrong way round add instead of cutting a hole. Engine commit f136489d7. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>

    @MaartenHilferink MaartenHilferink committed Sep 7, 2026
  • #1214 The rest of the dms_ family: six pages, and the statements they make stale dms_polygon, dms_union_polygon, dms_split_polygon, dms_split_union_polygon, dms_overlay_polygon and dms_polygon_connectivity get a page each, in the layout of their geos_ counterparts and leaning on the family page for the shared semantics. The two Minkowski operators are named on the shared minkowski_sum and minkowski_difference pages, where the other four backends already are. Three statements were true when they were written a day ago and are not any more, so they are corrected rather than left to age: the family page said the rest of the family did not exist yet, the operators page said it was to be developed, and Cleaning invalid polygons told the reader to unite an argument with itself because dms_polygon did not exist. That example now calls dms_polygon, and points at dms_union_polygon for cleaning a whole layer at once. The family page also gains the sections the family now has (cleaning, dissolving, splitting, overlay, growing) and says plainly that all six point types are supported throughout, which is wider than any of the libraries. Cross references both ways: the four xxx_overlay_polygon and four xxx_polygon_connectivity pages, Polygon_connectivity and box_connectivity now name their dms_ counterpart, and the pair-finding table on the operators page has a row for each of the two. Since GeoDMS 20.20.0, engine fd3dd0b8. The six pages are new, so they are built and indexed but do not appear in the menu of geodms.nl until nav/geodms.md in the converter lists them. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>

    @MaartenHilferink MaartenHilferink committed Sep 6, 2026
  • #1214 dms polygon operators: a family page, and the Cleaning invalid polygons example The four operator pages repeated the shared semantics four times over and had no worked example to point at. Two new pages take that over. dms polygon operators: what the prefix means, the even-odd rule as the meaning of a polygon that is not valid and the three consequences a modeller can use (ring orientation does not matter on input, a bow tie is two triangles, an unclosed ring is closed), the grid per argument form as the tolerance, what the result looks like, a table of which family to reach for, the trace line that reports the snapping, and the operators of the family that do not exist yet. Cleaning invalid polygons, under Configuration examples: cleaning a source with dms_union(A, A), using an invalid ring as an operand directly, closing a three unit gap between two neighbours with a grid of 10, and the hole that a difference cuts, each with its area and vertex count. Every number on the page is one that examples\testcases\oper_dms_overlay.dms checks, so the page cannot drift from the engine without that battery going red. Both pages name the eight regression configurations by file name. They ship with the setup in examples\testcases (nsi\DmsSetupScript.nsh:209), so a reader can run them against their own installation. The four operator pages, polygon operators, Geometric functions and Configuration examples link to the two new pages. Both pages are new, so they are built and indexed but do not appear in the menu of geodms.nl until nav/geodms.md in the converter lists them. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>

    @MaartenHilferink MaartenHilferink committed Sep 6, 2026