VTK
|
Threshold cells within multiple intervals. More...
#include <vtkMultiThreshold.h>
Classes | |
class | BooleanSet |
A subset of a mesh represented as a boolean set operation. More... | |
class | Interval |
A subset of a mesh represented by a range of acceptable attribute values. More... | |
class | NormKey |
A class with comparison operator used to index input array norms used in threshold rules. More... | |
class | Set |
A base class for representing threshold sets. More... | |
Public Types | |
enum | Closure { OPEN =0, CLOSED =1 } |
Whether the endpoint value of an interval should be included or excluded. More... | |
enum | Norm { LINFINITY_NORM =-3, L2_NORM =-2, L1_NORM =-1 } |
Norms that can be used to threshold vector attributes. More... | |
enum | SetOperation { AND, OR, XOR, WOR, NAND } |
Operations that can be performed on sets to generate another set. Most of these operators take 2 or more input sets. More... | |
typedef vtkMultiBlockDataSetAlgorithm | Superclass |
typedef double(* | TupleNorm )(vtkDataArray *arr, vtkIdType tuple, int component) |
A pointer to a function that returns a norm (or a single component) of a tuple with 1 or more components. More... | |
![]() | |
typedef vtkAlgorithm | Superclass |
![]() | |
typedef vtkObject | Superclass |
enum | DesiredOutputPrecision { SINGLE_PRECISION, DOUBLE_PRECISION, DEFAULT_PRECISION } |
Public Member Functions | |
virtual int | IsA (const char *type) |
vtkMultiThreshold * | NewInstance () const |
virtual void | PrintSelf (ostream &os, vtkIndent indent) |
int | AddBooleanSet (int operation, int numInputs, int *inputs) |
int | OutputSet (int setId) |
void | Reset () |
int | AddIntervalSet (double xmin, double xmax, int omin, int omax, int assoc, const char *arrayName, int component, int allScalars) |
int | AddIntervalSet (double xmin, double xmax, int omin, int omax, int assoc, int attribType, int component, int allScalars) |
int | AddLowpassIntervalSet (double xmax, int assoc, const char *arrayName, int component, int allScalars) |
int | AddHighpassIntervalSet (double xmin, int assoc, const char *arrayName, int component, int allScalars) |
int | AddBandpassIntervalSet (double xmin, double xmax, int assoc, const char *arrayName, int component, int allScalars) |
int | AddNotchIntervalSet (double xlo, double xhi, int assoc, const char *arrayName, int component, int allScalars) |
![]() | |
vtkMultiBlockDataSetAlgorithm * | NewInstance () const |
void | PrintSelf (ostream &os, vtkIndent indent) |
vtkMultiBlockDataSet * | GetOutput () |
vtkMultiBlockDataSet * | GetOutput (int) |
void | SetInputData (vtkDataObject *) |
void | SetInputData (int, vtkDataObject *) |
virtual int | ProcessRequest (vtkInformation *request, vtkInformationVector **inputVector, vtkInformationVector *outputVector) |
![]() | |
vtkAlgorithm * | NewInstance () const |
void | PrintSelf (ostream &os, vtkIndent indent) |
int | HasExecutive () |
vtkExecutive * | GetExecutive () |
virtual void | SetExecutive (vtkExecutive *executive) |
virtual int | ModifyRequest (vtkInformation *request, int when) |
vtkInformation * | GetInputPortInformation (int port) |
vtkInformation * | GetOutputPortInformation (int port) |
int | GetNumberOfInputPorts () |
int | GetNumberOfOutputPorts () |
void | UpdateProgress (double amount) |
vtkInformation * | GetInputArrayInformation (int idx) |
void | RemoveAllInputs () |
vtkDataObject * | GetOutputDataObject (int port) |
virtual void | RemoveInputConnection (int port, vtkAlgorithmOutput *input) |
virtual void | RemoveInputConnection (int port, int idx) |
virtual void | RemoveAllInputConnections (int port) |
int | GetNumberOfInputConnections (int port) |
int | GetTotalNumberOfInputConnections () |
vtkAlgorithmOutput * | GetInputConnection (int port, int index) |
vtkAlgorithm * | GetInputAlgorithm (int port, int index, int &algPort) |
vtkAlgorithm * | GetInputAlgorithm (int port, int index) |
vtkExecutive * | GetInputExecutive (int port, int index) |
vtkInformation * | GetInputInformation (int port, int index) |
vtkInformation * | GetOutputInformation (int port) |
virtual void | UpdateInformation () |
virtual void | PropagateUpdateExtent () |
virtual void | UpdateWholeExtent () |
void | ConvertTotalInputToPortConnection (int ind, int &port, int &conn) |
virtual double | ComputePriority () |
int | SetUpdateExtentToWholeExtent (int port) |
int | SetUpdateExtentToWholeExtent () |
void | SetUpdateExtent (int port, int extent[6]) |
int | ProcessRequest (vtkInformation *request, vtkCollection *inInfo, vtkInformationVector *outInfo) |
virtual int | ComputePipelineMTime (vtkInformation *request, vtkInformationVector **inInfoVec, vtkInformationVector *outInfoVec, int requestFromOutputPort, unsigned long *mtime) |
virtual vtkInformation * | GetInformation () |
virtual void | SetInformation (vtkInformation *) |
virtual void | Register (vtkObjectBase *o) |
virtual void | UnRegister (vtkObjectBase *o) |
virtual void | SetAbortExecute (int) |
virtual int | GetAbortExecute () |
virtual void | AbortExecuteOn () |
virtual void | AbortExecuteOff () |
virtual void | SetProgress (double) |
virtual double | GetProgress () |
void | SetProgressText (const char *ptext) |
virtual char * | GetProgressText () |
virtual unsigned long | GetErrorCode () |
virtual void | SetInputArrayToProcess (int idx, int port, int connection, int fieldAssociation, const char *name) |
virtual void | SetInputArrayToProcess (int idx, int port, int connection, int fieldAssociation, int fieldAttributeType) |
virtual void | SetInputArrayToProcess (int idx, vtkInformation *info) |
virtual void | SetInputArrayToProcess (int idx, int port, int connection, const char *fieldAssociation, const char *attributeTypeorName) |
vtkDataObject * | GetInputDataObject (int port, int connection) |
virtual void | SetInputConnection (int port, vtkAlgorithmOutput *input) |
virtual void | SetInputConnection (vtkAlgorithmOutput *input) |
virtual void | AddInputConnection (int port, vtkAlgorithmOutput *input) |
virtual void | AddInputConnection (vtkAlgorithmOutput *input) |
virtual void | SetInputDataObject (int port, vtkDataObject *data) |
virtual void | SetInputDataObject (vtkDataObject *data) |
virtual void | AddInputDataObject (int port, vtkDataObject *data) |
virtual void | AddInputDataObject (vtkDataObject *data) |
vtkAlgorithmOutput * | GetOutputPort (int index) |
vtkAlgorithmOutput * | GetOutputPort () |
vtkAlgorithm * | GetInputAlgorithm () |
vtkExecutive * | GetInputExecutive () |
vtkInformation * | GetInputInformation () |
virtual void | Update (int port) |
virtual void | Update () |
virtual void | SetReleaseDataFlag (int) |
virtual int | GetReleaseDataFlag () |
void | ReleaseDataFlagOn () |
void | ReleaseDataFlagOff () |
int | UpdateExtentIsEmpty (vtkInformation *pinfo, vtkDataObject *output) |
int | UpdateExtentIsEmpty (vtkInformation *pinfo, int extentType) |
void | SetUpdateExtent (int port, int piece, int numPieces, int ghostLevel) |
void | SetUpdateExtent (int piece, int numPieces, int ghostLevel) |
void | SetUpdateExtent (int extent[6]) |
int * | GetUpdateExtent () |
int * | GetUpdateExtent (int port) |
void | GetUpdateExtent (int &x0, int &x1, int &y0, int &y1, int &z0, int &z1) |
void | GetUpdateExtent (int port, int &x0, int &x1, int &y0, int &y1, int &z0, int &z1) |
void | GetUpdateExtent (int extent[6]) |
void | GetUpdateExtent (int port, int extent[6]) |
int | GetUpdatePiece () |
int | GetUpdatePiece (int port) |
int | GetUpdateNumberOfPieces () |
int | GetUpdateNumberOfPieces (int port) |
int | GetUpdateGhostLevel () |
int | GetUpdateGhostLevel (int port) |
Static Public Member Functions | |
static int | IsTypeOf (const char *type) |
static vtkMultiThreshold * | SafeDownCast (vtkObjectBase *o) |
static vtkMultiThreshold * | New () |
![]() | |
static vtkMultiBlockDataSetAlgorithm * | New () |
static int | IsTypeOf (const char *type) |
static vtkMultiBlockDataSetAlgorithm * | SafeDownCast (vtkObjectBase *o) |
![]() | |
static vtkAlgorithm * | New () |
static int | IsTypeOf (const char *type) |
static vtkAlgorithm * | SafeDownCast (vtkObjectBase *o) |
static void | SetDefaultExecutivePrototype (vtkExecutive *proto) |
static vtkInformationIntegerKey * | INPUT_IS_OPTIONAL () |
static vtkInformationIntegerKey * | INPUT_IS_REPEATABLE () |
static vtkInformationInformationVectorKey * | INPUT_REQUIRED_FIELDS () |
static vtkInformationStringVectorKey * | INPUT_REQUIRED_DATA_TYPE () |
static vtkInformationInformationVectorKey * | INPUT_ARRAYS_TO_PROCESS () |
static vtkInformationIntegerKey * | INPUT_PORT () |
static vtkInformationIntegerKey * | INPUT_CONNECTION () |
static vtkInformationIntegerKey * | PRESERVES_DATASET () |
static vtkInformationIntegerKey * | PRESERVES_GEOMETRY () |
static vtkInformationIntegerKey * | PRESERVES_BOUNDS () |
static vtkInformationIntegerKey * | PRESERVES_TOPOLOGY () |
static vtkInformationIntegerKey * | PRESERVES_ATTRIBUTES () |
static vtkInformationIntegerKey * | PRESERVES_RANGES () |
static vtkInformationIntegerKey * | MANAGES_METAINFORMATION () |
Protected Types | |
typedef std::vector< Interval * > | IntervalList |
A list of pointers to IntervalSets. More... | |
typedef std::map< NormKey, IntervalList > | RuleMap |
A map describing the IntervalSets that share a common attribute and norm. More... | |
typedef std::vector< int > | TruthTreeValues |
typedef std::vector < TruthTreeValues > | TruthTree |
enum | Ruling { INCONCLUSIVE =-1, INCLUDE =-2, EXCLUDE =-3 } |
Protected Member Functions | |
virtual vtkObjectBase * | NewInstanceInternal () const |
vtkMultiThreshold () | |
virtual | ~vtkMultiThreshold () |
virtual int | RequestData (vtkInformation *, vtkInformationVector **, vtkInformationVector *) |
virtual int | FillInputPortInformation (int port, vtkInformation *info) |
int | AddIntervalSet (NormKey &nk, double xmin, double xmax, int omin, int omax) |
void | PrintGraph (ostream &os) |
vtkMultiThreshold (const vtkMultiThreshold &) | |
void | operator= (const vtkMultiThreshold &) |
void | UpdateDependents (int id, std::set< int > &unresolvedOutputs, TruthTreeValues &setStates, vtkCellData *inCellData, vtkIdType cellId, vtkGenericCell *cell, std::vector< vtkUnstructuredGrid * > &outv) |
![]() | |
vtkMultiBlockDataSetAlgorithm () | |
~vtkMultiBlockDataSetAlgorithm () | |
virtual vtkExecutive * | CreateDefaultExecutive () |
virtual int | FillOutputPortInformation (int port, vtkInformation *info) |
vtkDataObject * | GetInput (int port) |
virtual int | RequestDataObject (vtkInformation *, vtkInformationVector **, vtkInformationVector *) |
virtual int | RequestInformation (vtkInformation *, vtkInformationVector **, vtkInformationVector *) |
virtual int | RequestUpdateExtent (vtkInformation *, vtkInformationVector **, vtkInformationVector *) |
![]() | |
vtkAlgorithm () | |
~vtkAlgorithm () | |
virtual void | SetNumberOfInputPorts (int n) |
virtual void | SetNumberOfOutputPorts (int n) |
int | InputPortIndexInRange (int index, const char *action) |
int | OutputPortIndexInRange (int index, const char *action) |
int | GetInputArrayAssociation (int idx, vtkInformationVector **inputVector) |
virtual void | ReportReferences (vtkGarbageCollector *) |
virtual void | SetNumberOfInputConnections (int port, int n) |
int | GetInputArrayAssociation (int idx, int connection, vtkInformationVector **inputVector) |
int | GetInputArrayAssociation (int idx, vtkDataObject *input) |
vtkDataArray * | GetInputArrayToProcess (int idx, vtkInformationVector **inputVector) |
vtkDataArray * | GetInputArrayToProcess (int idx, vtkInformationVector **inputVector, int &association) |
vtkDataArray * | GetInputArrayToProcess (int idx, int connection, vtkInformationVector **inputVector) |
vtkDataArray * | GetInputArrayToProcess (int idx, int connection, vtkInformationVector **inputVector, int &association) |
vtkDataArray * | GetInputArrayToProcess (int idx, vtkDataObject *input) |
vtkDataArray * | GetInputArrayToProcess (int idx, vtkDataObject *input, int &association) |
vtkAbstractArray * | GetInputAbstractArrayToProcess (int idx, vtkInformationVector **inputVector) |
vtkAbstractArray * | GetInputAbstractArrayToProcess (int idx, vtkInformationVector **inputVector, int &association) |
vtkAbstractArray * | GetInputAbstractArrayToProcess (int idx, int connection, vtkInformationVector **inputVector) |
vtkAbstractArray * | GetInputAbstractArrayToProcess (int idx, int connection, vtkInformationVector **inputVector, int &association) |
vtkAbstractArray * | GetInputAbstractArrayToProcess (int idx, vtkDataObject *input) |
vtkAbstractArray * | GetInputAbstractArrayToProcess (int idx, vtkDataObject *input, int &association) |
vtkInformation * | GetInputArrayFieldInformation (int idx, vtkInformationVector **inputVector) |
virtual void | SetNthInputConnection (int port, int index, vtkAlgorithmOutput *input) |
void | SetInputDataInternal (int port, vtkDataObject *input) |
void | AddInputDataInternal (int port, vtkDataObject *input) |
virtual void | SetErrorCode (unsigned long) |
Protected Attributes | |
int | NextArrayIndex |
int | NumberOfOutputs |
RuleMap | IntervalRules |
std::vector< Set * > | Sets |
TruthTree | DependentSets |
![]() | |
vtkInformation * | Information |
double | Progress |
char * | ProgressText |
unsigned long | ErrorCode |
Additional Inherited Members | |
![]() | |
int | AbortExecute |
![]() | |
static vtkInformationIntegerKey * | PORT_REQUIREMENTS_FILLED () |
![]() | |
static vtkExecutive * | DefaultExecutivePrototype |
Threshold cells within multiple intervals.
This filter can be substituted for a chain of several vtkThreshold filters and can also perform more sophisticated subsetting operations. It generates a vtkMultiBlockDataSet as its output. This multiblock dataset contains a vtkUnstructuredGrid for each thresholded subset you request. A thresholded subset can be a set defined by an interval over a point or cell attribute of the mesh; these subsets are called IntervalSets. A thresholded subset can also be a boolean combination of one or more IntervalSets; these subsets are called BooleanSets. BooleanSets allow complex logic since their output can depend on multiple intervals over multiple variables defined on the input mesh. This is useful because it eliminates the need for thresholding several times and then appending the results, as can be required with vtkThreshold when one wants to remove some range of values (e.g., a notch filter). Cells are not repeated when they belong to more than one interval unless those intervals have different output grids.
Another advantage this filter provides over vtkThreshold is the ability to threshold on non-scalar (i.e., vector, tensor, etc.) attributes without first computing an array containing some norm of the desired attribute. vtkMultiThreshold provides ,
, and
norms.
This filter makes a distinction between intermediate subsets and subsets that will be output to a grid. Each intermediate subset you create with AddIntervalSet or AddBooleanSet is given a unique integer identifier (via the return values of these member functions). If you wish for a given set to be output, you must call OutputSet and pass it one of these identifiers. The return of OutputSet is the integer index of the output set in the multiblock dataset created by this filter.
For example, if an input mesh defined three attributes T, P, and s, one might wish to find cells that satisfy "T < 320 [K] && ( P > 101 [kPa] || s < 0.1 [kJ/kg/K] )". To accomplish this with a vtkMultiThreshold filter,
vtkMultiThreshold* thr; int intervalSets[3];
intervalSets[0] = thr->AddIntervalSet( vtkMath::NegInf(), 320., vtkMultiThreshold::CLOSED, vtkMultiThreshold::OPEN, vtkDataObject::FIELD_ASSOCIATION_POINTS, "T", 0, 1 ); intervalSets[1] = thr->AddIntervalSet( 101., vtkMath::Inf(), vtkMultiThreshold::OPEN, vtkMultiThreshold::CLOSED, vtkDataObject::FIELD_ASSOCIATION_CELLS, "P", 0, 1 ); intervalSets[2] = thr->AddIntervalSet( vtkMath::NegInf(), 0.1, vtkMultiThreshold::CLOSED, vtkMultiThreshold::OPEN, vtkDataObject::FIELD_ASSOCIATION_POINTS, "s", 0, 1 );
int intermediate = thr->AddBooleanSet( vtkMultiThreshold::OR, 2, &intervalSets[1] );
int intersection[2]; intersection[0] = intervalSets[0]; intersection[1] = intermediate; int outputSet = thr->AddBooleanSet( vtkMultiThreshold::AND, 2, intersection );
int outputGridIndex = thr->OutputSet( outputSet ); thr->Update();
The result of this filter will be a multiblock dataset that contains a single child with the desired cells. If we had also called thr->OutputSet( intervalSets[0] );
, there would be two child meshes and one would contain all cells with T < 320 [K]. In that case, the output can be represented by this graph
The filled rectangles represent sets that are output.
Definition at line 119 of file vtkMultiThreshold.h.
Definition at line 122 of file vtkMultiThreshold.h.
typedef double(* vtkMultiThreshold::TupleNorm)(vtkDataArray *arr, vtkIdType tuple, int component) |
A pointer to a function that returns a norm (or a single component) of a tuple with 1 or more components.
Definition at line 224 of file vtkMultiThreshold.h.
|
protected |
A list of pointers to IntervalSets.
Definition at line 388 of file vtkMultiThreshold.h.
|
protected |
A map describing the IntervalSets that share a common attribute and norm.
Definition at line 390 of file vtkMultiThreshold.h.
|
protected |
Definition at line 392 of file vtkMultiThreshold.h.
|
protected |
Definition at line 393 of file vtkMultiThreshold.h.
Whether the endpoint value of an interval should be included or excluded.
Enumerator | |
---|---|
OPEN |
Specify an open interval. |
CLOSED |
Specify a closed interval. |
Definition at line 128 of file vtkMultiThreshold.h.
Norms that can be used to threshold vector attributes.
Enumerator | |
---|---|
LINFINITY_NORM |
Use the |
L2_NORM |
Use the |
L1_NORM |
Use the |
Definition at line 133 of file vtkMultiThreshold.h.
Operations that can be performed on sets to generate another set. Most of these operators take 2 or more input sets.
Definition at line 139 of file vtkMultiThreshold.h.
|
protected |
When an interval is evaluated, its value is used to update a truth table. If its value allows the output of the truth table to be determined, then either INCLUDE or EXCLUDE is returned. Otherwise, INCONCLUSIVE is returned and more intervals must be evaluated. As an example, consider the ruleset {A>10} & ( {6<B<8} | {C==12} ). We first evaluate A. Say A is 100. This makes the first rule true, but the value of the rule set is still indeterminate. INCONCLUSIVE is returned. Next we consider B. If B is 7, then INCLUDE will be returned and there is no need to examine C. If B is 0, then INCONCLUSIVE is returned again and we must examine C. If C is 12, then INCLUDE is returned, otherwise EXCLUDE is returned.
Enumerator | |
---|---|
INCONCLUSIVE | |
INCLUDE | |
EXCLUDE |
Definition at line 361 of file vtkMultiThreshold.h.
|
protected |
|
protectedvirtual |
|
protected |
|
static |
|
virtual |
Reimplemented from vtkMultiBlockDataSetAlgorithm.
|
static |
|
protectedvirtual |
Reimplemented from vtkMultiBlockDataSetAlgorithm.
vtkMultiThreshold* vtkMultiThreshold::NewInstance | ( | ) | const |
|
static |
|
virtual |
int vtkMultiThreshold::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. The subset can then be added to an output mesh with OuputSet() or combined with other sets using AddBooleanSet. If you wish to include all cells with values below some number a, call with xmin set to vtkMath::NegInf() and xmax set to a. Similarly, if you wish to include all cells with values above some number a, call with xmin set to a and xmax set to vtkMath::Inf(). When specifying Inf() or NegInf() for an endpoint, it does not matter whether you specify and open or closed endpoint. When creating intervals, any integers can be used for the IDs of output meshes. All that matters is that the same ID be used if intervals should output to the same mesh. The outputs are ordered with ascending IDs in output block 0. It is possible to specify an invalid interval, in which case these routines will return -1. Invalid intervals occur when - an array does not exist, - center is invalid, - xmin == xmax and omin and/or omax are vtkMultiThreshold::OPEN, or - xmin > xmax. - xmin or xmax is not a number (i.e., IEEE NaN). Having both xmin and xmax equal NaN is allowed. vtkMath provides a portable way to specify IEEE infinities and Nan. Note that specifying an interval completely out of the bounds of an attribute is considered valid. In fact, it is occasionally useful to create a closed interval with both endpoints set to or both endpoints set to
in order to locate cells with problematic values.
xmin | The minimum attribute value |
xmax | The maximum attribute value |
omin | Whether the interval should be open or closed at xmin. Use vtkMultiThreshold::OPEN or vtkMultiThreshold::CLOSED. |
omax | Whether the interval should be open or closed at xmax. Use vtkMultiThreshold::OPEN or vtkMultiThreshold::CLOSED. |
assoc | One of vtkDataObject::FIELD_ASSOCIATION_CELLS or vtkDataObject::FIELD_ASSOCIATION_POINTS indicating whether a point or cell array should be used. |
arrayName | The name of the array to use for thresholding |
attribType | The attribute to use for thresholding. One of vtkDataSetAttributes::SCALARS, VECTORS, TENSORS, NORMALS, TCOORDS, or GLOBALIDS. |
component | The number of the component to threshold on or one of the following enumerants for norms: LINFINITY_NORM, L2_NORM, L1_NORM. |
allScalars | When center is vtkDataObject::FIELD_ASSOCIATION_POINTS, must all scalars be in the interval for the cell to be passed to the output, or just a single point's scalar? |
int vtkMultiThreshold::AddIntervalSet | ( | double | xmin, |
double | xmax, | ||
int | omin, | ||
int | omax, | ||
int | assoc, | ||
int | attribType, | ||
int | component, | ||
int | allScalars | ||
) |
Add a mesh subset to be computed by thresholding an attribute of the input mesh. The subset can then be added to an output mesh with OuputSet() or combined with other sets using AddBooleanSet. If you wish to include all cells with values below some number a, call with xmin set to vtkMath::NegInf() and xmax set to a. Similarly, if you wish to include all cells with values above some number a, call with xmin set to a and xmax set to vtkMath::Inf(). When specifying Inf() or NegInf() for an endpoint, it does not matter whether you specify and open or closed endpoint. When creating intervals, any integers can be used for the IDs of output meshes. All that matters is that the same ID be used if intervals should output to the same mesh. The outputs are ordered with ascending IDs in output block 0. It is possible to specify an invalid interval, in which case these routines will return -1. Invalid intervals occur when - an array does not exist, - center is invalid, - xmin == xmax and omin and/or omax are vtkMultiThreshold::OPEN, or - xmin > xmax. - xmin or xmax is not a number (i.e., IEEE NaN). Having both xmin and xmax equal NaN is allowed. vtkMath provides a portable way to specify IEEE infinities and Nan. Note that specifying an interval completely out of the bounds of an attribute is considered valid. In fact, it is occasionally useful to create a closed interval with both endpoints set to or both endpoints set to
in order to locate cells with problematic values.
xmin | The minimum attribute value |
xmax | The maximum attribute value |
omin | Whether the interval should be open or closed at xmin. Use vtkMultiThreshold::OPEN or vtkMultiThreshold::CLOSED. |
omax | Whether the interval should be open or closed at xmax. Use vtkMultiThreshold::OPEN or vtkMultiThreshold::CLOSED. |
assoc | One of vtkDataObject::FIELD_ASSOCIATION_CELLS or vtkDataObject::FIELD_ASSOCIATION_POINTS indicating whether a point or cell array should be used. |
arrayName | The name of the array to use for thresholding |
attribType | The attribute to use for thresholding. One of vtkDataSetAttributes::SCALARS, VECTORS, TENSORS, NORMALS, TCOORDS, or GLOBALIDS. |
component | The number of the component to threshold on or one of the following enumerants for norms: LINFINITY_NORM, L2_NORM, L1_NORM. |
allScalars | When center is vtkDataObject::FIELD_ASSOCIATION_POINTS, must all scalars be in the interval for the cell to be passed to the output, or just a single point's scalar? |
|
inline |
These convenience members make it easy to insert closed intervals. The "notch" interval is accomplished by creating a bandpass interval and applying a NAND operation. In this case, the set ID returned in the NAND operation set ID. Note that you can pass xmin == xmax when creating a bandpass threshold to retrieve elements matching exactly one value (since the intervals created by these routines are closed).
Definition at line 431 of file vtkMultiThreshold.h.
|
inline |
These convenience members make it easy to insert closed intervals. The "notch" interval is accomplished by creating a bandpass interval and applying a NAND operation. In this case, the set ID returned in the NAND operation set ID. Note that you can pass xmin == xmax when creating a bandpass threshold to retrieve elements matching exactly one value (since the intervals created by these routines are closed).
Definition at line 436 of file vtkMultiThreshold.h.
|
inline |
These convenience members make it easy to insert closed intervals. The "notch" interval is accomplished by creating a bandpass interval and applying a NAND operation. In this case, the set ID returned in the NAND operation set ID. Note that you can pass xmin == xmax when creating a bandpass threshold to retrieve elements matching exactly one value (since the intervals created by these routines are closed).
Definition at line 441 of file vtkMultiThreshold.h.
|
inline |
These convenience members make it easy to insert closed intervals. The "notch" interval is accomplished by creating a bandpass interval and applying a NAND operation. In this case, the set ID returned in the NAND operation set ID. Note that you can pass xmin == xmax when creating a bandpass threshold to retrieve elements matching exactly one value (since the intervals created by these routines are closed).
Definition at line 447 of file vtkMultiThreshold.h.
int vtkMultiThreshold::AddBooleanSet | ( | int | operation, |
int | numInputs, | ||
int * | inputs | ||
) |
Create a new mesh subset using boolean operations on pre-existing sets.
int vtkMultiThreshold::OutputSet | ( | int | setId | ) |
Create an output mesh containing a boolean or interval subset of the input mesh.
void vtkMultiThreshold::Reset | ( | ) |
Remove all the intervals currently defined.
|
protectedvirtual |
This function performs the actual thresholding.
Reimplemented from vtkMultiBlockDataSetAlgorithm.
|
protectedvirtual |
We accept any mesh that is descended from vtkPointSet. In the future, it is possible to accept more types but this would require us to generate a new vtkPoints object for each output mesh.
Reimplemented from vtkMultiBlockDataSetAlgorithm.
|
protected |
Recursively update the setStates and unresolvedOutputs vectors based on this->DependentSets.
|
protected |
A utility method called by the public AddInterval members.
|
protected |
Print out a graphviz-formatted text description of all the sets.
|
protected |
|
protected |
A variable used to store the next index to use when calling SetInputArrayToProcess. Its value is stored in an interval's ArrayIndex member and used during RequestData to retrieve a pointer to the actual array.
Definition at line 381 of file vtkMultiThreshold.h.
|
protected |
The number of output datasets.
Definition at line 384 of file vtkMultiThreshold.h.
|
protected |
A set of threshold rules sorted by the attribute+norm to which they are applied.
Definition at line 397 of file vtkMultiThreshold.h.
|
protected |
A list of rules keyed by their unique integer ID. This list is used to quickly determine whether interval membership implies membership in a given output mesh.
Definition at line 402 of file vtkMultiThreshold.h.
|
protected |
A list of boolean sets whose values depend on the given set. Each time an interval is evaluated for a cell, the list of dependent boolean sets contained here is updated. Any boolean operations whose truth values are decided are then marked and their dependent sets are examined.
Definition at line 409 of file vtkMultiThreshold.h.