From 9d747fe8ca3e46253ea91138edb71ba0ceb545dc Mon Sep 17 00:00:00 2001 From: ChenX Date: Wed, 20 Jun 2018 17:44:25 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=AD=A3=E5=BD=93=E7=BA=BF=E6=AE=B5?= =?UTF-8?q?=E4=B8=A2=E5=A4=B1=E7=9A=84=E6=97=B6=E5=80=99,=E8=B6=8A?= =?UTF-8?q?=E7=95=8C=E8=AE=BF=E9=97=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- __test__/Polyline/offset.test.ts | 16 ++++++++++++++++ src/GraphicsSystem/OffestPolyline.ts | 3 +++ 2 files changed, 19 insertions(+) diff --git a/__test__/Polyline/offset.test.ts b/__test__/Polyline/offset.test.ts index 04fbc275f..7e2e396f3 100644 --- a/__test__/Polyline/offset.test.ts +++ b/__test__/Polyline/offset.test.ts @@ -379,3 +379,19 @@ test('闭合多段线偏移测试14', () => // expect(cus[0].GetOffsetCurves(1).length).toBe(1); // expect(cus[0].GetOffsetCurves(1.2).length).toBe(3); }) + +test('提前丢失所有的线段', () => +{ + let f = new CADFile(); + + f.Data = + [1, ["Polyline", 1, 1, 12, false, 7, -1, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -17.386067452264705, 17.11283965241085, 0, 1], 2, 3, [108.37693694676932, 28.257776463252547], 0.4472440944881872, [108.37693694676932, 17.68555707305448], 3.5940684866260213, [111.70676982557188, 14.089337563947739], 0.5086040192926764, false]]; + + f.Read(); + + let pl = f.ReadObject() as Polyline; + + let cus = pl.GetOffsetCurves(-7.155086190577401); + + expect(cus.length).toBe(0); +}); diff --git a/src/GraphicsSystem/OffestPolyline.ts b/src/GraphicsSystem/OffestPolyline.ts index 863ef170f..aceae8082 100644 --- a/src/GraphicsSystem/OffestPolyline.ts +++ b/src/GraphicsSystem/OffestPolyline.ts @@ -224,7 +224,10 @@ export class PolyOffestUtil arrayRemoveIf(offResList, r => !r.curve || equaln(r.curve.Length, 0, 1e-6)); if (offResList.length <= 1) + { this.m_RetCurves = offResList.map(r => r.curve); + return; + } //下一线段起始点 let nextStartPt: Vector3 = offResList[0].curve.StartPoint;