VTK-m  2.2
Public Types | Public Member Functions | Private Types | Private Attributes | List of all members
vtkm::exec::arg::ThreadIndicesTopologyMap< ConnectivityType, ScatterAndMaskMode > Class Template Reference

Container for thread indices in a topology map. More...

#include <ThreadIndicesTopologyMap.h>

Inheritance diagram for vtkm::exec::arg::ThreadIndicesTopologyMap< ConnectivityType, ScatterAndMaskMode >:
vtkm::exec::arg::ThreadIndicesBasic

Public Types

using IndicesIncidentType = typename ConnectivityType::IndicesType
 
using CellShapeTag = typename ConnectivityType::CellShapeTag
 
using Connectivity = ConnectivityType
 

Public Member Functions

 ThreadIndicesTopologyMap (vtkm::Id threadIndex, vtkm::Id inputIndex, vtkm::IdComponent visitIndex, vtkm::Id outputIndex, const ConnectivityType &connectivity)
 
const IndicesIncidentTypeGetIndicesIncident () const
 The indices of the incident elements. More...
 
const IndicesIncidentTypeGetIndicesIncidentPointer () const
 The input indices of the incident elements in pointer form. More...
 
CellShapeTag GetCellShape () const
 The shape of the input cell. More...
 
- Public Member Functions inherited from vtkm::exec::arg::ThreadIndicesBasic
 ThreadIndicesBasic (vtkm::Id threadIndex, vtkm::Id inIndex, vtkm::IdComponent visitIndex, vtkm::Id outIndex)
 
vtkm::Id GetThreadIndex () const
 The index of the thread or work invocation. More...
 
vtkm::Id GetInputIndex () const
 The index into the input domain. More...
 
vtkm::Id3 GetInputIndex3D () const
 The 3D index into the input domain. More...
 
vtkm::Id GetOutputIndex () const
 The index into the output domain. More...
 
vtkm::IdComponent GetVisitIndex () const
 The visit index. More...
 

Private Types

using Superclass = vtkm::exec::arg::ThreadIndicesBasic
 

Private Attributes

IndicesIncidentType IndicesIncident
 
CellShapeTag CellShape
 

Detailed Description

template<typename ConnectivityType, typename ScatterAndMaskMode>
class vtkm::exec::arg::ThreadIndicesTopologyMap< ConnectivityType, ScatterAndMaskMode >

Container for thread indices in a topology map.

This specialization of ThreadIndices adds extra indices that deal with topology maps. In particular, it saves the incident element indices. The input and output indices from the superclass are considered to be indexing the visited elements.

This class is templated on the type that stores the connectivity (such as ConnectivityExplicit or ConnectivityStructured).

Member Typedef Documentation

◆ CellShapeTag

template<typename ConnectivityType , typename ScatterAndMaskMode >
using vtkm::exec::arg::ThreadIndicesTopologyMap< ConnectivityType, ScatterAndMaskMode >::CellShapeTag = typename ConnectivityType::CellShapeTag

◆ Connectivity

template<typename ConnectivityType , typename ScatterAndMaskMode >
using vtkm::exec::arg::ThreadIndicesTopologyMap< ConnectivityType, ScatterAndMaskMode >::Connectivity = ConnectivityType

◆ IndicesIncidentType

template<typename ConnectivityType , typename ScatterAndMaskMode >
using vtkm::exec::arg::ThreadIndicesTopologyMap< ConnectivityType, ScatterAndMaskMode >::IndicesIncidentType = typename ConnectivityType::IndicesType

◆ Superclass

template<typename ConnectivityType , typename ScatterAndMaskMode >
using vtkm::exec::arg::ThreadIndicesTopologyMap< ConnectivityType, ScatterAndMaskMode >::Superclass = vtkm::exec::arg::ThreadIndicesBasic
private

Constructor & Destructor Documentation

◆ ThreadIndicesTopologyMap()

template<typename ConnectivityType , typename ScatterAndMaskMode >
vtkm::exec::arg::ThreadIndicesTopologyMap< ConnectivityType, ScatterAndMaskMode >::ThreadIndicesTopologyMap ( vtkm::Id  threadIndex,
vtkm::Id  inputIndex,
vtkm::IdComponent  visitIndex,
vtkm::Id  outputIndex,
const ConnectivityType &  connectivity 
)
inline

Member Function Documentation

◆ GetCellShape()

template<typename ConnectivityType , typename ScatterAndMaskMode >
CellShapeTag vtkm::exec::arg::ThreadIndicesTopologyMap< ConnectivityType, ScatterAndMaskMode >::GetCellShape ( ) const
inline

The shape of the input cell.

In topology maps that map from points to something, the indices make up the structure of a cell. Although the shape tag is not technically and index, it defines the meaning of the indices, so we put it here. (That and this class is the only convenient place to store it.)

◆ GetIndicesIncident()

template<typename ConnectivityType , typename ScatterAndMaskMode >
const IndicesIncidentType& vtkm::exec::arg::ThreadIndicesTopologyMap< ConnectivityType, ScatterAndMaskMode >::GetIndicesIncident ( ) const
inline

The indices of the incident elements.

A topology map has "visited" and "incident" elements (e.g. points, cells, etc). For each worklet invocation, there is exactly one visited element, but there can be several incident elements. This method returns a Vec-like object containing the indices to the incident elements.

◆ GetIndicesIncidentPointer()

template<typename ConnectivityType , typename ScatterAndMaskMode >
const IndicesIncidentType* vtkm::exec::arg::ThreadIndicesTopologyMap< ConnectivityType, ScatterAndMaskMode >::GetIndicesIncidentPointer ( ) const
inline

The input indices of the incident elements in pointer form.

Returns the same object as GetIndicesIncident except that it returns a pointer to the internally held object rather than a reference or copy. Since the from indices can be a sizeable Vec (8 entries is common), it is best not to have a bunch a copies. Thus, you can pass around a pointer instead. However, care should be taken to make sure that this object does not go out of scope, at which time the returned pointer becomes invalid.

Member Data Documentation

◆ CellShape

template<typename ConnectivityType , typename ScatterAndMaskMode >
CellShapeTag vtkm::exec::arg::ThreadIndicesTopologyMap< ConnectivityType, ScatterAndMaskMode >::CellShape
private

◆ IndicesIncident

template<typename ConnectivityType , typename ScatterAndMaskMode >
IndicesIncidentType vtkm::exec::arg::ThreadIndicesTopologyMap< ConnectivityType, ScatterAndMaskMode >::IndicesIncident
private

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