4.3 KiB
4.3 KiB
模块划分
目录
- M01:基础设施层(foundation)
- M02:几何核心层(core)
- M03:曲线曲面层(curves)
- M04:网格处理层(mesh)
- M05:空间索引层(spatial)
- M06:布尔运算层(boolean)
- M07:碰撞检测层(collision)
- 构建目标总览
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 |
聚合库 | 以上全部 |