100 #ifndef __vtkMultiThreshold_h
101 #define __vtkMultiThreshold_h
106 #include <vtkstd/vector>
107 #include <vtkstd/map>
108 #include <vtkstd/set>
109 #include <vtkstd/string>
191 int AddIntervalSet(
double xmin,
double xmax,
int omin,
int omax,
192 int assoc,
const char* arrayName,
int component,
int allScalars );
193 int AddIntervalSet(
double xmin,
double xmax,
int omin,
int omax,
194 int assoc,
int attribType,
int component,
int allScalars );
204 int AddLowpassIntervalSet(
double xmax,
int assoc,
const char* arrayName,
int component,
int allScalars );
205 int AddHighpassIntervalSet(
double xmin,
int assoc,
const char* arrayName,
int component,
int allScalars );
206 int AddBandpassIntervalSet(
double xmin,
double xmax,
int assoc,
const char* arrayName,
int component,
int allScalars );
207 int AddNotchIntervalSet(
double xlo,
double xhi,
int assoc,
const char* arrayName,
int component,
int allScalars );
212 int AddBooleanSet(
int operation,
int numInputs,
int* inputs );
216 int OutputSet(
int setId );
257 else if ( this->Component > other.
Component )
260 if ( (! this->AllScalars) && other.
AllScalars )
262 else if ( this->AllScalars && (! other.
AllScalars) )
265 if ( this->Type == -1 )
267 if ( other.
Type == -1 )
268 return this->Name < other.
Name;
273 return this->Type < other.
Type;
294 virtual void PrintNodeName( ostream& os );
296 virtual void PrintNode( ostream& os ) = 0;
299 virtual Interval* GetIntervalPointer();
306 double EndpointValues[2];
308 int EndpointClosures[2];
316 int Match(
double cellNorm[2] );
319 virtual void PrintNode( ostream& os );
320 virtual Interval* GetIntervalPointer();
332 BooleanSet(
int sId,
int op,
int* inBegin,
int* inEnd ) : Inputs( inBegin, inEnd ) {
337 virtual void PrintNode( ostream& os );
389 typedef vtkstd::map<NormKey,IntervalList>
RuleMap;
413 void UpdateDependents(
414 int id, vtkstd::set<int>& unresolvedOutputs, TruthTreeValues& setStates,
419 int AddIntervalSet(
NormKey& nk,
double xmin,
double xmax,
int omin,
int omax );
424 void PrintGraph( ostream& os );
441 double xmin,
double xmax,
int assoc,
const char* arrayName,
int component,
int allScalars )
447 double xlo,
double xhi,
int assoc,
const char* arrayName,
int component,
int allScalars )
477 #endif // __vtkMultiThreshold_h
Only include elements that don't belong to any input set.
A subset of a mesh represented by a range of acceptable attribute values.
virtual ~Set()
Virtual destructor since we have virtual members.
int Operator
The boolean operation that will be performed on the inputs to obtain the output.
A subset of a mesh represented as a boolean set operation.
int AddBooleanSet(int operation, int numInputs, int *inputs)
represent and manipulate cell attribute data
int OutputId
A unique identifier for this set.
virtual Interval * GetIntervalPointer()
Set()
The index of the output mesh that will hold this set or -1 if the set is not output.
BooleanSet(int sId, int op, int *inBegin, int *inEnd)
Construct a new set with the given ID, operator, and inputs.
NormKey Norm
This contains information about the attribute over which the interval is defined. ...
virtual BooleanSet * GetBooleanSetPointer()
Avoid dynamic_casts. Subclasses must override.
vtkstd::vector< Set * > Sets
vtkstd::vector< Interval * > IntervalList
A list of pointers to IntervalSets.
abstract class for specifying dataset behavior
Include elements that belong to an odd number of input sets (a kind of "winding XOR") ...
int AddBandpassIntervalSet(double xmin, double xmax, int assoc, const char *arrayName, int component, int allScalars)
int AddIntervalSet(double xmin, double xmax, int omin, int omax, int assoc, const char *arrayName, int component, int allScalars)
Superclass for algorithms that produce only vtkMultiBlockDataSet as output.
virtual int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *)
provides thread-safe access to cells
static vtkMultiBlockDataSetAlgorithm * New()
int AddLowpassIntervalSet(double xmax, int assoc, const char *arrayName, int component, int allScalars)
abstract class to specify cell behavior
int AddHighpassIntervalSet(double xmin, int assoc, const char *arrayName, int component, int allScalars)
vtkstd::vector< int > TruthTreeValues
a simple class to control print indentation
Closure
Whether the endpoint value of an interval should be included or excluded.
VTK_COMMON_EXPORT bool operator<(const vtkUnicodeString &lhs, const vtkUnicodeString &rhs)
dataset represents arbitrary combinations of all possible cell types
abstract superclass for arrays of numeric data
Include an element if it belongs to exactly one input set.
vtkstd::vector< TruthTreeValues > TruthTree
virtual Interval * GetIntervalPointer()
Specify a closed interval.
int AddNotchIntervalSet(double xlo, double xhi, int assoc, const char *arrayName, int component, int allScalars)
Only include an element if it belongs to all the input sets.
virtual int FillInputPortInformation(int port, vtkInformation *info)
vtkstd::vector< int > Inputs
A list of input sets. These may be IntervalSets or BooleanSets.
void PrintSelf(ostream &os, vtkIndent indent)
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...
Norm
Norms that can be used to threshold vector attributes.
Include an element if it belongs to any input set.
Threshold cells within multiple intervals.
vtkstd::map< NormKey, IntervalList > RuleMap
A map describing the IntervalSets that share a common attribute and norm.
virtual BooleanSet * GetBooleanSetPointer()
Avoid dynamic_casts. Subclasses must override.
A base class for representing threshold sets.