#[derive(Debug, Clone, Copy, PartialEq, serde::Serialize, serde::Deserialize)]
pub struct Color {
red: f32,
green: f32,
blue: f32,
}
impl Color {
#[must_use]
pub const fn new(red: f32, green: f32, blue: f32) -> Self {
Self { red, green, blue }
}
#[must_use]
pub const fn red(&self) -> f32 {
self.red
}
#[must_use]
pub const fn green(&self) -> f32 {
self.green
}
#[must_use]
pub const fn blue(&self) -> f32 {
self.blue
}
}
#[derive(Debug, Clone, Copy, PartialEq, serde::Serialize, serde::Deserialize)]
pub struct ColorAlpha {
red: f32,
green: f32,
blue: f32,
alpha: f32,
}
impl ColorAlpha {
#[must_use]
pub const fn new(red: f32, green: f32, blue: f32, alpha: f32) -> Self {
Self {
red,
green,
blue,
alpha,
}
}
#[must_use]
pub const fn red(&self) -> f32 {
self.red
}
#[must_use]
pub const fn green(&self) -> f32 {
self.green
}
#[must_use]
pub const fn blue(&self) -> f32 {
self.blue
}
#[must_use]
pub const fn alpha(&self) -> f32 {
self.alpha
}
}
#[derive(Debug, Clone, Copy, PartialEq, serde::Serialize, serde::Deserialize)]
pub struct Glow {
size: f32,
reserved: f32,
focus: f32,
}
impl Glow {
#[must_use]
pub const fn new(size: f32, reserved: f32, focus: f32) -> Self {
Self {
size,
reserved,
focus,
}
}
#[must_use]
pub const fn size(&self) -> f32 {
self.size
}
#[must_use]
pub const fn reserved(&self) -> f32 {
self.reserved
}
#[must_use]
pub const fn focus(&self) -> f32 {
self.focus
}
}
#[derive(Debug, Clone, Copy, PartialEq, serde::Serialize, serde::Deserialize)]
pub struct CloudPosDensity {
position_x: f32,
position_y: f32,
density: f32,
}
impl CloudPosDensity {
#[must_use]
pub const fn new(position_x: f32, position_y: f32, density: f32) -> Self {
Self {
position_x,
position_y,
density,
}
}
#[must_use]
pub const fn position_x(&self) -> f32 {
self.position_x
}
#[must_use]
pub const fn position_y(&self) -> f32 {
self.position_y
}
#[must_use]
pub const fn density(&self) -> f32 {
self.density
}
}