feat(perception): qualify conservative static occupancy
This commit is contained in:
@@ -344,6 +344,28 @@ class RecordedGeometryStore:
|
||||
points.setflags(write=False)
|
||||
return points
|
||||
|
||||
def point_step_candidates_for_frame(self, frame_index: int) -> UInt8Array | None:
|
||||
"""Expose the sealed low-step diagnostic in the source point index space.
|
||||
|
||||
The array is evidence only: a non-zero value may add conservative
|
||||
occupied/unknown support, but it never clears a cell or claims free
|
||||
space. Unavailable and surface-invalid frames remain unavailable.
|
||||
"""
|
||||
|
||||
frame = self.frame_for_index(frame_index)
|
||||
if frame is None or not frame.surface_valid:
|
||||
return None
|
||||
offsets = self._source["cloud_offsets"]
|
||||
start, end = int(offsets[frame_index]), int(offsets[frame_index + 1])
|
||||
values = np.asarray(
|
||||
self._surface["point_step_candidate"][start:end],
|
||||
dtype=np.uint8,
|
||||
)
|
||||
if values.shape != (frame.source_point_count,):
|
||||
raise GeometryProviderError("local-surface step evidence changed")
|
||||
values.setflags(write=False)
|
||||
return values
|
||||
|
||||
@property
|
||||
def maximum_current_point_count(self) -> int:
|
||||
"""Return the immutable source-pack upper bound for one recorded increment."""
|
||||
|
||||
Reference in New Issue
Block a user