UF_MODL_create_list (uf_list_p_t * list ) 创建一个链表,并返回链表的头指针
UF_MODL_put_list_item (uf_list_p_t list, tag_t obj_id ) 插入元素到链表中,将对象加入到链表的尾部
UF_MODL_ask_list_count(uf_list_p_t list, int * count ) 获取链表的个数
UF_MODL_ask_list_item (uf_list_p_t list, int index, tag_t * object ) 查询链表中对象的标识
UF_MODL_delete_list_item(uf_list_p_t * list, tag_t object ) 将指定的对象从链表中删除
UF_MODL_delete_list (uf_list_p_t * list ) 删除链表,并释放内存
实例分析
/* TODO: Add your application code here */
//创建三条直线
UF_CURVE_line_t line_coords1,line_coords2,line_coords3;
tag_t line[3];
line_coords1.start_point [0] = 0.0;
line_coords1.start_point [1] = 0.0;
line_coords1.start_point [2] = 0.0;
line_coords1.end_point [0] = 10.0;
line_coords1.end_point [1] = 10.0;
line_coords1.end_point [2] = 0.0;
line_coords2.start_point [0] = 10.0;
line_coords2.start_point [1] = 10.0;
line_coords2.start_point [2] = 0.0;
line_coords2.end_point [0] = 0.0;
line_coords2.end_point [1] = 20.0;
line_coords2.end_point [2] = 0.0;
line_coords3.start_point [0] = 0.0;
line_coords3.start_point [1] = 20.0;
line_coords3.start_point [2] = 0.0;
line_coords3.end_point [0] = 0.0;
line_coords3.end_point [1] = 0.0;
line_coords3.end_point [2] = 0.0;
UF_CURVE_create_line(&line_coords1,&line[0]);
UF_CURVE_create_line(&line_coords2,&line[1]);
UF_CURVE_create_line(&line_coords3,&line[2]);
//创建链表
uf_list_t * object1 = NULL ;
UF_MODL_create_list(&object1);
//加入对象到链表
for (int i = 0; i < 3; i++)
{
UF_MODL_put_list_item(object1,line[i]);
}
//定义拉伸参数
char * taper_angle = "0";
char * limit [ 2 ] = {"0","20"};
double point [ 3 ] = {0.0,0.0,0.0};
double direction [ 3 ] = {0,0,1};
UF_FEATURE_SIGN sign = UF_NULLSIGN ;
uf_list_t * features;
UF_MODL_create_extruded2(object1,taper_angle,limit,point,direction,sign,&features);
//查询链表个数
int count;
UF_MODL_ask_list_count(object1,&count);
char msg[100];
sprintf (msg,"链表数量为:%d",count);
uc1601(msg,1);
//删除链表
UF_MODL_delete_list(&object1);