export interface IXy { x: number; y: number; } export interface IRltb { right: number; left: number; top: number; bottom: number; } export interface IXywh { x: number; y: number; w: number; h: number; } export interface IBox { x: number; y: number; width: number; height: number; } export type IRect = IRltb | IXywh | IBox; /** * 矩形描述转换 * 把 {right, left, top, bottom} 转化为 {x, y , w, h} * @param rltb * @return {IXywh} */ export declare function rltb2xywh(rltb: IRltb): IXywh; /** * 矩形描述转换 * 把 {x, y , w, h} 转化为 {right, left, top, bottom} * @param xywh * @return {IRltb} */ export declare function xywh2rltb(xywh: IXywh): IRltb; /** * 给 Rltb 添加内边距 * @param rltb * @param padding 内边距,支持类似 CSS 的数组形式 * * @example * paddingRltb(xywh, 5) * paddingRltb(xywh, [3,4,5,10]) * * @return {IRltb} */ export declare function paddingRltb(rltb: IRltb, padding: number | number[]): IRltb; /** * 给 Xywh 添加内边距 * @param xywh * @param padding 内边距,支持类似 CSS 的数组形式 * * @example * paddingXywh(xywh, 5) * paddingXywh(xywh, [3,4,5,10]) */ export declare function paddingXywh(xywh: IXywh, padding: number | number[]): IXywh; /** * 给 Rect 添加内边距 * @param rect * @param padding 内边距,支持类似 CSS 的数组形式 * * @example * paddingRect(xywh, 5) * paddingRect(rltb, [3,4,5,10]) */ export declare function paddingRect(rect: IRect, padding: number | number[]): IRltb | IXywh; /** * 矩形对象是否是 IXywh 的描述形式 * @param rect */ export declare function rectIsXywh(rect: IRect): boolean; /** * 矩形对象是否是 IRltb 的描述形式 * @param rect */ export declare function rectIsRltb(rect: IRect): boolean; /** * 计算多个 rltb 矩形的边界 * * getRltbsRange([xywh]) * @returns {IRltb} * @param rltbs */ export declare function getRltbsRange(rltbs: IRltb[]): IRltb; /** * 计算多个 xywh 矩形的边界 * * getXywhsRange([xywh]) * @param xywhs * @returns {IRltb} */ export declare function getXywhsRange(xywhs: IXywh[]): IRltb; /** * 整体移动多个 xywh 到某点,保留原 xywhs 相对位置。 * 会改变 xywhs 里每个 xywh 对象的 x,y 值。 * @param xywhs * @param xy * @return {IXywh[]} */ export declare function moveXywhs(xywhs: IXywh[], xy: IXy): IXywh[]; /** * 判断 2 个 rltb 是否有重叠 * @param rltbA * @param rltbB * @returns {boolean} */ export declare function rltbHasOverlap(rltbA: IRltb, rltbB: IRltb): boolean; /** * 判断 2 个 xywh 是否有重叠 * @param xywhA * @param xywhB * @return {boolean} */ export declare function xywhHasOverlap(xywhA: IXywh, xywhB: IXywh): boolean; /** 找出目标区域与多个区域中重叠的区域 */ export declare function xywhOverlapXywhs(xywhSrc: IXywh, xywhs: IXywh[]): IXywh[]; /** * 判断点是否在区域内 * @param point * @param rltb */ export declare function rltbHasPoint(point: IXy, rltb: IRltb): boolean; /** * 判断点是否在区域内 * @param point * @param rltb */ export declare function xywhHasPoint(point: IXy, xywh: IXywh): boolean; /** * 判断区域B是否在区域A内 */ export declare function xywhHasXywh(xywhA: IXywh, xywhB: IXywh): boolean; /** * rect 转换到 box * @param rect */ export declare function rect2Box(rect: IRect): IBox; export declare function box2xywh(box: IBox): { x: number; y: number; w: number; h: number; }; //# sourceMappingURL=rect.d.ts.map