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

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? avc_e00parse.c

?? 支持各種柵格圖像和矢量圖像讀取的庫(kù)
?? C
?? 第 1 頁(yè) / 共 5 頁(yè)
字號(hào):
             *--------------------------------------------------------*/            psInfo->iCurItem = 0;            psInfo->numItems = numFixedLines + ((psTxt->numChars-1)/80 + 1);        }    }    else if (psInfo->iCurItem < psInfo->numItems &&             psInfo->iCurItem < numFixedLines-1 && nLen >=63)    {        /*-------------------------------------------------------------         * Then we have a set of 15 coordinate values... unused ones         * are present but are set to 0.00E+00         *         * Vals 1 to 4 are X coords of line along which text is drawn         * Vals 5 to 8 are the corresponding Y coords         * Vals 9 to 11 are the X coords of the text arrow         * Vals 12 to 14 are the corresponding Y coords         * The 15th value is the height         *         * Note that the first vertex (values 1 and 5) is duplicated         * in the TXT structure... go wonder why???         *------------------------------------------------------------*/        int iCurCoord=0, numCoordPerLine, nItemSize, iVertex;        if (psInfo->nPrecision == AVC_SINGLE_PREC)        {            numCoordPerLine = 5;            nItemSize = 14;  /* Num of chars for single precision float*/        }        else        {            numCoordPerLine = 3;            nItemSize = 21;  /* Num of chars for double precision float*/        }        iCurCoord = psInfo->iCurItem * numCoordPerLine;        for(i=0; i<numCoordPerLine; i++, iCurCoord++)        {            if (iCurCoord < 4 &&                 (iVertex = iCurCoord % 4) < psTxt->numVerticesLine-1)            {                psTxt->pasVertices[iVertex+1].x = atof(pszLine+i*nItemSize);                /* The first vertex is always duplicated */                if (iVertex == 0)                    psTxt->pasVertices[0].x = psTxt->pasVertices[1].x;            }            else if (iCurCoord >= 4 && iCurCoord < 8 &&                     (iVertex = iCurCoord % 4) < psTxt->numVerticesLine-1)            {                psTxt->pasVertices[iVertex+1].y = atof(pszLine+i*nItemSize);                /* The first vertex is always duplicated */                if (iVertex == 0)                    psTxt->pasVertices[0].y = psTxt->pasVertices[1].y;            }            else if (iCurCoord >= 8 && iCurCoord < 11 &&                     (iVertex = (iCurCoord-8) % 3) < psTxt->numVerticesArrow)            {                psTxt->pasVertices[iVertex+psTxt->numVerticesLine].x =                                                    atof(pszLine+i*nItemSize);            }            else if (iCurCoord >= 11 && iCurCoord < 14 &&                     (iVertex = (iCurCoord-8) % 3) < psTxt->numVerticesArrow)            {                psTxt->pasVertices[iVertex+psTxt->numVerticesLine].y =                                                    atof(pszLine+i*nItemSize);            }            else if (iCurCoord == 14)            {                psTxt->dHeight = atof(pszLine+i*nItemSize);            }        }        psInfo->iCurItem++;    }    else if (psInfo->iCurItem < psInfo->numItems &&             psInfo->iCurItem == numFixedLines-1  && nLen >=14)    {        /*-------------------------------------------------------------         * Line with a -1.000E+02 value, ALWAYS SINGLE PRECISION !!!         *------------------------------------------------------------*/        psTxt->f_1e2 = (float)atof(pszLine);        psInfo->iCurItem++;    }    else if (psInfo->iCurItem < psInfo->numItems &&             psInfo->iCurItem >= numFixedLines)    {        /*-------------------------------------------------------------         * Last line, contains the text string         * Note that text can be split in 80 chars chunk and that buffer         * has been previously initialized with spaces and '\0'-terminated         *------------------------------------------------------------*/        int numLines, iLine;        numLines = (psTxt->numChars-1)/80 + 1;        iLine = numLines - (psInfo->numItems - psInfo->iCurItem);        if (iLine == numLines-1)        {            strncpy(psTxt->pszText+(iLine*80), pszLine,                     MIN( nLen, (psTxt->numChars - (iLine*80)) ) );        }        else        {            strncpy(psTxt->pszText+(iLine*80), pszLine, MIN(nLen, 80));        }        psInfo->iCurItem++;    }    else    {        CPLError(CE_Failure, CPLE_AppDefined,                  "Error parsing E00 TXT line: \"%s\"", pszLine);        psInfo->numItems = psInfo->iCurItem = 0;        return NULL;    }    /*-----------------------------------------------------------------     * If we're done parsing this TXT, then reset the ParseInfo,     * and return a reference to the TXT structure     * Otherwise return NULL, which means that we are expecting more     * more lines of input.     *----------------------------------------------------------------*/    if (psInfo->iCurItem >= psInfo->numItems)    {        psInfo->numItems = psInfo->iCurItem = 0;        return psTxt;    }    return NULL;}/********************************************************************** *                          AVCE00ParseNextTx6Line() * * Take the next line of E00 input for an TX6/TX7 object and parse it. * * Returns NULL if the current object is not complete yet (expecting * more lines of input) or a reference to a complete object if it * is complete. * * The returned object is a reference to an internal data structure. * It should not be modified or freed by the caller. * * If the input is invalid or other problems happen, then a CPLError() * will be generated.  CPLGetLastErrorNo() should be called to check * that the line was parsed succesfully. **********************************************************************/AVCTxt   *AVCE00ParseNextTx6Line(AVCE00ParseInfo *psInfo, const char *pszLine){    AVCTxt *psTxt;    int     i, nLen;    CPLAssert(psInfo->eFileType == AVCFileTX6);    psTxt = psInfo->cur.psTxt;    nLen = strlen(pszLine);    if (psInfo->numItems == 0)    {        /*-------------------------------------------------------------         * Begin processing a new object, read header line:         *------------------------------------------------------------*/        if (nLen < 70)        {            CPLError(CE_Failure, CPLE_AppDefined,                      "Error parsing E00 TX6/TX7 line: \"%s\"", pszLine);            return NULL;        }        else        {            int numVertices;            /*---------------------------------------------------------             * System Id is not stored in the E00 file.  Annotations are             * stored in increasing order of System Id, starting at 1...             * so we just increment the previous value.             *--------------------------------------------------------*/            psTxt->nTxtId = ++psInfo->nCurObjectId;            psTxt->nUserId         = AVCE00Str2Int(pszLine, 10);            psTxt->nLevel          = AVCE00Str2Int(pszLine+10, 10);            psTxt->numVerticesLine = AVCE00Str2Int(pszLine+20, 10);            psTxt->numVerticesArrow= AVCE00Str2Int(pszLine+30, 10);            psTxt->nSymbol         = AVCE00Str2Int(pszLine+40, 10);            psTxt->n28             = AVCE00Str2Int(pszLine+50, 10);            psTxt->numChars        = AVCE00Str2Int(pszLine+60, 10);            /*---------------------------------------------------------             * Realloc the string buffer and array of vertices             *--------------------------------------------------------*/            psTxt->pszText = (char *)CPLRealloc(psTxt->pszText,                                                (psTxt->numChars+1)*                                                sizeof(char));            numVertices = ABS(psTxt->numVerticesLine) +                                  ABS(psTxt->numVerticesArrow);            if (numVertices > 0)                psTxt->pasVertices = (AVCVertex*)CPLRealloc(psTxt->pasVertices,                                              numVertices*sizeof(AVCVertex));            /*---------------------------------------------------------             * Fill the whole string buffer with spaces we'll just             * paste lines in it using strncpy()             *--------------------------------------------------------*/            memset(psTxt->pszText, ' ', psTxt->numChars);            psTxt->pszText[psTxt->numChars] = '\0';            /*---------------------------------------------------------             * psInfo->iCurItem is the index of the last line that was read.             * psInfo->numItems is the number of lines to read.             *--------------------------------------------------------*/            psInfo->iCurItem = 0;            psInfo->numItems = 8 + numVertices + ((psTxt->numChars-1)/80 + 1);        }    }    else if (psInfo->iCurItem < psInfo->numItems &&              psInfo->iCurItem < 6 && nLen >=60)    {        /*-------------------------------------------------------------         * Text Justification stuff... 2 sets of 20 int16 values.         *------------------------------------------------------------*/        GInt16  *pValue;        int     numValPerLine=7;        if (psInfo->iCurItem < 3)            pValue = psTxt->anJust2 + psInfo->iCurItem * 7;        else            pValue = psTxt->anJust1 + (psInfo->iCurItem-3) * 7;        /* Last line of each set contains only 6 values instead of 7 */        if (psInfo->iCurItem == 2 || psInfo->iCurItem == 5)            numValPerLine = 6;        for(i=0; i<numValPerLine; i++)            pValue[i] = AVCE00Str2Int(pszLine + i*10, 10);        psInfo->iCurItem++;    }    else if (psInfo->iCurItem < psInfo->numItems &&              psInfo->iCurItem == 6 && nLen >=14)    {        /*-------------------------------------------------------------         * Line with a -1.000E+02 value, ALWAYS SINGLE PRECISION !!!         *------------------------------------------------------------*/        psTxt->f_1e2 = (float)atof(pszLine);        psInfo->iCurItem++;    }    else if (psInfo->iCurItem < psInfo->numItems &&              psInfo->iCurItem == 7 && nLen >=42)    {        /*-------------------------------------------------------------         * Line with 3 values, 1st value is text height.         *------------------------------------------------------------*/        psTxt->dHeight = atof(pszLine);        if (psInfo->nPrecision == AVC_SINGLE_PREC)        {            psTxt->dV2     = atof(pszLine+14);            psTxt->dV3     = atof(pszLine+28);        }        else        {            psTxt->dV2     = atof(pszLine+21);            psTxt->dV3     = atof(pszLine+42);        }        psInfo->iCurItem++;    }    else if (psInfo->iCurItem < (8 + ABS(psTxt->numVerticesLine) +                                    ABS(psTxt->numVerticesArrow)) && nLen >= 28)    {        /*-------------------------------------------------------------         * One line for each pair of X,Y coordinates         * (Lines 8 to 8+numVertices-1)         *------------------------------------------------------------*/        psTxt->pasVertices[ psInfo->iCurItem-8 ].x = atof(pszLine);        if (psInfo->nPrecision == AVC_SINGLE_PREC)            psTxt->pasVertices[ psInfo->iCurItem-8 ].y = atof(pszLine+14);        else            psTxt->pasVertices[ psInfo->iCurItem-8 ].y = atof(pszLine+21);        psInfo->iCurItem++;    }    else if (psInfo->iCurItem < psInfo->numItems)    {        /*-------------------------------------------------------------         * Last line, contains the text string         * Note that text can be split in 80 chars chunk and that buffer         * has been previously initialized with spaces and '\0'-terminated         *------------------------------------------------------------*/        int numLines, iLine;        numLines = (psTxt->numChars-1)/80 + 1;        iLine = numLines - (psInfo->numItems - psInfo->iCurItem);        if (iLine == numLines-1)        {            strncpy(psTxt->pszText+(iLine*80), pszLine,                     MIN( nLen, (psTxt->numChars - (iLine*80)) ) );        }        else        {            strncpy(psTxt->pszText+(iLine*80), pszLine, MIN(nLen, 80));        }        psInfo->iCurItem++;    }    else    {        CPLError(CE_Failure, CPLE_AppDefined,                  "Error parsing E00 TX6/TX7 line: \"%s\"", pszLine);        psInfo->numItems = psInfo->iCurItem = 0;        return NULL;    }    /*-----------------------------------------------------------------     * If we're done parsing this TX6/TX7, then reset the ParseInfo,     * and return a reference to the TXT structure     * Otherwise return NULL, which means that we are expecting more     * more lines of input.     *----------------------------------------------------------------*/    if (psInfo->iCurItem >= psInfo->numItems)    {        psInfo->numItems = psInfo->iCurItem = 0;        return psTxt;    }    return NULL;}/********************************************************************** *                          AVCE00ParseNextRxpLine() * * Take the next line of E00 input for an RXP object and parse it. * * Returns NULL if the current object is not complete yet (expecting * more lines of input) or a reference to a complete object if it * is complete. * * The returned object is a reference to an internal data structure. * It should not be modified or freed by the caller. * * If the input is invalid or other problems happen, then a CPLError() * will be generated.  CPLGetLastErrorNo() should be called to check * that the line 

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
岛国av在线一区| 国产精品视频线看| 国产一区二区三区电影在线观看 | 大尺度一区二区| 亚洲国产成人精品视频| 久久久久久9999| 欧美三日本三级三级在线播放| 国产一区二区精品久久| 亚洲一区二区av在线| 国产精品国产三级国产三级人妇| 91精品国产乱码| 色综合久久久久网| 国产91高潮流白浆在线麻豆| 成人av网站在线观看免费| 色综合久久天天| 老司机午夜精品99久久| 亚洲国产乱码最新视频| 一卡二卡欧美日韩| 中文字幕第一区综合| 精品国产91洋老外米糕| 欧美一区二区三级| 欧美三级韩国三级日本一级| 91小视频免费看| 国产成人免费9x9x人网站视频| 久久99精品国产麻豆婷婷| 视频一区二区三区在线| 一区二区三区欧美在线观看| 国产精品美女久久久久aⅴ| 欧美精品一区二区三区一线天视频| 欧美福利视频导航| 欧美体内she精高潮| 色综合咪咪久久| 91在线一区二区三区| 波多野结衣精品在线| 国产精品乡下勾搭老头1| 国产一区二区调教| 狠狠v欧美v日韩v亚洲ⅴ| 国产在线一区观看| 韩国av一区二区| 国产乱妇无码大片在线观看| 国产一区中文字幕| 久久av中文字幕片| 国产一区二区三区精品欧美日韩一区二区三区| 蜜芽一区二区三区| 麻豆91精品视频| 国产综合久久久久久鬼色 | 国产精品不卡一区二区三区| 中文字幕国产一区| 亚洲欧美激情插| 一级做a爱片久久| 五月天一区二区| 蜜臀久久久99精品久久久久久| 久久成人免费电影| 国产精品自在在线| 成人app网站| 色av综合在线| 欧美另类z0zxhd电影| 91精品在线麻豆| 久久夜色精品一区| 国产精品久久久久久久久免费相片| 国产亚洲一二三区| 亚洲色图19p| 午夜精品久久一牛影视| 蜜桃久久久久久久| 国产aⅴ精品一区二区三区色成熟| 丰满岳乱妇一区二区三区| 一道本成人在线| 51精品秘密在线观看| 久久久久久久久久久久久久久99 | 欧美日韩久久久一区| 91精品国产全国免费观看 | 久久美女高清视频| 国产精品久久毛片a| 亚洲精品久久嫩草网站秘色| 日日摸夜夜添夜夜添精品视频| 国产专区综合网| 91免费观看视频| 91精品国产91久久久久久最新毛片 | 粉嫩13p一区二区三区| 日本精品一级二级| 日韩欧美电影在线| 亚洲图片另类小说| 日本成人在线视频网站| 成人一级黄色片| 欧美精品丝袜中出| 国产精品国模大尺度视频| 午夜欧美2019年伦理| 丁香天五香天堂综合| 欧美乱妇20p| 中文字幕第一区| 日本美女视频一区二区| 91麻豆免费看| 久久久久久久性| 午夜视频在线观看一区二区| 国产精品一卡二卡| 91麻豆精品国产| 18涩涩午夜精品.www| 精品午夜久久福利影院| 91福利资源站| 欧美国产日韩一二三区| 蜜桃av一区二区在线观看| 97精品国产露脸对白| 精品国产免费视频| 午夜天堂影视香蕉久久| 99热99精品| 精品成人a区在线观看| 亚洲一区二区三区中文字幕| 丁香六月综合激情| 欧美mv和日韩mv的网站| 亚洲高清免费在线| 99久久精品情趣| 国产亚洲精品福利| 麻豆中文一区二区| 欧美色电影在线| 亚洲精品ww久久久久久p站| 国产盗摄精品一区二区三区在线 | www.欧美精品一二区| 久久伊人中文字幕| 麻豆一区二区三区| 7777精品久久久大香线蕉| 亚洲精品欧美在线| 91丨porny丨首页| 国产欧美日韩在线视频| 狠狠久久亚洲欧美| 精品久久久久久亚洲综合网| 日韩精品福利网| 欧美人xxxx| 亚洲成年人网站在线观看| 精品视频1区2区3区| 一区二区三区高清在线| 99久久99久久精品免费观看| 国产精品日韩精品欧美在线| 国产激情视频一区二区在线观看| 精品国产伦理网| 国内成人精品2018免费看| 欧美精品一区视频| 国产伦精一区二区三区| 国产亚洲午夜高清国产拍精品| 国内精品国产成人| 国产欧美一区二区精品忘忧草 | 一区二区三区在线高清| 色综合色综合色综合色综合色综合 | 亚洲一级二级在线| 欧美日韩在线播放三区| 亚洲成人av资源| 91精品欧美一区二区三区综合在 | 丁香亚洲综合激情啪啪综合| 亚洲国产高清在线| 91视频国产观看| 亚洲午夜激情网页| 欧美一区二区视频在线观看2020| 视频在线观看国产精品| 欧美va亚洲va在线观看蝴蝶网| 国产一区三区三区| 国产精品麻豆欧美日韩ww| 成人动漫一区二区| 亚洲成人黄色小说| 欧美变态口味重另类| 国产福利一区二区三区| 亚洲色图色小说| 99久久99久久久精品齐齐| 欧美男人的天堂一二区| 国产精品中文字幕一区二区三区| 日本伦理一区二区| 天天av天天翘天天综合网色鬼国产 | 久久国产福利国产秒拍| 国产视频一区在线观看| 99re成人在线| 亚洲二区在线视频| 久久午夜色播影院免费高清| 91麻豆免费视频| 青青国产91久久久久久| 国产日韩亚洲欧美综合| 色丁香久综合在线久综合在线观看| 亚洲成人久久影院| 欧美国产精品一区| 欧美片网站yy| 风间由美一区二区三区在线观看 | 国产成人免费9x9x人网站视频| 亚洲狠狠丁香婷婷综合久久久| 日韩欧美的一区二区| 99久久精品费精品国产一区二区| 视频一区二区三区入口| 国产精品欧美一区二区三区| 欧美色综合天天久久综合精品| 国产精品一区二区免费不卡| 亚洲一区影音先锋| 国产日韩高清在线| 5月丁香婷婷综合| 成人精品国产免费网站| 日产欧产美韩系列久久99| 日韩一区二区三区电影| 国产精品国产三级国产有无不卡 | 欧美特级限制片免费在线观看| 激情综合色综合久久| 一区二区三区欧美视频| 国产偷国产偷精品高清尤物| 欧美色欧美亚洲另类二区| 国产999精品久久| 免费在线看成人av|