protected void SetVertexBuffer <V>(IVertexParser <V> vertexParser) where V : struct { numVertices = vertexParser.VertexCount; vertexStride = Marshal.SizeOf(typeof(V)); int SizeOfVertexBufferInBytes = numVertices * vertexStride; vertices = new DataStream(SizeOfVertexBufferInBytes, true, true); for (int i = 0; i < numVertices; i++) { vertexParser.FillVertex(i, out V vertex); vertices.Write(vertex); } vertices.Position = 0; boundingBox = BoundingBox.FromPoints(vertices, numVertices, vertexStride); boundingSphere = BoundingSphere.FromBox(boundingBox); vertexBuffer = new Buffer(DeviceManager.Instance.device, vertices, SizeOfVertexBufferInBytes, ResourceUsage.Default, BindFlags.VertexBuffer, CpuAccessFlags.None, ResourceOptionFlags.None, 0); }