Go to the documentation of this file.
10 #ifndef vtk_m_cont_ArrayHandleDiscard_h
11 #define vtk_m_cont_ArrayHandleDiscard_h
17 #include <type_traits>
28 template <
typename ValueType_>
29 class ArrayPortalDiscard
32 using ValueType = ValueType_;
42 explicit ArrayPortalDiscard(
vtkm::Id numValues)
43 : NumberOfValues(numValues)
51 template <
class OtherV>
52 VTKM_CONT ArrayPortalDiscard(
const ArrayPortalDiscard<OtherV>& src)
53 : NumberOfValues(src.NumberOfValues)
58 vtkm::Id GetNumberOfValues()
const {
return this->NumberOfValues; }
67 void Set(
vtkm::Id index,
const ValueType&)
const
96 template <
typename ValueType>
97 class Storage<ValueType, StorageTagDiscard>
100 using WritePortalType = vtkm::exec::internal::ArrayPortalDiscard<ValueType>;
104 using ReadPortalType = vtkm::exec::internal::ArrayPortalDiscard<ValueType>;
109 vtkm::cont::internal::Buffer* buffers,
114 buffers[0].GetMetaData<DiscardMetaData>().NumberOfValues = numValues;
117 VTKM_CONT static vtkm::Id GetNumberOfValues(
const vtkm::cont::internal::Buffer* buffers)
119 return buffers[0].GetMetaData<DiscardMetaData>().NumberOfValues;
122 VTKM_CONT static void Fill(vtkm::cont::internal::Buffer*,
131 VTKM_CONT static ReadPortalType CreateReadPortal(
const vtkm::cont::internal::Buffer*,
138 VTKM_CONT static WritePortalType CreateWritePortal(vtkm::cont::internal::Buffer* buffers,
142 return WritePortalType(GetNumberOfValues(buffers));
146 template <
typename ValueType_>
147 struct ArrayHandleDiscardTraits
149 using ValueType = ValueType_;
150 using StorageTag = StorageTagDiscard;
159 template <
typename ValueType_>
169 template <
typename T>
174 template <
typename T>
182 #endif // vtk_m_cont_ArrayHandleDiscard_h
Manages an array-worth of data.
Definition: ArrayHandle.h:287
#define VTKM_EXEC
Definition: ExportMacros.h:51
VTKM_NO_DEPRECATED_VIRTUAL.
Definition: Algorithms.h:18
#define VTKM_ASSERT(condition)
Definition: Assert.h:43
#define VTKM_EXEC_CONT
Definition: ExportMacros.h:52
VTKM_SUPPRESS_EXEC_WARNINGS VTKM_EXEC_CONT auto Get(const vtkm::Tuple< Ts... > &tuple) -> decltype(tuple.template Get< Index >())
Retrieve the object from a vtkm::Tuple at the given index.
Definition: Tuple.h:83
vtkm::Int32 IdComponent
Represents a component ID (index of component in a vector).
Definition: Types.h:168
vtkm::Int32 Id
Represents an ID (index into arrays).
Definition: Types.h:191
ArrayHandleDiscard is a write-only array that discards all data written to it.
Definition: ArrayHandleDiscard.h:160
A token to hold the scope of an ArrayHandle or other object.
Definition: Token.h:35
VTKM_ARRAY_HANDLE_SUBCLASS(ArrayHandleDiscard,(ArrayHandleDiscard< ValueType_ >),(typename internal::ArrayHandleDiscardTraits< ValueType_ >::Superclass))
#define VTKM_CONT
Definition: ExportMacros.h:57
Definition: DeviceAdapterTag.h:52
#define VTKM_UNREACHABLE(msg)
VTKM_UNREACHABLE is similar to VTK_ASSUME, with the significant difference that it is not conditional...
Definition: Unreachable.h:31
Helper to determine if an ArrayHandle type is an ArrayHandleDiscard.
Definition: ArrayHandleDiscard.h:170
This class is thrown when a VTKm function or method encounters an invalid value that inhibits progres...
Definition: ErrorBadValue.h:25
CopyFlag
Definition: Flags.h:16
#define VTKM_ALWAYS_EXPORT
Definition: ExportMacros.h:92
#define VTKM_SUPPRESS_EXEC_WARNINGS
Definition: ExportMacros.h:53
static VTKM_EXEC_CONT T ZeroInitialization()
Definition: TypeTraits.h:75