17 #ifndef vtkDaxThresholdImpl_h
18 #define vtkDaxThresholdImpl_h
21 #include "vtkDaxConfig.h"
54 #include "vtkToDax/CellTypeToType.h"
55 #include "vtkToDax/Containers.h"
56 #include "vtkToDax/DataSetTypeToType.h"
57 #include "vtkToDax/FieldTypeToType.h"
58 #include "vtkToDax/Portals.h"
59 #include "vtkToDax/Threshold.h"
76 vtkCell* cell,
double lower,
double upper):
77 Input(in),Cell(cell),Min(lower),Max(upper),Result(out){}
79 template<
typename LHS>
84 switch(arrayField.GetNumberOfComponents())
89 typedef typename vtkToDax::FieldTypeToType<LHS,1>::DaxValueType VT1;
90 return dispatchOnFieldType<LHS,VT1>(arrayField);
92 typedef typename vtkToDax::FieldTypeToType<LHS,2>::DaxValueType VT2;
93 return dispatchOnFieldType<LHS,VT2>(arrayField);
95 typedef typename vtkToDax::FieldTypeToType<LHS,3>::DaxValueType VT3;
96 return dispatchOnFieldType<LHS,VT3>(arrayField);
107 template<
typename VTKArrayType,
typename DaxValueType>
110 typedef vtkToDax::vtkArrayContainerTag<VTKArrayType> FieldTag;
111 typedef dax::cont::ArrayHandle<DaxValueType,FieldTag> FieldHandle;
112 typedef typename dax::cont::ArrayHandle<DaxValueType,
113 FieldTag>::PortalConstControl PortalType;
115 FieldHandle
field = FieldHandle( PortalType(&vtkField,
116 vtkField.GetNumberOfTuples() ) );
117 vtkToDax::Threshold<FieldHandle> threshold(field,
120 threshold.setFieldName(vtkField.GetName());
121 threshold.setOutputGrid(this->Result);
137 int validThreshold = dataDispatcher.
Go(this->Input,this->Cell);
138 return validThreshold;
168 return fieldDispatcher.
Go(field);
ReturnType Go(BaseLhs *lhs, BaseRhs *rhs)
abstract class to specify dataset behavior
a cell that represents a 3D point
dynamic, self-adjusting array of float
a cell that represents a 2D quadrilateral
dynamic, self-adjusting array of double
a 3D cell that represents a tetrahedron
cell represents a 1D line
abstract class to specify cell behavior
dynamic, self-adjusting array of int
Dispatch to functor based on two pointer types.
a cell that represents a 3D orthogonal parallelepiped
int Threshold(vtkDataSet *input, vtkUnstructuredGrid *output, vtkDataArray *field, double lower, double upper)
topologically and geometrically regular array of data
dataset represents arbitrary combinations of all possible cell types
abstract superclass for arrays of numeric data
a cell that represents a linear 3D hexahedron
Dispatch to functor based on a pointer type.
dynamic, self-adjusting array of unsigned char
CellTypeInDataSet cellType(vtkDataSet *input)
ReturnType Go(BaseLhs *lhs)
a cell that represents a triangle
a 3D cell that represents a linear wedge