


Complemented functionality by adding a workaround for JDK-8159227. #501056, #495469, #499676, #510946, #511983, #511601 Reimplemented event forwarding within FXCanvasEx, so it can now be transparently used in a Java 8 and 9 environment (see 'GEF4 + 1 = GEF 5' for details). The refinement process is meant to remove as many segments, not contributing to the offset outline, from the unprocessed offset, as possible, so that it is still a continuous curve, which can be represented as a PolyBezier.

Therefore, you can see segments containing cusps, which are contained within the offset, and do not contribute to its outline. On the other hand, no segments are removed from the unprocessed offset. However, in some cases the algorithm might cut them out, which needs to be addressed in a later version. Most global self-intersections should be preserved. local self-intersections and start/end segments covered by other offset outlines. During refinement, segments are removed from the unprocessed offset approximation that do not contribute to the offset outline, i.e. The offset is an approximation consisting of multiple continuous BezierCurve objects, so that it can be represented by a PolyBezier.
