pub struct PolygonZoneMonitor<'a, const N: usize> { /* private fields */ }Expand description
Tracks polygon membership transitions for at most N tracks.
Implementations§
Source§impl<'a, const N: usize> PolygonZoneMonitor<'a, N>
impl<'a, const N: usize> PolygonZoneMonitor<'a, N>
Sourcepub const fn new(zone_id: ZoneId, polygon: Polygon<'a>) -> Self
pub const fn new(zone_id: ZoneId, polygon: Polygon<'a>) -> Self
Creates a monitor for polygon using caller-selected fixed track capacity.
Sourcepub fn update(
&mut self,
track_id: TrackId,
point: Point,
output: &mut [VisionEvent],
) -> Result<usize, CoreError>
pub fn update( &mut self, track_id: TrackId, point: Point, output: &mut [VisionEvent], ) -> Result<usize, CoreError>
Records a point sample and writes its membership event to output[0] when needed.
§Errors
Returns CoreError::InsufficientCapacity when no track slot or required
event-output slot is available. On error, the monitor state is unchanged.
Sourcepub fn forget_track(&mut self, track_id: TrackId) -> bool
pub fn forget_track(&mut self, track_id: TrackId) -> bool
Removes a track’s stored membership state without emitting an event.
Auto Trait Implementations§
impl<'a, const N: usize> Freeze for PolygonZoneMonitor<'a, N>
impl<'a, const N: usize> RefUnwindSafe for PolygonZoneMonitor<'a, N>
impl<'a, const N: usize> Send for PolygonZoneMonitor<'a, N>
impl<'a, const N: usize> Sync for PolygonZoneMonitor<'a, N>
impl<'a, const N: usize> Unpin for PolygonZoneMonitor<'a, N>
impl<'a, const N: usize> UnsafeUnpin for PolygonZoneMonitor<'a, N>
impl<'a, const N: usize> UnwindSafe for PolygonZoneMonitor<'a, N>
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more