I'm trying to draw multiple triangles at once to make up a "shape". I have a class that has an array of VertexPositionColor, an array of Indexes (rendered by this Triangulation class):
http://www.xnawiki.com/index.php/Polygon_Triangulation
So, my "shape" has multiple points of VertexPositionColor but I can't render each triangle in the shape to "fill" the shape. It only draws the first triangle.
struct ShapeColor
{
// Properties (not all properties)
VertexPositionColor[] Points;
int[] Indexes;
}
First method that I've tried, this should work since I iterate through the index array that always are of "3s", so they always contain at least one triangle.
//render = ShapeColor
for (int i = 0; i < render.Indexes.Length; i += 3)
{
device.DrawUserIndexedPrimitives<VertexPositionColor>
(
PrimitiveType.TriangleList,
new VertexPositionColor[] { render.Points[render.Indexes[i]], render.Points[render.Indexes[i+1]], render.Points[render.Indexes[i+2]] },
0,
3,
new int[] { 0, 1, 2 },
0,
1
);
}
or the method that should work:
device.DrawUserIndexedPrimitives<VertexPositionColor>
(
PrimitiveType.TriangleList,
render.Points,
0,
render.Points.Length,
render.Indexes,
0,
render.Indexes.Length / 3,
VertexPositionColor.VertexDeclaration
);
No matter what method I use this is the "typical" result from my Editor (in Windows Forms with XNA)
It should show a filled shape, because the indexes are right (I've checked a dozen of times)
I simply click the screen (gets the world coordinates, adds a point from a color, when there are 3 points or more it should start filling out the shape, it only draws the lines (different method) and only 1 triangle). The Grid isn't rendered with "this" shape.
Any ideas?