using System.Windows; using Microsoft.Win32; using FastPrint.Printer; using FastPrint.Slicing; using FastPrint.Model; namespace FastPrint.UI { public partial class MainWindow : Window { private MarlinConnector printer; private SliceAccelerator slicer; private STLModel model; public MainWindow() { InitializeComponent(); slicer = new SliceAccelerator(); model = new STLModel(); } private void OpenSTL_Click(object sender, RoutedEventArgs e) { var dlg = new OpenFileDialog { Filter = "STL Files (*.stl)|*.stl" }; if (dlg.ShowDialog() == true) { model.LoadAscii(dlg.FileName); // Visualization logic can be added here } } private void Slice_Click(object sender, RoutedEventArgs e) { // Flatten triangles to vertex array var vertices = new System.Collections.Generic.List(); foreach (var tri in model.Triangles) vertices.AddRange(tri); slicer.Slice(vertices.ToArray(), 0.2f, result => { // Handle sliced result (e.g., display, export G-code) }); } private async void Connect_Click(object sender, RoutedEventArgs e) { printer = new MarlinConnector(PortSelector.SelectedItem?.ToString() ?? "COM3"); await printer.ConnectAsync(); } } }