pub enum Gradient {
Linear(Arc<LinearGradient>),
Radial(Arc<RadialGradient>),
Conic(Arc<ConicGradient>),
}Expand description
A color gradient.
Variants§
Implementations§
Source§impl Gradient
impl Gradient
Sourcepub fn linear(
args: &mut Args,
span: Span,
stops: Vec<Spanned<GradientStop>>,
space: Spanned<Smart<ColorSpace>>,
relative: Smart<RelativeTo>,
) -> SourceResult<Gradient>
pub fn linear( args: &mut Args, span: Span, stops: Vec<Spanned<GradientStop>>, space: Spanned<Smart<ColorSpace>>, relative: Smart<RelativeTo>, ) -> SourceResult<Gradient>
Creates a new linear gradient, in which colors transition along a straight line.
Sourcepub fn conic(
span: Span,
stops: Vec<Spanned<GradientStop>>,
angle: Angle,
space: Spanned<Smart<ColorSpace>>,
relative: Smart<RelativeTo>,
center: Axes<Ratio>,
) -> SourceResult<Gradient>
pub fn conic( span: Span, stops: Vec<Spanned<GradientStop>>, angle: Angle, space: Spanned<Smart<ColorSpace>>, relative: Smart<RelativeTo>, center: Axes<Ratio>, ) -> SourceResult<Gradient>
Creates a new conic gradient, in which colors change radially around a center point.
Sourcepub fn sharp(
&self,
steps: Spanned<usize>,
smoothness: Spanned<Ratio>,
) -> SourceResult<Gradient>
pub fn sharp( &self, steps: Spanned<usize>, smoothness: Spanned<Ratio>, ) -> SourceResult<Gradient>
Creates a sharp version of this gradient.
Sourcepub fn repeat(
&self,
repetitions: Spanned<usize>,
mirror: bool,
) -> SourceResult<Gradient>
pub fn repeat( &self, repetitions: Spanned<usize>, mirror: bool, ) -> SourceResult<Gradient>
Repeats this gradient a given number of times, optionally mirroring it at every second repetition.
Sourcepub fn stops(&self) -> Vec<GradientStop>
pub fn stops(&self) -> Vec<GradientStop>
Returns the stops of this gradient.
Sourcepub fn space(&self) -> ColorSpace
pub fn space(&self) -> ColorSpace
Returns the mixing space of this gradient.
Sourcepub fn relative(&self) -> Smart<RelativeTo>
pub fn relative(&self) -> Smart<RelativeTo>
Returns the relative placement of this gradient.
Sourcepub fn focal_center(&self) -> Option<Axes<Ratio>>
pub fn focal_center(&self) -> Option<Axes<Ratio>>
Returns the focal-center of this gradient.
Sourcepub fn focal_radius(&self) -> Option<Ratio>
pub fn focal_radius(&self) -> Option<Ratio>
Returns the focal-radius of this gradient.
Sourcepub fn sample(&self, t: RatioOrAngle) -> Color
pub fn sample(&self, t: RatioOrAngle) -> Color
Sample the gradient at a given position.
Sourcepub fn samples(&self, ts: Vec<RatioOrAngle>) -> Array
pub fn samples(&self, ts: Vec<RatioOrAngle>) -> Array
Samples the gradient at multiple positions at once and returns the results as an array.
Source§impl Gradient
impl Gradient
Sourcepub fn with_relative(self, relative: RelativeTo) -> Self
pub fn with_relative(self, relative: RelativeTo) -> Self
Clones this gradient, but with a different relative placement.
Sourcepub fn stops_ref(&self) -> &[(Color, Ratio)]
pub fn stops_ref(&self) -> &[(Color, Ratio)]
Returns a reference to the stops of this gradient.
Sourcepub fn generate_intermediate_stops_for_rgb_interpolation(
&self,
first: &GradientStop,
second: &GradientStop,
) -> impl Iterator<Item = (Color, Ratio)>
pub fn generate_intermediate_stops_for_rgb_interpolation( &self, first: &GradientStop, second: &GradientStop, ) -> impl Iterator<Item = (Color, Ratio)>
Generates additional stops to replicate a gradient in rgb color space interpolation by bisecting
Sourcepub fn sample_at(
&self,
(x, y): (f32, f32),
(width, height): (f32, f32),
) -> Color
pub fn sample_at( &self, (x, y): (f32, f32), (width, height): (f32, f32), ) -> Color
Samples the gradient at a given position, in the given container. Handles the aspect ratio and angle directly.
Sourcepub fn anti_alias(&self) -> bool
pub fn anti_alias(&self) -> bool
Does this gradient need to be anti-aliased?
Sourcepub fn unwrap_relative(&self, on_text: bool) -> RelativeTo
pub fn unwrap_relative(&self, on_text: bool) -> RelativeTo
Returns the relative placement of this gradient, handling
the special case of auto.
Sourcepub fn correct_aspect_ratio(angle: Angle, aspect_ratio: Ratio) -> Angle
pub fn correct_aspect_ratio(angle: Angle, aspect_ratio: Ratio) -> Angle
Corrects this angle for the aspect ratio of a gradient.
This is used specifically for gradients.
Trait Implementations§
impl Eq for Gradient
Source§impl FromValue for Gradient
impl FromValue for Gradient
Source§fn from_value(value: Value) -> HintedStrResult<Self>
fn from_value(value: Value) -> HintedStrResult<Self>
Self.Source§impl NativeScope for Gradient
impl NativeScope for Gradient
Source§fn constructor() -> Option<&'static NativeFuncData>
fn constructor() -> Option<&'static NativeFuncData>
Source§impl NativeType for Gradient
impl NativeType for Gradient
impl StructuralPartialEq for Gradient
Auto Trait Implementations§
impl Freeze for Gradient
impl RefUnwindSafe for Gradient
impl Send for Gradient
impl Sync for Gradient
impl Unpin for Gradient
impl UnsafeUnpin for Gradient
impl UnwindSafe for Gradient
Blanket Implementations§
Source§impl<S, D, Swp, Dwp, T> AdaptInto<D, Swp, Dwp, T> for Swhere
T: Real + Zero + Arithmetics + Clone,
Swp: WhitePoint<T>,
Dwp: WhitePoint<T>,
D: AdaptFrom<S, Swp, Dwp, T>,
impl<S, D, Swp, Dwp, T> AdaptInto<D, Swp, Dwp, T> for Swhere
T: Real + Zero + Arithmetics + Clone,
Swp: WhitePoint<T>,
Dwp: WhitePoint<T>,
D: AdaptFrom<S, Swp, Dwp, T>,
Source§fn adapt_into_using<M>(self, method: M) -> Dwhere
M: TransformMatrix<T>,
fn adapt_into_using<M>(self, method: M) -> Dwhere
M: TransformMatrix<T>,
Source§fn adapt_into(self) -> D
fn adapt_into(self) -> D
Source§impl<T, C> ArraysFrom<C> for Twhere
C: IntoArrays<T>,
impl<T, C> ArraysFrom<C> for Twhere
C: IntoArrays<T>,
Source§fn arrays_from(colors: C) -> T
fn arrays_from(colors: C) -> T
Source§impl<T, C> ArraysInto<C> for Twhere
C: FromArrays<T>,
impl<T, C> ArraysInto<C> for Twhere
C: FromArrays<T>,
Source§fn arrays_into(self) -> C
fn arrays_into(self) -> C
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
Source§impl<WpParam, T, U> Cam16IntoUnclamped<WpParam, T> for Uwhere
T: FromCam16Unclamped<WpParam, U>,
impl<WpParam, T, U> Cam16IntoUnclamped<WpParam, T> for Uwhere
T: FromCam16Unclamped<WpParam, U>,
Source§type Scalar = <T as FromCam16Unclamped<WpParam, U>>::Scalar
type Scalar = <T as FromCam16Unclamped<WpParam, U>>::Scalar
parameters when converting.Source§fn cam16_into_unclamped(
self,
parameters: BakedParameters<WpParam, <U as Cam16IntoUnclamped<WpParam, T>>::Scalar>,
) -> T
fn cam16_into_unclamped( self, parameters: BakedParameters<WpParam, <U as Cam16IntoUnclamped<WpParam, T>>::Scalar>, ) -> T
self into C, using the provided parameters.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>,
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>
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T, C> ComponentsFrom<C> for Twhere
C: IntoComponents<T>,
impl<T, C> ComponentsFrom<C> for Twhere
C: IntoComponents<T>,
Source§fn components_from(colors: C) -> T
fn components_from(colors: C) -> T
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.impl<T> ErasedDestructor for Twhere
T: 'static,
Source§impl<T> FromAngle<T> for T
impl<T> FromAngle<T> for T
Source§fn from_angle(angle: T) -> T
fn from_angle(angle: T) -> T
angle.Source§impl<T, U> FromStimulus<U> for Twhere
U: IntoStimulus<T>,
impl<T, U> FromStimulus<U> for Twhere
U: IntoStimulus<T>,
Source§fn from_stimulus(other: U) -> T
fn from_stimulus(other: U) -> T
other into Self, while performing the appropriate scaling,
rounding and clamping.Source§impl<T> FromValue<Spanned<Value>> for Twhere
T: FromValue,
impl<T> FromValue<Spanned<Value>> for Twhere
T: FromValue,
Source§fn from_value(value: Spanned<Value>) -> Result<T, HintedString>
fn from_value(value: Spanned<Value>) -> Result<T, HintedString>
Self.Source§impl<T, U> IntoAngle<U> for Twhere
U: FromAngle<T>,
impl<T, U> IntoAngle<U> for Twhere
U: FromAngle<T>,
Source§fn into_angle(self) -> U
fn into_angle(self) -> U
T.Source§impl<WpParam, T, U> IntoCam16Unclamped<WpParam, T> for Uwhere
T: Cam16FromUnclamped<WpParam, U>,
impl<WpParam, T, U> IntoCam16Unclamped<WpParam, T> for Uwhere
T: Cam16FromUnclamped<WpParam, U>,
Source§type Scalar = <T as Cam16FromUnclamped<WpParam, U>>::Scalar
type Scalar = <T as Cam16FromUnclamped<WpParam, U>>::Scalar
parameters when converting.Source§fn into_cam16_unclamped(
self,
parameters: BakedParameters<WpParam, <U as IntoCam16Unclamped<WpParam, T>>::Scalar>,
) -> T
fn into_cam16_unclamped( self, parameters: BakedParameters<WpParam, <U as IntoCam16Unclamped<WpParam, T>>::Scalar>, ) -> T
self into C, using the provided parameters.Source§impl<T, U> IntoColor<U> for Twhere
U: FromColor<T>,
impl<T, U> IntoColor<U> for Twhere
U: FromColor<T>,
Source§fn into_color(self) -> U
fn into_color(self) -> U
Source§impl<T, U> IntoColorUnclamped<U> for Twhere
U: FromColorUnclamped<T>,
impl<T, U> IntoColorUnclamped<U> for Twhere
U: FromColorUnclamped<T>,
Source§fn into_color_unclamped(self) -> U
fn into_color_unclamped(self) -> 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> IntoResult for Twhere
T: IntoValue,
impl<T> IntoResult for Twhere
T: IntoValue,
Source§fn into_result(self, _: Span) -> Result<Value, EcoVec<SourceDiagnostic>>
fn into_result(self, _: Span) -> Result<Value, EcoVec<SourceDiagnostic>>
Source§impl<T> IntoStimulus<T> for T
impl<T> IntoStimulus<T> for T
Source§fn into_stimulus(self) -> T
fn into_stimulus(self) -> T
self into T, while performing the appropriate scaling,
rounding and clamping.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>,
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)
Source§impl<T> Pointable for T
impl<T> Pointable for T
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>,
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
Source§impl<T, C> TryComponentsInto<C> for Twhere
C: TryFromComponents<T>,
impl<T, C> TryComponentsInto<C> for Twhere
C: TryFromComponents<T>,
Source§type Error = <C as TryFromComponents<T>>::Error
type Error = <C as TryFromComponents<T>>::Error
try_into_colors fails to cast.Source§fn try_components_into(self) -> Result<C, <T as TryComponentsInto<C>>::Error>
fn try_components_into(self) -> Result<C, <T as TryComponentsInto<C>>::Error>
Source§impl<T, U> TryIntoColor<U> for Twhere
U: TryFromColor<T>,
impl<T, U> TryIntoColor<U> for Twhere
U: TryFromColor<T>,
Source§fn try_into_color(self) -> Result<U, OutOfBounds<U>>
fn try_into_color(self) -> Result<U, OutOfBounds<U>>
OutOfBounds error is returned which contains
the unclamped color. Read more