53 #ifndef vtk_m_worklet_contourtree_distributed_bract_maker_find_boundary_tree_superacrs_superarc_to_worklet_h
54 #define vtk_m_worklet_contourtree_distributed_bract_maker_find_boundary_tree_superacrs_superarc_to_worklet_h
63 namespace contourtree_distributed
74 WholeArrayIn boundaryIndices,
75 WholeArrayIn boundaryTreeId,
76 WholeArrayIn contourtreeSuperparents,
77 WholeArrayIn contourtreeHyperparents,
78 WholeArrayIn contourtreeHyperarcs,
79 WholeArrayIn contourtreeSupernodes,
80 WholeArrayIn meshSortOrder,
81 WholeArrayOut treeToSuperset,
91 template <
typename InFieldPortalType,
92 typename MeshSortOrderPortalType,
93 typename OutFieldPortalType>
95 const InFieldPortalType& bractVertexSupersetPortal,
96 const InFieldPortalType& boundaryIndicesPortal,
97 const InFieldPortalType& boundaryTreeIdPortal,
98 const InFieldPortalType& contourtreeSuperparentsPortal,
99 const InFieldPortalType& contourtreeHyperparentsPortal,
100 const InFieldPortalType& contourtreeHyperarcsPortal,
101 const InFieldPortalType& contourtreeSupernodesPortal,
102 const MeshSortOrderPortalType& meshSortOrderPortal,
103 const OutFieldPortalType& treeToSupersetPortal)
const
107 vtkm::Id fromSort = boundaryIndicesPortal.Get(from);
108 vtkm::Id fromSuper = contourtreeSuperparentsPortal.Get(fromSort);
109 vtkm::Id fromHyper = contourtreeHyperparentsPortal.Get(fromSuper);
119 if (from != bractVertexSupersetPortal.GetNumberOfValues() - 1)
123 toSort = boundaryIndicesPortal.Get(to);
124 toSuper = contourtreeSuperparentsPortal.Get(toSort);
125 toHyper = contourtreeHyperparentsPortal.Get(toSuper);
133 if (contourtreeSupernodesPortal.Get(fromSuper) == fromSort)
135 treeToSupersetPortal.Set(fromSuper, from);
139 if (fromHyper == toHyper)
147 vtkm::Id hyperTarget = contourtreeHyperarcsPortal.Get(fromHyper);
159 vtkm::Id regularTargetId = meshSortOrderPortal.Get(contourtreeSupernodesPortal.Get(
162 vtkm::Id bract_id = boundaryTreeIdPortal.Get(regularTargetId);