Algorithm to compute the ply of a given drawing using based on the line-sweep technique.
This algorithm, in order to be robust, takes several minutes to calculate the ply of a drawing.
Due to Double and Float limits, is it uses Apfloat to reduce approximation and caclulation issues. Apfloat is a High Performance Arbitrary Precision Arithmetic Package for C++ and Java.\
1.0
This project uses Maven. You need to upgrade the progect using Maven.
In order to be robust, all the numbers are expressed using the Apfloat framework configured with 1.000 decimal digits: Using so many digits reduces the probability of error due to approximations of irrational numbers, increasing the global Robustness.
Also, Duplicated events are added to the sweep line ensuring that the intersections between the circles and the Sweep-Line are non-degenerate intervals: between two consecutive events’x-coordinate the status of the drawing (and so the ply) doesn’t change. On the event point the circles overlap in a degenerate range, while in the middle of the two events the overlap of the circles is higher than the other points.
Sqrt operation may introduce approximation errors when the events or the intersections are computed. For example the intersection points between two cirlces c0 and c1 may be different if are computed passing (c0, c1) and (c1, c0).
Since there are the Duplicated events this issue is not critical.