Removed as_decido() which wasn’t fully worked
out.
Fixed wkpool() which never worked before.
Added check_wkpool helper function.
arcs_to_wkt() / arcs_to_wkb() — arcs
become linestringscycles_to_wkt() / cycles_to_wkb() — cycles
become polygons, with hole nestingsegments_to_wkt() / segments_to_wkb() —
raw segments as linestrings, multilinestring, or pointsvertex_degree() counts segments touching each
vertexfind_nodes() identifies branch points and endpoints
(degree ≠ 2)find_arcs() extracts maximal segment sequences between
nodesas_arcs() returns wkpool with .arc column
for arc membershiparc_node_summary() reports arc/node structure
statisticsArcs are the “uninterrupted lines” — sequences of segments passing only through degree-2 vertices. Useful for line simplification, network extraction, and efficient storage.
Initial release. Vertex pool topology for wk-handleable geometry.
establish_topology() converts any wk-handleable
geometry to segments + vertex poolmerge_coincident() discovers shared vertices (exact or
tolerance-based)pool_vertices(), pool_segments(),
pool_feature() access the structurepool_combine() merges multiple pools with proper index
remappingpool_compact() removes unreferenced verticesfind_shared_edges() finds edges shared by multiple
featuresfind_internal_boundaries() finds edges traversed in
opposite directions (true shared boundaries)find_neighbours() builds adjacency from shared edges or
verticestopology_report() summarizes vertex/edge sharingfind_cycles() discovers closed rings from segment
connectivitycycle_signed_area() computes signed area (shoelace
formula)classify_cycles() identifies outer rings vs holes by
windingreverse_cycle() flips winding directionhole_points() extracts hole centroids for
triangulation"sf" (default) or
"ogc" winding rulesas_pslg() exports to RTriangle format (P, S
matrices)as_decido() exports to decido format (0-indexed)plot.wkpool() for quick visualization.vx integers for stable vertex identity.feature