📄 ntf.h
字号:
void ClearCGroup(); void ClearDefs(); OGRNTFLayer *apoTypeTranslation[100]; NTFRecordGrouper pfnRecordGrouper; int anIndexSize[100]; NTFRecord **apapoRecordIndex[100]; int bIndexBuilt; int bIndexNeeded; void EstablishRasterAccess(); int nRasterXSize; int nRasterYSize; int nRasterDataType; double adfGeoTransform[6]; OGRNTFRasterLayer *poRasterLayer; long *panColumnOffset; int bCacheLines; int nLineCacheSize; OGRGeometry **papoLineCache; public: NTFFileReader( OGRNTFDataSource * ); ~NTFFileReader(); int Open( const char * pszFilename = NULL ); void Close(); FILE *GetFP() { return fp; } void GetFPPos( long *pnPos, long * pnFeatureId); int SetFPPos( long nPos, long nFeatureId ); void Reset(); void SetBaseFID( long nFeatureId ); OGRGeometry *ProcessGeometry( NTFRecord *, int * = NULL ); OGRGeometry *ProcessGeometry3D( NTFRecord *, int * = NULL ); int ProcessAttDesc( NTFRecord *, NTFAttDesc * ); int ProcessAttRec( NTFRecord *, int *, char ***, char ***); int ProcessAttRecGroup( NTFRecord **, char ***, char ***); NTFAttDesc *GetAttDesc( const char * ); void ApplyAttributeValues( OGRFeature *, NTFRecord **, ... ); int ApplyAttributeValue( OGRFeature *, int, const char *, char **, char ** ); int ProcessAttValue( const char *pszValType, const char *pszRawValue, char **ppszAttName, char **ppszAttValue, char **ppszCodeDesc ); int TestForLayer( OGRNTFLayer * ); OGRFeature *ReadOGRFeature( OGRNTFLayer * = NULL ); NTFRecord **ReadRecordGroup(); NTFRecord *ReadRecord(); void SaveRecord( NTFRecord * ); void DumpReadable( FILE * ); int GetXYLen() { return nCoordWidth; } double GetXYMult() { return dfXYMult; } double GetXOrigin() { return dfXOrigin; } double GetYOrigin() { return dfYOrigin; } double GetZMult() { return dfZMult; } const char *GetTileName() { return pszTileName; } const char *GetFilename() { return pszFilename; } int GetNTFLevel() { return nNTFLevel; } const char *GetProduct() { return pszProduct; } const char *GetPVName() { return pszPVName; } int GetProductId() { return nProduct; } double GetScale() { return dfScale; } double GetPaperToGround() { return dfPaperToGround; } int GetFCCount() { return nFCCount; } int GetFeatureClass( int, char **, char ** ); void OverrideTileName( const char * ); // Generic file index void IndexFile(); void FreshenIndex(); void DestroyIndex(); NTFRecord *GetIndexedRecord( int, int ); NTFRecord **GetNextIndexedRecordGroup( NTFRecord ** ); // Line geometry cache OGRGeometry *CacheGetByGeomId( int ); void CacheAddByGeomId( int, OGRGeometry * ); void CacheClean(); void CacheLineGeometryInGroup( NTFRecord ** ); int FormPolygonFromCache( OGRFeature * ); // just for use of OGRNTFDatasource void EstablishLayer( const char *, OGRwkbGeometryType, NTFFeatureTranslator, int, NTFGenericClass *, ... ); // Raster related int IsRasterProduct(); int GetRasterXSize() { return nRasterXSize; } int GetRasterYSize() { return nRasterYSize; } int GetRasterDataType() { return nRasterDataType; } double *GetGeoTransform() { return adfGeoTransform; } CPLErr ReadRasterColumn( int, float * ); };/************************************************************************//* OGRNTFLayer *//************************************************************************/class OGRNTFLayer : public OGRLayer{ OGRFeatureDefn *poFeatureDefn; NTFFeatureTranslator pfnTranslator; OGRNTFDataSource *poDS; int iCurrentReader; long nCurrentPos; long nCurrentFID; public: OGRNTFLayer( OGRNTFDataSource * poDS, OGRFeatureDefn * poFeatureDefine, NTFFeatureTranslator pfnTranslator ); ~OGRNTFLayer(); void ResetReading(); OGRFeature * GetNextFeature();#ifdef notdef OGRFeature *GetFeature( long nFeatureId ); OGRErr SetFeature( OGRFeature *poFeature ); OGRErr CreateFeature( OGRFeature *poFeature );#endif OGRFeatureDefn * GetLayerDefn() { return poFeatureDefn; }#ifdef notdef int GetFeatureCount( int );#endif int TestCapability( const char * ); virtual OGRSpatialReference *GetSpatialRef(); // special to NTF OGRFeature *FeatureTranslate( NTFFileReader *, NTFRecord ** );};/************************************************************************//* OGRNTFFeatureClassLayer *//************************************************************************/class OGRNTFFeatureClassLayer : public OGRLayer{ OGRFeatureDefn *poFeatureDefn; OGRGeometry *poFilterGeom; OGRNTFDataSource *poDS; int iCurrentFC; public: OGRNTFFeatureClassLayer( OGRNTFDataSource * poDS ); ~OGRNTFFeatureClassLayer(); OGRGeometry * GetSpatialFilter() { return poFilterGeom; } void SetSpatialFilter( OGRGeometry * ); void ResetReading(); OGRFeature * GetNextFeature(); OGRFeature *GetFeature( long nFeatureId ); OGRFeatureDefn * GetLayerDefn() { return poFeatureDefn; } int GetFeatureCount( int = TRUE ); int TestCapability( const char * );};/************************************************************************//* OGRNTFRasterLayer *//************************************************************************/class OGRNTFRasterLayer : public OGRLayer{ OGRFeatureDefn *poFeatureDefn; OGRGeometry *poFilterGeom; OGRNTFDataSource *poDS; NTFFileReader *poReader; float *pafColumn; int iColumnOffset; int iCurrentFC; int nDEMSample; int nFeatureCount; public: OGRNTFRasterLayer( OGRNTFDataSource * poDS, NTFFileReader * poReaderIn ); ~OGRNTFRasterLayer(); OGRGeometry * GetSpatialFilter() { return poFilterGeom; } void SetSpatialFilter( OGRGeometry * ); void ResetReading(); OGRFeature * GetNextFeature(); OGRFeature *GetFeature( long nFeatureId ); OGRFeatureDefn * GetLayerDefn() { return poFeatureDefn; } int GetFeatureCount( int = TRUE ); virtual OGRSpatialReference *GetSpatialRef(); int TestCapability( const char * );};/************************************************************************//* OGRNTFDataSource *//************************************************************************/class OGRNTFDataSource : public OGRDataSource{ char *pszName; int nLayers; OGRLayer **papoLayers; OGRNTFFeatureClassLayer *poFCLayer; int iCurrentFC; int iCurrentReader; long nCurrentPos; long nCurrentFID; int nNTFFileCount; NTFFileReader **papoNTFFileReader; int nFCCount; char **papszFCNum; char **papszFCName; OGRSpatialReference *poSpatialRef; NTFGenericClass aoGenericClass[100]; char **papszOptions; void EnsureTileNameUnique( NTFFileReader * ); public: OGRNTFDataSource(); ~OGRNTFDataSource(); void SetOptionList( char ** ); const char *GetOption( const char * ); int Open( const char * pszName, int bTestOpen = FALSE, char ** papszFileList = NULL ); const char *GetName() { return pszName; } int GetLayerCount(); OGRLayer *GetLayer( int ); int TestCapability( const char * ); // Note: these are specific to NTF for now, but eventually might // might be available as part of a more object oriented approach to // features like that in FME or SFCORBA. void ResetReading(); OGRFeature * GetNextFeature(); // these are only for the use of the NTFFileReader class. OGRNTFLayer *GetNamedLayer( const char * ); void AddLayer( OGRLayer * ); // Mainly for OGRNTFLayer class int GetFileCount() { return nNTFFileCount; } NTFFileReader *GetFileReader(int i) { return papoNTFFileReader[i]; } int GetFCCount() { return nFCCount; } int GetFeatureClass( int, char **, char ** ); OGRSpatialReference *GetSpatialRef() { return poSpatialRef; } NTFGenericClass *GetGClass( int i ) { return aoGenericClass + i; } void WorkupGeneric( NTFFileReader * ); void EstablishGenericLayers();};/************************************************************************//* OGRNTFDriver *//************************************************************************/class OGRNTFDriver : public OGRSFDriver{ public: ~OGRNTFDriver(); const char *GetName(); OGRDataSource *Open( const char *, int ); int TestCapability( const char * );};/************************************************************************//* Support functions. *//************************************************************************/int NTFArcCenterFromEdgePoints( double x_c0, double y_c0, double x_c1, double y_c1, double x_c2, double y_c2, double *x_center, double *y_center );OGRGeometry *NTFStrokeArcToOGRGeometry_Points( double dfStartX, double dfStartY, double dfAlongX, double dfAlongY, double dfEndX, double dfEndY, int nVertexCount );OGRGeometry *NTFStrokeArcToOGRGeometry_Angles( double dfCenterX, double dfCenterY, double dfRadius, double dfStartAngle, double dfEndAngle, int nVertexCount );#endif /* ndef _NTF_H_INCLUDED */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -