ViewDesignEngine  3.1.0
高性能 CAD 计算几何引擎
vde.h 文件参考
#include <stdint.h>
#include <stddef.h>
vde.h 的引用(Include)关系图:

浏览源代码.

宏定义

#define VDE_API   __attribute__((visibility("default")))
 

类型定义

typedef struct VdeContext * VdeHandle
 
typedef struct VdeMesh * VdeMeshHandle
 
typedef struct VdeCurve * VdeCurveHandle
 
typedef struct VdeSurface * VdeSurfaceHandle
 
typedef struct VdeBVH * VdeBVHHandle
 
typedef struct VdeSolver * VdeSolverHandle
 
typedef struct VdeBody * VdeBodyHandle
 

函数

VDE_API VdeHandle vde_create (void)
 
VDE_API void vde_destroy (VdeHandle ctx)
 
VDE_API const char * vde_version (void)
 
VDE_API const char * vde_last_error (VdeHandle ctx)
 
VDE_API VdeMeshHandle vde_load_mesh (VdeHandle ctx, const char *path)
 
VDE_API int vde_save_mesh (VdeHandle ctx, VdeMeshHandle mesh, const char *path, const char *format)
 
VDE_API size_t vde_mesh_num_vertices (VdeMeshHandle mesh)
 
VDE_API size_t vde_mesh_num_faces (VdeMeshHandle mesh)
 
VDE_API void vde_mesh_get_vertex (VdeMeshHandle mesh, size_t idx, double *out_x, double *out_y, double *out_z)
 
VDE_API void vde_mesh_get_bounds (VdeMeshHandle mesh, double *out_min_x, double *out_min_y, double *out_min_z, double *out_max_x, double *out_max_y, double *out_max_z)
 
VDE_API void vde_mesh_free (VdeMeshHandle mesh)
 
VDE_API VdeMeshHandle vde_mesh_simplify (VdeHandle ctx, VdeMeshHandle mesh, double target_ratio)
 
VDE_API VdeMeshHandle vde_mesh_smooth (VdeHandle ctx, VdeMeshHandle mesh, int iterations)
 
VDE_API VdeMeshHandle vde_mesh_boolean (VdeHandle ctx, VdeMeshHandle a, VdeMeshHandle b, int operation)
 
VDE_API VdeCurveHandle vde_curve_create_bezier (VdeHandle ctx, const double *control_points, int num_points, int dimension)
 
VDE_API void vde_curve_evaluate (VdeCurveHandle curve, double t, double *out_x, double *out_y, double *out_z)
 
VDE_API int vde_curve_degree (VdeCurveHandle curve)
 
VDE_API void vde_curve_free (VdeCurveHandle curve)
 
VDE_API int vde_collision_gjk_spheres (VdeHandle ctx, double cx1, double cy1, double cz1, double r1, double cx2, double cy2, double cz2, double r2)
 
VDE_API int vde_collision_ray_mesh (VdeHandle ctx, VdeMeshHandle mesh, double ox, double oy, double oz, double dx, double dy, double dz, double *out_t, double *out_x, double *out_y, double *out_z)
 
VDE_API VdeSolverHandle vde_solver_create (void)
 
VDE_API int vde_solver_add_point (VdeSolverHandle solver, double x, double y, int fixed)
 
VDE_API int vde_solver_add_line (VdeSolverHandle solver, int p0, int p1)
 
VDE_API void vde_solver_add_distance_constraint (VdeSolverHandle solver, int p0, int p1, double d)
 
VDE_API void vde_solver_add_horizontal (VdeSolverHandle solver, int line_id)
 
VDE_API void vde_solver_add_vertical (VdeSolverHandle solver, int line_id)
 
VDE_API int vde_solver_solve (VdeSolverHandle solver, int max_iter, double tol)
 
VDE_API void vde_solver_get_point (VdeSolverHandle solver, int idx, double *x, double *y)
 
VDE_API void vde_solver_free (VdeSolverHandle solver)
 
VDE_API VdeBodyHandle vde_body_create_box (VdeHandle ctx, double w, double h, double d)
 
VDE_API VdeBodyHandle vde_body_create_cylinder (VdeHandle ctx, double r, double h, int segs)
 
VDE_API VdeBodyHandle vde_body_create_sphere (VdeHandle ctx, double r, int su, int sv)
 
VDE_API VdeMeshHandle vde_body_to_mesh (VdeHandle ctx, VdeBodyHandle body, double deflection)
 
VDE_API void vde_body_free (VdeBodyHandle body)
 
VDE_API size_t vde_serialize_mesh (VdeHandle ctx, VdeMeshHandle mesh, uint8_t **out_data)
 
VDE_API VdeMeshHandle vde_deserialize_mesh (VdeHandle ctx, const uint8_t *data, size_t len)
 
VDE_API void vde_free_buffer (uint8_t *data)
 

宏定义说明

◆ VDE_API

#define VDE_API   __attribute__((visibility("default")))

在文件 vde.h11 行定义.

类型定义说明

◆ VdeBodyHandle

typedef struct VdeBody* VdeBodyHandle

在文件 vde.h28 行定义.

◆ VdeBVHHandle

typedef struct VdeBVH* VdeBVHHandle

在文件 vde.h26 行定义.

◆ VdeCurveHandle

typedef struct VdeCurve* VdeCurveHandle

在文件 vde.h24 行定义.

◆ VdeHandle

typedef struct VdeContext* VdeHandle

在文件 vde.h22 行定义.

◆ VdeMeshHandle

typedef struct VdeMesh* VdeMeshHandle

在文件 vde.h23 行定义.

◆ VdeSolverHandle

typedef struct VdeSolver* VdeSolverHandle

在文件 vde.h27 行定义.

◆ VdeSurfaceHandle

typedef struct VdeSurface* VdeSurfaceHandle

在文件 vde.h25 行定义.

函数说明

◆ vde_body_create_box()

VDE_API VdeBodyHandle vde_body_create_box ( VdeHandle  ctx,
double  w,
double  h,
double  d 
)

◆ vde_body_create_cylinder()

VDE_API VdeBodyHandle vde_body_create_cylinder ( VdeHandle  ctx,
double  r,
double  h,
int  segs 
)

◆ vde_body_create_sphere()

VDE_API VdeBodyHandle vde_body_create_sphere ( VdeHandle  ctx,
double  r,
int  su,
int  sv 
)

◆ vde_body_free()

VDE_API void vde_body_free ( VdeBodyHandle  body)

◆ vde_body_to_mesh()

VDE_API VdeMeshHandle vde_body_to_mesh ( VdeHandle  ctx,
VdeBodyHandle  body,
double  deflection 
)

◆ vde_collision_gjk_spheres()

VDE_API int vde_collision_gjk_spheres ( VdeHandle  ctx,
double  cx1,
double  cy1,
double  cz1,
double  r1,
double  cx2,
double  cy2,
double  cz2,
double  r2 
)

◆ vde_collision_ray_mesh()

VDE_API int vde_collision_ray_mesh ( VdeHandle  ctx,
VdeMeshHandle  mesh,
double  ox,
double  oy,
double  oz,
double  dx,
double  dy,
double  dz,
double *  out_t,
double *  out_x,
double *  out_y,
double *  out_z 
)

◆ vde_create()

VDE_API VdeHandle vde_create ( void  )

◆ vde_curve_create_bezier()

VDE_API VdeCurveHandle vde_curve_create_bezier ( VdeHandle  ctx,
const double *  control_points,
int  num_points,
int  dimension 
)

◆ vde_curve_degree()

VDE_API int vde_curve_degree ( VdeCurveHandle  curve)

◆ vde_curve_evaluate()

VDE_API void vde_curve_evaluate ( VdeCurveHandle  curve,
double  t,
double *  out_x,
double *  out_y,
double *  out_z 
)

◆ vde_curve_free()

VDE_API void vde_curve_free ( VdeCurveHandle  curve)

◆ vde_deserialize_mesh()

VDE_API VdeMeshHandle vde_deserialize_mesh ( VdeHandle  ctx,
const uint8_t *  data,
size_t  len 
)

◆ vde_destroy()

VDE_API void vde_destroy ( VdeHandle  ctx)

◆ vde_free_buffer()

VDE_API void vde_free_buffer ( uint8_t *  data)

◆ vde_last_error()

VDE_API const char* vde_last_error ( VdeHandle  ctx)

◆ vde_load_mesh()

VDE_API VdeMeshHandle vde_load_mesh ( VdeHandle  ctx,
const char *  path 
)

◆ vde_mesh_boolean()

VDE_API VdeMeshHandle vde_mesh_boolean ( VdeHandle  ctx,
VdeMeshHandle  a,
VdeMeshHandle  b,
int  operation 
)

◆ vde_mesh_free()

VDE_API void vde_mesh_free ( VdeMeshHandle  mesh)

◆ vde_mesh_get_bounds()

VDE_API void vde_mesh_get_bounds ( VdeMeshHandle  mesh,
double *  out_min_x,
double *  out_min_y,
double *  out_min_z,
double *  out_max_x,
double *  out_max_y,
double *  out_max_z 
)

◆ vde_mesh_get_vertex()

VDE_API void vde_mesh_get_vertex ( VdeMeshHandle  mesh,
size_t  idx,
double *  out_x,
double *  out_y,
double *  out_z 
)

◆ vde_mesh_num_faces()

VDE_API size_t vde_mesh_num_faces ( VdeMeshHandle  mesh)

◆ vde_mesh_num_vertices()

VDE_API size_t vde_mesh_num_vertices ( VdeMeshHandle  mesh)

◆ vde_mesh_simplify()

VDE_API VdeMeshHandle vde_mesh_simplify ( VdeHandle  ctx,
VdeMeshHandle  mesh,
double  target_ratio 
)

◆ vde_mesh_smooth()

VDE_API VdeMeshHandle vde_mesh_smooth ( VdeHandle  ctx,
VdeMeshHandle  mesh,
int  iterations 
)

◆ vde_save_mesh()

VDE_API int vde_save_mesh ( VdeHandle  ctx,
VdeMeshHandle  mesh,
const char *  path,
const char *  format 
)

◆ vde_serialize_mesh()

VDE_API size_t vde_serialize_mesh ( VdeHandle  ctx,
VdeMeshHandle  mesh,
uint8_t **  out_data 
)

◆ vde_solver_add_distance_constraint()

VDE_API void vde_solver_add_distance_constraint ( VdeSolverHandle  solver,
int  p0,
int  p1,
double  d 
)

◆ vde_solver_add_horizontal()

VDE_API void vde_solver_add_horizontal ( VdeSolverHandle  solver,
int  line_id 
)

◆ vde_solver_add_line()

VDE_API int vde_solver_add_line ( VdeSolverHandle  solver,
int  p0,
int  p1 
)

◆ vde_solver_add_point()

VDE_API int vde_solver_add_point ( VdeSolverHandle  solver,
double  x,
double  y,
int  fixed 
)

◆ vde_solver_add_vertical()

VDE_API void vde_solver_add_vertical ( VdeSolverHandle  solver,
int  line_id 
)

◆ vde_solver_create()

VDE_API VdeSolverHandle vde_solver_create ( void  )

◆ vde_solver_free()

VDE_API void vde_solver_free ( VdeSolverHandle  solver)

◆ vde_solver_get_point()

VDE_API void vde_solver_get_point ( VdeSolverHandle  solver,
int  idx,
double *  x,
double *  y 
)

◆ vde_solver_solve()

VDE_API int vde_solver_solve ( VdeSolverHandle  solver,
int  max_iter,
double  tol 
)

◆ vde_version()

VDE_API const char* vde_version ( void  )