kicad-developers team mailing list archive
Mailing list archive
PCBNew: Segments/polygons not rendered correctly (from Bug 1806411])
Sorry for the delay.
Attached 2 examples (a small polygon and a large polygon inside a
footprint) of incorrect rendering when using our triangulation on Opengl
(from the sample board of bug 1806411).
To see that:
set the line 976 in pcb_painter.cpp
to use our triangulation in Opengl.
Note the incorrect rendering happens only when footprints are flipped.
I am not familiar with the PolygonTriangulation:: code
and, of course, I can be wrong,
but I am worried by this code in
PolygonTriangulation::TesselatePolygon( const SHAPE_LINE_CHAIN& aPoly )
if the first attempt to tesselate aPoly does not work, a second attempt
is made on a "simplified" polygon, using this code:
ClipperLib::SimplifyPolygon( aPoly.convertToClipper( true ), simplified );
If aPoly is self intersecting it can work, but our polygons are usually
not intersecting, but are polygons with holes linked by overlapping
So I am guessing "simplified" is a list of paths (polygons) the first is
the outline, and others are holes.
So in this case the tesselation cannot work.
(This is easy to see if the second attempt is forced instead of using
the first attempt.
Description: Zip compressed data