18 #include <vtkDataSetSurfaceFilter.h>
19 #include <vtkSmartPointer.h>
20 #include <vtkUnstructuredGrid.h>
30 #include <QFileDialog>
37 vtkAlgorithm* inputAlgorithm)
51 vtkSmartPointer<vtkDataSetSurfaceFilter> surfaceFilter;
54 if (
dynamic_cast<vtkUnstructuredGrid*
>(
57 surfaceFilter = vtkSmartPointer<vtkDataSetSurfaceFilter>::New();
59 surface->SetInputConnection(surfaceFilter->GetOutputPort());
66 QWidget* parent =
nullptr;
68 QString fileName = QFileDialog::getOpenFileName(
69 parent,
"Select raster file to apply as texture",
70 settings.value(
"lastOpenedTextureFileDirectory").toString(),
71 "Raster files (*.asc *.grd *.bmp *.jpg *.png *.tif);;"
73 "NetCDF files (*.nc);;"
76 QFileInfo fi(fileName);
78 if ((fi.suffix().toLower() ==
"asc") || (fi.suffix().toLower() ==
"tif") ||
79 (fi.suffix().toLower() ==
"png") || (fi.suffix().toLower() ==
"grd") ||
80 (fi.suffix().toLower() ==
"jpg") || (fi.suffix().toLower() ==
"bmp"))
82 std::string
name = fileName.toStdString();
87 QDir dir = QDir(fileName);
88 settings.setValue(
"lastOpenedTextureFileDirectory", dir.absolutePath());
91 else if (fi.suffix().toLower() ==
"nc")
104 ERR(
"VtkCompositeTextureOnSurfaceFilter::init(): Error reading texture "
void ERR(char const *fmt, Args const &... args)
Definition of the VtkCompositeTextureOnSurfaceFilter class.
Definition of the VtkGeoImageSource class.
Definition of the VtkRaster class.
Definition of the VtkTextureOnSurfaceFilter class.
virtual void SetUserProperty(QString name, QVariant value)
Sets a user property. This should be implemented by subclasses.
Is used to combine several filter in one VtkVisPipelineItem. You can use vtk filter and custom filter...
vtkAlgorithm * _outputAlgorithm
int _outputDataObjectType
vtkAlgorithm * _inputAlgorithm
VtkCompositeTextureOnSurfaceFilter(vtkAlgorithm *inputAlgorithm)
~VtkCompositeTextureOnSurfaceFilter() override
void SetUserProperty(QString name, QVariant value) override
Sets a user property. This should be implemented by subclasses.
The VtkVisPipeline source object of a geo-referenced image (file).
static vtkImageAlgorithm * loadImage(const std::string &fileName)
Loads an image- or raster-file into an vtkImageAlgorithm-Object.
Filter class for assigning a texture to a surface.
static VtkTextureOnSurfaceFilter * New()
Create new objects with New() because of VTKs object reference counting.
void SetRaster(vtkImageAlgorithm *img)
Sets the raster/image to be used as a texture map.