From 9d3465c77d735768a530ec4c583b7cdfeaaf358b Mon Sep 17 00:00:00 2001 From: ChenX Date: Sat, 29 Dec 2018 10:35:40 +0800 Subject: [PATCH] =?UTF-8?q?=E9=81=BF=E5=85=8D=E5=A4=9A=E6=AE=B5=E7=BA=BF?= =?UTF-8?q?=E5=88=87=E5=89=B2=E6=97=B6=E5=87=BA=E7=8E=B0=E7=9A=84=E9=87=8D?= =?UTF-8?q?=E5=A4=8D=E7=82=B9=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Polyline/__snapshots__/split.test.ts.snap | 140 ++++++++---------- src/DatabaseServices/Polyline.ts | 3 + 2 files changed, 62 insertions(+), 81 deletions(-) diff --git a/__test__/Polyline/__snapshots__/split.test.ts.snap b/__test__/Polyline/__snapshots__/split.test.ts.snap index cdf059072..2937bcb7f 100644 --- a/__test__/Polyline/__snapshots__/split.test.ts.snap +++ b/__test__/Polyline/__snapshots__/split.test.ts.snap @@ -48,6 +48,32 @@ Array [ `; exports[`单刀 2`] = ` +Array [ + Object { + "bul": 0, + "pt": Vector2 { + "x": 0, + "y": 0, + }, + }, + Object { + "bul": 0.41421356237309503, + "pt": Vector2 { + "x": 5, + "y": 0, + }, + }, + Object { + "bul": 0, + "pt": Vector2 { + "x": 7.5, + "y": 2.5, + }, + }, +] +`; + +exports[`单刀 3`] = ` Array [ Object { "bul": 0.41421356237309503, @@ -84,6 +110,11 @@ Array [ "y": 0, }, }, +] +`; + +exports[`单刀 4`] = ` +Array [ Object { "bul": 0, "pt": Vector2 { @@ -92,23 +123,23 @@ Array [ }, }, Object { - "bul": 0.41421356237309503, + "bul": 1, "pt": Vector2 { "x": 5, "y": 0, }, }, Object { - "bul": 0, + "bul": -1, "pt": Vector2 { - "x": 7.5, - "y": 2.5, + "x": 5, + "y": 5, }, }, ] `; -exports[`单刀 3`] = ` +exports[`单刀 5`] = ` Array [ Object { "bul": -0.9999999999999999, @@ -138,6 +169,11 @@ Array [ "y": 0, }, }, +] +`; + +exports[`单刀 6`] = ` +Array [ Object { "bul": 0, "pt": Vector2 { @@ -153,16 +189,23 @@ Array [ }, }, Object { - "bul": -1, + "bul": -0.41421356237309503, "pt": Vector2 { "x": 5, "y": 5, }, }, + Object { + "bul": 0, + "pt": Vector2 { + "x": 2.5, + "y": 7.5, + }, + }, ] `; -exports[`单刀 4`] = ` +exports[`单刀 7`] = ` Array [ Object { "bul": -0.41421356237309503, @@ -192,6 +235,11 @@ Array [ "y": 0, }, }, +] +`; + +exports[`单刀 8`] = ` +Array [ Object { "bul": 0, "pt": Vector2 { @@ -207,7 +255,7 @@ Array [ }, }, Object { - "bul": -0.41421356237309503, + "bul": -1, "pt": Vector2 { "x": 5, "y": 5, @@ -216,14 +264,14 @@ Array [ Object { "bul": 0, "pt": Vector2 { - "x": 2.5, - "y": 7.5, + "x": 5, + "y": 10, }, }, ] `; -exports[`单刀 5`] = ` +exports[`单刀 9`] = ` Array [ Object { "bul": 0, @@ -246,34 +294,6 @@ Array [ "y": 0, }, }, - Object { - "bul": 0, - "pt": Vector2 { - "x": 0, - "y": 0, - }, - }, - Object { - "bul": 1, - "pt": Vector2 { - "x": 5, - "y": 0, - }, - }, - Object { - "bul": -1, - "pt": Vector2 { - "x": 5, - "y": 5, - }, - }, - Object { - "bul": 0, - "pt": Vector2 { - "x": 5, - "y": 10, - }, - }, ] `; @@ -361,13 +381,6 @@ Array [ "y": 0, }, }, - Object { - "bul": 0, - "pt": Vector2 { - "x": 0, - "y": 0, - }, - }, Object { "bul": 0.41421356237309503, "pt": Vector2 { @@ -415,13 +428,6 @@ Array [ "y": 0, }, }, - Object { - "bul": 0, - "pt": Vector2 { - "x": 0, - "y": 0, - }, - }, Object { "bul": 1, "pt": Vector2 { @@ -469,13 +475,6 @@ Array [ "y": 0, }, }, - Object { - "bul": 0, - "pt": Vector2 { - "x": 0, - "y": 0, - }, - }, Object { "bul": 1, "pt": Vector2 { @@ -523,13 +522,6 @@ Array [ "y": 0, }, }, - Object { - "bul": 0, - "pt": Vector2 { - "x": 0, - "y": 0, - }, - }, Object { "bul": 1, "pt": Vector2 { @@ -1087,13 +1079,6 @@ Array [ "y": 0, }, }, - Object { - "bul": 0, - "pt": Vector2 { - "x": 0, - "y": 0, - }, - }, Object { "bul": 1, "pt": Vector2 { @@ -1267,13 +1252,6 @@ Array [ "y": 0, }, }, - Object { - "bul": 0, - "pt": Vector2 { - "x": 0, - "y": 0, - }, - }, Object { "bul": 1, "pt": Vector2 { diff --git a/src/DatabaseServices/Polyline.ts b/src/DatabaseServices/Polyline.ts index 736bade47..16714098c 100644 --- a/src/DatabaseServices/Polyline.ts +++ b/src/DatabaseServices/Polyline.ts @@ -613,6 +613,9 @@ export class Polyline extends Curve if (this.m_ClosedMark && !hasZeroParam) { let lastPl = pls[pls.length - 1]; + if (equalv2(arrayLast(lastPl.m_LineData).pt, pls[0].m_LineData[0].pt)) + lastPl.m_LineData.pop(); + lastPl.m_LineData.push(...pls[0].m_LineData); pls.shift();