Salome HOME
Porting documentation on the Doxygen-1.8.0
[modules/smesh.git] / src / OBJECT / SMESH_PreviewActorsCollection.h
index c5b4c041a26c1d695b86fdc63811f33b93a3cd3e..914c7103622056521436c15567317b1dbf43862c 100644 (file)
@@ -1,24 +1,22 @@
-//  Copyright (C) 2007-2008  CEA/DEN, EDF R&D, OPEN CASCADE
+// Copyright (C) 2007-2011  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
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License.
 //
-//  This library is free software; you can redistribute it and/or
-//  modify it under the terms of the GNU Lesser General Public
-//  License as published by the Free Software Foundation; either
-//  version 2.1 of the License.
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+// Lesser General Public License for more details.
 //
-//  This library is distributed in the hope that it will be useful,
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-//  Lesser General Public License for more details.
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
 //
-//  You should have received a copy of the GNU Lesser General Public
-//  License along with this library; if not, write to the Free Software
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
-//
-//  See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
+
 //  SMESH OBJECT : interactive object for SMESH visualization
 //  File   : SMESH_PreviewActorsCollection.h
 //  Author : OCN
 #ifndef SMESH_PREVIEW_ACTOR_COLLECTION_H
 #define SMESH_PREVIEW_ACTOR_COLLECTION_H
 
-#include "SMESH_Actor.h"
-#include <GEOM_Actor.h>
 #include "SMESH_Object.h"
+
 #include <TopoDS_Shape.hxx>
-#include <SMDS_SetIterator.hxx>
 #include <TopAbs_ShapeEnum.hxx>
 #include <TopTools_IndexedMapOfShape.hxx>
-#include <QString>
+#include <QList>
 #include <QMap>
+#include <QString>
 
 class vtkRenderer;
 class GEOM_Actor;
+class SVTK_Selector;
 
 class SMESHOBJECT_EXPORT SMESH_PreviewActorsCollection
 {
- public:
+public:
   SMESH_PreviewActorsCollection();
   ~SMESH_PreviewActorsCollection();
 
@@ -63,15 +61,31 @@ class SMESHOBJECT_EXPORT SMESH_PreviewActorsCollection
 
   void            SetShown( bool );
 
- protected:
-   GEOM_Actor*    createActor( const TopoDS_Shape& );
-
- protected:
+  int             count() const;
+  int             chunkSize() const;
+  int             currentChunk() const;
+  bool            hasPrevious() const;
+  bool            hasNext() const;
+  void            previous();
+  void            next();
+  
+protected:
+  GEOM_Actor*    createActor( const TopoDS_Shape& );
+  void           showCurrentChunk();
+  void           clearActors();
+   
+protected:
+  TopAbs_ShapeEnum             myType;
+  QString                      myEntry;
   TopoDS_Shape                 myMainShape;
   SVTK_Selector*               mySelector;
   vtkRenderer*                 myRenderer;
   TopTools_IndexedMapOfShape   myMapOfShapes;
   QMap<int, GEOM_Actor*>       myMapOfActors;
+  QList<int>                   myIndices;
+  int                          myCurrentChunk;
+  int                          myChunkSize;
+  bool                         myIsShown;
 };