toc添加数据管理功能
This commit is contained in:
@ -2,11 +2,10 @@
|
||||
|
||||
#include "MapLayer.h"
|
||||
#include <memory>
|
||||
#include <QImage>
|
||||
#include <QVector>
|
||||
#include <vector>
|
||||
|
||||
class RasterDataProvider;
|
||||
class RasterRenderer;
|
||||
|
||||
class RasterLayer : public MapLayer
|
||||
{
|
||||
@ -17,9 +16,8 @@ public:
|
||||
|
||||
LayerType layerType() const override;
|
||||
|
||||
// Access provider/renderer
|
||||
// Access provider
|
||||
RasterDataProvider* dataProvider() const;
|
||||
RasterRenderer* renderer() const;
|
||||
|
||||
// Create or open provider based on this layer's uri
|
||||
bool openDataProvider();
|
||||
@ -27,29 +25,12 @@ public:
|
||||
bool isValidPixel(int x, int y);
|
||||
bool readPixelSpectrum(int x, int y, QVector<double>& wavelengths, QVector<double>& spectrum);
|
||||
|
||||
struct RenderParams {
|
||||
double rWave = 665.0; // default wavelengths (nm)
|
||||
double gWave = 560.0;
|
||||
double bWave = 490.0;
|
||||
double minValue = 0.0; // optional stretch
|
||||
double maxValue = 4095.0;
|
||||
};
|
||||
|
||||
// Render the raster using current provider and renderer. Returns an empty QImage on failure.
|
||||
QImage render(const RenderParams& params);
|
||||
|
||||
// Current render params stored per layer
|
||||
RenderParams currentRenderParams() const;
|
||||
void setCurrentRenderParams(const RenderParams& params);
|
||||
|
||||
// Get wavelength range from data provider (min, max). Returns false if unavailable.
|
||||
bool wavelengthRange(double& minWave, double& maxWave) const;
|
||||
|
||||
// Get all band wavelengths
|
||||
std::vector<double> bandWavelengths() const;
|
||||
|
||||
private:
|
||||
protected:
|
||||
std::unique_ptr<RasterDataProvider> m_provider;
|
||||
std::unique_ptr<RasterRenderer> m_renderer;
|
||||
RenderParams m_currentParams;
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user