Пример #1
0
        private ImmutableArray <StripGroup> LoadStripGroups(BinaryReader reader, int count)
        {
            StripGroup[] stripGroups = new StripGroup[count];
            for (int i = 0; i < count; ++i)
            {
                long offset = reader.BaseStream.Position;

                int  vertexCount  = reader.ReadInt32();
                long vertexOffset = offset + reader.ReadInt32();

                int  indexCount  = reader.ReadInt32();
                long indexOffset = offset + reader.ReadInt32();

                int  stripCount  = reader.ReadInt32();
                long stripOffset = offset + reader.ReadInt32();

                StripGroupFlags flags = (StripGroupFlags)reader.ReadByte();

                long save = reader.BaseStream.Position;
                reader.BaseStream.Position = vertexOffset;
                ImmutableArray <Vertex> vertices = LoadVertices(reader, vertexCount);
                reader.BaseStream.Position = indexOffset;
                ImmutableArray <int> indices = LoadIndices(reader, indexCount);
                reader.BaseStream.Position = stripOffset;
                ImmutableArray <Strip> strips = LoadStrips(reader, stripCount);
                reader.BaseStream.Position = save;

                stripGroups[i] = new StripGroup(vertices, indices, flags, strips);
            }
            return(new ImmutableArray <StripGroup>(stripGroups));
        }
Пример #2
0
 internal StripGroup(
     ImmutableArray <Vertex> vertices, ImmutableArray <int> indices,
     StripGroupFlags flags, ImmutableArray <Strip> strips)
 {
     Vertices = vertices;
     Indices  = indices;
     Flags    = flags;
     Strips   = strips;
 }
Пример #3
0
 internal StripGroup(
     ImmutableArray<Vertex> vertices, ImmutableArray<int> indices, 
     StripGroupFlags flags, ImmutableArray<Strip> strips)
 {
     Vertices = vertices;
     Indices = indices;
     Flags = flags;
     Strips = strips;
 }