Exemple #1
0
        private void writeVertices <TVertexOut>(
            VertexSurface <TVertexOut> surface,
            Func <TVertex, TVertexOut> transform = null
            )
            where TVertexOut : struct, IVertexData
        {
            ushort vOffset;
            var    vertexArray = surface
                                 .WriteVerticesDirectly(this.vertices.Length, out vOffset);

            if (vOffset != 0)
            {
                throw new Exception("Expected vertex offset to be zero.");
            }

            if (transform == null)
            {
                this.vertices.CopyTo(vertexArray, 0);
            }
            else
            {
                for (int i = 0; i < this.vertices.Length; i++)
                {
                    vertexArray[i] = transform(this.vertices[i]);
                }
            }
        }