VTK  9.3.20240418
Public Member Functions | Protected Attributes | List of all members
vtkStaticFaceHashLinksTemplate< TInputIdType, TFaceIdType > Class Template Reference

Templated on types of ids defining an edge. More...

#include <vtkStaticFaceHashLinksTemplate.h>

Public Member Functions

 vtkStaticFaceHashLinksTemplate ()=default
 
void BuildHashLinks (vtkUnstructuredGrid *input)
 Build the hash links. More...
 
void Reset ()
 Reset the hash links and free the memory. More...
 
vtkIdType GetNumberOfFaces () const
 Get number of faces. More...
 
vtkIdType GetNumberOfHashes () const
 Get the number of hashes. More...
 
vtkIdType GetNumberOfFacesInHash (vtkIdType hash) const
 Get the number of faces in a particular hash. More...
 
TInputIdType * GetCellIdOfFacesInHash (vtkIdType hash) const
 Get cell id of faces in a particular hash. More...
 
TFaceIdType * GetFaceIdOfFacesInHash (vtkIdType hash) const
 Get face id of faces in a particular hash. More...
 

Protected Attributes

vtkIdType NumberOfFaces = 0
 
vtkIdType NumberOfHashes = 0
 
std::shared_ptr< TInputIdType > CellIdOfFaceLinks
 
std::shared_ptr< TFaceIdType > FaceIdOfFaceLinks
 
std::shared_ptr< vtkIdTypeFaceOffsets
 

Detailed Description

template<typename TInputIdType, typename TFaceIdType>
class vtkStaticFaceHashLinksTemplate< TInputIdType, TFaceIdType >

Templated on types of ids defining an edge.

templated hashLinks for extracting faces from a vtkUnstructuredGrid

vtkStaticFaceHashLinksTemplate is a templated class for grouping faces of an unstructured grid. The faces are grouped by their hash value. Their hash value is the minimum of the ids of the points defining the face of a 3D cells, or the the number of points of the unstructured grid if the cell is a 1D-2D.

To use this class first you need to call BuildHashLinks() with the vtkUnstructuredGrid as argument. Then you can use the methods 1) GetNumberOfFaces() to get the number of faces in the grid 2) GetNumberOfHashes() to get the number of hashes 4) GetNumberOfFacesInHash() to get the number of faces in a particular hash 5) GetCellIdOfFacesInHash() to get the cell id of the faces in a particular hash 6) GetFaceIdOfFacesInHash() to get the face id of the faces in a particular hash

In general, this class tries to minimize the memory usage as much as possible. For that reason while to get a face you need to cell id and the face id, so they could be a struct, it's more efficient to store them in two different arrays to minimize the memory usage.

Template parameters: 1) TInputIdType: the type of the id of the cells and points of the input grid. If Number of points and number of cells Cells < 2^31 then use vtkTypeInt32. Otherwise, use vtkTypeInt64. 2) TFaceIdType: the type of the id of the faces of the input grid. Most of the times a cell can have less than 2^7 faces, so use vtkTypeInt8. Otherwise, use vtkTypeInt32 when the input grid has polyhedron cells.

Warning
This class handles only linear cells.
This class has been threaded with vtkSMPTools. Using TBB or other non-sequential type (set in the CMake variable VTK_SMP_IMPLEMENTATION_TYPE) may improve performance significantly.
See also
vtkStaticEdgeLocatorTemplate, vtkStaticCellLinksTemplate

Definition at line 63 of file vtkStaticFaceHashLinksTemplate.h.

Constructor & Destructor Documentation

◆ vtkStaticFaceHashLinksTemplate()

template<typename TInputIdType , typename TFaceIdType >
vtkStaticFaceHashLinksTemplate< TInputIdType, TFaceIdType >::vtkStaticFaceHashLinksTemplate ( )
default

Member Function Documentation

◆ BuildHashLinks()

template<typename TInputIdType , typename TFaceIdType >
void vtkStaticFaceHashLinksTemplate< TInputIdType, TFaceIdType >::BuildHashLinks ( vtkUnstructuredGrid input)

Build the hash links.

◆ Reset()

template<typename TInputIdType , typename TFaceIdType >
void vtkStaticFaceHashLinksTemplate< TInputIdType, TFaceIdType >::Reset ( )

Reset the hash links and free the memory.

◆ GetNumberOfFaces()

template<typename TInputIdType , typename TFaceIdType >
vtkIdType vtkStaticFaceHashLinksTemplate< TInputIdType, TFaceIdType >::GetNumberOfFaces ( ) const
inline

Get number of faces.

Definition at line 81 of file vtkStaticFaceHashLinksTemplate.h.

◆ GetNumberOfHashes()

template<typename TInputIdType , typename TFaceIdType >
vtkIdType vtkStaticFaceHashLinksTemplate< TInputIdType, TFaceIdType >::GetNumberOfHashes ( ) const
inline

Get the number of hashes.

Definition at line 86 of file vtkStaticFaceHashLinksTemplate.h.

◆ GetNumberOfFacesInHash()

template<typename TInputIdType , typename TFaceIdType >
vtkIdType vtkStaticFaceHashLinksTemplate< TInputIdType, TFaceIdType >::GetNumberOfFacesInHash ( vtkIdType  hash) const
inline

Get the number of faces in a particular hash.

Definition at line 91 of file vtkStaticFaceHashLinksTemplate.h.

◆ GetCellIdOfFacesInHash()

template<typename TInputIdType , typename TFaceIdType >
TInputIdType* vtkStaticFaceHashLinksTemplate< TInputIdType, TFaceIdType >::GetCellIdOfFacesInHash ( vtkIdType  hash) const
inline

Get cell id of faces in a particular hash.

Definition at line 99 of file vtkStaticFaceHashLinksTemplate.h.

◆ GetFaceIdOfFacesInHash()

template<typename TInputIdType , typename TFaceIdType >
TFaceIdType* vtkStaticFaceHashLinksTemplate< TInputIdType, TFaceIdType >::GetFaceIdOfFacesInHash ( vtkIdType  hash) const
inline

Get face id of faces in a particular hash.

Definition at line 107 of file vtkStaticFaceHashLinksTemplate.h.

Member Data Documentation

◆ NumberOfFaces

template<typename TInputIdType , typename TFaceIdType >
vtkIdType vtkStaticFaceHashLinksTemplate< TInputIdType, TFaceIdType >::NumberOfFaces = 0
protected

Definition at line 113 of file vtkStaticFaceHashLinksTemplate.h.

◆ NumberOfHashes

template<typename TInputIdType , typename TFaceIdType >
vtkIdType vtkStaticFaceHashLinksTemplate< TInputIdType, TFaceIdType >::NumberOfHashes = 0
protected

Definition at line 114 of file vtkStaticFaceHashLinksTemplate.h.

◆ CellIdOfFaceLinks

template<typename TInputIdType , typename TFaceIdType >
std::shared_ptr<TInputIdType> vtkStaticFaceHashLinksTemplate< TInputIdType, TFaceIdType >::CellIdOfFaceLinks
protected

Definition at line 115 of file vtkStaticFaceHashLinksTemplate.h.

◆ FaceIdOfFaceLinks

template<typename TInputIdType , typename TFaceIdType >
std::shared_ptr<TFaceIdType> vtkStaticFaceHashLinksTemplate< TInputIdType, TFaceIdType >::FaceIdOfFaceLinks
protected

Definition at line 116 of file vtkStaticFaceHashLinksTemplate.h.

◆ FaceOffsets

template<typename TInputIdType , typename TFaceIdType >
std::shared_ptr<vtkIdType> vtkStaticFaceHashLinksTemplate< TInputIdType, TFaceIdType >::FaceOffsets
protected

Definition at line 117 of file vtkStaticFaceHashLinksTemplate.h.


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