Salome HOME
Merge from V6_main_20120808 08Aug12
[modules/gui.git] / src / SVTK / SVTK_View.h
index 7f3bf8a64fc857a9d06bed315854efb76eff45a1..0542c24f9fa231426ae3ef84847a6848d81c4656 100644 (file)
@@ -1,24 +1,25 @@
-//  Copyright (C) 2007-2008  CEA/DEN, EDF R&D, OPEN CASCADE
+// Copyright (C) 2007-2012  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
+// 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
 //
+
 #ifndef SVTK_VIEW_H
 #define SVTK_VIEW_H
 
 #endif
 
 #include "SVTK.h"
-#include "SALOME_InteractiveObject.hxx"
+
+#include <SALOME_InteractiveObject.hxx>
+#include <SALOME_ListIO.hxx>
 
 #include <QObject>
 
 class vtkActorCollection;
 class vtkRenderer;
+class vtkProperty;
 
 class SVTK_ViewWindow;
 class SVTK_Renderer;
@@ -125,8 +129,8 @@ public:
   //! To highlight a VTK presentation with the same #SALOME_InteractiveObject
   void
   highlight(const Handle(SALOME_InteractiveObject)& IObject, 
-           bool highlight, 
-           bool immediatly = true);
+            bool highlight, 
+            bool immediatly = true);
 
   //! To unhighlight all VTK presentations
   void
@@ -146,7 +150,7 @@ public:
 
   void
   rename(const Handle(SALOME_InteractiveObject)& IObject, 
-        const QString& newName);
+         const QString& newName);
   
   //----------------------------------------------------------------------------
   // Displaymode management
@@ -161,7 +165,7 @@ public:
   //! Switch representation wireframe/shading
   void
   SetDisplayMode(const Handle(SALOME_InteractiveObject)& IObject, 
-                int theMode);
+                 int theMode);
 
   //! Change all actors to wireframe
   void 
@@ -171,6 +175,10 @@ public:
   void
   ChangeRepresentationToSurface();
 
+  //! Change all actors to surface with edges
+  void
+  ChangeRepresentationToSurfaceWithEdges();
+
   //! Change to wireframe a list of vtkactor
   void
   ChangeRepresentationToWireframe(vtkActorCollection* theListofActors);
@@ -179,10 +187,14 @@ public:
   void
   ChangeRepresentationToSurface(vtkActorCollection* theListofActors);
 
+  //! Change to surface with edges a list of vtkactor
+  void
+  ChangeRepresentationToSurfaceWithEdges(vtkActorCollection* theListofActors);
+
   //! Change transparency
   void
   SetTransparency(const Handle(SALOME_InteractiveObject)& theIObject,
-                 float trans);
+                  float trans);
 
   //! Get current transparency
   float 
@@ -191,12 +203,21 @@ public:
   //! Change color
   void
   SetColor(const Handle(SALOME_InteractiveObject)& theIObject,
-          const QColor& theColor);
+           const QColor& theColor);
 
   //! Get current color
   QColor
   GetColor(const Handle(SALOME_InteractiveObject)& theIObject);
 
+  //! Change material
+  void
+  SetMaterial(const Handle(SALOME_InteractiveObject)& theIObject,
+             vtkProperty* thePropF);
+
+  //! Get current material
+  vtkProperty* 
+  GetMaterial(const Handle(SALOME_InteractiveObject)& theIObject);
+
   //----------------------------------------------------------------------------
   // Erase Display functions
   //! To erase all existing VTK presentations
@@ -214,15 +235,15 @@ public:
   //! To erase VTK presentation with defined #SALOME_InteractiveObject
   void
   Erase(const Handle(SALOME_InteractiveObject)& IObject, 
-       bool immediatly = true);
+        bool immediatly = true);
   void
   Remove(const Handle(SALOME_InteractiveObject)& IObject, 
-        bool immediatly = true);
+         bool immediatly = true);
 
   //! To display VTK presentation with defined #SALOME_InteractiveObject
   void
   Display(const Handle(SALOME_InteractiveObject)& IObject, 
-         bool immediatly = true);
+          bool immediatly = true);
 
   //! To display VTK presentation with defined #SALOME_InteractiveObject and erase all anothers
   void
@@ -231,38 +252,42 @@ public:
   //! To display the VTK presentation
   void
   Display(SALOME_Actor* SActor, 
-         bool immediatly = true);
+          bool immediatly = true);
 
   //! To erase the VTK presentation
   void
   Erase(SALOME_Actor* SActor, 
-       bool immediatly = true);
+        bool immediatly = true);
 
   //! To remove the VTK presentation
   void
   Remove(SALOME_Actor* SActor, 
-        bool updateViewer = true);
+         bool updateViewer = true);
+
+  //! Collect objects visible in viewer
+  void
+  GetVisible( SALOME_ListIO& theList );
 
   //----------------------------------------------------------------------------
   //! Redirect the request to #SVTK_Renderer::SetPreselectionProp
   void
   SetSelectionProp(const double& theRed = 1, 
-                  const double& theGreen = 1,
-                  const double& theBlue = 0, 
-                  const int& theWidth = 5);
+                   const double& theGreen = 1,
+                   const double& theBlue = 0, 
+                   const int& theWidth = 5);
 
   //! Redirect the request to #SVTK_Renderer::SetPreselectionProp
   void
   SetPreselectionProp(const double& theRed = 0, 
-                     const double& theGreen = 1,
-                     const double& theBlue = 1, 
-                     const int& theWidth = 5);
+                      const double& theGreen = 1,
+                      const double& theBlue = 1, 
+                      const int& theWidth = 5);
 
   //! Redirect the request to #SVTK_Renderer::SetPreselectionProp
   void
   SetSelectionTolerance(const double& theTolNodes = 0.025, 
-                       const double& theTolCell = 0.001,
-                       const double& theTolObjects = 0.025);
+                        const double& theTolCell = 0.001,
+                        const double& theTolObjects = 0.025);
 
  protected:  
   int myDisplayMode;