1、为图层添加渲染器和读取器,分离图层基础信息、渲染和读写;
2、LayerTreeLayerNode持有MapLayer图层引用,为右键菜单做准备; 3、改名:imageviewer → mapcavas,mapcavas持有MapLayer图层引用,为刷新图像做准备;
This commit is contained in:
@ -1,6 +1,11 @@
|
||||
#pragma once
|
||||
|
||||
#include "MapLayer.h"
|
||||
#include <memory>
|
||||
#include <QImage>
|
||||
|
||||
class RasterDataProvider;
|
||||
class RasterRenderer;
|
||||
|
||||
class RasterLayer : public MapLayer
|
||||
{
|
||||
@ -10,5 +15,25 @@ public:
|
||||
|
||||
LayerType layerType() const override;
|
||||
|
||||
// future: renderer, data provider, etc.
|
||||
// Access provider/renderer
|
||||
RasterDataProvider* dataProvider() const;
|
||||
RasterRenderer* renderer() const;
|
||||
|
||||
// Create or open provider based on this layer's uri
|
||||
bool openDataProvider();
|
||||
|
||||
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 = 255.0;
|
||||
};
|
||||
|
||||
// Render the raster using current provider and renderer. Returns an empty QImage on failure.
|
||||
QImage render(const RenderParams& params);
|
||||
|
||||
private:
|
||||
std::unique_ptr<RasterDataProvider> m_provider;
|
||||
std::unique_ptr<RasterRenderer> m_renderer;
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user