2021-01-28 10:17:21 +08:00
|
|
|
|
import { Curve } from "../DatabaseServices/Entity/Curve";
|
2022-05-26 11:06:27 +08:00
|
|
|
|
import { Route, Vertice } from "./CurveMap";
|
2023-01-11 09:59:43 +08:00
|
|
|
|
type RegionRouteS = (Route[])[];
|
2021-01-28 10:17:21 +08:00
|
|
|
|
/**
|
|
|
|
|
面域分析,基于最小循环图重新实现的版本,拓展了实现求最大轮廓。
|
|
|
|
|
当最大轮廓=最小轮廓时,只绘制最大轮廓(独立轮廓无分裂)。
|
|
|
|
|
|
|
|
|
|
算法只实现去重模式,业务场景应该没有非去重模式。
|
|
|
|
|
如果需要非去重模式,那么应该获取到多个CurveMap,然后对多个CurveMap进行面域分析,得出多个重叠的面域。
|
|
|
|
|
*/
|
|
|
|
|
export declare class RegionParse {
|
|
|
|
|
numDimensions: number;
|
|
|
|
|
private removeDuplicate;
|
|
|
|
|
RegionsOutline: RegionRouteS;
|
|
|
|
|
RegionsInternal: RegionRouteS;
|
|
|
|
|
ExpLineMap: Map<Curve, Curve[]>;
|
|
|
|
|
private _CurveCount;
|
|
|
|
|
/**
|
|
|
|
|
* @param cuList 请不要传递圆和椭圆.
|
|
|
|
|
* @param [numDimensions=3] 精度:小数点后个数
|
|
|
|
|
* @param [removeDuplicate=true] 删除重复(现在必须是true,请不要修改它)
|
|
|
|
|
*/
|
|
|
|
|
constructor(cuList: Curve[], numDimensions?: number, removeDuplicate?: boolean);
|
2022-02-16 11:15:31 +08:00
|
|
|
|
static RegionsIsOverlap(Route: Route[]): boolean;
|
|
|
|
|
private RemoveFilamentAt;
|
|
|
|
|
private RemoveEdge;
|
2021-01-28 10:17:21 +08:00
|
|
|
|
/**
|
|
|
|
|
* 找到最下方并且最左边的站 yx
|
|
|
|
|
*/
|
|
|
|
|
private FindLowerLeftStand;
|
|
|
|
|
/**
|
|
|
|
|
* 构造路线图. 每个节点对应下一个路口的路线表. 路口表使用逆时针排序,起始角度使用正x轴.
|
|
|
|
|
* @returns 所有的顶点
|
|
|
|
|
*/
|
2022-05-26 11:06:27 +08:00
|
|
|
|
protected GenerateVerticeMap(curveList: Curve[]): Array<Vertice>;
|
2021-01-28 10:17:21 +08:00
|
|
|
|
private BreakArc;
|
|
|
|
|
/**
|
|
|
|
|
* 曲线是否已经被算法使用
|
|
|
|
|
*/
|
|
|
|
|
GetCueveUsed(cu: Curve): boolean;
|
|
|
|
|
}
|
2022-02-16 11:15:31 +08:00
|
|
|
|
export declare function CalcRouteAngle(r: Route, length: number): void;
|
2021-01-28 10:17:21 +08:00
|
|
|
|
export {};
|
|
|
|
|
//# sourceMappingURL=RegionParse.d.ts.map
|