X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FSMESHDS%2FSMESHDS_SubMesh.cxx;h=35746f138018bc285b1dc091f611a4a1ef739f2c;hb=687effe75f22609b2a83dcc70bc00732e73c705c;hp=cc5b6f7d3285d19dfbe9aa1948a3ec2f6bf99a69;hpb=aa574473cfc2112ef654904d6f2af9fd6e46d4c7;p=modules%2Fsmesh.git diff --git a/src/SMESHDS/SMESHDS_SubMesh.cxx b/src/SMESHDS/SMESHDS_SubMesh.cxx index cc5b6f7d3..35746f138 100644 --- a/src/SMESHDS/SMESHDS_SubMesh.cxx +++ b/src/SMESHDS/SMESHDS_SubMesh.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2016 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2020 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS @@ -72,7 +72,7 @@ namespace */ //================================================================================ -SMESHDS_SubMesh::SMESHDS_SubMesh(SMESHDS_Mesh *parent, int index) +SMESHDS_SubMesh::SMESHDS_SubMesh(const SMESHDS_Mesh *parent, int index) : SMDS_ElementHolder( parent ) { myParent = parent; @@ -115,9 +115,12 @@ void SMESHDS_SubMesh::AddElement(const SMDS_MeshElement * elem) (LOCALIZED("add element in subshape already belonging to a subshape")); } } + else + { + ++myNbElements; + } elem->setShapeID( myIndex ); - myNbElements++; // remember element with smallest ID to optimize iteration on them add( elem ); @@ -131,7 +134,7 @@ void SMESHDS_SubMesh::AddElement(const SMDS_MeshElement * elem) bool SMESHDS_SubMesh::RemoveElement(const SMDS_MeshElement * elem ) { - if ( !elem || elem->IsNull() || elem->getshapeId() != myIndex ) + if ( myNbElements == 0 || !elem || elem->IsNull() || elem->getshapeId() != myIndex ) { return false; } @@ -178,8 +181,11 @@ void SMESHDS_SubMesh::AddNode(const SMDS_MeshNode * N) (LOCALIZED("a node being in sub-mesh is added to another sub-mesh")); return; // already in } + else + { + ++myNbNodes; + } N->setShapeID( myIndex ); - myNbNodes++; // remember node with smallest ID to optimize iteration on them add( N ); @@ -193,7 +199,7 @@ void SMESHDS_SubMesh::AddNode(const SMDS_MeshNode * N) bool SMESHDS_SubMesh::RemoveNode(const SMDS_MeshNode * N) { - if ( !N || N->getshapeId() != myIndex ) + if ( myNbNodes == 0 || !N || N->getshapeId() != myIndex ) { return false; }