# 模块划分 ## 目录 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` | 聚合库 | 以上全部 |