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

#include <WorkletPointNeighborhood.h>

Inheritance diagram for vtkm::worklet::WorkletPointNeighborhood:
vtkm::worklet::WorkletNeighborhood vtkm::exec::FunctorBase vtkm::worklet::AveragePointNeighborhood vtkm::worklet::gradient::StructuredPointGradient vtkm::worklet::ImageDifferenceNeighborhood vtkm::worklet::moments::ComputeMoments2D vtkm::worklet::moments::ComputeMoments3D

Public Types

template<typename Worklet >
using Dispatcher = vtkm::worklet::DispatcherPointNeighborhood< Worklet >
 
template<bool Cond, typename ReturnType >
using EnableFnWhen = typename std::enable_if< Cond, ReturnType >::type
 
- Public Types inherited from vtkm::worklet::WorkletNeighborhood
using ScatterType = vtkm::worklet::ScatterIdentity
 All worklets must define their scatter operation. More...
 
using BoundaryType = vtkm::worklet::BoundaryClamp
 All neighborhood worklets must define their boundary type operation. More...
 

Public Member Functions

template<typename OutToInArrayType , typename VisitArrayType , typename ThreadToOutArrayType , vtkm::IdComponent Dimension>
VTKM_SUPPRESS_EXEC_WARNINGS VTKM_EXEC vtkm::exec::arg::ThreadIndicesPointNeighborhood GetThreadIndices (vtkm::Id threadIndex, const OutToInArrayType &outToIn, const VisitArrayType &visit, const ThreadToOutArrayType &threadToOut, const vtkm::exec::ConnectivityStructured< vtkm::TopologyElementTagPoint, vtkm::TopologyElementTagCell, Dimension > &inputDomain) const
 Point neighborhood worklets use the related thread indices class. More...
 
template<typename OutToInArrayType , typename VisitArrayType , typename ThreadToOutArrayType , typename InputDomainType , bool S = IsScatterIdentity, bool M = IsMaskNone>
VTKM_SUPPRESS_EXEC_WARNINGS VTKM_EXEC EnableFnWhen< S &&M, vtkm::exec::arg::ThreadIndicesPointNeighborhoodGetThreadIndices (vtkm::Id threadIndex1D, const vtkm::Id3 &threadIndex3D, const OutToInArrayType &vtkmNotUsed(outToIn), const VisitArrayType &vtkmNotUsed(visit), const ThreadToOutArrayType &vtkmNotUsed(threadToOut), const InputDomainType &connectivity) const
 
template<typename OutToInArrayType , typename VisitArrayType , typename ThreadToOutArrayType , typename InputDomainType , bool S = IsScatterIdentity, bool M = IsMaskNone>
VTKM_SUPPRESS_EXEC_WARNINGS VTKM_EXEC EnableFnWhen<!(S &&M), vtkm::exec::arg::ThreadIndicesPointNeighborhoodGetThreadIndices (vtkm::Id threadIndex1D, const vtkm::Id3 &threadIndex3D, const OutToInArrayType &outToIn, const VisitArrayType &visit, const ThreadToOutArrayType &threadToOut, const InputDomainType &connectivity) const
 
- Public Member Functions inherited from vtkm::worklet::WorkletNeighborhood
VTKM_CONT BoundaryType GetBoundaryCondition () const
 In addition to defining the boundary type, the worklet must produce the boundary condition. More...
 

Static Private Attributes

static constexpr bool IsScatterIdentity
 In the remaining methods and constexpr we determine at compilation time which method definition will be actually used for GetThreadIndices. More...
 
static constexpr bool IsMaskNone = std::is_same<MaskType, vtkm::worklet::MaskNone>::value
 

Member Typedef Documentation

◆ Dispatcher

◆ EnableFnWhen

template<bool Cond, typename ReturnType >
using vtkm::worklet::WorkletPointNeighborhood::EnableFnWhen = typename std::enable_if<Cond, ReturnType>::type

Member Function Documentation

◆ GetThreadIndices() [1/3]

template<typename OutToInArrayType , typename VisitArrayType , typename ThreadToOutArrayType , vtkm::IdComponent Dimension>
VTKM_SUPPRESS_EXEC_WARNINGS VTKM_EXEC vtkm::exec::arg::ThreadIndicesPointNeighborhood vtkm::worklet::WorkletPointNeighborhood::GetThreadIndices ( vtkm::Id  threadIndex,
const OutToInArrayType &  outToIn,
const VisitArrayType &  visit,
const ThreadToOutArrayType &  threadToOut,
const vtkm::exec::ConnectivityStructured< vtkm::TopologyElementTagPoint, vtkm::TopologyElementTagCell, Dimension > &  inputDomain 
) const
inline

Point neighborhood worklets use the related thread indices class.

◆ GetThreadIndices() [2/3]

template<typename OutToInArrayType , typename VisitArrayType , typename ThreadToOutArrayType , typename InputDomainType , bool S = IsScatterIdentity, bool M = IsMaskNone>
VTKM_SUPPRESS_EXEC_WARNINGS VTKM_EXEC EnableFnWhen<!(S && M), vtkm::exec::arg::ThreadIndicesPointNeighborhood> vtkm::worklet::WorkletPointNeighborhood::GetThreadIndices ( vtkm::Id  threadIndex1D,
const vtkm::Id3 threadIndex3D,
const OutToInArrayType &  outToIn,
const VisitArrayType &  visit,
const ThreadToOutArrayType &  threadToOut,
const InputDomainType &  connectivity 
) const
inline

◆ GetThreadIndices() [3/3]

template<typename OutToInArrayType , typename VisitArrayType , typename ThreadToOutArrayType , typename InputDomainType , bool S = IsScatterIdentity, bool M = IsMaskNone>
VTKM_SUPPRESS_EXEC_WARNINGS VTKM_EXEC EnableFnWhen<S && M, vtkm::exec::arg::ThreadIndicesPointNeighborhood> vtkm::worklet::WorkletPointNeighborhood::GetThreadIndices ( vtkm::Id  threadIndex1D,
const vtkm::Id3 threadIndex3D,
const OutToInArrayType &  vtkmNotUsedoutToIn,
const VisitArrayType &  vtkmNotUsedvisit,
const ThreadToOutArrayType &  vtkmNotUsedthreadToOut,
const InputDomainType &  connectivity 
) const
inline

Member Data Documentation

◆ IsMaskNone

constexpr bool vtkm::worklet::WorkletPointNeighborhood::IsMaskNone = std::is_same<MaskType, vtkm::worklet::MaskNone>::value
staticconstexprprivate

◆ IsScatterIdentity

constexpr bool vtkm::worklet::WorkletPointNeighborhood::IsScatterIdentity
staticconstexprprivate
Initial value:
=
std::is_same<ScatterType, vtkm::worklet::ScatterIdentity>::value

In the remaining methods and constexpr we determine at compilation time which method definition will be actually used for GetThreadIndices.

We want to avoid further function calls when we use WorkletMapTopology in which ScatterType is set as ScatterIdentity and MaskType as MaskNone. Otherwise, we call the default method defined at the bottom of this class.


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