cgal32.dll (Win32, ANSI C) 形式免費提供。typedef struct _cg_polygon_t* cg_polygon;
typedef struct _cg_shape_t* cg_shape; // 統一幾何容器
typedef struct _cg_geometry_t* cg_geometry; // 3D 延伸
typedef struct _cg_tristrip_t* cg_tristrip; // 三角帶渲染優化
typedef struct _cg_blob_t* cg_blob_t; // 二進制塊 {BYTE* chunk; size_t size;}
void CGAL_init(double epsilon); // 進程級初始化,設定幾何容差
void CGAL_fini(int reserved);
BOOL CG_polygon_create(cg_polygon*);
void CG_polygon_destroy(cg_polygon);
void CG_polygon_add_part(cg_polygon, const cg_vertexlist_t*, int is_hole);
double CG_polygon_get_area(const cg_polygon);
BOOL CG_polygon_get_relation(CG_RELATION, cg_polygon, cg_polygon);
void CG_polygon_clip(CG_OPCLIP op, cg_polygon subj, cg_polygon clip, cg_polygon result);
// 布爾運算:CG_DIFF, CG_INT, CG_XOR, CG_UNION
typedef enum { REL_CONTAIN, REL_CROSS, REL_DISJOINT,
REL_EQUAL, REL_OVERLAP, REL_TOUCH, REL_WITHIN } CG_RELATION;
BOOL CG_shape_create(cg_shape*);
void CG_shape_read(FILE*, cg_shape);
size_t CG_shape_write_blob(cg_blob_t*, const cg_shape);
RESULT CG_shape_read_blob(const cg_blob_t*, cg_shape);
void CG_polygon_to_shape(cg_polygon, cg_shape); // 互轉
typedef struct { double x, y; } cg_vertex_t, cg_point_t;
typedef struct { double x, y, z; } cg_vector_t, cg_pointZ_t;
typedef struct { int num_vertices; cg_vertex_t* vertex; } cg_vertexlist_t;
typedef struct { double min_x, min_y, max_x, max_y; } cg_rect_t;
CGAL_init(1e-9) 設定精度。CG_polygon_create(&poly) → CG_polygon_add_part 輸入頂點。CG_polygon_clip(CG_UNION, polyA, polyB, polyResult)。CG_polygon_get_area(polyResult)、CG_polygon_get_relation(REL_OVERLAP, ...)。CG_shape_write_blob / CG_shape_read_blob 持久化或網路傳輸。CGAL_fini(0) 釋放資源。功能尚在完善中,暫不提供下載。未來規劃:Linux 版本、3D 布爾運算、空間索引 (R-tree)、GPU 加速三角剖分。