亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? ply.c.svn-base

?? fast marching method
?? SVN-BASE
?? 第 1 頁 / 共 5 頁
字號:
    for (j = 0; j < elem->nprops; j++) {      prop = elem->props[j];      if (elem->store_prop[j] == OTHER_PROP)        elem_data = *other_ptr;      else        elem_data = (char *) elem_ptr;      if (prop->is_list == PLY_LIST) {  /* list */        item = elem_data + prop->count_offset;        get_stored_item ((void *) item, prop->count_internal,                         &int_val, &uint_val, &double_val);        write_ascii_item (fp, int_val, uint_val, double_val,                          prop->count_external);        list_count = uint_val;        item_ptr = (char **) (elem_data + prop->offset);        item = item_ptr[0];        item_size = ply_type_size[prop->internal_type];        for (k = 0; k < list_count; k++) {          get_stored_item ((void *) item, prop->internal_type,                           &int_val, &uint_val, &double_val);          write_ascii_item (fp, int_val, uint_val, double_val,                            prop->external_type);          item += item_size;        }      }      else if (prop->is_list == PLY_STRING) {  /* string */	char **str;        item = elem_data + prop->offset;	str = (char **) item;	fprintf (fp, "\"%s\"", *str);      }      else {                                  /* scalar */        item = elem_data + prop->offset;        get_stored_item ((void *) item, prop->internal_type,                         &int_val, &uint_val, &double_val);        write_ascii_item (fp, int_val, uint_val, double_val,                          prop->external_type);      }    }    fprintf (fp, "\n");  }  else {    /* write a binary file */    /* write out each property of the element */    for (j = 0; j < elem->nprops; j++) {      prop = elem->props[j];      if (elem->store_prop[j] == OTHER_PROP)        elem_data = *other_ptr;      else        elem_data = (char *) elem_ptr;      if (prop->is_list == PLY_LIST) {   /* list */        item = elem_data + prop->count_offset;        item_size = ply_type_size[prop->count_internal];        get_stored_item ((void *) item, prop->count_internal,                         &int_val, &uint_val, &double_val);        write_binary_item (fp, int_val, uint_val, double_val,                           prop->count_external);        list_count = uint_val;        item_ptr = (char **) (elem_data + prop->offset);        item = item_ptr[0];        item_size = ply_type_size[prop->internal_type];        for (k = 0; k < list_count; k++) {          get_stored_item ((void *) item, prop->internal_type,                           &int_val, &uint_val, &double_val);          write_binary_item (fp, int_val, uint_val, double_val,                             prop->external_type);          item += item_size;        }      }      else if (prop->is_list == PLY_STRING) {   /* string */	int len;	char **str;        item = elem_data + prop->offset;	str = (char **) item;	/* write the length */	len = strlen(*str) + 1;	fwrite (&len, sizeof(int), 1, fp);	/* write the string, including the null character */	fwrite (*str, len, 1, fp);      }      else {                   /* scalar */        item = elem_data + prop->offset;        item_size = ply_type_size[prop->internal_type];        get_stored_item ((void *) item, prop->internal_type,                         &int_val, &uint_val, &double_val);        write_binary_item (fp, int_val, uint_val, double_val,                           prop->external_type);      }    }  }}/*************//*  Reading  *//*************//******************************************************************************Given a file pointer, get ready to read PLY data from the file.Entry:  fp - the given file pointerExit:  nelems     - number of elements in object  elem_names - list of element names  returns a pointer to a PlyFile, used to refer to this file, or NULL if error******************************************************************************/PlyFile *ply_read(FILE *fp, int *nelems, char ***elem_names){  int i,j;  PlyFile *plyfile;  int nwords;  char **words;  int found_format = 0;  char **elist;  PlyElement *elem;  char *orig_line;  /* check for NULL file pointer */  if (fp == NULL)    return (NULL);  /* create record for this object */  plyfile = (PlyFile *) myalloc (sizeof (PlyFile));  plyfile->num_elem_types = 0;  plyfile->comments = NULL;  plyfile->num_comments = 0;  plyfile->obj_info = NULL;  plyfile->num_obj_info = 0;  plyfile->fp = fp;  plyfile->other_elems = NULL;  plyfile->rule_list = NULL;  /* read and parse the file's header */  words = get_words (plyfile->fp, &nwords, &orig_line);  if (!words || !equal_strings (words[0], "ply"))    return (NULL);  while (words) {    /* parse words */    if (equal_strings (words[0], "format")) {      if (nwords != 3)        return (NULL);      if (equal_strings (words[1], "ascii"))        plyfile->file_type = PLY_ASCII;      else if (equal_strings (words[1], "binary_big_endian"))        plyfile->file_type = PLY_BINARY_BE;      else if (equal_strings (words[1], "binary_little_endian"))        plyfile->file_type = PLY_BINARY_LE;      else        return (NULL);      plyfile->version = atof (words[2]);      found_format = 1;    }    else if (equal_strings (words[0], "element"))      add_element (plyfile, words, nwords);    else if (equal_strings (words[0], "property"))      add_property (plyfile, words, nwords);    else if (equal_strings (words[0], "comment"))      add_comment (plyfile, orig_line);    else if (equal_strings (words[0], "obj_info"))      add_obj_info (plyfile, orig_line);    else if (equal_strings (words[0], "end_header"))      break;    /* free up words space */    free (words);    words = get_words (plyfile->fp, &nwords, &orig_line);  }  /* create tags for each property of each element, to be used */  /* later to say whether or not to store each property for the user */  for (i = 0; i < plyfile->num_elem_types; i++) {    elem = plyfile->elems[i];    elem->store_prop = (char *) myalloc (sizeof (char) * elem->nprops);    for (j = 0; j < elem->nprops; j++)      elem->store_prop[j] = DONT_STORE_PROP;    elem->other_offset = NO_OTHER_PROPS; /* no "other" props by default */  }  /* set return values about the elements */  elist = (char **) myalloc (sizeof (char *) * plyfile->num_elem_types);  for (i = 0; i < plyfile->num_elem_types; i++)    elist[i] = strdup (plyfile->elems[i]->name);  *elem_names = elist;  *nelems = plyfile->num_elem_types;  /* return a pointer to the file's information */  return (plyfile);}/******************************************************************************Open a polygon file for reading.Entry:  filename - name of file to read fromExit:  nelems     - number of elements in object  elem_names - list of element names  file_type  - file type, either ascii or binary  version    - version number of PLY file  returns a file identifier, used to refer to this file, or NULL if error******************************************************************************/PlyFile *ply_open_for_reading(  char *filename,  int *nelems,  char ***elem_names,  int *file_type,  float *version){  FILE *fp;  PlyFile *plyfile;  char *name;  /* tack on the extension .ply, if necessary */  name = (char *) myalloc (sizeof (char) * (strlen (filename) + 5));  strcpy (name, filename);  if (strlen (name) < 4 ||      strcmp (name + strlen (name) - 4, ".ply") != 0)      strcat (name, ".ply");  /* open the file for reading */  fp = fopen (name, "r");  if (fp == NULL)    return (NULL);  /* create the PlyFile data structure */  plyfile = ply_read (fp, nelems, elem_names);  /* determine the file type and version */  *file_type = plyfile->file_type;  *version = plyfile->version;  /* return a pointer to the file's information */  return (plyfile);}/******************************************************************************Get information about a particular element.Entry:  plyfile   - file identifier  elem_name - name of element to get information aboutExit:  nelems   - number of elements of this type in the file  nprops   - number of properties  returns a list of properties, or NULL if the file doesn't contain that elem******************************************************************************/PlyProperty **get_element_description_ply(  PlyFile *plyfile,  char *elem_name,  int *nelems,  int *nprops){  int i;  PlyElement *elem;  PlyProperty *prop;  PlyProperty **prop_list;  /* find information about the element */  elem = find_element (plyfile, elem_name);  if (elem == NULL)    return (NULL);  *nelems = elem->num;  *nprops = elem->nprops;  /* make a copy of the element's property list */  prop_list = (PlyProperty **) myalloc (sizeof (PlyProperty *) * elem->nprops);  for (i = 0; i < elem->nprops; i++) {    prop = (PlyProperty *) myalloc (sizeof (PlyProperty));    copy_property (prop, elem->props[i]);    prop_list[i] = prop;  }  /* return this duplicate property list */  return (prop_list);}/******************************************************************************Specify which properties of an element are to be returned.  This should becalled before a call to the routine get_element_ply().Entry:  plyfile   - file identifier  elem_name - which element we're talking about  nprops    - number of properties  prop_list - list of properties******************************************************************************/void get_element_setup_ply(  PlyFile *plyfile,  char *elem_name,  int nprops,  PlyProperty *prop_list){  int i;  PlyElement *elem;  PlyProperty *prop;  int index;  /* find information about the element */  elem = find_element (plyfile, elem_name);  plyfile->which_elem = elem;  /* deposit the property information into the element's description */  for (i = 0; i < nprops; i++) {    /* look for actual property */    prop = find_property (elem, prop_list[i].name, &index);    if (prop == NULL) {      fprintf (stderr, "Warning:  Can't find property '%s' in element '%s'\n",               prop_list[i].name, elem_name);      continue;    }    /* store its description */    prop->internal_type = prop_list[i].internal_type;    prop->offset = prop_list[i].offset;    prop->count_internal = prop_list[i].count_internal;    prop->count_offset = prop_list[i].count_offset;    /* specify that the user wants this property */    elem->store_prop[index] = STORE_PROP;  }}/******************************************************************************Specify a property of an element that is to be returned.  This should becalled (usually multiple times) before a call to the routine ply_get_element().This routine should be used in preference to the less flexible old routinecalled ply_get_element_setup().Entry:  plyfile   - file identifier  elem_name - which element we're talking about  prop      - property to add to those that will be returned******************************************************************************/void ply_get_property(  PlyFile *plyfile,  char *elem_name,  PlyProperty *prop){  PlyElement *elem;  PlyProperty *prop_ptr;  int index;  /* find information about the element */  elem = find_element (plyfile, elem_name);  plyfile->which_elem = elem;  /* deposit the property information into the element's description */  prop_ptr = find_property (elem, prop->name, &index);  if (prop_ptr == NULL) {    fprintf (stderr, "Warning:  Can't find property '%s' in element '%s'\n",             prop->name, elem_name);    return;  }  prop_ptr->internal_type  = prop->internal_type;  prop_ptr->offset         = prop->offset;  prop_ptr->count_internal = prop->count_internal;  prop_ptr->count_offset   = prop->count_offset;  /* specify that the user wants this property */  elem->store_prop[index] = STORE_PROP;}/******************************************************************************Read one element from the file.  This routine assumes that we're readingthe type of element specified in the last call to the routineply_get_element_setup().Entry:  plyfile  - file identifier  elem_ptr - pointer to location where the element information should be put******************************************************************************/void ply_get_element(PlyFile *plyfile, void *elem_ptr){  if (plyfile->file_type == PLY_ASCII)    ascii_get_element (plyfile, (char *) elem_ptr);  else    binary_get_element (plyfile, (char *) elem_ptr);}/******************************************************************************Extract the comments from the header information of a PLY file.Entry:  plyfile - file identifierExit:  num_comments - number of comments returned  returns a pointer to a list of comments******************************************************************************/char **get_comments_ply(PlyFile *plyfile, int *num_comments){  *num_comments = plyfile->num_comments;  return (plyfile->comments);}/******************************************************************************Extract the object information (arbitrary text) from the header informationof a PLY file.Entry:  plyfile - file identifierExit:  num_obj_info - number of lines of text information returned  returns a pointer to a list of object info lines******************************************************************************/char **get_obj_info_ply(PlyFile *plyfile, int *num_obj_info){  *num_obj_info = plyfile->num_obj_info;  return (plyfile->obj_info);}/******************************************************************************Make ready for "other" properties of an element-- those properties thatthe user has not explicitly asked for, but that are to be stashed awayin a special structure to be carried along with the element's otherinformation.Entry:  plyfile - file identifier  elem    - element for which we want to save away other properties******************************************************************************/void setup_other_props(PlyFile *plyfile, PlyElement *elem){  int i;  PlyProperty *prop;  int size = 0;  int type_size;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美精品一二三区| 国产精品丝袜久久久久久app| 欧美日韩一区二区三区四区五区 | 成人丝袜18视频在线观看| 蜜桃视频在线观看一区| 日韩激情在线观看| 亚洲一区二区三区免费视频| 综合亚洲深深色噜噜狠狠网站| 国产精品成人免费在线| 中文字幕在线观看不卡| 亚洲欧洲日产国码二区| 国产精品二三区| 亚洲色图视频网| 一区二区三区四区不卡视频| 亚洲成人自拍一区| 蜜桃视频一区二区| 国产尤物一区二区| 国产激情视频一区二区三区欧美 | 91亚洲精品一区二区乱码| 91麻豆视频网站| 欧美网站大全在线观看| 欧美日韩国产小视频| 日韩欧美中文字幕精品| 久久久久久亚洲综合影院红桃| 国产精品天天看| 亚洲精品视频在线| 日韩中文字幕一区二区三区| 国产一区91精品张津瑜| 93久久精品日日躁夜夜躁欧美| 欧美亚洲高清一区| 日韩免费一区二区| 中文字幕在线不卡视频| 亚洲成人av电影在线| 精品在线播放免费| 波多野结衣亚洲一区| 欧美色综合影院| 青草av.久久免费一区| 亚洲欧美福利一区二区| 亚洲自拍都市欧美小说| 毛片av中文字幕一区二区| 久久精品国产**网站演员| 国产美女在线精品| 91在线小视频| 777奇米成人网| 日韩视频在线永久播放| 国产精品网曝门| 日韩免费视频一区| 国产精品女同一区二区三区| 亚洲成人精品在线观看| 国产激情一区二区三区| 欧美视频三区在线播放| 2021久久国产精品不只是精品| 亚洲欧美日韩一区二区| 久久99精品国产91久久来源| 色偷偷久久人人79超碰人人澡| 日韩欧美久久一区| 亚洲综合一区二区| 国产精选一区二区三区| 欧美性色欧美a在线播放| 国产视频一区在线播放| 日韩成人伦理电影在线观看| 99免费精品在线观看| 亚洲精品在线网站| 亚洲一区视频在线观看视频| 国产成人精品1024| 7777精品伊人久久久大香线蕉超级流畅 | 性做久久久久久| 成人h动漫精品一区二区 | 丝袜亚洲精品中文字幕一区| 国产精品一区久久久久| 3d成人h动漫网站入口| 国产精品欧美极品| 久久激情综合网| 欧美性极品少妇| 中文字幕免费一区| 国产一区二区三区国产| 欧美精品1区2区| 亚洲最新视频在线播放| 成人av资源下载| 久久久国产综合精品女国产盗摄| 日本中文在线一区| 欧美综合久久久| 亚洲老妇xxxxxx| 成人性色生活片免费看爆迷你毛片| 日韩欧美一区二区视频| 天堂蜜桃91精品| 91在线国产观看| 国产精品成人在线观看| 国产99久久久国产精品潘金| 精品国产一区二区亚洲人成毛片 | 日本在线不卡视频| 欧美午夜不卡视频| 亚洲激情男女视频| 在线免费不卡电影| 亚洲另类在线制服丝袜| 99久久久久久99| 中文字幕在线一区免费| 懂色av噜噜一区二区三区av| 欧美激情一区二区三区| 国产成人一级电影| 久久久久高清精品| 国产精品18久久久久久久久| 欧美经典一区二区| 成人午夜视频在线观看| 中文字幕的久久| 成人三级伦理片| 国产精品久久免费看| 91网站最新网址| 亚洲精选视频在线| 欧美午夜一区二区三区| 天涯成人国产亚洲精品一区av| 欧美二区乱c少妇| 日本欧美一区二区三区| 精品久久久久久久久久久久久久久 | 亚洲第一电影网| 欧美一级xxx| 精品一区二区影视| 国产日韩欧美一区二区三区综合| 韩国av一区二区三区在线观看| 久久综合狠狠综合久久综合88| 国产成人精品午夜视频免费| 国产精品成人一区二区三区夜夜夜| 成人免费va视频| 亚洲美女免费视频| 91麻豆精品久久久久蜜臀| 久久爱另类一区二区小说| 国产欧美视频一区二区三区| 99国产精品国产精品毛片| 伊人色综合久久天天| 91精品国产福利| 韩国视频一区二区| 国产精品水嫩水嫩| 在线观看av一区二区| 日韩成人dvd| 国产欧美日韩综合| 欧美四级电影网| 蜜臀久久久99精品久久久久久| 日本一区二区三区国色天香 | 色婷婷av一区二区三区软件| 日本一区中文字幕| 国产午夜一区二区三区| 欧美网站一区二区| 国产在线国偷精品产拍免费yy| 国产精品入口麻豆原神| 在线播放欧美女士性生活| 国产成人午夜精品5599 | 丁香网亚洲国际| 亚洲成a人v欧美综合天堂下载| 精品国产髙清在线看国产毛片| av不卡在线观看| 日本在线不卡视频一二三区| 国产精品第一页第二页第三页| 欧美一区二区网站| 99re视频这里只有精品| 日本在线播放一区二区三区| 中文字幕av不卡| 91精品国产综合久久精品| 99久久精品国产麻豆演员表| 蜜臀av性久久久久蜜臀aⅴ四虎| 中文字幕一区二区5566日韩| 欧美一级免费大片| 91在线丨porny丨国产| 韩国v欧美v日本v亚洲v| 亚洲国产成人高清精品| 中文字幕不卡在线观看| 日韩小视频在线观看专区| 91蜜桃传媒精品久久久一区二区| 久久精品国产一区二区三| 亚洲一区在线电影| 国产精品丝袜一区| 337p粉嫩大胆噜噜噜噜噜91av | 亚洲三级免费电影| 欧美精品一区二区三区四区 | 一区二区三区欧美在线观看| 久久久久久久网| 91麻豆精品国产无毒不卡在线观看| 99久久精品一区二区| 国产在线国偷精品免费看| 秋霞av亚洲一区二区三| 亚洲综合丝袜美腿| 国产精品美女视频| 国产午夜亚洲精品不卡| 日韩欧美色综合| 欧美顶级少妇做爰| 欧美色图激情小说| 91福利视频网站| 91美女片黄在线观看| 成人免费视频网站在线观看| 国产乱人伦精品一区二区在线观看 | 欧美精品丝袜中出| 日本精品一区二区三区四区的功能| 国产成人在线视频免费播放| 国内久久婷婷综合| 麻豆精品国产传媒mv男同| 午夜精品久久久久久| 婷婷久久综合九色综合伊人色| 亚洲午夜电影网| 亚洲精品日韩专区silk| 中文字幕在线不卡一区| 亚洲欧洲成人自拍|