Branch data Line data Source code
1 : : /*************************************************************************** 2 : : qgsrasterpyramid.h 3 : : 4 : : ------------------- 5 : : begin : 2007 6 : : copyright : (C) 2007 by Gary E. Sherman 7 : : email : sherman@mrcc.com 8 : : ***************************************************************************/ 9 : : 10 : : /*************************************************************************** 11 : : * * 12 : : * This program is free software; you can redistribute it and/or modify * 13 : : * it under the terms of the GNU General Public License as published by * 14 : : * the Free Software Foundation; either version 2 of the License, or * 15 : : * (at your option) any later version. * 16 : : * * 17 : : ***************************************************************************/ 18 : : #ifndef QGSRASTERPYRAMID 19 : : #define QGSRASTERPYRAMID 20 : : 21 : : #include "qgis_core.h" 22 : : #include "qgis_sip.h" 23 : : 24 : : /** 25 : : * \ingroup core 26 : : * \brief This struct is used to store pyramid info for the raster layer. 27 : : */ 28 : 0 : class CORE_EXPORT QgsRasterPyramid 29 : : { 30 : : public: 31 : : 32 : : //TODO QGIS 4.0 - rename get* to remove get prefix, and remove 33 : : //temporary SIP_PROPERTY definitions 34 : : 35 : : /** 36 : : * Returns the pyramid level. 37 : : * 38 : : * Pyramid levels are as defined by GDAL, eg 39 : : * level 2 is half the original raster size. 40 : : * 41 : : * \since QGIS 3.20 42 : : */ 43 : 0 : int getLevel() const { return mLevel; } 44 : : 45 : : /** 46 : : * Sets the pyramid \a level. 47 : : * 48 : : * Pyramid levels are as defined by GDAL, eg 49 : : * level 2 is half the original raster size. 50 : : * 51 : : * \since QGIS 3.20 52 : : */ 53 : 0 : void setLevel( int level ) { mLevel = level; } 54 : : 55 : : #ifdef SIP_RUN 56 : : SIP_PROPERTY( name = level, get = getLevel, set = setLevel ) 57 : : #endif 58 : : 59 : : /** 60 : : * Sets the x \a dimension for this pyramid layer. 61 : : * 62 : : * \since QGIS 3.20 63 : : */ 64 : 0 : void setXDim( int dimension ) { mXDim = dimension; } 65 : : 66 : : /** 67 : : * Returns the x dimension for this pyramid layer. 68 : : * 69 : : * \since QGIS 3.20 70 : : */ 71 : 0 : int getXDim() const { return mXDim; } 72 : : 73 : : #ifdef SIP_RUN 74 : : SIP_PROPERTY( name = xDim, get = getXDim, set = setXDim ) 75 : : #endif 76 : : 77 : : /** 78 : : * Sets the y \a dimension for this pyramid layer. 79 : : * 80 : : * \since QGIS 3.20 81 : : */ 82 : 0 : void setYDim( int dimension ) { mYDim = dimension; } 83 : : 84 : : /** 85 : : * Returns the y dimension for this pyramid layer. 86 : : * 87 : : * \since QGIS 3.20 88 : : */ 89 : 0 : int getYDim() const { return mYDim; } 90 : : 91 : : #ifdef SIP_RUN 92 : : SIP_PROPERTY( name = yDim, get = getYDim, set = setYDim ) 93 : : #endif 94 : : 95 : : /** 96 : : * Returns TRUE if the pyramid layer currently exists. 97 : : * 98 : : * \since QGIS 3.20 99 : : */ 100 : 0 : bool getExists() const { return mExists; } 101 : : 102 : : /** 103 : : * Sets whether the pyramid layer currently exists. 104 : : * 105 : : * \since QGIS 3.20 106 : : */ 107 : 0 : void setExists( bool exists ) { mExists = exists; } 108 : : 109 : : #ifdef SIP_RUN 110 : : SIP_PROPERTY( name = exists, get = getExists, set = setExists ) 111 : : #endif 112 : : 113 : : /** 114 : : * Returns TRUE if the pyramid layer will be built. 115 : : * 116 : : * When used with QgsRasterDataProvider::buildPyramids() this flag controls 117 : : * whether pyramids will be built for the layer. 118 : : * 119 : : * \since QGIS 3.20 120 : : */ 121 : 0 : bool getBuild() const { return mBuild; } 122 : : 123 : : /** 124 : : * Sets whether the pyramid layer will be built. 125 : : * 126 : : * When used with QgsRasterDataProvider::buildPyramids() this flag controls 127 : : * whether pyramids will be built for the layer. Set to TRUE to build 128 : : * the pyramids. 129 : : * 130 : : * \since QGIS 3.20 131 : : */ 132 : 0 : void setBuild( bool build ) { mBuild = build; } 133 : : 134 : : #ifdef SIP_RUN 135 : : SIP_PROPERTY( name = build, get = getBuild, set = setBuild ) 136 : : #endif 137 : : 138 : : private: 139 : : 140 : : //! \brief The pyramid level as implemented in gdal (level 2 is half original raster size etc) 141 : 0 : int mLevel = 0; 142 : : //! \brief XDimension for this pyramid layer 143 : 0 : int mXDim = 0; 144 : : //! \brief YDimension for this pyramid layer 145 : 0 : int mYDim = 0; 146 : : //! \brief Whether the pyramid layer has been built yet 147 : 0 : bool mExists = false; 148 : : //! \brief Whether the pyramid should be built 149 : 0 : bool mBuild = false; 150 : : 151 : : }; 152 : : #endif