26 #ifndef _SMDS_Mesh_HeaderFile
27 #define _SMDS_Mesh_HeaderFile
38 #include <NCollection_Map.hxx>
40 #include <boost/shared_ptr.hpp>
59 virtual SMDS_MeshNode* AddNodeWithID(
double x,
double y,
double z,
int ID);
70 virtual SMDS_MeshEdge* AddEdgeWithID(
int n1,
int n2,
int n12,
int ID);
79 virtual SMDS_MeshFace* AddFaceWithID(
int n1,
int n2,
int n3,
int ID);
88 virtual SMDS_MeshFace* AddFaceWithID(
int n1,
int n2,
int n3,
int n4,
int ID);
117 int n12,
int n23,
int n31,
int ID);
133 virtual SMDS_MeshFace* AddFaceWithID(
int n1,
int n2,
int n3,
int n4,
134 int n12,
int n23,
int n34,
int n41,
int ID);
153 virtual SMDS_MeshVolume* AddVolumeWithID(
int n1,
int n2,
int n3,
int n4,
int ID);
164 virtual SMDS_MeshVolume* AddVolumeWithID(
int n1,
int n2,
int n3,
int n4,
178 virtual SMDS_MeshVolume* AddVolumeWithID(
int n1,
int n2,
int n3,
int n4,
179 int n5,
int n6,
int ID);
194 virtual SMDS_MeshVolume* AddVolumeWithID(
int n1,
int n2,
int n3,
int n4,
195 int n5,
int n6,
int n7,
int n8,
int ID);
248 virtual SMDS_MeshVolume* AddVolumeWithID(
int n1,
int n2,
int n3,
int n4,
249 int n12,
int n23,
int n31,
250 int n14,
int n24,
int n34,
int ID);
274 virtual SMDS_MeshVolume* AddVolumeWithID(
int n1,
int n2,
int n3,
int n4,
int n5,
275 int n12,
int n23,
int n34,
int n41,
276 int n15,
int n25,
int n35,
int n45,
308 int n4,
int n5,
int n6,
309 int n12,
int n23,
int n31,
310 int n45,
int n56,
int n64,
311 int n14,
int n25,
int n36,
346 virtual SMDS_MeshVolume* AddVolumeWithID(
int n1,
int n2,
int n3,
int n4,
347 int n5,
int n6,
int n7,
int n8,
348 int n12,
int n23,
int n34,
int n41,
349 int n56,
int n67,
int n78,
int n85,
350 int n15,
int n26,
int n37,
int n48,
394 virtual SMDS_MeshFace* AddPolygonalFaceWithID (std::vector<int> nodes_ids,
397 virtual SMDS_MeshFace* AddPolygonalFaceWithID (std::vector<const SMDS_MeshNode*> nodes,
400 virtual SMDS_MeshFace* AddPolygonalFace (std::vector<const SMDS_MeshNode*> nodes);
403 (std::vector<int> nodes_ids,
404 std::vector<int> quantities,
408 (std::vector<const SMDS_MeshNode*> nodes,
409 std::vector<int> quantities,
413 (std::vector<const SMDS_MeshNode*> nodes,
414 std::vector<int> quantities);
417 std::list<const SMDS_MeshElement *>& removedElems,
418 std::list<const SMDS_MeshElement *>& removedNodes,
419 bool removenodes =
false);
420 virtual void RemoveElement(
const SMDS_MeshElement * elem,
bool removenodes =
false);
432 virtual void Clear();
434 virtual bool RemoveFromParent();
435 virtual bool RemoveSubMesh(
const SMDS_Mesh * aMesh);
441 const std::vector<const SMDS_MeshNode*>& nodes,
442 const std::vector<int> & quantities);
444 virtual void Renumber (
const bool isNodes,
const int startID = 1,
const int deltaID = 1);
448 const SMDS_MeshEdge *FindEdge(
int idnode1,
int idnode2)
const;
449 const SMDS_MeshEdge *FindEdge(
int idnode1,
int idnode2,
int idnode3)
const;
450 const SMDS_MeshFace *FindFace(
int idnode1,
int idnode2,
int idnode3)
const;
451 const SMDS_MeshFace *FindFace(
int idnode1,
int idnode2,
int idnode3,
int idnode4)
const;
452 const SMDS_MeshFace *FindFace(
int idnode1,
int idnode2,
int idnode3,
453 int idnode4,
int idnode5,
int idnode6)
const;
454 const SMDS_MeshFace *FindFace(
int idnode1,
int idnode2,
int idnode3,
int idnode4,
455 int idnode5,
int idnode6,
int idnode7,
int idnode8)
const;
484 const SMDS_MeshFace *FindFace(std::vector<int> nodes_ids)
const;
485 static const SMDS_MeshFace* FindFace(std::vector<const SMDS_MeshNode *> nodes);
492 static int CheckMemory(
const bool doNotRaise=
false)
throw (std::bad_alloc);
494 int MaxNodeID()
const;
495 int MinNodeID()
const;
496 int MaxElementID()
const;
497 int MinElementID()
const;
504 int NbVolumes()
const;
505 int NbSubMesh()
const;
506 void DumpNodes()
const;
507 void DumpEdges()
const;
508 void DumpFaces()
const;
509 void DumpVolumes()
const;
510 void DebugStats()
const;
514 bool hasConstructionEdges();
515 bool hasConstructionFaces();
516 bool hasInverseElements();
517 void setConstructionEdges(
bool);
518 void setConstructionFaces(
bool);
519 void setInverseElements(
bool);
556 void addChildrenWithNodes(std::set<const SMDS_MeshElement*>& setOfChildren,
558 std::set<const SMDS_MeshElement*>& nodes);
boost::shared_ptr< SMDS_Iterator< const SMDS_MeshFace * > > SMDS_FaceIteratorPtr
SMDS_MeshElementIDFactory * myNodeIDFactory
SMDS_MeshElementIDFactory * myElementIDFactory
NCollection_Map< SMDS_MeshNode * > SetOfNodes
NCollection_Map< SMDS_MeshEdge * > SetOfEdges
boost::shared_ptr< SMDS_Iterator< const SMDS_MeshElement * > > SMDS_ElemIteratorPtr
NCollection_Map< SMDS_MeshFace * > SetOfFaces
NCollection_Map< SMDS_MeshVolume * > SetOfVolumes
SMDSAbs_ElementType
Type (node, edge, face or volume) of elements.
bool myHasConstructionEdges
bool myHasConstructionFaces
boost::shared_ptr< SMDS_Iterator< const SMDS_MeshNode * > > SMDS_NodeIteratorPtr
bool myHasInverseElements
std::list< SMDS_Mesh * > myChildren
const SMDS_MeshInfo & GetMeshInfo() const
boost::shared_ptr< SMDS_Iterator< const SMDS_MeshVolume * > > SMDS_VolumeIteratorPtr
boost::shared_ptr< SMDS_Iterator< const SMDS_MeshEdge * > > SMDS_EdgeIteratorPtr