Files
ViewDesignEngine/docs/22-v4.4-开发计划.md
T

94 lines
3.4 KiB
Markdown
Raw Normal View History

# ViewDesignEngine v4.4 — 精确容差系统 + 欧拉操作
> 制定: 2026-07-25 | 状态: ✅ 完成
>
> 进度: ✅ M1 精确容差 | ✅ M2 欧拉操作 | ✅ Linux 编译验证 | ⏳ Windows 编译验证
继 v4.2 共享拓扑稳定性修复后,v4.4 继续 B-Rep 地基加固。
**实际情况:tolerance.h 已有大部分 fuzzy 比较和自适应容差**,本轮主要补充 ToleranceChain + 集成到 validate + 新增欧拉操作模块。
---
## 1. 🔬 精确容差系统 ✅
### 1.1 Fuzzy 比较基础设施 ✅(已有)
- `fuzzy_equal`, `fuzzy_zero`, `fuzzy_gt/lt/gte/lte`
- `fuzzy_equal_vec`, `fuzzy_equal_point`, `fuzzy_parallel`, `fuzzy_perpendicular`
### 1.2 自适应容差 ✅(已有)
- `ToleranceConfig` 结构体:按操作类型设置容差
- `adaptive_tolerance(model_size, base_tol)`
- `model_tolerance(body)`
### 1.3 容差传播 ✅(本轮新增)
- [x] `ToleranceChain` 类 — RSS 合成累积容差
- `push(op_name, tol)`, `cumulative()`, `max_step()`, `depth()`
- [x] 7 项新测试
### 1.4 集成 ✅
- [x] `brep_validate.cpp` 硬编码 1e-6 → `ToleranceConfig::global().vertex_merge`
- [x] `brep_validate.cpp` 硬编码 1e-9 → `ToleranceConfig::global().point_on_surface`
- [x] `brep_heal.cpp` — 已零硬编码
### 测试
- [x] ToleranceChain: 7 项新测试
- [x] 原有容差测试: 14 项保持
---
## 2. 🧬 欧拉操作 ✅
### 2.1 数据结构
- [x] `EulerOp` — 静态方法模式的欧拉操作引擎
- [x] `EulerOpResult` — 含新建/删除元素 ID + 错误信息
- [x] `BrepModel` friend 声明
### 2.2 核心操作
- [x] MEV — 边上插入顶点,分裂边
- [x] KEV — 移除顶点,合并共线边
- [x] MEF — 面内建边,分裂面
- [x] KEF — 删除边,合并共面
- [x] KEMR — 删除内环边
- [x] MEKR — 内环建边
### 2.3 验证
- [x] `euler_poincare(body)` — 计算 V - E + 2F - L
- [x] `verify_euler(body)` — 验证 EP ≥ 2
### 测试 — 20 项
- EulerPoincare_Cube, VerifyEuler_Cube
- MEV: 4 项(分裂/四分之一参数/拒绝边界/模型保持有效)
- KEV: 3 项(合并/拒绝非度2/拒绝非共线)
- MEF: 3 项(分裂/拒绝同顶点/拒绝顶点不在面内)
- KEF: 2 项(合并分裂面/不崩溃)
- KEMR: 1 项(拒绝边界边)
- 欧拉不变性: 3 项(MEV后/MEF→KEF往返/MEV→KEV往返)
- 辅助: 1 项(VertexDegree
---
## 修改文件汇总
| 文件 | 操作 | 说明 |
|------|------|------|
| `include/vde/brep/tolerance.h` | 修改 | 新增 ToleranceChain 类 |
| `src/brep/tolerance.cpp` | 修改 | 实现 ToleranceChain |
| `src/brep/brep_validate.cpp` | 修改 | 硬编码容差 → ToleranceConfig |
| `include/vde/brep/euler_op.h` | **新建** | 欧拉操作头文件 |
| `src/brep/euler_op.cpp` | **新建** | 欧拉操作实现(~350行) |
| `include/vde/brep/brep.h` | 修改 | 添加 friend 声明 |
| `tests/brep/test_tolerance.cpp` | 修改 | +7 项 ToleranceChain 测试 |
| `tests/brep/test_euler_op.cpp` | **新建** | 20 项欧拉操作测试 |
| `tests/brep/CMakeLists.txt` | 修改 | 添加 test_euler_op |
| `src/CMakeLists.txt` | 修改 | 添加 euler_op.cpp, dxf_import.cpp |
| `docs/22-v4.4-开发计划.md` | 修改 | 状态更新 |
---
## 待做
- [x] **Linux 编译验证** — 编译成功,增量更新 15/15 测试通过
- [ ] **Windows 节点编译验证** — 需在 Win 端编译运行测试
- [x] 提交 Gitea — commit 8c3edcb