本文整理汇总了C++中CPL_LSBPTR32函数的典型用法代码示例。如果您正苦于以下问题:C++ CPL_LSBPTR32函数的具体用法?C++ CPL_LSBPTR32怎么用?C++ CPL_LSBPTR32使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了CPL_LSBPTR32函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的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,代码来源:hf2dataset.cpp
示例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,代码来源:mitab_rawbinblock.cpp
示例3: readInt
static int readInt(VSILFILE* fp)
{
int val;
VSIFReadL( &val, 1, 4, fp );
CPL_LSBPTR32(&val);
return val;
}
开发者ID:OSGeo,项目名称:gdal,代码行数:7,代码来源:gtm.cpp
示例4: readFloat
static float readFloat(VSILFILE* fp)
{
float val;
VSIFReadL( &val, 1, 4, fp );
CPL_LSBPTR32(&val);
return val;
}
开发者ID:OSGeo,项目名称:gdal,代码行数:7,代码来源:gtm.cpp
示例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,代码来源:gsbgdataset.cpp
示例6: CPL_LSBPTR32
int TABRawBinBlock::WriteFloat(float fValue)
{
#ifdef CPL_MSB
CPL_LSBPTR32(&fValue);
#endif
return WriteBytes(4, (GByte*)&fValue);
}
开发者ID:ryandavid,项目名称:rotobox,代码行数:8,代码来源:mitab_rawbinblock.cpp
示例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,代码来源:ozidataset.cpp
示例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,代码来源:mitab_rawbinblock.cpp
示例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,代码来源:terragendataset.cpp
示例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,代码来源:mitab_rawbinblock.cpp
示例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,代码来源:mitab_rawbinblock.cpp
示例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,代码来源:ogrwalktool.cpp
示例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,代码来源:ogridrisilayer.cpp
示例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,代码来源:levellerdataset.cpp
示例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,代码来源:btdataset.cpp
示例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,代码来源:loslasdataset.cpp
示例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,代码来源:ogridrisilayer.cpp
示例18: appendInt
void appendInt(void* pBuffer, int val)
{
CPL_LSBPTR32(&val);
memcpy(pBuffer, &val, 4);
}
开发者ID:OSGeo,项目名称:gdal,代码行数:5,代码来源:gtm.cpp
示例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,代码来源:hf2dataset.cpp
示例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,代码来源:hf2dataset.cpp
注:本文中的CPL_LSBPTR32函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论