CoordinateTransform

Struct CoordinateTransform 

Source
pub struct CoordinateTransform<D, const MIRROR_X: bool, const MIRROR_Y: bool, const TRANSPOSE: bool> { /* private fields */ }
Expand description

A generic coordinate transform that can both mirror along the x and y axes and transpose.

This is a generic implementation of the coordinate transforms for embedded-graphics draw targets. These coordinate transforms can mirror along the x-axis, mirror along the y-axis, and transpose the x and y axes. These operations are always applied in this specific order when enabled.

This coordinate transform can wrap any implementation of DrawTarget. Therefore, it solely relies on remapping pixel coordinates as they are supplied to draw calls and passing them on to the wrapped DrawTarget. This means that it cannot use any optimized screen rotation capabilities that might be available in your display implementation. Optimized implementations of fill_solid and clear are provided, however fill_contiguous will fall back on the draw_iter implementation.

Implementations§

Source§

impl<D, const MIRROR_X: bool, const MIRROR_Y: bool, const TRANSPOSE: bool> CoordinateTransform<D, MIRROR_X, MIRROR_Y, TRANSPOSE>

Source

pub fn new( draw_target: D, ) -> CoordinateTransform<D, MIRROR_X, MIRROR_Y, TRANSPOSE>

Create a new CoordinateTransform which wraps a supplied DrawTarget.

Source

pub fn into_inner(self) -> D

Unwraps this CoordinateTransform, returning the underlying DrawTarget.

Trait Implementations§

Source§

impl<T, D, const MIRROR_X: bool, const MIRROR_Y: bool, const TRANSPOSE: bool> AsMut<T> for CoordinateTransform<D, MIRROR_X, MIRROR_Y, TRANSPOSE>
where T: ?Sized, <CoordinateTransform<D, MIRROR_X, MIRROR_Y, TRANSPOSE> as Deref>::Target: AsMut<T>,

Source§

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

Converts this type into a mutable reference of the (usually inferred) input type.
Source§

impl<T, D, const MIRROR_X: bool, const MIRROR_Y: bool, const TRANSPOSE: bool> AsRef<T> for CoordinateTransform<D, MIRROR_X, MIRROR_Y, TRANSPOSE>
where T: ?Sized, <CoordinateTransform<D, MIRROR_X, MIRROR_Y, TRANSPOSE> as Deref>::Target: AsRef<T>,

Source§

fn as_ref(&self) -> &T

Converts this type into a shared reference of the (usually inferred) input type.
Source§

impl<D, const MIRROR_X: bool, const MIRROR_Y: bool, const TRANSPOSE: bool> Deref for CoordinateTransform<D, MIRROR_X, MIRROR_Y, TRANSPOSE>

Source§

type Target = D

The resulting type after dereferencing.
Source§

fn deref(&self) -> &Self::Target

Dereferences the value.
Source§

impl<D, const MIRROR_X: bool, const MIRROR_Y: bool, const TRANSPOSE: bool> DerefMut for CoordinateTransform<D, MIRROR_X, MIRROR_Y, TRANSPOSE>

Source§

fn deref_mut(&mut self) -> &mut Self::Target

Mutably dereferences the value.
Source§

impl<D, const MIRROR_X: bool, const MIRROR_Y: bool, const TRANSPOSE: bool> DrawTarget for CoordinateTransform<D, MIRROR_X, MIRROR_Y, TRANSPOSE>

Source§

type Color = <D as DrawTarget>::Color

The pixel color type the targetted display supports.
Source§

type Error = <D as DrawTarget>::Error

Error type to return when a drawing operation fails. Read more
Source§

fn draw_iter<I>(&mut self, pixels: I) -> Result<(), Self::Error>
where I: IntoIterator<Item = Pixel<Self::Color>>,

Draw individual pixels to the display without a defined order. Read more
Source§

fn fill_solid( &mut self, area: &Rectangle, color: Self::Color, ) -> Result<(), Self::Error>

Fill a given area with a solid color. Read more
Source§

fn clear(&mut self, color: Self::Color) -> Result<(), Self::Error>

Fill the entire display with a solid color. Read more
Source§

fn fill_contiguous<I>( &mut self, area: &Rectangle, colors: I, ) -> Result<(), Self::Error>
where I: IntoIterator<Item = Self::Color>,

Fill a given area with an iterator providing a contiguous stream of pixel colors. Read more
Source§

impl<D, const MIRROR_X: bool, const MIRROR_Y: bool, const TRANSPOSE: bool> OriginDimensions for CoordinateTransform<D, MIRROR_X, MIRROR_Y, TRANSPOSE>

Source§

fn size(&self) -> Size

Returns the size of the bounding box.

Auto Trait Implementations§

§

impl<D, const MIRROR_X: bool, const MIRROR_Y: bool, const TRANSPOSE: bool> Freeze for CoordinateTransform<D, MIRROR_X, MIRROR_Y, TRANSPOSE>
where D: Freeze,

§

impl<D, const MIRROR_X: bool, const MIRROR_Y: bool, const TRANSPOSE: bool> RefUnwindSafe for CoordinateTransform<D, MIRROR_X, MIRROR_Y, TRANSPOSE>
where D: RefUnwindSafe,

§

impl<D, const MIRROR_X: bool, const MIRROR_Y: bool, const TRANSPOSE: bool> Send for CoordinateTransform<D, MIRROR_X, MIRROR_Y, TRANSPOSE>
where D: Send,

§

impl<D, const MIRROR_X: bool, const MIRROR_Y: bool, const TRANSPOSE: bool> Sync for CoordinateTransform<D, MIRROR_X, MIRROR_Y, TRANSPOSE>
where D: Sync,

§

impl<D, const MIRROR_X: bool, const MIRROR_Y: bool, const TRANSPOSE: bool> Unpin for CoordinateTransform<D, MIRROR_X, MIRROR_Y, TRANSPOSE>
where D: Unpin,

§

impl<D, const MIRROR_X: bool, const MIRROR_Y: bool, const TRANSPOSE: bool> UnwindSafe for CoordinateTransform<D, MIRROR_X, MIRROR_Y, TRANSPOSE>
where D: UnwindSafe,

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> Az for T

Source§

fn az<Dst>(self) -> Dst
where T: Cast<Dst>,

Casts the value.
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<Src, Dst> CastFrom<Src> for Dst
where Src: Cast<Dst>,

Source§

fn cast_from(src: Src) -> Dst

Casts the value.
Source§

impl<T> CheckedAs for T

Source§

fn checked_as<Dst>(self) -> Option<Dst>
where T: CheckedCast<Dst>,

Casts the value.
Source§

impl<Src, Dst> CheckedCastFrom<Src> for Dst
where Src: CheckedCast<Dst>,

Source§

fn checked_cast_from(src: Src) -> Option<Dst>

Casts the value.
Source§

impl<T> Dimensions for T

Source§

fn bounding_box(&self) -> Rectangle

Returns the bounding box.
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> OverflowingAs for T

Source§

fn overflowing_as<Dst>(self) -> (Dst, bool)
where T: OverflowingCast<Dst>,

Casts the value.
Source§

impl<Src, Dst> OverflowingCastFrom<Src> for Dst
where Src: OverflowingCast<Dst>,

Source§

fn overflowing_cast_from(src: Src) -> (Dst, bool)

Casts the value.
Source§

impl<P, T> Receiver for P
where P: Deref<Target = T> + ?Sized, T: ?Sized,

Source§

type Target = T

🔬This is a nightly-only experimental API. (arbitrary_self_types)
The target type on which the method may be called.
Source§

impl<T> SaturatingAs for T

Source§

fn saturating_as<Dst>(self) -> Dst
where T: SaturatingCast<Dst>,

Casts the value.
Source§

impl<Src, Dst> SaturatingCastFrom<Src> for Dst
where Src: SaturatingCast<Dst>,

Source§

fn saturating_cast_from(src: Src) -> Dst

Casts the value.
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.
Source§

impl<T> UnwrappedAs for T

Source§

fn unwrapped_as<Dst>(self) -> Dst
where T: UnwrappedCast<Dst>,

Casts the value.
Source§

impl<Src, Dst> UnwrappedCastFrom<Src> for Dst
where Src: UnwrappedCast<Dst>,

Source§

fn unwrapped_cast_from(src: Src) -> Dst

Casts the value.
Source§

impl<T> WrappingAs for T

Source§

fn wrapping_as<Dst>(self) -> Dst
where T: WrappingCast<Dst>,

Casts the value.
Source§

impl<Src, Dst> WrappingCastFrom<Src> for Dst
where Src: WrappingCast<Dst>,

Source§

fn wrapping_cast_from(src: Src) -> Dst

Casts the value.