]> SALOME platform Git repositories - modules/smesh.git/commitdiff
Salome HOME
PAL16842 (Genertion of groups when a mesh is transformed)
authoreap <eap@opencascade.com>
Mon, 12 Nov 2007 09:57:27 +0000 (09:57 +0000)
committereap <eap@opencascade.com>
Mon, 12 Nov 2007 09:57:27 +0000 (09:57 +0000)
+  typedef boost::shared_ptr< SMDS_Iterator<SMESH_Group*> > GroupIteratorPtr;
+  GroupIteratorPtr GetGroups() const;

src/SMESH/SMESH_Mesh.cxx
src/SMESH/SMESH_Mesh.hxx

index 8570263b569f50e358073398cb83f86b95212cfa..8b77005d3dd0e40c21d69d77cb19816f1aa2bbca 100644 (file)
@@ -37,6 +37,7 @@
 #include "SMESHDS_GroupOnGeom.hxx"
 #include "SMESHDS_Document.hxx"
 #include "SMDS_MeshVolume.hxx"
+#include "SMDS_SetIterator.hxx"
 
 #include "utilities.h"
 
@@ -1210,9 +1211,21 @@ SMESH_Group* SMESH_Mesh::AddGroup (const SMDSAbs_ElementType theType,
   return aGroup;
 }
 
+//================================================================================
+/*!
+ * \brief Return iterator on all existing groups
+ */
+//================================================================================
+
+SMESH_Mesh::GroupIteratorPtr SMESH_Mesh::GetGroups() const
+{
+  typedef map <int, SMESH_Group *> TMap;
+  return GroupIteratorPtr( new SMDS_mapIterator<TMap>( _mapGroup ));
+}
+
 //=============================================================================
 /*!
- *  
+ * \brief Return a group by ID
  */
 //=============================================================================
 
@@ -1226,11 +1239,11 @@ SMESH_Group* SMESH_Mesh::GetGroup (const int theGroupID)
 
 //=============================================================================
 /*!
- *  
+ * \brief Return IDs of all groups
  */
 //=============================================================================
 
-list<int> SMESH_Mesh::GetGroupIds()
+list<int> SMESH_Mesh::GetGroupIds() const
 {
   list<int> anIds;
   for ( map<int, SMESH_Group*>::const_iterator it = _mapGroup.begin(); it != _mapGroup.end(); it++ )
index 2f57bcd70ed6ba53277271f976b864fe3780603c..3b4881a49faa6610ab982e139c8db8b75eeee846 100644 (file)
@@ -210,13 +210,16 @@ public:
                         int&                      theId,
                          const TopoDS_Shape&       theShape=TopoDS_Shape());
   
-  SMESH_Group* GetGroup (const int theGroupID);
+  typedef boost::shared_ptr< SMDS_Iterator<SMESH_Group*> > GroupIteratorPtr;
+  GroupIteratorPtr GetGroups() const;
   
-  std::list<int> GetGroupIds();
+  std::list<int> GetGroupIds() const;
   
+  SMESH_Group* GetGroup (const int theGroupID);
+
   void RemoveGroup (const int theGroupID);
 
+
   SMDSAbs_ElementType GetElementType( const int id, const bool iselem );
 
   //