Go to the documentation of this file.
53 #ifndef vtk_m_worklet_contourtree_augmented_meshtypes_MeshStructureFreudenthal3D_h
54 #define vtk_m_worklet_contourtree_augmented_meshtypes_MeshStructureFreudenthal3D_h
69 namespace contourtree_augmented
143 #if (defined(VTKM_GCC) || defined(VTKM_CLANG))
144 #pragma GCC diagnostic push
145 #pragma GCC diagnostic ignored "-Wconversion"
146 #endif // gcc || clang
153 using namespace m3d_freudenthal;
157 vtkm::Int8 boundaryConfig = ((pos[0] == 0) ? LeftBit : 0) |
158 ((pos[0] == this->
MeshSize[0] - 1) ? RightBit : 0) | ((pos[1] == 0) ? TopBit : 0) |
159 ((pos[1] == this->
MeshSize[1] - 1) ? BottomBit : 0) | ((pos[2] == 0) ? FrontBit : 0) |
160 ((pos[2] == this->
MeshSize[2] - 1) ? BackBit : 0);
171 if (
GetMax ? (nbrSortIndex > sortIndex) : (nbrSortIndex < sortIndex))
186 bool getMaxComponents)
const
189 using namespace m3d_freudenthal;
194 vtkm::Int8 boundaryConfig = ((pos[0] == 0) ? LeftBit : 0) |
195 ((pos[0] == this->
MeshSize[0] - 1) ? RightBit : 0) | ((pos[1] == 0) ? TopBit : 0) |
196 ((pos[1] == this->
MeshSize[1] - 1) ? BottomBit : 0) | ((pos[2] == 0) ? FrontBit : 0) |
197 ((pos[2] == this->
MeshSize[2] - 1) ? BackBit : 0);
208 if (getMaxComponents ? (sortIndex < nbrSortIndex) : (sortIndex > nbrSortIndex))
217 vtkm::Id neighbourComponentMask = 0;
223 neighbourComponentMask |=
vtkm::Id{ 1 } << nbrNo;
231 #if (defined(VTKM_GCC) || defined(VTKM_CLANG))
232 #pragma GCC diagnostic pop
233 #endif // gcc || clang
NeighbourOffsetsPortalType NeighbourOffsetsPortal
Definition: MeshStructureFreudenthal3D.h:240
#define VTKM_EXEC
Definition: ExportMacros.h:51
Groups connected points that have the same field value.
Definition: Atomic.h:19
VTKM_EXEC vtkm::Id GetExtremalNeighbour(vtkm::Id sortIndex) const
Definition: MeshStructureFreudenthal3D.h:150
#define VTKM_EXEC_CONT
Definition: ExportMacros.h:52
VTKM_EXEC vtkm::Id GetMaxNumberOfNeighbours() const
Definition: MeshStructureFreudenthal3D.h:120
VTKM_CONT ReadPortalType PrepareForInput(vtkm::cont::DeviceAdapterId device, vtkm::cont::Token &token) const
Prepares this array to be used as an input to an operation in the execution environment.
Definition: ArrayHandle.h:574
Definition: MeshStructureFreudenthal3D.h:73
LinkComponentCaseTablePortalType LinkComponentCaseTablePortal
Definition: MeshStructureFreudenthal3D.h:241
#define N_INCIDENT_EDGES
Definition: Mesh2D_DEM_Triangulation_Macros.h:75
MeshStructureFreudenthal3D(vtkm::Id3 meshSize, vtkm::Id nincident_edges, bool getmax, const IdArrayType &sortIndices, const IdArrayType &sortOrder, const m3d_freudenthal::EdgeBoundaryDetectionMasksType &edgeBoundaryDetectionMasksIn, const m3d_freudenthal::NeighbourOffsetsType &neighbourOffsetsIn, const m3d_freudenthal::LinkComponentCaseTableType &linkComponentCaseTableIn, vtkm::cont::DeviceAdapterId device, vtkm::cont::Token &token)
Definition: MeshStructureFreudenthal3D.h:96
VTKM_EXEC vtkm::Pair< vtkm::Id, vtkm::Id > GetNeighbourComponentsMaskAndDegree(vtkm::Id sortIndex, bool getMaxComponents) const
Definition: MeshStructureFreudenthal3D.h:184
vtkm::Id NumIncidentEdge
Definition: MeshStructureFreudenthal3D.h:243
constexpr vtkm::Id TERMINAL_ELEMENT
Definition: filter/scalar_topology/worklet/contourtree_augmented/Types.h:74
SortIndicesPortalType SortOrderPortal
Definition: MeshStructureFreudenthal3D.h:238
typename StorageType::ReadPortalType ReadPortalType
Definition: ArrayHandle.h:294
vtkm::Int32 Id
Represents an ID (index into arrays).
Definition: Types.h:191
VTKM_EXEC vtkm::Id3 VertexPos(vtkm::Id v) const
Definition: MeshStructure3D.h:91
A token to hold the scope of an ArrayHandle or other object.
Definition: Token.h:35
m3d_freudenthal::LinkComponentCaseTableType::ReadPortalType LinkComponentCaseTablePortalType
Definition: MeshStructureFreudenthal3D.h:84
bool GetMax
Definition: MeshStructureFreudenthal3D.h:242
SortIndicesPortalType SortIndicesPortal
Definition: MeshStructureFreudenthal3D.h:237
int8_t Int8
Definition: Types.h:156
VTKM_EXEC_CONT MeshStructure3D()
Definition: MeshStructure3D.h:72
IdArrayType::ReadPortalType SortIndicesPortalType
Definition: MeshStructureFreudenthal3D.h:76
VTKM_EXEC_CONT MeshStructureFreudenthal3D()
Definition: MeshStructureFreudenthal3D.h:88
VTKM_EXEC vtkm::Id GetNeighbourIndex(vtkm::Id sortIndex, vtkm::Id edgeNo) const
Definition: MeshStructureFreudenthal3D.h:124
vtkm::Id3 MeshSize
Definition: MeshStructure3D.h:137
Definition: DeviceAdapterTag.h:52
Definition: MeshStructure3D.h:68
A vtkm::Pair is essentially the same as an STL pair object except that the methods (constructors and ...
Definition: Pair.h:29
EdgeBoundaryDetectionMasksPortalType EdgeBoundaryDetectionMasksPortal
Definition: MeshStructureFreudenthal3D.h:239
m3d_freudenthal::NeighbourOffsetsType::ReadPortalType NeighbourOffsetsPortalType
Definition: MeshStructureFreudenthal3D.h:81
m3d_freudenthal::EdgeBoundaryDetectionMasksType::ReadPortalType EdgeBoundaryDetectionMasksPortalType
Definition: MeshStructureFreudenthal3D.h:79