gmsh-TingyuanDoc  0.1
An Open-Source Timing-driven Analytical Mixed-size FPGA Placer
GEntity.h
Go to the documentation of this file.
1 // Gmsh - Copyright (C) 1997-2022 C. Geuzaine, J.-F. Remacle
2 //
3 // See the LICENSE.txt file in the Gmsh root directory for license information.
4 // Please report all issues on https://gitlab.onelab.info/gmsh/gmsh/issues.
5 
6 #ifndef GENTITY_H
7 #define GENTITY_H
8 
9 #include <list>
10 #include <string>
11 #include <vector>
12 #include <set>
13 #include "Range.h"
14 #include "SPoint3.h"
15 #include "SBoundingBox3d.h"
16 #include "SOrientedBoundingBox.h"
17 #include "affineTransformation.h"
18 
19 #define MAX_LC 1.e22
20 
21 class GModel;
22 class GVertex;
23 class GEdge;
24 class GFace;
25 class GRegion;
26 class MVertex;
27 class MElement;
28 class VertexArray;
29 
30 // A geometric model entity.
31 class GEntity {
32 private:
33  // all entities are owned by a GModel
35 
36  // the tag (the number) of this entity
37  int _tag;
38 
39  // points to the master entity in periodic mesh, or 'this' if non-periodic
41 
42  // the visibility and the selection flag
44 
45  // flag storing if all mesh elements are visible
47 
48  // the color of the entity (ignored if set to transparent blue)
49  unsigned int _color;
50 
51 protected:
53 
54 public: // these will become protected at some point
55  // the mesh vertices uniquely owned by the entity
56  std::vector<MVertex *> mesh_vertices;
57 
58  // a list of geometrical entities that form a compound mesh
59  std::vector<GEntity *> compound;
60 
61  // corresponding principal vertices
62  std::map<GVertex *, GVertex *> vertexCounterparts;
63 
64  // the physical entities (if any) that contain this entity
65  std::vector<int> physicals;
66 
67  // vertex arrays to draw the mesh efficiently
69 
70  // Set of high-order elements fixed by "fast curving"
71  std::set<MElement *> curvedBLElements;
72 
73 public:
74  // make a set of all the vertices in the entity, with/without closure
75  void addVerticesInSet(std::set<MVertex *> &, bool closure) const;
76 
77 public:
78  // all known native model types
79  enum ModelType {
85  };
86 
87  // all known entity types
88  enum GeomType {
128  };
129 
131 
132  // return a string describing the entity type
133  virtual std::string getTypeString()
134  {
135  const char *name[] = {
136  "Unknown",
137  "Point",
138  "Boundary layer point",
139  "Line",
140  "Circle",
141  "Ellipse",
142  "Conic",
143  "Parabola",
144  "Hyperbola",
145  "TrimmedCurve",
146  "OffsetCurve",
147  "BSpline",
148  "Bezier",
149  "Parametric curve",
150  "Boundary layer curve",
151  "Discrete curve",
152  "Plane",
153  "Nurb",
154  "Cylinder",
155  "Sphere",
156  "Cone",
157  "Torus",
158  "Surface",
159  "Parametric surface",
160  "BSpline surface",
161  "Bezier surface",
162  "Surface of Revolution",
163  "Boundary layer surface",
164  "Discrete surface",
165  "Discrete surface (parametrizable, isomorphic to a disk)",
166  "Volume",
167  "Discrete volume",
168  "Partition point",
169  "Partition curve",
170  "Partition surface",
171  "Partition volume",
172  "Ghost curve",
173  "Ghost surface",
174  "Ghost volume"};
175  unsigned int type = (unsigned int)geomType();
176  if(type >= sizeof(name) / sizeof(name[0]))
177  return "Undefined";
178  else
179  return name[type];
180  }
181 
182  GEntity(GModel *m, int t);
183 
184  virtual ~GEntity() {}
185 
186  // mesh generation of the entity
187  virtual void mesh(bool verbose) {}
188 
189  // delete the mesh data
190  virtual void deleteMesh() {}
191 
192  // delete the vertex arrays, used to to draw the mesh efficiently
193  void deleteVertexArrays();
194 
195  // spatial dimension of the entity
196  virtual int dim() const { return -1; }
197 
198  // returns the parent entity for partitioned entities
199  virtual GEntity *getParentEntity() { return nullptr; }
200 
201  // regions that bound this entity or that this entity bounds.
202  virtual std::list<GRegion *> regions() const
203  {
204  return std::list<GRegion *>();
205  }
206 
207  // faces that bound this entity or that this entity bounds.
208  virtual std::vector<GFace *> faces() const { return std::vector<GFace *>(); }
209 
210  // edges that bound this entity or that this entity bounds.
211  virtual std::vector<GEdge *> const &edges() const
212  {
213  static std::vector<GEdge *> i;
214  return i;
215  }
216 
217  // vertices that bound this entity.
218  virtual std::vector<GVertex *> vertices() const
219  {
220  return std::vector<GVertex *>();
221  }
222 
223  // is this entity an orphan?
224  virtual bool isOrphan() { return false; }
225 
226  // for Python, temporary solution while iterator are not binded
227  std::vector<GRegion *> bindingsGetRegions()
228  {
229  // NOTE: two-line to not create two different lists with diff pointers
230  std::list<GRegion *> r = regions();
231  return std::vector<GRegion *>(r.begin(), r.end());
232  }
233  std::vector<GFace *> bindingsGetFaces() { return faces(); }
234  std::vector<GEdge *> bindingsGetEdges() const { return edges(); }
235  std::vector<GVertex *> bindingsGetVertices() { return vertices(); }
236 
237  // underlying geometric representation of this entity.
238  virtual GeomType geomType() const { return Unknown; }
239 
240  // true if parametric space is continuous in the "dim" direction.
241  virtual bool continuous(int dim) const { return true; }
242 
243  // true if entity is periodic in the "dim" direction.
244  virtual bool periodic(int dim) const { return false; }
245  virtual double period(int dim) const { return 0.0; }
246 
247  // true if there are parametric degeneracies in the "dim" direction.
248  virtual bool degenerate(int dim) const { return false; }
249 
250  // does the entity have a parametrization?
251  virtual bool haveParametrization() { return true; }
252 
253  // is the entity and its bounding entities fully discrete (i.e. without
254  // parametrization for curves and surfaces), and should thus not be
255  // (re)meshed?
256  virtual bool isFullyDiscrete() { return !haveParametrization(); }
257 
258  // parametric bounds of the entity in the "i" direction.
259  virtual Range<double> parBounds(int i) const { return Range<double>(0., 0.); }
260 
261  // modeler tolerance for the entity.
262  virtual double tolerance() const { return 1.e-14; }
263 
264  // true if the entity contains the given point to within tolerance.
265  virtual bool containsPoint(const SPoint3 &pt) const { return false; }
266 
267  // get the native type of the particular representation
268  virtual ModelType getNativeType() const { return UnknownModel; }
269 
270  // get the native pointer of the particular representation
271  virtual void *getNativePtr() const { return nullptr; }
272 
273  // get the native id (int) of the particular representation
274  virtual int getNativeInt() const { return 0; }
275 
276  // the model owning this entity
277  GModel *model() const { return _model; }
278 
279  // get/set the tag of the entity
280  int tag() const { return _tag; }
281  void setTag(int tag) { _tag = tag; }
282 
283  // get/set physical entities
284  virtual void addPhysicalEntity(int physicalTag)
285  {
286  physicals.push_back(physicalTag);
287  }
288  virtual std::vector<int> getPhysicalEntities() { return physicals; }
289 
290  // handle the master entity for periodic meshes
291  GEntity *getMeshMaster() const { return _meshMaster; }
292  void setMeshMaster(GEntity *);
293  void setMeshMaster(GEntity *, const std::vector<double> &,
294  bool updateCorrespondingVertices = true);
296  void copyMasterCoordinates();
297 
298  virtual void alignElementsWithMaster() {}
299 
300  // get the bounding box
301  virtual SBoundingBox3d bounds(bool fast = false) { return SBoundingBox3d(); }
302 
303  // get the oriented bounding box
305 
306  // get/set the visibility flag
307  virtual char getVisibility();
308  virtual void setVisibility(char val, bool recursive = false)
309  {
310  _visible = val;
311  }
312 
313  // get/set the selection flag
314  virtual char getSelection() { return _selection; }
315  virtual void setSelection(char val) { _selection = val; }
316 
317  // get/set the color
318  virtual unsigned int getColor() { return _color; }
319  virtual void setColor(unsigned color, bool recursive = false)
320  {
321  _color = color;
322  }
323 
324  // return true if we should use this color to represent the entity
325  virtual bool useColor();
326 
327  // return an information string for the entity
328  virtual std::string getInfoString(bool additional = true,
329  bool multiline = false);
330 
331  // return a type-specific additional information string
332  virtual std::string getAdditionalInfoString(bool multline = false)
333  {
334  return "";
335  }
336 
337  // reset the mesh attributes to default values
338  virtual void resetMeshAttributes() { return; }
339 
340  // global mesh size constraint for the entity
341  virtual double getMeshSize() const { return MAX_LC; }
342  virtual double getMeshSizeFactor() const { return 1.; }
343 
344  // types of elements
345  virtual void getElementTypes(std::vector<int> &types) const {};
346 
347  // get the number of mesh elements (total and by type) in the entity
348  virtual std::size_t getNumMeshElements() const { return 0; }
349  virtual std::size_t getNumMeshElementsByType(const int familyType) const
350  {
351  return 0;
352  }
353  virtual std::size_t getNumMeshParentElements() { return 0; }
354  virtual void getNumMeshElements(unsigned *const c) const {}
355 
356  // get the start of the array of a type of element
357  virtual MElement *const *getStartElementType(int type) const
358  {
359  return nullptr;
360  }
361 
362  // get the element at the given index
363  virtual MElement *getMeshElement(std::size_t index) const { return nullptr; }
364  // get the element at the given index for a given familyType
365  virtual MElement *getMeshElementByType(const int familyType,
366  const std::size_t index) const
367  {
368  return nullptr;
369  }
370 
371  // get/set all mesh element visibility flag
372  bool getAllElementsVisible() { return _allElementsVisible ? true : false; }
373  void setAllElementsVisible(bool val) { _allElementsVisible = val ? 1 : 0; }
374 
375  // get the number of mesh vertices in the entity
376  std::size_t getNumMeshVertices() { return mesh_vertices.size(); }
377 
378  // get the mesh vertex at the given index
379  MVertex *getMeshVertex(std::size_t index) { return mesh_vertices[index]; }
380 
381  // add a MeshVertex
382  void addMeshVertex(MVertex *v) { mesh_vertices.push_back(v); }
383  // delete a MeshVertex
384  void removeMeshVertex(MVertex *v);
385 
386  // add an element
387  virtual void addElement(int type, MElement *e) {}
388  // remove an element
389  virtual void removeElement(int type, MElement *e) {}
390  // remove all elements of a given type
391  virtual void removeElements(int type) {}
392 
393  // relocate mesh vertices using their parametric coordinates
394  virtual void relocateMeshVertices() {}
395 
396  // clean downcasts
397  GVertex *cast2Vertex();
398  GEdge *cast2Edge();
399  GFace *cast2Face();
400  GRegion *cast2Region();
401 
402  // transformation from master
403  std::vector<double> affineTransform;
404 
405  // corresponding mesh vertices
406  std::map<MVertex *, MVertex *> correspondingVertices;
407 
408  // corresponding high order vertices
409  std::map<MVertex *, MVertex *> correspondingHighOrderVertices;
410 
411  // reorder the mesh elements of the given type, according to ordering
412  virtual bool reorder(const int elementType,
413  const std::vector<std::size_t> &ordering)
414  {
415  return false;
416  }
417 };
418 
420  // beware that this comparison function does *not* compare the entity
421  // dimension; this is on purpose
422  bool operator()(const GEntity *ent1, const GEntity *ent2) const
423  {
424  return ent1->tag() < ent2->tag();
425  }
426 };
427 
429  bool operator()(const GEntity *ent1, const GEntity *ent2) const
430  {
431  if(ent1->dim() != ent2->dim()) return ent1->dim() < ent2->dim();
432  return ent1->tag() < ent2->tag();
433  }
434 };
435 
437  bool operator()(const GEntity *ent1, const GEntity *ent2) const
438  {
439  return (ent1->dim() == ent2->dim()) && (ent1->tag() == ent2->tag());
440  }
441 };
442 
444  size_t operator()(GEntity const *const ent) const
445  {
446  return 10 * ent->tag() + ent->dim();
447  }
448 };
449 
450 #endif
GEntity::ModelType
ModelType
Definition: GEntity.h:79
GEntityPtrFullHash::operator()
size_t operator()(GEntity const *const ent) const
Definition: GEntity.h:444
GEntity::getMeshElementByType
virtual MElement * getMeshElementByType(const int familyType, const std::size_t index) const
Definition: GEntity.h:365
GEntity::BoundaryLayerSurface
@ BoundaryLayerSurface
Definition: GEntity.h:116
GEntity::affineTransform
std::vector< double > affineTransform
Definition: GEntity.h:403
GEntity::GhostCurve
@ GhostCurve
Definition: GEntity.h:125
GEntity::cast2Vertex
GVertex * cast2Vertex()
Definition: GEntity.cpp:122
GEntity::continuous
virtual bool continuous(int dim) const
Definition: GEntity.h:241
GEntity::UnknownModel
@ UnknownModel
Definition: GEntity.h:80
GEntityPtrFullEqual
Definition: GEntity.h:436
GEntity::getColor
virtual unsigned int getColor()
Definition: GEntity.h:318
GEntity::setAllElementsVisible
void setAllElementsVisible(bool val)
Definition: GEntity.h:373
GEntity::correspondingHighOrderVertices
std::map< MVertex *, MVertex * > correspondingHighOrderVertices
Definition: GEntity.h:409
GEntity::bindingsGetVertices
std::vector< GVertex * > bindingsGetVertices()
Definition: GEntity.h:235
GEntity::removeElements
virtual void removeElements(int type)
Definition: GEntity.h:391
GEntity::SurfaceOfRevolution
@ SurfaceOfRevolution
Definition: GEntity.h:115
GEntity::getMeshVertex
MVertex * getMeshVertex(std::size_t index)
Definition: GEntity.h:379
GFace
Definition: GFace.h:33
GEntity::ParametricSurface
@ ParametricSurface
Definition: GEntity.h:112
GEntity::Nurb
@ Nurb
Definition: GEntity.h:106
GEntity::_tag
int _tag
Definition: GEntity.h:37
GEntity::degenerate
virtual bool degenerate(int dim) const
Definition: GEntity.h:248
GEntity::model
GModel * model() const
Definition: GEntity.h:277
GEntity::getMeshSize
virtual double getMeshSize() const
Definition: GEntity.h:341
c
static double c(int i, int j, fullMatrix< double > &CA, const std::vector< SPoint3 > &P, const std::vector< SPoint3 > &Q)
Definition: discreteFrechetDistance.cpp:15
MVertex
Definition: MVertex.h:24
GEntity::_obb
SOrientedBoundingBox * _obb
Definition: GEntity.h:52
GEntity::getParentEntity
virtual GEntity * getParentEntity()
Definition: GEntity.h:199
GEntity::_selection
char _selection
Definition: GEntity.h:43
GEntity::OpenCascadeModel
@ OpenCascadeModel
Definition: GEntity.h:82
GEntity::va_triangles
VertexArray * va_triangles
Definition: GEntity.h:68
GEntity::physicals
std::vector< int > physicals
Definition: GEntity.h:65
GEntity::Unknown
@ Unknown
Definition: GEntity.h:89
SPoint3
Definition: SPoint3.h:14
GEntity::AcisModel
@ AcisModel
Definition: GEntity.h:83
GEntity::deleteMesh
virtual void deleteMesh()
Definition: GEntity.h:190
SOrientedBoundingBox.h
SOrientedBoundingBox
Definition: SOrientedBoundingBox.h:33
VertexArray
Definition: VertexArray.h:151
GEntity::_model
GModel * _model
Definition: GEntity.h:34
GEntity::getNativeType
virtual ModelType getNativeType() const
Definition: GEntity.h:268
GEntity::edges
virtual std::vector< GEdge * > const & edges() const
Definition: GEntity.h:211
GEntity::Hyperbola
@ Hyperbola
Definition: GEntity.h:97
GEntity::setTag
void setTag(int tag)
Definition: GEntity.h:281
GEntity::bindingsGetFaces
std::vector< GFace * > bindingsGetFaces()
Definition: GEntity.h:233
GEntity::addPhysicalEntity
virtual void addPhysicalEntity(int physicalTag)
Definition: GEntity.h:284
GEntity::getSelection
virtual char getSelection()
Definition: GEntity.h:314
GEntity::GmshModel
@ GmshModel
Definition: GEntity.h:81
MAX_LC
#define MAX_LC
Definition: GEntity.h:19
GEntity::containsPoint
virtual bool containsPoint(const SPoint3 &pt) const
Definition: GEntity.h:265
GEntity::bindingsGetEdges
std::vector< GEdge * > bindingsGetEdges() const
Definition: GEntity.h:234
GEntity
Definition: GEntity.h:31
GEntity::getNumMeshVertices
std::size_t getNumMeshVertices()
Definition: GEntity.h:376
GEntityPtrLessThan
Definition: GEntity.h:419
GEntity::getMeshMaster
GEntity * getMeshMaster() const
Definition: GEntity.h:291
GEntity::PartitionVolume
@ PartitionVolume
Definition: GEntity.h:124
Range.h
GEntity::GhostSurface
@ GhostSurface
Definition: GEntity.h:126
GEntity::DiscreteCurve
@ DiscreteCurve
Definition: GEntity.h:104
GEntity::PartitionCurve
@ PartitionCurve
Definition: GEntity.h:122
GEntity::Plane
@ Plane
Definition: GEntity.h:105
GEntity::setColor
virtual void setColor(unsigned color, bool recursive=false)
Definition: GEntity.h:319
GEntity::removeMeshVertex
void removeMeshVertex(MVertex *v)
Definition: GEntity.cpp:116
GEntity::ParasolidModel
@ ParasolidModel
Definition: GEntity.h:84
GEntity::setVisibility
virtual void setVisibility(char val, bool recursive=false)
Definition: GEntity.h:308
GEntity::period
virtual double period(int dim) const
Definition: GEntity.h:245
GEntity::getNativePtr
virtual void * getNativePtr() const
Definition: GEntity.h:271
GEntity::_visible
char _visible
Definition: GEntity.h:43
GEntity::cast2Face
GFace * cast2Face()
Definition: GEntity.cpp:124
GEntity::periodic
virtual bool periodic(int dim) const
Definition: GEntity.h:244
GEntity::regions
virtual std::list< GRegion * > regions() const
Definition: GEntity.h:202
GEntity::_meshMaster
GEntity * _meshMaster
Definition: GEntity.h:40
affineTransformation.h
Range
Definition: Range.h:10
GEntity::vertices
virtual std::vector< GVertex * > vertices() const
Definition: GEntity.h:218
GEntity::Torus
@ Torus
Definition: GEntity.h:110
GEntity::mesh_vertices
std::vector< MVertex * > mesh_vertices
Definition: GEntity.h:56
GEntity::DiscreteDiskSurface
@ DiscreteDiskSurface
Definition: GEntity.h:118
GEntity::getNumMeshElements
virtual std::size_t getNumMeshElements() const
Definition: GEntity.h:348
GVertex
Definition: GVertex.h:23
GEntity::getTypeString
virtual std::string getTypeString()
Definition: GEntity.h:133
GEntity::_allElementsVisible
char _allElementsVisible
Definition: GEntity.h:46
SBoundingBox3d.h
GEntity::TrimmedCurve
@ TrimmedCurve
Definition: GEntity.h:98
GEntity::BSplineSurface
@ BSplineSurface
Definition: GEntity.h:113
GEntity::useColor
virtual bool useColor()
Definition: GEntity.cpp:43
GEntity::DiscreteVolume
@ DiscreteVolume
Definition: GEntity.h:120
GModel
Definition: GModel.h:44
GEntity::copyMasterCoordinates
void copyMasterCoordinates()
Definition: GEntity.cpp:240
GEntityPtrFullEqual::operator()
bool operator()(const GEntity *ent1, const GEntity *ent2) const
Definition: GEntity.h:437
GEntity::DONE
@ DONE
Definition: GEntity.h:130
GEntity::alignElementsWithMaster
virtual void alignElementsWithMaster()
Definition: GEntity.h:298
GEntity::Line
@ Line
Definition: GEntity.h:92
GEntity::geomType
virtual GeomType geomType() const
Definition: GEntity.h:238
GEntityPtrFullLessThan
Definition: GEntity.h:428
GEntity::compound
std::vector< GEntity * > compound
Definition: GEntity.h:59
GEntity::GEntity
GEntity(GModel *m, int t)
Definition: GEntity.cpp:19
GEntity::tolerance
virtual double tolerance() const
Definition: GEntity.h:262
MElement
Definition: MElement.h:30
GEntity::OffsetCurve
@ OffsetCurve
Definition: GEntity.h:99
GEntity::GhostVolume
@ GhostVolume
Definition: GEntity.h:127
GEntity::tag
int tag() const
Definition: GEntity.h:280
GEntity::BoundaryLayerCurve
@ BoundaryLayerCurve
Definition: GEntity.h:103
GEntityPtrFullLessThan::operator()
bool operator()(const GEntity *ent1, const GEntity *ent2) const
Definition: GEntity.h:429
GEntity::cast2Region
GRegion * cast2Region()
Definition: GEntity.cpp:125
GEntity::Parabola
@ Parabola
Definition: GEntity.h:96
GEntity::getElementTypes
virtual void getElementTypes(std::vector< int > &types) const
Definition: GEntity.h:345
GEntity::_color
unsigned int _color
Definition: GEntity.h:49
GEntity::addVerticesInSet
void addVerticesInSet(std::set< MVertex * > &, bool closure) const
Definition: GEntity.cpp:166
GRegion
Definition: GRegion.h:28
GEntity::GeomType
GeomType
Definition: GEntity.h:88
GEntity::parBounds
virtual Range< double > parBounds(int i) const
Definition: GEntity.h:259
GEntity::DiscreteSurface
@ DiscreteSurface
Definition: GEntity.h:117
GEntity::setSelection
virtual void setSelection(char val)
Definition: GEntity.h:315
GEntity::getNativeInt
virtual int getNativeInt() const
Definition: GEntity.h:274
GEntity::addElement
virtual void addElement(int type, MElement *e)
Definition: GEntity.h:387
GEntity::BezierSurface
@ BezierSurface
Definition: GEntity.h:114
GEntity::reorder
virtual bool reorder(const int elementType, const std::vector< std::size_t > &ordering)
Definition: GEntity.h:412
GEntity::Conic
@ Conic
Definition: GEntity.h:95
GEntity::getNumMeshParentElements
virtual std::size_t getNumMeshParentElements()
Definition: GEntity.h:353
GEntity::getAllElementsVisible
bool getAllElementsVisible()
Definition: GEntity.h:372
GEntity::PartitionSurface
@ PartitionSurface
Definition: GEntity.h:123
GEntity::isOrphan
virtual bool isOrphan()
Definition: GEntity.h:224
GEntity::getNumMeshElements
virtual void getNumMeshElements(unsigned *const c) const
Definition: GEntity.h:354
GEntity::curvedBLElements
std::set< MElement * > curvedBLElements
Definition: GEntity.h:71
GEntity::Point
@ Point
Definition: GEntity.h:90
GEntity::getMeshElement
virtual MElement * getMeshElement(std::size_t index) const
Definition: GEntity.h:363
GEntity::getAdditionalInfoString
virtual std::string getAdditionalInfoString(bool multline=false)
Definition: GEntity.h:332
GEntity::bindingsGetRegions
std::vector< GRegion * > bindingsGetRegions()
Definition: GEntity.h:227
GEntity::~GEntity
virtual ~GEntity()
Definition: GEntity.h:184
GEntity::getNumMeshElementsByType
virtual std::size_t getNumMeshElementsByType(const int familyType) const
Definition: GEntity.h:349
GEntityPtrLessThan::operator()
bool operator()(const GEntity *ent1, const GEntity *ent2) const
Definition: GEntity.h:422
GEntity::getMeshSizeFactor
virtual double getMeshSizeFactor() const
Definition: GEntity.h:342
GEntity::Bezier
@ Bezier
Definition: GEntity.h:101
GEntity::va_lines
VertexArray * va_lines
Definition: GEntity.h:68
GEntity::getStartElementType
virtual MElement *const * getStartElementType(int type) const
Definition: GEntity.h:357
GEntity::Cone
@ Cone
Definition: GEntity.h:109
GEdge
Definition: GEdge.h:26
GEntity::setMeshMaster
void setMeshMaster(GEntity *)
Definition: GEntity.cpp:128
GEntity::BoundaryLayerPoint
@ BoundaryLayerPoint
Definition: GEntity.h:91
GEntity::getPhysicalEntities
virtual std::vector< int > getPhysicalEntities()
Definition: GEntity.h:288
GEntity::Volume
@ Volume
Definition: GEntity.h:119
GEntity::vertexCounterparts
std::map< GVertex *, GVertex * > vertexCounterparts
Definition: GEntity.h:62
GEntity::Circle
@ Circle
Definition: GEntity.h:93
GEntityPtrFullHash
Definition: GEntity.h:443
GEntity::PartitionPoint
@ PartitionPoint
Definition: GEntity.h:121
GEntity::ParametricCurve
@ ParametricCurve
Definition: GEntity.h:102
GEntity::isFullyDiscrete
virtual bool isFullyDiscrete()
Definition: GEntity.h:256
GEntity::MeshGenerationStatus
MeshGenerationStatus
Definition: GEntity.h:130
GEntity::removeElement
virtual void removeElement(int type, MElement *e)
Definition: GEntity.h:389
GEntity::cast2Edge
GEdge * cast2Edge()
Definition: GEntity.cpp:123
GEntity::FAILED
@ FAILED
Definition: GEntity.h:130
GEntity::dim
virtual int dim() const
Definition: GEntity.h:196
GEntity::bounds
virtual SBoundingBox3d bounds(bool fast=false)
Definition: GEntity.h:301
SPoint3.h
GEntity::getVisibility
virtual char getVisibility()
Definition: GEntity.cpp:35
GEntity::updateCorrespondingVertices
void updateCorrespondingVertices()
Definition: GEntity.cpp:197
GEntity::Sphere
@ Sphere
Definition: GEntity.h:108
GEntity::correspondingVertices
std::map< MVertex *, MVertex * > correspondingVertices
Definition: GEntity.h:406
GEntity::PENDING
@ PENDING
Definition: GEntity.h:130
GEntity::Ellipse
@ Ellipse
Definition: GEntity.h:94
GEntity::faces
virtual std::vector< GFace * > faces() const
Definition: GEntity.h:208
GEntity::Cylinder
@ Cylinder
Definition: GEntity.h:107
GEntity::mesh
virtual void mesh(bool verbose)
Definition: GEntity.h:187
GEntity::deleteVertexArrays
void deleteVertexArrays()
Definition: GEntity.cpp:27
SBoundingBox3d
Definition: SBoundingBox3d.h:21
GEntity::relocateMeshVertices
virtual void relocateMeshVertices()
Definition: GEntity.h:394
GEntity::resetMeshAttributes
virtual void resetMeshAttributes()
Definition: GEntity.h:338
GEntity::getInfoString
virtual std::string getInfoString(bool additional=true, bool multiline=false)
Definition: GEntity.cpp:53
GEntity::haveParametrization
virtual bool haveParametrization()
Definition: GEntity.h:251
GEntity::RuledSurface
@ RuledSurface
Definition: GEntity.h:111
GEntity::addMeshVertex
void addMeshVertex(MVertex *v)
Definition: GEntity.h:382
GEntity::getOBB
virtual SOrientedBoundingBox getOBB()
Definition: GEntity.h:304
GEntity::BSpline
@ BSpline
Definition: GEntity.h:100