VTK-m  2.2
TransportTagCellSetIn.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_cont_arg_TransportTagCellSetIn_h
11 #define vtk_m_cont_arg_TransportTagCellSetIn_h
12 
13 #include <vtkm/Types.h>
14 
15 #include <vtkm/cont/CellSet.h>
16 
18 
19 namespace vtkm
20 {
21 namespace cont
22 {
23 namespace arg
24 {
25 
31 template <typename VisitTopology, typename IncidentTopology>
33 {
34 };
35 
36 template <typename VisitTopology,
37  typename IncidentTopology,
38  typename ContObjectType,
39  typename Device>
40 struct Transport<vtkm::cont::arg::TransportTagCellSetIn<VisitTopology, IncidentTopology>,
41  ContObjectType,
42  Device>
43 {
44  VTKM_IS_CELL_SET(ContObjectType);
45 
46  using ExecObjectType =
47  decltype(std::declval<ContObjectType>().PrepareForInput(Device(),
48  VisitTopology(),
49  IncidentTopology(),
50  std::declval<vtkm::cont::Token&>()));
51 
52  template <typename InputDomainType>
53  VTKM_CONT ExecObjectType operator()(const ContObjectType& object,
54  const InputDomainType&,
55  vtkm::Id,
56  vtkm::Id,
57  vtkm::cont::Token& token) const
58  {
59  return object.PrepareForInput(Device(), VisitTopology(), IncidentTopology(), token);
60  }
61 };
62 }
63 }
64 } // namespace vtkm::cont::arg
65 
66 #endif //vtk_m_cont_arg_TransportTagCellSetIn_h
vtkm
Groups connected points that have the same field value.
Definition: Atomic.h:19
Types.h
vtkm::cont::arg::TransportTagCellSetIn
Transport tag for input arrays.
Definition: TransportTagCellSetIn.h:32
vtkm::cont::Token
A token to hold the scope of an ArrayHandle or other object.
Definition: Token.h:35
vtkm::cont::arg::Transport< vtkm::cont::arg::TransportTagCellSetIn< VisitTopology, IncidentTopology >, ContObjectType, Device >::operator()
ExecObjectType operator()(const ContObjectType &object, const InputDomainType &, vtkm::Id, vtkm::Id, vtkm::cont::Token &token) const
Definition: TransportTagCellSetIn.h:53
VTKM_CONT
#define VTKM_CONT
Definition: ExportMacros.h:57
CellSet.h
vtkm::Id
vtkm::Int64 Id
Base type to use to index arrays.
Definition: Types.h:227
Transport.h
vtkm::cont::arg::Transport
Class for transporting from the control to the execution environment.
Definition: Transport.h:38
vtkm::cont::arg::Transport< vtkm::cont::arg::TransportTagCellSetIn< VisitTopology, IncidentTopology >, ContObjectType, Device >::ExecObjectType
decltype(std::declval< ContObjectType >().PrepareForInput(Device(), VisitTopology(), IncidentTopology(), std::declval< vtkm::cont::Token & >())) ExecObjectType
Definition: TransportTagCellSetIn.h:50
VTKM_IS_CELL_SET
#define VTKM_IS_CELL_SET(T)
Definition: CellSet.h:89