#include <SMDS_Downward.hxx>
Public Member Functions | |
virtual int | getNumberOfDownCells (int cellId) |
Get the number of downward entities associated to a cell (always the same for a given vtk type of cell) More... | |
virtual const int * | getDownCells (int cellId) |
get a pointer on the downward entities id's associated to a cell. More... | |
virtual const unsigned char * | getDownTypes (int cellId) |
get a list of vtk cell types associated to downward entities of a given cell, in the same order than the downward entities id's list ( More... | |
virtual int | getNumberOfUpCells (int cellId)=0 |
virtual const int * | getUpCells (int cellId)=0 |
virtual const unsigned char * | getUpTypes (int cellId)=0 |
virtual void | getNodeIds (int cellId, std::set< int > &nodeSet)=0 |
virtual int | getNodes (int cellId, int *nodevec) |
virtual void | getOrderedNodesOfFace (int cellId, std::vector< vtkIdType > &orderedNodes) |
int | getVtkCellId (int cellId) |
int | getMaxId () |
Static Public Member Functions | |
static int | getCellDimension (unsigned char cellType) |
get the dimension of a cell (1,2,3 for 1D, 2D 3D) given the vtk cell type More... | |
Protected Member Functions | |
SMDS_Downward (SMDS_UnstructuredGrid *grid, int nbDownCells) | |
Generic constructor for all the downward connectivity structures (one per vtk cell type). More... | |
virtual | ~SMDS_Downward () |
int | addCell (int vtkId=-1) |
Give or create an entry for downward connectivity structure relative to a cell. More... | |
virtual void | initCell (int cellId) |
generic method do nothing. More... | |
virtual void | allocate (int nbElems)=0 |
virtual void | compactStorage ()=0 |
virtual void | addDownCell (int cellId, int lowCellId, unsigned char aType) |
Id's are downward connectivity id's. More... | |
virtual void | addUpCell (int cellId, int upCellId, unsigned char aType) |
Id's are downward connectivity id's. More... | |
virtual int | getNodeSet (int cellId, int *nodeSet) |
Protected Attributes | |
SMDS_UnstructuredGrid * | _grid |
int | _maxId |
int | _nbDownCells |
the same number for all cells of a derived class More... | |
std::vector< int > | _cellIds |
growing size: all the down cell id's, size = _maxId * _nbDownCells More... | |
std::vector< int > | _vtkCellIds |
growing size: size = _maxId, either vtkId or -1 More... | |
std::vector< unsigned char > | _cellTypes |
fixed size: the same vector for all cells of a derived class More... | |
Static Protected Attributes | |
static std::vector< int > | _cellDimension |
conversion table: type –> dimension More... | |
Friends | |
class | SMDS_UnstructuredGrid |
class | SMDS_Down2D |
class | SMDS_Down3D |
|
protected |
Generic constructor for all the downward connectivity structures (one per vtk cell type).
The static structure for cell dimension is set only once.
grid | unstructured grid associated to the mesh. |
nbDownCells | number of downward entities associated to this vtk type of cell. |
References _cellDimension, _cellIds, _cellTypes, _maxId, and getCellDimension().
|
protectedvirtual |
Give or create an entry for downward connectivity structure relative to a cell.
If the entry already exists, just return its id, otherwise, create it. The internal storage memory is allocated if needed. The SMDS_UnstructuredGrid::_cellIdToDownId vector is completed for vtkUnstructuredGrid cells.
vtkId | for a vtkUnstructuredGrid cell or -1 (default) for a created downward cell. |
References _grid, _maxId, _vtkCellIds, allocate(), SMDS_UnstructuredGrid::CellIdToDownId(), initCell(), and SMDS_UnstructuredGrid::setCellIdToDownId().
Id's are downward connectivity id's.
add a downward entity of dimension n-1 (cell or node) to a given cell.
Actual implementation is done in derived methods.
cellId | index of the parent cell (dimension n) in the downward structure relative to a vtk cell type. |
lowCellId | index of the children cell to add (dimension n-1) |
aType | vtk cell type of the cell to add (needed to find the SMDS_Downward structure containing the cell to add). |
Reimplemented in SMDS_DownQuadHexa, SMDS_DownHexa, SMDS_DownQuadPenta, SMDS_DownPenta, SMDS_DownQuadPyramid, SMDS_DownPyramid, SMDS_DownQuadTetra, SMDS_DownTetra, SMDS_DownQuadQuadrangle, SMDS_DownQuadrangle, SMDS_DownQuadTriangle, and SMDS_DownTriangle.
Id's are downward connectivity id's.
add a downward entity of dimension n+1 to a given cell.
Actual implementation is done in derived methods.
cellId | index of the children cell (dimension n) in the downward structure relative to a vtk cell type. |
upCellId | index of the parent cell to add (dimension n+1) |
aType | vtk cell type of the cell to add (needed to find the SMDS_Downward structure containing the cell to add). |
Reimplemented in SMDS_Down2D, and SMDS_Down1D.
|
protectedpure virtual |
Implemented in SMDS_Down3D, SMDS_Down2D, and SMDS_Down1D.
Referenced by addCell().
|
protectedpure virtual |
Implemented in SMDS_Down3D, SMDS_Down2D, and SMDS_Down1D.
|
static |
get the dimension of a cell (1,2,3 for 1D, 2D 3D) given the vtk cell type
cellType | vtk cell type |
References VTK_MAXTYPE.
Referenced by SMDS_UnstructuredGrid::BuildDownwardConnectivity(), SMDS_Down1D::computeFaces(), SMDS_Down2D::computeVolumeIdsFromNodesFace(), SMDS_Down1D::computeVtkCells(), SMESH_MeshEditor::CreateHoleSkin(), SMDS_UnstructuredGrid::GetNeighbors(), SMDS_UnstructuredGrid::getOrderedNodesOfFace(), SMDS_UnstructuredGrid::GetParentVolumes(), and SMDS_Downward().
get a pointer on the downward entities id's associated to a cell.
cellId | index of the cell in the downward structure relative to a given vtk cell type. |
References _cellIds, and _nbDownCells.
Referenced by SMDS_Down1D::computeFaces(), SMESH_MeshEditor::CreateHoleSkin(), and SMESH_MeshEditor::DoubleNodesOnGroupBoundaries().
|
virtual |
get a list of vtk cell types associated to downward entities of a given cell, in the same order than the downward entities id's list (
cellId | index of the cell in the downward structure relative to a vtk cell type. |
References _cellTypes.
Referenced by SMDS_Down1D::computeFaces(), SMESH_MeshEditor::CreateHoleSkin(), and SMESH_MeshEditor::DoubleNodesOnGroupBoundaries().
int SMDS_Downward::getMaxId | ( | ) |
References _maxId.
Referenced by SMDS_UnstructuredGrid::BuildDownwardConnectivity().
Implemented in SMDS_Down3D, SMDS_Down2D, and SMDS_Down1D.
Referenced by SMDS_Down2D::getNodeIds().
Reimplemented in SMDS_Down1D.
Referenced by SMESH_MeshEditor::CreateHoleSkin(), and SMESH_MeshEditor::DoubleNodesOnGroupBoundaries().
Reimplemented in SMDS_Down2D, and SMDS_Down1D.
Referenced by SMDS_Down2D::FindEdgeByNodes(), SMDS_Down3D::FindFaceByNodes(), and SMDS_Down1D::getNodes().
Get the number of downward entities associated to a cell (always the same for a given vtk type of cell)
cellId | not used here. |
References _nbDownCells.
Referenced by SMDS_Down1D::computeFaces(), SMESH_MeshEditor::CreateHoleSkin(), and SMESH_MeshEditor::DoubleNodesOnGroupBoundaries().
Implemented in SMDS_Down3D, SMDS_Down2D, and SMDS_Down1D.
|
virtual |
Reimplemented in SMDS_DownQuadHexa, SMDS_DownHexa, SMDS_DownQuadPenta, SMDS_DownPenta, SMDS_DownQuadPyramid, SMDS_DownPyramid, SMDS_DownQuadTetra, and SMDS_DownTetra.
Referenced by SMDS_UnstructuredGrid::getOrderedNodesOfFace().
Implemented in SMDS_Down3D, SMDS_Down2D, and SMDS_Down1D.
|
pure virtual |
Implemented in SMDS_Down3D, SMDS_Down2D, and SMDS_Down1D.
References _vtkCellIds.
Referenced by SMESH_MeshEditor::CreateHoleSkin().
|
protectedvirtual |
generic method do nothing.
see derived methods
cellId |
Reimplemented in SMDS_Down1D.
Referenced by addCell().
|
friend |
|
friend |
|
friend |
|
staticprotected |
conversion table: type –> dimension
Referenced by SMDS_Downward().
|
protected |
growing size: all the down cell id's, size = _maxId * _nbDownCells
Referenced by SMDS_DownTriangle::addDownCell(), SMDS_DownQuadTriangle::addDownCell(), SMDS_DownQuadrangle::addDownCell(), SMDS_DownQuadQuadrangle::addDownCell(), SMDS_DownTetra::addDownCell(), SMDS_DownQuadTetra::addDownCell(), SMDS_DownPyramid::addDownCell(), SMDS_DownQuadPyramid::addDownCell(), SMDS_DownPenta::addDownCell(), SMDS_DownQuadPenta::addDownCell(), SMDS_DownHexa::addDownCell(), SMDS_DownQuadHexa::addDownCell(), SMDS_Down1D::allocate(), SMDS_Down2D::allocate(), SMDS_Down3D::allocate(), SMDS_Down1D::compactStorage(), SMDS_Down2D::compactStorage(), SMDS_Down1D::computeFaces(), SMDS_Down1D::computeVtkCells(), SMDS_Down2D::FindEdgeByNodes(), SMDS_Down3D::FindFaceByNodes(), getDownCells(), SMDS_Down1D::getNodeIds(), SMDS_Down2D::getNodeIds(), SMDS_Down1D::getNodeSet(), SMDS_Down1D::setNodes(), and SMDS_Downward().
|
protected |
fixed size: the same vector for all cells of a derived class
Referenced by SMDS_Down2D::FindEdgeByNodes(), SMDS_Down3D::FindFaceByNodes(), getDownTypes(), SMDS_Down2D::getNodeIds(), SMDS_DownEdge::SMDS_DownEdge(), SMDS_DownHexa::SMDS_DownHexa(), SMDS_DownPenta::SMDS_DownPenta(), SMDS_DownPyramid::SMDS_DownPyramid(), SMDS_DownQuadEdge::SMDS_DownQuadEdge(), SMDS_DownQuadHexa::SMDS_DownQuadHexa(), SMDS_DownQuadPenta::SMDS_DownQuadPenta(), SMDS_DownQuadPyramid::SMDS_DownQuadPyramid(), SMDS_DownQuadQuadrangle::SMDS_DownQuadQuadrangle(), SMDS_DownQuadrangle::SMDS_DownQuadrangle(), SMDS_DownQuadTetra::SMDS_DownQuadTetra(), SMDS_DownQuadTriangle::SMDS_DownQuadTriangle(), SMDS_DownTetra::SMDS_DownTetra(), SMDS_DownTriangle::SMDS_DownTriangle(), and SMDS_Downward().
|
protected |
Referenced by addCell(), SMDS_Down1D::computeFaces(), SMDS_DownTetra::computeFacesWithNodes(), SMDS_DownQuadTetra::computeFacesWithNodes(), SMDS_DownPyramid::computeFacesWithNodes(), SMDS_DownQuadPyramid::computeFacesWithNodes(), SMDS_DownPenta::computeFacesWithNodes(), SMDS_DownQuadPenta::computeFacesWithNodes(), SMDS_DownHexa::computeFacesWithNodes(), SMDS_DownQuadHexa::computeFacesWithNodes(), SMDS_Down2D::computeVolumeIds(), SMDS_Down2D::computeVolumeIdsFromNodesFace(), SMDS_Down1D::computeVtkCells(), SMDS_Down2D::FindEdgeByNodes(), SMDS_Down3D::FindFaceByNodes(), SMDS_Down2D::getNodeIds(), SMDS_Down3D::getNodeIds(), SMDS_DownTetra::getOrderedNodesOfFace(), SMDS_DownQuadTetra::getOrderedNodesOfFace(), SMDS_DownPyramid::getOrderedNodesOfFace(), SMDS_DownQuadPyramid::getOrderedNodesOfFace(), SMDS_DownPenta::getOrderedNodesOfFace(), SMDS_DownQuadPenta::getOrderedNodesOfFace(), SMDS_DownHexa::getOrderedNodesOfFace(), SMDS_DownQuadHexa::getOrderedNodesOfFace(), SMDS_Down1D::setNodes(), and SMDS_Down2D::setTempNodes().
|
protected |
Referenced by addCell(), SMDS_Down1D::compactStorage(), SMDS_Down2D::compactStorage(), getMaxId(), and SMDS_Downward().
|
protected |
the same number for all cells of a derived class
Referenced by SMDS_DownTriangle::addDownCell(), SMDS_DownQuadTriangle::addDownCell(), SMDS_DownQuadrangle::addDownCell(), SMDS_DownQuadQuadrangle::addDownCell(), SMDS_DownTetra::addDownCell(), SMDS_DownQuadTetra::addDownCell(), SMDS_DownPyramid::addDownCell(), SMDS_DownQuadPyramid::addDownCell(), SMDS_DownPenta::addDownCell(), SMDS_DownQuadPenta::addDownCell(), SMDS_DownHexa::addDownCell(), SMDS_DownQuadHexa::addDownCell(), SMDS_Down1D::allocate(), SMDS_Down2D::allocate(), SMDS_Down3D::allocate(), SMDS_Down1D::compactStorage(), SMDS_Down2D::compactStorage(), SMDS_Down1D::computeFaces(), SMDS_Down1D::computeVtkCells(), SMDS_Down2D::FindEdgeByNodes(), SMDS_Down3D::FindFaceByNodes(), getDownCells(), SMDS_Down1D::getNodeIds(), SMDS_Down2D::getNodeIds(), SMDS_Down1D::getNodeSet(), getNumberOfDownCells(), and SMDS_Down1D::setNodes().
|
protected |
growing size: size = _maxId, either vtkId or -1
Referenced by addCell(), SMDS_Down1D::allocate(), SMDS_Down2D::allocate(), SMDS_Down3D::allocate(), SMDS_Down1D::compactStorage(), SMDS_Down2D::compactStorage(), SMDS_Down3D::getNodeIds(), SMDS_DownTetra::getOrderedNodesOfFace(), SMDS_DownQuadTetra::getOrderedNodesOfFace(), SMDS_DownPyramid::getOrderedNodesOfFace(), SMDS_DownQuadPyramid::getOrderedNodesOfFace(), SMDS_DownPenta::getOrderedNodesOfFace(), SMDS_DownQuadPenta::getOrderedNodesOfFace(), SMDS_DownHexa::getOrderedNodesOfFace(), SMDS_DownQuadHexa::getOrderedNodesOfFace(), and getVtkCellId().