vibespatial.constructive.grouped_mixed_union

Device-native grouped union for mixed constructive remnants.

Physical shape contract (ADR-0046): relation-capacity constructive rows are reduced by source group. Polygon area remains a segmented grouped constructive reduction; linework is an atomic-edge dynamic-output assembly; point cleanup is a warp-per-point, source-segment reduction. Inputs and outputs stay owned/native until the public clip export boundary. Constructive coordinates remain fp64.

Classes

GroupedMixedUnionCapacity

Fixed source-row capacity plus a device logical-output mask.

Functions

sorted_part_capacity_plan(part_selection, output_rows, ...)

Sort selected part capacity by output row and derive group offsets.

pack_line_part_capacity_device(...)

Pack LineString part capacity into row-aligned lineal capacity.

pack_point_part_capacity_device(...)

Pack Point part capacity into row-aligned pointlike capacity.

polygon_pair_boundary_capacity_parts_device(left, right, *)

Return aligned line/point boundary intersections for polygon pairs.

atomic_line_union_from_part_capacity_device(...)

Node and deduplicate line-part capacity within logical output rows.

unique_points_from_part_capacity_device(...[, ...])

Deduplicate point-part capacity and suppress points covered by lines.

grouped_mixed_union_capacity_device(...)

Reduce mixed pair intersections to exact source-row native capacity.

Module Contents

class vibespatial.constructive.grouped_mixed_union.GroupedMixedUnionCapacity

Fixed source-row capacity plus a device logical-output mask.

geometry: object
keep_mask: vibespatial.cuda._runtime.DeviceArray
vibespatial.constructive.grouped_mixed_union.sorted_part_capacity_plan(part_selection, output_rows, output_row_count: int)

Sort selected part capacity by output row and derive group offsets.

vibespatial.constructive.grouped_mixed_union.pack_line_part_capacity_device(part_selection, output_rows, *, output_row_count: int) vibespatial.geometry.owned.OwnedGeometryArray | None

Pack LineString part capacity into row-aligned lineal capacity.

vibespatial.constructive.grouped_mixed_union.pack_point_part_capacity_device(part_selection, output_rows, *, output_row_count: int) vibespatial.geometry.owned.OwnedGeometryArray | None

Pack Point part capacity into row-aligned pointlike capacity.

vibespatial.constructive.grouped_mixed_union.polygon_pair_boundary_capacity_parts_device(left: vibespatial.geometry.owned.OwnedGeometryArray, right: vibespatial.geometry.owned.OwnedGeometryArray, *, pair_active=None)

Return aligned line/point boundary intersections for polygon pairs.

Physical shape: polygon boundary segments -> aligned line/polygon constructive capacity -> concrete native composition parts. The returned output-row vectors map each part row back to its original pair-capacity row.

vibespatial.constructive.grouped_mixed_union.atomic_line_union_from_part_capacity_device(part_selection, output_rows, *, output_row_count: int, preserve_source_orientation: bool = False) _GroupedAtomicLineCapacity | None

Node and deduplicate line-part capacity within logical output rows.

preserve_source_orientation keeps the traversal of the deterministic source representative for directional operations such as shared paths. Ordinary set union remains canonically oriented.

vibespatial.constructive.grouped_mixed_union.unique_points_from_part_capacity_device(part_selection, output_rows, *, output_row_count: int, covering_lines: _GroupedAtomicLineCapacity | None = None)

Deduplicate point-part capacity and suppress points covered by lines.

vibespatial.constructive.grouped_mixed_union.grouped_mixed_union_capacity_device(pair_intersections: vibespatial.geometry.owned.OwnedGeometryArray, group_rows, pair_active, polygon_capacity: vibespatial.geometry.owned.OwnedGeometryArray, polygon_keep, *, output_row_count: int, crs, pair_boundary_parts=()) GroupedMixedUnionCapacity

Reduce mixed pair intersections to exact source-row native capacity.