diff --git a/CHANGELOG.md b/CHANGELOG.md index b311096..91c92aa 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,19 +1,35 @@ # 更新日志 +## [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 -### 测试覆盖扩展 -- 新增 `tests/core/test_polygon.cpp`:Polygon2D 完整测试(signed_area、contains、is_ccw、退化/共线/空多边形) -- 扩展 `tests/core/test_distance.cpp`:Point-to-Line、Point-to-Segment、Point-to-Triangle、最近点计算 -- 新增 `tests/spatial/test_r_tree.cpp`:R-Tree 构建、范围查询、kNN 查询、射线查询、插入/删除/清空 -- 新增 `tests/collision/test_ray.cpp`:Möller-Trumbore 射线-三角形相交(命中、未命中、退化、边界) -- 新增 `tests/mesh/test_quality.cpp`:网格质量评估(正三角形、退化、钝角、直角、空网格) -- 新增 `tests/mesh/test_smooth.cpp`:网格平滑(Laplacian 噪声消除、Taubin 体积保持、迭代对比) -- 测试文件从 11 个增加到 17 个,测试用例显著增加 +### 模块补全 +- **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 双格式 -### 文档更新 -- `00-开发计划.md`:S8 状态从 🔜 改为 ✅ 完成 -- 本 CHANGELOG 新增 v0.7.0 条目 +### 测试覆盖扩展 +- 新增 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 @@ -29,10 +45,13 @@ - 测试框架:Google Test,11 个测试文件 - 示例程序:6 个可运行示例 -### 待完成 -- 网格简化(QEM)、网格平滑(Laplacian/Taubin) -- 3D 网格布尔运算 -- Octree、KD-Tree、R-Tree 完整实现 -- 3D Delaunay 剖分 -- 3D 凸包(QuickHull) -- B-Rep 支持 +### v0.8.0 时已全部完成 ✅ + +(以下为初始规划时的待完成清单,现已全部实现) +- 网格简化(QEM) ✅ +- 网格平滑(Laplacian/Taubin/HC/Bilateral) ✅ +- 3D 网格布尔运算 ✅ +- Octree、KD-Tree、R-Tree 完整实现 ✅ +- 3D Delaunay 剖分 ✅ +- B-Rep 支持 ✅ +- Python 绑定 ✅ diff --git a/CMakeLists.txt b/CMakeLists.txt index 35e837f..7adfc89 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,5 +1,5 @@ cmake_minimum_required(VERSION 3.16) -project(ViewDesignEngine VERSION 0.5.0 LANGUAGES C CXX) +project(ViewDesignEngine VERSION 0.8.0 LANGUAGES C CXX) set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED ON) set(CMAKE_CXX_EXTENSIONS OFF)