feat(lab): add recorded realtime spatial playback
This commit is contained in:
@@ -257,6 +257,25 @@ class RecordedGeometryStore:
|
||||
points.setflags(write=False)
|
||||
return points
|
||||
|
||||
def current_points_for_frame(self, frame_index: int) -> FloatArray | None:
|
||||
"""Expose one verified increment to a read-only recorded-evidence projector."""
|
||||
|
||||
if not isinstance(frame_index, int) or isinstance(frame_index, bool):
|
||||
raise GeometryProviderError("replay evidence frame index is invalid")
|
||||
if not 0 <= frame_index < self.profile.frame_count:
|
||||
raise GeometryProviderError("replay evidence frame is outside the source profile")
|
||||
if int(self._source["frame_indices"][frame_index]) != frame_index:
|
||||
raise GeometryProviderError("source pack frame sequence changed")
|
||||
if not bool(self._source["sample_available"][frame_index]) or not bool(
|
||||
self._surface["frame_valid"][frame_index]
|
||||
):
|
||||
return None
|
||||
offsets = self._source["cloud_offsets"]
|
||||
start, end = int(offsets[frame_index]), int(offsets[frame_index + 1])
|
||||
points = np.asarray(self._source["cloud_points_map"][start:end], dtype=np.float64)
|
||||
points.setflags(write=False)
|
||||
return points
|
||||
|
||||
def pose_values_for_frame(
|
||||
self,
|
||||
frame_id: str,
|
||||
|
||||
Reference in New Issue
Block a user