Hello Experts,
I want to apply the Extract Subset filter to a loaded volume data directly from the custom application script. The examples I have seen use GUI implementations. I want to know how can I just apply the filter without any GUI.
Thank you
What is the custom application script ?
The mainWindow.cxx (similar to the ones in the example applications). I load in data by a reader, create data representation and render it.
// read data
pqPipelineSource* pipelineSource = pqLoadDataReaction::loadData(files, "sources", "PVDReader");
pipelineSource->updatePipeline();
// get the object builder
pqObjectBuilder *builder = pqApplicationCore::instance()->getObjectBuilder();
// create data representation and add it to render view
pqDataRepresentation *drep = builder->createDataRepresentation(pipelineSource->getOutputPort(0), view);
auto dProxy = drep->getProxy();
vtkSMPropertyHelper(dProxy, "Representation").Set("Volume");
// use color and opacity from original data
vtkSMPropertyHelper(dProxy, "UseSeparateColorMap").Set(1);
vtkSMColorMapEditorHelper::SetScalarColoring(dProxy, "MetaImage", vtkDataObject::POINT);
vtkSMColorMapEditorHelper::RescaleTransferFunctionToDataRange(dProxy, false, false);
dProxy->UpdateVTKObjects();
drep->setVisible(true);
pqObjectBuilder::createFilter
ParaView: pqObjectBuilder Class Reference
Yes, I did try this with group = “filters” and name = “ExtractSubset”, but I couldn’t figure out how do I set the parameters for the filters, such as the VOI
use vtkSMPropertyHelper
ParaView: vtkSMPropertyHelper Class Reference
Ok, thanks will do so. Also the parameters I passed seem incorrect.
No proxy that matches: group=filters and proxy=ExtractSubset were found.
Is there any reference where I can find the accepted values?
Thanks alot
In the XML files of ParaView:
https://gitlab.kitware.com/paraview/paraview/-/blob/master/VTKExtensions/FiltersGeneral/Resources/general_filters.xml?ref_type=heads#L1090
As you can see Extract Subset
is the label, you want to use the name ExtractGrid
.
Thanks alot!
pipelineSource = builder->createFilter("filters", "ExtractGrid", pipelineSource);
int voi[6] = {0, 128, 0, 128, 0, 128};
vtkSMPropertyHelper(pipelineSource->getProxy(), "VOI").Set(voi, 6);
pipelineSource->getProxy()->UpdateVTKObjects();