vibespatial.kernels.constructive.polygon_simple_intersection

Validated bounded simple-polygon intersection carrier.

This module is intentionally narrower than the full overlay graph. It handles aligned single-ring polygon pairs by collecting boundary/inside vertices, building one candidate ring, validating that every candidate edge stays inside both source polygons, and returning a device row-aligned polygon carrier plus a device support mask. Rows that fail the validation stay unsupported so callers can route them to the exact topology carrier without changing semantics.

Attributes

Functions

polygon_simple_intersection_workspace_bytes_per_row(→ int)

Return the fixed coordinate workspace reserved per aligned row.

polygon_simple_intersection(...)

Return row-aligned simple-polygon intersections and support mask.

Module Contents

vibespatial.kernels.constructive.polygon_simple_intersection.cp = None
vibespatial.kernels.constructive.polygon_simple_intersection.logger
vibespatial.kernels.constructive.polygon_simple_intersection.polygon_simple_intersection_workspace_bytes_per_row() int

Return the fixed coordinate workspace reserved per aligned row.

vibespatial.kernels.constructive.polygon_simple_intersection.polygon_simple_intersection(left: vibespatial.geometry.owned.OwnedGeometryArray, right: vibespatial.geometry.owned.OwnedGeometryArray, *, dispatch_mode: vibespatial.runtime.ExecutionMode | str = ExecutionMode.GPU) tuple[vibespatial.geometry.owned.OwnedGeometryArray, object] | None

Return row-aligned simple-polygon intersections and support mask.

Physical shape: aligned pairwise single-ring polygon rows with bounded vertex counts. Work units are source vertices, source segment pairs, candidate output vertices, and output bytes. The native output is a row-aligned OwnedGeometryArray plus a device boolean support mask; rows with unsupported topology are invalid in the result and False in the mask so callers can route exactly those rows to the full overlay graph.