Allow WorkletMapTopology and WorkletPointNeighborhood to support Scatters/Masks when using a 3D Scheduling
Currently the WorkletMapTopology
and WorkletPointNeighborhood
GetThreadIndices
methods error when a custom scatter or mask is used with 3d scheduling.
Given the changes in #1938 this restriction can be lifted as the 1d scheduling index is now provided alongside the 3d scheduling index.
Update the following:
-
WorkletMapTopology::GetThreadIndices
to useiterationSpace
to get correctoutIndex
,outToIn
, andvisit
indices. -
WorkletPointNeighborhood::GetThreadIndices
to useiterationSpace
to get correctoutIndex
,outToIn
, andvisit
indices. -
ThreadIndicesTopologyMap
to supportinputIndex
,visitIndex
, andoutputIndex
when given avtkm::Id3
threadIndex
. -
ThreadIndicesPointNeighborhood
to supportinputIndex
,visitIndex
, andoutputIndex
when given avtkm::Id3
threadIndex
.
For the ThreadIndices
changes we will want to investigate the possibility of being smart on how much information we store. If the worklet is using a ScatterIdentity
and MaskNone
the current implementation is ideal as it has the minimal amount of overhead. Only when a non-default scatter or mask are used do we need to store the extra information ( inputIndex, visitIndex, and outputIndex).