#include "vde/vde.h" #include 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; }