Go to the documentation of this file.
73 #ifndef vtkm_worklet_contourtree_mesh3d_dem_vertex_outdegree_starter_h
74 #define vtkm_worklet_contourtree_mesh3d_dem_vertex_outdegree_starter_h
93 WholeArrayIn arcArray,
94 WholeArrayIn neighbourTable,
95 WholeArrayIn caseTable,
120 template <
typename InFieldPortalType,
typename NeighbourTableType,
typename CaseTableType>
123 const InFieldPortalType& arcArray,
124 const NeighbourTableType& neighbourTable,
125 const CaseTableType& caseTable,
140 if (caseTable.Get(nbrMask) & (1 << edgeNo))
143 vtkm::Id nbrSlice = slice + neighbourTable.Get(indx);
144 vtkm::Id nbrRow = row + neighbourTable.Get(indx + 1);
145 vtkm::Id nbrCol = col + neighbourTable.Get(indx + 2);
148 farEnds[outDegree++] = arcArray.Get(nbr);
153 if ((outDegree == 2) && (farEnds[0] == farEnds[1]))
158 else if (outDegree == 3)
160 if (farEnds[0] == farEnds[1])
162 if (farEnds[0] == farEnds[2])
170 farEnds[1] = farEnds[2];
175 else if ((farEnds[0] == farEnds[2]) || (farEnds[1] == farEnds[2]))
183 outdegree = outDegree;
186 isCritical = (outDegree != 1) ? 1 : 0;
bool ascending
Definition: Mesh3D_DEM_VertexOutdegreeStarter.h:104
VTKM_EXEC void operator()(const vtkm::Id &vertex, const vtkm::Id &nbrMask, const InFieldPortalType &arcArray, const NeighbourTableType &neighbourTable, const CaseTableType &caseTable, vtkm::Id &outdegree, vtkm::Id &isCritical) const
Definition: Mesh3D_DEM_VertexOutdegreeStarter.h:121
#define VTKM_EXEC
Definition: ExportMacros.h:51
Groups connected points that have the same field value.
Definition: Atomic.h:19
#define VTKM_EXEC_CONT
Definition: ExportMacros.h:52
A control signature tag for output fields.
Definition: WorkletMapField.h:60
#define VERTEX_ROW_3D(V, NROWS, NCOLS)
Definition: Mesh3D_DEM_Triangulation_Macros.h:70
vtkm::Id nSlices
Definition: Mesh3D_DEM_VertexOutdegreeStarter.h:103
vtkm::Int32 Id
Represents an ID (index into arrays).
Definition: Types.h:191
#define N_INCIDENT_EDGES_3D
Definition: Mesh3D_DEM_Triangulation_Macros.h:66
Definition: Mesh3D_DEM_VertexOutdegreeStarter.h:88
A control signature tag for input fields.
Definition: WorkletMapField.h:49
void(_1, _2, _3, _4, _5, _6, _7) ExecutionSignature
Definition: Mesh3D_DEM_VertexOutdegreeStarter.h:98
vtkm::Id nRows
Definition: Mesh3D_DEM_VertexOutdegreeStarter.h:101
VTKM_EXEC_CONT Mesh3D_DEM_VertexOutdegreeStarter(vtkm::Id NRows, vtkm::Id NCols, vtkm::Id NSlices, bool Ascending)
Definition: Mesh3D_DEM_VertexOutdegreeStarter.h:108
void(FieldIn vertex, FieldIn nbrMask, WholeArrayIn arcArray, WholeArrayIn neighbourTable, WholeArrayIn caseTable, FieldOut outdegree, FieldOut isCritical) ControlSignature
Definition: Mesh3D_DEM_VertexOutdegreeStarter.h:97
_1 InputDomain
Definition: Mesh3D_DEM_VertexOutdegreeStarter.h:99
vtkm::Id nCols
Definition: Mesh3D_DEM_VertexOutdegreeStarter.h:102
#define VERTEX_SLICE_3D(V, NROWS, NCOLS)
Definition: Mesh3D_DEM_Triangulation_Macros.h:76
#define VERTEX_ID_3D(S, R, C, NROWS, NCOLS)
Definition: Mesh3D_DEM_Triangulation_Macros.h:79
#define VERTEX_COL_3D(V, NROWS, NCOLS)
Definition: Mesh3D_DEM_Triangulation_Macros.h:73
#define MAX_OUTDEGREE_3D
Definition: Mesh3D_DEM_Triangulation_Macros.h:67
Base class for worklets that do a simple mapping of field arrays.
Definition: WorkletMapField.h:38