Go to the documentation of this file.
103 #ifndef vtkMultiThreshold_h
104 #define vtkMultiThreshold_h
196 int assoc,
const char* arrayName,
int component,
int allScalars );
198 int assoc,
int attribType,
int component,
int allScalars );
208 int AddLowpassIntervalSet(
double xmax,
int assoc,
const char* arrayName,
int component,
int allScalars );
209 int AddHighpassIntervalSet(
double xmin,
int assoc,
const char* arrayName,
int component,
int allScalars );
210 int AddBandpassIntervalSet(
double xmin,
double xmax,
int assoc,
const char* arrayName,
int component,
int allScalars );
211 int AddNotchIntervalSet(
double xlo,
double xhi,
int assoc,
const char* arrayName,
int component,
int allScalars );
261 else if ( this->Component > other.
Component )
264 if ( (! this->AllScalars) && other.
AllScalars )
266 else if ( this->AllScalars && (! other.
AllScalars) )
269 if ( this->Type == -1 )
271 if ( other.
Type == -1 )
272 return this->Name < other.
Name;
277 return this->Type < other.
Type;
303 virtual Interval* GetIntervalPointer();
310 double EndpointValues[2];
312 int EndpointClosures[2];
324 virtual Interval* GetIntervalPointer();
336 BooleanSet(
int sId,
int op,
int* inBegin,
int* inEnd ) : Inputs( inBegin, inEnd ) {
393 typedef std::map<NormKey,IntervalList>
RuleMap;
445 double xmin,
double xmax,
int assoc,
const char* arrayName,
int component,
int allScalars )
451 double xlo,
double xhi,
int assoc,
const char* arrayName,
int component,
int allScalars )
481 #endif // vtkMultiThreshold_h
std::vector< Set * > Sets
int AddBooleanSet(int operation, int numInputs, int *inputs)
virtual int FillInputPortInformation(int port, vtkInformation *info)
A subset of a mesh represented by a range of acceptable attribute values.
int AddIntervalSet(double xmin, double xmax, int omin, int omax, int assoc, int attribType, int component, int allScalars)
@ WOR
Include elements that belong to an odd number of input sets (a kind of "winding XOR")
virtual void PrintNodeName(ostream &os)
Print a graphviz node label statement (with fancy node name and shape).
std::vector< TruthTreeValues > TruthTree
@ NAND
Only include elements that don't belong to any input set.
#define vtkTypeMacro(thisClass, superclass)
int AddBandpassIntervalSet(double xmin, double xmax, int assoc, const char *arrayName, int component, int allScalars)
BooleanSet(int sId, int op, int *inBegin, int *inEnd)
Construct a new set with the given ID, operator, and inputs.
vtkMultiThreshold(const vtkMultiThreshold &)
int AddHighpassIntervalSet(double xmin, int assoc, const char *arrayName, int component, int allScalars)
abstract superclass for arrays of numeric data
VTKCOMMONCORE_EXPORT bool operator<(const vtkUnicodeString &lhs, const vtkUnicodeString &rhs)
NormKey Norm
This contains information about the attribute over which the interval is defined.
static vtkMultiThreshold * New()
int AddLowpassIntervalSet(double xmax, int assoc, const char *arrayName, int component, int allScalars)
int Operator
The boolean operation that will be performed on the inputs to obtain the output.
int AddIntervalSet(NormKey &nk, double xmin, double xmax, int omin, int omax)
std::vector< Interval * > IntervalList
A list of pointers to IntervalSets.
virtual ~vtkMultiThreshold()
int AddIntervalSet(double xmin, double xmax, int omin, int omax, int assoc, const char *arrayName, int component, int allScalars)
abstract class to specify cell behavior
virtual BooleanSet * GetBooleanSetPointer()
Avoid dynamic_casts. Subclasses must override.
virtual Interval * GetIntervalPointer()
represent and manipulate cell attribute data
std::map< NormKey, IntervalList > RuleMap
A map describing the IntervalSets that share a common attribute and norm.
a simple class to control print indentation
Closure
Whether the endpoint value of an interval should be included or excluded.
virtual BooleanSet * GetBooleanSetPointer()
Avoid dynamic_casts. Subclasses must override.
A subset of a mesh represented as a boolean set operation.
#define VTKFILTERSGENERAL_EXPORT
@ OR
Include an element if it belongs to any input set.
virtual void PrintNode(ostream &os)
Print a graphviz node name for use in an edge statement.
void ComputeNorm(vtkIdType cellId, vtkCell *cell, vtkDataArray *array, double cellNorm[2]) const
Compute the norm of a cell by calling NormFunction for all its points or for its single cell-centered...
@ AND
Only include an element if it belongs to all the input sets.
int OutputId
A unique identifier for this set.
virtual int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *)
virtual ~Set()
Virtual destructor since we have virtual members.
Set()
The index of the output mesh that will hold this set or -1 if the set is not output.
@ CLOSED
Specify a closed interval.
Norm
Norms that can be used to threshold vector attributes.
virtual Interval * GetIntervalPointer()
@ XOR
Include an element if it belongs to exactly one input set.
Threshold cells within multiple intervals.
virtual void PrintNode(ostream &os)
Print a graphviz node name for use in an edge statement.
abstract class for specifying dataset behavior
void PrintGraph(ostream &os)
virtual void PrintSelf(ostream &os, vtkIndent indent)
provides thread-safe access to cells
std::vector< int > Inputs
A list of input sets. These may be IntervalSets or BooleanSets.
std::vector< int > TruthTreeValues
A base class for representing threshold sets.
dataset represents arbitrary combinations of all possible cell types
int AddNotchIntervalSet(double xlo, double xhi, int assoc, const char *arrayName, int component, int allScalars)
virtual void PrintNode(ostream &os)=0
Print a graphviz node name for use in an edge statement.
int Match(double cellNorm[2])
Does the specified range fall inside the interval? For cell-centered attributes, only cellNorm[0] is ...
GLsizei const GLchar ** string
SetOperation
Operations that can be performed on sets to generate another set. Most of these operators take 2 or m...
A class with comparison operator used to index input array norms used in threshold rules.
void UpdateDependents(int id, std::set< int > &unresolvedOutputs, TruthTreeValues &setStates, vtkCellData *inCellData, vtkIdType cellId, vtkGenericCell *cell, std::vector< vtkUnstructuredGrid * > &outv)
Superclass for algorithms that produce only vtkMultiBlockDataSet as output.