pub struct DynamicColor {
pub raw: Vec3,
pub space: DynamicColorSpace,
pub state: DynamicState,
}Expand description
A dynamic color, with its Space and State defined as data. This is mostly useful for (de)serialization.
See Color, ColorSpace and State for more.
Fields§
§raw: Vec3The raw tristimulus value of the color. Be careful when modifying this directly, i.e. don’t multiply two Colors’ raw values unless they are in the same color space and state.
space: DynamicColorSpace§state: DynamicStateImplementations§
Source§impl DynamicColor
impl DynamicColor
Sourcepub fn new(raw: Vec3, space: DynamicColorSpace, state: DynamicState) -> Self
pub fn new(raw: Vec3, space: DynamicColorSpace, state: DynamicState) -> Self
Create a new DynamicColor with specified raw color components, color space, and state.
Sourcepub fn convert(self, dest_space: DynamicColorSpace) -> ColorResult<Self>
pub fn convert(self, dest_space: DynamicColorSpace) -> ColorResult<Self>
Convert self to the given color space. Must not attempt to convert to or from
a nonlinear color space while in scene-referred state.
Sourcepub fn convert_state<F>(
self,
dest_state: DynamicState,
conversion: F,
) -> ColorResult<Self>
pub fn convert_state<F>( self, dest_state: DynamicState, conversion: F, ) -> ColorResult<Self>
Convert self’s state to the given state using the given conversion function.
self.space must be linear. See docs for Color::<Space, State>::convert_state
Sourcepub fn downcast_convert<DstSpace, DstState>(
self,
) -> ColorResult<Color<DstSpace, DstState>>where
DstSpace: ColorSpace,
DstState: State,
pub fn downcast_convert<DstSpace, DstState>(
self,
) -> ColorResult<Color<DstSpace, DstState>>where
DstSpace: ColorSpace,
DstState: State,
Convert self to the specified space and downcast it to a typed Color with the space
and state specified. self must already be in the correct DynamicState
Sourcepub fn linearize(self) -> Self
pub fn linearize(self) -> Self
Convert self into the closest linear color space, if it is not linear already
Sourcepub fn with_alpha(
&self,
alpha: f32,
alpha_state: DynamicAlphaState,
) -> DynamicColorAlpha
pub fn with_alpha( &self, alpha: f32, alpha_state: DynamicAlphaState, ) -> DynamicColorAlpha
Converts self to a DynamicColorAlpha with specified DynamicAlphaState by adding an alpha component.
pub fn from_kolor(color: Color, state: DynamicState) -> Self
Trait Implementations§
Source§impl AnyColor for DynamicColor
impl AnyColor for DynamicColor
fn space(&self) -> DynamicColorSpace
fn state(&self) -> DynamicState
fn raw(&self) -> Vec3
Source§fn dynamic(&self) -> DynamicColor
fn dynamic(&self) -> DynamicColor
self into a DynamicColorSource§impl Clone for DynamicColor
impl Clone for DynamicColor
Source§fn clone(&self) -> DynamicColor
fn clone(&self) -> DynamicColor
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for DynamicColor
impl Debug for DynamicColor
Source§impl<'de> Deserialize<'de> for DynamicColor
impl<'de> Deserialize<'de> for DynamicColor
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Source§impl<'a> From<&'a dyn AnyColor> for DynamicColor
impl<'a> From<&'a dyn AnyColor> for DynamicColor
Source§fn from(color: &'a dyn AnyColor) -> DynamicColor
fn from(color: &'a dyn AnyColor) -> DynamicColor
Source§impl<Spc: ColorSpace, St: State> From<Color<Spc, St>> for DynamicColor
impl<Spc: ColorSpace, St: State> From<Color<Spc, St>> for DynamicColor
Source§fn from(color: Color<Spc, St>) -> DynamicColor
fn from(color: Color<Spc, St>) -> DynamicColor
Source§impl From<DynamicColor> for Color
impl From<DynamicColor> for Color
Source§fn from(color: DynamicColor) -> Color
fn from(color: DynamicColor) -> Color
Source§impl PartialEq for DynamicColor
impl PartialEq for DynamicColor
Source§impl Serialize for DynamicColor
impl Serialize for DynamicColor
impl Copy for DynamicColor
impl StructuralPartialEq for DynamicColor
Auto Trait Implementations§
impl Freeze for DynamicColor
impl RefUnwindSafe for DynamicColor
impl Send for DynamicColor
impl Sync for DynamicColor
impl Unpin for DynamicColor
impl UnwindSafe for DynamicColor
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> ConvertFromAlphaRaw<T> for T
impl<T> ConvertFromAlphaRaw<T> for T
Source§impl<SrcAlpha, DstAlpha> ConvertToAlphaRaw<DstAlpha> for SrcAlphawhere
DstAlpha: ConvertFromAlphaRaw<SrcAlpha>,
impl<SrcAlpha, DstAlpha> ConvertToAlphaRaw<DstAlpha> for SrcAlphawhere
DstAlpha: ConvertFromAlphaRaw<SrcAlpha>,
Source§impl<C> DynColor for Cwhere
C: AnyColor,
impl<C> DynColor for Cwhere
C: AnyColor,
Source§fn downcast<Spc, St>(&self) -> Result<Color<Spc, St>, ColorError>where
Spc: ColorSpace,
St: State,
fn downcast<Spc, St>(&self) -> Result<Color<Spc, St>, ColorError>where
Spc: ColorSpace,
St: State,
Attempt to convert to a typed Color. Returns an error if self’s color space and state do not match
the given types.
Source§fn downcast_unchecked<Spc, St>(&self) -> Color<Spc, St>where
Spc: ColorSpace,
St: State,
fn downcast_unchecked<Spc, St>(&self) -> Color<Spc, St>where
Spc: ColorSpace,
St: State,
Convert to a typed Color without checking if the color space and state types
match this color’s space and state. Use only if you are sure that this color
is in the correct format.