24#ifndef SMDS_DOWNWARD_HXX_
25#define SMDS_DOWNWARD_HXX_
49 cellId(a), cellType(b)
79 virtual void getNodeIds(
int cellId, std::set<int>& nodeSet) = 0;
98 virtual void addDownCell(
int cellId,
int lowCellId,
unsigned char aType);
99 virtual void addUpCell(
int cellId,
int upCellId,
unsigned char aType);
100 virtual int getNodeSet(
int cellId,
int* nodeSet);
116 virtual int getNumberOfUpCells(
int cellId);
117 virtual const int* getUpCells(
int cellId);
118 virtual const unsigned char* getUpTypes(
int cellId);
119 virtual void getNodeIds(
int cellId, std::set<int>& nodeSet);
120 virtual int getNodes(
int cellId,
int* nodevec) {
return getNodeSet(cellId, nodevec); }
124 virtual void initCell(
int cellId);
125 virtual void allocate(
int nbElems);
126 virtual void compactStorage();
127 virtual void addUpCell(
int cellId,
int upCellId,
unsigned char aType);
128 virtual int getNodeSet(
int cellId,
int* nodeSet);
129 void setNodes(
int cellId,
int vtkId);
130 void setNodes(
int cellId,
const int* nodeIds);
131 int computeVtkCells(
int cellId, std::vector<int>& vtkIds);
132 int computeVtkCells(
int* pts, std::vector<int>& vtkIds);
133 int computeFaces(
int cellId,
int* vtkIds,
int nbcells,
int* downFaces,
unsigned char* downTypes);
134 int computeFaces(
int* pts,
int* vtkIds,
int nbcells,
int* downFaces,
unsigned char* downTypes);
150 virtual const unsigned char*
getUpTypes(
int cellId);
151 virtual void getNodeIds(
int cellId, std::set<int>& nodeSet);
157 virtual void addUpCell(
int cellId,
int upCellId,
unsigned char aType);
159 virtual int getNodeSet(
int cellId,
int* nodeSet);
160 int computeVolumeIds(
int cellId,
int* ids);
162 int computeVolumeIdsFromNodesFace(
int* nodes,
int nbNodes,
int* ids);
163 void setTempNodes(
int cellId,
int vtkId);
165 bool isInFace(
int cellId,
int *pts,
int npts);
167 int FindEdgeByNodesSet(
int cellId,
int* nodeSetToFind,
int vtkEdgeType);
179 virtual int getNumberOfUpCells(
int cellId);
180 virtual const int* getUpCells(
int cellId);
181 virtual const unsigned char* getUpTypes(
int cellId);
182 virtual void getNodeIds(
int cellId, std::set<int>& nodeSet);
186 virtual void allocate(
int nbElems);
187 virtual void compactStorage();
218 virtual void addDownCell(
int cellId,
int lowCellId,
unsigned char aType);
229 virtual void addDownCell(
int cellId,
int lowCellId,
unsigned char aType);
240 virtual void addDownCell(
int cellId,
int lowCellId,
unsigned char aType);
251 virtual void addDownCell(
int cellId,
int lowCellId,
unsigned char aType);
278 virtual void addDownCell(
int cellId,
int lowCellId,
unsigned char aType);
290 virtual void addDownCell(
int cellId,
int lowCellId,
unsigned char aType);
302 virtual void addDownCell(
int cellId,
int lowCellId,
unsigned char aType);
314 virtual void addDownCell(
int cellId,
int lowCellId,
unsigned char aType);
326 virtual void addDownCell(
int cellId,
int lowCellId,
unsigned char aType);
338 virtual void addDownCell(
int cellId,
int lowCellId,
unsigned char aType);
350 virtual void addDownCell(
int cellId,
int lowCellId,
unsigned char aType);
362 virtual void addDownCell(
int cellId,
int lowCellId,
unsigned char aType);
#define SMDS_EXPORT
Definition: SMESH_SMDS.hxx:37
Definition: SMDS_Downward.hxx:46
DownIdType(int a, unsigned char b)
Definition: SMDS_Downward.hxx:48
unsigned char cellType
Definition: SMDS_Downward.hxx:53
int cellId
Definition: SMDS_Downward.hxx:52
Definition: SMDS_Downward.hxx:113
std::vector< std::vector< unsigned char > > _upCellTypesVector
the number of faces sharing an edge is not known
Definition: SMDS_Downward.hxx:137
virtual void allocate(int nbElems)
Resize the downward connectivity storage vector if needed.
Definition: SMDS_Downward.cxx:220
std::vector< std::vector< int > > _upCellIdsVector
the number of faces sharing an edge is not known
Definition: SMDS_Downward.hxx:136
virtual const unsigned char * getUpTypes(int cellId)
Definition: SMDS_Downward.cxx:286
virtual void compactStorage()
Definition: SMDS_Downward.cxx:231
virtual void addUpCell(int cellId, int upCellId, unsigned char aType)
Id's are downward connectivity id's.
Definition: SMDS_Downward.cxx:259
std::vector< int > _upCellIndex
compacted storage after connectivity calculation
Definition: SMDS_Downward.hxx:140
virtual int getNodes(int cellId, int *nodevec)
Definition: SMDS_Downward.hxx:120
virtual void getNodeIds(int cellId, std::set< int > &nodeSet)
Definition: SMDS_Downward.cxx:292
std::vector< int > _upCellIds
compacted storage after connectivity calculation
Definition: SMDS_Downward.hxx:138
virtual const int * getUpCells(int cellId)
Definition: SMDS_Downward.cxx:280
virtual int getNodeSet(int cellId, int *nodeSet)
Definition: SMDS_Downward.cxx:298
std::vector< unsigned char > _upCellTypes
compacted storage after connectivity calculation
Definition: SMDS_Downward.hxx:139
virtual int getNumberOfUpCells(int cellId)
Definition: SMDS_Downward.cxx:274
Definition: SMDS_Downward.hxx:144
int _nbNodes
number of nodes in a face
Definition: SMDS_Downward.hxx:172
std::vector< unsigned char > _upCellTypes
2 volume types per face
Definition: SMDS_Downward.hxx:170
std::vector< int > _tempNodes
temporary storage of nodes, until downward connectivity completion
Definition: SMDS_Downward.hxx:171
virtual void computeEdgesWithNodes(int cellId, ListElemByNodesType &facesWithNodes)=0
std::vector< int > _upCellIds
2 volumes max.
Definition: SMDS_Downward.hxx:169
Definition: SMDS_Downward.hxx:176
virtual void computeFacesWithNodes(int cellId, ListElemByNodesType &facesWithNodes)=0
Definition: SMDS_Downward.hxx:193
Definition: SMDS_Downward.hxx:343
Definition: SMDS_Downward.hxx:319
Definition: SMDS_Downward.hxx:295
Definition: SMDS_Downward.hxx:202
Definition: SMDS_Downward.hxx:355
Definition: SMDS_Downward.hxx:331
Definition: SMDS_Downward.hxx:307
Definition: SMDS_Downward.hxx:244
Definition: SMDS_Downward.hxx:283
Definition: SMDS_Downward.hxx:222
Definition: SMDS_Downward.hxx:233
Definition: SMDS_Downward.hxx:271
Definition: SMDS_Downward.hxx:211
Definition: SMDS_Downward.hxx:68
virtual int getNumberOfDownCells(int cellId)
Get the number of downward entities associated to a cell (always the same for a given vtk type of cel...
Definition: SMDS_Downward.cxx:135
static int getCellDimension(unsigned char cellType)
get the dimension of a cell (1,2,3 for 1D, 2D 3D) given the vtk cell type
Definition: SMDS_Downward.cxx:45
virtual int getNumberOfUpCells(int cellId)=0
std::vector< int > _vtkCellIds
growing size: size = _maxId, either vtkId or -1
Definition: SMDS_Downward.hxx:106
std::vector< unsigned char > _cellTypes
fixed size: the same vector for all cells of a derived class
Definition: SMDS_Downward.hxx:107
int getVtkCellId(int cellId)
Definition: SMDS_Downward.hxx:82
SMDS_UnstructuredGrid * _grid
Definition: SMDS_Downward.hxx:102
virtual const int * getDownCells(int cellId)
get a pointer on the downward entities id's associated to a cell.
Definition: SMDS_Downward.cxx:146
virtual ~SMDS_Downward()
Definition: SMDS_Downward.cxx:91
virtual void initCell(int cellId)
generic method do nothing.
Definition: SMDS_Downward.cxx:126
virtual void allocate(int nbElems)=0
static std::vector< int > _cellDimension
conversion table: type --> dimension
Definition: SMDS_Downward.hxx:109
int addCell(int vtkId=-1)
Give or create an entry for downward connectivity structure relative to a cell.
Definition: SMDS_Downward.cxx:102
SMDS_Downward(SMDS_UnstructuredGrid *grid, int nbDownCells)
Generic constructor for all the downward connectivity structures (one per vtk cell type).
Definition: SMDS_Downward.cxx:81
virtual int getNodes(int, int *)
Definition: SMDS_Downward.hxx:80
virtual void addUpCell(int cellId, int upCellId, unsigned char aType)
Id's are downward connectivity id's.
Definition: SMDS_Downward.cxx:180
std::vector< int > _cellIds
growing size: all the down cell id's, size = _maxId * _nbDownCells
Definition: SMDS_Downward.hxx:105
virtual void getNodeIds(int cellId, std::set< int > &nodeSet)=0
int getMaxId()
Definition: SMDS_Downward.hxx:86
virtual const unsigned char * getUpTypes(int cellId)=0
int _nbDownCells
the same number for all cells of a derived class
Definition: SMDS_Downward.hxx:104
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 ...
Definition: SMDS_Downward.cxx:158
friend class SMDS_Down2D
Definition: SMDS_Downward.hxx:70
virtual void getOrderedNodesOfFace(int, std::vector< vtkIdType > &)
Definition: SMDS_Downward.hxx:81
virtual void compactStorage()=0
virtual const int * getUpCells(int cellId)=0
int _maxId
Definition: SMDS_Downward.hxx:103
virtual void addDownCell(int cellId, int lowCellId, unsigned char aType)
Id's are downward connectivity id's.
Definition: SMDS_Downward.cxx:169
virtual int getNodeSet(int cellId, int *nodeSet)
Definition: SMDS_Downward.cxx:185
This class extends vtkUnstructuredGrid to deal with downward connectivity.
Definition: SMDS_UnstructuredGrid.hxx:108
int getOrderedNodesOfFace(int vtkVolId, int &dim, std::vector< vtkIdType > &orderedNodes)
reorder the nodes of a face
Definition: SMDS_UnstructuredGrid.cxx:1048
Definition: SMDS_Downward.hxx:57
bool operator()(const DownIdType e1, const DownIdType e2) const
Definition: SMDS_Downward.hxx:58
Definition: SMDS_Downward.hxx:33
unsigned char vtkType
Definition: SMDS_Downward.hxx:36
int nbNodes
Definition: SMDS_Downward.hxx:35
Definition: SMDS_Downward.hxx:40
int nbElems
Definition: SMDS_Downward.hxx:42