release: v1.0.0 — 首个稳定版本,M4✅ 全部里程碑完成
This commit is contained in:
@@ -1,31 +1,91 @@
|
||||
# ViewDesignEngine — 高性能 CAD 计算几何算法库
|
||||
|
||||
C++17 实现的计算几何引擎,提供曲线曲面建模、网格处理、布尔运算、空间索引、碰撞检测等底层几何计算能力。
|
||||
C++17 实现的计算几何引擎。提供曲线曲面建模、网格处理、布尔运算、空间索引、碰撞检测等底层几何计算能力。
|
||||
|
||||
[](tests/)
|
||||
[](CHANGELOG.md)
|
||||
[](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 <vde/core/point.h>
|
||||
#include <vde/curves/bezier_curve.h>
|
||||
#include <vde/mesh/delaunay_2d.h>
|
||||
|
||||
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<Point2D> 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`
|
||||
|
||||
Reference in New Issue
Block a user