您当前的位置:首页 > IT编程 > C++
| C语言 | Java | VB | VC | python | Android | TensorFlow | C++ | oracle | 学术与代码 | cnn卷积神经网络 | gnn | 图像修复 | Keras | 数据集 | Neo4j | 自然语言处理 | 深度学习 | 医学CAD | 医学影像 | 超参数 | pointnet | pytorch | 异常检测 | Transformers | 情感分类 | 知识图谱 |

自学教程:C++ CPL_LSBPTR32函数代码示例

51自学网 2021-06-01 20:04:54
  C++
这篇教程C++ CPL_LSBPTR32函数代码示例写得很实用,希望能帮到您。

本文整理汇总了C++中CPL_LSBPTR32函数的典型用法代码示例。如果您正苦于以下问题:C++ CPL_LSBPTR32函数的具体用法?C++ CPL_LSBPTR32怎么用?C++ CPL_LSBPTR32使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。

在下文中一共展示了CPL_LSBPTR32函数的27个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。

示例1: VSIMalloc3

int HF2Dataset::LoadBlockMap(){    if (bHasLoaderBlockMap)        return panBlockOffset != NULL;    bHasLoaderBlockMap = TRUE;    const int nXBlocks = (nRasterXSize + nTileSize - 1) / nTileSize;    const int nYBlocks = (nRasterYSize + nTileSize - 1) / nTileSize;    panBlockOffset = (vsi_l_offset*) VSIMalloc3(sizeof(vsi_l_offset), nXBlocks, nYBlocks);    if (panBlockOffset == NULL)    {        return FALSE;    }    for(int j = 0; j < nYBlocks; j++)    {        for(int i = 0; i < nXBlocks; i++)        {            vsi_l_offset nOff = VSIFTellL(fp);            panBlockOffset[(nYBlocks - 1 - j) * nXBlocks + i] = nOff;            //VSIFSeekL(fp, 4 + 4, SEEK_CUR);            float fScale, fOff;            VSIFReadL(&fScale, 4, 1, fp);            VSIFReadL(&fOff, 4, 1, fp);            CPL_LSBPTR32(&fScale);            CPL_LSBPTR32(&fOff);            //printf("fScale = %f, fOff = %f/n", fScale, fOff);            const int nCols = MIN(nTileSize, nRasterXSize - nTileSize *i);            const int nLines = MIN(nTileSize, nRasterYSize - nTileSize *j);            for(int k = 0; k < nLines; k++)            {                GByte nWordSize;                if( VSIFReadL(&nWordSize, 1, 1, fp) != 1 )                {                    CPLError(CE_Failure, CPLE_FileIO, "File too short");                    VSIFree(panBlockOffset);                    panBlockOffset = NULL;                    return FALSE;                }                //printf("nWordSize=%d/n", nWordSize);                if (nWordSize == 1 || nWordSize == 2 || nWordSize == 4)                    VSIFSeekL(fp, static_cast<vsi_l_offset>(4 + nWordSize * (nCols - 1)), SEEK_CUR);                else                {                    CPLError(CE_Failure, CPLE_AppDefined,                            "Got unexpected byte depth (%d) for block (%d, %d) line %d",                            (int)nWordSize, i, j, k);                    VSIFree(panBlockOffset);                    panBlockOffset = NULL;                    return FALSE;                }            }        }    }    return TRUE;}
开发者ID:bbradbury,项目名称:lib_gdal,代码行数:57,


示例2: fprintf

void TABRawBinBlock::Dump(FILE *fpOut /*=NULL*/){    if (fpOut == NULL)        fpOut = stdout;    fprintf(fpOut, "----- TABRawBinBlock::Dump() -----/n");    if (m_pabyBuf == NULL)    {        fprintf(fpOut, "Block has not been initialized yet.");    }    else    {        if( m_nBlockType == TABMAP_GARB_BLOCK )        {            fprintf(fpOut,"Garbage Block (type %d) at offset %d./n",                                                    m_nBlockType, m_nFileOffset);            int nNextGarbageBlock = 0;            memcpy(&nNextGarbageBlock, m_pabyBuf + 2, 4);            CPL_LSBPTR32(&nNextGarbageBlock);            fprintf(fpOut,"  m_nNextGarbageBlock     = %d/n", nNextGarbageBlock);        }        else        {            fprintf(fpOut, "Block (type %d) size=%d bytes at offset %d in file./n",                    m_nBlockType, m_nBlockSize, m_nFileOffset);            fprintf(fpOut, "Current pointer at byte %d/n", m_nCurPos);        }    }    fflush(fpOut);}
开发者ID:ryandavid,项目名称:rotobox,代码行数:31,


示例3: readInt

static int readInt(VSILFILE* fp){    int val;    VSIFReadL( &val, 1, 4, fp );    CPL_LSBPTR32(&val);    return val;}
开发者ID:OSGeo,项目名称:gdal,代码行数:7,


示例4: readFloat

static float readFloat(VSILFILE* fp){    float val;    VSIFReadL( &val, 1, 4, fp );    CPL_LSBPTR32(&val);    return val;}
开发者ID:OSGeo,项目名称:gdal,代码行数:7,


示例5: CPLError

CPLErr GSBGRasterBand::IReadBlock( int nBlockXOff, int nBlockYOff,                                   void * pImage ){    if( nBlockYOff < 0 || nBlockYOff > nRasterYSize - 1 || nBlockXOff != 0 )        return CE_Failure;    GSBGDataset *poGDS = reinterpret_cast<GSBGDataset *>(poDS);    if( VSIFSeekL( poGDS->fp,                   GSBGDataset::nHEADER_SIZE +                        4 * static_cast<vsi_l_offset>(nRasterXSize) * (nRasterYSize - nBlockYOff - 1),                   SEEK_SET ) != 0 )    {        CPLError( CE_Failure, CPLE_FileIO,                  "Unable to seek to beginning of grid row./n" );        return CE_Failure;    }    if( VSIFReadL( pImage, sizeof(float), nBlockXSize,                   poGDS->fp ) != static_cast<unsigned>(nBlockXSize) )    {        CPLError( CE_Failure, CPLE_FileIO,                  "Unable to read block from grid file./n" );        return CE_Failure;    }#ifdef CPL_MSB    float *pfImage = (float *)pImage;    for( int iPixel=0; iPixel<nBlockXSize; iPixel++ ) {        CPL_LSBPTR32( pfImage+iPixel );    }#endif    return CE_None;}
开发者ID:ryandavid,项目名称:rotobox,代码行数:35,


示例6: CPL_LSBPTR32

int  TABRawBinBlock::WriteFloat(float fValue){#ifdef CPL_MSB    CPL_LSBPTR32(&fValue);#endif    return WriteBytes(4, (GByte*)&fValue);}
开发者ID:ryandavid,项目名称:rotobox,代码行数:8,


示例7: ReadInt

static int ReadInt(VSILFILE* fp, int bOzi3 = FALSE, int nKeyInit = 0){    int nVal;    VSIFReadL(&nVal, 1, 4, fp);    if (bOzi3) OZIDecrypt(&nVal, 4, (GByte) nKeyInit);    CPL_LSBPTR32(&nVal);    return nVal;}
开发者ID:rashadkm,项目名称:lib_gdal,代码行数:8,


示例8: CPL_LSBPTR32

int  TABRawBinBlock::WriteFloat(float fValue){#ifdef CPL_MSB    CPL_LSBPTR32(&fValue);#endif    return WriteBytes(4, reinterpret_cast<GByte*>(&fValue));}
开发者ID:OSGeo,项目名称:gdal,代码行数:8,


示例9: CPL_LSBPTR32

bool TerragenDataset::get(float& value){    if(1 == VSIFReadL(&value, sizeof(value), 1, m_fp))    {        CPL_LSBPTR32(&value);        return true;    }    return false;}
开发者ID:brunosimoes,项目名称:WorldWind,代码行数:9,


示例10: ReadBytes

float   TABRawBinBlock::ReadFloat(){    float fValue = 0.0f;    ReadBytes(4, (GByte*)(&fValue));#ifdef CPL_MSB    CPL_LSBPTR32(&fValue);#endif    return fValue;}
开发者ID:ryandavid,项目名称:rotobox,代码行数:11,


示例11: ReadBytes

float   TABRawBinBlock::ReadFloat(){    float fValue = 0.0f;    ReadBytes(4, reinterpret_cast<GByte*>(&fValue));#ifdef CPL_MSB    CPL_LSBPTR32(&fValue);#endif    return fValue;}
开发者ID:OSGeo,项目名称:gdal,代码行数:11,


示例12: Binary2WkbGeom

OGRErr Binary2WkbGeom(unsigned char *p, WKBGeometry* geom, int nBytes){    GUInt32 i;    if( nBytes < 28 )    {        CPLError(CE_Failure, CPLE_AppDefined,                 "WalkGeom binary size (%d) too small",                 nBytes);        return OGRERR_FAILURE;    }    memcpy(&geom->wkbType, p, 4);    CPL_LSBPTR32( &geom->wkbType );    switch(geom->wkbType)    {    case wkbPoint:    case wkbLineString:    case wkbPolygon:    case wkbMultiPoint:    case wkbMultiLineString:    case wkbMultiPolygon:        return Binary2WkbMGeom(p, geom, nBytes);    case wkbGeometryCollection:        p += 4;        memcpy(&geom->mgeometries.num_wkbSGeometries, p, 4);        CPL_LSBPTR32( &geom->mgeometries.num_wkbSGeometries );        p += 4;        geom->mgeometries.WKBGeometries =            new WKBSimpleGeometry[geom->mgeometries.num_wkbSGeometries];        for(i = 0; i < geom->mgeometries.num_wkbSGeometries; i++)            Binary2WkbMGeom(p, (WKBGeometry*)(&geom->mgeometries.WKBGeometries[i]), nBytes-8);        break;    default:        geom->wkbType=wkbUnknown;        return OGRERR_FAILURE;    }    return OGRERR_NONE;}
开发者ID:garnertb,项目名称:gdal,代码行数:41,


示例13: OGRSpatialReference

OGRIdrisiLayer::OGRIdrisiLayer( const char* pszFilename,                                const char* pszLayerName,                                VSILFILE* fp,                                OGRwkbGeometryType eGeomType,                                const char* pszWTKString ){    this->fp = fp;    this->eGeomType = eGeomType;    nNextFID = 1;    bEOF = FALSE;    fpAVL = NULL;    if (pszWTKString)    {        poSRS = new OGRSpatialReference();        char* pszTmp = (char*)pszWTKString;        poSRS->importFromWkt(&pszTmp);    }    else        poSRS = NULL;    poFeatureDefn = new OGRFeatureDefn( pszLayerName );    SetDescription( poFeatureDefn->GetName() );    poFeatureDefn->Reference();    poFeatureDefn->GetGeomFieldDefn(0)->SetSpatialRef(poSRS);    poFeatureDefn->SetGeomType( eGeomType );    OGRFieldDefn oFieldDefn("id", OFTReal);    poFeatureDefn->AddFieldDefn( &oFieldDefn );    bExtentValid = FALSE;    dfMinX = dfMinY = dfMaxX = dfMaxY = 0.0;    VSIFSeekL( fp, 1, SEEK_SET );    if (VSIFReadL( &nTotalFeatures, sizeof(unsigned int), 1, fp ) != 1)        nTotalFeatures = 0;    CPL_LSBPTR32(&nTotalFeatures);    if (nTotalFeatures != 0)    {        if (!Detect_AVL_ADC(pszFilename))        {            if( fpAVL != NULL )                VSIFCloseL( fpAVL );            fpAVL = NULL;        }    }    ResetReading();}
开发者ID:rashadkm,项目名称:lib_gdal,代码行数:51,


示例14: CPL_LSBPTR32

bool LevellerDataset::get(int& n, VSILFILE* fp, const char* psz){    vsi_l_offset offset;    size_t		 len;    if(this->locate_data(offset, len, fp, psz))    {        GInt32 value;        if(1 == VSIFReadL(&value, sizeof(value), 1, fp))        {            CPL_LSBPTR32(&value);            n = (int)value;            return true;        }    }	    return false;}
开发者ID:Mofangbao,项目名称:node-gdal,代码行数:17,


示例15: if

CPLErr BTRasterBand::SetUnitType(const char* psz){    BTDataset& ds = *(BTDataset*)poDS;    if(EQUAL(psz, "m"))        ds.m_fVscale = 1.0f;    else if(EQUAL(psz, "ft"))        ds.m_fVscale = 0.3048f;    else if(EQUAL(psz, "sft"))        ds.m_fVscale = 1200.0f / 3937.0f;    else        return CE_Failure;    float fScale = ds.m_fVscale;    CPL_LSBPTR32(&fScale);    // Update header's elevation scale field.    memcpy(ds.abyHeader + 62, &fScale, sizeof(fScale));    ds.bHeaderModified = TRUE;    return CE_None;}
开发者ID:Mavrx-inc,项目名称:gdal,代码行数:22,


示例16: LOSLASDataset

GDALDataset *LOSLASDataset::Open( GDALOpenInfo * poOpenInfo ){    if( !Identify( poOpenInfo ) )        return NULL;/* -------------------------------------------------------------------- *//*      Create a corresponding GDALDataset.                             *//* -------------------------------------------------------------------- */    LOSLASDataset *poDS = new LOSLASDataset();/* -------------------------------------------------------------------- *//*      Open the file.                                                  *//* -------------------------------------------------------------------- */    poDS->fpImage = VSIFOpenL( poOpenInfo->pszFilename, "rb" );    if( poDS->fpImage == NULL )    {        delete poDS;        return NULL;    }/* -------------------------------------------------------------------- *//*      Read the header.                                                *//* -------------------------------------------------------------------- */    CPL_IGNORE_RET_VAL(VSIFSeekL( poDS->fpImage, 64, SEEK_SET ));    CPL_IGNORE_RET_VAL(VSIFReadL( &(poDS->nRasterXSize), 4, 1, poDS->fpImage ));    CPL_IGNORE_RET_VAL(VSIFReadL( &(poDS->nRasterYSize), 4, 1, poDS->fpImage ));    CPL_LSBPTR32( &(poDS->nRasterXSize) );    CPL_LSBPTR32( &(poDS->nRasterYSize) );    if (!GDALCheckDatasetDimensions(poDS->nRasterXSize, poDS->nRasterYSize))    {        delete poDS;        return NULL;    }    CPL_IGNORE_RET_VAL(VSIFSeekL( poDS->fpImage, 76, SEEK_SET ));    float min_lon, min_lat, delta_lon, delta_lat;    CPL_IGNORE_RET_VAL(VSIFReadL( &min_lon, 4, 1, poDS->fpImage ));    CPL_IGNORE_RET_VAL(VSIFReadL( &delta_lon, 4, 1, poDS->fpImage ));    CPL_IGNORE_RET_VAL(VSIFReadL( &min_lat, 4, 1, poDS->fpImage ));    CPL_IGNORE_RET_VAL(VSIFReadL( &delta_lat, 4, 1, poDS->fpImage ));    CPL_LSBPTR32( &min_lon );    CPL_LSBPTR32( &delta_lon );    CPL_LSBPTR32( &min_lat );    CPL_LSBPTR32( &delta_lat );    poDS->nRecordLength = poDS->nRasterXSize * 4 + 4;/* -------------------------------------------------------------------- *//*      Create band information object.                                 *//*                                                                      *//*      Note we are setting up to read from the last image record to    *//*      the first since the data comes with the southern most record    *//*      first, not the northernmost like we would want.                 *//* -------------------------------------------------------------------- */    poDS->SetBand(        1, new RawRasterBand( poDS, 1, poDS->fpImage,                              poDS->nRasterYSize * poDS->nRecordLength + 4,                              4, -1 * poDS->nRecordLength,                              GDT_Float32,                              CPL_IS_LSB, TRUE, FALSE ) );/* -------------------------------------------------------------------- *//*      Setup georeferencing.                                           *//* -------------------------------------------------------------------- */    poDS->adfGeoTransform[0] = min_lon - delta_lon*0.5;    poDS->adfGeoTransform[1] = delta_lon;    poDS->adfGeoTransform[2] = 0.0;    poDS->adfGeoTransform[3] = min_lat + (poDS->nRasterYSize-0.5) * delta_lat;    poDS->adfGeoTransform[4] = 0.0;    poDS->adfGeoTransform[5] = -1 * delta_lat;/* -------------------------------------------------------------------- *//*      Initialize any PAM information.                                 *//* -------------------------------------------------------------------- */    poDS->SetDescription( poOpenInfo->pszFilename );    poDS->TryLoadXML();/* -------------------------------------------------------------------- *//*      Check for overviews.                                            *//* -------------------------------------------------------------------- */    poDS->oOvManager.Initialize( poDS, poOpenInfo->pszFilename );    return( poDS );}
开发者ID:bbradbury,项目名称:lib_gdal,代码行数:92,


示例17: while

OGRFeature *OGRIdrisiLayer::GetNextRawFeature(){    while(TRUE)    {        if (eGeomType == wkbPoint)        {            double dfId;            double dfX, dfY;            if (VSIFReadL(&dfId, sizeof(double), 1, fp) != 1 ||                VSIFReadL(&dfX, sizeof(double), 1, fp) != 1 ||                VSIFReadL(&dfY, sizeof(double), 1, fp) != 1)            {                return NULL;            }            CPL_LSBPTR64(&dfId);            CPL_LSBPTR64(&dfX);            CPL_LSBPTR64(&dfY);            if (m_poFilterGeom != NULL &&                (dfX < m_sFilterEnvelope.MinX ||                 dfX > m_sFilterEnvelope.MaxX ||                 dfY < m_sFilterEnvelope.MinY ||                 dfY > m_sFilterEnvelope.MaxY))            {                nNextFID ++;                continue;            }            OGRPoint* poGeom = new OGRPoint(dfX, dfY);            if (poSRS)                poGeom->assignSpatialReference(poSRS);            OGRFeature* poFeature = new OGRFeature(poFeatureDefn);            poFeature->SetField(0, dfId);            poFeature->SetFID(nNextFID ++);            poFeature->SetGeometryDirectly(poGeom);            ReadAVLLine(poFeature);            return poFeature;        }        else if (eGeomType == wkbLineString)        {            double dfId;            double dfMinXShape, dfMaxXShape, dfMinYShape, dfMaxYShape;            unsigned int nNodes;            if (VSIFReadL(&dfId, sizeof(double), 1, fp) != 1 ||                VSIFReadL(&dfMinXShape, sizeof(double), 1, fp) != 1 ||                VSIFReadL(&dfMaxXShape, sizeof(double), 1, fp) != 1 ||                VSIFReadL(&dfMinYShape, sizeof(double), 1, fp) != 1 ||                VSIFReadL(&dfMaxYShape, sizeof(double), 1, fp) != 1)            {                return NULL;            }            CPL_LSBPTR64(&dfId);            CPL_LSBPTR64(&dfMinXShape);            CPL_LSBPTR64(&dfMaxXShape);            CPL_LSBPTR64(&dfMinYShape);            CPL_LSBPTR64(&dfMaxYShape);            if (VSIFReadL(&nNodes, sizeof(unsigned int), 1, fp) != 1)            {                return NULL;            }            CPL_LSBPTR32(&nNodes);            if (nNodes > 100 * 1000 * 1000)                return NULL;            if (m_poFilterGeom != NULL &&                (dfMaxXShape < m_sFilterEnvelope.MinX ||                 dfMinXShape > m_sFilterEnvelope.MaxX ||                 dfMaxYShape < m_sFilterEnvelope.MinY ||                 dfMinYShape > m_sFilterEnvelope.MaxY))            {                nNextFID ++;                VSIFSeekL(fp, sizeof(OGRRawPoint) * nNodes, SEEK_CUR);                continue;            }            OGRRawPoint* poRawPoints = (OGRRawPoint*)VSIMalloc2(sizeof(OGRRawPoint), nNodes);            if (poRawPoints == NULL)            {                return NULL;            }            if ((unsigned int)VSIFReadL(poRawPoints, sizeof(OGRRawPoint), nNodes, fp) != nNodes)            {                VSIFree(poRawPoints);                return NULL;            }#if defined(CPL_MSB)            for(unsigned int iNode=0; iNode<nNodes; iNode++)            {                CPL_LSBPTR64(&poRawPoints[iNode].x);                CPL_LSBPTR64(&poRawPoints[iNode].y);            }#endif            OGRLineString* poGeom = new OGRLineString();            poGeom->setPoints(nNodes, poRawPoints, NULL);//.........这里部分代码省略.........
开发者ID:rashadkm,项目名称:lib_gdal,代码行数:101,


示例18: appendInt

void appendInt(void* pBuffer, int val){    CPL_LSBPTR32(&val);    memcpy(pBuffer, &val, 4);}
开发者ID:OSGeo,项目名称:gdal,代码行数:5,


示例19: WriteInt

static void WriteInt(VSILFILE* fp, GInt32 val){    CPL_LSBPTR32(&val);    VSIFWriteL(&val, 4, 1, fp);}
开发者ID:MattLatt,项目名称:GDAL_2.0.x_VC,代码行数:5,


示例20: WriteFloat

static void WriteFloat(VSILFILE* fp, float val){    CPL_LSBPTR32(&val);    VSIFWriteL(&val, 4, 1, fp);}
开发者ID:MattLatt,项目名称:GDAL_2.0.x_VC,代码行数:5,


示例21: sizeof

CPLErr HF2RasterBand::IReadBlock( int nBlockXOff, int nLineYOff,                                  void * pImage ){    HF2Dataset *poGDS = (HF2Dataset *) poDS;    int nXBlocks = (nRasterXSize + nBlockXSize - 1) / nBlockXSize;    int nYBlocks = (nRasterYSize + nBlockXSize - 1) / nBlockXSize;        if (!poGDS->LoadBlockMap())        return CE_Failure;        if (pafBlockData == NULL)    {        pafBlockData = (float*)VSIMalloc3(nXBlocks * sizeof(float), poGDS->nTileSize, poGDS->nTileSize);        if (pafBlockData == NULL)            return CE_Failure;    }        nLineYOff = nRasterYSize - 1 - nLineYOff;    int nBlockYOff = nLineYOff / nBlockXSize;    int nYOffInTile = nLineYOff % nBlockXSize;    if (nBlockYOff != nLastBlockYOff)    {        nLastBlockYOff = nBlockYOff;        memset(pafBlockData, 0, nXBlocks * sizeof(float) * nBlockXSize * nBlockXSize);        /* 4 * nBlockXSize is the upper bound */        void* pabyData = CPLMalloc( 4 * nBlockXSize );        int nxoff;        for(nxoff = 0; nxoff < nXBlocks; nxoff++)        {            VSIFSeekL(poGDS->fp, poGDS->panBlockOffset[(nYBlocks - 1 - nBlockYOff) * nXBlocks + nxoff], SEEK_SET);            float fScale, fOff;            VSIFReadL(&fScale, 4, 1, poGDS->fp);            VSIFReadL(&fOff, 4, 1, poGDS->fp);            CPL_LSBPTR32(&fScale);            CPL_LSBPTR32(&fOff);                int nTileWidth = MIN(nBlockXSize, nRasterXSize - nxoff * nBlockXSize);            int nTileHeight = MIN(nBlockXSize, nRasterYSize - nBlockYOff * nBlockXSize);                        int j;            for(j=0;j<nTileHeight;j++)            {                GByte nWordSize;                VSIFReadL(&nWordSize, 1, 1, poGDS->fp);                if (nWordSize != 1 && nWordSize != 2 && nWordSize != 4)                {                    CPLError(CE_Failure, CPLE_AppDefined,                             "Unexpected word size : %d", (int)nWordSize);                    break;                }                GInt32 nVal;                VSIFReadL(&nVal, 4, 1, poGDS->fp);                CPL_LSBPTR32(&nVal);                VSIFReadL(pabyData, nWordSize * (nTileWidth - 1), 1, poGDS->fp);#if defined(CPL_MSB)                if (nWordSize > 1)                    GDALSwapWords(pabyData, nWordSize, nTileWidth - 1, nWordSize);#endif                pafBlockData[nxoff * nBlockXSize * nBlockXSize + j * nBlockXSize + 0] = nVal * fScale + fOff;                int i;                for(i=1;i<nTileWidth;i++)                {                    if (nWordSize == 1)                        nVal += ((signed char*)pabyData)[i-1];                    else if (nWordSize == 2)                        nVal += ((GInt16*)pabyData)[i-1];                    else                        nVal += ((GInt32*)pabyData)[i-1];                    pafBlockData[nxoff * nBlockXSize * nBlockXSize + j * nBlockXSize + i] = nVal * fScale + fOff;                }            }        }        CPLFree(pabyData);    }    int nTileWidth = MIN(nBlockXSize, nRasterXSize - nBlockXOff * nBlockXSize);    memcpy(pImage, pafBlockData + nBlockXOff * nBlockXSize * nBlockXSize +                                  nYOffInTile * nBlockXSize,           nTileWidth * sizeof(float));    return CE_None;}
开发者ID:MattLatt,项目名称:GDAL_2.0.x_VC,代码行数:92,


示例22: osOriginalFilename

GDALDataset *HF2Dataset::Open( GDALOpenInfo * poOpenInfo ){    CPLString osOriginalFilename(poOpenInfo->pszFilename);    if (!Identify(poOpenInfo))        return NULL;    GDALOpenInfo* poOpenInfoToDelete = NULL;    /*  GZipped .hf2 files are common, so automagically open them */    /*  if the /vsigzip/ has not been explicitly passed */    CPLString osFilename(poOpenInfo->pszFilename);    if ((EQUAL(CPLGetExtension(poOpenInfo->pszFilename), "hfz") ||        (strlen(poOpenInfo->pszFilename) > 6 &&         EQUAL(poOpenInfo->pszFilename + strlen(poOpenInfo->pszFilename) - 6, "hf2.gz"))) &&         !EQUALN(poOpenInfo->pszFilename, "/vsigzip/", 9))    {        osFilename = "/vsigzip/";        osFilename += poOpenInfo->pszFilename;        poOpenInfo = poOpenInfoToDelete =                new GDALOpenInfo(osFilename.c_str(), GA_ReadOnly,                                 poOpenInfo->GetSiblingFiles());    }/* -------------------------------------------------------------------- *//*      Parse header                                                    *//* -------------------------------------------------------------------- */    int nXSize, nYSize;    memcpy(&nXSize, poOpenInfo->pabyHeader + 6, 4);    CPL_LSBPTR32(&nXSize);    memcpy(&nYSize, poOpenInfo->pabyHeader + 10, 4);    CPL_LSBPTR32(&nYSize);    GUInt16 nTileSize;    memcpy(&nTileSize, poOpenInfo->pabyHeader + 14, 2);    CPL_LSBPTR16(&nTileSize);    float fVertPres, fHorizScale;    memcpy(&fVertPres, poOpenInfo->pabyHeader + 16, 4);    CPL_LSBPTR32(&fVertPres);    memcpy(&fHorizScale, poOpenInfo->pabyHeader + 20, 4);    CPL_LSBPTR32(&fHorizScale);    GUInt32 nExtendedHeaderLen;    memcpy(&nExtendedHeaderLen, poOpenInfo->pabyHeader + 24, 4);    CPL_LSBPTR32(&nExtendedHeaderLen);    delete poOpenInfoToDelete;    poOpenInfoToDelete = NULL;    if (nTileSize < 8)        return NULL;    if (nXSize <= 0 || nXSize > INT_MAX - nTileSize ||        nYSize <= 0 || nYSize > INT_MAX - nTileSize)        return NULL;    /* To avoid later potential int overflows */    if (nExtendedHeaderLen > 1024 * 65536)        return NULL;    if (!GDALCheckDatasetDimensions(nXSize, nYSize))    {        return NULL;    }/* -------------------------------------------------------------------- *//*      Parse extended blocks                                           *//* -------------------------------------------------------------------- */    VSILFILE* fp = VSIFOpenL(osFilename.c_str(), "rb");    if (fp == NULL)        return NULL;    VSIFSeekL(fp, 28, SEEK_SET);    int bHasExtent = FALSE;    double dfMinX = 0, dfMaxX = 0, dfMinY = 0, dfMaxY = 0;    int bHasUTMZone = FALSE;    GInt16 nUTMZone = 0;    int bHasEPSGDatumCode = FALSE;    GInt16 nEPSGDatumCode = 0;    int bHasEPSGCode = FALSE;    GInt16 nEPSGCode = 0;    int bHasRelativePrecision = FALSE;    float fRelativePrecision = 0;    char szApplicationName[256];    szApplicationName[0] = 0;    GUInt32 nExtendedHeaderOff = 0;    while(nExtendedHeaderOff < nExtendedHeaderLen)    {        char pabyBlockHeader[24];        VSIFReadL(pabyBlockHeader, 24, 1, fp);        char szBlockName[16 + 1];        memcpy(szBlockName, pabyBlockHeader + 4, 16);        szBlockName[16] = 0;        GUInt32 nBlockSize;        memcpy(&nBlockSize, pabyBlockHeader + 20, 4);        CPL_LSBPTR32(&nBlockSize);//.........这里部分代码省略.........
开发者ID:MattLatt,项目名称:GDAL_2.0.x_VC,代码行数:101,


示例23: GS7BGDataset

GDALDataset *GS7BGDataset::Open( GDALOpenInfo * poOpenInfo ){    if( !Identify(poOpenInfo) )    {        return NULL;    }    /* ------------------------------------------------------------------- */    /*      Create a corresponding GDALDataset.                            */    /* ------------------------------------------------------------------- */    GS7BGDataset    *poDS = new GS7BGDataset();    /* ------------------------------------------------------------------- */    /*      Open file with large file API.                                 */    /* ------------------------------------------------------------------- */    poDS->eAccess = poOpenInfo->eAccess;    if( poOpenInfo->eAccess == GA_ReadOnly )        poDS->fp = VSIFOpenL( poOpenInfo->pszFilename, "rb" );    else        poDS->fp = VSIFOpenL( poOpenInfo->pszFilename, "r+b" );    if( poDS->fp == NULL )    {        delete poDS;        CPLError( CE_Failure, CPLE_OpenFailed,            "VSIFOpenL(%s) failed unexpectedly.",            poOpenInfo->pszFilename );        return NULL;    }    /* ------------------------------------------------------------------- */    /*      Read the header. The Header section must be the first section  */    /*      in the file.                                                   */    /* ------------------------------------------------------------------- */    if( VSIFSeekL( poDS->fp, 0, SEEK_SET ) != 0 )    {        delete poDS;        CPLError( CE_Failure, CPLE_FileIO,                "Unable to seek to start of grid file header./n" );        return NULL;    }    GInt32 nTag;    if( VSIFReadL( (void *)&nTag, sizeof(GInt32), 1, poDS->fp ) != 1 )    {        delete poDS;        CPLError( CE_Failure, CPLE_FileIO, "Unable to read Tag./n" );        return NULL;    }    CPL_LSBPTR32( &nTag );    if(nTag != nHEADER_TAG)    {        delete poDS;        CPLError( CE_Failure, CPLE_FileIO, "Header tag not found./n" );        return NULL;    }    GUInt32 nSize;    if( VSIFReadL( (void *)&nSize, sizeof(GUInt32), 1, poDS->fp ) != 1 )    {        delete poDS;        CPLError( CE_Failure, CPLE_FileIO,            "Unable to read file section size./n" );        return NULL;    }    CPL_LSBPTR32( &nSize );    GInt32 nVersion;    if( VSIFReadL( (void *)&nVersion, sizeof(GInt32), 1, poDS->fp ) != 1 )    {        delete poDS;        CPLError( CE_Failure, CPLE_FileIO,            "Unable to read file version./n" );        return NULL;    }    CPL_LSBPTR32( &nVersion );    if(nVersion != 1 && nVersion != 2)    {        delete poDS;        CPLError( CE_Failure, CPLE_FileIO,                  "Incorrect file version (%d).", nVersion );        return NULL;    }    // advance until the grid tag is found    while(nTag != nGRID_TAG)    {        if( VSIFReadL( (void *)&nTag, sizeof(GInt32), 1, poDS->fp ) != 1 )        {            delete poDS;            CPLError( CE_Failure, CPLE_FileIO, "Unable to read Tag./n" );            return NULL;        }//.........这里部分代码省略.........
开发者ID:bbradbury,项目名称:lib_gdal,代码行数:101,


示例24: CPL_LSBWORD32

GDALDataset *GSCDataset::Open( GDALOpenInfo * poOpenInfo ){    int		nPixels, nLines, i, nRecordLen;/* -------------------------------------------------------------------- *//*      Does this plausible look like a GSC Geogrid file?               *//* -------------------------------------------------------------------- */    if( poOpenInfo->nHeaderBytes < 20 )        return NULL;    if( poOpenInfo->pabyHeader[12] != 0x02        || poOpenInfo->pabyHeader[13] != 0x00        || poOpenInfo->pabyHeader[14] != 0x00        || poOpenInfo->pabyHeader[15] != 0x00 )        return NULL;    nRecordLen = CPL_LSBWORD32(((GInt32 *) poOpenInfo->pabyHeader)[0]);    nPixels = CPL_LSBWORD32(((GInt32 *) poOpenInfo->pabyHeader)[1]);    nLines  = CPL_LSBWORD32(((GInt32 *) poOpenInfo->pabyHeader)[2]);    if( nPixels < 1 || nLines < 1 || nPixels > 100000 || nLines > 100000 )        return NULL;    if( nRecordLen != nPixels * 4 )        return NULL;        /* -------------------------------------------------------------------- *//*      Confirm the requested access is supported.                      *//* -------------------------------------------------------------------- */    if( poOpenInfo->eAccess == GA_Update )    {        CPLError( CE_Failure, CPLE_NotSupported,                   "The GSC driver does not support update access to existing"                  " datasets./n" );        return NULL;    }        nRecordLen += 8; /* for record length markers *//* -------------------------------------------------------------------- *//*      Create a corresponding GDALDataset.                             *//* -------------------------------------------------------------------- */    GSCDataset 	*poDS;    poDS = new GSCDataset();    poDS->nRasterXSize = nPixels;    poDS->nRasterYSize = nLines;/* -------------------------------------------------------------------- *//*      Assume ownership of the file handled from the GDALOpenInfo.     *//* -------------------------------------------------------------------- */    poDS->fpImage = VSIFOpenL(poOpenInfo->pszFilename, "rb");    if (poDS->fpImage == NULL)    {        delete poDS;        return NULL;    }/* -------------------------------------------------------------------- *//*      Read the header information in the second record. 		*//* -------------------------------------------------------------------- */    float	afHeaderInfo[8];    if( VSIFSeekL( poDS->fpImage, nRecordLen + 12, SEEK_SET ) != 0        || VSIFReadL( afHeaderInfo, sizeof(float), 8, poDS->fpImage ) != 8 )    {        CPLError( CE_Failure, CPLE_FileIO,                   "Failure reading second record of GSC file with %d record length.",                  nRecordLen );        delete poDS;        return NULL;    }    for( i = 0; i < 8; i++ )    {        CPL_LSBPTR32( afHeaderInfo + i );    }    poDS->adfGeoTransform[0] = afHeaderInfo[2];    poDS->adfGeoTransform[1] = afHeaderInfo[0];    poDS->adfGeoTransform[2] = 0.0;    poDS->adfGeoTransform[3] = afHeaderInfo[5];    poDS->adfGeoTransform[4] = 0.0;    poDS->adfGeoTransform[5] = -afHeaderInfo[1];    /* -------------------------------------------------------------------- *//*      Create band information objects.                                *//* -------------------------------------------------------------------- */    RawRasterBand *poBand;#ifdef CPL_LSB    int	bNative = TRUE;#else    int bNative = FALSE;#endif    poBand = new RawRasterBand( poDS, 1, poDS->fpImage,                                nRecordLen * 2 + 4,                                sizeof(float), nRecordLen,//.........这里部分代码省略.........
开发者ID:AsherBond,项目名称:MondocosmOS,代码行数:101,


示例25: OGRCreateFromGeomedia

OGRErr OGRCreateFromGeomedia( GByte *pabyGeom,                              OGRGeometry **ppoGeom,                              int nBytes ){    *ppoGeom = NULL;    if( nBytes < 16 )        return OGRERR_FAILURE;    if( !(pabyGeom[1] == 0xFF && pabyGeom[2] == 0xD2 && pabyGeom[3] == 0x0F) )        return OGRERR_FAILURE;    int nGeomType = pabyGeom[0];    pabyGeom += 16;    nBytes -= 16;    if( nGeomType == GEOMEDIA_POINT ||        nGeomType == GEOMEDIA_ORIENTED_POINT )    {        if (nBytes < 3 * 8)            return OGRERR_FAILURE;        double dfX, dfY, dfZ;        memcpy(&dfX, pabyGeom, 8);        CPL_LSBPTR64(&dfX);        memcpy(&dfY, pabyGeom + 8, 8);        CPL_LSBPTR64(&dfY);        memcpy(&dfZ, pabyGeom + 16, 8);        CPL_LSBPTR64(&dfZ);        *ppoGeom = new OGRPoint( dfX, dfY, dfZ );         return OGRERR_NONE;    }    else if ( nGeomType == GEOMEDIA_POLYLINE )    {        if (nBytes < 4)            return OGRERR_FAILURE;        int nPoints;        memcpy(&nPoints, pabyGeom, 4);        CPL_LSBPTR32(&nPoints);        pabyGeom += 4;        nBytes -= 4;        if (nPoints < 0 || nPoints > INT_MAX / 24 || nBytes < nPoints * 24)            return OGRERR_FAILURE;        OGRLineString* poLS = new OGRLineString();        poLS->setNumPoints(nPoints);        int i;        for(i=0;i<nPoints;i++)        {            double dfX, dfY, dfZ;            memcpy(&dfX, pabyGeom, 8);            CPL_LSBPTR64(&dfX);            memcpy(&dfY, pabyGeom + 8, 8);            CPL_LSBPTR64(&dfY);            memcpy(&dfZ, pabyGeom + 16, 8);            CPL_LSBPTR64(&dfZ);            poLS->setPoint(i, dfX, dfY, dfZ);            pabyGeom += 24;        }        *ppoGeom = poLS;        return OGRERR_NONE;    }    else if ( nGeomType == GEOMEDIA_POLYGON )    {        if (nBytes < 4)            return OGRERR_FAILURE;        int nPoints;        memcpy(&nPoints, pabyGeom, 4);        CPL_LSBPTR32(&nPoints);        pabyGeom += 4;        nBytes -= 4;        if (nPoints < 0 || nPoints > INT_MAX / 24 || nBytes < nPoints * 24)            return OGRERR_FAILURE;        OGRLinearRing* poRing = new OGRLinearRing();        poRing->setNumPoints(nPoints);        int i;        for(i=0;i<nPoints;i++)        {            double dfX, dfY, dfZ;            memcpy(&dfX, pabyGeom, 8);            CPL_LSBPTR64(&dfX);            memcpy(&dfY, pabyGeom + 8, 8);            CPL_LSBPTR64(&dfY);            memcpy(&dfZ, pabyGeom + 16, 8);            CPL_LSBPTR64(&dfZ);//.........这里部分代码省略.........
开发者ID:0004c,项目名称:node-gdal,代码行数:101,


示例26: CPLError

GDALDataset *BTDataset::Create( const char * pszFilename,                                int nXSize,                                int nYSize,                                int nBands,                                GDALDataType eType,                                CPL_UNUSED char ** papszOptions ){/* -------------------------------------------------------------------- *//*      Verify input options.                                           *//* -------------------------------------------------------------------- */    if( eType != GDT_Int16 && eType != GDT_Int32 && eType != GDT_Float32 )    {        CPLError( CE_Failure, CPLE_AppDefined,              "Attempt to create .bt dataset with an illegal "              "data type (%s), only Int16, Int32 and Float32 supported.",              GDALGetDataTypeName(eType) );        return NULL;    }    if( nBands != 1 )    {        CPLError(            CE_Failure, CPLE_AppDefined,            "Attempt to create .bt dataset with %d bands, only 1 supported",            nBands );        return NULL;    }/* -------------------------------------------------------------------- *//*      Try to create the file.                                         *//* -------------------------------------------------------------------- */    VSILFILE *fp = VSIFOpenL( pszFilename, "wb" );    if( fp == NULL )    {        CPLError( CE_Failure, CPLE_OpenFailed,                  "Attempt to create file `%s' failed.",                  pszFilename );        return NULL;    }/* -------------------------------------------------------------------- *//*      Setup base header.                                              *//* -------------------------------------------------------------------- */    unsigned char abyHeader[256] = {};    memcpy( abyHeader, "binterr1.3", 10 );    GInt32 nTemp = CPL_LSBWORD32( nXSize );    memcpy( abyHeader+10, &nTemp, 4 );    nTemp = CPL_LSBWORD32( nYSize );    memcpy( abyHeader+14, &nTemp, 4 );    GInt16 nShortTemp = static_cast<GInt16>(         CPL_LSBWORD16( (GInt16)(GDALGetDataTypeSize( eType ) / 8 )) );    memcpy( abyHeader + 18, &nShortTemp, 2 );    if( eType == GDT_Float32 )        abyHeader[20] = 1;    else        abyHeader[20] = 0;    nShortTemp = CPL_LSBWORD16( 1 ); /* meters */    memcpy( abyHeader + 22, &nShortTemp, 2 );    nShortTemp = CPL_LSBWORD16( 0 ); /* not utm */    memcpy( abyHeader + 24, &nShortTemp, 2 );    nShortTemp = CPL_LSBWORD16( -2 ); /* datum unknown */    memcpy( abyHeader + 26, &nShortTemp, 2 );/* -------------------------------------------------------------------- *//*      Set dummy extents.                                              *//* -------------------------------------------------------------------- */    double dfLeft = 0.0;    double dfRight = nXSize;    double dfTop = nYSize;    double dfBottom = 0.0;    memcpy( abyHeader + 28, &dfLeft, 8 );    memcpy( abyHeader + 36, &dfRight, 8 );    memcpy( abyHeader + 44, &dfBottom, 8 );    memcpy( abyHeader + 52, &dfTop, 8 );    CPL_LSBPTR64( abyHeader + 28 );    CPL_LSBPTR64( abyHeader + 36 );    CPL_LSBPTR64( abyHeader + 44 );    CPL_LSBPTR64( abyHeader + 52 );/* -------------------------------------------------------------------- *//*      Set dummy scale.                                                *//* -------------------------------------------------------------------- */    float fScale = 1.0;    memcpy( abyHeader + 62, &fScale, 4 );    CPL_LSBPTR32( abyHeader + 62 );//.........这里部分代码省略.........
开发者ID:Mavrx-inc,项目名称:gdal,代码行数:101,


示例27: BTDataset

GDALDataset *BTDataset::Open( GDALOpenInfo * poOpenInfo ){/* -------------------------------------------------------------------- *//*      Verify that this is some form of binterr file.                  *//* -------------------------------------------------------------------- */    if( poOpenInfo->nHeaderBytes < 256)        return NULL;    if( !STARTS_WITH((const char *) poOpenInfo->pabyHeader, "binterr") )        return NULL;/* -------------------------------------------------------------------- *//*      Create the dataset.                                             *//* -------------------------------------------------------------------- */    BTDataset *poDS = new BTDataset();    memcpy( poDS->abyHeader, poOpenInfo->pabyHeader, 256 );/* -------------------------------------------------------------------- *//*      Get the version.                                                *//* -------------------------------------------------------------------- */    char szVersion[4] = {};    strncpy( szVersion, (char *) (poDS->abyHeader + 7), 3 );    szVersion[3] = '/0';    poDS->nVersionCode = static_cast<int>(CPLAtof(szVersion) * 10);/* -------------------------------------------------------------------- *//*      Extract core header information, being careful about the        *//*      version.                                                        *//* -------------------------------------------------------------------- */    GInt32 nIntTemp = 0;    memcpy( &nIntTemp, poDS->abyHeader + 10, 4 );    poDS->nRasterXSize = CPL_LSBWORD32( nIntTemp );    memcpy( &nIntTemp, poDS->abyHeader + 14, 4 );    poDS->nRasterYSize = CPL_LSBWORD32( nIntTemp );    if( !GDALCheckDatasetDimensions(poDS->nRasterXSize, poDS->nRasterYSize) )    {        delete poDS;        return NULL;    }    GInt16 nDataSize = 0;    memcpy( &nDataSize, poDS->abyHeader+18, 2 );    nDataSize = CPL_LSBWORD16( nDataSize );    GDALDataType eType = GDT_Unknown;    if( poDS->abyHeader[20] != 0 && nDataSize == 4 )        eType = GDT_Float32;    else if( poDS->abyHeader[20] == 0 && nDataSize == 4 )        eType = GDT_Int32;    else if( poDS->abyHeader[20] == 0 && nDataSize == 2 )        eType = GDT_Int16;    else    {        CPLError( CE_Failure, CPLE_AppDefined,                  ".bt file data type unknown, got datasize=%d.",                  nDataSize );        delete poDS;        return NULL;    }    /*        rcg, apr 7/06: read offset 62 for vert. units.        If zero, assume 1.0 as per spec.    */    memcpy( &poDS->m_fVscale, poDS->abyHeader + 62, 4 );    CPL_LSBPTR32(&poDS->m_fVscale);    if(poDS->m_fVscale == 0.0f)        poDS->m_fVscale = 1.0f;/* -------------------------------------------------------------------- *//*      Try to read a .prj file if it is indicated.                     *//* -------------------------------------------------------------------- */    OGRSpatialReference oSRS;    if( poDS->nVersionCode >= 12 && poDS->abyHeader[60] != 0 )    {        const char  *pszPrjFile = CPLResetExtension( poOpenInfo->pszFilename,                                                     "prj" );        VSILFILE *fp = VSIFOpenL( pszPrjFile, "rt" );        if( fp != NULL )        {            const int nBufMax = 10000;            char *pszBuffer = static_cast<char *>(CPLMalloc(nBufMax));            const int nBytes =                static_cast<int>(VSIFReadL( pszBuffer, 1, nBufMax-1, fp ));            CPL_IGNORE_RET_VAL(VSIFCloseL( fp ));            pszBuffer[nBytes] = '/0';            char *pszBufPtr = pszBuffer;            if( oSRS.importFromWkt( &pszBufPtr ) != OGRERR_NONE )            {//.........这里部分代码省略.........
开发者ID:Mavrx-inc,项目名称:gdal,代码行数:101,



注:本文中的CPL_LSBPTR32函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


C++ CPPAD_ASSERT_KNOWN函数代码示例
C++ CPL_IGNORE_RET_VAL函数代码示例
万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。