X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FSMDS%2FSMDS_Mesh.hxx;h=f869cd705aa4795248af9ae2e83bbaa0fb004748;hb=14d5b8633d36291b944e59ddb5cce4a0b028d952;hp=946d9b0e478cc1d14fc5ed2fa29e19e396a536b7;hpb=484fe83a97f643207334576fbe08d4a90d67fd37;p=modules%2Fsmesh.git diff --git a/src/SMDS/SMDS_Mesh.hxx b/src/SMDS/SMDS_Mesh.hxx index 946d9b0e4..f869cd705 100644 --- a/src/SMDS/SMDS_Mesh.hxx +++ b/src/SMDS/SMDS_Mesh.hxx @@ -55,43 +55,105 @@ class SMDS_Mesh:public SMDS_MeshObject virtual SMDS_MeshNode* AddNode(double x, double y, double z); virtual SMDS_MeshNode* AddNodeWithID(double x, double y, double z, int ID); - virtual SMDS_MeshEdge* AddEdge(int idnode1, int idnode2); - virtual SMDS_MeshEdge* AddEdgeWithID(int idnode1, int idnode2, int ID); - virtual SMDS_MeshFace* AddFace(int idnode1, int idnode2, int idnode3); - virtual SMDS_MeshFace* AddFaceWithID(int idnode1, int idnode2, int idnode3, + virtual SMDS_MeshEdge* AddEdge( + const SMDS_MeshNode * n1, + const SMDS_MeshNode * n2); + virtual SMDS_MeshFace* AddFace( + const SMDS_MeshNode * n1, + const SMDS_MeshNode * n2, + const SMDS_MeshNode * n3); + virtual SMDS_MeshFace* AddFace( + 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); + 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_MeshNode * n1, + const SMDS_MeshNode * n2, + const SMDS_MeshNode * n3, + const SMDS_MeshNode * n4, + const SMDS_MeshNode * n5, + const SMDS_MeshNode * n6); + 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); + + SMDS_MeshEdge* AddEdgeWithID(int n1, int n2, int ID); + SMDS_MeshFace* AddFaceWithID(int n1, int n2, int n3, int ID); + SMDS_MeshFace* AddFaceWithID(int n1, int n2, int n3, int n4, int ID); - virtual SMDS_MeshFace* AddFace(int idnode1, int idnode2, int idnode3, - int idnode4); - virtual SMDS_MeshFace* AddFaceWithID(int idnode1, int idnode2, int idnode3, - int idnode4, int ID); - virtual SMDS_MeshVolume* AddVolume(int idnode1, int idnode2, int idnode3, - int idnode4); - virtual SMDS_MeshVolume* AddVolumeWithID(int idnode1, int idnode2, - int idnode3, int idnode4, int ID); - virtual SMDS_MeshVolume* AddVolume(int idnode1, int idnode2, int idnode3, - int idnode4, int idnode5); - virtual SMDS_MeshVolume* AddVolumeWithID(int idnode1, int idnode2, int idnode3, - int idnode4, int idnode5, int ID); - virtual SMDS_MeshVolume* AddVolume(int idnode1, int idnode2, int idnode3, - int idnode4, int idnode5, int idnode6); - virtual SMDS_MeshVolume* AddVolumeWithID(int idnode1, int idnode2, - int idnode3, int idnode4, int idnode5, int idnode6, int ID); - virtual SMDS_MeshVolume* AddVolume(int idnode1, int idnode2, int idnode3, - int idnode4, int idnode5, int idnode6, int idnode7, int idnode8); - virtual SMDS_MeshVolume* AddVolumeWithID(int idnode1, int idnode2, int idnode3, - int idnode4, int idnode5, int idnode6, int idnode7, int idnode8, + SMDS_MeshVolume* AddVolumeWithID(int n1, int n2, int n3, int n4, int ID); - virtual void RemoveNode(int IDnode); - virtual void RemoveEdge(int idnode1, int idnode2); - virtual void RemoveFace(int idnode1, int idnode2, int idnode3); - virtual void RemoveFace(int idnode1, int idnode2, int idnode3, int idnode4); - virtual void RemoveElement(int IDelem, const bool removenodes = false); - void RemoveElement(const SMDS_MeshElement * elem, const bool removenodes = + SMDS_MeshVolume* AddVolumeWithID(int n1, int n2, int n3, int n4, + int n5, int ID); + SMDS_MeshVolume* AddVolumeWithID(int n1, int n2, int n3, int n4, + int n5, int n6, int ID); + SMDS_MeshVolume* AddVolumeWithID(int n1, int n2, int n3, int n4, + int n5, int n6, int n7, int n8, int ID); + + SMDS_MeshEdge* AddEdgeWithID( + const SMDS_MeshNode * n1, + const SMDS_MeshNode * n2, int ID); + SMDS_MeshFace* AddFaceWithID( + const SMDS_MeshNode * n1, + const SMDS_MeshNode * n2, + const SMDS_MeshNode * n3, int ID); + SMDS_MeshFace* AddFaceWithID( + const SMDS_MeshNode * n1, + const SMDS_MeshNode * n2, + const SMDS_MeshNode * n3, + const SMDS_MeshNode * n4, int ID); + SMDS_MeshVolume* AddVolumeWithID( + const SMDS_MeshNode * n1, + const SMDS_MeshNode * n2, + const SMDS_MeshNode * n3, + const SMDS_MeshNode * n4, int ID); + 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); + 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); + 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 void RemoveElement(const SMDS_MeshElement * elem, const bool removenodes = false); - bool RemoveNode(const SMDS_MeshNode * node); //Remove a node and elements which need this node - void RemoveEdge(const SMDS_MeshEdge * edge); - void RemoveFace(const SMDS_MeshFace * face); - void RemoveVolume(const SMDS_MeshVolume * volume); + virtual void RemoveNode(const SMDS_MeshNode * node); + virtual void RemoveEdge(const SMDS_MeshEdge * edge); + virtual void RemoveFace(const SMDS_MeshFace * face); + virtual void RemoveVolume(const SMDS_MeshVolume * volume); virtual bool RemoveFromParent(); virtual bool RemoveSubMesh(const SMDS_Mesh * aMesh); @@ -114,7 +176,7 @@ class SMDS_Mesh:public SMDS_MeshObject void DebugStats() const; SMDS_Mesh *boundaryFaces(); SMDS_Mesh *boundaryEdges(); - ~SMDS_Mesh(); + virtual ~SMDS_Mesh(); bool hasConstructionEdges(); bool hasConstructionFaces(); bool hasInverseElements(); @@ -128,7 +190,6 @@ class SMDS_Mesh:public SMDS_MeshObject SMDS_MeshNode * node2, SMDS_MeshNode * node3); SMDS_MeshFace * createQuadrangle(SMDS_MeshNode * node1, SMDS_MeshNode * node2, SMDS_MeshNode * node3, SMDS_MeshNode * node4); - void removeElementDependencies(SMDS_MeshElement * element); const SMDS_MeshEdge* FindEdge(const SMDS_MeshNode * n1, const SMDS_MeshNode * n2) const; SMDS_MeshEdge* FindEdgeOrCreate(const SMDS_MeshNode * n1, @@ -147,6 +208,8 @@ class SMDS_Mesh:public SMDS_MeshObject const SMDS_MeshNode *n2, const SMDS_MeshNode *n3, const SMDS_MeshNode *n4); + void addChildrenWithNodes(set& setOfChildren, + const SMDS_MeshElement * element, set& nodes); // Fields PRIVATE typedef set SetOfNodes;