Version: 9.12.0
SMDS_MeshInfo.hxx
Go to the documentation of this file.
1 // Copyright (C) 2007-2023 CEA, EDF, OPEN CASCADE
2 //
3 // This library is free software; you can redistribute it and/or
4 // modify it under the terms of the GNU Lesser General Public
5 // License as published by the Free Software Foundation; either
6 // version 2.1 of the License, or (at your option) any later version.
7 //
8 // This library is distributed in the hope that it will be useful,
9 // but WITHOUT ANY WARRANTY; without even the implied warranty of
10 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
11 // Lesser General Public License for more details.
12 //
13 // You should have received a copy of the GNU Lesser General Public
14 // License along with this library; if not, write to the Free Software
15 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
16 //
17 // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
18 //
19 
20 // File : SMDS_MeshInfo.hxx
21 // Created : Mon Sep 24 18:32:41 2007
22 // Author : Edward AGAPOV (eap)
23 //
24 #ifndef SMDS_MeshInfo_HeaderFile
25 #define SMDS_MeshInfo_HeaderFile
26 
27 #include <vector>
28 
29 #include "SMESH_SMDS.hxx"
30 
31 #include "SMDS_MeshElement.hxx"
32 #include<utilities.h>
33 #include <smIdType.hxx>
34 
36 {
37 public:
38 
39  inline SMDS_MeshInfo();
40  inline SMDS_MeshInfo& operator=(const SMDS_MeshInfo& other);
41  inline void Clear();
42 
43  inline smIdType NbElements(SMDSAbs_ElementType type=SMDSAbs_All) const;
44  inline smIdType NbElements(SMDSAbs_EntityType type) const { return NbEntities(type); }
45  inline smIdType NbElements(SMDSAbs_GeometryType type) const { return NbElementsOfGeom(type); }
46 
47  inline smIdType NbEntities(SMDSAbs_EntityType type) const;
48  inline smIdType NbElementsOfGeom(SMDSAbs_GeometryType geom) const;
49 
50  smIdType NbNodes() const { return myNbNodes; }
51  smIdType Nb0DElements() const { return myNb0DElements; }
52  smIdType NbBalls() const { return myNbBalls; }
53  inline smIdType NbEdges (SMDSAbs_ElementOrder order = ORDER_ANY) const;
54 
55  inline smIdType NbFaces (SMDSAbs_ElementOrder order = ORDER_ANY) const;
56  inline smIdType NbTriangles (SMDSAbs_ElementOrder order = ORDER_ANY) const;
57  inline smIdType NbQuadrangles(SMDSAbs_ElementOrder order = ORDER_ANY) const;
58  smIdType NbBiQuadTriangles() const { return myNbBiQuadTriangles; }
59  smIdType NbBiQuadQuadrangles() const { return myNbBiQuadQuadrangles; }
60  inline smIdType NbPolygons(SMDSAbs_ElementOrder order = ORDER_ANY) const;
61 
62  inline smIdType NbVolumes (SMDSAbs_ElementOrder order = ORDER_ANY) const;
63  inline smIdType NbTetras (SMDSAbs_ElementOrder order = ORDER_ANY) const;
64  inline smIdType NbHexas (SMDSAbs_ElementOrder order = ORDER_ANY) const;
65  inline smIdType NbPyramids(SMDSAbs_ElementOrder order = ORDER_ANY) const;
66  inline smIdType NbPrisms (SMDSAbs_ElementOrder order = ORDER_ANY) const;
67  inline smIdType NbHexPrisms(SMDSAbs_ElementOrder order = ORDER_ANY) const;
68  smIdType NbTriQuadHexas() const { return myNbTriQuadHexas; }
69  smIdType NbQuadPrisms() const { return myNbQuadPrisms; }
70  smIdType NbBiQuadPrisms() const { return myNbBiQuadPrisms; }
71  smIdType NbPolyhedrons() const { return myNbPolyhedrons; }
72 
73 protected:
74  inline void addWithPoly(const SMDS_MeshElement* el);
75  inline void setNb(const SMDSAbs_EntityType geomType, const smIdType nb);
76 
77 private:
78  friend class SMDS_Mesh;
79 
80  // methods to count NOT POLY elements
81  inline void remove(const SMDS_MeshElement* el);
82  inline void add (const SMDS_MeshElement* el);
83  inline smIdType index(SMDSAbs_ElementType type, int nbNodes) const;
84  // methods to remove elements of ANY kind
85  inline void RemoveEdge(const SMDS_MeshElement* el);
86  inline void RemoveFace(const SMDS_MeshElement* el);
87  inline void RemoveVolume(const SMDS_MeshElement* el);
88 
89  smIdType myNbNodes;
90 
91  smIdType myNb0DElements;
92  smIdType myNbBalls;
93  smIdType myNbEdges , myNbQuadEdges ;
94  smIdType myNbTriangles , myNbQuadTriangles, myNbBiQuadTriangles ;
95  smIdType myNbQuadrangles, myNbQuadQuadrangles, myNbBiQuadQuadrangles;
96  smIdType myNbPolygons , myNbQuadPolygons;
97 
98  smIdType myNbTetras , myNbQuadTetras ;
99  smIdType myNbHexas , myNbQuadHexas, myNbTriQuadHexas;
100  smIdType myNbPyramids, myNbQuadPyramids;
101  smIdType myNbPrisms , myNbQuadPrisms, myNbBiQuadPrisms;
102  smIdType myNbHexPrism;
103  smIdType myNbPolyhedrons;
104 
105  std::vector<smIdType*> myNb; // pointers to myNb... fields
106  std::vector<int> myShift; // shift to get an index in myNb by elem->NbNodes()
107 };
108 
110  myNbNodes (0),
111  myNb0DElements (0),
112  myNbBalls (0),
113  myNbEdges (0), myNbQuadEdges (0),
114  myNbTriangles (0), myNbQuadTriangles (0), myNbBiQuadTriangles(0),
115  myNbQuadrangles(0), myNbQuadQuadrangles(0), myNbBiQuadQuadrangles(0),
116  myNbPolygons (0), myNbQuadPolygons (0),
117  myNbTetras (0), myNbQuadTetras (0),
118  myNbHexas (0), myNbQuadHexas (0), myNbTriQuadHexas(0),
119  myNbPyramids (0), myNbQuadPyramids(0),
120  myNbPrisms (0), myNbQuadPrisms (0), myNbBiQuadPrisms(0),
121  myNbHexPrism (0),
122  myNbPolyhedrons(0)
123 {
124  // Number of nodes in standard element types (. - actual nb, * - after the shift)
125  // n v f e 0 n b
126  // o o a d d o a
127  // d l c g d l
128  // e e e e l
129  // s
130  // ====================
131  // 0 ------------------ - DON't USE 0!!!
132  // 1 . * .
133  // 2 . *
134  // 3 . . *
135  // 4 * .
136  // 5 *
137  // 6 * .
138  // 7 .
139  // 8 * .
140  // 9 .
141  // 10 *
142  // 11
143  // 12 *
144  // 13 *
145  // 14
146  // 15 *
147  // 16 *
148  // 17 *
149  // 18 *
150  // 19
151  // 20 *
152  // 21
153  // 22
154  // 23
155  // 24
156  // 25 *
157  // 26 *
158  // 27 *
159  // 28 *
160  // 29 *
161  // 30 *
162  // 31 *
163  //
164  // So to have a unique index for each type basing on nb of nodes, we use a shift:
165  myShift.resize(SMDSAbs_NbElementTypes, 0);
166 
167  myShift[ SMDSAbs_Face ] = +22;// 3->25, 4->26, etc.
168  myShift[ SMDSAbs_Edge ] = +14;// 2->16, 3->17
169  myShift[ SMDSAbs_0DElement ] = +2; // 1->3
170  myShift[ SMDSAbs_Ball ] = +1; // 1->2
171 
172  myNb.resize( index( SMDSAbs_Face,9 ) + 1, NULL);
173 
174  myNb[ index( SMDSAbs_Node,1 )] = & myNbNodes;
176  myNb[ index( SMDSAbs_Ball,1 )] = & myNbBalls;
177 
178  myNb[ index( SMDSAbs_Edge,2 )] = & myNbEdges;
180 
187 
188  myNb[ index( SMDSAbs_Volume, 4)] = & myNbTetras;
190  myNb[ index( SMDSAbs_Volume, 6)] = & myNbPrisms;
191  myNb[ index( SMDSAbs_Volume, 8)] = & myNbHexas;
197  myNb[ index( SMDSAbs_Volume, 20)] = & myNbQuadHexas;
199 }
200 
201 inline SMDS_MeshInfo& // operator=
203 { for ( size_t i=0; i<myNb.size(); ++i ) if ( myNb[i] ) (*myNb[i])=(*other.myNb[i]);
204  myNbPolygons = other.myNbPolygons;
207  return *this;
208 }
209 
210 inline void // Clear
212 { for ( size_t i=0; i<myNb.size(); ++i ) if ( myNb[i] ) (*myNb[i])=0;
214 }
215 
216 inline smIdType // index
218 { return nbNodes + myShift[ type ]; }
219 
220 inline void // remove
222 { --(*myNb[ index(el->GetType(), el->NbNodes()) ]); }
223 
224 inline void // add
226 { ++(*myNb[ index(el->GetType(), el->NbNodes()) ]); }
227 
228 inline void // addWithPoly
230  switch ( el->GetEntityType() ) {
231  case SMDSEntity_Polygon: ++myNbPolygons; break;
233  case SMDSEntity_Polyhedra: ++myNbPolyhedrons; break;
234  default: add(el);
235  }
236 }
237 inline void // RemoveEdge
239 { if ( el->IsQuadratic() ) --myNbQuadEdges; else --myNbEdges; }
240 
241 inline void // RemoveFace
243  switch ( el->GetEntityType() ) {
244  case SMDSEntity_Polygon: --myNbPolygons; break;
246  default: remove(el);
247  }
248 }
249 
250 inline void // RemoveVolume
252 { if ( el->IsPoly() ) --myNbPolyhedrons; else remove( el ); }
253 
254 inline smIdType // NbEdges
256 { return order == ORDER_ANY ? myNbEdges+myNbQuadEdges : order == ORDER_LINEAR ? myNbEdges : myNbQuadEdges; }
257 
258 inline smIdType // NbFaces
260 { return NbTriangles(order)+NbQuadrangles(order)+(order == ORDER_ANY ? myNbPolygons+myNbQuadPolygons : order == ORDER_LINEAR ? myNbPolygons : myNbQuadPolygons ); }
261 
262 inline smIdType // NbTriangles
265 
266 inline smIdType // NbQuadrangles
269 
270 inline smIdType // NbPolygons
273 
274 inline smIdType // NbVolumes
276 { return NbTetras(order) + NbHexas(order) + NbPyramids(order) + NbPrisms(order) + NbHexPrisms(order) + (order == ORDER_QUADRATIC ? 0 : myNbPolyhedrons); }
277 
278 inline smIdType // NbTetras
280 { return order == ORDER_ANY ? myNbTetras+myNbQuadTetras : order == ORDER_LINEAR ? myNbTetras : myNbQuadTetras; }
281 
282 inline smIdType // NbHexas
285 
286 inline smIdType // NbPyramids
289 
290 inline smIdType // NbPrisms
293 
294 inline smIdType // NbHexPrisms
296 { return order == ORDER_ANY ? myNbHexPrism : order == ORDER_LINEAR ? myNbHexPrism : 0; }
297 
298 inline smIdType // NbElements
300 {
301  smIdType nb = 0;
302  switch (type) {
303  case SMDSAbs_All:
304  for ( size_t i=1+index( SMDSAbs_Node,1 ); i<myNb.size(); ++i ) if ( myNb[i] ) nb += *myNb[i];
306  break;
307  case SMDSAbs_Volume:
310  myNbPolyhedrons );
311  break;
312  case SMDSAbs_Face:
316  break;
317  case SMDSAbs_Edge:
318  nb = myNbEdges + myNbQuadEdges;
319  break;
320  case SMDSAbs_Node:
321  nb = myNbNodes;
322  break;
323  case SMDSAbs_0DElement:
324  nb = myNb0DElements;
325  break;
326  case SMDSAbs_Ball:
327  nb = myNbBalls;
328  break;
329  default:;
330  }
331  return nb;
332 }
333 
334 inline smIdType // NbEntities
336 {
337  switch (type) {
338  case SMDSEntity_Node: return myNbNodes;
339  case SMDSEntity_Edge: return myNbEdges;
340  case SMDSEntity_Quad_Edge: return myNbQuadEdges;
341  case SMDSEntity_Triangle: return myNbTriangles;
347  case SMDSEntity_Polygon: return myNbPolygons;
348  case SMDSEntity_Tetra: return myNbTetras;
350  case SMDSEntity_Pyramid: return myNbPyramids;
352  case SMDSEntity_Hexa: return myNbHexas;
353  case SMDSEntity_Quad_Hexa: return myNbQuadHexas;
355  case SMDSEntity_Penta: return myNbPrisms;
360  case SMDSEntity_0D: return myNb0DElements;
361  case SMDSEntity_Ball: return myNbBalls;
364  case SMDSEntity_Last:
365  break;
366  }
367  return 0;
368 }
369 
370 inline smIdType // NbElementsOfGeom
372 {
373  switch ( geom ) {
374  // 0D:
375  case SMDSGeom_POINT: return myNb0DElements;
376  // 1D:
377  case SMDSGeom_EDGE: return (myNbEdges +
378  myNbQuadEdges);
379  // 2D:
380  case SMDSGeom_TRIANGLE: return (myNbTriangles +
383  case SMDSGeom_QUADRANGLE: return (myNbQuadrangles +
387  // 3D:
388  case SMDSGeom_TETRA: return (myNbTetras +
390  case SMDSGeom_PYRAMID: return (myNbPyramids +
392  case SMDSGeom_HEXA: return (myNbHexas +
393  myNbQuadHexas +
395  case SMDSGeom_PENTA: return (myNbPrisms +
399  case SMDSGeom_POLYHEDRA: return myNbPolyhedrons;
400  // Discrete:
401  case SMDSGeom_BALL: return myNbBalls;
402  //
403  case SMDSGeom_NONE:
404  default:;
405  }
406  return 0;
407 }
408 
409 inline void // setNb
410 SMDS_MeshInfo::setNb(const SMDSAbs_EntityType geomType, const smIdType nb)
411 {
412  switch (geomType) {
413  case SMDSEntity_Node: myNbNodes = nb; break;
414  case SMDSEntity_0D: myNb0DElements = nb; break;
415  case SMDSEntity_Ball: myNbBalls = nb; break;
418  case SMDSEntity_Edge: myNbEdges = nb; break;
419  case SMDSEntity_Hexa: myNbHexas = nb; break;
420  case SMDSEntity_Hexagonal_Prism: myNbHexPrism = nb; break;
421  case SMDSEntity_Penta: myNbPrisms = nb; break;
422  case SMDSEntity_Polygon: myNbPolygons = nb; break;
423  case SMDSEntity_Polyhedra: myNbPolyhedrons = nb; break;
424  case SMDSEntity_Pyramid: myNbPyramids = nb; break;
425  case SMDSEntity_Quad_Edge: myNbQuadEdges = nb; break;
426  case SMDSEntity_Quad_Hexa: myNbQuadHexas = nb; break;
427  case SMDSEntity_Quad_Penta: myNbQuadPrisms = nb; break;
428  case SMDSEntity_BiQuad_Penta: myNbBiQuadPrisms = nb; break;
429  case SMDSEntity_Quad_Pyramid: myNbQuadPyramids = nb; break;
431  case SMDSEntity_Quad_Tetra: myNbQuadTetras = nb; break;
433  case SMDSEntity_Quadrangle: myNbQuadrangles = nb; break;
434  case SMDSEntity_Tetra: myNbTetras = nb; break;
435  case SMDSEntity_TriQuad_Hexa: myNbTriQuadHexas = nb; break;
436  case SMDSEntity_Triangle: myNbTriangles = nb; break;
437  case SMDSEntity_Quad_Polygon: myNbQuadPolygons = nb; break;
439  case SMDSEntity_Last:
440  break;
441  }
442 }
443 
444 #endif
SMDSAbs_ElementOrder
Definition: SMDSAbs_ElementType.hxx:70
@ ORDER_LINEAR
entities of any order
Definition: SMDSAbs_ElementType.hxx:72
@ ORDER_QUADRATIC
entities of 1st order
Definition: SMDSAbs_ElementType.hxx:73
@ ORDER_ANY
Definition: SMDSAbs_ElementType.hxx:71
SMDSAbs_GeometryType
enumeration for element geometry type
Definition: SMDSAbs_ElementType.hxx:47
@ SMDSGeom_POLYHEDRA
Definition: SMDSAbs_ElementType.hxx:62
@ SMDSGeom_HEXAGONAL_PRISM
Definition: SMDSAbs_ElementType.hxx:61
@ SMDSGeom_POINT
Definition: SMDSAbs_ElementType.hxx:49
@ SMDSGeom_TRIANGLE
Definition: SMDSAbs_ElementType.hxx:53
@ SMDSGeom_EDGE
Definition: SMDSAbs_ElementType.hxx:51
@ SMDSGeom_BALL
Definition: SMDSAbs_ElementType.hxx:64
@ SMDSGeom_QUADRANGLE
Definition: SMDSAbs_ElementType.hxx:54
@ SMDSGeom_PENTA
Definition: SMDSAbs_ElementType.hxx:60
@ SMDSGeom_TETRA
Definition: SMDSAbs_ElementType.hxx:57
@ SMDSGeom_POLYGON
Definition: SMDSAbs_ElementType.hxx:55
@ SMDSGeom_PYRAMID
Definition: SMDSAbs_ElementType.hxx:58
@ SMDSGeom_HEXA
Definition: SMDSAbs_ElementType.hxx:59
@ SMDSGeom_NONE
Definition: SMDSAbs_ElementType.hxx:66
SMDSAbs_ElementType
Type (node, edge, face or volume) of elements.
Definition: SMDSAbs_ElementType.hxx:34
@ SMDSAbs_0DElement
Definition: SMDSAbs_ElementType.hxx:40
@ SMDSAbs_NbElementTypes
Definition: SMDSAbs_ElementType.hxx:42
@ SMDSAbs_Face
Definition: SMDSAbs_ElementType.hxx:38
@ SMDSAbs_Node
Definition: SMDSAbs_ElementType.hxx:36
@ SMDSAbs_All
Definition: SMDSAbs_ElementType.hxx:35
@ SMDSAbs_Edge
Definition: SMDSAbs_ElementType.hxx:37
@ SMDSAbs_Volume
Definition: SMDSAbs_ElementType.hxx:39
@ SMDSAbs_Ball
Definition: SMDSAbs_ElementType.hxx:41
SMDSAbs_EntityType
Enumeration of entity type used in mesh info array.
Definition: SMDSAbs_ElementType.hxx:79
@ SMDSEntity_Quad_Triangle
Definition: SMDSAbs_ElementType.hxx:85
@ SMDSEntity_Quad_Penta
Definition: SMDSAbs_ElementType.hxx:100
@ SMDSEntity_Hexagonal_Prism
Definition: SMDSAbs_ElementType.hxx:102
@ SMDSEntity_Quad_Hexa
Definition: SMDSAbs_ElementType.hxx:97
@ SMDSEntity_Quad_Edge
Definition: SMDSAbs_ElementType.hxx:83
@ SMDSEntity_0D
Definition: SMDSAbs_ElementType.hxx:81
@ SMDSEntity_Last
Definition: SMDSAbs_ElementType.hxx:106
@ SMDSEntity_Quad_Polyhedra
Definition: SMDSAbs_ElementType.hxx:104
@ SMDSEntity_Penta
Definition: SMDSAbs_ElementType.hxx:99
@ SMDSEntity_Node
Definition: SMDSAbs_ElementType.hxx:80
@ SMDSEntity_Ball
Definition: SMDSAbs_ElementType.hxx:105
@ SMDSEntity_Quadrangle
Definition: SMDSAbs_ElementType.hxx:87
@ SMDSEntity_Hexa
Definition: SMDSAbs_ElementType.hxx:96
@ SMDSEntity_BiQuad_Penta
Definition: SMDSAbs_ElementType.hxx:101
@ SMDSEntity_Polyhedra
Definition: SMDSAbs_ElementType.hxx:103
@ SMDSEntity_Quad_Tetra
Definition: SMDSAbs_ElementType.hxx:93
@ SMDSEntity_Quad_Pyramid
Definition: SMDSAbs_ElementType.hxx:95
@ SMDSEntity_BiQuad_Triangle
Definition: SMDSAbs_ElementType.hxx:86
@ SMDSEntity_Polygon
Definition: SMDSAbs_ElementType.hxx:90
@ SMDSEntity_Tetra
Definition: SMDSAbs_ElementType.hxx:92
@ SMDSEntity_Edge
Definition: SMDSAbs_ElementType.hxx:82
@ SMDSEntity_Quad_Polygon
Definition: SMDSAbs_ElementType.hxx:91
@ SMDSEntity_TriQuad_Hexa
Definition: SMDSAbs_ElementType.hxx:98
@ SMDSEntity_Triangle
Definition: SMDSAbs_ElementType.hxx:84
@ SMDSEntity_Quad_Quadrangle
Definition: SMDSAbs_ElementType.hxx:88
@ SMDSEntity_Pyramid
Definition: SMDSAbs_ElementType.hxx:94
@ SMDSEntity_BiQuad_Quadrangle
Definition: SMDSAbs_ElementType.hxx:89
#define SMDS_EXPORT
Definition: SMESH_SMDS.hxx:37
Base class for elements.
Definition: SMDS_MeshElement.hxx:56
virtual bool IsPoly() const =0
virtual SMDSAbs_EntityType GetEntityType() const =0
virtual bool IsQuadratic() const =0
virtual int NbNodes() const =0
virtual SMDSAbs_ElementType GetType() const =0
Definition: SMDS_MeshInfo.hxx:36
smIdType myNbBiQuadPrisms
Definition: SMDS_MeshInfo.hxx:101
smIdType myNbBalls
Definition: SMDS_MeshInfo.hxx:92
smIdType NbElements(SMDSAbs_ElementType type=SMDSAbs_All) const
Definition: SMDS_MeshInfo.hxx:299
smIdType myNbPolygons
Definition: SMDS_MeshInfo.hxx:96
void addWithPoly(const SMDS_MeshElement *el)
Definition: SMDS_MeshInfo.hxx:229
SMDS_MeshInfo()
Definition: SMDS_MeshInfo.hxx:109
smIdType NbTriQuadHexas() const
Definition: SMDS_MeshInfo.hxx:68
smIdType NbHexas(SMDSAbs_ElementOrder order=ORDER_ANY) const
Definition: SMDS_MeshInfo.hxx:283
void add(const SMDS_MeshElement *el)
Definition: SMDS_MeshInfo.hxx:225
void remove(const SMDS_MeshElement *el)
Definition: SMDS_MeshInfo.hxx:221
void RemoveVolume(const SMDS_MeshElement *el)
Definition: SMDS_MeshInfo.hxx:251
smIdType myNbQuadrangles
Definition: SMDS_MeshInfo.hxx:95
smIdType index(SMDSAbs_ElementType type, int nbNodes) const
Definition: SMDS_MeshInfo.hxx:217
smIdType myNbQuadTetras
Definition: SMDS_MeshInfo.hxx:98
smIdType NbQuadrangles(SMDSAbs_ElementOrder order=ORDER_ANY) const
Definition: SMDS_MeshInfo.hxx:267
smIdType NbPolygons(SMDSAbs_ElementOrder order=ORDER_ANY) const
Definition: SMDS_MeshInfo.hxx:271
smIdType Nb0DElements() const
Definition: SMDS_MeshInfo.hxx:51
smIdType myNbQuadQuadrangles
Definition: SMDS_MeshInfo.hxx:95
smIdType NbBalls() const
Definition: SMDS_MeshInfo.hxx:52
smIdType NbVolumes(SMDSAbs_ElementOrder order=ORDER_ANY) const
Definition: SMDS_MeshInfo.hxx:275
smIdType myNb0DElements
Definition: SMDS_MeshInfo.hxx:91
smIdType myNbEdges
Definition: SMDS_MeshInfo.hxx:93
smIdType myNbQuadPyramids
Definition: SMDS_MeshInfo.hxx:100
smIdType NbPolyhedrons() const
Definition: SMDS_MeshInfo.hxx:71
smIdType NbElements(SMDSAbs_EntityType type) const
Definition: SMDS_MeshInfo.hxx:44
void setNb(const SMDSAbs_EntityType geomType, const smIdType nb)
Definition: SMDS_MeshInfo.hxx:410
smIdType myNbBiQuadQuadrangles
Definition: SMDS_MeshInfo.hxx:95
smIdType NbPrisms(SMDSAbs_ElementOrder order=ORDER_ANY) const
Definition: SMDS_MeshInfo.hxx:291
void RemoveFace(const SMDS_MeshElement *el)
Definition: SMDS_MeshInfo.hxx:242
smIdType myNbTriQuadHexas
Definition: SMDS_MeshInfo.hxx:99
smIdType NbElements(SMDSAbs_GeometryType type) const
Definition: SMDS_MeshInfo.hxx:45
void Clear()
Definition: SMDS_MeshInfo.hxx:211
smIdType NbTriangles(SMDSAbs_ElementOrder order=ORDER_ANY) const
Definition: SMDS_MeshInfo.hxx:263
smIdType myNbQuadEdges
Definition: SMDS_MeshInfo.hxx:93
smIdType myNbHexas
Definition: SMDS_MeshInfo.hxx:99
smIdType myNbQuadPrisms
Definition: SMDS_MeshInfo.hxx:101
std::vector< smIdType * > myNb
Definition: SMDS_MeshInfo.hxx:105
smIdType NbQuadPrisms() const
Definition: SMDS_MeshInfo.hxx:69
smIdType myNbNodes
Definition: SMDS_MeshInfo.hxx:89
smIdType NbPyramids(SMDSAbs_ElementOrder order=ORDER_ANY) const
Definition: SMDS_MeshInfo.hxx:287
smIdType NbEntities(SMDSAbs_EntityType type) const
Definition: SMDS_MeshInfo.hxx:335
smIdType myNbPolyhedrons
Definition: SMDS_MeshInfo.hxx:103
std::vector< int > myShift
Definition: SMDS_MeshInfo.hxx:106
smIdType NbBiQuadQuadrangles() const
Definition: SMDS_MeshInfo.hxx:59
smIdType myNbPyramids
Definition: SMDS_MeshInfo.hxx:100
smIdType myNbQuadTriangles
Definition: SMDS_MeshInfo.hxx:94
smIdType NbBiQuadPrisms() const
Definition: SMDS_MeshInfo.hxx:70
smIdType myNbBiQuadTriangles
Definition: SMDS_MeshInfo.hxx:94
void RemoveEdge(const SMDS_MeshElement *el)
Definition: SMDS_MeshInfo.hxx:238
smIdType myNbPrisms
Definition: SMDS_MeshInfo.hxx:101
smIdType myNbTriangles
Definition: SMDS_MeshInfo.hxx:94
smIdType myNbQuadPolygons
Definition: SMDS_MeshInfo.hxx:96
smIdType NbElementsOfGeom(SMDSAbs_GeometryType geom) const
Definition: SMDS_MeshInfo.hxx:371
smIdType NbHexPrisms(SMDSAbs_ElementOrder order=ORDER_ANY) const
Definition: SMDS_MeshInfo.hxx:295
smIdType NbFaces(SMDSAbs_ElementOrder order=ORDER_ANY) const
Definition: SMDS_MeshInfo.hxx:259
smIdType myNbQuadHexas
Definition: SMDS_MeshInfo.hxx:99
SMDS_MeshInfo & operator=(const SMDS_MeshInfo &other)
Definition: SMDS_MeshInfo.hxx:202
smIdType NbNodes() const
Definition: SMDS_MeshInfo.hxx:50
smIdType myNbTetras
Definition: SMDS_MeshInfo.hxx:98
smIdType NbTetras(SMDSAbs_ElementOrder order=ORDER_ANY) const
Definition: SMDS_MeshInfo.hxx:279
smIdType NbEdges(SMDSAbs_ElementOrder order=ORDER_ANY) const
Definition: SMDS_MeshInfo.hxx:255
smIdType myNbHexPrism
Definition: SMDS_MeshInfo.hxx:102
smIdType NbBiQuadTriangles() const
Definition: SMDS_MeshInfo.hxx:58
Definition: SMDS_Mesh.hxx:53