UF-list建立;特徵、體、線、面的相互轉換;
1.list建立
檔案#include <uf_modl_utilities.h>
UF_MODL_create_list 1建立一個連結串列,並返回連結串列的頭指標
UF_MODL_put_list_item 2插入元素到連結串列中,不檢驗物件是否重複,或者已經存在。
UF_MODL_ask_list_count 3獲取連結串列物件數量,從頭開始遇到null_tag結束。
UF_MODL_ask_list_item 4查詢連結串列物件標識,給個位置返回標識。
UF_MODL_delete_list_item 5刪除連結串列的物件,給一個tag就可以刪除連結串列的物件。
UF_MODL_delete_list 6刪除整個連結串列,釋放記憶體。
//用1建立連結串列
uf_list_t *objectslsit = NULL; //雙指標定義一個空表用來塞東西
UF_MODL_create_list (&objectslsit); //去*取&,建立連結串列objectslsit
//用 2插入元素到連結串列中,使用for迴圈
for (int i = 0; i < 3; i++)
{UF_MODL_put_list_item (objectslsit,line1TAG[i]); }//把line1TAG[i]塞入連結串列objectslsit
//用3訪問連結串列數量
int cout; //去*取&
UF_MODL_ask_list_count (objectslsit, &cout);
轉換型別整形int-char*打印出來
char msg[256];
sprintf (msg, "連結串列物件的數量為:%d", cout);
uc1601(msg ,1);
//用4訪問連結串列每個物件的TAG
for (int i = 0; i < count; i++) //通過3訪問連結串列數量,使用for迴圈
{
UF_MODL_ask_list_item (edgelist, i, &edgeTAG1); //輸入連結串列,有1到i,輸出分別物件TAG
}
//最後用6刪除連結串列
UF_MODL_delete_list (&objectslsit);後用的連結串列先刪,按這個順序
UF_MODL_delete_list (&Features);
2.feat找體、面、線、點
標頭檔案#include <uf_modl.h>
UF_MODL_ask_feat_body 1.通過特徵去找體
UF_MODL_ask_feat_edges 2.通過特徵去找邊
UF_MODL_ask_body_features @根據體(body)查詢特徵(feature)
UF_MODL_ask_exp_desc_of_feat @根據特徵標識獲取特徵中所有表示式的數量
UF_MODL_ask_feat_faces @根據特徵(feature)查詢面(face)
UF_MODL_ask_feat_object @根據特徵(feature)查詢物件(object)
UF_MODL_ask_object_feat @根據物件(object)查詢特徵(feature)
//通過特徵找體
tag_t bodyTAG = NULL_TAG;
UF_MODL_ask_feat_body (blockTAG,&bodyTAG);//輸入特徵的TAG,輸出體的TAG
//通過特徵找邊
uf_list_p_t edgelist = NULL;//定義一個連結串列
int cout;
UF_MODL_ask_feat_edges (blockTAG, &edgelist);//輸入特徵的TAG,輸出一個連結串列去*取&
UF_MODL_ask_list_count (edgelist, &cout);/輸入連結串列,輸出數量 /查詢連結串列內的數量
//通過特徵找面
uf_list_p_t facelist = NULL;
int cout1;
UF_MODL_ask_feat_faces (blockTAG, &facelist);//輸入特徵TAG,輸出面連結串列
UF_MODL_ask_list_count (facelist, &cout1);/輸入連結串列,輸出數量 /查詢連結串列內的數量