Esempio n. 1
0
        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;
        }
Esempio n. 3
0
        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;
            }
        }