|  | VTK
    9.0.1
    | 
 
 
 
Go to the documentation of this file.
  103 #ifndef vtkMultiThreshold_h 
  104 #define vtkMultiThreshold_h 
  106 #include "vtkFiltersGeneralModule.h"  
  206   int AddIntervalSet(
double xmin, 
double xmax, 
int omin, 
int omax, 
int assoc, 
const char* arrayName,
 
  208   int AddIntervalSet(
double xmin, 
double xmax, 
int omin, 
int omax, 
int assoc, 
int attribType,
 
  220   int AddLowpassIntervalSet(
 
  221     double xmax, 
int assoc, 
const char* arrayName, 
int component, 
int allScalars);
 
  222   int AddHighpassIntervalSet(
 
  223     double xmin, 
int assoc, 
const char* arrayName, 
int component, 
int allScalars);
 
  224   int AddBandpassIntervalSet(
 
  225     double xmin, 
double xmax, 
int assoc, 
const char* arrayName, 
int component, 
int allScalars);
 
  226   int AddNotchIntervalSet(
 
  227     double xlo, 
double xhi, 
int assoc, 
const char* arrayName, 
int component, 
int allScalars);
 
  233   int AddBooleanSet(
int operation, 
int numInputs, 
int* inputs);
 
  238   int OutputSet(
int setId);
 
  290       else if (this->Component > other.
Component)
 
  295       else if (this->AllScalars && (!other.
AllScalars))
 
  298       if (this->Type == -1)
 
  300         if (other.
Type == -1)
 
  301           return this->Name < other.
Name;
 
  306         return this->Type < other.
Type;
 
  324     Set() { this->OutputId = -1; }
 
  328     virtual void PrintNodeName(ostream& os);
 
  330     virtual void PrintNode(ostream& os) = 0;
 
  333     virtual Interval* GetIntervalPointer();
 
  341     double EndpointValues[2];
 
  343     int EndpointClosures[2];
 
  352     int Match(
double cellNorm[2]);
 
  355     void PrintNode(ostream& os) 
override;
 
  356     Interval* GetIntervalPointer() 
override;
 
  370       : Inputs(inBegin, inEnd)
 
  376     void PrintNode(ostream& os) 
override;
 
  432   typedef std::map<NormKey, IntervalList> 
RuleMap;
 
  460   void UpdateDependents(
int id, std::set<int>& unresolvedOutputs, 
TruthTreeValues& setStates,
 
  462     std::vector<vtkUnstructuredGrid*>& outv);
 
  467   int AddIntervalSet(
NormKey& nk, 
double xmin, 
double xmax, 
int omin, 
int omax);
 
  472   void PrintGraph(ostream& os);
 
  479   double xmax, 
int assoc, 
const char* arrayName, 
int component, 
int allScalars)
 
  486   double xmin, 
int assoc, 
const char* arrayName, 
int component, 
int allScalars)
 
  493   double xmin, 
double xmax, 
int assoc, 
const char* arrayName, 
int component, 
int allScalars)
 
  499   double xlo, 
double xhi, 
int assoc, 
const char* arrayName, 
int component, 
int allScalars)
 
  530 #endif // vtkMultiThreshold_h 
  
std::vector< Set * > Sets
A list of rules keyed by their unique integer ID.
int AddBooleanSet(int operation, int numInputs, int *inputs)
Create a new mesh subset using boolean operations on pre-existing sets.
TruthTree DependentSets
A list of boolean sets whose values depend on the given set.
A subset of a mesh represented by a range of acceptable attribute values.
@ WOR
Include elements that belong to an odd number of input sets (a kind of "winding XOR")
std::vector< TruthTreeValues > TruthTree
@ NAND
Only include elements that don't belong to any input set.
Ruling
When an interval is evaluated, its value is used to update a truth table.
static vtkMultiBlockDataSetAlgorithm * New()
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.
int AddHighpassIntervalSet(double xmin, int assoc, const char *arrayName, int component, int allScalars)
abstract superclass for arrays of numeric data
NormKey Norm
This contains information about the attribute over which the interval is defined.
static double Inf()
Special IEEE-754 number used to represent positive infinity.
int AddLowpassIntervalSet(double xmax, int assoc, const char *arrayName, int component, int allScalars)
These convenience members make it easy to insert closed intervals.
virtual int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *)
This is called by the superclass.
std::map< NormKey, IntervalList > RuleMap
A map describing the IntervalSets that share a common attribute and norm.
static double NegInf()
Special IEEE-754 number used to represent negative infinity.
int Operator
The boolean operation that will be performed on the inputs to obtain the output.
std::vector< Interval * > IntervalList
A list of pointers to IntervalSets.
Interval * GetIntervalPointer() override
int AddIntervalSet(double xmin, double xmax, int omin, int omax, int assoc, const char *arrayName, int component, int allScalars)
Add a mesh subset to be computed by thresholding an attribute of the input mesh.
BooleanSet * GetBooleanSetPointer() override
Avoid dynamic_casts. Subclasses must override.
abstract class to specify cell behavior
represent and manipulate cell attribute data
a simple class to control print indentation
Closure
Whether the endpoint value of an interval should be included or excluded.
int NumberOfOutputs
The number of output datasets.
virtual BooleanSet * GetBooleanSetPointer()
Avoid dynamic_casts. Subclasses must override.
bool operator<(const NormKey &other) const
A partial ordering of NormKey objects is required for them to serve as keys in the vtkMultiThreshold:...
RuleMap IntervalRules
A set of threshold rules sorted by the attribute+norm to which they are applied.
A subset of a mesh represented as a boolean set operation.
@ OR
Include an element if it belongs to any input set.
@ AND
Only include an element if it belongs to all the input sets.
int OutputId
A unique identifier for this set.
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.
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
@ 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.
abstract class for specifying dataset behavior
int FillInputPortInformation(int port, vtkInformation *info) override
Fill the input port information objects for this algorithm.
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)
SetOperation
Operations that can be performed on sets to generate another set.
A class with comparison operator used to index input array norms used in threshold rules.
int NextArrayIndex
A variable used to store the next index to use when calling SetInputArrayToProcess.
Superclass for algorithms that produce only vtkMultiBlockDataSet as output.