1. 程式人生 > 其它 >UF-list建立;特徵、體、線、面的相互轉換;

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);/輸入連結串列,輸出數量 /查詢連結串列內的數量