Go to the documentation of this file.
11 #ifndef vtk_m_worklet_connectivity_InnerJoin_h
12 #define vtk_m_worklet_connectivity_InnerJoin_h
24 namespace connectivity
39 template <
typename KeyType,
typename ValueType1,
typename InPortalType,
typename ValueType2>
44 const InPortalType& value2,
46 ValueType1& value1Out,
47 ValueType2& value2Out)
const
49 auto v2 = value2.Get(lowerBounds + visitIndex);
59 template <
typename Key,
typename Value1,
typename Value2>
81 mergeDisp.Invoke(key1, value1, lbs, value2, keyOut, value1Out, value2Out);
97 Algorithm::Copy(componentsInOut, uniqueComponents);
98 Algorithm::Sort(uniqueComponents);
99 Algorithm::Unique(uniqueComponents);
118 Algorithm::SortByKey(pixelIdsOut, componentsInOut);
125 #endif //vtk_m_worklet_connectivity_InnerJoin_h
static void Run(vtkm::cont::ArrayHandle< vtkm::Id > &componentsInOut)
Definition: InnerJoin.h:88
VTKM_CONT vtkm::Id GetNumberOfValues() const
Returns the number of entries in the array.
Definition: ArrayHandle.h:448
static VTKM_CONT void SortByKey(vtkm::cont::DeviceAdapterId devId, vtkm::cont::ArrayHandle< T, StorageT > &keys, vtkm::cont::ArrayHandle< U, StorageU > &values)
Definition: Algorithm.h:993
Manages an array-worth of data.
Definition: ArrayHandle.h:283
#define VTKM_EXEC
Definition: ExportMacros.h:51
Groups connected points that have the same field value.
Definition: Atomic.h:19
A control signature tag for output fields.
Definition: WorkletMapField.h:60
static VTKM_CONT void UpperBounds(vtkm::cont::DeviceAdapterId devId, const vtkm::cont::ArrayHandle< T, CIn > &input, const vtkm::cont::ArrayHandle< T, CVal > &values, vtkm::cont::ArrayHandle< vtkm::Id, COut > &output)
Definition: Algorithm.h:1091
static VTKM_CONT void LowerBounds(vtkm::cont::DeviceAdapterId devId, const vtkm::cont::ArrayHandle< T, CIn > &input, const vtkm::cont::ArrayHandle< T, CVal > &values, vtkm::cont::ArrayHandle< vtkm::Id, COut > &output)
Definition: Algorithm.h:604
_1 InputDomain
Definition: InnerJoin.h:34
VTKM_EXEC void operator()(KeyType key, ValueType1 value1, vtkm::Id lowerBounds, vtkm::Id visitIndex, const InPortalType &value2, vtkm::Id &keyOut, ValueType1 &value1Out, ValueType2 &value2Out) const
Definition: InnerJoin.h:40
vtkm::Int32 Id
Represents an ID (index into arrays).
Definition: Types.h:191
void(FieldIn, FieldIn, FieldIn, WholeArrayIn, FieldOut, FieldOut, FieldOut) ControlSignature
Definition: InnerJoin.h:32
A scatter that maps input to some numbers of output.
Definition: ScatterCounting.h:44
Dispatcher for worklets that inherit from WorkletMapField.
Definition: DispatcherMapField.h:25
Definition: InnerJoin.h:29
A control signature tag for input fields.
Definition: WorkletMapField.h:49
Definition: InnerJoin.h:85
void(_1, _2, _3, VisitIndex, _4, _5, _6, _7) ExecutionSignature
Definition: InnerJoin.h:33
Definition: Algorithm.h:385
static VTKM_CONT void Transform(vtkm::cont::DeviceAdapterId devId, const vtkm::cont::ArrayHandle< T, StorageT > &input1, const vtkm::cont::ArrayHandle< U, StorageU > &input2, vtkm::cont::ArrayHandle< V, StorageV > &output, BinaryFunctor binaryFunctor)
Definition: Algorithm.h:1037
Definition: InnerJoin.h:26
The ExecutionSignature tag to use to get the visit index.
Definition: VisitIndex.h:43
static void Run(vtkm::cont::ArrayHandle< Key > &key1, vtkm::cont::ArrayHandle< Value1 > &value1, vtkm::cont::ArrayHandle< Key > &key2, vtkm::cont::ArrayHandle< Value2 > &value2, vtkm::cont::ArrayHandle< Key > &keyOut, vtkm::cont::ArrayHandle< Value1 > &value1Out, vtkm::cont::ArrayHandle< Value2 > &value2Out)
Definition: InnerJoin.h:60
An implicit array handle containing the its own indices.
Definition: ArrayHandleIndex.h:54
Base class for worklets that do a simple mapping of field arrays.
Definition: WorkletMapField.h:38