Go to the documentation of this file.
10 #ifndef vtk_m_worklet_ScatterCounting_h
11 #define vtk_m_worklet_ScatterCounting_h
14 #include <vtkm/worklet/vtkm_worklet_export.h>
28 struct ScatterCountingBuilder;
64 bool saveInputToOutputMap =
false)
66 this->BuildArrays(countArray, device, saveInputToOutputMap);
69 bool saveInputToOutputMap)
71 this->BuildArrays(countArray, vtkm::cont::DeviceAdapterTagAny(), saveInputToOutputMap);
76 template <
typename RangeType>
79 return this->OutputToInputMap;
83 template <
typename RangeType>
86 return this->VisitArray;
92 if (inputRange != this->InputRange)
94 std::stringstream msg;
95 msg <<
"ScatterCounting initialized with input domain of size " << this->InputRange
96 <<
" but used with a worklet invoke of size " << inputRange << std::endl;
99 return this->VisitArray.GetNumberOfValues();
104 return this->GetOutputRange(inputRange[0] * inputRange[1] * inputRange[2]);
122 friend struct detail::ScatterCountingBuilder;
126 bool saveInputToOutputMap);
131 #endif //vtk_m_worklet_ScatterCounting_h
VTKM_CONT OutputToInputMapType GetOutputToInputMap() const
Definition: ScatterCounting.h:108
Groups connected points that have the same field value.
Definition: Atomic.h:19
An ArrayHandle of an unknown value type and storage.
Definition: UnknownArrayHandle.h:406
VTKM_CONT VisitArrayType GetVisitArray(RangeType) const
Definition: ScatterCounting.h:84
int16_t Int16
Definition: Types.h:158
vtkm::Int32 Id
Represents an ID (index into arrays).
Definition: Types.h:191
vtkm::cont::ArrayHandle< vtkm::Id > InputToOutputMap
Definition: ScatterCounting.h:118
A scatter that maps input to some numbers of output.
Definition: ScatterCounting.h:44
VTKM_CONT vtkm::cont::ArrayHandle< vtkm::Id > GetInputToOutputMap() const
This array will not be valid unless explicitly instructed to be saved.
Definition: ScatterCounting.h:114
int8_t Int8
Definition: Types.h:156
VTKM_CONT vtkm::Id GetOutputRange(vtkm::Id inputRange) const
Definition: ScatterCounting.h:90
VTKM_CONT OutputToInputMapType GetOutputToInputMap(RangeType) const
Definition: ScatterCounting.h:77
#define VTKM_CONT
Definition: ExportMacros.h:57
VisitArrayType VisitArray
Definition: ScatterCounting.h:120
uint8_t UInt8
Definition: Types.h:157
Definition: DeviceAdapterTag.h:52
VTKM_CONT ScatterCounting(const vtkm::cont::UnknownArrayHandle &countArray, vtkm::cont::DeviceAdapterId device=vtkm::cont::DeviceAdapterTagAny(), bool saveInputToOutputMap=false)
Construct a ScatterCounting object using an array of counts for the number of outputs for each input.
Definition: ScatterCounting.h:62
uint32_t UInt32
Definition: Types.h:161
This class is thrown when a VTKm function or method encounters an invalid value that inhibits progres...
Definition: ErrorBadValue.h:25
VTKM_CONT vtkm::Id GetOutputRange(vtkm::Id3 inputRange) const
Definition: ScatterCounting.h:102
int32_t Int32
Definition: Types.h:160
VTKM_CONT ScatterCounting(const vtkm::cont::UnknownArrayHandle &countArray, bool saveInputToOutputMap)
Definition: ScatterCounting.h:68
vtkm::Id InputRange
Definition: ScatterCounting.h:117
uint16_t UInt16
Definition: Types.h:159
OutputToInputMapType OutputToInputMap
Definition: ScatterCounting.h:119