← Back to team overview

kicad-developers team mailing list archive

Re: boost::polygon workaround and now Clipper + boost::polygon

 

Le 22/10/2013 16:39, Tomasz Wlostowski a écrit :
> On 10/20/2013 05:20 PM, jp charras wrote:
> 
>>
>> No it is not fixed and it will be not fixed.
>> This bug happens only with GCC 4.7.0, GCC 4.7.1 and GCC 4.7.2.
>>
>> The guy who is working on boost polygon is not able to fix it, and he is
>> thinking this is a GCC bug, not a boost bug.
> Hi Jean-Pierre,
> 
> Sorry if my questions sounds dumb, but what's the reason for using both
> Clipper library and boost::polygon? Is clipper missing some features of
> available in bpl?
> 
> Regards,
> Tom
> 

In fact both are missing some features (unless I missed something)
needed to handle copper zones.
I am using Clipper to simplify self crossing polygons:
Clipper converts a self crossing polygon to separate not self crossing
polygons.
I was not able to do that with bpl.
Bpl handles easily polygons with holes(both as a main polygon outlines +
other polygons which are holes, needed for copper zone outlines or one
polygon with overlapping edges to link holes to main outlines, needed to
draw or fill a zone with segments.
And with bpl, this is easy to convert a form to the other form.
But with Clipper this is not possible.

I also found Clipper slower than bpl to calculate filled areas in zones.

Clipper is actively maintained, easy to use, so things can change in the
future.

Remember also the fact a polygon used in copper zones or 3D view has
easily more than 30000 corners.
Intermediate calculations use easily more than 100 000 corners.

I never used CGAL.

Be careful with polygon libraries: polygon calculations are very
complex, and until now, *all* libraries I used have bugs.
Bpl is a library which has not a lot of bug, but it has bugs (and I am
not talking about the GCC issue).
Sometimes bugs take a lot of time to be found:
the first bug in Bpl was found more than one year after it was widely in
use.
(Usually, a bug in polygon calculation happens with very special polygon
shapes, and to find these shapes take a lot of time)

Regards,
-- 
Jean-Pierre CHARRAS


References