/// <summary>
 /// Initializes a new instance of the <see cref="MeshReader"/> class.
 /// </summary>
 /// <param name="mesh">The mesh.</param>
 /// <param name="definition">The mesh's definition data.</param>
 public MeshReader(Mesh mesh, RenderGeometryResourceDefinition definition)
 {
     Mesh = mesh;
     Definition = definition;
     VertexStreams = new VertexBufferDefinition[StreamCount];
     IndexBuffers = new IndexBufferDefinition[IndexBufferCount];
     BindVertexStreams();
     BindIndexBuffers();
 }
Example #2
0
 /// <summary>
 /// Opens an index buffer stream on one of the mesh's index buffers.
 /// </summary>
 /// <param name="definition">The index buffer definition.</param>
 /// <param name="baseStream">The stream open on the mesh's resource data to use as a base stream.</param>
 /// <returns>The index buffer stream if successful, or <c>null</c> otherwise.</returns>
 public IndexBufferStream OpenIndexBufferStream(IndexBufferDefinition definition, Stream baseStream)
 {
     if (definition.Data.Address.Type != ResourceAddressType.Resource)
     {
         return(null); // Don't bother supporting non-resource addresses
     }
     baseStream.Position = definition.Data.Address.Offset;
     return(new IndexBufferStream(baseStream, IndexBufferFormat.UInt16));
 }
Example #3
0
 /// <summary>
 /// Initializes a new instance of the <see cref="MeshReader"/> class.
 /// </summary>
 /// <param name="version">The engine version to target.</param>
 /// <param name="mesh">The mesh.</param>
 /// <param name="definition">The mesh's definition data.</param>
 public MeshReader(EngineVersion version, Mesh mesh, RenderGeometryResourceDefinition definition)
 {
     _version      = version;
     Mesh          = mesh;
     Definition    = definition;
     VertexStreams = new VertexBufferDefinition[StreamCount];
     IndexBuffers  = new IndexBufferDefinition[IndexBufferCount];
     BindVertexStreams();
     BindIndexBuffers();
 }
 /// <summary>
 /// Opens an index buffer reader on one of the mesh's index buffers.
 /// </summary>
 /// <param name="definition">The index buffer definition.</param>
 /// <param name="baseStream">The stream open on the mesh's resource data to use as a base stream.</param>
 /// <returns>The index buffer reader if successful, or <c>null</c> otherwise.</returns>
 public IndexBufferReader OpenIndexBufferReader(IndexBufferDefinition definition, Stream baseStream)
 {
     if (definition.Data.Address.Type != ResourceAddressType.Resource)
         return null; // Don't bother supporting non-resource addresses
     baseStream.Position = definition.Data.Address.Offset;
     return new IndexBufferReader(new BinaryReader(baseStream), IndexBufferFormat.UInt16);
 }