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

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

?? avc_e00parse.c

?? 支持各種柵格圖像和矢量圖像讀取的庫
?? C
?? 第 1 頁 / 共 5 頁
字號:
    nLen = strlen(pszLine);    if (psInfo->numItems == 0)    {        /*-------------------------------------------------------------         * Begin processing a new object, read header line:         *    ArcId, UserId, FNode, TNode, LPoly, RPoly, numVertices         *------------------------------------------------------------*/        if (nLen < 70)        {            CPLError(CE_Failure, CPLE_AppDefined,                      "Error parsing E00 ARC line: \"%s\"", pszLine);            return NULL;        }        else        {            psArc->nArcId = AVCE00Str2Int(pszLine, 10);            psArc->nUserId = AVCE00Str2Int(pszLine+10, 10);            psArc->nFNode = AVCE00Str2Int(pszLine+20, 10);            psArc->nTNode = AVCE00Str2Int(pszLine+30, 10);            psArc->nLPoly = AVCE00Str2Int(pszLine+40, 10);            psArc->nRPoly = AVCE00Str2Int(pszLine+50, 10);            psArc->numVertices = AVCE00Str2Int(pszLine+60, 10);                        /* Realloc the array of vertices              */            psArc->pasVertices = (AVCVertex*)CPLRealloc(psArc->pasVertices,                                                        psArc->numVertices*                                                        sizeof(AVCVertex));            /* psInfo->iCurItem is the last vertex that was read.             * psInfo->numItems is the number of vertices to read.             */            psInfo->iCurItem = 0;            psInfo->numItems = psArc->numVertices;        }    }    else if (psInfo->iCurItem < psInfo->numItems &&              psInfo->nPrecision == AVC_SINGLE_PREC &&             ( (psInfo->iCurItem==psInfo->numItems-1 && nLen >= 28) ||               nLen >= 56 )  )    {        /*-------------------------------------------------------------         * Single precision ARCs: 2 pairs of X,Y values per line         * Except on the last line with an odd number of vertices)         *------------------------------------------------------------*/        psArc->pasVertices[psInfo->iCurItem].x = atof(pszLine);        psArc->pasVertices[psInfo->iCurItem++].y = atof(pszLine+14);        if (psInfo->iCurItem < psInfo->numItems && nLen >= 56)        {            psArc->pasVertices[psInfo->iCurItem].x = atof(pszLine+28);            psArc->pasVertices[psInfo->iCurItem++].y = atof(pszLine+42);        }    }    else if (psInfo->iCurItem < psInfo->numItems &&              psInfo->nPrecision == AVC_DOUBLE_PREC &&             nLen >= 42)    {        /*-------------------------------------------------------------         * Double precision ARCs: 1 pair of X,Y values per line         *------------------------------------------------------------*/        psArc->pasVertices[psInfo->iCurItem].x = atof(pszLine);        psArc->pasVertices[psInfo->iCurItem++].y = atof(pszLine+21);    }    else    {        CPLError(CE_Failure, CPLE_AppDefined,                  "Error parsing E00 ARC line: \"%s\"", pszLine);        psInfo->numItems = psInfo->iCurItem = 0;        return NULL;    }    /*-----------------------------------------------------------------     * If we're done parsing this ARC, then reset the ParseInfo,     * and return a reference to the ARC 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 psArc;    }    return NULL;}/********************************************************************** *                          AVCE00ParseNextPalLine() * * Take the next line of E00 input for an PAL 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. **********************************************************************/AVCPal   *AVCE00ParseNextPalLine(AVCE00ParseInfo *psInfo, const char *pszLine){    AVCPal *psPal;    int     nLen;    CPLAssert(psInfo->eFileType == AVCFilePAL ||              psInfo->eFileType == AVCFileRPL );    psPal = psInfo->cur.psPal;    nLen = strlen(pszLine);    if (psInfo->numItems == 0)    {        /*-------------------------------------------------------------         * Begin processing a new object, read header line:         *    numArcs, MinX, MinY, MaxX, MaxY         * For Double precision, MaxX, MaxY are on a separate line.         *------------------------------------------------------------*/        if (nLen < 52)        {            CPLError(CE_Failure, CPLE_AppDefined,                      "Error parsing E00 PAL line: \"%s\"", pszLine);            return NULL;        }        else        {            /* Polygon Id is not stored in the E00 file.  Polygons are             * stored in increasing order, starting at 1... so we just              * increment the previous value.             */            psPal->nPolyId = ++psInfo->nCurObjectId;            psPal->numArcs = AVCE00Str2Int(pszLine, 10);            /* If a PAL record has 0 arcs, it really has a single "0 0 0"             * triplet as its data.             */            if ( psPal->numArcs == 0 )            {               psPal->numArcs = 1;            }            /* Realloc the array of Arcs             */            psPal->pasArcs = (AVCPalArc*)CPLRealloc(psPal->pasArcs,                                                    psPal->numArcs*                                                    sizeof(AVCPalArc));            /* psInfo->iCurItem is the index of the last arc that was read.             * psInfo->numItems is the number of arcs to read.             */            psInfo->iCurItem = 0;            psInfo->numItems = psPal->numArcs;            if (psInfo->nPrecision == AVC_SINGLE_PREC)            {                psPal->sMin.x = atof(pszLine + 10);                psPal->sMin.y = atof(pszLine + 24);                psPal->sMax.x = atof(pszLine + 38);                psPal->sMax.y = atof(pszLine + 52);            }            else            {                psPal->sMin.x = atof(pszLine + 10);                psPal->sMin.y = atof(pszLine + 31);                /* Set psInfo->iCurItem = -1 since we still have 2 values                 * from the header to read on the next line.                 */                psInfo->iCurItem = -1;            }        }    }    else if (psInfo->iCurItem == -1 && nLen >= 42)    {        psPal->sMax.x = atof(pszLine);        psPal->sMax.y = atof(pszLine + 21);        psInfo->iCurItem++;    }    else if (psInfo->iCurItem < psPal->numArcs &&              (nLen >= 60 ||              (psInfo->iCurItem == psPal->numArcs-1 && nLen >= 30)) )    {        /*-------------------------------------------------------------         * 2 PAL entries (ArcId, FNode, AdjPoly) per line,          * (Except on the last line with an odd number of vertices)         *------------------------------------------------------------*/        psPal->pasArcs[psInfo->iCurItem].nArcId = AVCE00Str2Int(pszLine, 10);        psPal->pasArcs[psInfo->iCurItem].nFNode = AVCE00Str2Int(pszLine+10,10);        psPal->pasArcs[psInfo->iCurItem++].nAdjPoly = AVCE00Str2Int(pszLine+20,                                                                    10);        if (psInfo->iCurItem < psInfo->numItems)        {            psPal->pasArcs[psInfo->iCurItem].nArcId = AVCE00Str2Int(pszLine+30,                                                                    10);            psPal->pasArcs[psInfo->iCurItem].nFNode = AVCE00Str2Int(pszLine+40,                                                                    10);            psPal->pasArcs[psInfo->iCurItem++].nAdjPoly =                                                 AVCE00Str2Int(pszLine+50, 10);        }     }    else    {        CPLError(CE_Failure, CPLE_AppDefined,                  "Error parsing E00 PAL line: \"%s\"", pszLine);        psInfo->numItems = psInfo->iCurItem = 0;        return NULL;    }    /*-----------------------------------------------------------------     * If we're done parsing this PAL, then reset the ParseInfo,     * and return a reference to the PAL 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 psPal;    }    return NULL;}/********************************************************************** *                          AVCE00ParseNextCntLine() * * Take the next line of E00 input for an CNT 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. **********************************************************************/AVCCnt   *AVCE00ParseNextCntLine(AVCE00ParseInfo *psInfo, const char *pszLine){    AVCCnt *psCnt;    int     nLen;    CPLAssert(psInfo->eFileType == AVCFileCNT);    psCnt = psInfo->cur.psCnt;    nLen = strlen(pszLine);    if (psInfo->numItems == 0)    {        /*-------------------------------------------------------------         * Begin processing a new object, read header line:         *    numLabels, X, Y         *------------------------------------------------------------*/        if (nLen < 38)        {            CPLError(CE_Failure, CPLE_AppDefined,                      "Error parsing E00 CNT line: \"%s\"", pszLine);            return NULL;        }        else        {            /* Polygon Id is not stored in the E00 file.  Centroids are             * stored in increasing order of Polygon Id, starting at 1...             * so we just increment the previous value.             */            psCnt->nPolyId = ++psInfo->nCurObjectId;            psCnt->numLabels = AVCE00Str2Int(pszLine, 10);            /* Realloc the array of Labels Ids             * Avoid allocating a 0-length segment since centroids can have             * 0 labels attached to them.             */            if (psCnt->numLabels > 0)                psCnt->panLabelIds = (GInt32 *)CPLRealloc(psCnt->panLabelIds,                                                          psCnt->numLabels*                                                          sizeof(GInt32));            if (psInfo->nPrecision == AVC_SINGLE_PREC)            {                psCnt->sCoord.x = atof(pszLine + 10);                psCnt->sCoord.y = atof(pszLine + 24);            }            else            {                psCnt->sCoord.x = atof(pszLine + 10);                psCnt->sCoord.y = atof(pszLine + 31);            }            /* psInfo->iCurItem is the index of the last label that was read.             * psInfo->numItems is the number of label ids to read.             */            psInfo->iCurItem = 0;            psInfo->numItems = psCnt->numLabels;        }    }    else if (psInfo->iCurItem < psInfo->numItems )    {        /*-------------------------------------------------------------         * Each line can contain up to 8 label ids (10 chars each)         *------------------------------------------------------------*/        int i=0;        while(psInfo->iCurItem < psInfo->numItems && nLen >= (i+1)*10)        {            psCnt->panLabelIds[psInfo->iCurItem++] =                                   AVCE00Str2Int(pszLine + i*10, 10);            i++;        }    }    else    {        CPLError(CE_Failure, CPLE_AppDefined,                  "Error parsing E00 CNT line: \"%s\"", pszLine);        psInfo->numItems = psInfo->iCurItem = 0;        return NULL;    }    /*-----------------------------------------------------------------     * If we're done parsing this CNT, then reset the ParseInfo,     * and return a reference to the CNT 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 psCnt;    }    return NULL;}/**********************************************************************

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲午夜久久久久久久久久久| 中文字幕视频一区| 欧美一区中文字幕| 欧美日韩国产大片| 欧美一区二区免费观在线| 欧美久久一二三四区| 欧美一二三区在线| 久久蜜桃av一区二区天堂| 国产亚洲精品资源在线26u| 欧美精品一区二区在线播放| 久久久久久久久久久久电影| 久久精品一区二区三区av| 国产三级欧美三级| 国产精品国产成人国产三级| 亚洲制服丝袜一区| 日本在线观看不卡视频| 极品少妇xxxx精品少妇| 国产精品1区2区3区| 成人国产精品免费观看动漫| 日本久久一区二区三区| 日韩一区二区免费电影| 国产色综合久久| 亚洲美女屁股眼交3| 三级久久三级久久| 国产精品996| 欧美三级资源在线| 久久精品一区四区| 亚洲一区二区三区爽爽爽爽爽| 日本不卡视频在线| 成人av片在线观看| 欧美高清激情brazzers| 国产午夜精品一区二区| 亚洲韩国精品一区| 国产精品自在在线| 欧美日韩一区精品| 欧美国产欧美综合| 香蕉乱码成人久久天堂爱免费| 精品无人区卡一卡二卡三乱码免费卡| 成人av资源站| 日韩欧美国产系列| 亚洲综合成人在线视频| 国产在线不卡一区| 欧美高清视频不卡网| 一区精品在线播放| 国产一区二区三区久久久 | 国产农村妇女毛片精品久久麻豆 | 亚洲综合在线电影| 韩国女主播一区| 欧美色中文字幕| 欧美国产精品一区二区三区| 日韩中文字幕一区二区三区| 成人av午夜电影| wwww国产精品欧美| 日韩高清国产一区在线| 91国偷自产一区二区三区观看| 久久蜜桃av一区二区天堂| 日韩av高清在线观看| 色成年激情久久综合| 国产精品久久久爽爽爽麻豆色哟哟 | 欧美日韩精品一区二区| 18成人在线视频| 国产成人精品www牛牛影视| 久久综合久久鬼色| 精品一区二区免费看| 制服丝袜中文字幕一区| 亚洲一二三区在线观看| 色狠狠色噜噜噜综合网| 亚洲人成影院在线观看| 95精品视频在线| 亚洲天堂av老司机| 99综合影院在线| 亚洲视频精选在线| 99精品国产视频| 一区二区三区国产精品| 在线这里只有精品| 一区二区日韩av| 欧美美女激情18p| 日韩影视精彩在线| 欧美电影免费观看高清完整版在| 秋霞午夜鲁丝一区二区老狼| 欧美一级视频精品观看| 精品午夜久久福利影院| 久久久久99精品一区| 丁香六月综合激情| 亚洲男帅同性gay1069| 色综合网站在线| 午夜精品久久久| 欧美一区二区免费| 国产精品资源在线看| 国产人成一区二区三区影院| 99久久99久久免费精品蜜臀| 一区二区成人在线| 日韩免费观看2025年上映的电影| 国产精品一线二线三线精华| 欧美激情综合五月色丁香小说| 99re视频精品| 天天av天天翘天天综合网色鬼国产| 日韩精品一区二区三区在线| 国产精品资源在线| 亚洲免费在线播放| 日韩三级中文字幕| 国产成人精品三级麻豆| 亚洲一二三级电影| xnxx国产精品| 欧美综合久久久| 国产麻豆一精品一av一免费| 亚洲视频一区二区在线| 欧美精品aⅴ在线视频| 国产成人亚洲综合a∨猫咪| 亚洲视频在线观看三级| 日韩美女视频一区二区在线观看| 国产99精品国产| 青青草原综合久久大伊人精品 | 国产一区二区三区免费看| 亚洲乱码国产乱码精品精可以看| 91精品国产色综合久久ai换脸 | 欧美日韩精品一区二区三区四区| 国产乱妇无码大片在线观看| 亚洲图片欧美一区| 国产精品三级在线观看| 日韩欧美一级二级三级久久久 | 亚洲图片自拍偷拍| 久久精品男人的天堂| 欧美乱熟臀69xxxxxx| av在线不卡网| 国产成人在线看| 蜜臀久久99精品久久久画质超高清| 国产精品久久二区二区| 337p日本欧洲亚洲大胆精品| 欧美电影影音先锋| 91高清视频免费看| www.欧美日韩| 成人午夜碰碰视频| 国产精品性做久久久久久| 麻豆91在线观看| 日韩主播视频在线| 午夜精品久久久久影视| 亚洲一区二区视频| 夜夜夜精品看看| 亚洲天堂网中文字| 亚洲日本在线看| 亚洲欧美视频在线观看| 亚洲欧美综合网| 国产精品区一区二区三| 欧美韩国日本综合| 中文字幕欧美激情一区| 国产亚洲精品超碰| 国产日韩欧美不卡| 国产欧美一区二区三区在线老狼 | 91美女精品福利| 99久久免费国产| 91美女在线观看| 色播五月激情综合网| 色8久久人人97超碰香蕉987| 在线亚洲免费视频| 欧美亚洲国产bt| 欧美一区二区三区系列电影| 欧美丰满少妇xxxbbb| 日韩视频免费观看高清完整版在线观看 | 亚洲理论在线观看| 亚洲第一主播视频| 免费久久精品视频| 国产一区二区在线视频| 丰满放荡岳乱妇91ww| 99精品在线免费| 欧美少妇一区二区| 欧美变态tickling挠脚心| 国产亚洲欧洲997久久综合| 国产精品欧美一区喷水| 亚洲一区二区在线播放相泽 | 日韩丝袜美女视频| 久久综合给合久久狠狠狠97色69| 国产亚洲精品aa午夜观看| 亚洲视频免费看| 日日夜夜一区二区| 国产精华液一区二区三区| 91在线观看下载| 这里只有精品电影| 国产调教视频一区| 亚洲一区二区视频在线| 韩国v欧美v亚洲v日本v| 91在线精品一区二区| 欧美一级一级性生活免费录像| 国产亚洲综合av| 亚洲国产成人91porn| 国产精品主播直播| 欧美日韩综合一区| 欧美激情中文不卡| 丝袜诱惑亚洲看片| 成人高清伦理免费影院在线观看| 欧美日韩在线一区二区| 欧美国产一区二区| 免费美女久久99| 色噜噜狠狠色综合中国| 久久久一区二区三区捆绑**| 亚洲自拍偷拍图区| 成人激情免费网站| 久久品道一品道久久精品| 亚洲.国产.中文慕字在线| 成人综合婷婷国产精品久久免费|