Go to the documentation of this file.
26 #ifndef _SMDS_Mesh_HeaderFile
27 #define _SMDS_Mesh_HeaderFile
39 #include <NCollection_Map.hxx>
41 #include <boost/shared_ptr.hpp>
123 int n12,
int n23,
int n31,
int ID);
140 int n12,
int n23,
int n34,
int n41,
int ID);
185 int n5,
int n6,
int ID);
201 int n5,
int n6,
int n7,
int n8,
int ID);
255 int n12,
int n23,
int n31,
256 int n14,
int n24,
int n34,
int ID);
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,
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,
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);
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);
461 int idnode4,
int idnode5,
int idnode6)
const;
463 int idnode5,
int idnode6,
int idnode7,
int idnode8)
const;
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;
571 std::set<const SMDS_MeshElement*>& nodes);
virtual SMDS_MeshFace * AddFaceWithID(int n1, int n2, int n3, int n4, int n12, int n23, int n34, int n41, int ID)
SMDS_EdgeIteratorPtr edgesIterator() const
bool registerElement(int ID, SMDS_MeshElement *element)
virtual SMDS_MeshVolume * AddVolume(const SMDS_MeshNode *n1, const SMDS_MeshNode *n2, const SMDS_MeshNode *n3, const SMDS_MeshNode *n4, const SMDS_MeshNode *n5, const SMDS_MeshNode *n6)
static const SMDS_MeshFace * FindFace(std::vector< const SMDS_MeshNode * > nodes)
SetOf0DElements my0DElements
bool myHasConstructionEdges
virtual SMDS_MeshFace * AddFaceWithID(int n1, int n2, int n3, int n12, int n23, int n31, int ID)
virtual SMDS_MeshFace * AddFaceWithID(int n1, int n2, int n3, int ID)
virtual SMDS_MeshEdge * AddEdgeWithID(int n1, int n2, int ID)
virtual SMDS_MeshVolume * AddVolumeWithID(int n1, int n2, int n3, int n4, int n5, int n6, int n12, int n23, int n31, int n45, int n56, int n64, int n14, int n25, int n36, int ID)
bool ChangePolyhedronNodes(const SMDS_MeshElement *elem, const std::vector< const SMDS_MeshNode * > &nodes, const std::vector< int > &quantities)
SMDS_MeshEdge * FindEdgeOrCreate(const SMDS_MeshNode *n1, const SMDS_MeshNode *n2)
bool hasConstructionEdges()
SMDS_ElemIteratorPtr elementsIterator(SMDSAbs_ElementType type=SMDSAbs_All) const
virtual SMDS_MeshVolume * AddVolumeWithID(int n1, int n2, int n3, int n4, int n5, int n6, int n7, int n8, int ID)
virtual SMDS_MeshVolume * AddVolume(const SMDS_MeshNode *n1, const SMDS_MeshNode *n2, const SMDS_MeshNode *n3, const SMDS_MeshNode *n4, const SMDS_MeshNode *n5, const SMDS_MeshNode *n6, const SMDS_MeshNode *n7, const SMDS_MeshNode *n8)
virtual SMDS_Mesh0DElement * Add0DElementWithID(int n, int ID)
boost::shared_ptr< SMDS_Iterator< const SMDS_MeshElement * > > SMDS_ElemIteratorPtr
virtual SMDS_MeshVolume * AddVolumeWithID(const SMDS_MeshNode *n1, const SMDS_MeshNode *n2, const SMDS_MeshNode *n3, const SMDS_MeshNode *n4, const SMDS_MeshNode *n5, const SMDS_MeshNode *n6, const SMDS_MeshNode *n12, const SMDS_MeshNode *n23, const SMDS_MeshNode *n31, const SMDS_MeshNode *n45, const SMDS_MeshNode *n56, const SMDS_MeshNode *n64, const SMDS_MeshNode *n14, const SMDS_MeshNode *n25, const SMDS_MeshNode *n36, int ID)
virtual SMDS_MeshFace * AddFaceWithID(int n1, int n2, int n3, int n4, int ID)
virtual SMDS_MeshVolume * AddVolumeWithID(const SMDS_MeshNode *n1, const SMDS_MeshNode *n2, const SMDS_MeshNode *n3, const SMDS_MeshNode *n4, const SMDS_MeshNode *n12, const SMDS_MeshNode *n23, const SMDS_MeshNode *n31, const SMDS_MeshNode *n14, const SMDS_MeshNode *n24, const SMDS_MeshNode *n34, int ID)
bool Contains(const SMDS_MeshElement *elem) const
virtual SMDS_MeshVolume * AddVolumeWithID(int n1, int n2, int n3, int n4, int n5, int n6, int ID)
static const SMDS_MeshFace * FindFace(const SMDS_MeshNode *n1, const SMDS_MeshNode *n2, const SMDS_MeshNode *n3)
boost::shared_ptr< SMDS_Iterator< const SMDS_MeshNode * > > SMDS_NodeIteratorPtr
SMDS_Mesh * boundaryEdges()
void Dump0DElements() const
virtual void RemoveFreeElement(const SMDS_MeshElement *elem)
virtual SMDS_MeshVolume * AddVolumeWithID(const SMDS_MeshFace *f1, const SMDS_MeshFace *f2, const SMDS_MeshFace *f3, const SMDS_MeshFace *f4, int ID)
virtual SMDS_MeshVolume * AddPolyhedralVolumeWithID(std::vector< int > nodes_ids, std::vector< int > quantities, const int ID)
virtual SMDS_MeshFace * AddPolygonalFaceWithID(std::vector< int > nodes_ids, const int ID)
const SMDS_MeshElement * FindElement(int IDelem) const
std::list< SMDS_Mesh * > myChildren
SMDS_VolumeIteratorPtr volumesIterator() const
virtual void RemoveVolume(const SMDS_MeshVolume *volume)
const SMDS_MeshEdge * FindEdge(int idnode1, int idnode2) const
const SMDS_MeshFace * FindFace(int idnode1, int idnode2, int idnode3, int idnode4, int idnode5, int idnode6) const
virtual bool RemoveFromParent()
SMDS_0DElementIteratorPtr elements0dIterator() const
const SMDS_MeshNode * FindNode(int idnode) const
virtual SMDS_MeshVolume * AddVolumeWithID(const SMDS_MeshFace *f1, const SMDS_MeshFace *f2, const SMDS_MeshFace *f3, const SMDS_MeshFace *f4, const SMDS_MeshFace *f5, int ID)
virtual SMDS_MeshVolume * AddVolumeWithID(const SMDS_MeshNode *n1, const SMDS_MeshNode *n2, const SMDS_MeshNode *n3, const SMDS_MeshNode *n4, const SMDS_MeshNode *n5, const SMDS_MeshNode *n6, const SMDS_MeshNode *n7, const SMDS_MeshNode *n8, int ID)
virtual SMDS_MeshFace * AddPolygonalFaceWithID(std::vector< const SMDS_MeshNode * > nodes, const int ID)
virtual SMDS_MeshVolume * AddVolumeWithID(int n1, int n2, int n3, int n4, int n5, int n6, int n7, int n8, int n12, int n23, int n34, int n41, int n56, int n67, int n78, int n85, int n15, int n26, int n37, int n48, int ID)
boost::shared_ptr< SMDS_Iterator< const SMDS_MeshVolume * > > SMDS_VolumeIteratorPtr
virtual SMDS_MeshEdge * AddEdge(const SMDS_MeshNode *n1, const SMDS_MeshNode *n2, const SMDS_MeshNode *n12)
SMDS_Mesh(SMDS_Mesh *parent)
void addChildrenWithNodes(std::set< const SMDS_MeshElement * > &setOfChildren, const SMDS_MeshElement *element, std::set< const SMDS_MeshElement * > &nodes)
bool ChangeElementNodes(const SMDS_MeshElement *elem, const SMDS_MeshNode *nodes[], const int nbnodes)
virtual SMDS_MeshEdge * AddEdge(const SMDS_MeshNode *n1, const SMDS_MeshNode *n2)
SMDS_Mesh0DElement * Find0DElementOrCreate(const SMDS_MeshNode *n)
const SMDS_Mesh0DElement * Find0DElement(int idnode) const
virtual SMDS_MeshVolume * AddVolume(const SMDS_MeshFace *f1, const SMDS_MeshFace *f2, const SMDS_MeshFace *f3, const SMDS_MeshFace *f4, const SMDS_MeshFace *f5, const SMDS_MeshFace *f6)
virtual bool RemoveSubMesh(const SMDS_Mesh *aMesh)
virtual SMDS_MeshVolume * AddVolume(const SMDS_MeshNode *n1, const SMDS_MeshNode *n2, const SMDS_MeshNode *n3, const SMDS_MeshNode *n4, const SMDS_MeshNode *n5)
virtual SMDS_MeshVolume * AddVolume(const SMDS_MeshFace *f1, const SMDS_MeshFace *f2, const SMDS_MeshFace *f3, const SMDS_MeshFace *f4)
virtual void RemoveEdge(const SMDS_MeshEdge *edge)
virtual SMDS_MeshNode * AddNode(double x, double y, double z)
virtual void RemoveElement(const SMDS_MeshElement *elem, bool removenodes=false)
SMDS_MeshFace * createTriangle(const SMDS_MeshNode *node1, const SMDS_MeshNode *node2, const SMDS_MeshNode *node3)
virtual SMDS_MeshVolume * AddVolumeWithID(int n1, int n2, int n3, int n4, int n5, int ID)
virtual SMDS_MeshFace * AddFaceWithID(const SMDS_MeshNode *n1, const SMDS_MeshNode *n2, const SMDS_MeshNode *n3, int ID)
void setConstructionEdges(bool)
virtual SMDS_MeshVolume * AddVolumeWithID(const SMDS_MeshNode *n1, const SMDS_MeshNode *n2, const SMDS_MeshNode *n3, const SMDS_MeshNode *n4, const SMDS_MeshNode *n5, const SMDS_MeshNode *n6, const SMDS_MeshNode *n7, const SMDS_MeshNode *n8, const SMDS_MeshNode *n12, const SMDS_MeshNode *n23, const SMDS_MeshNode *n34, const SMDS_MeshNode *n41, const SMDS_MeshNode *n56, const SMDS_MeshNode *n67, const SMDS_MeshNode *n78, const SMDS_MeshNode *n85, const SMDS_MeshNode *n15, const SMDS_MeshNode *n26, const SMDS_MeshNode *n37, const SMDS_MeshNode *n48, int ID)
static int CheckMemory(const bool doNotRaise=false)
Raise an exception if free memory (ram+swap) too low.
NCollection_Map< SMDS_MeshEdge * > SetOfEdges
virtual void RemoveElement(const SMDS_MeshElement *elem, std::list< const SMDS_MeshElement * > &removedElems, std::list< const SMDS_MeshElement * > &removedNodes, bool removenodes=false)
static const SMDS_Mesh0DElement * Find0DElement(const SMDS_MeshNode *n)
void setInverseElements(bool)
virtual SMDS_MeshFace * AddFaceWithID(const SMDS_MeshNode *n1, const SMDS_MeshNode *n2, const SMDS_MeshNode *n3, const SMDS_MeshNode *n12, const SMDS_MeshNode *n23, const SMDS_MeshNode *n31, int ID)
virtual SMDS_MeshVolume * AddVolumeWithID(const SMDS_MeshFace *f1, const SMDS_MeshFace *f2, const SMDS_MeshFace *f3, const SMDS_MeshFace *f4, const SMDS_MeshFace *f5, const SMDS_MeshFace *f6, int ID)
virtual SMDS_MeshVolume * AddVolumeWithID(const SMDS_MeshNode *n1, const SMDS_MeshNode *n2, const SMDS_MeshNode *n3, const SMDS_MeshNode *n4, const SMDS_MeshNode *n5, int ID)
virtual SMDS_Mesh0DElement * Add0DElementWithID(const SMDS_MeshNode *n, int ID)
virtual SMDS_MeshFace * AddFaceWithID(const SMDS_MeshEdge *e1, const SMDS_MeshEdge *e2, const SMDS_MeshEdge *e3, int ID)
SMDS_MeshFace * FindFaceOrCreate(const SMDS_MeshNode *n1, const SMDS_MeshNode *n2, const SMDS_MeshNode *n3)
virtual SMDS_MeshVolume * AddVolumeWithID(const SMDS_MeshNode *n1, const SMDS_MeshNode *n2, const SMDS_MeshNode *n3, const SMDS_MeshNode *n4, const SMDS_MeshNode *n5, const SMDS_MeshNode *n6, int ID)
const SMDS_MeshFace * FindFace(int idnode1, int idnode2, int idnode3) const
virtual SMDS_MeshVolume * AddVolumeWithID(const SMDS_MeshNode *n1, const SMDS_MeshNode *n2, const SMDS_MeshNode *n3, const SMDS_MeshNode *n4, int ID)
virtual void RemoveFace(const SMDS_MeshFace *face)
virtual void Renumber(const bool isNodes, const int startID=1, const int deltaID=1)
virtual SMDS_MeshVolume * AddVolumeWithID(int n1, int n2, int n3, int n4, int n5, int n12, int n23, int n34, int n41, int n15, int n25, int n35, int n45, int ID)
SMDS_MeshFace * FindFaceOrCreate(const SMDS_MeshNode *n1, const SMDS_MeshNode *n2, const SMDS_MeshNode *n3, const SMDS_MeshNode *n4)
virtual SMDS_MeshVolume * AddVolume(const SMDS_MeshNode *n1, const SMDS_MeshNode *n2, const SMDS_MeshNode *n3, const SMDS_MeshNode *n4, const SMDS_MeshNode *n12, const SMDS_MeshNode *n23, const SMDS_MeshNode *n31, const SMDS_MeshNode *n14, const SMDS_MeshNode *n24, const SMDS_MeshNode *n34)
virtual SMDS_MeshEdge * AddEdgeWithID(const SMDS_MeshNode *n1, const SMDS_MeshNode *n2, const SMDS_MeshNode *n12, int ID)
virtual SMDS_MeshFace * AddFace(const SMDS_MeshEdge *e1, const SMDS_MeshEdge *e2, const SMDS_MeshEdge *e3)
virtual SMDS_MeshVolume * AddVolume(const SMDS_MeshFace *f1, const SMDS_MeshFace *f2, const SMDS_MeshFace *f3, const SMDS_MeshFace *f4, const SMDS_MeshFace *f5)
virtual SMDS_MeshFace * AddFaceWithID(const SMDS_MeshEdge *e1, const SMDS_MeshEdge *e2, const SMDS_MeshEdge *e3, const SMDS_MeshEdge *e4, int ID)
virtual SMDS_MeshFace * AddFaceWithID(const SMDS_MeshNode *n1, const SMDS_MeshNode *n2, const SMDS_MeshNode *n3, const SMDS_MeshNode *n4, const SMDS_MeshNode *n12, const SMDS_MeshNode *n23, const SMDS_MeshNode *n34, const SMDS_MeshNode *n41, int ID)
virtual SMDS_MeshVolume * AddVolumeWithID(const SMDS_MeshNode *n1, const SMDS_MeshNode *n2, const SMDS_MeshNode *n3, const SMDS_MeshNode *n4, const SMDS_MeshNode *n5, const SMDS_MeshNode *n12, const SMDS_MeshNode *n23, const SMDS_MeshNode *n34, const SMDS_MeshNode *n41, const SMDS_MeshNode *n15, const SMDS_MeshNode *n25, const SMDS_MeshNode *n35, const SMDS_MeshNode *n45, int ID)
virtual SMDS_MeshFace * AddFaceWithID(const SMDS_MeshNode *n1, const SMDS_MeshNode *n2, const SMDS_MeshNode *n3, const SMDS_MeshNode *n4, int ID)
boost::shared_ptr< SMDS_Iterator< const SMDS_Mesh0DElement * > > SMDS_0DElementIteratorPtr
void setConstructionFaces(bool)
SMDS_Mesh * boundaryFaces()
virtual SMDS_MeshFace * AddFace(const SMDS_MeshEdge *e1, const SMDS_MeshEdge *e2, const SMDS_MeshEdge *e3, const SMDS_MeshEdge *e4)
SMDS_MeshFace * createQuadrangle(const SMDS_MeshNode *node1, const SMDS_MeshNode *node2, const SMDS_MeshNode *node3, const SMDS_MeshNode *node4)
virtual SMDS_MeshVolume * AddVolumeWithID(int n1, int n2, int n3, int n4, int n12, int n23, int n31, int n14, int n24, int n34, int ID)
NCollection_Map< SMDS_MeshVolume * > SetOfVolumes
bool hasConstructionFaces()
virtual SMDS_MeshEdge * AddEdgeWithID(const SMDS_MeshNode *n1, const SMDS_MeshNode *n2, int ID)
virtual SMDS_MeshVolume * AddVolume(const SMDS_MeshNode *n1, const SMDS_MeshNode *n2, const SMDS_MeshNode *n3, const SMDS_MeshNode *n4)
virtual SMDS_MeshVolume * AddVolume(const SMDS_MeshNode *n1, const SMDS_MeshNode *n2, const SMDS_MeshNode *n3, const SMDS_MeshNode *n4, const SMDS_MeshNode *n5, const SMDS_MeshNode *n6, const SMDS_MeshNode *n7, const SMDS_MeshNode *n8, const SMDS_MeshNode *n12, const SMDS_MeshNode *n23, const SMDS_MeshNode *n34, const SMDS_MeshNode *n41, const SMDS_MeshNode *n56, const SMDS_MeshNode *n67, const SMDS_MeshNode *n78, const SMDS_MeshNode *n85, const SMDS_MeshNode *n15, const SMDS_MeshNode *n26, const SMDS_MeshNode *n37, const SMDS_MeshNode *n48)
bool hasInverseElements()
virtual void Remove0DElement(const SMDS_Mesh0DElement *elem0d)
bool myHasConstructionFaces
virtual SMDS_MeshEdge * AddEdgeWithID(int n1, int n2, int n12, int ID)
SMDSAbs_ElementType
Type (node, edge, face or volume) of elements.
const SMDS_MeshEdge * FindEdge(int idnode1, int idnode2, int idnode3) const
SMDS_FaceIteratorPtr facesIterator() const
virtual SMDS_MeshVolume * AddVolume(const SMDS_MeshNode *n1, const SMDS_MeshNode *n2, const SMDS_MeshNode *n3, const SMDS_MeshNode *n4, const SMDS_MeshNode *n5, const SMDS_MeshNode *n12, const SMDS_MeshNode *n23, const SMDS_MeshNode *n34, const SMDS_MeshNode *n41, const SMDS_MeshNode *n15, const SMDS_MeshNode *n25, const SMDS_MeshNode *n35, const SMDS_MeshNode *n45)
virtual void RemoveNode(const SMDS_MeshNode *node)
virtual SMDS_MeshFace * AddFace(const SMDS_MeshNode *n1, const SMDS_MeshNode *n2, const SMDS_MeshNode *n3, const SMDS_MeshNode *n4)
virtual SMDS_MeshVolume * AddPolyhedralVolumeWithID(std::vector< const SMDS_MeshNode * > nodes, std::vector< int > quantities, const int ID)
virtual SMDS_MeshFace * AddPolygonalFace(std::vector< const SMDS_MeshNode * > nodes)
static const SMDS_MeshEdge * FindEdge(const SMDS_MeshNode *n1, const SMDS_MeshNode *n2, const SMDS_MeshNode *n3)
const SMDS_MeshFace * FindFace(int idnode1, int idnode2, int idnode3, int idnode4) const
static const SMDS_MeshFace * FindFace(const SMDS_MeshNode *n1, const SMDS_MeshNode *n2, const SMDS_MeshNode *n3, const SMDS_MeshNode *n4, const SMDS_MeshNode *n5, const SMDS_MeshNode *n6)
SMDS_MeshElementIDFactory * myNodeIDFactory
virtual SMDS_MeshFace * AddFace(const SMDS_MeshNode *n1, const SMDS_MeshNode *n2, const SMDS_MeshNode *n3, const SMDS_MeshNode *n12, const SMDS_MeshNode *n23, const SMDS_MeshNode *n31)
SMDS_NodeIteratorPtr nodesIterator() const
SMDS_MeshElementIDFactory * myElementIDFactory
boost::shared_ptr< SMDS_Iterator< const SMDS_MeshFace * > > SMDS_FaceIteratorPtr
virtual SMDS_MeshVolume * AddVolumeWithID(int n1, int n2, int n3, int n4, int ID)
static const SMDS_MeshEdge * FindEdge(const SMDS_MeshNode *n1, const SMDS_MeshNode *n2)
NCollection_Map< SMDS_MeshNode * > SetOfNodes
boost::shared_ptr< SMDS_Iterator< const SMDS_MeshEdge * > > SMDS_EdgeIteratorPtr
virtual SMDS_MeshNode * AddNodeWithID(double x, double y, double z, int ID)
static const SMDS_MeshFace * FindFace(const SMDS_MeshNode *n1, const SMDS_MeshNode *n2, const SMDS_MeshNode *n3, const SMDS_MeshNode *n4)
SMDSAbs_ElementType GetElementType(const int id, const bool iselem) const
const SMDS_MeshFace * FindFace(std::vector< int > nodes_ids) const
virtual SMDS_MeshVolume * AddPolyhedralVolume(std::vector< const SMDS_MeshNode * > nodes, std::vector< int > quantities)
virtual SMDS_MeshVolume * AddVolume(const SMDS_MeshNode *n1, const SMDS_MeshNode *n2, const SMDS_MeshNode *n3, const SMDS_MeshNode *n4, const SMDS_MeshNode *n5, const SMDS_MeshNode *n6, const SMDS_MeshNode *n12, const SMDS_MeshNode *n23, const SMDS_MeshNode *n31, const SMDS_MeshNode *n45, const SMDS_MeshNode *n56, const SMDS_MeshNode *n64, const SMDS_MeshNode *n14, const SMDS_MeshNode *n25, const SMDS_MeshNode *n36)
static const SMDS_MeshFace * FindFace(const SMDS_MeshNode *n1, const SMDS_MeshNode *n2, const SMDS_MeshNode *n3, const SMDS_MeshNode *n4, const SMDS_MeshNode *n5, const SMDS_MeshNode *n6, const SMDS_MeshNode *n7, const SMDS_MeshNode *n8)
NCollection_Map< SMDS_MeshFace * > SetOfFaces
NCollection_Map< SMDS_Mesh0DElement * > SetOf0DElements
virtual SMDS_MeshFace * AddFace(const SMDS_MeshNode *n1, const SMDS_MeshNode *n2, const SMDS_MeshNode *n3, const SMDS_MeshNode *n4, const SMDS_MeshNode *n12, const SMDS_MeshNode *n23, const SMDS_MeshNode *n34, const SMDS_MeshNode *n41)
virtual SMDS_Mesh0DElement * Add0DElement(const SMDS_MeshNode *n)
virtual SMDS_MeshFace * AddFace(const SMDS_MeshNode *n1, const SMDS_MeshNode *n2, const SMDS_MeshNode *n3)
bool myHasInverseElements
const SMDS_MeshFace * FindFace(int idnode1, int idnode2, int idnode3, int idnode4, int idnode5, int idnode6, int idnode7, int idnode8) const