OGS
VtkGeoImageSource.h
Go to the documentation of this file.
1// SPDX-FileCopyrightText: Copyright (c) OpenGeoSys Community (opengeosys.org)
2// SPDX-License-Identifier: BSD-3-Clause
3
4#pragma once
5
6#include <vtkSimpleImageToImageFilter.h>
7
8#include <optional>
9
10#include "GeoLib/Raster.h"
12
13namespace GeoLib
14{
15class Raster;
16}
17
18class QString;
19class QPointF;
20class QImage;
21class vtkQImageToImageSource;
22class vtkImageShiftScale;
23class vtkImageData;
24
28class VtkGeoImageSource : public vtkSimpleImageToImageFilter, public VtkAlgorithmProperties
29{
30public:
33
34 vtkTypeMacro(VtkGeoImageSource, vtkSimpleImageToImageFilter);
35
37 void PrintSelf(ostream& os, vtkIndent indent) override;
38
40 void operator=(const VtkGeoImageSource&) = delete;
41
43 vtkImageData* getImageData();
44
46 bool readImage(const QString &filename);
47
49 void setImage(vtkImageAlgorithm* image, const QString& name);
50
51 void SetUserProperty(QString name, QVariant value) override;
52
53 // @brief Converts the source object into a Raster object
54 static std::optional<GeoLib::Raster> convertToRaster(
55 VtkGeoImageSource* const source);
56
57protected:
60
62 ~VtkGeoImageSource() override;
63
65 void SimpleExecute(vtkImageData* input, vtkImageData* output) override;
66
67private:
68 vtkImageAlgorithm* _imageSource{nullptr};
69};
Class Raster is used for managing raster data.
Definition Raster.h:39
VtkAlgorithmProperties(QObject *parent=nullptr)
Constructor (sets default values)
vtkTypeMacro(VtkGeoImageSource, vtkSimpleImageToImageFilter)
VtkGeoImageSource(const VtkGeoImageSource &)=delete
static std::optional< GeoLib::Raster > convertToRaster(VtkGeoImageSource *const source)
VtkGeoImageSource()
Constructor.
void setImage(vtkImageAlgorithm *image, const QString &name)
Imports an existing image object.
void SetUserProperty(QString name, QVariant value) override
Sets a user property. This should be implemented by subclasses.
vtkImageAlgorithm * _imageSource
~VtkGeoImageSource() override
Destructor.
vtkImageData * getImageData()
Returns the ImageData object.
void PrintSelf(ostream &os, vtkIndent indent) override
Prints information about itself.
void SimpleExecute(vtkImageData *input, vtkImageData *output) override
Filter execution.
void operator=(const VtkGeoImageSource &)=delete
static VtkGeoImageSource * New()
Create new objects with New() because of VTKs reference counting.
bool readImage(const QString &filename)
Reads an image from file.