VTK-m
2.0
|
Worklet implementing the TreeGrafter.IdentifyLeafHyperarcs function. More...
#include <IdentifyLeafHyperarcsWorklet.h>
Public Types | |
using | ControlSignature = void(FieldIn activeSuperarcs, WholeArrayIn supernodeType, WholeArrayIn upNeighbour, WholeArrayIn downNeighbour, WholeArrayOut hierarchicalHyperparent, WholeArrayOut hierarchicalHyperarcPortal, WholeArrayOut whenTransferredPortal) |
using | ExecutionSignature = void(_1, _2, _3, _4, _5, _6, _7) |
using | InputDomain = _1 |
Public Types inherited from vtkm::worklet::WorkletMapField | |
template<typename Worklet > | |
using | Dispatcher = vtkm::worklet::DispatcherMapField< Worklet > |
Public Member Functions | |
VTKM_EXEC_CONT | IdentifyLeafHyperarcsWorklet (const vtkm::Id &numTransferIterations) |
template<typename InFieldPortalType , typename OutFieldPortalType > | |
VTKM_EXEC void | operator() (const vtkm::worklet::contourtree_augmented::EdgePair &activeSuperarc, const InFieldPortalType supernodeTypePortal, const InFieldPortalType upNeighbourPortal, const InFieldPortalType downNeighbourPortal, const OutFieldPortalType &hierarchicalHyperparentPortal, const OutFieldPortalType &hierarchicalHyperarcPortal, const OutFieldPortalType &whenTransferredPortal) const |
Private Attributes | |
vtkm::Id | NumTransferIterations |
Worklet implementing the TreeGrafter.IdentifyLeafHyperarcs function.
At this stage, we have: i. hierarchicalRegularID set for any supernode stored at all in the parent ii. hierarchicalSuperID set for any supernode that is a supernode in the parent iii. hierarchicalHyperParent set for any attachment point iv. supernodeType set to indicate what type of supernode v. up/dn neighbours set for all supernodes
at the end of the chain collapse, the up/down neighbours define the start & end of the hyperarc one end may be a leaf, in which case we can transfer the hyperarc note that because we are grafting, we have a guarantee that they can't both be leaves we therefore: a. for leaves, determine whether up or down hyperarc, create hyperarc b. for regular vertices pointing to a leaf hyperarc, set superarc / hyperparent c. for other vertices, ignore
using vtkm::worklet::contourtree_distributed::tree_grafter::IdentifyLeafHyperarcsWorklet::ControlSignature = void( FieldIn activeSuperarcs, WholeArrayIn supernodeType, WholeArrayIn upNeighbour, WholeArrayIn downNeighbour, WholeArrayOut hierarchicalHyperparent, WholeArrayOut hierarchicalHyperarcPortal, WholeArrayOut whenTransferredPortal ) |
using vtkm::worklet::contourtree_distributed::tree_grafter::IdentifyLeafHyperarcsWorklet::ExecutionSignature = void(_1, _2, _3, _4, _5, _6, _7) |
using vtkm::worklet::contourtree_distributed::tree_grafter::IdentifyLeafHyperarcsWorklet::InputDomain = _1 |
|
inline |
|
inline |
|
private |