Пример #1
0
        //Attempt to read batch.xml to load previous settings
        //If anything goes wrong, just start without any preloaded settings
        public void ReadXml(XmlReader reader)
        {
            try
            {
                FileDescs = new Dictionary<string, FbxFileDesc>();

                reader.ReadToFollowing("BatchConversion");

                reader.ReadToDescendant("Output");
                OutputDir = reader.ReadElementContentAsString();

                while (reader.LocalName == "FbxFile")
                {
                    var newFile = new FbxFileDesc();

                    reader.ReadToDescendant("Filename");
                    var newFilename = reader.ReadElementContentAsString();

                    if (reader.LocalName != "CollisionGeneration")
                        reader.ReadToNextSibling("CollisionGeneration");

                    newFile.CollisionType = reader.ReadElementContentAsString();

                    while (reader.LocalName == "AnimClip")
                    {
                        var newClip = new AnimationClipDesc();

                        reader.ReadToDescendant("Name");
                        var newClipName = reader.ReadElementContentAsString();

                        if (reader.LocalName != "Keyframes")
                        reader.ReadToNextSibling("Keyframes");

                        newClip.BeginFrame = double.Parse(reader.GetAttribute("Begin"));
                        newClip.EndFrame = double.Parse(reader.GetAttribute("End"));
                        newClip.Fps = double.Parse(reader.GetAttribute("FPS"));

                        reader.Read();
                        reader.ReadEndElement();

                        newFile.AnimationClips.Add(newClipName, newClip);
                    }

                    reader.ReadEndElement();
                    FileDescs.Add(newFilename, newFile);
                }
            }
            catch (Exception)
            {
                MessageBox.Show(ParentWindow, "Unable to read batch.xml, starting with a clean slate...",
                                "Error", MessageBoxButton.OK,
                                MessageBoxImage.Error);
                FileDescs = new Dictionary<string, FbxFileDesc>();
                OutputDir = "";
            }
        }
Пример #2
0
        //Get the filedesc referenced in the textbox, or create a new one if it doesn't exist
        //Reset the other UI items
        private void TxtFileSelected_TextChanged(object sender, System.Windows.Controls.TextChangedEventArgs e)
        {
            if (!_allFiles.TryGetValue(TxtFileSelected.Text, out _selectedFile))
                _selectedFile = new FbxFileDesc();

            switch (_selectedFile.CollisionType)
            {
                case "Concave":
                    RadColConcave.IsChecked = true;
                    break;
                case "Convex":
                    RadColConvex.IsChecked = true;
                    break;
                case "None":
                    RadColNone.IsChecked = true;
                    break;
                default:
                    RadColConcave.IsChecked = false;
                    RadColConvex.IsChecked = false;
                    RadColNone.IsChecked = false;
                    break;
            }
            ListBoxAnimClips.Items.Clear();
            foreach (var clip in _selectedFile.AnimationClips)
            {
                ListBoxAnimClips.Items.Add(clip.Key);
            }
            TxtAnimClipSelected.Text = "";
            TxtAnimClipBegin.Text = "";
            TxtAnimClipEnd.Text = "";
            TxtAnimClipFps.Text = "";
        }