增加余料归方算法
This commit is contained in:
48
types/Add-on/testEntity/LargestInteriorRectangle.d.ts
vendored
Normal file
48
types/Add-on/testEntity/LargestInteriorRectangle.d.ts
vendored
Normal file
@@ -0,0 +1,48 @@
|
||||
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;
|
||||
/**
|
||||
* @example
|
||||
*
|
||||
* //1. 设置过滤条件(舍弃掉一些无用的矩形)
|
||||
* let lir = new LargestInteriorRectangle;
|
||||
* lir.MinWidth = 200;//设置最小可以接受的矩形宽度
|
||||
* lir.MinHeight = 200;//设置最小可以接受的矩形宽度
|
||||
* lir.MinArea = 200 * 200;//设置最小可以接受的矩形面积
|
||||
*
|
||||
* //除了变量 也可以设置过滤函数
|
||||
* //例如:
|
||||
* lir.FilterRectFn = !(w,h)=> (w>500 || h>500) //这样将对长或者宽不足500的矩形板过滤(舍弃)
|
||||
*
|
||||
* //2. 可以设置优先模式,默认提供了面积优先,你也可以使用宽度优先或者高度优先,或许默认规则可能不好用,可以自定义传入自定义函数.
|
||||
* lir.GetMaxRectIndexFn = LargestInteriorRectangle.GetMaxAreaFn; //或者 LargestInteriorRectangle.GetMaxWidthFn / LargestInteriorRectangle.GetMaxHeightFn
|
||||
*
|
||||
* //3. 你已经设置好解析器,你现在可以进行解析了
|
||||
* let rects = lir.ParseLir([ new Vector3(0,0,0) , new Vector3(100,0,0) , new Vector3(50,100,0)]) //首尾不需要重复,首尾重复可能造成错误,程序不再校验
|
||||
*
|
||||
*/
|
||||
export declare class LargestInteriorRectangle {
|
||||
MinWidth: number;
|
||||
MinHeight: number;
|
||||
MinArea: number;
|
||||
/** 可以自定义过滤函数,以便过滤掉某些不需要的矩形,当返回true时,我们会过滤它 */
|
||||
FilterRectFn: (width: number, height: number) => boolean;
|
||||
GetMaxRectIndexFn: (rects: [number, number, number][]) => number;
|
||||
static GetMaxAreaFn: typeof GetMaxAreaFn;
|
||||
static GetMaxWidthFn: typeof GetMaxWidthFn;
|
||||
static GetMaxHeightFn: typeof GetMaxHeightFn;
|
||||
constructor();
|
||||
/**
|
||||
* 分析最大内接矩形
|
||||
* @param polygonPts 多边形点表,首尾不要相等
|
||||
*/
|
||||
ParseLIR(polygonPts: Vector2[]): Box2[];
|
||||
}
|
||||
export {};
|
||||
//# sourceMappingURL=LargestInteriorRectangle.d.ts.map
|
@@ -0,0 +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"}
|
Reference in New Issue
Block a user