Go to the documentation of this file.
53 #ifndef vtk_m_worklet_contourtree_augmented_active_graph_initialize_active_edges_h
54 #define vtk_m_worklet_contourtree_augmented_active_graph_initialize_active_edges_h
64 namespace contourtree_augmented
66 namespace active_graph_inc
71 template <
class MeshClassType>
81 ExecObject meshStructure,
85 WholeArrayIn neighbourhoodMasks,
86 WholeArrayOut edgeNear,
87 WholeArrayOut edgeFar,
88 WholeArrayOut activeEdges);
97 template <
typename MeshStructureType,
typename InFieldPortalType,
typename OutFieldPortalType>
100 const MeshStructureType& meshStructure,
103 const InFieldPortalType& extrema,
104 const InFieldPortalType& neighbourhoodMasks,
105 const OutFieldPortalType& edgeNear,
106 const OutFieldPortalType& edgeFar,
107 const OutFieldPortalType& activeEdges)
const
114 for (
vtkm::Id nbrNo = 0; nbrNo < meshStructure.GetMaxNumberOfNeighbours(); ++nbrNo)
115 if (neighbourhoodMasks.Get(sortIndex) & (
static_cast<vtkm::Id>(1) << nbrNo))
117 neigbourComponents[currNbrNo++] = meshStructure.GetNeighbourIndex(sortIndex, nbrNo);
131 for (
vtkm::Id edge = 0; edge < outdegree; edge++)
134 vtkm::Id edgeID = firstEdgeIndex + edge;
137 edgeNear.Set(edgeID, activeIndex);
138 edgeFar.Set(edgeID,
MaskedIndex(extrema.Get(neigbourComponents[edge])));
141 activeEdges.Set(edgeID, edgeID);
VTKM_EXEC void operator()(const vtkm::Id &outdegree, const vtkm::Id activeIndex, const MeshStructureType &meshStructure, const vtkm::Id &firstEdgeIndex, const vtkm::Id &sortIndex, const InFieldPortalType &extrema, const InFieldPortalType &neighbourhoodMasks, const OutFieldPortalType &edgeNear, const OutFieldPortalType &edgeFar, const OutFieldPortalType &activeEdges) const
Definition: InitializeActiveEdges.h:98
#define VTKM_EXEC
Definition: ExportMacros.h:51
Groups connected points that have the same field value.
Definition: Atomic.h:19
#define VTKM_EXEC_CONT
Definition: ExportMacros.h:52
_1 InputDomain
Definition: InitializeActiveEdges.h:91
VTKM_EXEC_CONT InitializeActiveEdges()
Definition: InitializeActiveEdges.h:95
VTKM_EXEC_CONT vtkm::Id MaskedIndex(vtkm::Id flaggedIndex)
Definition: filter/scalar_topology/worklet/contourtree_augmented/Types.h:127
void ExecutionSignature(_1, InputIndex, _2, _3, _4, _5, _6, _7, _8, _9)
Definition: InitializeActiveEdges.h:89
vtkm::Int32 Id
Represents an ID (index into arrays).
Definition: Types.h:191
#define MAX_OUTDEGREE
Definition: Mesh2D_DEM_Triangulation_Macros.h:76
A control signature tag for input fields.
Definition: WorkletMapField.h:49
Definition: InitializeActiveEdges.h:72
void ControlSignature(FieldIn outdegree, ExecObject meshStructure, FieldIn firstEdge, FieldIn globalIndex, WholeArrayIn extrema, WholeArrayIn neighbourhoodMasks, WholeArrayOut edgeNear, WholeArrayOut edgeFar, WholeArrayOut activeEdges)
Additional basic execution argument tags.
Definition: InitializeActiveEdges.h:79
Base class for worklets that do a simple mapping of field arrays.
Definition: WorkletMapField.h:38