private bool PromptFileSave(IGeometryModel model, out string fileName, out string formatId) { var getExportFormats = Substrate.GetSharedFunction <GetExportFormats>("Reclaimer.Plugins.ModelViewerPlugin.GetExportFormats"); var exportFormats = getExportFormats() .Select(f => new { FormatId = f, Extension = ModelViewerPlugin.GetFormatExtension(f), Description = ModelViewerPlugin.GetFormatDescription(f) }).ToList(); var filter = string.Join("|", exportFormats.Select(f => $"{f.Description}|*.{f.Extension}")); var sfd = new SaveFileDialog { OverwritePrompt = true, FileName = model.Name, Filter = filter, FilterIndex = 1 + exportFormats.TakeWhile(f => f.FormatId != ArchitectSettingsPlugin.Settings.DefaultSaveFormat).Count(), AddExtension = true }; if (sfd.ShowDialog() != true) { fileName = formatId = null; return(false); } fileName = sfd.FileName; formatId = exportFormats[sfd.FilterIndex - 1].FormatId; ArchitectSettingsPlugin.Settings.DefaultSaveFormat = formatId; return(true); }
private void btnExportSelected_Click(object sender, RoutedEventArgs e) { string fileName, formatId; if (!PromptFileSave(out fileName, out formatId)) { return; } var selectedPerms = new List <IGeometryPermutation>(); foreach (var parent in TreeViewItems.Zip(model.Regions.Except(InvalidRegions), (a, b) => new { Node = a, Region = b })) { if (parent.Node.IsChecked == false) { continue; } foreach (var child in parent.Node.Items.Zip(parent.Region.Permutations.Except(InvalidPermutations), (a, b) => new { Node = a, Permutation = b })) { if (child.Node.IsChecked == true) { selectedPerms.Add(child.Permutation); } } } var masked = new MaskedGeometryModel(model, selectedPerms); ModelViewerPlugin.WriteModelFile(masked, fileName, formatId); }
private void btnExportAll_Click(object sender, RoutedEventArgs e) { string fileName, formatId; if (!PromptFileSave(out fileName, out formatId)) { return; } ModelViewerPlugin.WriteModelFile(model, fileName, formatId); }
private void btnExportSelected_Click(object sender, RoutedEventArgs e) { string fileName, formatId; if (!PromptFileSave(out fileName, out formatId)) { return; } var masked = new MaskedGeometryModel(model, GetSelectedPermutations()); ModelViewerPlugin.WriteModelFile(masked, fileName, formatId); }
public ItemCollection GetValues() { var items = ModelViewerPlugin.GetExportFormats() .Select(id => new Item { Value = id, DisplayName = ModelViewerPlugin.GetFormatDescription(id) }) .OrderBy(i => i.DisplayName); var result = new ItemCollection(); result.AddRange(items); return(result); }