use bevy::{prelude::*, render::extract_component::ExtractComponent};
#[derive(Component, ExtractComponent, Clone, Copy, Debug)]
pub struct RatatuiCameraEdgeDetection {
pub thickness: f32,
pub color_enabled: bool,
pub color_threshold: f32,
pub depth_enabled: bool,
pub depth_threshold: f32,
pub normal_enabled: bool,
pub normal_threshold: f32,
pub edge_characters: EdgeCharacters,
pub edge_color: Option<ratatui::style::Color>,
}
impl Default for RatatuiCameraEdgeDetection {
fn default() -> Self {
Self {
thickness: 2.0,
color_enabled: true,
color_threshold: 0.4,
depth_enabled: true,
depth_threshold: 0.1,
normal_enabled: true,
normal_threshold: 2.5,
edge_characters: EdgeCharacters::default(),
edge_color: None,
}
}
}
#[derive(Clone, Copy, Debug)]
pub enum EdgeCharacters {
Single(char),
Directional {
vertical: char,
horizontal: char,
forward_diagonal: char,
backward_diagonal: char,
},
}
impl Default for EdgeCharacters {
fn default() -> Self {
Self::Directional {
vertical: '|',
horizontal: '―',
forward_diagonal: '/',
backward_diagonal: '\\',
}
}
}