Exemplo n.º 1
0
 /// <summary>
 /// Imports the data from the specified file.
 /// </summary>
 /// <param name="metadata">The asset metadata for the asset to import.</param>
 /// <param name="stream">The stream that contains the data to import.</param>
 /// <returns>The data structure that was imported from the file.</returns>
 public override String Import(IContentImporterMetadata metadata, Stream stream)
 {
     using (var reader = new StreamReader(stream))
     {
         return(reader.ReadToEnd());
     }
 }
        /// <inheritdoc/>
        public override MemoryStream Import(IContentImporterMetadata metadata, Stream stream)
        {
            var buffer = new Byte[stream.Length];

            stream.Read(buffer, 0, buffer.Length);
            return(new MemoryStream(buffer));
        }
Exemplo n.º 3
0
 /// <inheritdoc/>
 public override JObject Import(IContentImporterMetadata metadata, Stream stream)
 {
     using (var reader = new StreamReader(stream))
     {
         var json = reader.ReadToEnd();
         return(JObject.Parse(json));
     }
 }
Exemplo n.º 4
0
 /// <inheritdoc/>
 public override JObject Import(IContentImporterMetadata metadata, Stream stream)
 {
     using (var sreader = new StreamReader(stream))
         using (var jreader = new JsonTextReader(sreader))
         {
             return(JObject.Load(jreader));
         }
 }
Exemplo n.º 5
0
        /// <inheritdoc/>
        public override ModelRoot Import(IContentImporterMetadata metadata, Stream stream)
        {
            if (!metadata.IsFile)
            {
                throw new NotSupportedException();
            }

            return(ModelRoot.Load(metadata.AssetFilePath));
        }
        /// <inheritdoc/>
        public override FreeTypeFontInfo Import(IContentImporterMetadata metadata, Stream stream)
        {
            var fileSystemService = new FileSystemService();

            var fontMetadata = metadata.As <FreeTypeFontImporterMetadata>();

            var faceBoldAsset       = default(String);
            var faceItalicAsset     = default(String);
            var faceBoldItalicAsset = default(String);

            if (metadata.IsFile)
            {
                var faceRegularAsset = metadata.AssetFilePath;
                faceBoldAsset       = String.IsNullOrEmpty(fontMetadata.BoldFace) ? null : ResolveDependencyAssetFilePath(metadata, fontMetadata.BoldFace);
                faceItalicAsset     = String.IsNullOrEmpty(fontMetadata.ItalicFace) ? null : ResolveDependencyAssetFilePath(metadata, fontMetadata.ItalicFace);
                faceBoldItalicAsset = String.IsNullOrEmpty(fontMetadata.BoldItalicFace) ? null : ResolveDependencyAssetFilePath(metadata, fontMetadata.BoldItalicFace);
            }

            var faceRegularData = ReadStreamIntoNativeMemory(stream, out var faceRegularDataLength);

            var faceBoldDataLength = 0;
            var faceBoldData       = IntPtr.Zero;

            if (faceBoldAsset != null)
            {
                using (var faceBoldStream = fileSystemService.OpenRead(faceBoldAsset))
                    faceBoldData = ReadStreamIntoNativeMemory(faceBoldStream, out faceBoldDataLength);
            }

            var faceItalicDataLength = 0;
            var faceItalicData       = IntPtr.Zero;

            if (faceItalicAsset != null)
            {
                using (var faceItalicStream = fileSystemService.OpenRead(faceItalicAsset))
                    faceItalicData = ReadStreamIntoNativeMemory(faceItalicStream, out faceItalicDataLength);
            }

            var faceBoldItalicDataLength = 0;
            var faceBoldItalicData       = IntPtr.Zero;

            if (faceBoldItalicAsset != null)
            {
                using (var faceBoldItalicStream = fileSystemService.OpenRead(faceBoldItalicAsset))
                    faceBoldItalicData = ReadStreamIntoNativeMemory(faceBoldItalicStream, out faceBoldItalicDataLength);
            }

            return(new FreeTypeFontInfo(
                       faceRegularData, faceRegularDataLength,
                       faceBoldData, faceBoldDataLength,
                       faceItalicData, faceItalicDataLength,
                       faceBoldItalicData, faceBoldItalicDataLength));
        }
        /// <summary>
        /// Imports the data from the specified file.
        /// </summary>
        /// <param name="metadata">The asset metadata for the asset to import.</param>
        /// <param name="stream">The stream that contains the data to import.</param>
        /// <returns>The data structure that was imported from the file.</returns>
        public override PlatformNativeSurface Import(IContentImporterMetadata metadata, Stream stream)
        {
            var data = new Byte[stream.Length];

            stream.Read(data, 0, data.Length);

            using (var mstream = new MemoryStream(data))
                using (var source = SurfaceSource.Create(mstream))
                {
                    return(new SDL2PlatformNativeSurface(source));
                }
        }
Exemplo n.º 8
0
        /// <summary>
        /// Imports an ASCII-format STL file.
        /// </summary>
        private StlModelDescription ImportAscii(IContentImporterMetadata metadata, Stream stream)
        {
            using (var reader = new StreamReader(stream, Encoding.ASCII, false, 1024, true))
            {
                // Read the model's name.
                var name = reader.ReadLine().Trim();

                // Read the model's facets.
                var triangles = new List <StlModelTriangleDescription>();
                while (!reader.EndOfStream)
                {
                    String Advance(StreamReader r) => r.ReadLine().Trim();

                    var line = Advance(reader);
                    if (Accept(ref line, "endsolid"))
                    {
                        var endsolidName = line.Trim();
                        if (!endsolidName.Equals(name, StringComparison.Ordinal))
                        {
                            throw new InvalidDataException(UltravioletStrings.MalformedContentFile);
                        }

                        break;
                    }

                    ExpectCoordinates(ref line, "facet normal", out var normal);

                    line = Advance(reader);
                    Expect(ref line, "outer loop");

                    line = Advance(reader);
                    ExpectCoordinates(ref line, "vertex", out var v1);

                    line = Advance(reader);
                    ExpectCoordinates(ref line, "vertex", out var v2);

                    line = Advance(reader);
                    ExpectCoordinates(ref line, "vertex", out var v3);

                    line = Advance(reader);
                    Expect(ref line, "endloop");

                    line = Advance(reader);
                    Expect(ref line, "endfacet");

                    triangles.Add(new StlModelTriangleDescription(normal, v1, v2, v3));
                }

                return(new StlModelDescription {
                    Name = name, Triangles = triangles
                });
            }
        }
Exemplo n.º 9
0
        /// <inheritdoc/>
        public override FMODMediaDescription Import(IContentImporterMetadata metadata, Stream stream)
        {
            if (metadata.IsFile)
            {
                return(new FMODMediaDescription(metadata.AssetFilePath));
            }

            var buffer = new Byte[stream.Length];

            stream.Read(buffer, 0, buffer.Length);
            return(new FMODMediaDescription(buffer));
        }
Exemplo n.º 10
0
        /// <summary>
        /// Imports the data from the specified file.
        /// </summary>
        /// <param name="metadata">The asset metadata for the asset to import.</param>
        /// <param name="stream">The <see cref="Stream"/> that contains the data to import.</param>
        /// <returns>The data structure that was imported from the file.</returns>
        public override String[] Import(IContentImporterMetadata metadata, Stream stream)
        {
            var lines = new List <String>();

            using (var reader = new StreamReader(stream))
            {
                while (reader.Peek() >= 0)
                {
                    var line = reader.ReadLine();
                    lines.Add(line);
                }
            }
            return(lines.ToArray());
        }
Exemplo n.º 11
0
        /// <summary>
        /// Resolves the asset file path of the specified dependency.
        /// </summary>
        /// <param name="metadata">The content processor metadata.</param>
        /// <param name="dependency">The relative path of the dependency to resolve.</param>
        /// <returns>The asset path of the specified dependency.</returns>
        protected static String ResolveDependencyAssetFilePath(IContentImporterMetadata metadata, String dependency)
        {
            Contract.Require(metadata, nameof(metadata));

            if (dependency == null)
            {
                return(null);
            }

            if (metadata.AssetFilePath == null)
            {
                return(dependency);
            }

            return(ContentManager.NormalizeAssetPath(Path.Combine(Path.GetDirectoryName(metadata.AssetFilePath), dependency)));
        }
Exemplo n.º 12
0
        /// <summary>
        /// Imports a binary-format STL file.
        /// </summary>
        private StlModelDescription ImportBinary(IContentImporterMetadata metadata, Stream stream)
        {
            // Skip the rest of the header.
            stream.Seek(75, SeekOrigin.Current);

            // Read triangles.
            using (var reader = new BinaryReader(stream, Encoding.ASCII, true))
            {
                var triangleCount = reader.ReadUInt32();
                var triangles     = new StlModelTriangleDescription[triangleCount];

                for (var i = 0u; i < triangleCount; i++)
                {
                    var nx     = reader.ReadSingle();
                    var ny     = reader.ReadSingle();
                    var nz     = reader.ReadSingle();
                    var normal = Vector3.Normalize(new Vector3(nx, ny, nz));

                    var v1x = reader.ReadSingle();
                    var v1y = reader.ReadSingle();
                    var v1z = reader.ReadSingle();
                    var v1  = new Vector3(v1x, v1y, v1z);

                    var v2x = reader.ReadSingle();
                    var v2y = reader.ReadSingle();
                    var v2z = reader.ReadSingle();
                    var v2  = new Vector3(v2x, v2y, v2z);

                    var v3x = reader.ReadSingle();
                    var v3y = reader.ReadSingle();
                    var v3z = reader.ReadSingle();
                    var v3  = new Vector3(v3x, v3y, v3z);

                    var attributeByteCount = reader.ReadUInt16();
                    if (attributeByteCount > 0)
                    {
                        throw new NotSupportedException(UltravioletStrings.MalformedContentFile);
                    }

                    triangles[i] = new StlModelTriangleDescription(normal, v1, v2, v3);
                }

                return(new StlModelDescription {
                    Triangles = triangles
                });
            }
        }
Exemplo n.º 13
0
        /// <inheritdoc/>
        public override StlModelDescription Import(IContentImporterMetadata metadata, Stream stream)
        {
            var header = new Byte[5];

            stream.Read(header, 0, header.Length);
            if (header[0] == (Byte)'s' &&
                header[1] == (Byte)'o' &&
                header[2] == (Byte)'l' &&
                header[3] == (Byte)'i' &&
                header[4] == (Byte)'d')
            {
                return(ImportAscii(metadata, stream));
            }
            else
            {
                return(ImportBinary(metadata, stream));
            }
        }
Exemplo n.º 14
0
 /// <inheritdoc/>
 public override ModelRoot Import(IContentImporterMetadata metadata, Stream stream)
 {
     return(ModelRoot.ReadGLB(stream));
 }
Exemplo n.º 15
0
 /// <inheritdoc/>
 public override XDocument Import(IContentImporterMetadata metadata, Stream stream) =>
 XDocument.Load(stream);
Exemplo n.º 16
0
 /// <summary>
 /// Imports the data from the specified file.
 /// </summary>
 /// <param name="metadata">The asset metadata for the asset to import.</param>
 /// <param name="stream">The stream that contains the data to import.</param>
 /// <returns>The data structure that was imported from the file.</returns>
 public override SDL_Surface Import(IContentImporterMetadata metadata, Stream stream)
 {
     return(SDL_Surface.CreateFromStream(stream));
 }
 /// <inheritdoc/>
 public override String Import(IContentImporterMetadata metadata, Stream stream)
 {
     return(metadata.AssetFilePath);
 }
Exemplo n.º 18
0
 /// <summary>
 /// Imports the data from the specified file.
 /// </summary>
 /// <param name="metadata">The asset metadata for the asset to import.</param>
 /// <param name="stream">The <see cref="Stream"/> that contains the data to import.</param>
 /// <returns>The data structure that was imported from the file.</returns>
 public abstract T Import(IContentImporterMetadata metadata, Stream stream);
Exemplo n.º 19
0
 /// <summary>
 /// Imports the data from the specified file.
 /// </summary>
 /// <param name="metadata">The asset metadata for the asset to import.</param>
 /// <param name="stream">The <see cref="Stream"/> that contains the data to import.</param>
 /// <returns>The data structure that was imported from the file.</returns>
 Object IContentImporter.Import(IContentImporterMetadata metadata, Stream stream)
 {
     return(Import(metadata, stream));
 }
Exemplo n.º 20
0
 /// <inheritdoc/>
 public override XDocument Import(IContentImporterMetadata metadata, Stream stream)
 {
     return(XmlUtil.Load(stream));
 }