Go to the documentation of this file.
53 #ifndef vtk_m_worklet_contourtree_augmented_active_graph_set_super_arcs_set_tree_superarcs_h
54 #define vtk_m_worklet_contourtree_augmented_active_graph_set_super_arcs_set_tree_superarcs_h
63 namespace contourtree_augmented
65 namespace active_graph_inc
74 WholeArrayIn hyperarcs,
75 WholeArrayIn treeHyperparents,
78 WholeArrayOut treeSuperarcs,
79 WholeArrayOut treeFirstSuperchild);
87 template <
typename InFieldPortalType,
typename OutFieldPortalType>
90 const InFieldPortalType& hyperarcsPortal,
91 const InFieldPortalType& treeHyperparentsPortal,
92 const InFieldPortalType& superIDPortal,
93 const InFieldPortalType& hyperIDPortal,
94 const OutFieldPortalType& treeSuperarcsPortal,
95 const OutFieldPortalType& treeFirstSuperchildPortal)
const
98 vtkm::Id hyperparent = treeHyperparentsPortal.Get(supernode);
101 bool firstSupernode =
false;
104 firstSupernode =
true;
109 vtkm::Id prevHyperparent = treeHyperparentsPortal.Get(supernode - 1);
112 firstSupernode = (hyperparent != prevHyperparent);
121 vtkm::Id prunesTo = hyperarcsPortal.Get(hyperparent);
126 treeSuperarcsPortal.Set(supernode, superIDPortal.Get(
MaskedIndex(prunesTo)));
129 treeFirstSuperchildPortal.Set(hyperIDPortal.Get(hyperparent), supernode);
134 treeSuperarcsPortal.Set(supernode, supernode - 1);
#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
VTKM_EXEC void operator()(const vtkm::Id &, const vtkm::Id supernode, const InFieldPortalType &hyperarcsPortal, const InFieldPortalType &treeHyperparentsPortal, const InFieldPortalType &superIDPortal, const InFieldPortalType &hyperIDPortal, const OutFieldPortalType &treeSuperarcsPortal, const OutFieldPortalType &treeFirstSuperchildPortal) const
Definition: SetSuperArcsSetTreeSuperarcs.h:88
VTKM_EXEC_CONT vtkm::Id MaskedIndex(vtkm::Id flaggedIndex)
Definition: filter/scalar_topology/worklet/contourtree_augmented/Types.h:127
vtkm::Int32 Id
Represents an ID (index into arrays).
Definition: Types.h:191
Definition: SetSuperArcsSetTreeSuperarcs.h:69
VTKM_EXEC_CONT bool NoSuchElement(vtkm::Id flaggedIndex)
Definition: filter/scalar_topology/worklet/contourtree_augmented/Types.h:97
A control signature tag for input fields.
Definition: WorkletMapField.h:49
_1 InputDomain
Definition: SetSuperArcsSetTreeSuperarcs.h:81
void ControlSignature(FieldIn treeSupernodes, WholeArrayIn hyperarcs, WholeArrayIn treeHyperparents, WholeArrayIn superId, WholeArrayIn hyperId, WholeArrayOut treeSuperarcs, WholeArrayOut treeFirstSuperchild)
Definition: SetSuperArcsSetTreeSuperarcs.h:72
void ExecutionSignature(_1, InputIndex, _2, _3, _4, _5, _6, _7)
Definition: SetSuperArcsSetTreeSuperarcs.h:80
constexpr vtkm::Id NO_SUCH_ELEMENT
Definition: filter/scalar_topology/worklet/contourtree_augmented/Types.h:73
Base class for worklets that do a simple mapping of field arrays.
Definition: WorkletMapField.h:38
VTKM_EXEC_CONT SetSuperArcsSetTreeSuperarcs()
Definition: SetSuperArcsSetTreeSuperarcs.h:85