From 3e02a957ab9acba76d5172d73352201034bf4220 Mon Sep 17 00:00:00 2001 From: ChenX Date: Wed, 1 Jun 2022 14:44:32 +0800 Subject: [PATCH] =?UTF-8?q?=E5=BC=80=E5=8F=91:=E9=87=8D=E6=9E=84=E5=8F=98?= =?UTF-8?q?=E9=87=8F=E5=90=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- __test__/Interest/line.test.ts | 4 ++-- __test__/Polyline/Intersect.test.ts | 10 +++++----- src/Add-on/BoardCutting/LinearCutting.ts | 2 +- src/Add-on/Break.ts | 2 +- src/Add-on/DrawCircle.ts | 2 +- src/Add-on/DrawWineRack/DrawObliqueWineRackTool.ts | 2 +- src/Add-on/FilletUtils.ts | 2 +- src/Add-on/Trim.ts | 4 ++-- src/Add-on/instest.ts | 2 +- src/Add-on/twoD2threeD/Polyline2Board.ts | 2 +- src/DatabaseServices/Contour.ts | 6 +++--- src/DatabaseServices/Entity/Polyline.ts | 2 +- src/DatabaseServices/Room/ParseService/CurveTrim.ts | 4 ++-- .../Room/ParseService/RoomWallParse.ts | 4 ++-- src/Geometry/CurveIntersection.ts | 2 +- .../ExtrudeMeshGeomBuilder/ExtrudeEdgeGeometry2.ts | 2 +- src/GraphicsSystem/BoolOperateUtils.ts | 2 +- src/GraphicsSystem/IntersectWith.ts | 4 ++-- src/GraphicsSystem/OffsetPolyline.ts | 12 ++++++------ 19 files changed, 35 insertions(+), 35 deletions(-) diff --git a/__test__/Interest/line.test.ts b/__test__/Interest/line.test.ts index 274a07a3d..16e26cb29 100644 --- a/__test__/Interest/line.test.ts +++ b/__test__/Interest/line.test.ts @@ -13,7 +13,7 @@ test('直线相交,共线', () => let pts = IntersectLineAndLine(l1, l2, IntersectOption.ExtendThis); expect(pts.length).toBe(0); - pts = IntersectLineAndLine(l1, l2, IntersectOption.OnBothOperands); + pts = IntersectLineAndLine(l1, l2, IntersectOption.ExtendNone); expect(pts.length).toBe(0); pts = IntersectLineAndLine(l1, l2, IntersectOption.ExtendArg); @@ -33,7 +33,7 @@ test('直线相交', () => let pts = IntersectLineAndLine(l1, l2, IntersectOption.ExtendThis); expect(pts.length).toBe(1); - pts = IntersectLineAndLine(l1, l2, IntersectOption.OnBothOperands); + pts = IntersectLineAndLine(l1, l2, IntersectOption.ExtendNone); expect(pts.length).toBe(1); pts = IntersectLineAndLine(l1, l2, IntersectOption.ExtendArg); diff --git a/__test__/Polyline/Intersect.test.ts b/__test__/Polyline/Intersect.test.ts index edd5d2fc1..3cb9be5a4 100644 --- a/__test__/Polyline/Intersect.test.ts +++ b/__test__/Polyline/Intersect.test.ts @@ -1,5 +1,5 @@ -import { Polyline } from "../../src/DatabaseServices/Entity/Polyline"; import { Vector2 } from "three"; +import { Polyline } from "../../src/DatabaseServices/Entity/Polyline"; import { IntersectOption } from "../../src/GraphicsSystem/IntersectWith"; describe("相交", () => { @@ -25,7 +25,7 @@ describe("相交", () => bul: 2.01 }, ]); - let pts = pl.IntersectWith(p2, IntersectOption.OnBothOperands); + let pts = pl.IntersectWith(p2, IntersectOption.ExtendNone); expect(pts.length).toBe(0); let pts1 = pl.IntersectWith(p2, IntersectOption.ExtendBoth); expect(pts1.length).toBe(2); @@ -96,7 +96,7 @@ describe("相交", () => bul: 0 }, ]); - let pts = pl.IntersectWith(p2, IntersectOption.OnBothOperands); + let pts = pl.IntersectWith(p2, IntersectOption.ExtendNone); expect(pts.length).toBe(1); let pts1 = pl.IntersectWith(p2, IntersectOption.ExtendBoth); expect(pts1.length).toBe(2); @@ -104,10 +104,10 @@ describe("相交", () => expect(pts2.length).toBe(2); let pts3 = pl.IntersectWith(p2, IntersectOption.ExtendArg); expect(pts3.length).toBe(1); - let pts4 = pl.IntersectWith(p3, IntersectOption.OnBothOperands); + let pts4 = pl.IntersectWith(p3, IntersectOption.ExtendNone); expect(pts).toMatchSnapshot(); expect(pts4.length).toBe(2); - let pts5 = pl.IntersectWith(p4, IntersectOption.OnBothOperands); + let pts5 = pl.IntersectWith(p4, IntersectOption.ExtendNone); expect(pts5.length).toBe(1); let pts6 = pl.IntersectWith(p4, IntersectOption.ExtendArg); expect(pts6.length).toBe(2); diff --git a/src/Add-on/BoardCutting/LinearCutting.ts b/src/Add-on/BoardCutting/LinearCutting.ts index fe551d8e8..4ae803a99 100644 --- a/src/Add-on/BoardCutting/LinearCutting.ts +++ b/src/Add-on/BoardCutting/LinearCutting.ts @@ -313,7 +313,7 @@ class FixBoard2dPath let new_m2d: I2DModeling[] = []; for (let m of m2d) { - let ints = br.ContourCurve.IntersectWith(m.path, IntersectOption.OnBothOperands); + let ints = br.ContourCurve.IntersectWith(m.path, IntersectOption.ExtendNone); if (ints.length) { let cus = m.path.GetSplitCurvesByPts(ints); diff --git a/src/Add-on/Break.ts b/src/Add-on/Break.ts index 117a17f36..334c6f77c 100644 --- a/src/Add-on/Break.ts +++ b/src/Add-on/Break.ts @@ -131,7 +131,7 @@ async function BreakAll() return; let curves = cuRes.SelectSet.SelectEntityList as Curve[]; - let ins = new CurveIntersection(curves, true, IntersectOption.OnBothOperands); + let ins = new CurveIntersection(curves, true, IntersectOption.ExtendNone); //延伸+打断 for (let [cu, pmap] of ins.intersect2) diff --git a/src/Add-on/DrawCircle.ts b/src/Add-on/DrawCircle.ts index b4781521f..96f7e4a0a 100644 --- a/src/Add-on/DrawCircle.ts +++ b/src/Add-on/DrawCircle.ts @@ -178,7 +178,7 @@ export class DrawCircle implements Command let center: Vector3; - let ipts = c1.IntersectWith(c2, IntersectOption.OnBothOperands); + let ipts = c1.IntersectWith(c2, IntersectOption.ExtendNone); if (ipts.length === 2) { let p = midPoint(ptRes1.Point, ptRes2.Point); diff --git a/src/Add-on/DrawWineRack/DrawObliqueWineRackTool.ts b/src/Add-on/DrawWineRack/DrawObliqueWineRackTool.ts index fbc74c814..25e75f2ae 100644 --- a/src/Add-on/DrawWineRack/DrawObliqueWineRackTool.ts +++ b/src/Add-on/DrawWineRack/DrawObliqueWineRackTool.ts @@ -673,7 +673,7 @@ export class DrawObliqueWineRackTool extends DrawWineRackTool let dists: number[] = []; for (let d2 of rData) { - let intPts = d.pl.IntersectWith(d2.pl, IntersectOption.OnBothOperands); + let intPts = d.pl.IntersectWith(d2.pl, IntersectOption.ExtendNone); if (intPts.length === 4) { dists.push(...intPts.map(p => diff --git a/src/Add-on/FilletUtils.ts b/src/Add-on/FilletUtils.ts index f75e65d9a..43723cbdd 100644 --- a/src/Add-on/FilletUtils.ts +++ b/src/Add-on/FilletUtils.ts @@ -167,7 +167,7 @@ export class FilletUtils // JigUtils.Draw(offCu1.Clone()); // JigUtils.Draw(offCu2.Clone()); - let center = offCu1.IntersectWith(offCu2, IntersectOption.OnBothOperands) + let center = offCu1.IntersectWith(offCu2, IntersectOption.ExtendNone) .sort((p1, p2) => { return p1.distanceToSquared(iPt) - p2.distanceToSquared(iPt); diff --git a/src/Add-on/Trim.ts b/src/Add-on/Trim.ts index 4df01937e..782e09079 100644 --- a/src/Add-on/Trim.ts +++ b/src/Add-on/Trim.ts @@ -157,7 +157,7 @@ export class Command_Trim implements Command //TODO: 缓存相交结果,避免反复求值,仅当图纸实体更新时才更新,避免反复求值 for (let icu of kniefCus) if (icu !== thisCurve && selectBox.CheckSelectTraverse(icu.GetDrawObjectFromRenderType())) - arrayPushArray(inPts, cu.IntersectWith(icu, IntersectOption.OnBothOperands)); + arrayPushArray(inPts, cu.IntersectWith(icu, IntersectOption.ExtendNone)); return inPts; } @@ -228,7 +228,7 @@ export class Command_Trim implements Command let insPts: Vector3[] = []; for (let cuT of subCus) if (cuT !== cu) - insPts.push(...cu.IntersectWith(cuT, IntersectOption.OnBothOperands)); + insPts.push(...cu.IntersectWith(cuT, IntersectOption.ExtendNone)); let cus = this.TrimCurve(cu, kniefCus, selBox, curve, insPts); notSelCus.push(...cus); diff --git a/src/Add-on/instest.ts b/src/Add-on/instest.ts index 36a9d59c2..94361a873 100644 --- a/src/Add-on/instest.ts +++ b/src/Add-on/instest.ts @@ -24,7 +24,7 @@ export class Command_INsTest implements Command { let cu2 = cus[j]; - let ins = cu.IntersectWith(cu2, IntersectOption.OnBothOperands); + let ins = cu.IntersectWith(cu2, IntersectOption.ExtendNone); for (let p of ins) { diff --git a/src/Add-on/twoD2threeD/Polyline2Board.ts b/src/Add-on/twoD2threeD/Polyline2Board.ts index 6c9422630..c490c105d 100644 --- a/src/Add-on/twoD2threeD/Polyline2Board.ts +++ b/src/Add-on/twoD2threeD/Polyline2Board.ts @@ -800,7 +800,7 @@ export class Polyline2Board implements Command let box = box1.clone().intersect(box2); let s = box.getSize(new Vector3); if (s.x < 1 || s.y < 1) return false; - let int = pl1.IntersectWith(pl2, IntersectOption.OnBothOperands); + let int = pl1.IntersectWith(pl2, IntersectOption.ExtendNone); return int.length > 0 || pl1.PtInCurve(pl2.StartPoint); } diff --git a/src/DatabaseServices/Contour.ts b/src/DatabaseServices/Contour.ts index 01407f08f..eccebf47a 100644 --- a/src/DatabaseServices/Contour.ts +++ b/src/DatabaseServices/Contour.ts @@ -234,7 +234,7 @@ export class Contour // if (!sourceOutline.BoundingBox.intersectsBox(targetOutline.BoundingBox, 1e-3)) // return { intersectionList, unionList }; - let interPts = sourceOutline.IntersectWith2(targetOutline, IntersectOption.OnBothOperands, COMBINE_FUZZ); + let interPts = sourceOutline.IntersectWith2(targetOutline, IntersectOption.ExtendNone, COMBINE_FUZZ); let sourceContainerTarget: boolean; let targetContainerSource: boolean; @@ -327,7 +327,7 @@ export class Contour let isEqualNormal = equalv3(sourceOutline.Normal, targetOutline.Normal, 1e-3); - let interPts = sourceOutline.IntersectWith2(targetOutline, IntersectOption.OnBothOperands, COMBINE_FUZZ); + let interPts = sourceOutline.IntersectWith2(targetOutline, IntersectOption.ExtendNone, COMBINE_FUZZ); if (interPts.length <= 1) { @@ -435,7 +435,7 @@ export class Contour if (!IntersectBox2(outBox, targetOutline.BoundingBox)) continue; - let pts = sourceOutline.IntersectWith2(con.Curve, IntersectOption.OnBothOperands, COMBINE_FUZZ); + let pts = sourceOutline.IntersectWith2(con.Curve, IntersectOption.ExtendNone, COMBINE_FUZZ); if (pts.length <= 1) { //反包含 diff --git a/src/DatabaseServices/Entity/Polyline.ts b/src/DatabaseServices/Entity/Polyline.ts index d0de43b0c..390b85880 100644 --- a/src/DatabaseServices/Entity/Polyline.ts +++ b/src/DatabaseServices/Entity/Polyline.ts @@ -1261,7 +1261,7 @@ export class Polyline extends Curve for (let j = i + 2; j < cus.length; j++) { let c2 = cus[j]; - let pts = c.IntersectWith(c2, IntersectOption.OnBothOperands); + let pts = c.IntersectWith(c2, IntersectOption.ExtendNone); for (let p of pts) { diff --git a/src/DatabaseServices/Room/ParseService/CurveTrim.ts b/src/DatabaseServices/Room/ParseService/CurveTrim.ts index 9c8f141af..39c056cda 100644 --- a/src/DatabaseServices/Room/ParseService/CurveTrim.ts +++ b/src/DatabaseServices/Room/ParseService/CurveTrim.ts @@ -26,14 +26,14 @@ export class CurveTrim if (this._IsErase) return; //交点参数列表 - let iParams = this._curve.IntersectWith2(contour.Curve, IntersectOption.OnBothOperands).map(p => p.thisParam).filter(p => p > 1e-4 && p < 0.9999); + let iParams = this._curve.IntersectWith2(contour.Curve, IntersectOption.ExtendNone).map(p => p.thisParam).filter(p => p > 1e-4 && p < 0.9999); iParams.push(0, 1); iParams.sort((a, b) => a - b); arrayRemoveDuplicateBySort(iParams, (a1, a2) => equaln(a1, a2, 1e-4)); if (iParams.length === 2)//[0,1]全包含 或者在外部 { - let p = this._curve.GetPointAtParam(0.5); + let p = this.GetPointAtParam(0.5); if (this.PointInContour(p, contour, box, saveSyntropy)) this._IsErase = true; return; diff --git a/src/DatabaseServices/Room/ParseService/RoomWallParse.ts b/src/DatabaseServices/Room/ParseService/RoomWallParse.ts index e242c3d4a..bd2f7f844 100644 --- a/src/DatabaseServices/Room/ParseService/RoomWallParse.ts +++ b/src/DatabaseServices/Room/ParseService/RoomWallParse.ts @@ -334,7 +334,7 @@ export class RoomWallParse else tempC.StartPoint = p; line = new Line(v.position.clone(), p); - let ipts = line.IntersectWith(tempC, IntersectOption.OnBothOperands); + let ipts = line.IntersectWith(tempC, IntersectOption.ExtendNone); if (ipts.length === 2) p = undefined; } @@ -346,7 +346,7 @@ export class RoomWallParse else tempC.StartPoint = p; if (!line) line = new Line(v.position.clone(), p); - let ipts = line.IntersectWith(tempC, IntersectOption.OnBothOperands); + let ipts = line.IntersectWith(tempC, IntersectOption.ExtendNone); if (ipts.length === 2) p = undefined; } diff --git a/src/Geometry/CurveIntersection.ts b/src/Geometry/CurveIntersection.ts index 8d1108a35..14cb2d845 100644 --- a/src/Geometry/CurveIntersection.ts +++ b/src/Geometry/CurveIntersection.ts @@ -24,7 +24,7 @@ export class CurveIntersection * @param {Curve[]} cus 请注意数组的顺序会被更改,如果你在意数组的顺序,请拷贝数组后传进来 * @memberof CurveIntersection */ - constructor(cus: Curve[], parseIntersectionParam = false, intType = IntersectOption.OnBothOperands, protected fuzz = 1e-6, parseRecord = false) + constructor(cus: Curve[], parseIntersectionParam = false, intType = IntersectOption.ExtendNone, protected fuzz = 1e-6, parseRecord = false) { this.GenBox(cus); //按x排序 diff --git a/src/Geometry/ExtrudeMeshGeomBuilder/ExtrudeEdgeGeometry2.ts b/src/Geometry/ExtrudeMeshGeomBuilder/ExtrudeEdgeGeometry2.ts index 041fdb708..e85003d26 100644 --- a/src/Geometry/ExtrudeMeshGeomBuilder/ExtrudeEdgeGeometry2.ts +++ b/src/Geometry/ExtrudeMeshGeomBuilder/ExtrudeEdgeGeometry2.ts @@ -1346,7 +1346,7 @@ function GetIntersection(cu1: Curve, cu2: Curve): IntersectResult[] m = new Map(); intCache.set(cu1, m); - let r = cu1.IntersectWith2(cu2, IntersectOption.OnBothOperands); + let r = cu1.IntersectWith2(cu2, IntersectOption.ExtendNone); let cu1EndParam = cu1.EndParam; let cu2EndParam = cu2.EndParam; diff --git a/src/GraphicsSystem/BoolOperateUtils.ts b/src/GraphicsSystem/BoolOperateUtils.ts index 698dd490f..f44ddc8c5 100644 --- a/src/GraphicsSystem/BoolOperateUtils.ts +++ b/src/GraphicsSystem/BoolOperateUtils.ts @@ -39,7 +39,7 @@ export function isTargetCurInOrOnSourceCur(sourceCur: Polyline | Circle | Ellips //获取交点处上下距0.01par的点 function getIntPtContextPts(sourceCur: Curve, cu: Curve, pts: Vector3[] = []) { - let interPts = cu.IntersectWith(sourceCur, IntersectOption.OnBothOperands); + let interPts = cu.IntersectWith(sourceCur, IntersectOption.ExtendNone); if (interPts.length > 0) { let pars = interPts.map(pt => cu.GetParamAtPoint(pt)); diff --git a/src/GraphicsSystem/IntersectWith.ts b/src/GraphicsSystem/IntersectWith.ts index c5b488914..c6cd7a104 100644 --- a/src/GraphicsSystem/IntersectWith.ts +++ b/src/GraphicsSystem/IntersectWith.ts @@ -19,7 +19,7 @@ export enum IntersectOption /** * 两者都不延伸 */ - OnBothOperands = 0, + ExtendNone = 0, /** * 延伸自身 */ @@ -599,7 +599,7 @@ export function IntersectEllipseAndCircleOrArc(el: Ellipse, cir: Circle | Arc, t if (type === IntersectOption.ExtendBoth) type = IntersectOption.ExtendArg; else if (type !== IntersectOption.ExtendArg) - type = IntersectOption.OnBothOperands; + type = IntersectOption.ExtendNone; let intPts = IntersectPolylineAndCurve(pl, cirClone, type); intPts.forEach(r => r.pt.applyMatrix4(el.OCS)); diff --git a/src/GraphicsSystem/OffsetPolyline.ts b/src/GraphicsSystem/OffsetPolyline.ts index 6793bb9f0..e20cf9284 100644 --- a/src/GraphicsSystem/OffsetPolyline.ts +++ b/src/GraphicsSystem/OffsetPolyline.ts @@ -61,7 +61,7 @@ export class CurveTreeNode } //交点参数列表 - let iParams = this.curve.IntersectWith(contour.Curve, IntersectOption.OnBothOperands) + let iParams = this.curve.IntersectWith(contour.Curve, IntersectOption.ExtendNone) .map(p => this.curve.GetParamAtPoint2(p)); let cus = this.curve.GetSplitCurves(iParams); @@ -414,7 +414,7 @@ export class OffsetPolyline let l1 = new Line(p1, p2); let l2 = new Line(p3, p4); - let ipts = l1.IntersectWith(l2, IntersectOption.OnBothOperands, 1e-8); + let ipts = l1.IntersectWith(l2, IntersectOption.ExtendNone, 1e-8); if (ipts.length > 0) { let p = ipts[0]; @@ -440,8 +440,8 @@ export class OffsetPolyline { if (Math.sign(cu2.Bul) !== this._OffsetDistSign) { - let ipts1 = cu2.IntersectWith(l1, IntersectOption.OnBothOperands); - let ipts2 = cu2.IntersectWith(l2, IntersectOption.OnBothOperands); + let ipts1 = cu2.IntersectWith(l1, IntersectOption.ExtendNone); + let ipts2 = cu2.IntersectWith(l2, IntersectOption.ExtendNone); let sp: Vector3; let ep: Vector3; @@ -474,7 +474,7 @@ export class OffsetPolyline let a = d.preCurve; if (Math.sign(a.Bul) !== this._OffsetDistSign && a.AllAngle > 1e-6) { - let ipts = a.IntersectWith(l1, IntersectOption.OnBothOperands); + let ipts = a.IntersectWith(l1, IntersectOption.ExtendNone); if (ipts.length === 2) { let sp = SelectNearP(ipts, p1); @@ -489,7 +489,7 @@ export class OffsetPolyline let a = d.nextCurve; if (Math.sign(a.Bul) !== this._OffsetDistSign && a.AllAngle > 1e-6) { - let ipts = a.IntersectWith(l2, IntersectOption.OnBothOperands); + let ipts = a.IntersectWith(l2, IntersectOption.ExtendNone); if (ipts.length === 2) { let ep = SelectNearP(ipts, p3);