# API 总览 ViewDesignEngine 提供 C++17 头文件 API,所有公开接口位于 `include/vde/` 目录下。 ## 模块 API 概览 ### foundation — 基础设施 (`vde::foundation`) ```cpp // 数学类型 #include // Point2D, Point3D, Vector2D, Vector3D #include // Matrix3x3, Matrix4x4, Transform3D #include // AABB2D, AABB3D // 公差与精确谓词 #include // Tolerance, is_zero(), is_equal() #include // orient2d, orient3d, incircle // 格式 I/O #include // load_obj(), export_obj() #include // load_stl(), export_stl() #include // load_ply(), export_ply() #include // export_gltf(), export_glb() #include // load_3mf(), export_3mf() #include // STEP/IGES 导入导出 ``` ### core — 几何核心 (`vde::core`) ```cpp #include // Polygon2D, triangulate(), simplify() #include // VoronoiDiagram2D #include // convex_hull_2d(), convex_hull_3d() #include // point_to_line(), point_to_triangle() #include // icp_align() #include // ToolPath, GCode, CLData #include // contour_toolpath, pocket_toolpath #include // 5轴联动: swarf, multi_axis_roughing #include // ObjectPool 内存池 ``` ### curves — 曲线曲面 (`vde::curves`) ```cpp #include // BezierCurve #include // BSplineCurve #include // NurbsCurve #include // BezierSurface #include // BSplineSurface #include // NurbsSurface #include // offset, trim, blend, ruled, coons, extrude #include // adaptive_tessellate() #include // surface_intersect() #include // curvature_analysis() #include // G0/G1/G2 continuity check #include // surface_fairing() #include // exact_offset_curve() #include // extend_surface() #include // parallel_intersect() ``` ### mesh — 网格处理 (`vde::mesh`) ```cpp #include // HalfedgeMesh #include // delaunay_2d(), cdt_2d() #include // delaunay_3d() #include // qem_simplify() #include // laplacian_smooth(), hc_smooth(), bilateral_smooth() #include // mesh_union(), mesh_intersection(), mesh_difference() #include // mesh_quality_report() #include // repair_non_manifold() #include // alpha_shape() #include // parameterize() #include // geodesic_distance() #include // curvature() #include // marching_cubes() #include // parallel_marching_cubes() #include // generate_lod() #include // reverse_engineering pipeline #include // PointCloud processing #include // FEA mesh generation ``` ### spatial — 空间索引 (`vde::spatial`) ```cpp #include // BVH #include // Octree #include // KDTree #include // RTree #include // IncrementalBVH ``` ### boolean — 布尔运算 (`vde::boolean`) ```cpp #include // clip_polygon(), boolean_2d() #include // mesh_union(), mesh_difference(), mesh_intersection() #include // offset_polygon() ``` ### collision — 碰撞检测 (`vde::collision`) ```cpp #include // gjk_distance(), gjk_intersect() #include // sat_intersect() #include // ray_triangle(), ray_aabb(), ray_mesh() #include // tri_tri_intersection() ``` ### brep — B-Rep 建模 (`vde::brep`) ```cpp #include // BrepModel, TopoVertex, TopoEdge, TopoFace #include // make_box, make_sphere, fillet, chamfer, shell #include // brep_union, brep_intersection, brep_difference #include // validate() #include // heal() #include // Tolerance settings #include // TrimmedSurface #include // Surface-surface intersection boolean #include // STEP/IGES import/export #include // distance, surface_area, volume, centroid #include // Drawing generation #include // Automatic dimensioning #include // PMI/MBD annotations #include // GD&T annotations #include // Euler operators #include // Draft angle analysis #include // Feature recognition #include // Defeaturing #include // Advanced blending #include // Free-form deformation #include // Assembly constraint solving #include // Direct modeling #include // Kinematic chains #include // Motion simulation #include // Assembly LOD #include // Fastener library ``` ### sdf — 隐式建模 (`vde::sdf`) ```cpp #include // sphere, box, cylinder, torus, cone, etc. #include // union, intersection, difference, smooth_union #include // SdfNode, evaluate() #include // sdf_to_mesh() #include // gradient() #include // fit_to_point_cloud(), optimize() ``` ### sketch — 草图约束 (`vde::sketch`) ```cpp #include // ConstraintSolver ``` ### plugin — 插件系统 (`vde::plugin`, v6.0+) ```cpp #include // PluginInterface, PluginManager, PluginManifest ``` 详见 [插件系统设计](plugin-system.md)。 ## 核心类型速查 | 类型 | 命名空间 | 说明 | |------|---------|------| | `Point2D` / `Point3D` | `vde::core` | 2D/3D 点 | | `Vector2D` / `Vector3D` | `vde::core` | 2D/3D 向量 | | `AABB2D` / `AABB3D` | `vde::core` | 轴对齐包围盒 | | `Matrix3x3` / `Matrix4x4` | `vde::core` | 3x3 / 4x4 变换矩阵 | | `Triangle` | `vde::core` | 三角形 | | `HalfedgeMesh` | `vde::mesh` | 半边网格数据结构 | | `BrepModel` | `vde::brep` | B-Rep 实体模型 | | `SdfNode` | `vde::sdf` | SDF 场景图节点 | | `BezierCurve` | `vde::curves` | Bézier 曲线 | | `NurbsSurface` | `vde::curves` | NURBS 曲面 | ## 使用约定 ### 头文件包含 ```cpp // 推荐:只包含需要的头文件 #include #include // 不推荐:包含聚合头(编译慢) // #include // 不存在此文件 ``` ### 命名空间使用 ```cpp // .cpp 文件中可以使用 using using namespace vde::core; using namespace vde::mesh; // .h 文件中禁止 using namespace // 使用完整限定名或在作用域内声明 namespace vde::my_module { using vde::core::Point3D; } ``` ### 错误处理 VDE 采用以下错误处理策略: - **返回值**: 大部分函数返回 `std::optional` 或错误码 - **断言**: 内部不变量使用 `assert()` - **异常**: 仅在构造函数/资源分配失败时使用(RAII 保证) - **日志**: 通过 `VDE_LOG_WARNING` / `VDE_LOG_ERROR` 宏 ### 线程安全 - 所有 `const` 方法可并发调用 - 非 `const` 方法需要外部同步 - PluginManager 提供内部读写锁