Skip to content
Snippets Groups Projects
Commit 5a8a0927 authored by Utkarsh Ayachit's avatar Utkarsh Ayachit
Browse files

Added ability to probe filter to allow disabling of passing field data.

There were use-cases when passing the input field data can cause problems.
Adding API to disable the default behavior as needed.

Also fix vtkCompositeDataProbeFilter to respect PassCellArrays and
PassPointArrays flags (BUG #0014613).

Change-Id: I9d3acc34dc945858198c9abd244d8a7a4cb018ef
parent 957dddda
No related branches found
No related tags found
No related merge requests found
......@@ -131,6 +131,7 @@ int vtkCompositeDataProbeFilter::RequestData(
idx++;
}
this->PassAttributeData(input, sourceComposite, output);
return 1;
}
//----------------------------------------------------------------------------
......
......@@ -55,6 +55,7 @@ vtkProbeFilter::vtkProbeFilter()
this->PassCellArrays = 0;
this->PassPointArrays = 0;
this->PassFieldArrays = 1;
}
//----------------------------------------------------------------------------
......@@ -120,6 +121,14 @@ int vtkProbeFilter::RequestData(
this->Probe(input, source, output);
this->PassAttributeData(input, source, output);
return 1;
}
//----------------------------------------------------------------------------
void vtkProbeFilter::PassAttributeData(
vtkDataSet* input, vtkDataObject* vtkNotUsed(source), vtkDataSet* output)
{
// copy point data arrays
if (this->PassPointArrays)
{
......@@ -140,7 +149,14 @@ int vtkProbeFilter::RequestData(
}
}
return 1;
if (this->PassFieldArrays)
{
// nothing to do, vtkDemandDrivenPipeline takes care of that.
}
else
{
output->GetFieldData()->Initialize();
}
}
//----------------------------------------------------------------------------
......@@ -554,4 +570,6 @@ void vtkProbeFilter::PrintSelf(ostream& os, vtkIndent indent)
os << indent << "ValidPointMaskArrayName: " << (this->ValidPointMaskArrayName?
this->ValidPointMaskArrayName : "vtkValidPointMask") << "\n";
os << indent << "ValidPoints: " << this->ValidPoints << "\n";
os << indent << "PassFieldArrays: "
<< (this->PassFieldArrays? "On" : " Off") << "\n";
}
......@@ -94,6 +94,14 @@ public:
vtkSetMacro(PassPointArrays, int);
vtkGetMacro(PassPointArrays, int);
// Description:
// Set whether to pass the field-data arrays from the Input i.e. the input
// providing the geometry to the output. On by default.
vtkSetMacro(PassFieldArrays, int);
vtkBooleanMacro(PassFieldArrays, int);
vtkGetMacro(PassFieldArrays, int);
//BTX
protected:
vtkProbeFilter();
......@@ -101,6 +109,7 @@ protected:
int PassCellArrays;
int PassPointArrays;
int PassFieldArrays;
int SpatialMatch;
......@@ -111,6 +120,12 @@ protected:
virtual int RequestUpdateExtent(vtkInformation *, vtkInformationVector **,
vtkInformationVector *);
// Description:
// Call at end of RequestData() to pass attribute data respecting the
// PassCellArrays, PassPointArrays, PassFieldArrays flags.
void PassAttributeData(
vtkDataSet* input, vtkDataObject* source, vtkDataSet* output);
// Description:
// Equivalent to calling InitializeForProbing(); ProbeEmptyPoints().
void Probe(vtkDataSet *input, vtkDataSet *source, vtkDataSet *output);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment