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__/Geometry/EdgeGeometry.test.ts

118 lines
19 KiB

import { Line } from "three";
import { ExtrudeGeometryBuilder } from "../../src/Geometry/ExtrudeMeshGeomBuilder/ExtrudeEdgeGeometry2";
import { RenderType } from "../../src/GraphicsSystem/RenderType";
import { LoadBoardsFromFileData } from "../Utils/LoadEntity.util";
test('EdgeGeometry生成', () =>
{
let d = [3, "Board", 3, 2, 101, false, 1, 11, 0, [0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 842.2974778978387, -349.77794462809106, 5.207248635008, 1], 2, 1200, 1287.9139521874604, 18, true, "Polyline", 3, 2, 0, false, 0, 7, 0, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1], 2, 4, [0, 0], 0, [1287.9139521874604, 0], 0, [1287.9139521874604, 1200], 0, [0, 1200], 0, true, 1, 2, 650.3947318524762, 368.7144637049523, 18, false, "Polyline", 3, 2, 0, false, 0, 1, 0, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -1827.9668979500452, -289.76232632197764, 0, 1], 2, 4, [1827.9668979500452, 755.7998263219777], 0, [1827.9668979500452, 289.76232632197764], 0, [2196.6813616549975, 289.76232632197764], 0, [2196.6813616549975, 755.7998263219777], 0.9999999999999999, true, 0, 3, 0, 0, 0, [0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 842.2974778978387, -132.52737566129053, 492.2690189409713, 1], 3, 0, 0, 0, 2, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -331.4882673815591, 22.964750159997493, 5.207248635008, 1], 1, "左侧板", "{\"roomName\":\"\",\"cabinetName\":\"\",\"boardName\":\"\",\"material\":\"\",\"color\":\"\",\"lines\":0,\"bigHoleDir\":0,\"drillType\":\"three\",\"composingFace\":2,\"highSealed\":[],\"sealedUp\":\"1\",\"sealedDown\":\"1\",\"sealedLeft\":\"1\",\"sealedRight\":\"1\",\"spliteHeight\":\"\",\"spliteWidth\":\"\",\"spliteThickness\":\"\",\"highDrill\":[\"three\",\"three\",\"three\",\"three\",\"three\",\"three\"]}", 0, 0, "Board", 3, 2, 211, false, 1, 2, 0, [0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1743.9852053204086, 1058.889397823259, -54.29958601640169, 1], 2, 1230.761278665225, 896.6684244728249, 18, false, "Polyline", 3, 2, 0, false, 0, 7, 0, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 5.684341886080802e-14, 30.761278665225063, 0, 1], 2, 6, [0, 0], 0, [300, 0], 1.44245572325029, [315.9503077287227, 816.1221829065471], 0, [600, 1200], 0, [300, 1200], 0.41421356237309503, [0, 900], 0, true, 1, 2, 385.96920000000006, 177.84615384615404, 10, false, "Polyline", 3, 2, 0, false, 0, 7, 0, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -422.15384615384596, -402.0513128205126, 0, 1], 2, 5, [597.7122651988514, 788.0205128205126], 0, [422.15384615384596, 788.0205128205126], 0, [422.15384615384596, 402.05131282051263], 0, [600, 402.0513128205126], 0, [599.9999999999998, 786.9320348416215], 0.0014989901540299988, true, 0, 3, 0, 0, 0, [0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1751.9852053204086, 1481.043243977105, 378.51300546933595, 1], 3, 0, 0, 0, 2, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -17.633213176275603, 262.61914493865333, 0, 1], 1, "右侧板", "{\"roomName\":\"\",\"cabinetName\":\"\",\"boardName\":\"\",\"material\":\"\",\"color\":\"\",\"lines\":0,\"bigHoleDir\":0,\"drillType\":\"three\",\"composingFace\":2,\"highSealed\":[],\"sealedUp\":\"1\",\"sealedDown\":\"1\",\"sealedLeft\":\"1\",\"sealedRight\":\"1\",\"spliteHeight\":\"\",\"spliteWidth\":\"\",\"spliteThickness\":\"\",\"highDrill\":[]}", 0, 0, "Board", 3, 2, 212, false, 1, 2, 0, [0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1111.9162051636208, 2117.9319139518834, -423.9845986472139, 1], 2, 484.63826594239083, 642.7439363026181, 18, false, "Polyline", 3, 2, 0, false, 0, 7, 0, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 54.03714224287984, -40.88462318428341, 0, 1], 2, 6, [226.89796571085776, 338.3121692475904], 0, [248.97426264670497, 525.5228891266743], 0, [-54.03714224287984, 287.9783168893773], 0, [141.82369879876416, 40.88462318428341], 0, [588.7067940597382, 306.7620304373949], 0, [320.72013691164284, 378.99785818408446], 0, true, 1, 2, 63.40599363597872, 232.13273756151398, 18, false, "Polyline", 3, 2, 0, false, 0, 7, 0, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -58.35238007400439, -234.55749771884788, 0, 1], 2, 4, [236.13305395456487, 234.55749771884788], 0, [83.25375055383591, 272.608758187791], 0, [58.35238007400439, 297.9634913548266], 0, [290.48511763551835, 268.97109344254164], 0, true, 0, 3, 0, 0, 0, [0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1111.9162051636208, 2230.3214362687672, -230.31172411264944, 1], 3, 0, 0, 0, 2, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -776.2476068199197, 3557.665244594688, -46.81305616698228, 1], 1, "右侧板", "{\"roomName\":\"\",\"cabinetName\":\"\",\"boardName\":\"\",\"material\":\"\",\"color\":\"\",\"lines\":0,\"bigHoleDir\":0,\"drillType\":\"three\",\"composingFace\":2,\"highSealed\":[],\"sealedUp\":\"1\",\"sealedDown\":\"1\",\"sealedLeft\":\"1\",\"sealedRight\":\"1\",\"spliteHeight\":\"\",\"spliteWidth\":\"\",\"spliteThickness\":\"\",\"highDrill\":[]}", 0, 0];
let brs = LoadBoardsFromFileData(d);
for (let br of brs)
{
let line = br.GetDrawObjectFromRenderType(RenderType.Wireframe) as Line;
//@ts-ignore
expect(line.geometry.attributes.position.count).toMatchSnapshot();
}
});
test('EdgeGeometry生成2', () =>
{
let d = { "file": [1, "Board", 5, 2, 101, false, 1, 11, 0, [0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 3652.4820542036323, 5394.829497889616, 0, 1], 0, 0, 2, 577.5, 600, 18, true, "Polyline", 5, 2, 0, false, 0, 7, 0, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 200, 0, 1], 0, 0, 2, 4, [0, -200], 0, [600, -200], 0, [600, 377.49999999999994], 0, [0, 377.5], 0, true, 1, 2, 9, 577.5, 10.759448803828036, true, "Polyline", 5, 2, 0, false, 0, 7, 0, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1], 0, 0, 2, 4, [0, 0], 0, [577.5, 0], 0, [577.5, 9], 0, [0, 9], 0, true, 0, 3, 0, 0, 0, [0, 0, 1, 0, 0, -1, 0, 0, 1, 0, 0, 0, 3652.4820542036323, 5974.829497889616, 0, 1], 3, 0, 0, 0, 5, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 3652.4820542036323, 5394.829497889616, 200, 1], 1, "立板", "主卧", "下柜", "", "", "", 0, 0, "三合一", 2, 0, "1", "1", "1", "1", "", "", "", 4, "三合一", "三合一", "三合一", "三合一", true, true, 0, 0, 0, 0, 0], "basePt": { "x": 3652.4820542036323, "y": 5394.829497889616, "z": 0 } };
let brs = LoadBoardsFromFileData(d);
for (let br of brs)
{
let line = br.GetDrawObjectFromRenderType(RenderType.Wireframe) as Line;
//@ts-ignore
expect(line.geometry.attributes.position.count).toMatchSnapshot();
}
});
test('Geometry构建测试', () =>
{
let d = require("./edgebuilderData.json");
let brs = LoadBoardsFromFileData(d);
for (let br of brs)
{
let builder = new ExtrudeGeometryBuilder(br);
expect(builder.verticesArray.length).toMatchSnapshot();
expect(builder.edgeAndLidBuilder.lineVerticesArray.length).toMatchSnapshot();
}
});
test('极限共线', () =>
{
let d =
{ "file": [1, "Board", 8, 2, 100, false, 1, 11, 0, [0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 99.18801430379972, -19.70604624960106, 0, 1], 0, 0, true, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 99.18801430379972, -19.70604624960106, 0, 1], 0, 2, 2164, 304, 18, true, "Polyline", 8, 2, 0, false, 0, 7, 0, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1], 0, 0, true, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1], 0, 2, 4, [0, 0], 0, [304, 0], 0, [304, 2164], 0, [0, 2164], 0, true, 3, 2, 2164.0000000000005, 18, 5, true, "Polyline", 8, 2, 0, false, 0, 2, 0, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -285.9999999999998, 0, 0, 1], 0, 0, true, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -285.9999999999998, 0, 0, 1], 0, 2, 6, [285.9999999999998, 0], 0, [291.9999999999998, 0], 0, [303.9999999999998, 0], 0, [303.9999999999998, 2164], 0, [291.99999999999983, 2164], 0, [285.9999999999998, 2164.0000000000005], 0, true, 0, 3, 0, 0, 0, [0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 99.18801430379972, 266.2939537503987, 0, 1], 2, 829, 12, 9, true, "Polyline", 8, 2, 0, false, 0, 1, 0, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -291.9999999999998, 0, 0, 1], 0, 0, true, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -291.9999999999998, 0, 0, 1], 0, 2, 4, [291.9999999999998, 0], 0, [303.9999999999998, 0], 0, [303.9999999999998, 829], 0, [291.9999999999998, 829], 0, true, 0, 3, 0, 0, 0, [0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 108.18801430379972, 272.2939537503987, 0, 1], 2, 928.9999999999998, 12, 9, true, "Polyline", 8, 2, 0, false, 0, 1, 0, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -291.9999999999998, -1234.9999999999993, 0, 1], 0, 0, true, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -291.9999999999998, -1234.9999999999993, 0, 1], 0, 2, 4, [303.9999999999998, 1234.9999999999993], 0, [303.9999999999998, 2163.999999999999], 0, [291.9999999999998, 2163.999999999999], 0, [291.9999999999998, 1234.9999999999993], 0, true, 0, 3, 0, 0, 0, [0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 108.18801430379972, 272.2939537503987, 1234.9999999999993, 1], 3, 0, 0, 0, 9, 1, "立板", "进门鞋柜", "下柜", "", "", "", 0, 0, "三合一", 2, 0, "1", "1", "1", "1", "", "", "", 4, "三合一", "三合一", "三合一", "三合一", true, true, 0, 0, 0, 0, 0, 0, 0, 0, true], "basePt": { "x": 99.18801430379972, "y": -19.70604624960106, "z": 0 } };
let brs = LoadBoardsFromFileData(d);
for (let br of brs)
{
let builder = new ExtrudeGeometryBuilder(br);
expect(builder.verticesArray.length).toMatchSnapshot();
expect(builder.edgeAndLidBuilder.lineVerticesArray.length).toMatchSnapshot();
}
});
test('盖子构建失败', () =>
{
//原因是因为交点太多
let d =
{ "file": [1, "Board", 8, 2, 110, false, 1, 11, 0, [0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4300.009279073407, 2076.9410852395504, 0, 1], 0, 0, true, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 4300.009279073407, 2076.9410852395504, -500.99609312660925, 1], 0, 3, 555.6884165302121, 564, 18, true, "Polyline", 8, 2, 0, false, 0, 7, 0, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, -500.99609312660925, 0, 1], 0, 0, true, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1], 0, 2, 4, [0, 500.99609312660925], 0, [564, 500.9960931266093], 0, [564, 1056.6845096568213], 0, [0, 1056.6845096568213], 0, true, 1, 3, 2.650032406101512, 711.383779232115, 2.7331290961030845, true, "Polyline", 8, 2, 0, false, 0, 7, 0, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1], 0, 0, true, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1], 0, 2, 4, [0, 0], 0, [711.383779232115, 0], 0, [711.383779232115, 2.650032406101512], 0, [0, 2.650032406101512], 0, true, 0, 3, 0, 0, 0, 0, 0, [0, 0.7928210010759529, 0, 0, 0, 0, 0.7928210010759529, 0, 1, 0, 0, 0, 4315.276149977304, 2076.9410852395504, 6.233907470232225e-7, 1], 3, 0, 0, 0, 0, 0, 9, 1, "立板", "1", "1", "", "", "", 0, 0, "三合一", 2, 0, "1", "1", "1", "1", "", "", "", 4, "三合一", "三合一", "三合一", "三合一", true, true, 0, 0, 0, 0, 0, 0, 0, 0, true], "basePt": { "x": 4300.009279073407, "y": 2076.9410852395504, "z": 0 }, "ucs": [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1] };
let brs = LoadBoardsFromFileData(d);
for (let br of brs)
{
let builder = new ExtrudeGeometryBuilder(br);
expect(builder.verticesArray.length).toMatchSnapshot();
expect(builder.edgeAndLidBuilder.lineVerticesArray.length).toMatchSnapshot();
}
});
test('构建盖子失败2', () =>
{
//因为修改RegionParse精度降低到2个小数点就没问题了
let d =
{ "file": [1, "Board", 8, 2, 100, false, 1, 6, 0, [1, 0, 0, 0, 0, 0, 1, 0, 0, -1, 0, 0, 97.11678151856177, -50.86622139217798, 0, 1], 0, 0, true, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 97.11678151856177, -50.86622139217798, 0, 1], 0, 3, 633, 361.5, 18, true, "Polyline", 8, 2, 0, false, 0, 7, 0, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1], 0, 0, true, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1], 0, 2, 4, [0, 0], 0, [361.5, 0], 0, [361.5, 633], 0, [0, 633], 0, true, 2, 3, 100, 10, 5, true, "Polyline", 8, 2, 0, false, 0, 7, 0, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1], 0, 0, true, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1], 0, 2, 4, [0, 0], 0, [10, 0], 0, [10, 100], 0, [0, 100], 0, true, 0, 3, 0, 0, 0, 0, 0, [1, 0, 0, 0, 0, 0, 1, 0, 0, -1, 0, 0, 448.61678151856177, -63.86622139217798, 266.5, 1], 3, 100, 20, 2.001107831095416, true, "Polyline", 8, 2, 0, false, 0, 7, 0, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1], 0, 0, true, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1], 0, 2, 4, [0, 0], 0, [20, 0], 0, [20, 100], 0, [0, 100], 0, true, 0, 3, 0, 0, 0, 0, 0, [1, 0, 0, 0, 0, 0, 1, 0, 0, -1, 0, 0, 438.61678151856177, -50.86622139217798, 266.49751214702076, 1], 3, 0, 0, 0, 0, 0, 9, 2, "左开门板", "主卧", "衣柜", "", "", "", 0, 0, "不排", 2, 0, "1.5", "1.5", "1.5", "1.5", "", "", "", 4, "不排", "不排", "不排", "不排", true, true, 0, 0, 0, 0, 0, 0, 0, 1, true], "basePt": { "x": 97.11678151856177, "y": -68.86622139217798, "z": 0 }, "ucs": [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1] };
let brs = LoadBoardsFromFileData(d);
for (let br of brs)
{
let builder = new ExtrudeGeometryBuilder(br);
expect(builder.verticesArray.length).toMatchSnapshot();
expect(builder.edgeAndLidBuilder.lineVerticesArray.length).toMatchSnapshot();
}
});
test('板件轮廓错误导致的崩溃', () =>
{
let d =
{ "file": [1, "Board", 8, 2, 82700, false, 1, 2, 0, [-1.8369701987210297e-16, 0, -1, 0, 1, 0, -1.8369701987210297e-16, 0, 0, -1, 0, 0, 75366.82649228878, -20, 61444.81332130321, 1], 82701, 0, true, [6.123233995736766e-17, 0, -1, 0, 0, 1, 0, 0, 1, 0, 6.123233995736766e-17, 0, 75366.82649228878, -20, 61414.70998797221, 1], 0, 3, 0, 30.10333333100425, 18, true, "Polyline", 8, 2, 0, false, 0, 7, 0, [1, 2.4492935982947064e-16, 0, 0, -2.4492935982947064e-16, 1, 0, 0, 0, 0, 1, 0, 30.10333333100425, 400, 0, 1], 0, 0, true, [1, 2.4492935982947064e-16, 0, 0, 0, 0, -1, 0, -2.4492935982947064e-16, 1, 0, 0, -573.8645894921335, -4.9261083746064855, 0, 1], 0, 2, 4, [0, -400], 0, [0, -400], 0, [-30.10333333100425, -400], 0, [-30.10333333100425, -400], 0, true, 1, 3, 400, 9.900000000000189, 14.2, true, "Polyline", 8, 2, 0, false, 0, 7, 0, [1, 2.4492935982947064e-16, 0, 0, -2.4492935982947064e-16, 1, 0, 0, 0, 0, 1, 0, 0, 400, 0, 1], 0, 0, true, [1, 2.4492935982947064e-16, 0, 0, 0, 0, -1, 0, -2.4492935982947064e-16, 1, 0, 0, -863.9645894921334, -4.926108374606542, 0, 1], 0, 2, 4, [0, -400], 0, [0, -400], 0, [9.900000000000091, -400], 0, [9.900000000000091, -400], 0, true, 0, 3, 0, 0, 0, 0, 0, [-1.8369701987210297e-16, 0, -1, 0, 1, 0, -1.8369701987210297e-16, 0, 0, -1, 0, 0, 75366.82649228878, -20, 61454.713321303214, 1], 3, 0, 0, 0, 0, 0, 10, 2, "左开门板", "户外鞋柜", "标准柜", "", "", "", 0, 0, "不排", 2, 4, 1.2, 1.2, 0, 1.2, "1.2", "1.2", "1.2", "0", "", "", "", 4, "不排", "不排", "不排", "不排", true, true, 1, "1", "装母拉手", 0, 0, 0, 0, 0, 0, 1, true, 0, 0], "basePt": { "x": 75366.82649228878, "y": -38, "z": 61414.70998797221 }, "ucs": [1, 0, 0, 0, 0, 0, 1, 0, 0, -1, 0, 0, 0, 0, 0, 1] };
let brs = LoadBoardsFromFileData(d);
brs[0].MeshGeometry;
expect(0).toBe(0);
});
test('有全深槽时,构建的Mesh错误', () =>
{
let d =
{ "file": [1, "Board", 10, 2, 166, 0, 1, 3, 71, [1, 0, 0, 0, 0, 0, 1, 0, 0, -1, 0, 0, 364.0480727123586, 13.689025306123199, 0, 1], 0, 0, 1, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -417.95192728764096, -284.3109746938768, 0, 1], 0, 0, 1, 3, 121.24601483164042, 97.90045944671004, 18, true, "Polyline", 10, 2, 0, 0, 0, 7, 71, [1, 0, 2.041594288559738e-30, 0, 4.486662901208865e-46, 1, -2.1976270830841832e-16, 0, -2.041594288559738e-30, 2.1976270830841832e-16, 1, 0, 7.389644451905042e-13, 121.24601483163951, 0, 1], 0, 0, 1, [1, 0, 0, 0, 0, 0, -1, 0, 0, 1, 0, 0, -356.4667286639439, -141.79931580960192, 13.689025306142893, 1], 0, 0, 1, 2, 4, [97.90045944670862, -121.24601483163951], 0, [97.9004594467093, 9.094947017729282e-13], 0, [0, 0], 0, [-7.389644451905042e-13, -121.24601483163951], 0, true, 2, 3, 17.53791742793169, 17.53791742793169, 5, false, "Circle", 10, 2, 0, 0, 0, 1, 71, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 8.768958713965844, 8.768958713965844, 0, 1], 0, 0, 1, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -2258.032522816819, -816.6695956959303, 1.9667822925839573e-11, 1], 0, 0, 1, 1, 8.768958713965844, 0, 3, 0, 0, 0, 0, 0, [1, 0, 0, 0, 0, 0, 1, 0, 0, -1, 0, 0, 399.16807867565024, 0.6890253061235665, 48.76970415382982, 1], 3, 9.304557173422609, 9.304557173422609, 18, false, "Circle", 10, 2, 0, 0, 1, 2, 71, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 4.652278586711304, 4.652278586711304, 0, 1], 0, 0, 1, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -2262.1492029440737, -820.7862758231848, 1.9667822925839573e-11, 1], 0, 0, 1, 1, 4.652278586711304, 0, 3, 0, 0, 0, 0, 0, [1, 0, 0, 0, 0, 0, 1, 0, 0, -1, 0, 0, 403.2847588029048, 13.689025306123566, 52.88638428108436, 1], 3, 0, 0, 0, 0, 0, 11, 2, "背板", "", "", "", "多层板", "盛橡木多层板", 0, 1, "无效配置", 2, 0, "1", "0", "1", "1", "", "", "", 4, "无效配置", "无效配置", "无效配置", "无效配置", true, true, 0, 0, 0, 0, 0, 0, 0, 0, true, 0, 0, null], "basePt": { "x": 364.0480727123586, "y": -4.310974693876801, "z": 0 }, "ucs": [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1] };
let brs = LoadBoardsFromFileData(d);
for (let br of brs)
{
let builder = new ExtrudeGeometryBuilder(br);
expect(builder.verticesArray.length).toMatchSnapshot();
expect(builder.edgeAndLidBuilder.lineVerticesArray.length).toMatchSnapshot();
}
});
//
//{"file":[1,"Board",10,2,186,0,1,3,71,[1,0,0,0,0,0,1,0,0,-1,0,0,483.14082719043313,13.689025306123199,0,1],0,0,1,[1,0,0,0,0,1,0,0,0,0,1,0,-298.8591728095664,-284.3109746938768,0,1],0,0,1,3,121.24601483164042,97.9004594467101,18,true,"Polyline",10,2,0,0,0,7,71,[1,0,2.030561952816011e-30,0,4.5087532658883125e-46,1,-2.220446049250313e-16,0,-2.030561952816011e-30,2.220446049250313e-16,1,0,0,0,2.6645352591003757e-14,1],0,0,1,[1,0,0,0,0,0,-1,0,0,1,0,0,-616.8365854462929,4.729723383396163,2.6645352591003757e-14,1],0,0,1,2,4,[97.9004594467101,121.24601483164042],0,[7.958078640513122e-13,121.24601483163951],0,[0,0],0,[97.90045944670942,0],0,true,2,3,17.53791742793169,17.53791742793169,5,false,"Circle",10,2,0,0,0,1,71,[1,0,0,0,0,1,0,0,0,0,1,0,8.768958713965844,8.768958713965844,0,1],0,0,1,[1,0,0,0,0,1,0,0,0,0,1,0,-2258.0325228168194,-816.6695956959304,1.9667822925839573e-11,1],0,0,1,1,8.768958713965844,0,3,0,0,0,0,0,[1,0,0,0,0,0,1,0,0,-1,0,0,518.2608331537249,0.6890253061231988,48.76970415382985,1],3,11.527154383958326,21.24289879329467,18,true,"Polyline",10,2,0,0,0,7,71,[1,0,0,0,0,1,0,0,0,0,1,0,0,11.527154383958326,0,1],0,0,1,[1,0,0,0,0,0,-1,0,0,1,0,0,-650.2917132537983,-47.319343025706445,0,1],0,0,1,2,4,[21.24289879329467,-11.527154383958326],0,[21.24289879329467,0],0,[0,0],0,[0,-11.527154383958326],0,true,0,3,0,0,0,0,0,[1,0,0,0,0,0,1,0,0,-1,0,0,516.5959549979385,13.689025306123172,52.04906640910261,1],3,0,0,0,0,0,11,2,"背板","","","","多层板","盛橡木多层板",0,1,"无效配置",2,0,"1","0","1","1","","","",4,"无效配置","无效配置","无效配置","无效配置",true,true,0,0,0,0,0,0,0,0,true,0,0,null],"basePt":{"x":483.14082719043313,"y":-4.310974693876801,"z":0},"ucs":[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]}