8a19e265cd
S10-A: B-Rep modeling 补齐 - fillet: 恒定半径滚动球倒圆(NURBS 曲面构建 + 相邻面裁剪) - chamfer: 等距倒角(平面偏移 + 倒角面构建) - shell: 完整抽壳(顶点偏移 + 内外面 + 开口侧壁) S10-B: STEP AP203/AP214 导入 - ISO 10303-21 解析器(1,424 行) - 支持 14 种几何实体 → NurbsCurve/NurbsSurface 转换 - 完整拓扑链:VERTEX_POINT → EDGE_CURVE → EDGE_LOOP → ADVANCED_FACE → CLOSED_SHELL → MANIFOLD_SOLID_BREP - 装配支持:NEXT_ASSEMBLY_USAGE_OCCURRENCE + CONTEXT_DEPENDENT_SHAPE_REPRESENTATION S10-C.1: STEP AP214 导出 - export_step / export_step_file - 曲线/曲面类型自动检测简化输出 S10-C.2: B-Rep 级布尔运算 - brep_union / brep_intersection / brep_difference - 面-面求交 + 内/外分类 + 面缝合 S10-C.3: B-Rep 工程验证 - ValidationResult: 水密性/悬边/自相交/方向一致性/欧拉示性数 测试: 5 个新测试文件,47 项测试(modeling/STEP导入/导出/布尔/验证) 修改: 7 files (+576/-47) | 新增: 13 files (4,141 行) 总计: +4,670 行
106 lines
5.2 KiB
Markdown
106 lines
5.2 KiB
Markdown
# 更新日志
|
||
## [2.0.0] — 2026-07-24
|
||
|
||
### Sprint 10 — B-Rep 完善 + STEP 导入导出 + 工程健壮性
|
||
- **B-Rep 建模补齐**:fillet(恒定半径滚动球倒圆)、chamfer(等距倒角)、shell(抽壳,含侧壁连接面)完整实现
|
||
- **STEP 导入** (`import_step`):ISO 10303-21 解析器,支持 AP203/AP214 标准几何与拓扑实体
|
||
- **STEP 导出** (`export_step`):BrepModel → STEP AP214 字符串/文件,含曲线/曲面类型自动检测
|
||
- **B-Rep 布尔运算**:brep_union / brep_intersection / brep_difference,基于面面求交 + 内/外分类 + 缝合
|
||
- **B-Rep 验证** (`validate`):水密性、悬边、自相交、方向一致性、欧拉示性数检查
|
||
- **测试**:新增 5 个测试文件(fillet/chamfer/shell、STEP 导入/导出、B-Rep 布尔、B-Rep 验证),共 47 项测试
|
||
|
||
## [1.0.0] — 2026-07-24
|
||
|
||
### 首个稳定版本
|
||
|
||
所有 9 个 Sprint 完成,全部模块实现并通过测试。
|
||
|
||
**指标**: 7,800+ 行源码,2,300+ 行头文件,143 测试 100% 通过
|
||
|
||
#### M3 性能基准(本轮完成)
|
||
- BVH/Delaunay/Curves/Spatial/Boolean 5 套 benchmark 全部通过
|
||
- 性能报告: `docs/benchmark-report.md`
|
||
|
||
#### M3 修复(本轮完成)
|
||
- **Delaunay3D**: circumcenter Eigen QR 求解,空外接球验证
|
||
- **B-Rep**: is_valid ID 查找,add_surface/add_edge 返回下标
|
||
- **BooleanMesh**: ray-tri 交点容差 + 面上偏移
|
||
|
||
|
||
|
||
## [0.9.0] — 2026-07-23
|
||
|
||
### M3 里程碑起步 — 性能基准测试套件
|
||
- **新增 `bench/` 目录**:Google Benchmark 驱动的性能基准测试套件
|
||
- **bench_bvh**:N=1K/10K/100K 随机三角形 SAH 构建 + 1K 射线最近命中查询
|
||
- **bench_delaunay**:N=100/1K/10K 随机点 2D Bowyer-Watson 三角剖分
|
||
- **bench_boolean**:两个球体 (N=100/500 面) 3D union/intersection 运算
|
||
- **bench_curves**:N=10K/100K 次 Bezier/BSpline evaluate 吞吐量
|
||
- **bench_spatial**:N=1K/10K/100K 点 R-Tree STR 构建 + KD-Tree 构建;kNN(n=10) 查询
|
||
- **构建集成**:`BUILD_BENCHMARKS` 选项 (默认 OFF),Google Benchmark 通过 FetchContent 自动下载
|
||
- **CTest 集成**:`ctest -R bench_` 一键运行全部基准
|
||
|
||
### Sprint 9 — 3D Delaunay/B-Rep/Boolean 测试补全
|
||
- **测试新增**:test_delaunay_3d(6 个用例)、test_boolean_mesh(22 个用例)、test_brep(17 个用例)
|
||
- **3D Delaunay 测试**:空输入、正四面体、Delaunay 空外接球性质验证、退化点(共面/共线)
|
||
- **3D 网格布尔测试**:相交/不相交/包含场景的 union/intersection/difference/sym_diff、空网格边界、点分类、invert/merge 辅助函数
|
||
- **B-Rep 测试**:make_box/make_sphere/make_cylinder 实体创建、拓扑查询(face_edges/edge_faces/vertex_edges)、to_mesh 离散化、有效性验证、空模型边缘情况
|
||
- **构建更新**:tests/CMakeLists.txt 添加 brep 子目录,mesh/boolean CMakeLists 添加新测试
|
||
- **文档更新**:开发计划 S9 状态更新为进行中
|
||
|
||
## [0.8.0] — 2026-07-23
|
||
|
||
### Sprint 8 收尾 — spatial + mesh
|
||
- **KD-Tree 完善**:priority-queue kNN、ray query、remove 支持
|
||
- **Octree 完善**:ray query 补充
|
||
- **mesh_simplify**:QEM 简化实现验证
|
||
|
||
## [0.7.0] — 2026-07-23
|
||
|
||
### 模块补全
|
||
- **3D 网格布尔运算**:mesh_union/intersection/difference/sym_diff + BVH 射线投射
|
||
- **网格平滑扩展**:HC Laplacian(体积保持)、双边滤波(特征保留)
|
||
- **网格质量评估**:三角形/四面体质量、质量报告(A-F 分级)
|
||
- **R-Tree 完整实现**:STR bulk-loading、分层查询、kNN priority-queue
|
||
- **碰撞检测扩展**:ray-aabb/sphere/mesh/plane、tri-tri 交线
|
||
- **曲线曲面补全**:Bezier/BSpline 解析导数、自适应细分
|
||
- **core 补全**:distance(6 种扩展)、polygon(三角剖分、凸包、简化)
|
||
- **foundation 补全**:OBJ 纹理坐标、STL ASCII/Binary 双格式
|
||
|
||
### 测试覆盖扩展
|
||
- 新增 7 个测试文件:polygon、distance、r_tree、ray、quality、smooth
|
||
- 测试从 11 文件/25 用例 → 17 文件/92 用例(100% 通过)
|
||
|
||
### 修复
|
||
- exact_predicates 匿名 namespace 泄漏
|
||
- RTree insert/remove 自赋值 bug
|
||
- mesh_quality 纵横比公式归一化
|
||
|
||
### 文档
|
||
- 开发计划 S8 状态更新
|
||
|
||
## [0.1.0] — 2026-07-23
|
||
|
||
### 新增
|
||
- 基础设施层(foundation):数学类型、公差系统、精确谓词、OBJ/STL 读写
|
||
- 几何核心层(core):点、线、面、三角形、AABB、几何变换、距离计算、凸包
|
||
- 曲线曲面层(curves):Bezier/B-Spline/NURBS 曲线与曲面、离散化
|
||
- 网格处理层(mesh):半边数据结构、Delaunay 2D 三角剖分
|
||
- 空间索引层(spatial):BVH(SAH 构建)
|
||
- 碰撞检测层(collision):GJK 算法、Möller-Trumbore 射线-三角形相交
|
||
- 布尔运算层(boolean):2D 多边形 Sutherland-Hodgman 裁剪
|
||
- 构建系统:CMake + FetchContent(Eigen, GTest 自动下载)
|
||
- 测试框架:Google Test,11 个测试文件
|
||
- 示例程序:6 个可运行示例
|
||
|
||
### v0.8.0 时已全部完成 ✅
|
||
|
||
(以下为初始规划时的待完成清单,现已全部实现)
|
||
- 网格简化(QEM) ✅
|
||
- 网格平滑(Laplacian/Taubin/HC/Bilateral) ✅
|
||
- 3D 网格布尔运算 ✅
|
||
- Octree、KD-Tree、R-Tree 完整实现 ✅
|
||
- 3D Delaunay 剖分 ✅
|
||
- B-Rep 支持 ✅
|
||
- Python 绑定 ✅
|