// input polyline
cavc::Polyline<double> input;
// add vertexes as (x, y, bulge)
input.addVertex(-30.425, -19.3125, 0);
input.addVertex(-30.425, -19.6875, 0);
input.addVertex(45.575, -19.6875, 0);
input.addVertex(45.575, -19.3125, 0);
input.addVertex(102.575, -19.3125, 0);
input.addVertex(102.575, 77.25, 0);
input.addVertex(-87.3, 77.25, 0);
input.addVertex(-87.3, -18.9375, 0);
input.addVertex(-30.425, -18.9375, 0);
input.isClosed() = true;
cavc::Polyline<double> b;
// add vertexes as (x, y, bulge)
b.addVertex(45.575, -19.3125, 0);
b.addVertex(102.575, -19.3125, 0);
b.addVertex(102.575, -18.9375, 0);
b.addVertex(45.575, -18.9375, 0);
b.isClosed() = true;
cavc::CombineResult<double> res = cavc::combinePolylines(input, b, cavc::PlineCombineMode::Exclude); // As expected
cavc::Polyline<double> pA2;
pA2.addVertex(-48.583333333333364, -32.104166666666657, 0);
pA2.addVertex(-48.583333333333364, -32.479166666666657, 0);
pA2.addVertex(27.416666666666686, -32.479166666666657, 0);
pA2.addVertex(27.416666666666686, -32.104166666666657, 0);
pA2.addVertex(84.416666666666686, -32.104166666666657, 0);
pA2.addVertex(84.416666666666657, 64.458333333333343, 0);
pA2.addVertex(-105.45833333333334, 64.458333333333343, 0);
pA2.addVertex(-105.45833333333331, -31.729166666666664, 0);
pA2.addVertex(-48.583333333333314, -31.729166666666664, 0);
pA2.isClosed() = true;
cavc::Polyline<double> pB2;
pB2.addVertex(27.416666666666686, -32.104166666666664, 0);
pB2.addVertex(84.416666666666686, -32.104166666666664, 0);
pB2.addVertex(84.416666666666686, -31.729166666666664, 0);
pB2.addVertex(27.416666666666686, -31.729166666666664, 0);
pB2.isClosed() = true;
cavc::CombineResult<double> res2 = cavc::combinePolylines(pA2, pB2, cavc::PlineCombineMode::Exclude); // Not as expected