-// 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;
//! 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
void
rename(const Handle(SALOME_InteractiveObject)& IObject,
- const QString& newName);
+ const QString& newName);
//----------------------------------------------------------------------------
// Displaymode management
//! Switch representation wireframe/shading
void
SetDisplayMode(const Handle(SALOME_InteractiveObject)& IObject,
- int theMode);
+ int theMode);
//! Change all actors to wireframe
void
void
ChangeRepresentationToSurface();
+ //! Change all actors to surface with edges
+ void
+ ChangeRepresentationToSurfaceWithEdges();
+
//! Change to wireframe a list of vtkactor
void
ChangeRepresentationToWireframe(vtkActorCollection* theListofActors);
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
//! 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
//! 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
//! 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;