PathsD paths = new PathsD(List.of(
new PathD(List.of(new PointD(18000.000000, 2816.225830), new PointD(-18000.000000, 2816.225830), new PointD(-18000.000000, -2202.873535), new PointD(18000.000000, -2202.873535))),
new PathD(List.of(new PointD(-9032.000000,3820.046631), new PointD(-9032.000000,2816.225830), new PointD(-5968.000000,2816.225830), new PointD(-5967.999512,3820.046875))),
new PathD(List.of(new PointD(5968.000488,3820.046143), new PointD(5968.000000,2816.225830), new PointD(9032.000000,2816.225830), new PointD(9032.000000,3820.046143)))
));
var polyTree = new PolyTreeD();
var openPaths = new PathsD();
var clipD = new ClipperD(0);
clipD.addSubjects(paths);
clipD.execute(ClipType.Union, FillRule.NonZero, polyTree, openPaths);
This was the simplest failure case i was able to find, running the test causes a Stack overflow within ClipperBase.RecursiveCheckOwners,
ClipperD.execute() with polyTreeD output doesn't seems to set usePolyTree = true here is the fix from the origional Clipper2 library that seems to fix this related issue AngusJohnson/Clipper2@4057a50
I was unable to test if this was the actual solution but seems to be relevant.
This was the simplest failure case i was able to find, running the test causes a Stack overflow within
ClipperBase.RecursiveCheckOwners,ClipperD.execute()withpolyTreeDoutput doesn't seems to setusePolyTree = truehere is the fix from the origional Clipper2 library that seems to fix this related issue AngusJohnson/Clipper2@4057a50I was unable to test if this was the actual solution but seems to be relevant.