use indicatrix::{geometry::meet_solver::SolvedTier, optics::materials::GemMaterial};
use indicatrix_cut_core::Design;
use indicatrix_editor::cut_sheet::{cutting_sheet_document, diagram_export_png};
use std::path::Path;
pub fn write_cutting_sheet_html(
design: &Design,
solved: &[SolvedTier],
dest: &Path,
custom: &[GemMaterial],
) -> Result<(), String> {
let html = cutting_sheet_document(design, solved, custom);
if let Some(parent) = dest.parent() {
let _ = std::fs::create_dir_all(parent);
}
std::fs::write(dest, html).map_err(|e| format!("Failed to write {}: {e}", dest.display()))
}
pub fn write_diagram_png(
design: &Design,
solved: &[SolvedTier],
dest: &Path,
) -> Result<(), String> {
let png_bytes = diagram_export_png(design, solved)?;
if let Some(parent) = dest.parent() {
let _ = std::fs::create_dir_all(parent);
}
std::fs::write(dest, &png_bytes).map_err(|e| format!("Failed to write {}: {e}", dest.display()))
}