352ee39f53
核心设计: - include/vde/vde.h: 统一 C API(50+ 函数,6 种不透明句柄) - 上下文管理 / I/O / Mesh / 曲线 / 碰撞 / 约束求解 / B-Rep / 序列化 - src/capi/vde_capi.cpp: 完整 C API 实现 (240行) - examples/07_capi_integration: C 语言外部调用示例 - CMake: 添加 vde_capi 库 + install 导出支持 模块架构(每个独立 .a): vde_foundation → vde_core → vde_curves → vde_mesh → vde_spatial → vde_boolean / vde_collision → vde_brep / vde_sketch → vde_capi
34 lines
1.0 KiB
C
34 lines
1.0 KiB
C
#include "vde/vde.h"
|
|
#include <stdio.h>
|
|
|
|
int main(void) {
|
|
VdeHandle ctx = vde_create();
|
|
printf("ViewDesignEngine %s\n", vde_version());
|
|
|
|
/* GJK spheres */
|
|
int hit = vde_collision_gjk_spheres(ctx, 0,0,0, 1.0, 1.5,0,0, 1.0);
|
|
printf("Spheres overlap: %s\n", hit ? "yes" : "no");
|
|
|
|
/* Constraint solver */
|
|
VdeSolverHandle s = vde_solver_create();
|
|
int p0 = vde_solver_add_point(s, 0,0,1);
|
|
int p1 = vde_solver_add_point(s, 3,0.5,0);
|
|
int l0 = vde_solver_add_line(s, p0, p1);
|
|
vde_solver_add_horizontal(s, l0);
|
|
vde_solver_add_distance_constraint(s, p0, p1, 5.0);
|
|
printf("Solver: %s\n", vde_solver_solve(s,100,1e-6) ? "ok" : "fail");
|
|
double x,y; vde_solver_get_point(s,p1,&x,&y);
|
|
printf(" P1=(%.4f,%.4f)\n", x, y);
|
|
vde_solver_free(s);
|
|
|
|
/* B-Rep box */
|
|
VdeBodyHandle box = vde_body_create_box(ctx, 2,2,2);
|
|
VdeMeshHandle m = vde_body_to_mesh(ctx, box, 0.01);
|
|
printf("Box: %zu faces\n", vde_mesh_num_faces(m));
|
|
vde_mesh_free(m);
|
|
vde_body_free(box);
|
|
|
|
vde_destroy(ctx);
|
|
return 0;
|
|
}
|