public static void InitializePrimitive(GraphicsDevice graphicsDevice)
{
Point center = Point.Zero;
float xshift = (float)Math.Cos(Math.PI / (double)6) * radius;
float yshift = (float)Math.Sin(Math.PI / (double)6) * radius;
Vector3 up = new Vector3(0, 0, 1);
vertices.Add(new VertexPositionColor(new Vector3(center.X, center.Y, 1), new Color()));
vertices.Add(new VertexPositionColor(new Vector3(center.X + xshift, center.Y + yshift, 1), color));
vertices.Add(new VertexPositionColor(new Vector3(center.X + xshift, center.Y - yshift, 1), color));
vertices.Add(new VertexPositionColor(new Vector3(center.X, center.Y - radius, 1), color));
vertices.Add(new VertexPositionColor(new Vector3(center.X - xshift, center.Y - yshift, 1), color));
vertices.Add(new VertexPositionColor(new Vector3(center.X - xshift, center.Y + yshift, 1), color));
vertices.Add(new VertexPositionColor(new Vector3(center.X, center.Y + radius, 1), color));
indices.Add((ushort)0);
indices.Add((ushort)1);
indices.Add((ushort)2);
indices.Add((ushort)0);
indices.Add((ushort)2);
indices.Add((ushort)3);
indices.Add((ushort)0);
indices.Add((ushort)3);
indices.Add((ushort)4);
indices.Add((ushort)0);
indices.Add((ushort)4);
indices.Add((ushort)5);
indices.Add((ushort)0);
indices.Add((ushort)5);
indices.Add((ushort)6);
indices.Add((ushort)0);
indices.Add((ushort)6);
indices.Add((ushort)1);
// Create a vertex buffer, and copy our vertex data into it.
vertexBuffer = new VertexBuffer(graphicsDevice,
typeof(VertexPositionColor),
vertices.Count, BufferUsage.None);
vertexBuffer.SetData(vertices.ToArray());
// Create an index buffer, and copy our index data into it.
indexBuffer = new IndexBuffer(graphicsDevice, typeof(ushort),
indices.Count, BufferUsage.None);
indexBuffer.SetData(indices.ToArray());
// Create a BasicEffect, which will be used to render the primitive.
basicEffect = new BasicEffect(graphicsDevice);
//basicEffect.EnableDefaultLighting();
}