From 7021222c35725f977d3cd30556df3fdcc4b3130b Mon Sep 17 00:00:00 2001 From: ChenX Date: Wed, 6 Dec 2023 20:53:30 +0800 Subject: [PATCH] =?UTF-8?q?=E5=BC=80=E5=8F=91:=E4=BF=AE=E5=A4=8DAPI?= =?UTF-8?q?=E5=AF=BC=E5=87=BA=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/Add-on/testEntity/LargestInteriorRectangle.ts | 10 +++++----- src/Add-on/testEntity/TestLIR.ts | 2 ++ 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/src/Add-on/testEntity/LargestInteriorRectangle.ts b/src/Add-on/testEntity/LargestInteriorRectangle.ts index 156dd454e..85baf3177 100644 --- a/src/Add-on/testEntity/LargestInteriorRectangle.ts +++ b/src/Add-on/testEntity/LargestInteriorRectangle.ts @@ -15,17 +15,17 @@ import { FuzzyFactory } from '../../csg/core/FuzzyFactory'; * @param rects * @returns */ -function GetMaxAreaFn(rects: [number, number, number][]): number +function GetMaxAreaFn(rects: [number, number, number, number, number][]): number { return Max(rects, (t1, t2) => t2[0] > t1[0]); } -function GetMaxWidthFn(rects: [number, number, number][]): number +function GetMaxWidthFn(rects: [number, number, number, number, number][]): number { return Max(rects, (t1, t2) => t2[1] > t1[1]); } -function GetMaxHeightFn(rects: [number, number, number][]): number +function GetMaxHeightFn(rects: [number, number, number, number, number][]): number { return Max(rects, (t1, t2) => t2[2] > t1[2]); } @@ -80,7 +80,7 @@ export class LargestInteriorRectangle /** 可以自定义过滤函数,以便过滤掉某些不需要的矩形,当返回true时,我们会过滤它 */ FilterRectFn: (width: number, height: number) => boolean; - GetMaxRectIndexFn: (rects: [number, number, number][]) => number = GetMaxAreaFn; + GetMaxRectIndexFn: (rects: [number, number, number, number, number][]) => number = GetMaxAreaFn; static GetMaxAreaFn = GetMaxAreaFn; @@ -338,7 +338,7 @@ export class LargestInteriorRectangle while (rects.length) { - let maxIndex = Max(rects, (t1, t2) => t2[0] > t1[0]); + let maxIndex = this.GetMaxRectIndexFn(rects); let [area, maxXIndex, maxYIndex, xCount, yCount] = rects[maxIndex]; diff --git a/src/Add-on/testEntity/TestLIR.ts b/src/Add-on/testEntity/TestLIR.ts index 9284647c9..4fb2c945d 100644 --- a/src/Add-on/testEntity/TestLIR.ts +++ b/src/Add-on/testEntity/TestLIR.ts @@ -26,7 +26,9 @@ export class Command_TestLIR implements Command let lir = new LargestInteriorRectangle; + console.time(); let rects = lir.ParseLIR(pts.map(AsVector2)); + console.timeEnd(); for (let rect of rects) {