private void OpenFile(object sender, RoutedEventArgs e) { OpenFileDialog openfile = new OpenFileDialog(); openfile.Filter = "3D models (*.off; *.dcel)|*.off;*.dcel|" + "Object File Format files (*.off)|*.off|" + "DCEL serialized objects (*.dcel)|*.dcel"; // Show open file dialog box Nullable <bool> result = openfile.ShowDialog(); // Process open file dialog box results if (result == true) { string filename = openfile.FileName; if (filename != null && File.Exists(filename)) { SW = File.AppendText(@"viewer.log"); string ext = System.IO.Path.GetExtension(filename); if (ext == ".off") { sw.Restart(); mesh = DCELTools.LoadFromOFF(filename); sw.Stop(); SW.WriteLine("Dcel loading from off: " + sw.Elapsed.TotalMilliseconds); SW.Close(); Create3dMesh(); } if (ext == ".dcel") { sw.Restart(); mesh = DCELTools.DeserializeMesh(filename); sw.Stop(); SW.WriteLine("Dcel loading from object: " + sw.Elapsed.TotalMilliseconds); SW.Close(); Create3dMesh(); } if (wfCheck.IsChecked) { wfCheck.IsChecked = false; } MeshInfo(); } else { MessageBox.Show("Errore durante l'apertura del file", "Errore!", MessageBoxButton.OK, MessageBoxImage.Warning); } } }
public MainWindow() { InitializeComponent(); SW.WriteLine("#Log"); sw.Start(); mesh = DCELTools.LoadFromOFF(@"shapes/cube.off"); sw.Stop(); SW.WriteLine("Dcel loading from off: " + sw.Elapsed.TotalMilliseconds); SW.Close(); Create3dMesh(); MeshInfo(); }
private void SaveFile(object sender, RoutedEventArgs e) { SaveFileDialog savefile = new SaveFileDialog(); savefile.Filter = "Object File Format (*.off)|*.off"; savefile.RestoreDirectory = true; Nullable <bool> result = savefile.ShowDialog(); if (result == true && mesh != null) { DCELTools.SaveToOFF(savefile.FileName, mesh); } else { MessageBox.Show("Nessun file salvato", "Errore!", MessageBoxButton.OK, MessageBoxImage.Warning); } }
private void Create3dMesh() { ModelVisual3D model3d = new ModelVisual3D(); SW = File.AppendText(@"viewer.log"); sw.Restart(); MeshGeometry3D mesh3d = DCELTools.GetMeshGeometry(mesh); sw.Stop(); SW.WriteLine("3d mesh creation: " + sw.Elapsed.TotalMilliseconds); gModel3d = new GeometryModel3D(mesh3d, new DiffuseMaterial(Brushes.LightSteelBlue)); gModel3d.BackMaterial = new DiffuseMaterial(Brushes.LightSteelBlue); gModel3d.Transform = new Transform3DGroup(); model3d.Content = gModel3d; //cancello tutti gli elementi presenti sul viewport e aggiungo il nuovo modello 3d ClearViewport(); viewport3d.Children.Add(model3d); SW.Close(); }