void ClearLog() throw(SALOME_Exception);
- int GetId() { return _id; }
+ int GetId() const { return _id; }
SMESHDS_Mesh * GetMeshDS() { return _myMeshDS; }
- SMESH_Gen *GetGen() { return _gen; }
+ const SMESHDS_Mesh * GetMeshDS() const { return _myMeshDS; }
+ SMESH_Gen *GetGen() { return _gen; }
+
SMESH_subMesh *GetSubMesh(const TopoDS_Shape & aSubShape)
throw(SALOME_Exception);
void ExportUNV(const char *file) throw(SALOME_Exception);
void ExportSTL(const char *file, const bool isascii) throw(SALOME_Exception);
- int NbNodes() throw(SALOME_Exception);
+ int NbNodes() const throw(SALOME_Exception);
- int Nb0DElements() throw(SALOME_Exception);
+ int Nb0DElements() const throw(SALOME_Exception);
- int NbEdges(SMDSAbs_ElementOrder order = ORDER_ANY) throw(SALOME_Exception);
+ int NbEdges(SMDSAbs_ElementOrder order = ORDER_ANY) const throw(SALOME_Exception);
- int NbFaces(SMDSAbs_ElementOrder order = ORDER_ANY) throw(SALOME_Exception);
+ int NbFaces(SMDSAbs_ElementOrder order = ORDER_ANY) const throw(SALOME_Exception);
- int NbTriangles(SMDSAbs_ElementOrder order = ORDER_ANY) throw(SALOME_Exception);
+ int NbTriangles(SMDSAbs_ElementOrder order = ORDER_ANY) const throw(SALOME_Exception);
- int NbQuadrangles(SMDSAbs_ElementOrder order = ORDER_ANY) throw(SALOME_Exception);
+ int NbQuadrangles(SMDSAbs_ElementOrder order = ORDER_ANY) const throw(SALOME_Exception);
- int NbPolygons() throw(SALOME_Exception);
+ int NbPolygons() const throw(SALOME_Exception);
- int NbVolumes(SMDSAbs_ElementOrder order = ORDER_ANY) throw(SALOME_Exception);
+ int NbVolumes(SMDSAbs_ElementOrder order = ORDER_ANY) const throw(SALOME_Exception);
- int NbTetras(SMDSAbs_ElementOrder order = ORDER_ANY) throw(SALOME_Exception);
+ int NbTetras(SMDSAbs_ElementOrder order = ORDER_ANY) const throw(SALOME_Exception);
- int NbHexas(SMDSAbs_ElementOrder order = ORDER_ANY) throw(SALOME_Exception);
+ int NbHexas(SMDSAbs_ElementOrder order = ORDER_ANY) const throw(SALOME_Exception);
- int NbPyramids(SMDSAbs_ElementOrder order = ORDER_ANY) throw(SALOME_Exception);
+ int NbPyramids(SMDSAbs_ElementOrder order = ORDER_ANY) const throw(SALOME_Exception);
- int NbPrisms(SMDSAbs_ElementOrder order = ORDER_ANY) throw(SALOME_Exception);
+ int NbPrisms(SMDSAbs_ElementOrder order = ORDER_ANY) const throw(SALOME_Exception);
- int NbPolyhedrons() throw(SALOME_Exception);
+ int NbPolyhedrons() const throw(SALOME_Exception);
- int NbSubMesh() throw(SALOME_Exception);
+ int NbSubMesh() const throw(SALOME_Exception);
int NbGroup() const { return _mapGroup.size(); }
SMESH_Group* GetGroup (const int theGroupID);
- void RemoveGroup (const int theGroupID);
+ bool RemoveGroup (const int theGroupID);
SMESH_Group* ConvertToStandalone ( int theGroupID );
+ struct TRmGroupCallUp
+ {
+ virtual void RemoveGroup (const int theGroupID)=0;
+ virtual ~TRmGroupCallUp() {}
+ };
+ void SetRemoveGroupCallUp( TRmGroupCallUp * upCaller );
+
+
SMDSAbs_ElementType GetElementType( const int id, const bool iselem );
void ClearMeshOrder();
std::list <SMESH_subMesh*> _subMeshesUsingHypothesisList;
SMESHDS_Document * _myDocument;
SMESHDS_Mesh * _myMeshDS;
+ SMESH_Gen * _gen;
std::map <int, SMESH_subMesh*> _mapSubMesh;
std::map <int, SMESH_Group*> _mapGroup;
- SMESH_Gen * _gen;
bool _isAutoColor;
bool _isModified; //!< modified since last total re-compute, issue 0020693
TListOfListOfInt _mySubMeshOrder;
+ // Struct calling RemoveGroup at CORBA API implementation level, used
+ // to make an upper level be consistent with a lower one when group removal
+ // is invoked by hyp modification
+ TRmGroupCallUp* _rmGroupCallUp;
+
protected:
- SMESH_Mesh() {};
+ SMESH_Mesh();
SMESH_Mesh(const SMESH_Mesh&) {};
};