37 vtkSmartPointer<vtkDataSetSurfaceFilter> surfaceFilter;
40 if (
dynamic_cast<vtkUnstructuredGrid*
>(
43 surfaceFilter = vtkSmartPointer<vtkDataSetSurfaceFilter>::New();
45 surface->SetInputConnection(surfaceFilter->GetOutputPort());
52 QWidget* parent =
nullptr;
54 QString fileName = QFileDialog::getOpenFileName(
55 parent,
"Select raster file to apply as texture",
56 settings.value(
"lastOpenedTextureFileDirectory").toString(),
57 "Raster files (*.asc *.grd *.bmp *.jpg *.png *.tif);;"
59 "NetCDF files (*.nc);;"
62 QFileInfo fi(fileName);
64 if ((fi.suffix().toLower() ==
"asc") || (fi.suffix().toLower() ==
"tif") ||
65 (fi.suffix().toLower() ==
"png") || (fi.suffix().toLower() ==
"grd") ||
66 (fi.suffix().toLower() ==
"jpg") || (fi.suffix().toLower() ==
"bmp"))
68 std::string name = fileName.toStdString();
73 QDir dir = QDir(fileName);
74 settings.setValue(
"lastOpenedTextureFileDirectory", dir.absolutePath());
77 else if (fi.suffix().toLower() ==
"nc")
90 ERR(
"VtkCompositeTextureOnSurfaceFilter::init(): Error reading texture "
VtkCompositeTextureOnSurfaceFilter(vtkAlgorithm *inputAlgorithm)
~VtkCompositeTextureOnSurfaceFilter() override
void SetUserProperty(QString name, QVariant value) override
Sets a user property. This should be implemented by subclasses.
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.