Salome HOME
PAL16842 (Genertion of groups when a mesh is transformed)
[modules/smesh.git] / src / SMESH / SMESH_OctreeNode.hxx
index ce8bfde26566f2fc490d26dd47250144b465bbd1..4feb86842c154c8757068b6282ce76d83a36b4db 100644 (file)
 
 #include "SMESH_Octree.hxx"
 
+#include <list>
+#include <set>
+
+#include "SMDS_ElemIterator.hxx"
+
 //forward declaration
 class SMDS_MeshNode;
+class SMESH_OctreeNode;
 
-#include <list>
-#include <set>
+typedef SMDS_Iterator<SMESH_OctreeNode*>            SMESH_OctreeNodeIterator;
+typedef boost::shared_ptr<SMESH_OctreeNodeIterator> SMESH_OctreeNodeIteratorPtr;
 
 class SMESH_OctreeNode : public SMESH_Octree{
 
 public:
 
   // Constructor
-  SMESH_OctreeNode (set<const SMDS_MeshNode*>  theNodes, const int maxLevel = -1,
+  SMESH_OctreeNode (const set<const SMDS_MeshNode*>& theNodes, const int maxLevel = -1,
                     const int maxNbNodes = 5 , const double minBoxSize = 0.);
 
 //=============================
@@ -75,8 +81,20 @@ public:
                                            list< list< const SMDS_MeshNode*> >* theGroupsOfNodes,
                                            const double theTolerance = 0.00001, const int maxLevel = -1,
                                            const int maxNbNodes = 5);
-
-  protected:
+  /*!
+   * \brief Return iterator over children
+   */
+  SMESH_OctreeNodeIteratorPtr GetChildrenIterator();
+  /*!
+   * \brief Return nodes iterator
+   */
+  SMDS_NodeIteratorPtr        GetNodeIterator();
+  /*!
+   * \brief Return nb nodes in a tree
+   */
+  int                         NbNodes() const { return myNbNodes; }
+
+protected:
 
 //=============================
 /*!