Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        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);
        }
Esempio n. 3
0
        private void btnExportAll_Click(object sender, RoutedEventArgs e)
        {
            string fileName, formatId;

            if (!PromptFileSave(out fileName, out formatId))
            {
                return;
            }

            ModelViewerPlugin.WriteModelFile(model, fileName, formatId);
        }
Esempio n. 4
0
        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);
        }