pub struct ReconNode { /* private fields */ }Expand description
A retained reconstruction node: session, pipeline, accepted-frame journal and lifecycle. Cheap to clone (shared); all clones address the same node.
Implementations§
Source§impl ReconNode
impl ReconNode
Sourcepub fn declare() -> NodeBuilder
pub fn declare() -> NodeBuilder
Starts a node declaration with the default plan (aerial-formation cameras, zones 12/2), dense off, no output files.
Source§impl ReconNode
impl ReconNode
Sourcepub fn compose(&self, state: FrameState) -> Result<Outcome, ComposeError>
pub fn compose(&self, state: FrameState) -> Result<Outcome, ComposeError>
Declares the current input state and reconciles it (see the module table).
Sourcepub fn compose_all(
&self,
states: impl IntoIterator<Item = FrameState>,
) -> Result<Vec<Outcome>, ComposeError>
pub fn compose_all( &self, states: impl IntoIterator<Item = FrameState>, ) -> Result<Vec<Outcome>, ComposeError>
Declares several states in order, stopping at the first error.
Sourcepub fn compose_batch(
&self,
states: impl IntoIterator<Item = FrameState>,
) -> Vec<Result<Outcome, ComposeError>>
pub fn compose_batch( &self, states: impl IntoIterator<Item = FrameState>, ) -> Vec<Result<Outcome, ComposeError>>
Declares several states in order, like ReconNode::compose_all, but appended sets are handed to the session together as
one backlog batch: their features are extracted in one go, all their pairs are matched in one call, and the batch is
registered and triangulated once (see crate::session::Input::Batch). The batch is split where the session closes a zone.
Late arrivals, corrections and End inside the list flush the batch first. Returns one result per state (a session
failure shows up on the last appended state of the batch); unlike compose_all it does not stop at the first error.
Sourcepub fn poll(&self) -> usize
pub fn poll(&self) -> usize
Collects finished background (refinement) events without new input.
Sourcepub fn subscribe(&self) -> Option<Receiver<Event>>
pub fn subscribe(&self) -> Option<Receiver<Event>>
Channel receiving every event of this node (see Pipeline::subscribe). None after close.
Sourcepub fn stats(&self) -> ComposeStats
pub fn stats(&self) -> ComposeStats
Reconciliation counters so far.
Sourcepub fn waiting(&self) -> Vec<(u64, Vec<String>)>
pub fn waiting(&self) -> Vec<(u64, Vec<String>)>
Sets currently waiting for cameras: (sequence, missing cameras).
Sourcepub fn with_session<T>(&self, f: impl FnOnce(&Session) -> T) -> Option<T>
pub fn with_session<T>(&self, f: impl FnOnce(&Session) -> T) -> Option<T>
Read access to the session (e.g. arrived zones, models).
Sourcepub fn close(&self) -> Result<Closed, ComposeError>
pub fn close(&self) -> Result<Closed, ComposeError>
Closes the node: closes open zones, waits for background refinement and emits the final events.
The node stays listed on its host; CompositionHost::close also removes it.
Sourcepub fn spawn(&self) -> ComposeHandle
pub fn spawn(&self) -> ComposeHandle
Moves the node onto its own thread behind a queue with the builder’s Backpressure policy.
The node stays registered on its host; composing on it directly while spawned is serialized with the worker.
Trait Implementations§
Auto Trait Implementations§
impl !RefUnwindSafe for ReconNode
impl !UnwindSafe for ReconNode
impl Freeze for ReconNode
impl Send for ReconNode
impl Sync for ReconNode
impl Unpin for ReconNode
impl UnsafeUnpin for ReconNode
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> DistributionExt for Twhere
T: ?Sized,
impl<T> DistributionExt for Twhere
T: ?Sized,
impl<T, U> Imply<T> for U
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> Pointable for T
impl<T> Pointable for T
impl<T> Read<Exclusive, BecauseExclusive> for Twhere
T: ?Sized,
Source§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
Source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
self from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
self is actually part of its subset T (and can be converted to it).Source§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
self.to_subset but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
self to the equivalent element of its superset.