Added some named colours, mostly to make testing easier.
This commit is contained in:
parent
ad7d0b5f17
commit
f193fbf84b
|
|
@ -1,4 +1,4 @@
|
|||
use nalgebra::{clamp, RealField, Vector3};
|
||||
use nalgebra::{clamp, convert, RealField, Vector3};
|
||||
|
||||
pub struct ColourRGB<T: RealField> {
|
||||
values: Vector3<T>,
|
||||
|
|
@ -65,6 +65,47 @@ impl<T: RealField + NormalizedAsByte> ToneMapper<T> for ClampingToneMapper {
|
|||
}
|
||||
}
|
||||
|
||||
pub enum NamedColour {
|
||||
Black,
|
||||
White,
|
||||
Red,
|
||||
Lime,
|
||||
Blue,
|
||||
Yellow,
|
||||
Cyan,
|
||||
Magenta,
|
||||
Gray,
|
||||
Maroon,
|
||||
Olive,
|
||||
Green,
|
||||
Purple,
|
||||
Teal,
|
||||
Navy,
|
||||
}
|
||||
|
||||
pub fn named_colour<T: RealField+NormalizedAsByte>(colour: NamedColour) -> ColourRGB<T> {
|
||||
let zero: T = convert(0.0);
|
||||
let half: T = convert(0.5);
|
||||
let one: T = convert(1.0);
|
||||
match colour {
|
||||
NamedColour::Black => ColourRGB::new(zero, zero, zero),
|
||||
NamedColour::White => ColourRGB::new(one, one, one),
|
||||
NamedColour::Red => ColourRGB::new(one, zero, zero),
|
||||
NamedColour::Lime => ColourRGB::new(zero, one, zero),
|
||||
NamedColour::Blue => ColourRGB::new(zero, zero, one),
|
||||
NamedColour::Yellow => ColourRGB::new(one, one, zero),
|
||||
NamedColour::Cyan => ColourRGB::new(zero, one, one),
|
||||
NamedColour::Magenta => ColourRGB::new(one, zero, one),
|
||||
NamedColour::Gray => ColourRGB::new(half, half, half),
|
||||
NamedColour::Maroon => ColourRGB::new(half, zero, zero),
|
||||
NamedColour::Olive => ColourRGB::new(half, half, zero),
|
||||
NamedColour::Green => ColourRGB::new(half, half, half),
|
||||
NamedColour::Purple => ColourRGB::new(half, zero, half),
|
||||
NamedColour::Teal => ColourRGB::new(zero, half, half),
|
||||
NamedColour::Navy => ColourRGB::new(zero, zero, half),
|
||||
}
|
||||
}
|
||||
|
||||
impl NormalizedAsByte for f32 {
|
||||
fn normalized_to_byte(self) -> u8 {
|
||||
(self * (std::u8::MAX as f32)) as u8
|
||||
|
|
|
|||
Loading…
Reference in New Issue