private Model3DGroup LoadModel(string path) { if (string.IsNullOrWhiteSpace(path)) { return(null); } if (!System.IO.Path.HasExtension(path) || !System.IO.File.Exists(path)) { return(null); } HelixToolkit.Wpf.IModelReader reader = null; string fileExtension = System.IO.Path.GetExtension(path).ToLower(); switch (fileExtension) { case ".3ds": reader = new HelixToolkit.Wpf.StudioReader(); break; case ".lwo": reader = new HelixToolkit.Wpf.LwoReader(); break; case ".obj": reader = new HelixToolkit.Wpf.ObjReader(); break; case ".objz": reader = new HelixToolkit.Wpf.ObjReader(); break; case ".stl": reader = new HelixToolkit.Wpf.StLReader(); break; case ".off": reader = new HelixToolkit.Wpf.OffReader(); break; default: return(null); } Model3DGroup model = reader.Read(path); if (_useTransparensy) { foreach (var mod in model.Children) { if (mod is GeometryModel3D) { ((GeometryModel3D)mod).Material = new DiffuseMaterial(new SolidColorBrush((Color)ColorConverter.ConvertFromString("#40FFFFFF"))); ((GeometryModel3D)mod).BackMaterial = new DiffuseMaterial(new SolidColorBrush((Color)ColorConverter.ConvertFromString("#40FFFFFF"))); } } } return(model); }
private Model3DGroup LoadModel(string path) { if (string.IsNullOrWhiteSpace(path)) { return null; } if (!System.IO.Path.HasExtension(path) || !System.IO.File.Exists(path)) { return null; } HelixToolkit.Wpf.IModelReader reader = null; string fileExtension = System.IO.Path.GetExtension(path).ToLower(); switch (fileExtension) { case ".3ds": reader = new HelixToolkit.Wpf.StudioReader(); break; case ".lwo": reader = new HelixToolkit.Wpf.LwoReader(); break; case ".obj": reader = new HelixToolkit.Wpf.ObjReader(); break; case ".objz": reader = new HelixToolkit.Wpf.ObjReader(); break; case ".stl": reader = new HelixToolkit.Wpf.StLReader(); break; case ".off": reader = new HelixToolkit.Wpf.OffReader(); break; default: return null; } Model3DGroup model = reader.Read(path); if (_useTransparensy) { foreach (var mod in model.Children) { if (mod is GeometryModel3D) { ((GeometryModel3D)mod).Material = new DiffuseMaterial(new SolidColorBrush((Color)ColorConverter.ConvertFromString("#40FFFFFF"))); ((GeometryModel3D)mod).BackMaterial = new DiffuseMaterial(new SolidColorBrush((Color)ColorConverter.ConvertFromString("#40FFFFFF"))); } } } return model; }
private void OpenFile_OnClick(object sender, RoutedEventArgs e) { string[] filters = new[] { "All Files|*.jpg;*.jpeg;*.png;*.gif;*.tif;*.bmp*.avi;*.wmv;*.mp4;*.mpg;*.mkv;*.gyg;*.pcd;*.js;*.nvm;*.ifc;*.obj;*.txt", "Image Files|*.jpg;*.jpeg;*.png;*.gif;*.tif;*.bmp", "Video Files|*.avi;*.wmv;*.mp4;*.mpg;*.mkv;*.gyg", "Pointcloud Files|*.pcd;*.js;*.nvm", "BIM Files|*.ifc", "Wavefront Object Files|*.obj", "Camera Position Files|*.txt" }; var res = new OpenFileDialog { Filter = String.Join("|", filters) }; if (res.ShowDialog() != DialogResult.OK) { return; } switch (res.FileName.Split('.').Last().ToLower()) { case "jpg": case "jpeg": case "png": case "gif": case "tif": case "bmp": _viewModel.Items.Add(new Image(res.FileName)); break; case "gyg": _viewModel.Items.Add(new GygaxVideo(res.FileName)); break; case "avi": case "wmv": case "mp4": case "mpg": case "mkv": _viewModel.Items.Add(new Video(res.FileName)); break; case "pcd": _viewModel.Items.Add(new Pointcloud(res.FileName)); break; case "js": _viewModel.Items.Add(new Potree(new Uri(res.FileName))); break; case "nvm": _viewModel.Items.Add(new VsfmReconstruction(res.FileName)); break; case "ifc": _viewModel.Items.Add(new IfcViewerWrapper(res.FileName)); break; case "obj": var objReader = new HelixToolkit.Wpf.ObjReader(); var group = objReader.Read(res.FileName); _viewModel.Items.Add(new Streamable() { Data = group, Location = res.FileName, Name = Path.GetFileNameWithoutExtension(res.FileName) }); break; case "txt": _viewModel.Items.Add(new SceneScannerPosition(res.FileName)); break; } }