Example #1
0
        private void Import(string data)
        {
            Task.Run(() =>
            {
                MeshG m = MeshReadWriter.ParseMeshString(data);
                m.FindCenter();

                if (m.Vertices.Count == 0 || m.Triangles.Count == 0)
                {
                    Dispatcher.Invoke(() =>
                    {
                        MessageBox.Show("No valid vertices or triangles in imesh file.");
                    });

                    return;
                }

                Dispatcher.Invoke(() =>
                {
                    cameraPosition.x = -m.center.x;
                    cameraPosition.y = -m.center.y;
                    cameraPosition.z = -100.0f;

                    didImport = true;

                    lGenTime.Text = "0ms";

                    isGen = true;
                    mesh  = null;

                    mesh = m;

                    positions = m.Vertices.ToArray();
                    indices   = m.Triangles.ToArray();
                    normals   = m.Normals.ToArray();
                    colors    = m.Colors.ToArray();

                    lTriangleCount.Text = (indices.Length / 3).ToString("#,##");
                });

                Dispatcher.Invoke(() =>
                {
                    isGen = false;
                    Render(glControl);
                });
            });
        }
Example #2
0
        private void btnExport_Click(object sender, RoutedEventArgs e)
        {
            if (mesh != null)
            {
                SaveFileDialog saveDialog = new SaveFileDialog();
                saveDialog.AddExtension    = true;
                saveDialog.DefaultExt      = "Image Mesh(*.imesh)|*.imesh";
                saveDialog.Filter          = "Image Mesh(*.imesh)|*.imesh";
                saveDialog.CheckPathExists = true;

                if (saveDialog.ShowDialog() == true)
                {
                    string path = saveDialog.FileName;

                    Task.Run(() => {
                        MeshReadWriter.WriteMeshToFile(mesh, path);
                    });
                }
            }
        }