Le 18/12/2018 à 18:18, Seth Hillbrand a écrit : > Am 2018-12-18 07:15, schrieb jp charras: >> Le 17/12/2018 à 22:26, Seth Hillbrand a écrit : >>> Hi JP- >>> Am 2018-12-17 08:47, schrieb jp charras: >>>> Note the incorrect rendering happens only when footprints are flipped. >>> >>> Thank you for the samples. I had coded the tesselation assuming the >>> copper layers, which always have the polygon in CW order for the outline >>> and CCW for the holes. But flipped footprints put the line chain in the >>> reverse order, so they render incorrectly. >>> >>> I've added some checks for the winding order to the code and re-enabled >>> the polygon caching. Let me know if you see any issues. >> >> Thanks Seth. >> >> Could you have a look into my commit 388397f97. >> I want to be sure I did not break your code. >> >> I modified Gerbview to use your tesselation. >> During my tests, I found a crash with degenerated polygons (having less >> than 3 corners). > > Hi JP- > > That should not cause any issues. But I think it is degenerate with the > test immediately following: > if( !firstVertex || firstVertex->prev == firstVertex->next ) > > I've adjusted the CacheTriangulation() routine to correctly handle the > case when tessellation fails. Specifically, it will set > m_triangulationValid=false if any of the polygons fail triangulation. > This should work because DrawPolygon() falls back to the built-in OpenGL > triangulation if the triangulation is not cached. The exception is in > the 3dviewer, which does not draw polygons. For this reason, we still > attempt the remaining triangulation even after we set the failure flag. > > Let me know if you see any issues. > > Best- > Seth
Sorry Seth, But with your fixes, CacheTriangulation() crashes with degenerated polygons. To see that, modify gerbview_painter.cpp, line 265 to remove absolutePolygon.COutline( 0 ).PointCount() < 3 and try to load the test file test_polygons_with_arcs.gbr in Gerbview. -- Jean-Pierre CHARRAS _______________________________________________ Mailing list: https://launchpad.net/~kicad-developers Post to : [email protected] Unsubscribe : https://launchpad.net/~kicad-developers More help : https://help.launchpad.net/ListHelp

