15#ifndef GDALMASKBANDS_H_INCLUDED
16#define GDALMASKBANDS_H_INCLUDED
19#include "gdal_rasterband.h"
31 CPLErr IReadBlock(
int,
int,
void *)
override;
34 int nYSize,
void *pData,
int nBufXSize,
int nBufYSize,
37 GDALRasterIOExtraArg *psExtraArg)
override;
40 EmitErrorMessageIfWriteNotSupported(
const char *pszCaller)
const override;
45 explicit GDALAllValidMaskBand(GDALRasterBand *);
46 ~GDALAllValidMaskBand()
override;
48 GDALRasterBand *GetMaskBand()
override;
49 int GetMaskFlags()
override;
51 bool IsMaskBand()
const override
56 GDALMaskValueRange GetMaskValueRange()
const override
58 return GMVR_0_AND_255_ONLY;
61 CPLErr ComputeStatistics(
int bApproxOK,
double *pdfMin,
double *pdfMax,
62 double *pdfMean,
double *pdfStdDev,
63 GDALProgressFunc,
void *pProgressData)
override;
72 friend class GDALRasterBand;
73 double m_dfNoDataValue = 0;
74 int64_t m_nNoDataValueInt64 = 0;
75 uint64_t m_nNoDataValueUInt64 = 0;
76 GDALRasterBand *m_poParent =
nullptr;
81 CPLErr IReadBlock(
int,
int,
void *)
override;
84 GDALRasterIOExtraArg *psExtraArg)
override;
87 EmitErrorMessageIfWriteNotSupported(
const char *pszCaller)
const override;
90 explicit GDALNoDataMaskBand(GDALRasterBand *);
91 explicit GDALNoDataMaskBand(GDALRasterBand *,
double dfNoDataValue);
92 ~GDALNoDataMaskBand()
override;
94 bool IsMaskBand()
const override
99 GDALMaskValueRange GetMaskValueRange()
const override
101 return GMVR_0_AND_255_ONLY;
104 static bool IsNoDataInRange(
double dfNoDataValue,
GDALDataType eDataType);
111class CPL_DLL GDALNoDataValuesMaskBand final :
public GDALRasterBand
113 double *padfNodataValues;
118 CPLErr IReadBlock(
int,
int,
void *)
override;
121 EmitErrorMessageIfWriteNotSupported(
const char *pszCaller)
const override;
124 explicit GDALNoDataValuesMaskBand(GDALDataset *);
125 ~GDALNoDataValuesMaskBand()
override;
127 bool IsMaskBand()
const override
132 GDALMaskValueRange GetMaskValueRange()
const override
134 return GMVR_0_AND_255_ONLY;
144 GDALRasterBand *poParent;
150 CPLErr IReadBlock(
int,
int,
void *)
override;
153 GDALRasterIOExtraArg *psExtraArg)
override;
156 EmitErrorMessageIfWriteNotSupported(
const char *pszCaller)
const override;
159 explicit GDALRescaledAlphaBand(GDALRasterBand *);
160 ~GDALRescaledAlphaBand()
override;
162 bool IsMaskBand()
const override
A single raster band (or channel).
Definition gdal_rasterband.h:108
CPLErr
Error category / error level.
Definition cpl_error.h:45
Core portability definitions for CPL.
#define CPL_DISALLOW_COPY_ASSIGN(ClassName)
Helper to remove the copy and assignment constructors so that the compiler will not generate the defa...
Definition cpl_port.h:1101
GIntBig GSpacing
Type to express pixel, line or band spacing.
Definition gdal.h:412
GDALDataType
Definition gdal.h:48
GDALRWFlag
Definition gdal.h:127