Line data Source code
1 : /****************************************************************************** 2 : * 3 : * Project: GDAL Core 4 : * Purpose: Implementation of GDALAllValidMaskBand, a class implementing all 5 : * a default 'all valid' band mask. 6 : * Author: Frank Warmerdam, warmerdam@pobox.com 7 : * 8 : ****************************************************************************** 9 : * Copyright (c) 2007, Frank Warmerdam 10 : * 11 : * SPDX-License-Identifier: MIT 12 : ****************************************************************************/ 13 : 14 : #include "cpl_port.h" 15 : #include "gdal_priv.h" 16 : 17 : #include <cstring> 18 : 19 : #include "gdal.h" 20 : #include "cpl_error.h" 21 : 22 : //! @cond Doxygen_Suppress 23 : /************************************************************************/ 24 : /* GDALAllValidMaskBand() */ 25 : /************************************************************************/ 26 : 27 25179 : GDALAllValidMaskBand::GDALAllValidMaskBand(GDALRasterBand *poParent) 28 25179 : : GDALRasterBand(FALSE) 29 : { 30 25179 : poDS = nullptr; 31 25179 : nBand = 0; 32 : 33 25179 : nRasterXSize = poParent->GetXSize(); 34 25179 : nRasterYSize = poParent->GetYSize(); 35 : 36 25179 : eDataType = GDT_Byte; 37 25179 : poParent->GetBlockSize(&nBlockXSize, &nBlockYSize); 38 25179 : } 39 : 40 : /************************************************************************/ 41 : /* ~GDALAllValidMaskBand() */ 42 : /************************************************************************/ 43 : 44 : GDALAllValidMaskBand::~GDALAllValidMaskBand() = default; 45 : 46 : /************************************************************************/ 47 : /* IReadBlock() */ 48 : /************************************************************************/ 49 : 50 335 : CPLErr GDALAllValidMaskBand::IReadBlock(int /* nXBlockOff */, 51 : int /* nYBlockOff */, void *pImage) 52 : { 53 335 : memset(pImage, 255, static_cast<size_t>(nBlockXSize) * nBlockYSize); 54 : 55 335 : return CE_None; 56 : } 57 : 58 : /************************************************************************/ 59 : /* GetMaskBand() */ 60 : /************************************************************************/ 61 : 62 135 : GDALRasterBand *GDALAllValidMaskBand::GetMaskBand() 63 : 64 : { 65 135 : return this; 66 : } 67 : 68 : /************************************************************************/ 69 : /* GetMaskFlags() */ 70 : /************************************************************************/ 71 : 72 6 : int GDALAllValidMaskBand::GetMaskFlags() 73 : 74 : { 75 6 : return GMF_ALL_VALID; 76 : } 77 : 78 : /************************************************************************/ 79 : /* ComputeStatistics() */ 80 : /************************************************************************/ 81 : 82 1 : CPLErr GDALAllValidMaskBand::ComputeStatistics( 83 : int /* bApproxOK */, double *pdfMin, double *pdfMax, double *pdfMean, 84 : double *pdfStdDev, GDALProgressFunc, void * /*pProgressData*/) 85 : { 86 1 : if (pdfMin) 87 1 : *pdfMin = 255.0; 88 1 : if (pdfMax) 89 1 : *pdfMax = 255.0; 90 1 : if (pdfMean) 91 1 : *pdfMean = 255.0; 92 1 : if (pdfStdDev) 93 1 : *pdfStdDev = 0.0; 94 1 : return CE_None; 95 : } 96 : 97 : //! @endcond