Exemplo n.º 1
0
        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);
                }
            }
        }
Exemplo n.º 2
0
        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();
        }
Exemplo n.º 3
0
        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);
            }
        }
Exemplo n.º 4
0
        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();
        }