v0.1.0: 初始工程骨架 — 7模块 40头文件 32源文件 17文档 Apache-2.0

This commit is contained in:
ViewDesignEngine
2026-07-23 05:27:51 +00:00
commit 02d0520aa5
133 changed files with 5350 additions and 0 deletions
+135
View File
@@ -0,0 +1,135 @@
# 模块划分
## 目录
1. [M01:基础设施层(foundation](#m01基础设施层foundation)
2. [M02:几何核心层(core](#m02几何核心层core)
3. [M03:曲线曲面层(curves](#m03曲线曲面层curves)
4. [M04:网格处理层(mesh](#m04网格处理层mesh)
5. [M05:空间索引层(spatial](#m05空间索引层spatial)
6. [M06:布尔运算层(boolean](#m06布尔运算层boolean)
7. [M07:碰撞检测层(collision](#m07碰撞检测层collision)
8. [构建目标总览](#8-构建目标总览)
---
## M01:基础设施层(foundation
**路径**`src/foundation/`
**命名空间**`vde::foundation`
| 组件 | 文件 | 说明 |
|------|------|------|
| 数学封装 | `math_types.h/cpp` | Eigen 二次封装,统一向量/矩阵接口 |
| 精确谓词 | `exact_predicates.h/cpp` | Shewchuk 自适应精度谓词 |
| 公差系统 | `tolerance.h/cpp` | 全局/局部公差管理 |
| 内存池 | `memory_pool.h/cpp` | 高性能内存分配器 |
| I/O | `io_obj.h/cpp`, `io_stl.h/cpp` | OBJ/STL 文件读写 |
| 错误码 | `error_codes.h` | 统一错误码枚举 |
**公开头文件**`include/vde/foundation/*.h`
---
## M02:几何核心层(core
**路径**`src/core/`
**命名空间**`vde::core`
| 组件 | 文件 | 说明 |
|------|------|------|
| 基本类型 | `point.h`, `line.h`, `plane.h` | 点/线/面的类型别名与便捷函数 |
| 基本图形 | `triangle.h`, `polygon.h` | 三角形与多边形 |
| 包围盒 | `aabb.h` | 轴对齐包围盒 |
| 变换 | `transform.h` | 平移/旋转/缩放的便捷函数 |
| 距离计算 | `distance.h` | 各类几何距离计算 |
| 凸包 | `convex_hull.h` | 2D 与 3D 凸包算法 |
---
## M03:曲线曲面层(curves
**路径**`src/curves/`
**命名空间**`vde::curves`
| 组件 | 文件 | 说明 |
|------|------|------|
| Bezier 曲线 | `bezier_curve.h/cpp` | 任意阶 Bezier 曲线 |
| B-Spline 曲线 | `bspline_curve.h/cpp` | B-Spline 曲线 |
| NURBS 曲线 | `nurbs_curve.h/cpp` | NURBS 曲线 |
| Bezier 曲面 | `bezier_surface.h/cpp` | 张量积 Bezier 曲面 |
| B-Spline 曲面 | `bspline_surface.h/cpp` | B-Spline 曲面 |
| 离散化 | `tessellation.h/cpp` | 曲线/曲面三角网格化 |
---
## M04:网格处理层(mesh
**路径**`src/mesh/`
**命名空间**`vde::mesh`
| 组件 | 文件 | 说明 |
|------|------|------|
| 半边网格 | `halfedge_mesh.h/cpp` | 半边数据结构与拓扑查询 |
| Delaunay 剖分 | `delaunay_2d.h/cpp` | 2D Bowyer-Watson 算法 |
| 网格简化 | `mesh_simplify.h/cpp` | QEM 算法 |
| 网格平滑 | `mesh_smooth.h/cpp` | Laplacian / Taubin 平滑 |
| 网格布尔 | `mesh_boolean.h/cpp` | 3D 网格布尔运算 |
| 质量评估 | `mesh_quality.h/cpp` | 网格质量指标 |
| 网格修复 | `mesh_repair.h/cpp` | 孔洞填充、非流形修复 |
---
## M05:空间索引层(spatial
**路径**`src/spatial/`
**命名空间**`vde::spatial`
| 组件 | 文件 | 说明 |
|------|------|------|
| 索引接口 | `spatial_index.h` | 空间索引抽象接口(虚基类) |
| BVH | `bvh.h/cpp` | 包围体层次结构 |
| 八叉树 | `octree.h/cpp` | 八叉树空间划分 |
| KD-Tree | `kd_tree.h/cpp` | K 维树 |
| R-Tree | `r_tree.h/cpp` | R 树 |
---
## M06:布尔运算层(boolean
**路径**`src/boolean/`
**命名空间**`vde::boolean`
| 组件 | 文件 | 说明 |
|------|------|------|
| 2D 布尔 | `boolean_2d.h/cpp` | 多边形布尔运算 |
| 网格布尔 | `boolean_mesh.h/cpp` | 三角网格布尔运算 |
---
## M07:碰撞检测层(collision
**路径**`src/collision/`
**命名空间**`vde::collision`
| 组件 | 文件 | 说明 |
|------|------|------|
| GJK | `gjk.h/cpp` | GJK 算法(凸体碰撞检测) |
| SAT | `sat.h/cpp` | 分离轴定理(多面体) |
| 射线相交 | `ray_intersect.h/cpp` | 射线-三角形等相交测试 |
| 三角形相交 | `tri_intersect.h/cpp` | 三角形-三角形 Möller 算法 |
---
## 8. 构建目标总览
| 目标 | 类型 | 依赖 |
|------|------|------|
| `vde_foundation` | 静态库 | Eigen3 |
| `vde_core` | 静态库 | vde_foundation |
| `vde_curves` | 静态库 | vde_core |
| `vde_mesh` | 静态库 | vde_core |
| `vde_spatial` | 静态库 | vde_core |
| `vde_boolean` | 静态库 | vde_mesh, vde_spatial |
| `vde_collision` | 静态库 | vde_core, vde_spatial |
| `vde` | 聚合库 | 以上全部 |