import { ExtrudeSolid } from "../../DatabaseServices/Entity/Extrude";
/**
 * @Finish 目前已实现
 * 1. 圆弧板垂直切普通板
 * 2. 普通板穿透切圆弧板
 * @TODO 当前问题记录
 * 1. 普通板切圆弧板，凹槽的长度与厚度如何确定？(目前写死厚度切穿， 长度切断)
 * 2. 圆弧板切普通版, 若二者不垂直，存在夹角，怎么办？(目前不考虑)
 * 3. 圆弧板切圆弧板，如何处理？(目前不考虑)
 * 4. 平行情况，如何处理？(目前不考虑)
 * @Log 2024/06/20
 * 处理问题1：采用CSG的包围盒与路径求交方式，来确定凹槽的长度
 * @Log 2024/06/21
 * 发现问题并处理: 若圆弧板为异形板，垂直切普通板，生成的凹槽还是整段路径
 * 发现问题并处理: 由于精度问题，导致切割后在切割，依旧有交集，故这里加了体积过滤
 * @Log 2024/06/25
 * 优化: 优化体积过滤，改用CSG真实的体积计算
 * 重构: 重构了代码结构，修复了普通板切圆弧板的bug(采用点集投影，而非之前的包围盒)
 * @Log 2024/06/26
 * 处理问题2：采用对CSG上下面进行投影，然后转为面域做并集，从而生成凹槽
 * @Log 2024/06/27
 * 优化问题2：面域的布尔运算很慢，容易造成肉眼可见的卡顿(约1-2秒)，现在改用project
 * @Log 2024/07/02
 * 发现问题并处理: project存在精度问题，导致凹槽的长度不准确，故做了修正(若快切断则为切断)
 * @Log 2024/07/10
 * 优化: 当普通版斜切圆弧板时，采用逆映射生成凹槽轮廓，而非原有的矩形轮廓
 * @Log 2024/07/11
 * 优化: 改用C2R生成凹槽的轮廓线，而非之前的project（因为它不准）
 * 处理问题3：通过逆映射实现圆弧板切圆弧板
 */
/** 针对圆弧板的板件切割*/
export declare class BoardCuttingForSweep {
    private meat;
    private knife;
    /** 生成圆弧板的切割器*/
    constructor(meat: ExtrudeSolid, knife: ExtrudeSolid);
    /** 生成凹槽 */
    ConverToLocalGroove(): ExtrudeSolid[];
    /** 圆弧板切普通板 */
    private ArcCutBoard;
    /** 普通板切圆弧板 */
    private BoardCutArc;
    /** 圆弧板切圆弧板 */
    private ArcCutArc;
    /** 生成基础的凹槽 */
    private CreateBaseGroove;
    /** 更新凹槽厚度 */
    private UpdateGrooveThickness;
    /** 计算点集到多段线的距离 */
    private GetDistToPl;
    /** 对CSG进行逆映射(根据放样路径) */
    private InverseCSG;
    /** 对CSG进行投影，返回点集 */
    private ProjectCSGToPts;
    /** 对CSG进行投影，返回多段线 */
    private CSGToPolyline;
    /** 获取CSG在路径上的param范围 */
    private GetParamRange;
    /** 获取pA-pB之间的曲线 */
    private Get_Pl_InAtoB;
    /** 修正轮廓线(避免造型的布尔运算错误) */
    private AdjustPolyline;
    /** 调整点到线的最近点 */
    private AdjustPtClosePl;
}
//# sourceMappingURL=BoardCuttingForSweep.d.ts.map