26 #ifndef _SMDS_Mesh_HeaderFile 27 #define _SMDS_Mesh_HeaderFile 39 #include <NCollection_Map.hxx> 41 #include <boost/shared_ptr.hpp> 61 virtual SMDS_MeshNode* AddNodeWithID(
double x,
double y,
double z,
int ID);
76 virtual SMDS_MeshEdge* AddEdgeWithID(
int n1,
int n2,
int n12,
int ID);
85 virtual SMDS_MeshFace* AddFaceWithID(
int n1,
int n2,
int n3,
int ID);
94 virtual SMDS_MeshFace* AddFaceWithID(
int n1,
int n2,
int n3,
int n4,
int ID);
123 int n12,
int n23,
int n31,
int ID);
139 virtual SMDS_MeshFace* AddFaceWithID(
int n1,
int n2,
int n3,
int n4,
140 int n12,
int n23,
int n34,
int n41,
int ID);
159 virtual SMDS_MeshVolume* AddVolumeWithID(
int n1,
int n2,
int n3,
int n4,
int ID);
170 virtual SMDS_MeshVolume* AddVolumeWithID(
int n1,
int n2,
int n3,
int n4,
184 virtual SMDS_MeshVolume* AddVolumeWithID(
int n1,
int n2,
int n3,
int n4,
185 int n5,
int n6,
int ID);
200 virtual SMDS_MeshVolume* AddVolumeWithID(
int n1,
int n2,
int n3,
int n4,
201 int n5,
int n6,
int n7,
int n8,
int ID);
254 virtual SMDS_MeshVolume* AddVolumeWithID(
int n1,
int n2,
int n3,
int n4,
255 int n12,
int n23,
int n31,
256 int n14,
int n24,
int n34,
int ID);
280 virtual SMDS_MeshVolume* AddVolumeWithID(
int n1,
int n2,
int n3,
int n4,
int n5,
281 int n12,
int n23,
int n34,
int n41,
282 int n15,
int n25,
int n35,
int n45,
314 int n4,
int n5,
int n6,
315 int n12,
int n23,
int n31,
316 int n45,
int n56,
int n64,
317 int n14,
int n25,
int n36,
352 virtual SMDS_MeshVolume* AddVolumeWithID(
int n1,
int n2,
int n3,
int n4,
353 int n5,
int n6,
int n7,
int n8,
354 int n12,
int n23,
int n34,
int n41,
355 int n56,
int n67,
int n78,
int n85,
356 int n15,
int n26,
int n37,
int n48,
400 virtual SMDS_MeshFace* AddPolygonalFaceWithID (std::vector<int> nodes_ids,
403 virtual SMDS_MeshFace* AddPolygonalFaceWithID (std::vector<const SMDS_MeshNode*> nodes,
406 virtual SMDS_MeshFace* AddPolygonalFace (std::vector<const SMDS_MeshNode*> nodes);
409 (std::vector<int> nodes_ids,
410 std::vector<int> quantities,
414 (std::vector<const SMDS_MeshNode*> nodes,
415 std::vector<int> quantities,
419 (std::vector<const SMDS_MeshNode*> nodes,
420 std::vector<int> quantities);
423 std::list<const SMDS_MeshElement *>& removedElems,
424 std::list<const SMDS_MeshElement *>& removedNodes,
425 bool removenodes =
false);
426 virtual void RemoveElement(
const SMDS_MeshElement * elem,
bool removenodes =
false);
439 virtual void Clear();
441 virtual bool RemoveFromParent();
442 virtual bool RemoveSubMesh(
const SMDS_Mesh * aMesh);
448 const std::vector<const SMDS_MeshNode*>& nodes,
449 const std::vector<int> & quantities);
451 virtual void Renumber (
const bool isNodes,
const int startID = 1,
const int deltaID = 1);
456 const SMDS_MeshEdge *FindEdge(
int idnode1,
int idnode2)
const;
457 const SMDS_MeshEdge *FindEdge(
int idnode1,
int idnode2,
int idnode3)
const;
458 const SMDS_MeshFace *FindFace(
int idnode1,
int idnode2,
int idnode3)
const;
459 const SMDS_MeshFace *FindFace(
int idnode1,
int idnode2,
int idnode3,
int idnode4)
const;
460 const SMDS_MeshFace *FindFace(
int idnode1,
int idnode2,
int idnode3,
461 int idnode4,
int idnode5,
int idnode6)
const;
462 const SMDS_MeshFace *FindFace(
int idnode1,
int idnode2,
int idnode3,
int idnode4,
463 int idnode5,
int idnode6,
int idnode7,
int idnode8)
const;
493 const SMDS_MeshFace *FindFace(std::vector<int> nodes_ids)
const;
494 static const SMDS_MeshFace* FindFace(std::vector<const SMDS_MeshNode *> nodes);
501 static int CheckMemory(
const bool doNotRaise=
false)
throw (std::bad_alloc);
503 int MaxNodeID()
const;
504 int MinNodeID()
const;
505 int MaxElementID()
const;
506 int MinElementID()
const;
511 int Nb0DElements()
const;
514 int NbVolumes()
const;
515 int NbSubMesh()
const;
516 void DumpNodes()
const;
517 void Dump0DElements()
const;
518 void DumpEdges()
const;
519 void DumpFaces()
const;
520 void DumpVolumes()
const;
521 void DebugStats()
const;
525 bool hasConstructionEdges();
526 bool hasConstructionFaces();
527 bool hasInverseElements();
528 void setConstructionEdges(
bool);
529 void setConstructionFaces(
bool);
530 void setInverseElements(
bool);
569 void addChildrenWithNodes(std::set<const SMDS_MeshElement*>& setOfChildren,
571 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
SetOf0DElements my0DElements
NCollection_Map< SMDS_MeshFace * > SetOfFaces
NCollection_Map< SMDS_MeshVolume * > SetOfVolumes
SMDSAbs_ElementType
Type (node, edge, face or volume) of elements.
bool myHasConstructionEdges
bool myHasConstructionFaces
const SMDS_MeshInfo & GetMeshInfo() const
boost::shared_ptr< SMDS_Iterator< const SMDS_MeshNode * > > SMDS_NodeIteratorPtr
boost::shared_ptr< SMDS_Iterator< const SMDS_Mesh0DElement * > > SMDS_0DElementIteratorPtr
bool myHasInverseElements
std::list< SMDS_Mesh * > myChildren
NCollection_Map< SMDS_Mesh0DElement * > SetOf0DElements
boost::shared_ptr< SMDS_Iterator< const SMDS_MeshVolume * > > SMDS_VolumeIteratorPtr
boost::shared_ptr< SMDS_Iterator< const SMDS_MeshEdge * > > SMDS_EdgeIteratorPtr