|
|
|
@ -134,6 +134,29 @@ test("有交点时", () =>
|
|
|
|
|
expect(regs[1].Explode().length).toBe(2);
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
//#IQ937
|
|
|
|
|
test.only('特殊相交', () =>
|
|
|
|
|
{
|
|
|
|
|
testSubtract(
|
|
|
|
|
[2, "Region", 1, 1, 13, false, 7, 0, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 2147.1101515831265, -2428.922411894075, 0, 1], 1, 1, 1, 1, "Polyline", 1, 1, 0, false, 7, 0, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 2147.1101515831265, -2428.922411894075, 0, 1], 2, 8, [286.3247863247866, -182.3361823361823], 0, [5.698005698005659, -192.3076923076923], 0, [-207.97720797720808, -166.66666666666663], 0, [-215.09971509971524, 45.584045584045604], 0, [-215.09971509971524, 313.39031339031345], 0, [52.70655270655277, 274.92877492877494], 0, [293.44729344729353, 250.71225071225066], 0, [286.3247863247866, 18.518518518518544], 0, true, 0, "Region", 1, 1, 12, false, 7, 0, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 2147.1101515831265, -2428.922411894075, 0, 1], 1, 1, 1, 1, "Polyline", 1, 1, 0, false, 7, 0, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 2147.1101515831265, -2428.922411894075, 0, 1], 2, 4, [286.3247863247866, 18.518518518518544], 0, [5.698005698005659, -192.3076923076923], 0, [-215.09971509971524, 45.584045584045604], 0, [52.70655270655277, 274.92877492877494], 0, true, 0]
|
|
|
|
|
, 4);
|
|
|
|
|
testSubtract(
|
|
|
|
|
[2, "Region", 1, 1, 7, false, 7, 0, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -165.24216524216527, -477.2079772079772, 0, 1], 1, 1, 1, 1, "Polyline", 1, 1, 0, false, 7, 0, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -165.24216524216527, -477.2079772079772, 0, 1], 2, 4, [0, 0], 0, [600, 0], 0, [600, 1200], 0, [0, 1200], 0, true, 0, "Region", 1, 1, 8, false, 7, 0, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -165.24216524216527, -477.2079772079772, 0, 1], 1, 1, 1, 1, "Polyline", 1, 1, 0, false, 7, 0, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -165.24216524216527, -477.2079772079772, 0, 1], 2, 17, [260.68452291480645, 694.8814057850639], 0, [268.61637170569537, 691.99444892248], 0, [569.9719350514073, 582.3099939341178], 0, [563.8155724715452, 565.3955267599715], 0, [262.46000912583327, 675.0799817483337], 0, [244.5953021712127, 681.582203323704], 0, [234.37028331333872, 685.3038058327808], 0, [-5.684341886080802e-14, 599.9999989101887], 0, [-6.156362579862105, 616.9144660843351], 0, [208.05604371187087, 694.881405785064], 0, [0, 770.6076127553729], 0, [6.156362579862048, 787.5220799295191], 0, [234.37028331333858, 704.4590057373472], 0, [245.7073243841179, 708.5853512317643], 0, [247.65394027111975, 709.2938614721828], 0, [557.659209066764, 822.1265517794905], 0, [563.815571646626, 805.212084605344], 0, true, 0]
|
|
|
|
|
, 2);
|
|
|
|
|
|
|
|
|
|
testSubtract(
|
|
|
|
|
[2, "Region", 1, 1, 63, false, 7, 0, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1], 1, 1, 1, 1, "Polyline", 1, 1, 0, false, 7, 0, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1], 2, 5, [4456.332258552945, -1732.8363833524356], 0, [4915.293761397059, -1732.8363833524356], 0, [4915.293761397059, -1334.2078480183466], 0, [4456.332258552945, -1334.2078480183466], 0, [4456.332258552945, -1732.8363833524356], 0, true, 0, "Region", 1, 1, 64, false, 7, 0, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1], 1, 1, 1, 1, "Polyline", 1, 1, 0, false, 7, 0, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1], 2, 4, [4456.332258552945, -1533.522115685391], 0, [4685.8130099750015, -1334.2078480183466], 0, [4915.293761397059, -1533.522115685391], 0, [4685.8130099750015, -1732.8363833524356], 0, true, 0]
|
|
|
|
|
, 4);
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
function testSubtract(data, count)
|
|
|
|
|
{
|
|
|
|
|
let regs = LoadRegionsFromFileData(data);
|
|
|
|
|
regs[0].BooleanOper(regs[1], BoolOpeartionType.Subtract);
|
|
|
|
|
let expregs = regs[0].Explode();
|
|
|
|
|
expect(expregs.length).toBe(count);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function testRegion(reg)
|
|
|
|
|
{
|
|
|
|
|
if (reg)
|
|
|
|
@ -200,5 +223,4 @@ function testRegionsBool(regs, uShapeCount, uHoleCount, iShapeCount, iHoleCount,
|
|
|
|
|
expect(holeCount2).toBe(iHoleCount);
|
|
|
|
|
expect(shapeCount3).toBe(sShapeCount);
|
|
|
|
|
expect(holeCount3).toBe(sHoleCount);
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|