private void Add_Model_Click(object sender, RoutedEventArgs e) { if (ModelGroup != null) { if (RAMReader == null) { if (Model_Select_Dialog.ShowDialog() == System.Windows.Forms.DialogResult.OK) { string File_Name = Model_Select_Dialog.FileName; if (!File_Name.ToLower().Contains("model")) { return; } string Model_Path = File_Name; if (File.Exists(Model_Path)) { byte[] Model_Data = File.ReadAllBytes(Model_Path); ModelParser.ParseModel(Model_Data, Points, this); ModelVisualizer.Content = ModelGroup; viewPort3d.ZoomExtents(); } else { MessageBox.Show(Model_Path); } } } else { var DLAddressBox = new DrawListAddressBox(); if (DLAddressBox.ShowDialog().Value) { uint DrawListModelAddress = DLAddressBox.Address & ~0x80000000; RAMReader.BaseStream.Seek(DrawListModelAddress, SeekOrigin.Begin); ModelParser.ParseModel(RAMReader, this); ModelVisualizer.Content = ModelGroup; viewPort3d.ZoomExtents(); } } } else { MessageBox.Show("Couldn't find the _model file!"); } }
private void LoadModelFromRAMDump(string Dump_Location) { if (File.Exists(Dump_Location)) { var DLAddressBox = new DrawListAddressBox(); if (DLAddressBox.ShowDialog().Value) { if (RAMReader != null) { RAMReader.Close(); RAMStream.Dispose(); RAMReader.Dispose(); } PointsVisual3DList = new List <PointsVisual3D>(); Model3DList = new List <GeometryModel3D>(); uint DrawListModelAddress = DLAddressBox.Address & ~0x80000000; var FStream = new FileStream(Dump_Location, FileMode.Open); var Reader = new BinaryReader(FStream); RAMStream = FStream; RAMReader = Reader; Reader.BaseStream.Seek(DrawListModelAddress, SeekOrigin.Begin); bool SetModel = ModelGroup == null; if (ModelGroup == null) { ModelGroup = new Model3DGroup(); } else { ModelGroup.Children.Clear(); } ModelParser.ParseModel(Reader, this); if (SetModel) { ModelVisualizer.Content = ModelGroup; } viewPort3d.ZoomExtents(); } } }