import { Matrix4, Vector3 } from "three";
import { Polyline } from "../../DatabaseServices/Entity/Polyline";
import { ISpaceParse } from "../../Geometry/SpaceParse/ISpaceParse";
import { IWineRackOption, IR2WROption } from "../../UI/Store/WineRackInterface";
import { DrawWineRackTool } from "./DrawWinRackTool";
export interface IWineRackData {
    basePt: Vector3;
    brLength: number;
}
export interface IParsePlRes {
    isOk: boolean;
    isLeft?: boolean;
    pl?: Polyline;
    length?: number;
    matInv?: Matrix4;
    basePt?: Vector3;
    thickness?: number;
    isVer?: boolean;
    isRo?: boolean;
}
export declare const R2WRTolerance = 0.001;
/**
 * 斜酒格
 */
export declare class DrawObliqueWineRackTool extends DrawWineRackTool {
    Parse(space: ISpaceParse, config: IWineRackOption): void;
    private CalGridWidth;
    /**获取矩形多段线的4个对角点并判断是否有效 */
    private GetRect4Pts;
    /**获取矩形一边的点 */
    private GetRect2Pts;
    /**按格子宽获取酒格数据 */
    private CalcWineRackDataByWidth;
    private CalcWineRackDataByCount;
    CalcWineRackDataByFixed(lWRDataList: IWineRackData[], rWRDataList: IWineRackData[]): {
        width: number;
        height: number;
    };
    /**构建酒格正面多段线组*/
    CalculationRectPolylineArr(ptMid: Vector3, rectPl: Polyline, gripWidth: number): Polyline[];
    /**构建酒格正面多段线*/
    CalculationRectPolyline(pt: Vector3, rectPl: Polyline): Polyline;
    GetWineRackData(width: number, height: number, gripWidth: number, brThick: number, widthCount: number, heightCount: number, lWRDataList: IWineRackData[], rWRDataList: IWineRackData[]): void;
    /**根据酒格数据获取多段线 */
    private CreatePolylineByWineData;
    /**根据多段线组构建酒格 */
    protected DrawBoardFormPolyLine(pls: Polyline[], actualWidth?: number, config?: IR2WROption): void;
    private ParsePolyLine;
    /**绘制酒格 */
    private CreateBoard;
    /**构建酒格形状,加入齿 */
    private GetPolyline;
}
//# sourceMappingURL=DrawObliqueWineRackTool.d.ts.map