gooderp18绿色标准版
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

111 line
4.7KB

  1. /******************************************************************************
  2. * $Id: gdal_vrt.h cad9c764a44d2b5383a70a341158b4518b25cedd 2016-11-30 01:46:53Z Kurt Schwehr $
  3. *
  4. * Project: Virtual GDAL Datasets
  5. * Purpose: C/Public declarations of virtual GDAL dataset objects.
  6. * Author: Andrey Kiselev, dron@ak4719.spb.edu
  7. *
  8. ******************************************************************************
  9. * Copyright (c) 2007, Andrey Kiselev <dron@ak4719.spb.edu>
  10. *
  11. * Permission is hereby granted, free of charge, to any person obtaining a
  12. * copy of this software and associated documentation files (the "Software"),
  13. * to deal in the Software without restriction, including without limitation
  14. * the rights to use, copy, modify, merge, publish, distribute, sublicense,
  15. * and/or sell copies of the Software, and to permit persons to whom the
  16. * Software is furnished to do so, subject to the following conditions:
  17. *
  18. * The above copyright notice and this permission notice shall be included
  19. * in all copies or substantial portions of the Software.
  20. *
  21. * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
  22. * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
  23. * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
  24. * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
  25. * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
  26. * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
  27. * DEALINGS IN THE SOFTWARE.
  28. ****************************************************************************/
  29. #ifndef GDAL_VRT_H_INCLUDED
  30. #define GDAL_VRT_H_INCLUDED
  31. /**
  32. * \file gdal_vrt.h
  33. *
  34. * Public (C callable) entry points for virtual GDAL dataset objects.
  35. */
  36. #include "cpl_error.h"
  37. #include "cpl_minixml.h"
  38. #include "cpl_port.h"
  39. #include "gdal.h"
  40. /** Special value to indicate that nodata is not set */
  41. #define VRT_NODATA_UNSET -1234.56
  42. CPL_C_START
  43. /** Type for a function that returns the pixel data in a provided window */
  44. typedef CPLErr
  45. (*VRTImageReadFunc)( void *hCBData,
  46. int nXOff, int nYOff, int nXSize, int nYSize,
  47. void *pData );
  48. /* -------------------------------------------------------------------- */
  49. /* Define handle types related to various VRT dataset classes. */
  50. /* -------------------------------------------------------------------- */
  51. /*! @cond Doxygen_Suppress */
  52. typedef void *VRTAveragedSourceH;
  53. typedef void *VRTAverageFilteredSourceH;
  54. typedef void *VRTComplexSourceH;
  55. typedef void *VRTDerivedRasterBandH;
  56. typedef void *VRTDriverH;
  57. typedef void *VRTFilteredSourceH;
  58. typedef void *VRTFuncSourceH;
  59. typedef void *VRTKernelFilteredSourceH;
  60. typedef void *VRTRasterBandH;
  61. typedef void *VRTRawRasterBandH;
  62. typedef void *VRTSimpleSourceH;
  63. typedef void *VRTSourceH;
  64. typedef void *VRTWarpedDatasetH;
  65. typedef void *VRTWarpedRasterBandH;
  66. /*! @endcond */
  67. /** Opaque type for a VRT dataset */
  68. typedef void *VRTDatasetH;
  69. /** Opaque type for a VRT sourced raster band */
  70. typedef void *VRTSourcedRasterBandH;
  71. /* ==================================================================== */
  72. /* VRTDataset class. */
  73. /* ==================================================================== */
  74. VRTDatasetH CPL_DLL CPL_STDCALL VRTCreate( int, int );
  75. void CPL_DLL CPL_STDCALL VRTFlushCache( VRTDatasetH );
  76. CPLXMLNode CPL_DLL * CPL_STDCALL VRTSerializeToXML( VRTDatasetH, const char * );
  77. int CPL_DLL CPL_STDCALL VRTAddBand( VRTDatasetH, GDALDataType, char ** );
  78. /* ==================================================================== */
  79. /* VRTSourcedRasterBand class. */
  80. /* ==================================================================== */
  81. CPLErr CPL_STDCALL VRTAddSource( VRTSourcedRasterBandH, VRTSourceH );
  82. CPLErr CPL_DLL CPL_STDCALL VRTAddSimpleSource( VRTSourcedRasterBandH,
  83. GDALRasterBandH,
  84. int, int, int, int,
  85. int, int, int, int,
  86. const char *, double );
  87. CPLErr CPL_DLL CPL_STDCALL VRTAddComplexSource( VRTSourcedRasterBandH,
  88. GDALRasterBandH,
  89. int, int, int, int,
  90. int, int, int, int,
  91. double, double, double );
  92. CPLErr CPL_DLL CPL_STDCALL VRTAddFuncSource( VRTSourcedRasterBandH,
  93. VRTImageReadFunc,
  94. void *, double );
  95. CPL_C_END
  96. #endif /* GDAL_VRT_H_INCLUDED */
上海开阖软件有限公司 沪ICP备12045867号-1