// Author : Jean-Michel BOULCOURT
// Module : SMESH
-using namespace std;
+#ifdef _MSC_VER
+#pragma warning(disable:4786)
+#endif
+
#include "SMDS_MeshGroup.hxx"
#include "utilities.h"
+
+using namespace std;
+
//=======================================================================
//function : SMDS_MeshGroup
//purpose :
//=======================================================================
-SMDS_MeshGroup::SMDS_MeshGroup(const SMDS_Mesh * aMesh)
- :myMesh(aMesh),myType(SMDSAbs_All), myParent(NULL)
+SMDS_MeshGroup::SMDS_MeshGroup(const SMDS_Mesh * theMesh,
+ const SMDSAbs_ElementType theType)
+ :myMesh(theMesh),myType(theType), myParent(NULL)
{
}
//purpose :
//=======================================================================
-SMDS_MeshGroup::SMDS_MeshGroup(SMDS_MeshGroup * parent)
- :myMesh(parent->myMesh),myType(SMDSAbs_All), myParent(parent)
+SMDS_MeshGroup::SMDS_MeshGroup(SMDS_MeshGroup * theParent,
+ const SMDSAbs_ElementType theType)
+ :myMesh(theParent->myMesh),myType(theType), myParent(theParent)
{
}
//purpose :
//=======================================================================
-const SMDS_MeshGroup *SMDS_MeshGroup::AddSubGroup()
+const SMDS_MeshGroup *SMDS_MeshGroup::AddSubGroup
+ (const SMDSAbs_ElementType theType)
{
- const SMDS_MeshGroup * subgroup = new SMDS_MeshGroup(this);
+ const SMDS_MeshGroup * subgroup = new SMDS_MeshGroup(this,theType);
myChildren.insert(myChildren.end(),subgroup);
return subgroup;
}
//purpose :
//=======================================================================
-bool SMDS_MeshGroup::RemoveSubGroup(const SMDS_MeshGroup * aGroup)
+bool SMDS_MeshGroup::RemoveSubGroup(const SMDS_MeshGroup * theGroup)
{
bool found = false;
list<const SMDS_MeshGroup*>::iterator itgroup;
for(itgroup=myChildren.begin(); itgroup!=myChildren.end(); itgroup++)
{
const SMDS_MeshGroup* subgroup=*itgroup;
- if (subgroup == aGroup)
+ if (subgroup == theGroup)
{
found = true;
myChildren.erase(itgroup);
myType = SMDSAbs_All;
}
-//=======================================================================
-//function : IsEmpty
-//purpose :
-//=======================================================================
-
-bool SMDS_MeshGroup::IsEmpty() const
-{
- return myElements.empty();
-}
-
-//=======================================================================
-//function : Extent
-//purpose :
-//=======================================================================
-
-int SMDS_MeshGroup::Extent() const
-{
- return myElements.size();
-}
-
//=======================================================================
//function : Add
//purpose :
//=======================================================================
-void SMDS_MeshGroup::Add(const SMDS_MeshElement * ME)
+void SMDS_MeshGroup::Add(const SMDS_MeshElement * theElem)
{
// the type of the group is determined by the first element added
- if (myElements.empty()) myType = ME->GetType();
- else if (ME->GetType() != myType)
- MESSAGE("SMDS_MeshGroup::Add : Type Mismatch");
+ if (myElements.empty()) myType = theElem->GetType();
+ else if (theElem->GetType() != myType)
+ MESSAGE("SMDS_MeshGroup::Add : Type Mismatch "<<theElem->GetType()<<"!="<<myType);
- myElements.insert(ME);
+ myElements.insert(theElem);
}
//=======================================================================
//purpose :
//=======================================================================
-void SMDS_MeshGroup::Remove(const SMDS_MeshElement * ME)
+void SMDS_MeshGroup::Remove(const SMDS_MeshElement * theElem)
{
- myElements.erase(ME);
+ myElements.erase(theElem);
if (myElements.empty()) myType = SMDSAbs_All;
}
//=======================================================================
-//function : Type
+//function : Contains
//purpose :
//=======================================================================
-SMDSAbs_ElementType SMDS_MeshGroup::Type() const
+bool SMDS_MeshGroup::Contains(const SMDS_MeshElement * theElem) const
{
- return myType;
+ return myElements.find(theElem)!=myElements.end();
}
//=======================================================================
-//function : Contains
+//function : SetType
//purpose :
//=======================================================================
-bool SMDS_MeshGroup::Contains(const SMDS_MeshElement * ME) const
+void SMDS_MeshGroup::SetType(const SMDSAbs_ElementType theType)
{
- return myElements.find(ME)!=myElements.end();
+ if (IsEmpty())
+ myType = theType;
}