use fission_core::op::Color;
use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
pub enum VisualMapType {
Continuous,
Piecewise,
}
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct VisualMap {
pub map_type: VisualMapType,
pub min: f32,
pub max: f32,
pub in_range_colors: Vec<Color>,
pub out_of_range_colors: Vec<Color>,
}
impl Default for VisualMap {
fn default() -> Self {
Self {
map_type: VisualMapType::Continuous,
min: 0.0,
max: 100.0,
in_range_colors: Vec::new(),
out_of_range_colors: Vec::new(),
}
}
}
impl VisualMap {
pub fn new() -> Self {
Self::default()
}
pub fn map_type(mut self, map_type: VisualMapType) -> Self {
self.map_type = map_type;
self
}
pub fn min(mut self, min: f32) -> Self {
self.min = min;
self
}
pub fn max(mut self, max: f32) -> Self {
self.max = max;
self
}
pub fn in_range_colors(mut self, colors: Vec<Color>) -> Self {
self.in_range_colors = colors;
self
}
pub fn out_of_range_colors(mut self, colors: Vec<Color>) -> Self {
self.out_of_range_colors = colors;
self
}
}