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

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

?? circles.c

?? LastWave
?? C
?? 第 1 頁 / 共 2 頁
字號:
/*..........................................................................*//*                                                                          *//*      L a s t W a v e    P a c k a g e 'circles'                          *//*                                                                          *//*      Copyright (C) 2002 Emmanuel Bacry                                   *//*      email : lastwave@cmap.polytechnique.fr                              *//*                                                                          *//*..........................................................................*/#include "lastwave.h"#include "int_fsilist.h"/************************************************************************ *  *  * Defining the CIRCLES VALUE *  *  ************************************************************************//* A single circle */typedef struct circle {   FLOAT x;  FLOAT y;  FLOAT r;} Circle;/* The CIRCLES VALUE */typedef struct circles {  /* The fields of the VALUE structure */  ValueFields;  Circle *array;    int n;    char *name;} Circles, *CIRCLES;/* The corresponding &type */static char *circlesType = "&circles";/* * The type structure for CIRCLES */extern CIRCLES NewCircles(void);extern void DeleteCircles(CIRCLES c);extern void ClearCircles(CIRCLES c);extern CIRCLES  CopyCircles(CIRCLES in, CIRCLES out);extern char *ToStrCircles(CIRCLES c, char flagShort);extern void PrintCircles(CIRCLES c);extern void PrintInfoCircles(CIRCLES c);extern struct field fieldsCircles[];TypeStruct tsCircles = {  "{{{&circles} {A description of the type '&circles'.}}}",  /* Documentation */  &circlesType,       /* The basic (unique) type name */  NULL,               /* The GetType function */                           DeleteCircles,     /* The Delete function */  NewCircles,     /* The Delete function */    CopyCircles,       /* The copy function */  ClearCircles,       /* The clear function */    ToStrCircles,       /* String conversion */  PrintCircles,   /* The Print function : print the object when 'print' is called */  PrintInfoCircles,   /* The PrintInfo function : called by 'info' */  NULL,              /* The NumExtract function : used to deal with syntax like 10a */     fieldsCircles,      /* The list of fields */};/* * The field list */static void * GetExtractCirclesV(CIRCLES c,void **arg);static void * SetExtractCirclesV(CIRCLES c,void **arg);static void * GetExtractOptionsCirclesV(CIRCLES c,void **arg);static void * GetExtractInfoCirclesV(CIRCLES c,void **arg);static void * GetNameCirclesV(CIRCLES c, void **arg);static void * SetNameCirclesV(CIRCLES c, void **arg);static void * GetNCirclesV(CIRCLES c, void **arg);static void * SetNCirclesV(CIRCLES c, void **arg);static void * GetExtractOptionsRXYCirclesV(CIRCLES c,void **arg);static void * GetExtractInfoRXYCirclesV(CIRCLES c,void **arg);static void * GetRCirclesV(CIRCLES c, void **arg);static void * SetRCirclesV(CIRCLES c, void **arg);static void * GetXCirclesV(CIRCLES c, void **arg);static void * SetXCirclesV(CIRCLES c, void **arg);static void * GetYCirclesV(CIRCLES c, void **arg);static void * SetYCirclesV(CIRCLES c, void **arg);struct field fieldsCircles[] = {  "", GetExtractCirclesV, SetExtractCirclesV, GetExtractOptionsCirclesV, GetExtractInfoCirclesV,  "r", GetRCirclesV, SetRCirclesV, GetExtractOptionsRXYCirclesV, GetExtractInfoRXYCirclesV,  "x", GetXCirclesV, SetXCirclesV, GetExtractOptionsRXYCirclesV, GetExtractInfoRXYCirclesV,  "y", GetYCirclesV, SetYCirclesV, GetExtractOptionsRXYCirclesV, GetExtractInfoRXYCirclesV,  "name", GetNameCirclesV, SetNameCirclesV, NULL, NULL,  "n", GetNCirclesV, SetNCirclesV, NULL, NULL,  NULL, NULL, NULL, NULL, NULL};  CIRCLES NewCircles(void){  CIRCLES c;  extern TypeStruct tsCircles;  c = Malloc(sizeof(Circles));    InitValue(c,&tsCircles);    c->array = NULL;  c->n = 0;  c->name = CopyStr("");    return(c);}void DeleteCircles(CIRCLES c){  RemoveRefValue(c);  if (c->nRef > 0) return;    if (c->n != 0) Free(c->array);  if (c->name) Free(c->name);  Free(c);}void ClearCircles(CIRCLES c){  if (c->n != 0) {    Free(c->array);    c->array = NULL;    c->n = 0;  }}CIRCLES  CopyCircles(CIRCLES in, CIRCLES out){  if (out == NULL) out = NewCircles();    ClearCircles(out);    out->array = Malloc(sizeof(Circles)*in->n);  out->n = in->n;    memcpy(out->array,in->array,sizeof(Circles)*in->n);    return(out);}char *ToStrCircles(CIRCLES c, char flagShort){  static char str[30];  if (!strcmp(c->name,"")) {    sprintf(str,"<&circles[%d];%p>",c->n,c);  }  else if (strlen(c->name) < 15) {    sprintf(str,"<&circles[%d];%s>",c->n,c->name);  }  else {    sprintf(str,"<&circles[%d];...>",c->n);  }    return(str);}void PrintCircles(CIRCLES c){  int i;  if (c->n == 0) Printf("<empty>\n");  else {      for (i=0;i<c->n;i++)       Printf("%d : x=%g, y=%g, r= %g\n",i,c->array[i].x,c->array[i].y,c->array[i].r);  }}void PrintInfoCircles(CIRCLES c){  Printf("  name  :  %s\n",c->name);  Printf("  number of circles  :  %d\n",c->n);}/* * 'name' field */static char *nameDoc = "{[= <name>]} {Sets/Gets the name of a circles}";static void * GetNameCirclesV(CIRCLES c, void **arg){  /* Documentation */  if (c == NULL) return(nameDoc);    return(GetStrField(c->name,arg));}static void * SetNameCirclesV(CIRCLES c, void **arg){      /* doc */  if (c == NULL) return(nameDoc);  return(SetStrField(&(c->name),arg));}/* * 'n' field */static char *nDoc = "{[= <n>]} {Sets/Gets the number of circles of a circles object}";static void * GetNCirclesV(CIRCLES c, void **arg){  /* Documentation */  if (c == NULL) return(nDoc);    return(GetIntField(c->n,arg));}static void * SetNCirclesV(CIRCLES c, void **arg){    int n,i;      /* doc */  if (c == NULL) return(nDoc);  n = c->n;  if (SetIntField(&n,arg,FieldSPositive)==NULL) return(NULL);  if (n<c->n) c->n = n;  else {    ClearCircles(c);    c->array = Malloc(sizeof(Circles)*n);    c->n = n;    for (i= 0;i<n;i++) {      c->array[i].x = 0;      c->array[i].y = 0;      c->array[i].r = 0;    }  }      return(numType);}/*  * * Dealing with extractions of the type circles[...] * */ static char *doc = "{[*nolimit,...] [:]= list of <x,y,r>} {Get/Set the circle values}"; static char *optionDoc = "{{*nolimit} {*nolimit : indexes can be out of range}}";static char *extractOptionsCircles[] = {"*nolimit",NULL};enum {  FSIOptCirclesNoLimit = FSIOption1};static void *GetExtractOptionsCirclesV(CIRCLES c, void **arg){        /* doc */  if (c == NULL) return(optionDoc);    return(extractOptionsCircles);}static void *GetExtractInfoCirclesV(CIRCLES c, void **arg){  static ExtractInfo extractInfo;  static char flagInit = YES;      unsigned long *options = ARG_EI_GetPOptions(arg);  if (flagInit == YES) {    extractInfo.nSignals = 1;    extractInfo.xmin = 0;    extractInfo.dx = 1;  }    if (c->n == 0) {    SetErrorf("No extraction possible on empty list of circles");    return(NULL);  }  extractInfo.xmax = c->n-1;    extractInfo.flags = EIIntIndex;  if (!(*options & FSIOptCirclesNoLimit)) extractInfo.flags |= EIErrorBound;    return(&extractInfo);}static void *GetExtractCirclesV(CIRCLES c, void **arg){  FSIList *fsiList;  CIRCLES c1;  FSI_DECL;    /* doc */  if (c == NULL) return(doc);    fsiList = (FSIList *) ARG_G_GetFsiList(arg);  c1 = NewCircles();  TempValue(c1);  ARG_G_SetResValue(arg,c1);    if (fsiList->nx1 == 0) return(circlesType);    c1->array = Malloc(sizeof(Circle)*fsiList->nx1);  c1->n = fsiList->nx1;    FSI_FOR_START(fsiList);   if (fsiList->options & FSIOptCirclesNoLimit && (_i<0 || _i >= c->n)) continue;  memcpy(&(c1->array[_k]),&(c->array[_i]),sizeof(Circle));  FSI_FOR_END;  return(circlesType);}static void *SetExtractCirclesV(CIRCLES c,void **arg){    FSIList *fsiList = (FSIList *)  ARG_S_GetFsiList(arg);  char *type = ARG_S_GetRightType(arg);      VALUE val = ARG_S_GetRightValue(arg);  char *equal = ARG_S_GetEqual(arg);  VALUE *pValueRes = ARG_S_GetResPValue(arg);  LISTV lv;  FSI_DECL;  FLOAT f;  SIGNAL sig;  int _iold, i;  /* doc */  if (c == NULL) return(doc);    if (type != listvType) {    SetErrorf("Right hand side of assignation should be a &listv");    return(NULL);  }  lv = CastValue(val,LISTV);    /* Case := {} */  if (*equal == ':') {    if (lv->length != 0) {      SetErrorf("With := syntax, right handside should be an empty listv");      return(NULL);    }        /* Testing the indices are strictly increasing */    _iold = -1;    FSI_FOR_START(fsiList);    if (_i <= _iold) {      SetErrorf("Indices should be strictly increasing");      return(NULL);    }    _iold = _i;    FSI_FOR_END;        /* Let's remove the circles ! */    _iold = -1;    i = 0;    FSI_FOR_START(fsiList);    if (_i == 0) {      _iold = 0;      continue;    }    else if (_iold == -1) {      i = _i;      _iold = _i;      continue;    }    if (_i == _iold+1) {      _iold = _i;      continue;    }    memmove(&(c->array[i]),&(c->array[_iold+1]),(_i-_iold-1)*sizeof(Circle));    i+=_i-_iold-1;    _iold = _i;    FSI_FOR_END;    if (_i != c->n-1) {      memmove(&(c->array[i]),&(c->array[_iold+1]),(c->n-1-_iold)*sizeof(Circle));    }        c->n -= fsiList->nx;        *pValueRes = (VALUE) c;    return(circlesType);      }      /* case +=, -= ... */  if (*equal != '=') {    SetErrorf("%s syntaxnot valid",equal);    return(NULL);  }      /* case = {sig1 ...} */  if (lv->length != fsiList->nx) {    SetErrorf("Right and left handside should have the same size");    return(NULL);  }    FSI_FOR_START(fsiList);  GetListvNth(lv,_k,&val,&f);  if (val == NULL || GetTypeValue(val) != signaliType) {    SetErrorf("Expect a listv of non empty signals on right handside");    return(NULL);  }  sig = CastValue(val,SIGNAL);  if (sig->size != 3) {    SetErrorf("Expect a listv of signals of length 3 on right handside");    return(NULL);  }  if (sig->Y[2] < 0) {    SetErrorf("Radius must be positive");    return(NULL);  }  c->array[_i].x = sig->Y[0];   c->array[_i].y = sig->Y[1]; 

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
中文字幕乱码一区二区免费| 男人的天堂久久精品| 首页综合国产亚洲丝袜| 国产又黄又大久久| 91精品中文字幕一区二区三区| 国产欧美日韩精品一区| 日韩av电影天堂| 欧美一区二区三区视频在线观看 | 欧美一a一片一级一片| 久久久久久久网| 蜜桃精品视频在线观看| 在线精品观看国产| 亚洲婷婷综合久久一本伊一区| 久久精品国产精品亚洲综合| 欧美喷水一区二区| 依依成人综合视频| a在线播放不卡| 久久综合视频网| 奇米四色…亚洲| 欧美精品在欧美一区二区少妇| 亚洲婷婷在线视频| 成人激情动漫在线观看| 国产肉丝袜一区二区| 久久99精品久久久| 日韩欧美亚洲一区二区| 日韩专区欧美专区| 69堂国产成人免费视频| 青青草伊人久久| 91精品国产一区二区三区 | 91精品国产美女浴室洗澡无遮挡| 亚洲精品日日夜夜| 在线欧美小视频| 亚洲影视资源网| 欧美日韩国产小视频在线观看| 亚洲一区二区av电影| 欧美在线免费观看视频| 一区二区三区中文字幕电影 | 99久久精品国产毛片| 国产精品天干天干在线综合| 大美女一区二区三区| 一区视频在线播放| 91国在线观看| 日韩精品一卡二卡三卡四卡无卡| 日韩一级二级三级精品视频| 狠狠久久亚洲欧美| 国产喷白浆一区二区三区| 99热99精品| 亚洲h动漫在线| 精品久久免费看| 国产成人在线网站| 综合在线观看色| 在线观看日产精品| 麻豆成人免费电影| 中文字幕的久久| 欧美亚洲日本国产| 麻豆精品久久精品色综合| 国产日韩精品一区| 欧美在线视频不卡| 狠狠狠色丁香婷婷综合激情 | 在线国产亚洲欧美| 免费av网站大全久久| 欧美—级在线免费片| 色狠狠桃花综合| 美脚の诱脚舐め脚责91| 成人欧美一区二区三区| 欧美嫩在线观看| 丁香婷婷综合色啪| 午夜精品久久久久久久99樱桃| 精品精品国产高清一毛片一天堂| 99久久精品免费看| 美腿丝袜在线亚洲一区| 亚洲欧美激情视频在线观看一区二区三区 | 老司机精品视频导航| 国产精品午夜电影| 7777精品久久久大香线蕉| 高清不卡一二三区| 免费成人av在线| 一区二区三区在线观看视频| 精品99999| 欧美日韩一区二区在线视频| 丰满亚洲少妇av| 久久精品国内一区二区三区| 一区二区三区日韩在线观看| 国产亚洲综合色| 日韩视频一区二区| 欧美日韩一区不卡| 色国产精品一区在线观看| 国产精一品亚洲二区在线视频| 亚洲综合丝袜美腿| 自拍视频在线观看一区二区| 久久久久国产一区二区三区四区| 欧美日本在线观看| 色欧美日韩亚洲| 成人精品一区二区三区中文字幕| 久久 天天综合| 日韩av在线免费观看不卡| 亚洲综合色自拍一区| 成人免费在线播放视频| 久久综合久久99| 精品免费视频.| 欧美一区二区三区免费| 3atv一区二区三区| 欧美日韩高清影院| 精品视频在线看| 欧美亚洲动漫精品| 欧美自拍偷拍午夜视频| 色菇凉天天综合网| 日本道精品一区二区三区| 91女人视频在线观看| 成人av一区二区三区| 成人久久18免费网站麻豆 | 综合久久给合久久狠狠狠97色| 国产亚洲欧美日韩在线一区| 欧美电视剧在线看免费| 日韩三级高清在线| 日韩欧美的一区二区| 精品国产乱码久久久久久影片| 日韩视频永久免费| 久久久亚洲精品一区二区三区| 国产亚洲综合av| 日韩久久一区二区| 亚洲韩国精品一区| 日韩精品一卡二卡三卡四卡无卡| 免费看日韩a级影片| 国产在线不卡一卡二卡三卡四卡| 国产九色精品成人porny| av午夜精品一区二区三区| 色综合欧美在线视频区| 3d成人动漫网站| 久久精品视频一区二区| 亚洲女爱视频在线| 亚洲综合激情网| 美洲天堂一区二卡三卡四卡视频| 国产福利一区二区三区视频在线| 国产成人精品aa毛片| 99久久婷婷国产| 欧美绝品在线观看成人午夜影视| 日韩欧美在线1卡| 国产精品你懂的在线| 亚洲国产精品欧美一二99| 美女视频黄 久久| 成人免费看视频| 欧美日本一区二区| 国产亚洲人成网站| 亚洲一级二级在线| 国产九色精品成人porny | 精品999在线播放| 国产精品成人网| 三级久久三级久久久| 国产乱淫av一区二区三区 | 色噜噜狠狠色综合欧洲selulu| 欧美日韩一区二区电影| 欧美国产一区视频在线观看| 亚洲.国产.中文慕字在线| 国产成人精品在线看| 欧美理论电影在线| 国产精品久久久久毛片软件| 视频一区二区三区在线| 北岛玲一区二区三区四区| 日韩一级视频免费观看在线| 一区二区在线观看不卡| 国产麻豆视频精品| 欧美日韩高清一区二区| 国产三级精品三级在线专区| 亚洲国产欧美另类丝袜| 成人丝袜18视频在线观看| 日韩精品中午字幕| 亚洲成人在线观看视频| 成人激情小说网站| 欧美成人国产一区二区| 亚洲香肠在线观看| 99在线视频精品| 国产区在线观看成人精品| 日本v片在线高清不卡在线观看| 91久久免费观看| 国产精品久久久一本精品| 韩日欧美一区二区三区| 欧美精品vⅰdeose4hd| 亚洲精品乱码久久久久久| 国产91露脸合集magnet | 国产精品久久久久一区| 国产精品一级在线| 精品国产成人系列| 三级欧美韩日大片在线看| 欧美日韩美女一区二区| 亚洲综合在线第一页| 色婷婷av一区二区三区大白胸| 中文字幕欧美激情一区| 国产精品伊人色| 国产日韩精品一区二区三区| 国产一区二区在线免费观看| 日韩你懂的在线播放| 日韩**一区毛片| 欧美一区二区三区人| 视频一区视频二区中文| 91精品国产综合久久香蕉的特点| 爽好多水快深点欧美视频| 欧美一区二视频| 麻豆国产精品777777在线| 精品国产一区二区三区久久久蜜月 |