VTK-m  2.0
Public Types | Public Member Functions | Private Attributes | List of all members
vtkm::worklet::contourtree_distributed::tree_grafter::IdentifyLeafHyperarcsWorklet Class Reference

Worklet implementing the TreeGrafter.IdentifyLeafHyperarcs function. More...

#include <IdentifyLeafHyperarcsWorklet.h>

Inheritance diagram for vtkm::worklet::contourtree_distributed::tree_grafter::IdentifyLeafHyperarcsWorklet:
vtkm::worklet::WorkletMapField vtkm::exec::FunctorBase

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
 

Detailed Description

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

Member Typedef Documentation

◆ ControlSignature

using vtkm::worklet::contourtree_distributed::tree_grafter::IdentifyLeafHyperarcsWorklet::ControlSignature = void( FieldIn activeSuperarcs, WholeArrayIn supernodeType, WholeArrayIn upNeighbour, WholeArrayIn downNeighbour, WholeArrayOut hierarchicalHyperparent, WholeArrayOut hierarchicalHyperarcPortal, WholeArrayOut whenTransferredPortal )

◆ ExecutionSignature

◆ InputDomain

Constructor & Destructor Documentation

◆ IdentifyLeafHyperarcsWorklet()

VTKM_EXEC_CONT vtkm::worklet::contourtree_distributed::tree_grafter::IdentifyLeafHyperarcsWorklet::IdentifyLeafHyperarcsWorklet ( const vtkm::Id numTransferIterations)
inline

Member Function Documentation

◆ operator()()

template<typename InFieldPortalType , typename OutFieldPortalType >
VTKM_EXEC void vtkm::worklet::contourtree_distributed::tree_grafter::IdentifyLeafHyperarcsWorklet::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
inline

Member Data Documentation

◆ NumTransferIterations

vtkm::Id vtkm::worklet::contourtree_distributed::tree_grafter::IdentifyLeafHyperarcsWorklet::NumTransferIterations
private

The documentation for this class was generated from the following file: