private void MenuItem_Click_1(object sender, RoutedEventArgs e) { //TODO: Dinar: think about changing statuses and implementation currentStatus.Content = "Экспортирование модели."; SaveFileDialog importDlg = new SaveFileDialog(); importDlg.InitialDirectory = "C:\\"; importDlg.Filter = "All files (*.*)|*.*|XML (*.xml)|*.xml"; importDlg.FilterIndex = 2; importDlg.RestoreDirectory = true; if (importDlg.ShowDialog() != null) { try { Component.Model model_temp = new Component.Model(); new FigureParser().ExportFile(mid_surface_model, importDlg.FileName); //TODO: Dinar: some trick, maybe not good solution model = null; mid_surface_model = null; RedrawModel(); } catch (Exception ex) { //TODO: Dinar: replace MessageBox.Show("Ошибка экспорта! Причина ошибки: " + ex.Message); currentStatus.Content = "Готов к работе."; return; } } mid_surface_model = null; currentStatus.Content = "Экспортирование завершено успешно. Готов к работе."; }
private void Go_all_tests(object sender, RoutedEventArgs e) { System.Windows.Forms.FolderBrowserDialog FBD = new System.Windows.Forms.FolderBrowserDialog(); if (FBD.ShowDialog() == System.Windows.Forms.DialogResult.OK) { string[] allFoundFiles = Directory.GetFiles(FBD.SelectedPath, "*.xml", SearchOption.AllDirectories); double splitterAccuracy = double.Parse(textBox_Splitter_Accuracy.Text, CultureInfo.InvariantCulture); double detalizerAccuracy = double.Parse(textBox_Detalizer_Accuracy.Text, CultureInfo.InvariantCulture); IAlgorithm alg = new Algorithm(splitterAccuracy, detalizerAccuracy); RenderTargetBitmap rtb = new RenderTargetBitmap((int)mainCanvas.ActualWidth, (int)mainCanvas.ActualHeight, 96d, 96d, PixelFormats.Pbgra32); foreach (string path in allFoundFiles) { Component.Model model_temp = new Component.Model(); model_temp.Add(new FigureParser().ParseFile(path)); model = model_temp; RedrawModel(); mid_surface_model = alg.Run(new SolverData(model)); RedrawMidSurface(); // needed otherwise the image output is black mainCanvas.Measure(new Size((int)mainCanvas.ActualWidth, (int)mainCanvas.ActualHeight)); mainCanvas.Arrange(new Rect(new Size((int)mainCanvas.ActualWidth, (int)mainCanvas.ActualHeight))); rtb.Render(mainCanvas); PngBitmapEncoder BufferSave = new PngBitmapEncoder(); BufferSave.Frames.Add((BitmapFrame.Create(rtb))); using (var fs = File.OpenWrite(path.Substring(0, path.Length - 4) + "res.png")) { BufferSave.Save(fs); } } } }
private void Generate(object sender, RoutedEventArgs e) { //TODO: Dinar: prepare generating implementation if (model == null) { return; } RedrawModel(); currentStatus.Content = "Генерация в процессе."; currentStatus.UpdateLayout(); //TODO: Move to some input checking double splitterAccuracy = 0; double detalizerAccuracy = 0; try { splitterAccuracy = double.Parse(textBox_Splitter_Accuracy.Text, CultureInfo.InvariantCulture); detalizerAccuracy = double.Parse(textBox_Detalizer_Accuracy.Text, CultureInfo.InvariantCulture); } catch (Exception) { currentStatus.Content = "Генерация прервана. Введите корректные настройки точностей."; return; } IAlgorithm alg = new Algorithm(splitterAccuracy, detalizerAccuracy); Stopwatch sw = new Stopwatch(); sw.Start(); mid_surface_model = alg.Run(new SolverData(model)); sw.Stop(); RedrawMidSurface(); currentStatus.Content = "Генерация завершена успешно. Затраченное время: " + sw.Elapsed; }
public void ExportFile(IMidSurface f, string filePath) { XmlSerializer serializer = new XmlSerializer(typeof(MidSurfaceNameSpace.Component.MSModel)); FileStream fs = new FileStream(filePath, FileMode.Open); serializer.Serialize(fs, f); fs.Close(); }
private void Do_Enumeration(object sender, RoutedEventArgs e) { System.Windows.Forms.FolderBrowserDialog FBD = new System.Windows.Forms.FolderBrowserDialog(); if (FBD.ShowDialog() == System.Windows.Forms.DialogResult.OK) { Component.IModel current_model = model; Segments_iterator SI = new Segments_iterator(model); int nom_file = 0; double splitterAccuracy = double.Parse(textBox_Splitter_Accuracy.Text, CultureInfo.InvariantCulture); double detalizerAccuracy = double.Parse(textBox_Detalizer_Accuracy.Text, CultureInfo.InvariantCulture); IAlgorithm alg = new Algorithm(splitterAccuracy, detalizerAccuracy); Html view = new Html(filename); RenderTargetBitmap rtb = new RenderTargetBitmap((int)mainCanvas.ActualWidth, (int)mainCanvas.ActualHeight, 96d, 96d, PixelFormats.Pbgra32); PngBitmapEncoder BufferSave; while (!SI.IsOver) { model = current_model; RedrawModel(); mid_surface_model = alg.Run(new SolverData(model)); RedrawMidSurface(); model = SI.Next; RedrawModel(Brushes.Purple); //построение текущей поверхности mid_surface_model = alg.Run(new SolverData(model)); RedrawMidSurface(Brushes.Blue); // сохранение картинки mainCanvas.UpdateLayout(); //mainCanvas.Measure(new Size((int)mainCanvas.ActualWidth, (int)mainCanvas.ActualHeight)); //mainCanvas.Arrange(new Rect(new Size((int)mainCanvas.ActualWidth, (int)mainCanvas.ActualHeight))); rtb.Render(mainCanvas); BufferSave = new PngBitmapEncoder(); BufferSave.Frames.Add((BitmapFrame.Create(rtb))); using (var fs = File.OpenWrite(FBD.SelectedPath + "\\image" + nom_file + ".png")) { BufferSave.Save(fs); fs.Close(); } view.Add(FBD.SelectedPath + "\\image" + nom_file + ".png"); nom_file++; } System.IO.File.WriteAllText(FBD.SelectedPath + "\\show.html", view.Save()); } }
public void Check(IModel model, IMidSurface midsurface) { test.CheckQuality(model, midsurface); }
public VisibleData(IMidSurface midsurface, VisibleDataSettings settings) { segments = midsurface.GetData().ToList <ISegment>(); this.settings = settings; }
public VisibleData(IMidSurface midsurface) : this() { segments = midsurface.GetData().ToList <ISegment>(); }
public void Export(IMidSurface midsurface) { }
public IMidSurfaceObject(IMidSurface IMidSurfaceinstance) { IMidSurfaceInstance = IMidSurfaceinstance; }
void CheckQuality(IModel model, IMidSurface midsurface) { }