VTK-m  2.2
ThreadIndicesPointNeighborhood.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_ThreadIndicesPointNeighborhood_h
11 #define vtk_m_exec_arg_ThreadIndicesPointNeighborhood_h
12 
14 
15 namespace vtkm
16 {
17 namespace exec
18 {
19 namespace arg
20 {
25 {
27 
28 public:
29  template <vtkm::IdComponent Dimension>
31  const vtkm::Id3& threadIndex3D,
32  vtkm::Id threadIndex1D,
35  Dimension>& connectivity)
36  : Superclass(
37  threadIndex1D,
38  vtkm::exec::BoundaryState{ threadIndex3D, detail::To3D(connectivity.GetPointDimensions()) })
39  {
40  }
41 
42  template <vtkm::IdComponent Dimension>
44  const vtkm::Id3& threadIndex3D,
45  vtkm::Id threadIndex1D,
46  vtkm::Id inputIndex,
47  vtkm::IdComponent visitIndex,
48  vtkm::Id outputIndex,
51  Dimension>& connectivity)
52  : Superclass(
53  threadIndex1D,
54  inputIndex,
55  visitIndex,
56  outputIndex,
57  vtkm::exec::BoundaryState{ threadIndex3D, detail::To3D(connectivity.GetPointDimensions()) })
58  {
59  }
60 
61  template <vtkm::IdComponent Dimension>
63  vtkm::Id threadIndex,
64  vtkm::Id inputIndex,
65  vtkm::IdComponent visitIndex,
66  vtkm::Id outputIndex,
69  Dimension>& connectivity)
70  : Superclass(
71  threadIndex,
72  inputIndex,
73  visitIndex,
74  outputIndex,
75  vtkm::exec::BoundaryState{ detail::To3D(connectivity.FlatToLogicalVisitIndex(inputIndex)),
76  detail::To3D(connectivity.GetPointDimensions()) })
77  {
78  }
79 };
80 } // arg
81 } // exec
82 } // vtkm
83 #endif //vtk_m_exec_arg_ThreadIndicesPointNeighborhood_h
vtkm::TopologyElementTagPoint
A tag used to identify the point elements in a topology.
Definition: TopologyElementTag.h:34
vtkm::exec::BoundaryState
Provides a neighborhood's placement with respect to the mesh's boundary.
Definition: BoundaryState.h:31
VTKM_EXEC
#define VTKM_EXEC
Definition: ExportMacros.h:51
vtkm
Groups connected points that have the same field value.
Definition: Atomic.h:19
vtkm::IdComponent
vtkm::Int32 IdComponent
Base type to use to index small lists.
Definition: Types.h:194
vtkm::exec::arg::ThreadIndicesPointNeighborhood
Container for thread information in a WorkletPointNeighborhood.
Definition: ThreadIndicesPointNeighborhood.h:24
vtkm::exec::arg::ThreadIndicesNeighborhood
Definition: ThreadIndicesNeighborhood.h:59
vtkm::exec::arg::ThreadIndicesPointNeighborhood::ThreadIndicesPointNeighborhood
ThreadIndicesPointNeighborhood(const vtkm::Id3 &threadIndex3D, vtkm::Id threadIndex1D, const vtkm::exec::ConnectivityStructured< vtkm::TopologyElementTagPoint, vtkm::TopologyElementTagCell, Dimension > &connectivity)
Definition: ThreadIndicesPointNeighborhood.h:30
ThreadIndicesNeighborhood.h
vtkm::Id
vtkm::Int64 Id
Base type to use to index arrays.
Definition: Types.h:227
vtkm::exec::arg::ThreadIndicesPointNeighborhood::ThreadIndicesPointNeighborhood
ThreadIndicesPointNeighborhood(vtkm::Id threadIndex, vtkm::Id inputIndex, vtkm::IdComponent visitIndex, vtkm::Id outputIndex, const vtkm::exec::ConnectivityStructured< vtkm::TopologyElementTagPoint, vtkm::TopologyElementTagCell, Dimension > &connectivity)
Definition: ThreadIndicesPointNeighborhood.h:62
vtkm::exec::ConnectivityStructured
A class holding information about topology connections.
Definition: ConnectivityStructured.h:30
vtkm::Vec< vtkm::Id, 3 >
vtkm::exec::arg::ThreadIndicesPointNeighborhood::ThreadIndicesPointNeighborhood
ThreadIndicesPointNeighborhood(const vtkm::Id3 &threadIndex3D, vtkm::Id threadIndex1D, vtkm::Id inputIndex, vtkm::IdComponent visitIndex, vtkm::Id outputIndex, const vtkm::exec::ConnectivityStructured< vtkm::TopologyElementTagPoint, vtkm::TopologyElementTagCell, Dimension > &connectivity)
Definition: ThreadIndicesPointNeighborhood.h:43
vtkm::TopologyElementTagCell
A tag used to identify the cell elements in a topology.
Definition: TopologyElementTag.h:24