Struct embedded_graphics::primitives::Styled
source · pub struct Styled<T, S> {
pub primitive: T,
pub style: S,
}
Expand description
Styled.
Fields§
§primitive: T
Primitive.
style: S
Style.
Implementations§
source§impl<T: OffsetOutline, C: PixelColor> Styled<T, PrimitiveStyle<C>>
impl<T: OffsetOutline, C: PixelColor> Styled<T, PrimitiveStyle<C>>
sourcepub fn fill_area(&self) -> T
pub fn fill_area(&self) -> T
Returns the fill area.
The returned primitive coincides with the area that would be filled by calling draw
on this styled primitive.
Examples
use embedded_graphics::{
pixelcolor::Rgb888,
prelude::*,
primitives::{Circle, PrimitiveStyleBuilder},
};
let style = PrimitiveStyleBuilder::new()
.fill_color(Rgb888::RED)
.stroke_color(Rgb888::GREEN)
.stroke_width(6)
.build();
let center = Point::new(10, 20);
let diameter = 10;
let circle = Circle::with_center(center, diameter).into_styled(style);
assert_eq!(circle.fill_area(), Circle::with_center(center, diameter - style.stroke_width));
sourcepub fn stroke_area(&self) -> T
pub fn stroke_area(&self) -> T
Returns the stroke area.
The outer edge of the returned primitive coincides with the outer edge of the stroke that
would be drawn by calling draw
on this styled primitive.
Examples
This example tests if a point lies on the stroke. Because the stoke area surrounds the stoke and fill an additional test is required to check that the point is not inside the fill area.
use embedded_graphics::{
pixelcolor::Rgb888,
prelude::*,
primitives::{Circle, PrimitiveStyle},
};
let style = PrimitiveStyle::with_stroke(Rgb888::RED, 6);
let center = Point::new(10, 20);
let diameter = 10;
let circle = Circle::with_center(center, diameter).into_styled(style);
// A point lies on the stroke if it is inside the stroke area but not in the fill area.
let is_on_stroke = |p| circle.stroke_area().contains(p) && !circle.fill_area().contains(p);
assert!(is_on_stroke(center + Size::new(0, diameter / 2)));
assert!(!is_on_stroke(center));
Trait Implementations§
source§impl<T: StyledDimensions<S>, S> Dimensions for Styled<T, S>
impl<T: StyledDimensions<S>, S> Dimensions for Styled<T, S>
source§fn bounding_box(&self) -> Rectangle
fn bounding_box(&self) -> Rectangle
Returns the bounding box.
source§impl<T: StyledDrawable<S>, S> Drawable for Styled<T, S>
impl<T: StyledDrawable<S>, S> Drawable for Styled<T, S>
§type Color = <T as StyledDrawable<S>>::Color
type Color = <T as StyledDrawable<S>>::Color
The pixel color type.
§type Output = <T as StyledDrawable<S>>::Output
type Output = <T as StyledDrawable<S>>::Output
The return type of the
draw
method. Read moresource§impl<T: Ord, S: Ord> Ord for Styled<T, S>
impl<T: Ord, S: Ord> Ord for Styled<T, S>
1.21.0 · source§fn max(self, other: Self) -> Selfwhere
Self: Sized,
fn max(self, other: Self) -> Selfwhere Self: Sized,
Compares and returns the maximum of two values. Read more
source§impl<T: PartialEq, S: PartialEq> PartialEq<Styled<T, S>> for Styled<T, S>
impl<T: PartialEq, S: PartialEq> PartialEq<Styled<T, S>> for Styled<T, S>
source§impl<T: PartialOrd, S: PartialOrd> PartialOrd<Styled<T, S>> for Styled<T, S>
impl<T: PartialOrd, S: PartialOrd> PartialOrd<Styled<T, S>> for Styled<T, S>
1.0.0 · source§fn le(&self, other: &Rhs) -> bool
fn le(&self, other: &Rhs) -> bool
This method tests less than or equal to (for
self
and other
) and is used by the <=
operator. Read moreimpl<T: Copy, S: Copy> Copy for Styled<T, S>
impl<T: Eq, S: Eq> Eq for Styled<T, S>
impl<T, S> StructuralEq for Styled<T, S>
impl<T, S> StructuralPartialEq for Styled<T, S>
Auto Trait Implementations§
impl<T, S> RefUnwindSafe for Styled<T, S>where S: RefUnwindSafe, T: RefUnwindSafe,
impl<T, S> Send for Styled<T, S>where S: Send, T: Send,
impl<T, S> Sync for Styled<T, S>where S: Sync, T: Sync,
impl<T, S> Unpin for Styled<T, S>where S: Unpin, T: Unpin,
impl<T, S> UnwindSafe for Styled<T, S>where S: UnwindSafe, T: UnwindSafe,
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
source§impl<T> CheckedAs for T
impl<T> CheckedAs for T
source§fn checked_as<Dst>(self) -> Option<Dst>where
T: CheckedCast<Dst>,
fn checked_as<Dst>(self) -> Option<Dst>where T: CheckedCast<Dst>,
Casts the value.
source§impl<Src, Dst> CheckedCastFrom<Src> for Dstwhere
Src: CheckedCast<Dst>,
impl<Src, Dst> CheckedCastFrom<Src> for Dstwhere Src: CheckedCast<Dst>,
source§fn checked_cast_from(src: Src) -> Option<Dst>
fn checked_cast_from(src: Src) -> Option<Dst>
Casts the value.
source§impl<Src, Dst> LosslessTryInto<Dst> for Srcwhere
Dst: LosslessTryFrom<Src>,
impl<Src, Dst> LosslessTryInto<Dst> for Srcwhere Dst: LosslessTryFrom<Src>,
source§fn lossless_try_into(self) -> Option<Dst>
fn lossless_try_into(self) -> Option<Dst>
Performs the conversion.
source§impl<Src, Dst> LossyInto<Dst> for Srcwhere
Dst: LossyFrom<Src>,
impl<Src, Dst> LossyInto<Dst> for Srcwhere Dst: LossyFrom<Src>,
source§fn lossy_into(self) -> Dst
fn lossy_into(self) -> Dst
Performs the conversion.
source§impl<T> OverflowingAs for T
impl<T> OverflowingAs for T
source§fn overflowing_as<Dst>(self) -> (Dst, bool)where
T: OverflowingCast<Dst>,
fn overflowing_as<Dst>(self) -> (Dst, bool)where T: OverflowingCast<Dst>,
Casts the value.
source§impl<Src, Dst> OverflowingCastFrom<Src> for Dstwhere
Src: OverflowingCast<Dst>,
impl<Src, Dst> OverflowingCastFrom<Src> for Dstwhere Src: OverflowingCast<Dst>,
source§fn overflowing_cast_from(src: Src) -> (Dst, bool)
fn overflowing_cast_from(src: Src) -> (Dst, bool)
Casts the value.
source§impl<T> SaturatingAs for T
impl<T> SaturatingAs for T
source§fn saturating_as<Dst>(self) -> Dstwhere
T: SaturatingCast<Dst>,
fn saturating_as<Dst>(self) -> Dstwhere T: SaturatingCast<Dst>,
Casts the value.
source§impl<Src, Dst> SaturatingCastFrom<Src> for Dstwhere
Src: SaturatingCast<Dst>,
impl<Src, Dst> SaturatingCastFrom<Src> for Dstwhere Src: SaturatingCast<Dst>,
source§fn saturating_cast_from(src: Src) -> Dst
fn saturating_cast_from(src: Src) -> Dst
Casts the value.
§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere SS: SubsetOf<SP>,
§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
The inverse inclusion map: attempts to construct
self
from the equivalent element of its
superset. Read more§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
Checks if
self
is actually part of its subset T
(and can be converted to it).§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
Use with care! Same as
self.to_subset
but without any property checks. Always succeeds.§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
The inclusion map: converts
self
to the equivalent element of its superset.source§impl<T> UnwrappedAs for T
impl<T> UnwrappedAs for T
source§fn unwrapped_as<Dst>(self) -> Dstwhere
T: UnwrappedCast<Dst>,
fn unwrapped_as<Dst>(self) -> Dstwhere T: UnwrappedCast<Dst>,
Casts the value.
source§impl<Src, Dst> UnwrappedCastFrom<Src> for Dstwhere
Src: UnwrappedCast<Dst>,
impl<Src, Dst> UnwrappedCastFrom<Src> for Dstwhere Src: UnwrappedCast<Dst>,
source§fn unwrapped_cast_from(src: Src) -> Dst
fn unwrapped_cast_from(src: Src) -> Dst
Casts the value.
source§impl<T> WrappingAs for T
impl<T> WrappingAs for T
source§fn wrapping_as<Dst>(self) -> Dstwhere
T: WrappingCast<Dst>,
fn wrapping_as<Dst>(self) -> Dstwhere T: WrappingCast<Dst>,
Casts the value.
source§impl<Src, Dst> WrappingCastFrom<Src> for Dstwhere
Src: WrappingCast<Dst>,
impl<Src, Dst> WrappingCastFrom<Src> for Dstwhere Src: WrappingCast<Dst>,
source§fn wrapping_cast_from(src: Src) -> Dst
fn wrapping_cast_from(src: Src) -> Dst
Casts the value.