|
|
|
@ -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);
|
|
|
|
|