ViewDesignEngine  3.1.0
高性能 CAD 计算几何引擎
ViewDesignEngine API 参考文档

ViewDesignEngine 是一个高性能 C++17 计算几何引擎,覆盖从底层数学工具到 B-Rep 拓扑建模、SDF 隐式建模、可微分几何、工业格式互操作的全栈能力。

主要功能

  • 基础数学: 点/向量/变换/AABB/公差系统
  • 曲线曲面: Bézier / B-Spline / NURBS、自适应细分
  • 网格处理: 半边数据结构、Delaunay、简化、平滑、修复、Marching Cubes
  • 空间索引: BVH (SAH)、Octree、KD-Tree、R-Tree (STR)
  • 布尔运算: 2D Sutherland-Hodgman、3D 网格布尔、B-Rep 布尔
  • 碰撞检测: GJK/EPA、SAT、射线-三角形
  • B-Rep 建模: 边界表示、STEP/IGES 导入导出、fillet/chamfer/shell
  • SDF 隐式建模: 15+ 图元、CSG 表达式树、自动微分、梯度优化
  • 格式支持: STEP、IGES、glTF/GLB、STL、OBJ、PLY

模块组织

模块 命名空间 说明
基础模块 vde::foundation 数学类型、公差、I/O、序列化
核心几何模块 vde::core 点/线/面、变换、多边形、Voronoi、ICP
曲线曲面模块 (vde::curves) vde::curves NURBS 曲线曲面、细分
网格模块 (vde::mesh) vde::mesh 半边网格、三角剖分、质量、修复
空间索引模块 (vde::spatial) vde::spatial BVH、Octree、KD-Tree、R-Tree
布尔运算模块 (vde::boolean) vde::boolean 2D/3D 布尔、多边形偏移
碰撞检测模块 (vde::collision) vde::collision GJK、SAT、射线、三角交线
B-Rep 模块 (vde::brep) vde::brep B-Rep 建模、STEP/IGES、布尔、验证
SDF 模块 (vde::sdf) vde::sdf 隐式图元、CSG 树、自动微分、优化
草图模块 (vde::sketch) vde::sketch 2D 约束求解
C API 模块 (vde::capi) vde::capi C API 绑定

快速开始

// 创建一个光滑并集: 球 + 盒子
using namespace vde::core;
auto f = [](double x, double y, double z) {
double d1 = vde::sdf::sphere(Point3D(x,y,z), 1.5);
double d2 = vde::sdf::box(Point3D(x,y,z), Point3D(1,1,1));
return vde::sdf::op_smooth_union(d1, d2, 0.3);
};
// 求值
double val = f(0, 0, 0); // SDF 值
Definition: aabb.h:6
foundation::Point3D Point3D
双精度三维点(重新导出)
Definition: point.h:31
double box(const Point3D &p, const Point3D &half_extents)
轴对齐立方体的 SDF
double sphere(const Point3D &p, double radius)
球体的 SDF
double op_smooth_union(double d1, double d2, double k)
平滑并集(带混合过渡)
SDF 布尔运算、修饰算子与域变形
有符号距离函数(SDF)基础图元

构建

cmake -B build && cmake --build build -j$(nproc)
cd build && ctest --output-on-failure

依赖: CMake ≥ 3.16, C++17 编译器, Eigen 3 (自动下载)

参见
https://github.com/.../ViewDesignEngine