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.

95 lines
3.8KB

  1. /******************************************************************************
  2. * $Id: gdalgrid_priv.h 538551c247adf9f139ab49ffd68629bf93bb4404 2016-08-13 21:20:46Z Even Rouault $
  3. *
  4. * Project: GDAL Gridding API.
  5. * Purpose: Prototypes, and definitions for of GDAL scattered data gridder.
  6. * Author: Even Rouault, <even dot rouault at mines dash paris dot org>
  7. *
  8. ******************************************************************************
  9. * Copyright (c) 2013, Even Rouault <even dot rouault at mines-paris dot org>
  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 GDALGRID_PRIV_H
  30. #define GDALGRID_PRIV_H
  31. #include "cpl_error.h"
  32. #include "cpl_quad_tree.h"
  33. //! @cond Doxygen_Suppress
  34. typedef struct
  35. {
  36. const double* padfX;
  37. const double* padfY;
  38. } GDALGridXYArrays;
  39. typedef struct
  40. {
  41. GDALGridXYArrays* psXYArrays;
  42. int i;
  43. } GDALGridPoint;
  44. typedef struct
  45. {
  46. CPLQuadTree* hQuadTree;
  47. double dfInitialSearchRadius;
  48. float *pafX; // Aligned to be usable with AVX
  49. float *pafY;
  50. float *pafZ;
  51. GDALTriangulation* psTriangulation;
  52. int nInitialFacetIdx;
  53. /*! Weighting power divided by 2 (pre-computation). */
  54. double dfPowerDiv2PreComp;
  55. /*! The radius of search circle squared (pre-computation). */
  56. double dfRadiusPower2PreComp;
  57. /*! The radius of search circle to power 4 (pre-computation). */
  58. double dfRadiusPower4PreComp;
  59. } GDALGridExtraParameters;
  60. #ifdef HAVE_SSE_AT_COMPILE_TIME
  61. CPLErr
  62. GDALGridInverseDistanceToAPower2NoSmoothingNoSearchSSE(
  63. const void *poOptions,
  64. GUInt32 nPoints,
  65. const double *unused_padfX,
  66. const double *unused_padfY,
  67. const double *unused_padfZ,
  68. double dfXPoint, double dfYPoint,
  69. double *pdfValue,
  70. void* hExtraParamsIn );
  71. #endif
  72. #ifdef HAVE_AVX_AT_COMPILE_TIME
  73. CPLErr GDALGridInverseDistanceToAPower2NoSmoothingNoSearchAVX(
  74. const void *poOptions,
  75. GUInt32 nPoints,
  76. const double *unused_padfX,
  77. const double *unused_padfY,
  78. const double *unused_padfZ,
  79. double dfXPoint, double dfYPoint,
  80. double *pdfValue,
  81. void* hExtraParamsIn );
  82. #endif
  83. //! @endcond
  84. #endif // GDALGRID_PRIV_H
上海开阖软件有限公司 沪ICP备12045867号-1