53 #ifndef vtk_m_worklet_contourtree_augmented_contourtree_maker_inc_augment_merge_tree_set_augmented_merge_arcs_h
54 #define vtk_m_worklet_contourtree_augmented_contourtree_maker_inc_augment_merge_tree_set_augmented_merge_arcs_h
63 namespace contourtree_augmented
65 namespace contourtree_maker_inc
73 WholeArrayIn contourTreeActiveSupernodes,
74 WholeArrayIn mergetreeSuperparents,
75 WholeArrayIn mergetreeSuperarcs,
76 WholeArrayIn newMergetreeID,
77 WholeArrayOut augmentedMergetreeSuperarcs);
85 template <
typename InFieldPortalType,
typename OutFieldPortalType>
88 const InFieldPortalType& mergetreeSuperparentsPortal,
89 const InFieldPortalType& mergetreeSuperarcsPortal,
90 const InFieldPortalType& newMergetreeIDPortal,
91 const OutFieldPortalType& augmentedMergetreeSuperarcsPortal)
const
93 vtkm::Id supernodeID = activeSupernodesPortal.Get(supernode);
94 vtkm::Id mergetreeSuperparent = mergetreeSuperparentsPortal.Get(supernodeID);
96 bool lastMergetreeSupernode =
false;
100 lastMergetreeSupernode =
true;
105 lastMergetreeSupernode =
106 (mergetreeSuperparent !=
107 mergetreeSuperparentsPortal.Get(activeSupernodesPortal.Get(supernode - 1)));
110 if (lastMergetreeSupernode)
116 vtkm::Id mergetreeSuperarc = mergetreeSuperarcsPortal.Get(mergetreeSuperparent);
125 augmentedMergetreeSuperarcsPortal.Set(
126 supernodeID, newMergetreeIDPortal.Get(
MaskedIndex(mergetreeSuperarc)));
131 augmentedMergetreeSuperarcsPortal.Set(supernodeID, activeSupernodesPortal.Get(supernode - 1));