HelixToolkit.Wpf.ObjReader.ReadZ C# (CSharp) Метод

ReadZ() публичный Метод

Reads a GZipStream compressed OBJ file.
This is a file format used by Helix Toolkit only. Use the GZipHelper class to compress an .obj file.
public ReadZ ( string path ) : System.Windows.Media.Media3D.Model3DGroup
path string The path.
Результат System.Windows.Media.Media3D.Model3DGroup
        public Model3DGroup ReadZ(string path)
        {
            this.TexturePath = Path.GetDirectoryName(path);
            using (var s = new FileStream(path, FileMode.Open, FileAccess.Read, FileShare.Read))
            {
                var deflateStream = new GZipStream(s, CompressionMode.Decompress, true);
                return this.Read(deflateStream);
            }
        }

Usage Example

Пример #1
0
        /// <summary>
        /// Loads a model from the specified path.
        /// </summary>
        /// <param name="path">The path.</param>
        /// <param name="dispatcher">The dispatcher used to create the model.</param>
        /// <param name="freeze">Freeze the model if set to <c>true</c>.</param>
        /// <returns>A model.</returns>
        /// <exception cref="System.InvalidOperationException">File format not supported.</exception>
        public Model3DGroup Load(string path, Dispatcher dispatcher = null, bool freeze = false)
        {
            if (path == null)
            {
                return(null);
            }

            if (dispatcher == null)
            {
                dispatcher = Dispatcher.CurrentDispatcher;
            }

            Model3DGroup model;
            var          ext = Path.GetExtension(path);

            if (ext != null)
            {
                ext = ext.ToLower();
            }

            switch (ext)
            {
            case ".3ds":
            {
                var r = new StudioReader(dispatcher)
                {
                    DefaultMaterial = this.DefaultMaterial, Freeze = freeze
                };
                model = r.Read(path, ApplyNormalToFace);
                break;
            }

            case ".lwo":
            {
                var r = new LwoReader(dispatcher)
                {
                    DefaultMaterial = this.DefaultMaterial, Freeze = freeze
                };
                model = r.Read(path);

                break;
            }

            case ".obj":
            {
                var r = new ObjReader(dispatcher)
                {
                    DefaultMaterial = this.DefaultMaterial, Freeze = freeze
                };
                model = r.Read(path);
                break;
            }

            case ".objz":
            {
                var r = new ObjReader(dispatcher)
                {
                    DefaultMaterial = this.DefaultMaterial, Freeze = freeze
                };
                model = r.ReadZ(path);
                break;
            }

            case ".stl":
            {
                var r = new StLReader(dispatcher)
                {
                    DefaultMaterial = this.DefaultMaterial, Freeze = freeze
                };
                model = r.Read(path);
                break;
            }

            case ".off":
            {
                var r = new OffReader(dispatcher)
                {
                    DefaultMaterial = this.DefaultMaterial, Freeze = freeze
                };
                model = r.Read(path);
                break;
            }

            default:
                throw new InvalidOperationException("File format not supported.");
            }

            //if (!freeze)
            //{
            //    dispatcher.Invoke(new Action(() => model.SetName(Path.GetFileName(path))));
            //}

            return(model);
        }
All Usage Examples Of HelixToolkit.Wpf.ObjReader::ReadZ