功能:走刀偏移直线连接

This commit is contained in:
ChenX 2023-12-13 10:54:24 +08:00
parent 0e7a71f44d
commit a6c14af39c
12 changed files with 142 additions and 34 deletions

View File

@ -6715,13 +6715,28 @@ class CurveTreeNode {
}
}
}
var PolylineJoinType;
(function (PolylineJoinType) {
PolylineJoinType[PolylineJoinType["Square"] = 0] = "Square";
PolylineJoinType[PolylineJoinType["Round"] = 1] = "Round";
})(PolylineJoinType || (PolylineJoinType = {}));
class OffsetPolyline {
constructor(_Polyline, _OffsetDist, _ToolPath = false, _OffsetDistSq = (_OffsetDist ** 2) * 2.1 //对直角走刀不进行圆弧过度
/**
*
* @param _Polyline
* @param _OffsetDist
* @param [_ToolPath=false] 走刀模式(在这个模式下,我们会进行圆弧过渡(或者直线过渡)避免尖角过大)
* @param [_OffsetDistSq=(_OffsetDist ** 2) * 2.1] 允许的最大尖角长度 默认值差不多是矩形的尖角大一点
* @param [JoinType=PolylineJoinType.Round] 尖角的处理方式,默认是圆弧过渡,可以切换成直线过渡
*/
constructor(_Polyline, _OffsetDist, _ToolPath = false, _OffsetDistSq = (_OffsetDist ** 2) * 2.1, //对直角走刀不进行圆弧过度
JoinType = PolylineJoinType.Round //仅在走刀路径时生效
) {
this._Polyline = _Polyline;
this._OffsetDist = _OffsetDist;
this._ToolPath = _ToolPath;
this._OffsetDistSq = _OffsetDistSq;
this.JoinType = JoinType;
this._IsTopoOffset = false; //局部偏移,允许特殊延伸,参考测试用例
}
Do() {
@ -6823,7 +6838,10 @@ class OffsetPolyline {
let refP = this._Vertexs[curveResNext.index];
let distSq = iPts[0].distanceToSquared(refP);
if (this._ToolPath && distSq > this._OffsetDistSq) {
curveResNow.paddingCurve = [this.CreateArc(refP, sp, ep)];
if (this.JoinType === PolylineJoinType.Round)
curveResNow.paddingCurve = [this.CreateArc(refP, sp, ep)];
else
curveResNow.paddingCurve = [this.CreateSquare(refP, curveResNow, curveResNext, code)]; //补直线
this._TrimCircleContours.push(this._Circles[curveResNext.index]);
}
else
@ -6833,7 +6851,8 @@ class OffsetPolyline {
// curveResNow.paddingCurve = [new Line(sp, ep)];
}
}
else {
else //直线和圆弧 圆弧和圆弧
{
let refP = this._Vertexs[curveResNext.index];
//在局部偏移中,当偏移距离不一致时,我们总是倾向于直接连接
if (this._IsTopoOffset && tPts.length === 0 && curveResNow.dist !== curveResNext.dist) {
@ -6901,8 +6920,13 @@ class OffsetPolyline {
else
curveResNow.paddingCurve = [this.CreateArc(refP, sp, ep)]; //补圆弧
}
else
curveResNow.paddingCurve = [this.CreateArc(refP, sp, ep)]; //补圆弧
else {
if (this.JoinType === PolylineJoinType.Round)
curveResNow.paddingCurve = [this.CreateArc(refP, sp, ep)]; //补圆弧
else {
curveResNow.paddingCurve = [this.CreateSquare(refP, curveResNow, curveResNext, code)]; //补直线
}
}
let circle = this._Circles[curveResNext.index];
if (circle)
this._TrimCircleContours.push(circle); //因为局部偏移可能未提供圆
@ -7333,6 +7357,24 @@ class OffsetPolyline {
let arc = new exports.Arc(center, Math.abs(this._OffsetDist), sa, ea, this._OffsetDist < 0);
return arc;
}
CreateSquare(center, curveNow, curveNext, entTypeCode) {
const arc = this.CreateArc(center, curveNow.curve.EndPoint, curveNext.curve.StartPoint);
const centerPoint = arc.GetPointAtParam(0.5);
const tangentLine = new exports.Line(centerPoint, arc.GetFirstDeriv(0.5).add(centerPoint)); //切线
let ep, sp;
if (entTypeCode === 1) {
ep = tangentLine.IntersectWith(curveNow.curve, IntersectOption.ExtendBoth)[0]; //第一条线新的终点坐标
sp = centerPoint.multiplyScalar(2).sub(ep);
}
else // if (entTypeCode === 0)//全圆弧 直线和圆弧
{
ep = SelectNearP(tangentLine.IntersectWith(curveNow.curve, IntersectOption.ExtendBoth), center); //第一条线新的终点坐标
sp = SelectNearP(tangentLine.IntersectWith(curveNext.curve, IntersectOption.ExtendBoth), center);
}
curveNow.ep = ep;
curveNext.sp = sp;
return new exports.Line(ep, sp);
}
}
function EntityEncode(c) {
if (c instanceof exports.Line)
@ -7909,10 +7951,13 @@ exports.Polyline = Polyline_1 = class Polyline extends Curve {
GetParamAtDist(dist) {
if (equaln$1(dist, 0))
return 0;
let cus = this.Explode();
for (let i = 0; i < cus.length; i++) {
let cu = cus[i];
let cus = [];
for (let i = 0; i < this.EndParam; i++) {
let cu = this.GetCurveAtIndex(i);
let len = cu.Length;
if (len < 1e-6)
continue;
cus.push(cu);
if (dist <= len)
return i + cu.GetParamAtDist(dist);
else if (equaln$1(dist, len, 1e-8))
@ -8408,10 +8453,10 @@ exports.Polyline = Polyline_1 = class Polyline extends Curve {
cu.ColorIndex = this.ColorIndex;
return curves;
}
GetFeedingToolPath(offsetDist, offsetDistSq = (offsetDist ** 2) * 2.1) {
GetFeedingToolPath(offsetDist, offsetDistSq = (offsetDist ** 2) * 2.1, joinType = PolylineJoinType.Round) {
if (equaln$1(offsetDist, 0))
return [];
let polyOffestUtil = new OffsetPolyline(this, offsetDist, true, offsetDistSq);
let polyOffestUtil = new OffsetPolyline(this, offsetDist, true, offsetDistSq, joinType);
return polyOffestUtil.Do();
}
/**

File diff suppressed because one or more lines are too long

View File

@ -6706,13 +6706,28 @@ class CurveTreeNode {
}
}
}
var PolylineJoinType;
(function (PolylineJoinType) {
PolylineJoinType[PolylineJoinType["Square"] = 0] = "Square";
PolylineJoinType[PolylineJoinType["Round"] = 1] = "Round";
})(PolylineJoinType || (PolylineJoinType = {}));
class OffsetPolyline {
constructor(_Polyline, _OffsetDist, _ToolPath = false, _OffsetDistSq = (_OffsetDist ** 2) * 2.1 //对直角走刀不进行圆弧过度
/**
*
* @param _Polyline
* @param _OffsetDist
* @param [_ToolPath=false] 走刀模式(在这个模式下,我们会进行圆弧过渡(或者直线过渡)避免尖角过大)
* @param [_OffsetDistSq=(_OffsetDist ** 2) * 2.1] 允许的最大尖角长度 默认值差不多是矩形的尖角大一点
* @param [JoinType=PolylineJoinType.Round] 尖角的处理方式,默认是圆弧过渡,可以切换成直线过渡
*/
constructor(_Polyline, _OffsetDist, _ToolPath = false, _OffsetDistSq = (_OffsetDist ** 2) * 2.1, //对直角走刀不进行圆弧过度
JoinType = PolylineJoinType.Round //仅在走刀路径时生效
) {
this._Polyline = _Polyline;
this._OffsetDist = _OffsetDist;
this._ToolPath = _ToolPath;
this._OffsetDistSq = _OffsetDistSq;
this.JoinType = JoinType;
this._IsTopoOffset = false; //局部偏移,允许特殊延伸,参考测试用例
}
Do() {
@ -6814,7 +6829,10 @@ class OffsetPolyline {
let refP = this._Vertexs[curveResNext.index];
let distSq = iPts[0].distanceToSquared(refP);
if (this._ToolPath && distSq > this._OffsetDistSq) {
curveResNow.paddingCurve = [this.CreateArc(refP, sp, ep)];
if (this.JoinType === PolylineJoinType.Round)
curveResNow.paddingCurve = [this.CreateArc(refP, sp, ep)];
else
curveResNow.paddingCurve = [this.CreateSquare(refP, curveResNow, curveResNext, code)]; //补直线
this._TrimCircleContours.push(this._Circles[curveResNext.index]);
}
else
@ -6824,7 +6842,8 @@ class OffsetPolyline {
// curveResNow.paddingCurve = [new Line(sp, ep)];
}
}
else {
else //直线和圆弧 圆弧和圆弧
{
let refP = this._Vertexs[curveResNext.index];
//在局部偏移中,当偏移距离不一致时,我们总是倾向于直接连接
if (this._IsTopoOffset && tPts.length === 0 && curveResNow.dist !== curveResNext.dist) {
@ -6892,8 +6911,13 @@ class OffsetPolyline {
else
curveResNow.paddingCurve = [this.CreateArc(refP, sp, ep)]; //补圆弧
}
else
curveResNow.paddingCurve = [this.CreateArc(refP, sp, ep)]; //补圆弧
else {
if (this.JoinType === PolylineJoinType.Round)
curveResNow.paddingCurve = [this.CreateArc(refP, sp, ep)]; //补圆弧
else {
curveResNow.paddingCurve = [this.CreateSquare(refP, curveResNow, curveResNext, code)]; //补直线
}
}
let circle = this._Circles[curveResNext.index];
if (circle)
this._TrimCircleContours.push(circle); //因为局部偏移可能未提供圆
@ -7324,6 +7348,24 @@ class OffsetPolyline {
let arc = new Arc(center, Math.abs(this._OffsetDist), sa, ea, this._OffsetDist < 0);
return arc;
}
CreateSquare(center, curveNow, curveNext, entTypeCode) {
const arc = this.CreateArc(center, curveNow.curve.EndPoint, curveNext.curve.StartPoint);
const centerPoint = arc.GetPointAtParam(0.5);
const tangentLine = new Line(centerPoint, arc.GetFirstDeriv(0.5).add(centerPoint)); //切线
let ep, sp;
if (entTypeCode === 1) {
ep = tangentLine.IntersectWith(curveNow.curve, IntersectOption.ExtendBoth)[0]; //第一条线新的终点坐标
sp = centerPoint.multiplyScalar(2).sub(ep);
}
else // if (entTypeCode === 0)//全圆弧 直线和圆弧
{
ep = SelectNearP(tangentLine.IntersectWith(curveNow.curve, IntersectOption.ExtendBoth), center); //第一条线新的终点坐标
sp = SelectNearP(tangentLine.IntersectWith(curveNext.curve, IntersectOption.ExtendBoth), center);
}
curveNow.ep = ep;
curveNext.sp = sp;
return new Line(ep, sp);
}
}
function EntityEncode(c) {
if (c instanceof Line)
@ -7900,10 +7942,13 @@ let Polyline = Polyline_1 = class Polyline extends Curve {
GetParamAtDist(dist) {
if (equaln$1(dist, 0))
return 0;
let cus = this.Explode();
for (let i = 0; i < cus.length; i++) {
let cu = cus[i];
let cus = [];
for (let i = 0; i < this.EndParam; i++) {
let cu = this.GetCurveAtIndex(i);
let len = cu.Length;
if (len < 1e-6)
continue;
cus.push(cu);
if (dist <= len)
return i + cu.GetParamAtDist(dist);
else if (equaln$1(dist, len, 1e-8))
@ -8399,10 +8444,10 @@ let Polyline = Polyline_1 = class Polyline extends Curve {
cu.ColorIndex = this.ColorIndex;
return curves;
}
GetFeedingToolPath(offsetDist, offsetDistSq = (offsetDist ** 2) * 2.1) {
GetFeedingToolPath(offsetDist, offsetDistSq = (offsetDist ** 2) * 2.1, joinType = PolylineJoinType.Round) {
if (equaln$1(offsetDist, 0))
return [];
let polyOffestUtil = new OffsetPolyline(this, offsetDist, true, offsetDistSq);
let polyOffestUtil = new OffsetPolyline(this, offsetDist, true, offsetDistSq, joinType);
return polyOffestUtil.Do();
}
/**

File diff suppressed because one or more lines are too long

View File

@ -4,9 +4,9 @@ import { Box2, Vector2 } from "three";
* @param rects
* @returns
*/
declare function GetMaxAreaFn(rects: [number, number, number][]): number;
declare function GetMaxWidthFn(rects: [number, number, number][]): number;
declare function GetMaxHeightFn(rects: [number, number, number][]): number;
declare function GetMaxAreaFn(rects: [number, number, number, number, number][]): number;
declare function GetMaxWidthFn(rects: [number, number, number, number, number][]): number;
declare function GetMaxHeightFn(rects: [number, number, number, number, number][]): number;
/**
* @example
*
@ -18,7 +18,7 @@ declare function GetMaxHeightFn(rects: [number, number, number][]): number;
*
* //除了变量 也可以设置过滤函数
* //例如:
* lir.FilterRectFn = !(w,h)=> (w>500 || h>500) //这样将对长或者宽不足500的矩形板过滤(舍弃)
* lir.FilterRectFn = (w,h)=> !(w>500 || h>500) //这样将对长或者宽不足500的矩形板过滤(舍弃)
*
* //2. 可以设置优先模式,默认提供了面积优先,你也可以使用宽度优先或者高度优先,或许默认规则可能不好用,可以自定义传入自定义函数.
* lir.GetMaxRectIndexFn = LargestInteriorRectangle.GetMaxAreaFn; //或者 LargestInteriorRectangle.GetMaxWidthFn / LargestInteriorRectangle.GetMaxHeightFn
@ -33,7 +33,7 @@ export declare class LargestInteriorRectangle {
MinArea: number;
/** 可以自定义过滤函数,以便过滤掉某些不需要的矩形,当返回true时,我们会过滤它 */
FilterRectFn: (width: number, height: number) => boolean;
GetMaxRectIndexFn: (rects: [number, number, number][]) => number;
GetMaxRectIndexFn: (rects: [number, number, number, number, number][]) => number;
static GetMaxAreaFn: typeof GetMaxAreaFn;
static GetMaxWidthFn: typeof GetMaxWidthFn;
static GetMaxHeightFn: typeof GetMaxHeightFn;

View File

@ -1 +1 @@
{"version":3,"file":"LargestInteriorRectangle.d.ts","sourceRoot":"","sources":["../../../../src/Add-on/testEntity/LargestInteriorRectangle.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,OAAO,EAAW,MAAM,OAAO,CAAC;AAW/C;;;;GAIG;AACH,iBAAS,YAAY,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,GAAG,MAAM,CAG/D;AAED,iBAAS,aAAa,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,GAAG,MAAM,CAGhE;AAED,iBAAS,cAAc,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,GAAG,MAAM,CAGjE;AAuBD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,qBAAa,wBAAwB;IAEjC,QAAQ,SAAO;IACf,SAAS,SAAO;IAChB,OAAO,SAAa;IAEpB,8CAA8C;IAC9C,YAAY,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC;IAEzD,iBAAiB,EAAE,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,KAAK,MAAM,CAAgB;IAGhF,MAAM,CAAC,YAAY,sBAAgB;IACnC,MAAM,CAAC,aAAa,uBAAiB;IACrC,MAAM,CAAC,cAAc,wBAAkB;;IAMvC;;;OAGG;IACH,QAAQ,CAAC,UAAU,EAAE,OAAO,EAAE,GAAG,IAAI,EAAE;CAqS1C"}
{"version":3,"file":"LargestInteriorRectangle.d.ts","sourceRoot":"","sources":["../../../../src/Add-on/testEntity/LargestInteriorRectangle.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,OAAO,EAAW,MAAM,OAAO,CAAC;AAW/C;;;;GAIG;AACH,iBAAS,YAAY,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,GAAG,MAAM,CAG/E;AAED,iBAAS,aAAa,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,GAAG,MAAM,CAGhF;AAED,iBAAS,cAAc,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,GAAG,MAAM,CAGjF;AAuBD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,qBAAa,wBAAwB;IAEjC,QAAQ,SAAO;IACf,SAAS,SAAO;IAChB,OAAO,SAAa;IAEpB,8CAA8C;IAC9C,YAAY,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC;IAEzD,iBAAiB,EAAE,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,KAAK,MAAM,CAAgB;IAGhG,MAAM,CAAC,YAAY,sBAAgB;IACnC,MAAM,CAAC,aAAa,uBAAiB;IACrC,MAAM,CAAC,cAAc,wBAAkB;;IAMvC;;;OAGG;IACH,QAAQ,CAAC,UAAU,EAAE,OAAO,EAAE,GAAG,IAAI,EAAE;CAqS1C"}

View File

@ -1,3 +1,4 @@
import Geom3 from '@jscad/modeling/src/geometries/geom3/type';
import { Frustum, Geometry, Matrix3, Matrix4, Object3D, UVGenerator, Vector3 } from 'three';
import { FaceDirection } from "../../Add-on/DrawDrilling/DrillType";
import { ObjectSnapMode } from '../../Editor/ObjectSnapMode';
@ -162,7 +163,7 @@ export declare class Board extends ExtrudeSolid {
/**
* csg数组,_2DPathDrawObject(线)
*/
private Get2DPathCsgs;
Get2DPathCsgs(): Geom3[];
protected get Has2DPath(): boolean;
private _workerCalcedGeom;
private _async2DPathIng;

File diff suppressed because one or more lines are too long

View File

@ -3,6 +3,7 @@ import { Status } from '../../Common/Status';
import { ObjectSnapMode } from '../../Editor/ObjectSnapMode';
import { Box3Ext } from '../../Geometry/Box';
import { IntersectOption } from '../../GraphicsSystem/IntersectWith';
import { PolylineJoinType } from '../../GraphicsSystem/OffsetPolyline';
import { CADFiler } from '../CADFiler';
import { Shape2 } from '../Shape2';
import { Arc } from './Arc';
@ -136,7 +137,7 @@ export declare class Polyline extends Curve {
GetClosestPointTo(pt: Vector3, extend: boolean): Vector3;
GetClosestPointTo2(pt: Vector3, extType: ExtendType): Vector3;
GetOffsetCurves(offsetDist: number): Polyline[];
GetFeedingToolPath(offsetDist: number, offsetDistSq?: number): Polyline[];
GetFeedingToolPath(offsetDist: number, offsetDistSq?: number, joinType?: PolylineJoinType): Polyline[];
/**
*
*/

View File

@ -1 +1 @@
{"version":3,"file":"Polyline.d.ts","sourceRoot":"","sources":["../../../../src/DatabaseServices/Entity/Polyline.ts"],"names":[],"mappings":"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"}
{"version":3,"file":"Polyline.d.ts","sourceRoot":"","sources":["../../../../src/DatabaseServices/Entity/Polyline.ts"],"names":[],"mappings":"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"}

View File

@ -3,6 +3,7 @@ import { Contour } from "../DatabaseServices/Contour";
import { Arc } from "../DatabaseServices/Entity/Arc";
import { Circle } from "../DatabaseServices/Entity/Circle";
import { Curve } from "../DatabaseServices/Entity/Curve";
import { Line } from "../DatabaseServices/Entity/Line";
import { Polyline } from "../DatabaseServices/Entity/Polyline";
interface IOffsetResult {
index: number;
@ -25,11 +26,16 @@ export declare class CurveTreeNode {
TrimBy(contour: Contour, box: Box3): void;
get Nodes(): this[];
}
export declare enum PolylineJoinType {
Square = 0,
Round = 1
}
export declare class OffsetPolyline {
_Polyline: Polyline;
_OffsetDist: number;
_ToolPath: boolean;
private _OffsetDistSq;
private JoinType;
_CacheOCS: Matrix4;
_Vertexs: Vector3[];
_SubCurves: Curve[];
@ -44,7 +50,16 @@ export declare class OffsetPolyline {
_IsClose: boolean;
_OffsetDistSign: number;
_IsTopoOffset: boolean;
constructor(_Polyline: Polyline, _OffsetDist: number, _ToolPath?: boolean, _OffsetDistSq?: number);
/**
*
* @param _Polyline
* @param _OffsetDist
* @param [_ToolPath=false] (,(线))
* @param [_OffsetDistSq=(_OffsetDist ** 2) * 2.1]
* @param [JoinType=PolylineJoinType.Round] ,,线
*/
constructor(_Polyline: Polyline, _OffsetDist: number, _ToolPath?: boolean, _OffsetDistSq?: number, //对直角走刀不进行圆弧过度
JoinType?: PolylineJoinType);
Do(): Polyline[];
InitSubCurves(): this;
protected GeneralCirclesAndVertexs(): void;
@ -68,6 +83,7 @@ export declare class OffsetPolyline {
CheckPointDir(pt: Vector3): boolean;
GetPointAtCurveDir(pt: Vector3): number;
protected CreateArc(center: Vector3, startP: Vector3, endP?: Vector3): Arc;
protected CreateSquare(center: Vector3, curveNow: IOffsetResult, curveNext: IOffsetResult, entTypeCode: number): Line;
}
export declare function EntityEncode2(c1: Curve, c2: Curve): number;
export declare function CurveIsFine(curve: Curve): boolean;

View File

@ -1 +1 @@
{"version":3,"file":"OffsetPolyline.d.ts","sourceRoot":"","sources":["../../../src/GraphicsSystem/OffsetPolyline.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAK/C,OAAO,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAC;AACtD,OAAO,EAAE,GAAG,EAAE,MAAM,gCAAgC,CAAC;AACrD,OAAO,EAAE,MAAM,EAAE,MAAM,mCAAmC,CAAC;AAC3D,OAAO,EAAE,KAAK,EAAE,MAAM,kCAAkC,CAAC;AAEzD,OAAO,EAAE,QAAQ,EAAE,MAAM,qCAAqC,CAAC;AAM/D,UAAU,aAAa;IAEnB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,KAAK,CAAC;IACb,qBAAqB;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,EAAE,CAAC,EAAE,OAAO,CAAC;IACb,EAAE,CAAC,EAAE,OAAO,CAAC;IACb,QAAQ,CAAC,EAAE,KAAK,CAAC;IACjB,SAAS,CAAC,EAAE,KAAK,CAAC;IAClB,YAAY,CAAC,EAAE,KAAK,EAAE,CAAC;CAC1B;AAED,qBAAa,aAAa;IAQH,KAAK,EAAE,KAAK;IAN/B,QAAQ,EAAE,IAAI,EAAE,CAAC;IACjB,GAAG,EAAE,IAAI,CAAC;IACV,IAAI,EAAE,OAAO,CAAC;IAEd,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG,CAAC,EAAE,IAAI,GAAG,IAAI;gBAEnB,KAAK,EAAE,KAAK,EAAE,GAAG,CAAC,EAAE,IAAI;IAK3C,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,IAAI;IA6ElC,IAAI,KAAK,WAUR;CACJ;AAED,qBAAa,cAAc;IA4BJ,SAAS,EAAE,QAAQ;IAAS,WAAW,EAAE,MAAM;IAAS,SAAS;IAChF,OAAO,CAAC,aAAa;IA1BzB,SAAS,EAAE,OAAO,CAAC;IACnB,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,UAAU,EAAE,KAAK,EAAE,CAAC;IACpB,QAAQ,EAAE,MAAM,EAAE,CAAC;IAGnB,kBAAkB,EAAE,aAAa,EAAE,CAAC;IAEpC,eAAe,EAAE,aAAa,EAAE,CAAC;IAEjC,qBAAqB,EAAE,aAAa,EAAE,CAAC;IAGvC,qBAAqB,EAAE,OAAO,EAAE,CAAC;IACjC,mBAAmB,EAAE,MAAM,EAAE,CAAC;IAC9B,gBAAgB,EAAE,OAAO,EAAE,CAAC;IAG5B,UAAU,EAAE,QAAQ,EAAE,CAAC;IAEvB,QAAQ,EAAE,OAAO,CAAC;IAClB,eAAe,EAAE,MAAM,CAAC;IAExB,aAAa,UAAS;gBAEH,SAAS,EAAE,QAAQ,EAAS,WAAW,EAAE,MAAM,EAAS,SAAS,UAAQ,EAChF,aAAa,SAA2B;IAKpD,EAAE,IAAI,QAAQ,EAAE;IAkDhB,aAAa;IAUb,SAAS,CAAC,wBAAwB;IAWlC,SAAS,CAAC,eAAe;IAkBzB,aAAa;IA+Kb;;;;;;;OAOG;IACH,OAAO,CAAC,aAAa;IAQrB,SAAS,CAAC,mBAAmB;IAoK7B,SAAS,CAAC,cAAc;IAqBxB,OAAO,CAAC,kBAAkB;IAe1B,OAAO,CAAC,aAAa;IAoCrB,OAAO,CAAC,kBAAkB;IAoH1B,OAAO,CAAC,6BAA6B;IAwCrC,aAAa,CAAC,EAAE,EAAE,OAAO,GAAG,OAAO;IAKnC,kBAAkB,CAAC,EAAE,EAAE,OAAO,GAAG,MAAM;IA0FvC,SAAS,CAAC,SAAS,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,OAAO;CAOvE;AAOD,wBAAgB,aAAa,CAAC,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,UAGjD;AAMD,wBAAgB,WAAW,CAAC,KAAK,EAAE,KAAK,WAIvC"}
{"version":3,"file":"OffsetPolyline.d.ts","sourceRoot":"","sources":["../../../src/GraphicsSystem/OffsetPolyline.ts"],"names":[],"mappings":"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"}