Skip to main content

DynamicImageOverlayLayer

Struct DynamicImageOverlayLayer 

Source
pub struct DynamicImageOverlayLayer { /* private fields */ }
Expand description

A georeferenced overlay with dynamic frame content.

This is the Rustial equivalent of MapLibre / Mapbox video and canvas source types. A FrameProvider supplies RGBA8 frames which are rendered as a textured quad at the specified geographic coordinates.

The layer caches the most recent frame and tracks a generation counter for change detection. Renderers see this layer through the same ImageOverlayData path as ImageOverlayLayer, so no renderer changes are required.

Implementations§

Source§

impl DynamicImageOverlayLayer

Source

pub fn new( name: impl Into<String>, coordinates: [GeoCoord; 4], provider: Box<dyn FrameProvider>, ) -> Self

Create a new dynamic image overlay layer.

coordinates must be in TL → TR → BR → BL order.

Source

pub fn coordinates(&self) -> &[GeoCoord; 4]

Geographic corners (TL, TR, BR, BL).

Source

pub fn set_coordinates(&mut self, coordinates: [GeoCoord; 4])

Update the geographic corners.

Source

pub fn generation(&self) -> u64

Monotonic generation counter, bumped on coordinate or frame changes.

Source

pub fn dimensions(&self) -> (u32, u32)

Cached frame dimensions (width, height).

Source

pub fn has_frame(&self) -> bool

Whether at least one frame has been received.

Source

pub fn poll_frame(&mut self) -> bool

Poll the frame provider for new data.

Returns true if a new frame was received and the cached data was updated.

Source

pub fn to_overlay_data( &self, projection: CameraProjection, ) -> Option<ImageOverlayData>

Produce renderer-ready overlay data by projecting geographic corners into the active world-space coordinate system.

Returns None if no frame has been received yet.

Source

pub fn provider(&self) -> &dyn FrameProvider

Access the underlying frame provider.

Source

pub fn provider_mut(&mut self) -> &mut dyn FrameProvider

Access the underlying frame provider mutably.

Trait Implementations§

Source§

impl Debug for DynamicImageOverlayLayer

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Layer for DynamicImageOverlayLayer

Source§

fn id(&self) -> LayerId

A process-unique identifier for this layer. Read more
Source§

fn name(&self) -> &str

Human-readable name for UI and debug output. Read more
Source§

fn kind(&self) -> LayerKind

The concrete layer type for enum-based dispatch. Read more
Source§

fn visible(&self) -> bool

Whether this layer participates in the current frame. Read more
Source§

fn set_visible(&mut self, visible: bool)

Toggle visibility on or off.
Source§

fn opacity(&self) -> f32

Layer opacity in the range [0.0, 1.0]. Read more
Source§

fn set_opacity(&mut self, opacity: f32)

Set the layer opacity. Read more
Source§

fn as_any(&self) -> &dyn Any

Borrow the layer as &dyn Any for concrete type access. Read more
Source§

fn as_any_mut(&mut self) -> &mut dyn Any

Borrow the layer as &mut dyn Any for mutable concrete type access.
Source§

fn z_index(&self) -> i32

Hint for render ordering within the layer stack. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.