use crate::{
serde::SizedString,
units::{Milimeters, MilimetersPerMinute, Seconds},
};
use crate::goo::{Header, Layer, PreviewImage, header::ExposureDelayMode};
impl Default for Header {
fn default() -> Self {
Self {
version: SizedString::new(b"V3.0"),
software_info: SizedString::new(b"msla_format by Connor Slade"),
software_version: SizedString::new(b"0.1.0"),
file_time: SizedString::new(b""),
printer_name: SizedString::new(b"standard"),
printer_type: SizedString::new(b"Default"),
profile_name: SizedString::new(b"New Script"),
anti_aliasing_level: 0,
grey_level: 0,
blur_level: 0,
small_preview: PreviewImage::empty(),
big_preview: PreviewImage::empty(),
layer_count: 171,
x_resolution: 11520,
y_resolution: 5102,
x_mirror: false,
y_mirror: false,
x_size: Milimeters::new(218.88),
y_size: Milimeters::new(122.88),
z_size: Milimeters::new(260.0),
layer_thickness: Milimeters::new(0.05),
exposure_time: Seconds::new(3.0),
exposure_delay_mode: ExposureDelayMode::StaticTime,
turn_off_time: Seconds::new(0.0),
bottom_before_lift_time: Seconds::new(0.0),
bottom_after_lift_time: Seconds::new(0.0),
bottom_after_retract_time: Seconds::new(0.0),
before_lift_time: Seconds::new(0.0),
after_lift_time: Seconds::new(0.0),
after_retract_time: Seconds::new(0.0),
bottom_exposure_time: Seconds::new(50.0),
bottom_layers: 8,
bottom_lift_distance: Milimeters::new(5.0),
bottom_lift_speed: MilimetersPerMinute::new(65.0),
lift_distance: Milimeters::new(5.0),
lift_speed: MilimetersPerMinute::new(65.0),
bottom_retract_distance: Milimeters::new(5.0),
bottom_retract_speed: MilimetersPerMinute::new(150.0),
retract_distance: Milimeters::new(5.0),
retract_speed: MilimetersPerMinute::new(0.0),
bottom_second_lift_distance: Milimeters::new(0.0),
bottom_second_lift_speed: MilimetersPerMinute::new(0.0),
second_lift_distance: Milimeters::new(0.0),
second_lift_speed: MilimetersPerMinute::new(0.0),
bottom_second_retract_distance: Milimeters::new(0.0),
bottom_second_retract_speed: MilimetersPerMinute::new(0.0),
second_retract_distance: Milimeters::new(0.0),
second_retract_speed: MilimetersPerMinute::new(0.0),
bottom_light_pwm: 255,
light_pwm: 255,
per_layer_settings: false,
printing_time: 2659,
total_volume: 526.507,
total_weight: 0.684,
total_price: 0.0,
price_unit: SizedString::new(b"$"),
grey_scale_level: true,
transition_layers: 10,
}
}
}
impl Default for Layer {
fn default() -> Self {
Self {
pause: false,
pause_position_z: Milimeters::new(200.0),
layer_position_z: Milimeters::new(0.05),
layer_exposure_time: Seconds::new(50.0),
layer_off_time: Seconds::new(0.0),
before_lift_time: Seconds::new(0.0),
after_lift_time: Seconds::new(0.0),
after_retract_time: Seconds::new(0.0),
lift_distance: Milimeters::new(5.0),
lift_speed: MilimetersPerMinute::new(65.0),
second_lift_distance: Milimeters::new(0.0),
second_lift_speed: MilimetersPerMinute::new(0.0),
retract_distance: Milimeters::new(5.0),
retract_speed: MilimetersPerMinute::new(150.0),
second_retract_distance: Milimeters::new(0.0),
second_retract_speed: MilimetersPerMinute::new(0.0),
light_pwm: 255,
data: Vec::new(),
checksum: 0,
}
}
}