vibespatial.kernels.constructive.polygon_intersection

GPU-native element-wise polygon intersection kernel.

Computes element-wise intersection of two equal-length OwnedGeometryArrays containing polygons, returning a device-resident OwnedGeometryArray without any D->H transfer in the hot path.

Algorithm: Sutherland-Hodgman polygon clipping on GPU. - For each pair (left[i], right[i]), clips left’s exterior ring by each

edge of right’s exterior ring.

  • Two-pass count-scatter pattern: pass 1 counts output vertices per pair, prefix sum computes offsets, pass 2 scatters clipped vertices.

  • Degenerate results (empty, point, line) produce empty polygons with validity=False.

ADR-0033: Tier 1 (custom NVRTC kernel) – geometry-specific inner loop

with ring traversal and edge-by-edge clipping.

ADR-0002: CONSTRUCTIVE class – stays fp64 on all devices per policy.

PrecisionPlan wired through for observability only.

ADR-0034: NVRTC precompilation via request_nvrtc_warmup at module scope.

Attributes

Functions

polygon_intersection(...)

Element-wise polygon intersection of two OwnedGeometryArrays.

Module Contents

vibespatial.kernels.constructive.polygon_intersection.logger
vibespatial.kernels.constructive.polygon_intersection.polygon_intersection(left: vibespatial.geometry.owned.OwnedGeometryArray, right: vibespatial.geometry.owned.OwnedGeometryArray, *, dispatch_mode: vibespatial.runtime.ExecutionMode | str = ExecutionMode.AUTO, precision: vibespatial.runtime.precision.PrecisionMode | str = PrecisionMode.AUTO) vibespatial.geometry.owned.OwnedGeometryArray

Element-wise polygon intersection of two OwnedGeometryArrays.

Parameters

left, rightOwnedGeometryArray

Input polygon arrays of equal length.

dispatch_modeExecutionMode or str, default AUTO

Execution mode hint (GPU/CPU/AUTO).

precisionPrecisionMode or str, default AUTO

Precision mode. CONSTRUCTIVE kernels stay fp64 per ADR-0002.

Returns

OwnedGeometryArray

Device-resident result when GPU path is taken; host-resident when CPU fallback is used.