VTK-m  2.0
FetchTagArrayDirectOutArrayHandleRecombineVec.h
Go to the documentation of this file.
1 //============================================================================
2 // Copyright (c) Kitware, Inc.
3 // All rights reserved.
4 // See LICENSE.txt for details.
5 //
6 // This software is distributed WITHOUT ANY WARRANTY; without even
7 // the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
8 // PURPOSE. See the above copyright notice for more information.
9 //============================================================================
10 #ifndef vtk_m_exec_arg_FetchTagArrayDirectOutArrayHandleRecombineVec_h
11 #define vtk_m_exec_arg_FetchTagArrayDirectOutArrayHandleRecombineVec_h
12 
15 
16 // The `Fetch` for direct array out breaks for `ArrayHandleRecombineVec` because the `Load`
17 // method attempts to create a `vtkm::internal::RecombineVec` with a default constructor,
18 // which does not exist. Instead, have the direct out `Fetch` behave like the direct in/out
19 // `Fetch`, which loads the initial value from the array. The actual load will not load the
20 // data but rather set up the portals in the returned object, which is necessary for the
21 // later `Store` to work anyway.
22 
23 // This file is included from ArrayHandleRecombineVec.h
24 
25 namespace vtkm
26 {
27 namespace exec
28 {
29 namespace arg
30 {
31 
32 template <typename SourcePortalType>
33 struct Fetch<vtkm::exec::arg::FetchTagArrayDirectOut,
35  vtkm::internal::ArrayPortalRecombineVec<SourcePortalType>>
36  : Fetch<vtkm::exec::arg::FetchTagArrayDirectInOut,
37  vtkm::exec::arg::AspectTagDefault,
38  vtkm::internal::ArrayPortalRecombineVec<SourcePortalType>>
39 {
40 };
41 
42 }
43 }
44 } // namespace vtkm::exec::arg
45 
46 #endif //vtk_m_exec_arg_FetchTagArrayDirectOutArrayHandleRecombineVec_h
vtkm
Groups connected points that have the same field value.
Definition: Atomic.h:19
FetchTagArrayDirectInOut.h
FetchTagArrayDirectOut.h
vtkm::exec::arg::AspectTagDefault
Aspect tag to use for default load/store of data.
Definition: AspectTagDefault.h:22