Esempio n. 1
0
        private void ListViewIntegratorsSelectedIndexChanged(object sender, EventArgs e)
        {
            if (listViewIntegrators.SelectedItems.Count == 1)
            {
                MitsubaSettings.DefaultRenderSettingsPresetName = listViewIntegrators.SelectedItems[0].Text;

                var preset = LibraryPresets.GetPreset(MitsubaSettings.DefaultRenderSettingsPresetName);

                if (preset != null)
                {
                    var integrator           = LibraryIntegrators.GetIntegrator(preset.IntegratorName);
                    var sampler              = LibrarySamplers.GetSampler(preset.SamplerName);
                    var reconstructionFilter = LibraryReconstructionFilters.GetReconstructionFilter(preset.ReconstructionFilterName);

                    if (integrator != null)
                    {
                        MitsubaSettings.Integrator = integrator;
                    }

                    if (sampler != null)
                    {
                        MitsubaSettings.Sampler = sampler;
                    }

                    if (reconstructionFilter != null)
                    {
                        MitsubaSettings.ReconstructionFilter = reconstructionFilter;
                    }
                }
            }

            MitsubaSettings.SaveSettings();
        }
Esempio n. 2
0
        public void LoadPresets()
        {
            listViewIntegrators.Clear();
            listViewIntegrators.GridLines     = true;
            listViewIntegrators.FullRowSelect = true;
            var column = listViewIntegrators.Columns.Add("Mitsuba Rendering Presets");

            column.Width = 376;

            LibraryPresets.Init();

            if (LibraryPresets.Presets != null && LibraryPresets.Presets.Any())
            {
                foreach (var preset in LibraryPresets.Presets)
                {
                    listViewIntegrators.Items.Add(preset);
                }
            }

            column.TextAlign = HorizontalAlignment.Center;

            if (!String.IsNullOrEmpty(MitsubaSettings.DefaultRenderSettingsPresetName))
            {
                for (int i = 0; i < listViewIntegrators.Items.Count; i++)
                {
                    if (listViewIntegrators.Items[i].Text == MitsubaSettings.DefaultRenderSettingsPresetName)
                    {
                        listViewIntegrators.Items[i].Selected = true;
                        listViewIntegrators.Items[i].Focused  = true;
                        listViewIntegrators.FocusedItem       = listViewIntegrators.Items[i];

                        break;
                    }
                }
            }
        }
Esempio n. 3
0
        public static bool LoadSettings()
        {
            if (Tools.FileTools.CheckOrCreateFolder(FolderUserFolder) == -1)
            {
                return(false);
            }

            var configPath = Path.Combine(FolderUserFolder, FileConfigFileName);

            if (!File.Exists(configPath))
            {
                return(false);
            }

            try {
                var settings = File.ReadAllLines(configPath);

                if (!settings.Any())
                {
                    return(false);
                }

                foreach (var line in settings)
                {
                    var splited = line.Split(new[] { '=' });

                    if (splited.Length != 2)
                    {
                        continue;
                    }

                    var key        = splited[0];
                    var value      = splited[1];
                    var folderName = Path.GetDirectoryName(value);

                    switch (key)
                    {
                    case "FolderRenderSettingsPresetsFolder":
                        if (!String.IsNullOrEmpty(folderName))
                        {
                            FolderRenderSettingsPresetsFolder = value;
                            FolderRenderSettingsPresetsName   = folderName;
                        }

                        break;

                    case "FolderIntegratorsFolder":

                        if (!String.IsNullOrEmpty(folderName))
                        {
                            FolderIntegratorsFolder = value;
                            FolderIntegratorsName   = folderName;
                        }

                        break;

                    case "FolderSamplersFolder":
                        if (!String.IsNullOrEmpty(folderName))
                        {
                            FolderSamplersFolder = value;
                            FolderSamplersName   = folderName;
                        }

                        break;

                    case "FolderReconstructionFiltersFolder":
                        if (!String.IsNullOrEmpty(folderName))
                        {
                            FolderReconstructionFiltersFolder = value;
                            FolderReconstructionFiltersName   = folderName;
                        }

                        break;

                    case "DefaultRenderSettingsPreset": {
                        if (!String.IsNullOrEmpty(value))
                        {
                            DefaultRenderSettingsPresetName = value;
                            var preset = LibraryPresets.GetPreset(value);

                            if (preset != null)
                            {
                                var integrator           = LibraryIntegrators.GetIntegrator(preset.IntegratorName);
                                var sampler              = LibrarySamplers.GetSampler(preset.SamplerName);
                                var reconstructionFilter = LibraryReconstructionFilters.GetReconstructionFilter(preset.ReconstructionFilterName);

                                if (integrator != null)
                                {
                                    Integrator = integrator;
                                }

                                if (sampler != null)
                                {
                                    Sampler = sampler;
                                }

                                if (reconstructionFilter != null)
                                {
                                    ReconstructionFilter = reconstructionFilter;
                                }
                            }
                        }
                    }
                    break;
                    }
                }

                return(true);
            }
            catch {
                return(false);
            }
        }
Esempio n. 4
0
        private void ButtonSaveClick(object sender, EventArgs e)
        {
            //New Preset
            if (String.IsNullOrEmpty(_editingPreset))
            {
                const string name      = "New Render Preset";
                var          finalName = name;
                var          path      = Path.Combine(MitsubaSettings.FolderRenderSettingsPresetsFolder, finalName) + LibraryPresets.Extension;

                var num = 1;

                while (File.Exists(path))
                {
                    num++;
                    finalName = name + "(" + num + ")";
                    path      = Path.Combine(MitsubaSettings.FolderRenderSettingsPresetsFolder, finalName) + LibraryPresets.Extension;
                }


                var input = new InputBoxDlg {
                    Titul     = "Mistuba Render Settings Preset",
                    TopicText = "Please Type a Name",
                    InputText = finalName
                };

                input.ShowDialog();

                if (input.DialogResult == DialogResult.OK)
                {
                    finalName = input.InputText;
                    //var path = Path.Combine(MitsubaSettings.FolderRenderSettingsPresetsFolder, finalName);

                    var presetObj = new RenderSettingsPreset {
                        IntegratorName           = comboBoxIntegrator.SelectedItem.ToString(),
                        SamplerName              = comboBoxSampler.SelectedItem.ToString(),
                        ReconstructionFilterName = comboBoxReconstruction.SelectedItem.ToString(),
                    };


                    if (String.IsNullOrEmpty(_editingPreset))
                    {
                        path = Path.Combine(MitsubaSettings.FolderRenderSettingsPresetsFolder, finalName) + LibraryPresets.Extension;

                        if (File.Exists(path))
                        {
                            //TODO: Localize me
                            var res = MessageBox.Show(String.Format("{0} already exists, do you want to overwrite it?", finalName),
                                                      "Mitsuba Save Render Settings", MessageBoxButtons.YesNoCancel);

                            if (res == DialogResult.No)
                            {
                                Close();
                            }
                            else if (res == DialogResult.Cancel)
                            {
                                return;
                            }
                        }
                    }

                    if (!presetObj.Save(finalName))
                    {
                        //TODO: Localize me
                        MessageBox.Show(String.Format("There was problem saving {0}", finalName));
                    }

                    LibraryPresets.Init();
                    Close();
                }
            }

            //Editing Preset
            else
            {
                var presetObj = new RenderSettingsPreset {
                    IntegratorName           = comboBoxIntegrator.SelectedItem.ToString(),
                    SamplerName              = comboBoxSampler.SelectedItem.ToString(),
                    ReconstructionFilterName = comboBoxReconstruction.SelectedItem.ToString(),
                };

                if (!presetObj.Save(_editingPreset))
                {
                    //TODO: Localize me
                    MessageBox.Show(String.Format("There was problem saving {0}", _editingPreset));
                }

                Close();
            }
        }
Esempio n. 5
0
        private void IntegratorDialogLoad(object sender, EventArgs e)
        {
            if (String.IsNullOrEmpty(_editingPreset))
            {
                //TODO Localize me
                Text = "New Mitsuba Render Settings";
            }
            else
            {
                Text = _editingPreset;
            }

            LibraryIntegrators.Init();
            LibrarySamplers.Init();
            LibraryReconstructionFilters.Init();

            if (LibraryIntegrators.Integrators == null || !LibraryIntegrators.Integrators.Any())
            {
                MitsubaSettings.GenerateDefaultIntegrators();
            }

            if (LibrarySamplers.Samplers == null || !LibrarySamplers.Samplers.Any())
            {
                MitsubaSettings.GenerateDefaultSamplers();
            }

            if (LibraryReconstructionFilters.ReconstructionFilters == null ||
                !LibraryReconstructionFilters.ReconstructionFilters.Any())
            {
                MitsubaSettings.GenerateDefaultReconstructionFilters();
            }


            if (LibraryIntegrators.Integrators != null)
            {
                comboBoxIntegrator.DataSource = LibraryIntegrators.Integrators.ToArray();
            }

            if (LibrarySamplers.Samplers != null)
            {
                comboBoxSampler.DataSource = LibrarySamplers.Samplers.ToArray();
            }

            if (LibraryReconstructionFilters.ReconstructionFilters != null)
            {
                comboBoxReconstruction.DataSource =
                    LibraryReconstructionFilters.ReconstructionFilters.ToArray();
            }


            if (!String.IsNullOrEmpty(_editingPreset))
            {
                var preset = LibraryPresets.GetPreset(_editingPreset);
                comboBoxReconstruction.SelectedItem = preset.ReconstructionFilterName;
                comboBoxSampler.SelectedItem        = preset.SamplerName;
                comboBoxIntegrator.SelectedItem     = preset.IntegratorName;
            }

            tabControlProperties.SelectedIndex = 0;

            SaveOriginals();
        }