SWMMVis  6.0.0-alpha.4
Qt6/C++ GIS-based graphical user interface for the SWMMVis engine (6.0.0-alpha.4)
Loading...
Searching...
No Matches
dtmsampler.h
Go to the documentation of this file.
1
11#ifndef OPENSWMMVIS_MESH_DTMSAMPLER_H
12#define OPENSWMMVIS_MESH_DTMSAMPLER_H
13
14#include <QPointF>
15#include <QString>
16#include <QVector>
17
18class GDALDataset;
19
20namespace mesh {
21
23{
24public:
25 DTMSampler();
27
28 DTMSampler(const DTMSampler &) = delete;
29 DTMSampler &operator=(const DTMSampler &) = delete;
30
35 bool open(const QString &path, int band = 1);
36
37 void close();
38 [[nodiscard]] bool isOpen() const noexcept;
39
42 [[nodiscard]] double sample(double x, double y) const;
43
45 [[nodiscard]] QVector<double> sampleBulk(const QVector<QPointF> &pts) const;
46
50 [[nodiscard]] double pixelSize() const;
51
53 [[nodiscard]] QString crsWkt() const;
54
56 [[nodiscard]] QString errorMsg() const { return m_errorMsg; }
57
58private:
59 GDALDataset *m_ds = nullptr;
60 int m_band = 1;
61 double m_geo[6] = {0,0,0,0,0,0};
62 double m_invGeo[6] = {0,0,0,0,0,0};
63 int m_width = 0;
64 int m_height = 0;
65 double m_noData = 0.0;
66 bool m_hasNoData = false;
67 mutable QString m_errorMsg;
68};
69
70} // namespace mesh
71
72#endif // OPENSWMMVIS_MESH_DTMSAMPLER_H
Definition dtmsampler.h:23
QString crsWkt() const
Native CRS WKT of the raster (empty if the file had none).
Definition dtmsampler.cpp:113
bool isOpen() const noexcept
Definition dtmsampler.cpp:50
DTMSampler()
Definition dtmsampler.cpp:38
void close()
Definition dtmsampler.cpp:42
double pixelSize() const
Mean absolute pixel size in raster-CRS units (0 when closed). Callers resampling along a path use thi...
Definition dtmsampler.cpp:107
QString errorMsg() const
Last error message produced by open or sample.
Definition dtmsampler.h:56
DTMSampler(const DTMSampler &)=delete
DTMSampler & operator=(const DTMSampler &)=delete
bool open(const QString &path, int band=1)
Open a raster by path. Returns false on failure (set errorMsg).
Definition dtmsampler.cpp:52
double sample(double x, double y) const
Sample one coordinate (in raster CRS). Returns NaN on out-of-bounds or NoData.
Definition dtmsampler.cpp:120
~DTMSampler()
Definition dtmsampler.cpp:40
QVector< double > sampleBulk(const QVector< QPointF > &pts) const
Sample many points; result.size() == pts.size().
Definition dtmsampler.cpp:206
QVector< QPointF > pts
Definition meshpatch.cpp:62
Definition meshcommands.h:302
int path
Definition pslgminsize.cpp:234