# libcellex **Repository Path**: gdnh22/libcellex ## Basic Information - **Project Name**: libcellex - **Description**: 用DLL封装libcell,2024-02-27 09:17:33 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-02-27 - **Last Updated**: 2024-03-02 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # libcellex动态库接口说明书 # vertice_info结构体 ## 语法 ```C++ // faces info typedef struct vertice_info { int id; //number of vertices double* point; // 顶点坐标 }_FACE_INFO; ``` ## 语法说明 | 成员 | 含义 | | -------- | ----------------------- | | id| 顶点序号 | | point| 顶点坐标,长度为3的数组| # face_info结构体 ## 语法 ```C++ // faces info typedef struct face_info { int vertice_size; //number of vertices int* vertice_index; // 顶点索引 face_info(); ~face_info(); }_FACE_INFO; ``` ## 语法说明 | 成员 | 含义 | | -------- | ----------------------- | | id| 面序号 | | vertice_size| 当前面对应的顶点数| | vertice_index| 当前面对应的顶点索引,一维数组| # off_info结构体 ## 语法 ```C++ /*off file info*/ typedef struct off_info { int vertices; // number of vertices int faces; // number of faces int edges; // number of edges double* vertices_list;// list of vertices,二维数组用一维数据表示 face_info* f_info; // faces infomation, 一维数组存储 ~off_info(); }_OFF_INFO, * pOff_info; ``` ## 语法说明 | 成员 | 含义 | | -------- | ----------------------- | | vertices | 顶点数量 | | faces | 面数量 | | edges | 边数量 | | v_info | 所有顶点的坐标集,固定3列 | | f_info | 所有面对应顶点的编号集 | # libcellex_init函数 ## 语法 ```C++ int libcellex_init(off_info** _in); ``` ## 描述 初始化DLL。 ## 参数 |参数|含义| |----|---- |\_in| 指向off_info结构体指针的指针| ## 返回 默认返回0,暂时无意义,将来可能用于返回错误码。 # read_off函数 ## 语法 ```C++ int read_off(char* file); ``` ## 描述 读取标准OFF格式的模型描述文件。例如一个菱形模型: ``` OFF 4 2 0 0 1 0 -1 0 0 0 -1 0 1 0 0 3 0 1 2 3 2 3 0 ``` ## 参数 |参数|含义| |----|----| |file|包含路径的OFF文件名,如bin/t1.off| ## 返回 默认返回0。成功执行后用户需要调用的是libcellex_init()传入的off_info*参数,该结构体指针包含了用户需要的所有信息。 # libcellex_free函数 ## 语法 ```C++ int libcellex_free(off_info* _in); ``` ## 描述 释放DLL内部动态分配的相关内存。 ## 参数 |参数|含义| |----|----| |_in|用户初始化时输入的off_info*参数。| ## 返回 默认返回0,暂无意义。 # VS2022编译说明 1. 编译DLL 用VS2022打开\libcellex\vs2022sln目录下的libcellex.sln文件; 解决方案选择【Release】【x64】,按【F7】生成解决方案。 默认在\bin目录生成libcellex.lib和libcellex.dll文件以及testdll.exe演示程序。 2. 运行demo 打开cmd,输入【testdll.exe t1.off】即可看到结果,如图: ![](docs\pictures\1.png) t1.off是要打开的off文件,可根据实际情况更换。 # Python3.10编译说明 打开\python3目录,在终端输入命令: ```bash python main.py ..\bin\t1.off ``` 运行结果如图: ![](docs\pictures\2.png) # xmake部署说明(当前版本暂不可用) ## Windows without IDE ```bash xmake f --demo=y --demo_path="Demo" xmake ``` # cmake部署(未来会支持) 暂无。 # 参考文献 暂无。 # 附录 暂无。 # 更新历史 2024-03-02 13:48:18,更新VS2022编译说明,Python3编译说明,添加配图。 2024-03-02 10:52:31,添加所有接口说明,仿win32 api格式。