You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
WebCAD/__test__/Booloperate/bool6.test.ts

28 lines
3.4 KiB

import { Board } from "../../src/DatabaseServices/Entity/Board";
import { BoolOpeartionType } from "../../src/GraphicsSystem/BoolOperateUtils";
import { LoadEntityFromFileData, LoadRegionsFromFileData } from "../Utils/LoadEntity.util";
import "../Utils/jest.util";
test('无法求到交集', () =>
{
let d = { "file": [2, "Region", 8, 2, 138, false, 1, 1, 0, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 402.7349980402736, 0, 0, 1], 0, 0, true, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 402.7349980402736, 0, 0, 1], 0, 1, 1, 1, 1, "Polyline", 8, 2, 0, false, 0, 7, 0, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 402.7349980402736, 0, 0, 1], 0, 0, true, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 402.7349980402736, 0, 0, 1], 0, 2, 4, [0, 0], 0, [387, 0], 0, [387, 18], 0, [0, 18], 0, true, 0, "Region", 8, 2, 139, false, 1, 2, 0, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, -1, 0, 377.7349980402736, -38.99960000002761, 0, 1], 0, 0, true, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, -1, 0, 377.7349980402736, -38.99960000002761, 0, 1], 0, 1, 1, 1, 1, "Polyline", 8, 2, 0, false, 0, 7, 0, [1, 0, 0, 0, 0, -1, 0, 0, 0, 0, -1, 0, 377.7349980402736, -38.99960000002761, 0, 1], 0, 0, true, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, -1, 0, 377.7349980402736, -764.0012000002525, 0, 1], 0, 2, 6, [412, 725.0016000002249], 0, [0, 725.0016000002249], 0, [0, 0], 0, [25, 0], 0, [25, -56.998399999775074], 0, [412, -56.998399999775074], 0, true, 0], "basePt": { "x": 377.7349980402736, "y": -764.0012000002525, "z": 0 }, "ucs": [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1] };
let [reg1, reg2] = LoadRegionsFromFileData(d);
let reg = reg1.Clone();
reg.BooleanOper(reg2.Clone(), BoolOpeartionType.Intersection);
expect(reg.Area).toMatchSnapshot();
});
test('精度不一致导致的板件显示错误', () =>
{
let d =
{ "file": [1, "Board", 10, 2, 100, 0, 1, 3, 71, [1, 0, 0, 0, 0, 0, 1, 0, 0, -1, 0, 0, 2663.0341099632205, -6829.664801153471, 0, 1], 0, 0, 1, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 2251.110228408969, -7614.664801153471, 15, 1], 0, 0, 1, 3, 699.9999999999995, 1158.0761184457501, 15, true, "Polyline", 10, 2, 0, 0, 0, 7, 0, [1, 0, 0, 0, 0, 1, -1.6240976817373723e-16, 0, 0, 1.6240976817373723e-16, 1, 0, 0, 699.9999999999995, 0, 1], 0, 0, 1, [1, 0, 0, 0, 0, 0, -1, 0, 0, 1, 0, 0, -2931.1851045401936, -1380.525407665506, 735.0000000000001, 1], 0, 0, 1, 2, 4, [0, -699.9999999999995], 0, [1158.0761184457501, -699.9999999999995], 0, [1158.0761184457501, 0], 0, [0, 0], 0, true, 1, 3, 15, 1158.0761000000002, 2, true, "Polyline", 10, 2, 0, 0, 0, 7, 0, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 15, 0, 1], 0, 0, 1, [1, 0, 0, 0, 0, 0, -1, 0, 0, 1, 0, 0, -2931.1851045401936, -1723.0254076655056, 735, 1], 0, 0, 1, 2, 4, [0, -15], 0, [1158.0761000000002, -15], 0, [1158.0761000000002, 0], 0, [0, 0], 0, true, 0, 3, 0, 0, 0, 0, 0, [1, 0, 0, 0, 0, 0, 1, 0, 0, -1, 0, 0, 2663.0341099632205, -6829.664801153471, 342.49999999999955, 1], 1.5, 0, 0, 0, 0, 0, 13, 2, "背板", "主卧", "下柜", "法国黄橡", "密度", "黄", 0, 0, "三合一", 2, 0, "0", "0", "0", "0", "", "", "", 4, "三合一", "三合一", "三合一", "三合一", true, true, 0, 0, 0, 0, 0, 0, 0, 0, true, 0, 0, null, 0, 0], "basePt": { "x": 2663.0341099632205, "y": -6844.664801153471, "z": 0 }, "ucs": [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1] };
let br = LoadEntityFromFileData(d)[0] as Board;
expect(br.MeshGeometry.getAttribute("position").count).toMatchNumberSnapshot(0);
});