← Back to team overview

kicad-developers team mailing list archive

[PATCH] No more boost::polygon in Kicad

 

Hi,

We've pushed a branch [1] to Launchpad, which removes remaining
Boost::polygon-based code from Kicad. The patch affects several features
of pcbnew - we need your help to test it as extensively as possible:
- zone filling calculations (both with segments and as solid polygons)
- dead copper removal in zones (also touches ratsnest, in both views)
- 3D viewer
- DXF board outline export
- plotting zones, solder mask layers and board outline
- VRML export.
The only program that still uses BPL is bitmap2component.

Going into technical details, the patch extends SHAPE_POLY_SET with
remaining features of CPOLYGONS_LIST (+ point inside polygon check) and
replaces all CPOLYGONS_LIST instances except the m_CornersList member of
CPolyLine class. We didn't touch the CPolyLine class yet, although the
next item on the list would be porting CPolyLine::Chamfer/Fillet/Hatch
methods to SHAPE_POLY_SET and come up with a single, universal polygon
set class.

We've also removed a number of lines of code that became obsolete - for
instance the functions for converting between boost::polygon, Clipper
and CPOLYGONS_LIST or implicit polygon slitting done with Boost (now a
single call of SHAPE_POLY_SET::Fracture), so in the end Kicad lost a bit
of weight ;)

Many thanks to Orson for testing & helping myself with Bazaar.

Cheers,
Tom

[1] https://code.launchpad.net/~orsonmmz/kicad/depolygonized



Follow ups