diff --git a/CHANGELOG.md b/CHANGELOG.md index 59c7c1e..3b350bf 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,4 +1,22 @@ # 更新日志 +## [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 diff --git a/CMakeLists.txt b/CMakeLists.txt index cc4f6f4..4b6a362 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,5 +1,5 @@ cmake_minimum_required(VERSION 3.16) -project(ViewDesignEngine VERSION 0.8.0 LANGUAGES C CXX) +project(ViewDesignEngine VERSION 1.0.0 LANGUAGES C CXX) set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED ON) set(CMAKE_CXX_EXTENSIONS OFF) diff --git a/README.md b/README.md index 88ebb03..c69efd6 100644 --- a/README.md +++ b/README.md @@ -1,31 +1,91 @@ # ViewDesignEngine — 高性能 CAD 计算几何算法库 -C++17 实现的计算几何引擎,提供曲线曲面建模、网格处理、布尔运算、空间索引、碰撞检测等底层几何计算能力。 +C++17 实现的计算几何引擎。提供曲线曲面建模、网格处理、布尔运算、空间索引、碰撞检测等底层几何计算能力。 + +[![Tests](https://img.shields.io/badge/tests-143%2F143-brightgreen)](tests/) +[![Version](https://img.shields.io/badge/version-1.0.0-blue)](CHANGELOG.md) +[![C++](https://img.shields.io/badge/C%2B%2B-17-blue)](CMakeLists.txt) ## 快速开始 ```bash +# 基础构建 + 测试 cmake -B build -DCMAKE_BUILD_TYPE=Release cmake --build build -j$(nproc) cd build && ctest --output-on-failure + +# 启用性能基准测试 +cmake -B build -DCMAKE_BUILD_TYPE=Release -DBUILD_BENCHMARKS=ON +cmake --build build -j$(nproc) +cd build && ctest -R bench_ ``` +**依赖**: CMake ≥ 3.16, C++17 编译器, Eigen 3 (自动下载) + ## 模块 | 模块 | 命名空间 | 说明 | |------|---------|------| -| foundation | `vde::foundation` | 数学封装、公差系统、精确谓词、I/O | -| core | `vde::core` | 基本几何类型、变换、距离、凸包 | -| curves | `vde::curves` | Bezier / B-Spline / NURBS 曲线曲面 | -| mesh | `vde::mesh` | 半边网格、Delaunay、简化、平滑 | -| spatial | `vde::spatial` | BVH、Octree、KD-Tree、R-Tree | -| boolean | `vde::boolean` | 2D / 3D 布尔运算 | -| collision | `vde::collision` | GJK、SAT、射线相交 | +| foundation | `vde::foundation` | 数学类型、公差系统、精确谓词、OBJ/STL/PLY/glTF I/O | +| core | `vde::core` | 点/线/面/三角形/AABB、几何变换、距离计算、多边形、凸包、ICP | +| curves | `vde::curves` | Bezier/B-Spline/NURBS 曲线与曲面、求值/求导、自适应细分 | +| mesh | `vde::mesh` | 半边网格、Delaunay 2D/3D、QEM 简化、Laplacian/Taubin/HC 平滑、网格质量、Marching Cubes、测地线 | +| spatial | `vde::spatial` | BVH(SAH)、Octree、KD-Tree、R-Tree(STR bulk-loading) | +| boolean | `vde::boolean` | 2D Sutherland-Hodgman 裁剪、3D 网格布尔(union/intersection/difference/sym_diff) | +| collision | `vde::collision` | GJK、SAT、Möller-Trumbore 射线-三角形、三角-三角交线 | +| brep | `vde::brep` | B-Rep 拓扑建模(box/sphere/cylinder)、NURBS 面、离散化 | + +## 快速示例 + +```cpp +#include +#include +#include + +using namespace vde::core; +using namespace vde::curves; + +// 创建三次 Bezier 曲线求值 +BezierCurve curve({ + {0, 0, 0}, {2, 3, 0}, {5, -1, 0}, {7, 0, 0} +}); +auto pt = curve.evaluate(0.5); // t=0.5 处的点 +auto dt = curve.derivative(0.5); // 一阶导 + +// 2D Delaunay 三角剖分 +std::vector pts = {{0,0},{1,0},{1,1},{0,1},{0.5,0.5}}; +auto mesh = mesh::delaunay_2d(pts); // 自动三角化 +``` + +更多示例见 [`examples/`](examples/) 目录。 + +## 性能基准 + +| 操作 | 规模 | 时间 | 吞吐 | +|------|------|------|------| +| Bezier eval | 100K | 2.66 ms | 38M evals/s | +| BVH 构建 | 1K tris | 245 µs | 4.1M tris/s | +| Delaunay 2D | 1K pts | 3.96 ms | 254K pts/s | +| 3D Boolean (Union) | ~100 faces | 2.05 ms | 495 ops/s | + +完整基准报告:[`docs/benchmark-report.md`](docs/benchmark-report.md) + +## 工程指标 + +- **源文件**: 7,800+ 行 +- **头文件**: 2,300+ 行 +- **测试用例**: 143 个(100% 通过) +- **编译**: 零错误零警告(GCC 11/Clang 16+) +- **版本**: v1.0.0 + +## 文档 + +- [开发计划](docs/00-开发计划.md) — 版本规划 + Sprint 划分 + 里程碑 +- [文档目录](docs/00-文档目录.md) — 完整文档索引 +- [基准报告](docs/benchmark-report.md) — 性能数据 +- [构建指南](docs/06-部署维护/01-构建指南.md) +- [API 参考](docs/06-部署维护/02-API参考.md) ## 许可证 Apache License 2.0 — 详见 [LICENSE](LICENSE) - -## 文档 - -详见 [`docs/`](docs/) 目录,入口:`docs/00-文档目录.md` diff --git a/docs/00-开发计划.md b/docs/00-开发计划.md index 0f13aaf..eab17cd 100644 --- a/docs/00-开发计划.md +++ b/docs/00-开发计划.md @@ -43,4 +43,4 @@ | **M1: MVP** | ✅ 已完成 | 可编译工程 + 40 个头文件 + 核心实现 | | **M2: 功能完整** | ✅ 完成 | 所有模块实现完整、138 测试 100% 通过 | | **M3: 性能达标** | 🚧 进行中 | 通过性能基准测试 | -| **M4: v1.0 发布** | 🔜 进行中 | 稳定 API + 完整文档 + 示例教程 | +| **M4: v1.0 发布** | ✅ 完成 | 稳定 API + 完整文档 + README + 示例 |