private static void AddPoints(Group g, Vector3[] pointCenters, Texture texture, float size) { BufferedIndexedPrimitives <VertexFakePointSprite> indexedPrimitives = new BufferedIndexedPrimitives <VertexFakePointSprite>(PrimitiveType.TriangleList); g.Geometry = (IIndexedPrimitiveCollection)indexedPrimitives; indexedPrimitives.Vertices = new VertexFakePointSprite[pointCenters.Length * 4]; indexedPrimitives.Indices = new int[pointCenters.Length * 6]; Random random = RandomHelper.Random; int length = StarField.Colors.Length; VertexFakePointSprite[] vertices = indexedPrimitives.Vertices; int[] indices = indexedPrimitives.Indices; for (int index1 = 0; index1 < pointCenters.Length; ++index1) { Color color = StarField.Colors[random.Next(0, length)]; int index2 = index1 * 4; vertices[index2] = new VertexFakePointSprite(pointCenters[index1], color, new Vector2(0.0f, 0.0f), new Vector2(-size, -size)); vertices[index2 + 1] = new VertexFakePointSprite(pointCenters[index1], color, new Vector2(1f, 0.0f), new Vector2(size, -size)); vertices[index2 + 2] = new VertexFakePointSprite(pointCenters[index1], color, new Vector2(1f, 1f), new Vector2(size, size)); vertices[index2 + 3] = new VertexFakePointSprite(pointCenters[index1], color, new Vector2(0.0f, 1f), new Vector2(-size, size)); int index3 = index1 * 6; indices[index3] = index2; indices[index3 + 1] = index2 + 1; indices[index3 + 2] = index2 + 2; indices[index3 + 3] = index2; indices[index3 + 4] = index2 + 2; indices[index3 + 5] = index2 + 3; } indexedPrimitives.UpdateBuffers(); indexedPrimitives.CleanUp(); g.Texture = texture; }
private static void AddPoints(Group g, Vector3[] pointCenters, Texture texture, float size) { BufferedIndexedPrimitives<VertexFakePointSprite> indexedPrimitives = new BufferedIndexedPrimitives<VertexFakePointSprite>(PrimitiveType.TriangleList); g.Geometry = (IIndexedPrimitiveCollection) indexedPrimitives; indexedPrimitives.Vertices = new VertexFakePointSprite[pointCenters.Length * 4]; indexedPrimitives.Indices = new int[pointCenters.Length * 6]; Random random = RandomHelper.Random; int length = StarField.Colors.Length; VertexFakePointSprite[] vertices = indexedPrimitives.Vertices; int[] indices = indexedPrimitives.Indices; for (int index1 = 0; index1 < pointCenters.Length; ++index1) { Color color = StarField.Colors[random.Next(0, length)]; int index2 = index1 * 4; vertices[index2] = new VertexFakePointSprite(pointCenters[index1], color, new Vector2(0.0f, 0.0f), new Vector2(-size, -size)); vertices[index2 + 1] = new VertexFakePointSprite(pointCenters[index1], color, new Vector2(1f, 0.0f), new Vector2(size, -size)); vertices[index2 + 2] = new VertexFakePointSprite(pointCenters[index1], color, new Vector2(1f, 1f), new Vector2(size, size)); vertices[index2 + 3] = new VertexFakePointSprite(pointCenters[index1], color, new Vector2(0.0f, 1f), new Vector2(-size, size)); int index3 = index1 * 6; indices[index3] = index2; indices[index3 + 1] = index2 + 1; indices[index3 + 2] = index2 + 2; indices[index3 + 3] = index2; indices[index3 + 4] = index2 + 2; indices[index3 + 5] = index2 + 3; } indexedPrimitives.UpdateBuffers(); indexedPrimitives.CleanUp(); g.Texture = texture; }