diff --git a/doc/source/api/gdal_fwd.rst b/doc/source/api/gdal_fwd.rst new file mode 100644 index 000000000000..8a5936b93422 --- /dev/null +++ b/doc/source/api/gdal_fwd.rst @@ -0,0 +1,18 @@ +.. + The documentation displayed on this page is automatically generated from + Doxygen comments using the Breathe extension. Edits to the documentation + can be made by making changes in the appropriate .cpp files. + +.. _gdal_fwd: + +================================================================================ +gdal_fwd.h: Forward definitions of GDAL/OGR/OSR C handle types. +================================================================================ + +gdal_fwd.h +---------- + +.. versionadded:: 3.11 + +.. doxygenfile:: gdal_fwd.h + :project: api diff --git a/doc/source/api/index.rst b/doc/source/api/index.rst index 652fdd2e39df..8cad65630f72 100644 --- a/doc/source/api/index.rst +++ b/doc/source/api/index.rst @@ -16,6 +16,7 @@ API :maxdepth: 1 cpl + gdal_fwd raster_c_api vector_c_api gdal_alg diff --git a/gcore/CMakeLists.txt b/gcore/CMakeLists.txt index 044a4c667196..325e34d1049a 100644 --- a/gcore/CMakeLists.txt +++ b/gcore/CMakeLists.txt @@ -213,6 +213,7 @@ target_public_header( HEADERS ${CMAKE_CURRENT_BINARY_DIR}/gdal_version_full/gdal_version.h gdal.h + gdal_fwd.h gdalalgorithm.h gdaljp2metadata.h gdaljp2abstractdataset.h diff --git a/gcore/gdal.h b/gcore/gdal.h index 8a8f414a826d..8f83b5d3bc9b 100644 --- a/gcore/gdal.h +++ b/gcore/gdal.h @@ -24,6 +24,7 @@ #if defined(GDAL_COMPILATION) #define DO_NOT_DEFINE_GDAL_DATE_NAME #endif +#include "gdal_fwd.h" #include "gdal_version.h" #include "cpl_port.h" #include "cpl_error.h" @@ -365,36 +366,9 @@ const char CPL_DLL *GDALGetPaletteInterpretationName(GDALPaletteInterp); #endif /* -------------------------------------------------------------------- */ -/* Define handle types related to various internal classes. */ +/* Types, enumerations. */ /* -------------------------------------------------------------------- */ -/** Opaque type used for the C bindings of the C++ GDALMajorObject class */ -typedef void *GDALMajorObjectH; - -/** Opaque type used for the C bindings of the C++ GDALDataset class */ -typedef void *GDALDatasetH; - -/** Opaque type used for the C bindings of the C++ GDALRasterBand class */ -typedef void *GDALRasterBandH; - -/** Opaque type used for the C bindings of the C++ GDALDriver class */ -typedef void *GDALDriverH; - -/** Opaque type used for the C bindings of the C++ GDALColorTable class */ -typedef void *GDALColorTableH; - -/** Opaque type used for the C bindings of the C++ GDALRasterAttributeTable - * class */ -typedef void *GDALRasterAttributeTableH; - -/** Opaque type used for the C bindings of the C++ GDALAsyncReader class */ -typedef void *GDALAsyncReaderH; - -/** Opaque type used for the C bindings of the C++ GDALRelationship class - * @since GDAL 3.6 - */ -typedef void *GDALRelationshipH; - /** Type to express pixel, line or band spacing. Signed 64 bit integer. */ typedef GIntBig GSpacing; @@ -422,19 +396,6 @@ typedef enum GEDTST_JSON } GDALExtendedDataTypeSubType; -/** Opaque type for C++ GDALExtendedDataType */ -typedef struct GDALExtendedDataTypeHS *GDALExtendedDataTypeH; -/** Opaque type for C++ GDALEDTComponent */ -typedef struct GDALEDTComponentHS *GDALEDTComponentH; -/** Opaque type for C++ GDALGroup */ -typedef struct GDALGroupHS *GDALGroupH; -/** Opaque type for C++ GDALMDArray */ -typedef struct GDALMDArrayHS *GDALMDArrayH; -/** Opaque type for C++ GDALAttribute */ -typedef struct GDALAttributeHS *GDALAttributeH; -/** Opaque type for C++ GDALDimension */ -typedef struct GDALDimensionHS *GDALDimensionH; - /* ==================================================================== */ /* Registration/driver related. */ /* ==================================================================== */ @@ -1435,12 +1396,6 @@ bool CPL_DLL GDALDatasetSetQueryLoggerFunc( /* Informational utilities about subdatasets in file names */ /* ==================================================================== */ -/** - * Opaque type used for the C bindings of the C++ GDALSubdatasetInfo class - * @since GDAL 3.8 -*/ -typedef struct GDALSubdatasetInfo *GDALSubdatasetInfoH; - /** * @brief Returns a new GDALSubdatasetInfo object with methods to extract * and manipulate subdataset information. diff --git a/gcore/gdal_fwd.h b/gcore/gdal_fwd.h new file mode 100644 index 000000000000..59cc144259b0 --- /dev/null +++ b/gcore/gdal_fwd.h @@ -0,0 +1,205 @@ +/****************************************************************************** + * + * Project: GDAL + * Purpose: Forward definitions of GDAL/OGR/OSR C handle types. + * Author: Even Rouault + * + ****************************************************************************** + * Copyright (c) 1998, 2002 Frank Warmerdam + * Copyright (c) 2007-2024, Even Rouault + * + * SPDX-License-Identifier: MIT + ****************************************************************************/ + +#ifndef GDAL_FWD_H_INCLUDED +#define GDAL_FWD_H_INCLUDED + +/** + * \file gdal_fwd.h + * + * Forward definitions of GDAL/OGR/OSR C handle types. + * + * Users should only rely on the type name, and not its definition, which + * could change in later versions. + * + * @since GDAL 3.11 + */ + +/*! +\section gdal_fwd_raster Raster related types. +*/ + +/** Opaque type used for the C bindings of the C++ GDALMajorObject class */ +typedef void *GDALMajorObjectH; + +/** Opaque type used for the C bindings of the C++ GDALDataset class */ +typedef void *GDALDatasetH; + +/** Opaque type used for the C bindings of the C++ GDALRasterBand class */ +typedef void *GDALRasterBandH; + +/** Opaque type used for the C bindings of the C++ GDALDriver class */ +typedef void *GDALDriverH; + +/** Opaque type used for the C bindings of the C++ GDALColorTable class */ +typedef void *GDALColorTableH; + +/** Opaque type used for the C bindings of the C++ GDALRasterAttributeTable + * class */ +typedef void *GDALRasterAttributeTableH; + +/** Opaque type used for the C bindings of the C++ GDALAsyncReader class */ +typedef void *GDALAsyncReaderH; + +/** Opaque type used for the C bindings of the C++ GDALRelationship class + * @since GDAL 3.6 + */ +typedef void *GDALRelationshipH; + +/** Opaque type for C++ GDALExtendedDataType */ +typedef struct GDALExtendedDataTypeHS *GDALExtendedDataTypeH; +/** Opaque type for C++ GDALEDTComponent */ +typedef struct GDALEDTComponentHS *GDALEDTComponentH; +/** Opaque type for C++ GDALGroup */ +typedef struct GDALGroupHS *GDALGroupH; +/** Opaque type for C++ GDALMDArray */ +typedef struct GDALMDArrayHS *GDALMDArrayH; +/** Opaque type for C++ GDALAttribute */ +typedef struct GDALAttributeHS *GDALAttributeH; +/** Opaque type for C++ GDALDimension */ +typedef struct GDALDimensionHS *GDALDimensionH; + +/** + * Opaque type used for the C bindings of the C++ GDALSubdatasetInfo class + * @since GDAL 3.8 +*/ +typedef struct GDALSubdatasetInfo *GDALSubdatasetInfoH; + +/*! +\section gdal_fwd_geometry Geometry related types. +*/ + +#if defined(GDAL_DEBUG) +/** Opaque type for a geometry */ +typedef struct OGRGeometryHS *OGRGeometryH; +#else +/** Opaque type for a geometry */ +typedef void *OGRGeometryH; +#endif + +/** Opaque type for a geometry transformer. */ +typedef struct OGRGeomTransformer *OGRGeomTransformerH; + +/** Opaque type for OGRGeomCoordinatePrecision */ +typedef struct OGRGeomCoordinatePrecision *OGRGeomCoordinatePrecisionH; + +/** Opaque type for WKB export options */ +typedef struct OGRwkbExportOptions OGRwkbExportOptions; + +/** Opaque type for a prepared geometry */ +typedef struct _OGRPreparedGeometry *OGRPreparedGeometryH; + +/*! +\section gdal_fwd_field Attribute field, geometry field and layer definitions. +*/ + +#if defined(GDAL_DEBUG) +/** Opaque type for a field definition (OGRFieldDefn) */ +typedef struct OGRFieldDefnHS *OGRFieldDefnH; +/** Opaque type for a feature definition (OGRFeatureDefn) */ +typedef struct OGRFeatureDefnHS *OGRFeatureDefnH; +#else +/** Opaque type for a field definition (OGRFieldDefn) */ +typedef void *OGRFieldDefnH; +/** Opaque type for a feature definition (OGRFeatureDefn) */ +typedef void *OGRFeatureDefnH; +#endif + +/** Opaque type for a geometry field definition (OGRGeomFieldDefn) */ +typedef struct OGRGeomFieldDefnHS *OGRGeomFieldDefnH; + +/** Opaque type for a field domain definition (OGRFieldDomain) */ +typedef struct OGRFieldDomainHS *OGRFieldDomainH; + +/*! +\section gdal_fwd_feature Vector feature type. +*/ +#if defined(GDAL_DEBUG) +/** Opaque type for a feature (OGRFeature) */ +typedef struct OGRFeatureHS *OGRFeatureH; +#else +/** Opaque type for a feature (OGRFeature) */ +typedef void *OGRFeatureH; +#endif + +/*! +\section gdal_fwd_layer Vector layer related types. +*/ + +#if defined(GDAL_DEBUG) +/** Opaque type for a layer (OGRLayer) */ +typedef struct OGRLayerHS *OGRLayerH; +/** Opaque type for a OGR datasource (OGRDataSource) (deprecated) */ +typedef struct OGRDataSourceHS *OGRDataSourceH; +/** Opaque type for a OGR driver (OGRSFDriver) (deprecated) */ +typedef struct OGRDriverHS *OGRSFDriverH; +#else +/** Opaque type for a layer (OGRLayer) */ +typedef void *OGRLayerH; +/** Opaque type for a OGR datasource (OGRDataSource) (deprecated) */ +typedef void *OGRDataSourceH; +/** Opaque type for a OGR driver (OGRSFDriver) (deprecated) */ +typedef void *OGRSFDriverH; +#endif + +/*! +\section gdal_fwd_style Vector styling related types. +*/ + +#if defined(GDAL_DEBUG) +/** Style manager opaque type */ +typedef struct OGRStyleMgrHS *OGRStyleMgrH; +/** Opaque type for a style table (OGRStyleTable) */ +typedef struct OGRStyleTableHS *OGRStyleTableH; +/** Style tool opaque type */ +typedef struct OGRStyleToolHS *OGRStyleToolH; +#else +/** Style manager opaque type */ +typedef void *OGRStyleMgrH; +/** Style tool opaque type */ +typedef void *OGRStyleToolH; +/** Opaque type for a style table (OGRStyleTable) */ +typedef void *OGRStyleTableH; +#endif + +/*! +\section gdal_fwd_crs CRS and coordinate transformation related types. +*/ + +#if defined(GDAL_DEBUG) +/** Opaque type for a spatial reference system */ +typedef struct OGRSpatialReferenceHS *OGRSpatialReferenceH; +/** Opaque type for a coordinate transformation object */ +typedef struct OGRCoordinateTransformationHS *OGRCoordinateTransformationH; +#else +/** Opaque type for a spatial reference system */ +typedef void *OGRSpatialReferenceH; +/** Opaque type for a coordinate transformation object */ +typedef void *OGRCoordinateTransformationH; +#endif + +/** Coordinate transformation options. */ +typedef struct OGRCoordinateTransformationOptions + *OGRCoordinateTransformationOptionsH; + +/*! +\section gdal_fwd_gnm GNM (Geography Network Models) related types. +*/ + +/** Opaque type for a GNMNetwork */ +typedef void *GNMNetworkH; + +/** Opaque type for a GNMGenericNetwork */ +typedef void *GNMGenericNetworkH; + +#endif // GDAL_FWD_H_INCLUDED diff --git a/gnm/gnm_api.h b/gnm/gnm_api.h index ef6955cc1603..65d2ec731416 100644 --- a/gnm/gnm_api.h +++ b/gnm/gnm_api.h @@ -33,10 +33,9 @@ #include "gnm.h" -CPL_C_START +#include "gdal_fwd.h" -typedef void *GNMNetworkH; -typedef void *GNMGenericNetworkH; +CPL_C_START const char CPL_DLL *CPL_STDCALL GNMGetName(GNMNetworkH hNet); diff --git a/ogr/ogr_api.h b/ogr/ogr_api.h index f2ddd1764315..94d1f2c6825d 100644 --- a/ogr/ogr_api.h +++ b/ogr/ogr_api.h @@ -26,6 +26,7 @@ #include "cpl_progress.h" #include "cpl_minixml.h" #include "ogr_core.h" +#include "gdal_fwd.h" #include #include @@ -38,36 +39,6 @@ bool CPL_DLL OGRGetGEOSVersion(int *pnMajor, int *pnMinor, int *pnPatch); /* -------------------------------------------------------------------- */ /* Geometry related functions (ogr_geometry.h) */ /* -------------------------------------------------------------------- */ -#ifndef DEFINEH_OGRGeometryH -/*! @cond Doxygen_Suppress */ -#define DEFINEH_OGRGeometryH -/*! @endcond */ -#if defined(DEBUG) || defined(GDAL_DEBUG) -typedef struct OGRGeometryHS *OGRGeometryH; -#else -/** Opaque type for a geometry */ -typedef void *OGRGeometryH; -#endif -#endif /* DEFINEH_OGRGeometryH */ - -#ifndef DEFINED_OGRSpatialReferenceH -/*! @cond Doxygen_Suppress */ -#define DEFINED_OGRSpatialReferenceH -/*! @endcond */ - -#ifndef DOXYGEN_XML -#if defined(DEBUG) || defined(GDAL_DEBUG) -typedef struct OGRSpatialReferenceHS *OGRSpatialReferenceH; -typedef struct OGRCoordinateTransformationHS *OGRCoordinateTransformationH; -#else -/** Opaque type for a spatial reference system */ -typedef void *OGRSpatialReferenceH; -/** Opaque type for a coordinate transformation object */ -typedef void *OGRCoordinateTransformationH; -#endif -#endif - -#endif /* DEFINED_OGRSpatialReferenceH */ struct _CPLXMLNode; @@ -76,9 +47,6 @@ struct _CPLXMLNode; /** Value for a unknown coordinate precision. */ #define OGR_GEOM_COORD_PRECISION_UNKNOWN 0 -/** Opaque type for OGRGeomCoordinatePrecision */ -typedef struct OGRGeomCoordinatePrecision *OGRGeomCoordinatePrecisionH; - OGRGeomCoordinatePrecisionH CPL_DLL OGRGeomCoordinatePrecisionCreate(void); void CPL_DLL OGRGeomCoordinatePrecisionDestroy(OGRGeomCoordinatePrecisionH); double CPL_DLL @@ -154,9 +122,6 @@ OGRErr CPL_DLL OGR_G_ExportToWkb(OGRGeometryH, OGRwkbByteOrder, OGRErr CPL_DLL OGR_G_ExportToIsoWkb(OGRGeometryH, OGRwkbByteOrder, unsigned char *); -/** Opaque type for WKB export options */ -typedef struct OGRwkbExportOptions OGRwkbExportOptions; - OGRwkbExportOptions CPL_DLL *OGRwkbExportOptionsCreate(void); void CPL_DLL OGRwkbExportOptionsDestroy(OGRwkbExportOptions *); void CPL_DLL OGRwkbExportOptionsSetByteOrder(OGRwkbExportOptions *, @@ -208,8 +173,6 @@ OGRSpatialReferenceH CPL_DLL OGR_G_GetSpatialReference(OGRGeometryH); OGRErr CPL_DLL OGR_G_Transform(OGRGeometryH, OGRCoordinateTransformationH); OGRErr CPL_DLL OGR_G_TransformTo(OGRGeometryH, OGRSpatialReferenceH); -/** Opaque type for a geometry transformer. */ -typedef struct OGRGeomTransformer *OGRGeomTransformerH; OGRGeomTransformerH CPL_DLL OGR_GeomTransformer_Create(OGRCoordinateTransformationH, CSLConstList papszOptions) CPL_WARN_UNUSED_RESULT; @@ -376,9 +339,6 @@ int CPL_DLL OGRGetGenerate_DB2_V72_BYTE_ORDER(void); void CPL_DLL OGRSetNonLinearGeometriesEnabledFlag(int bFlag); int CPL_DLL OGRGetNonLinearGeometriesEnabledFlag(void); -/** Opaque type for a prepared geometry */ -typedef struct _OGRPreparedGeometry *OGRPreparedGeometryH; - int CPL_DLL OGRHasPreparedGeometrySupport(void); OGRPreparedGeometryH CPL_DLL OGRCreatePreparedGeometry(OGRGeometryH hGeom); void CPL_DLL OGRDestroyPreparedGeometry(OGRPreparedGeometryH hPreparedGeom); @@ -391,32 +351,6 @@ int CPL_DLL OGRPreparedGeometryContains(OGRPreparedGeometryH hPreparedGeom, /* Feature related (ogr_feature.h) */ /* -------------------------------------------------------------------- */ -#ifndef DEFINE_OGRFeatureH -/*! @cond Doxygen_Suppress */ -#define DEFINE_OGRFeatureH -/*! @endcond */ -#if defined(DEBUG) || defined(GDAL_DEBUG) -typedef struct OGRFieldDefnHS *OGRFieldDefnH; -typedef struct OGRFeatureDefnHS *OGRFeatureDefnH; -typedef struct OGRFeatureHS *OGRFeatureH; -typedef struct OGRStyleTableHS *OGRStyleTableH; -#else -/** Opaque type for a field definition (OGRFieldDefn) */ -typedef void *OGRFieldDefnH; -/** Opaque type for a feature definition (OGRFeatureDefn) */ -typedef void *OGRFeatureDefnH; -/** Opaque type for a feature (OGRFeature) */ -typedef void *OGRFeatureH; -/** Opaque type for a style table (OGRStyleTable) */ -typedef void *OGRStyleTableH; -#endif -/** Opaque type for a geometry field definition (OGRGeomFieldDefn) */ -typedef struct OGRGeomFieldDefnHS *OGRGeomFieldDefnH; - -/** Opaque type for a field domain definition (OGRFieldDomain) */ -typedef struct OGRFieldDomainHS *OGRFieldDomainH; -#endif /* DEFINE_OGRFeatureH */ - /* OGRFieldDefn */ OGRFieldDefnH CPL_DLL OGR_Fld_Create(const char *, @@ -668,19 +602,6 @@ const char CPL_DLL *OGR_GlobFldDomain_GetGlob(OGRFieldDomainH); /* ogrsf_frmts.h */ /* -------------------------------------------------------------------- */ -#if defined(DEBUG) || defined(GDAL_DEBUG) -typedef struct OGRLayerHS *OGRLayerH; -typedef struct OGRDataSourceHS *OGRDataSourceH; -typedef struct OGRDriverHS *OGRSFDriverH; -#else -/** Opaque type for a layer (OGRLayer) */ -typedef void *OGRLayerH; -/** Opaque type for a OGR datasource (OGRDataSource) */ -typedef void *OGRDataSourceH; -/** Opaque type for a OGR driver (OGRSFDriver) */ -typedef void *OGRSFDriverH; -#endif - /* OGRLayer */ const char CPL_DLL *OGR_L_GetName(OGRLayerH); @@ -950,16 +871,6 @@ void CPL_DLL OGRCleanupAll(void); /* ogrsf_featurestyle.h */ /* -------------------------------------------------------------------- */ -#if defined(DEBUG) || defined(GDAL_DEBUG) -typedef struct OGRStyleMgrHS *OGRStyleMgrH; -typedef struct OGRStyleToolHS *OGRStyleToolH; -#else -/** Style manager opaque type */ -typedef void *OGRStyleMgrH; -/** Style tool opaque type */ -typedef void *OGRStyleToolH; -#endif - /* OGRStyleMgr */ OGRStyleMgrH CPL_DLL OGR_SM_Create(OGRStyleTableH hStyleTable) diff --git a/ogr/ogr_feature.h b/ogr/ogr_feature.h index cf8c3a84d6b3..b8004bc2ccec 100644 --- a/ogr/ogr_feature.h +++ b/ogr/ogr_feature.h @@ -15,6 +15,7 @@ #define OGR_FEATURE_H_INCLUDED #include "cpl_atomic_ops.h" +#include "gdal_fwd.h" #include "ogr_featurestyle.h" #include "ogr_geometry.h" #include "ogr_geomcoordinateprecision.h" @@ -32,32 +33,6 @@ * Simple feature classes. */ -#ifndef DEFINE_OGRFeatureH -/*! @cond Doxygen_Suppress */ -#define DEFINE_OGRFeatureH -/*! @endcond */ -#if defined(DEBUG) || defined(GDAL_DEBUG) -typedef struct OGRFieldDefnHS *OGRFieldDefnH; -typedef struct OGRFeatureDefnHS *OGRFeatureDefnH; -typedef struct OGRFeatureHS *OGRFeatureH; -typedef struct OGRStyleTableHS *OGRStyleTableH; -#else -/** Opaque type for a field definition (OGRFieldDefn) */ -typedef void *OGRFieldDefnH; -/** Opaque type for a feature definition (OGRFeatureDefn) */ -typedef void *OGRFeatureDefnH; -/** Opaque type for a feature (OGRFeature) */ -typedef void *OGRFeatureH; -/** Opaque type for a style table (OGRStyleTable) */ -typedef void *OGRStyleTableH; -#endif -/** Opaque type for a geometry field definition (OGRGeomFieldDefn) */ -typedef struct OGRGeomFieldDefnHS *OGRGeomFieldDefnH; - -/** Opaque type for a field domain definition (OGRFieldDomain) */ -typedef struct OGRFieldDomainHS *OGRFieldDomainH; -#endif /* DEFINE_OGRFeatureH */ - class OGRStyleTable; /************************************************************************/ diff --git a/ogr/ogr_geometry.h b/ogr/ogr_geometry.h index 414d5d2829b4..a8d6c1145a09 100644 --- a/ogr/ogr_geometry.h +++ b/ogr/ogr_geometry.h @@ -17,6 +17,7 @@ #include "cpl_conv.h" #include "cpl_json.h" +#include "gdal_fwd.h" #include "ogr_core.h" #include "ogr_geomcoordinateprecision.h" #include "ogr_spatialref.h" @@ -32,17 +33,6 @@ * Simple feature geometry classes. */ -/*! @cond Doxygen_Suppress */ -#ifndef DEFINEH_OGRGeometryH -#define DEFINEH_OGRGeometryH -#if defined(DEBUG) || defined(GDAL_DEBUG) -typedef struct OGRGeometryHS *OGRGeometryH; -#else -typedef void *OGRGeometryH; -#endif -#endif /* DEFINEH_OGRGeometryH */ -/*! @endcond */ - /// WKT Output formatting options. enum class OGRWktFormat { diff --git a/ogr/ogr_srs_api.h b/ogr/ogr_srs_api.h index d2c6a5386d12..7e477c88b049 100644 --- a/ogr/ogr_srs_api.h +++ b/ogr/ogr_srs_api.h @@ -18,6 +18,7 @@ #ifndef SWIG #include "ogr_core.h" +#include "gdal_fwd.h" CPL_C_START @@ -420,22 +421,6 @@ const char CPL_DLL *OSRAxisEnumToName(OGRAxisOrientation eOrientation); /* -------------------------------------------------------------------- */ /* C Wrappers for C++ objects and methods. */ /* -------------------------------------------------------------------- */ -#ifndef DEFINED_OGRSpatialReferenceH -/*! @cond Doxygen_Suppress */ -#define DEFINED_OGRSpatialReferenceH -/*! @endcond */ - -#if defined(DEBUG) || defined(GDAL_DEBUG) -typedef struct OGRSpatialReferenceHS *OGRSpatialReferenceH; -typedef struct OGRCoordinateTransformationHS *OGRCoordinateTransformationH; -#else -/** Opaque type for a Spatial Reference object */ -typedef void *OGRSpatialReferenceH; -/** Opaque type for a coordinate transformation object */ -typedef void *OGRCoordinateTransformationH; -#endif - -#endif void CPL_DLL OSRSetPROJSearchPaths(const char *const *papszPaths); char CPL_DLL **OSRGetPROJSearchPaths(void); @@ -1012,10 +997,6 @@ char CPL_DLL **OSRGetAuthorityListFromDatabase(void); OGRCoordinateTransformationH CPL_DLL CPL_STDCALL OCTNewCoordinateTransformation( OGRSpatialReferenceH hSourceSRS, OGRSpatialReferenceH hTargetSRS); -/** Coordinate transformation options. */ -typedef struct OGRCoordinateTransformationOptions - *OGRCoordinateTransformationOptionsH; - OGRCoordinateTransformationOptionsH CPL_DLL OCTNewCoordinateTransformationOptions(void);