X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FSVTK%2FSVTK_Renderer.h;h=ab5e4318b9132aa5f094afa302a9ed0c3478d66d;hb=7e5424a12a7f6894a5b9a029fd8251f2cb5780b8;hp=2d53e263f22d040bde73c0d64c47ffec7e58f28a;hpb=1c889394b028b786898a995d38c07c8f3d564837;p=modules%2Fgui.git diff --git a/src/SVTK/SVTK_Renderer.h b/src/SVTK/SVTK_Renderer.h index 2d53e263f..ab5e4318b 100644 --- a/src/SVTK/SVTK_Renderer.h +++ b/src/SVTK/SVTK_Renderer.h @@ -1,30 +1,29 @@ -// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2016 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, or (at your option) any later version. // -// 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 // + // SALOME VTKViewer : build VTK viewer into Salome desktop // File : // Author : -// Module : SALOME -// $Header$ -// + #ifndef SVTK_Renderer_h #define SVTK_Renderer_h @@ -43,7 +42,7 @@ class vtkPointPicker; class vtkCellPicker; class vtkProperty; -class SVTK_RectPicker; +class SVTK_AreaPicker; class VTKViewer_Trihedron; class VTKViewer_Transform; @@ -77,18 +76,18 @@ class SVTK_EXPORT SVTK_Renderer : public vtkObject virtual void Initialize(vtkRenderWindowInteractor* theInteractor, - SVTK_Selector* theSelector); + SVTK_Selector* theSelector); //---------------------------------------------------------------------------- //! Publishes pointed actor into the renderer virtual void - AddActor(VTKViewer_Actor* theActor); + AddActor(VTKViewer_Actor* theActor, bool theIsAdjustActors = true); //! Removes pointed actor from the renderer virtual void - RemoveActor(VTKViewer_Actor* theActor); + RemoveActor(VTKViewer_Actor* theActor, bool theIsAdjustActors = true); //! Get special container that keeps scaling of the scene VTKViewer_Transform* @@ -107,22 +106,22 @@ class SVTK_EXPORT SVTK_Renderer : public vtkObject //! Applies color and size (PointSize and LineWidth) of primitives in selection mode 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); //! Applies color and size (PointSize and LineWidth) of primitives in preselection mode 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); //! Setup requested tolerance for the picking 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); //---------------------------------------------------------------------------- //! Adjust all intenal actors (trihedron and graduated rules) to the scene @@ -131,10 +130,10 @@ class SVTK_EXPORT SVTK_Renderer : public vtkObject //! Set size of the trihedron in percents from bounding box of the scene void - SetTrihedronSize(vtkFloatingPointType theSize, const bool theRelative = true); + SetTrihedronSize(double theSize, const bool theRelative = true); //! Get size of the trihedron in percents from bounding box of the scene - vtkFloatingPointType + double GetTrihedronSize() const; //! Shows if the size of the trihedron is relative @@ -154,6 +153,11 @@ class SVTK_EXPORT SVTK_Renderer : public vtkObject void OnViewTrihedron(); + //! Set Toggle trihedron visibility + + void + SetTrihedronVisibility( const bool ); + //! Adjust size of the trihedron to the bounding box of the scene void OnAdjustTrihedron(); @@ -178,7 +182,11 @@ class SVTK_EXPORT SVTK_Renderer : public vtkObject //---------------------------------------------------------------------------- //! Fit all presentation in the scene into the window void OnFitAll(); - + + //---------------------------------------------------------------------------- + //! Fit all selected presentation in the scene + void onFitSelection(); + //! Set camera into predefined state void OnResetView(); @@ -203,7 +211,13 @@ class SVTK_EXPORT SVTK_Renderer : public vtkObject //! To reset direction of the camera to left view void OnLeftView(); - protected: + //! To rotate view 90 degrees clockwise + void onClockWiseView(); + + //! To rotate view 90 degrees counterclockwise + void onAntiClockWiseView(); + +protected: SVTK_Renderer(); ~SVTK_Renderer(); @@ -213,7 +227,7 @@ class SVTK_EXPORT SVTK_Renderer : public vtkObject //---------------------------------------------------------------------------- // Priority at which events are processed - vtkFloatingPointType myPriority; + double myPriority; // Used to process events vtkSmartPointer myEventCallbackCommand; @@ -237,8 +251,8 @@ class SVTK_EXPORT SVTK_Renderer : public vtkObject vtkSmartPointer myPointPicker; vtkSmartPointer myCellPicker; - vtkSmartPointer myPointRectPicker; - vtkSmartPointer myCellRectPicker; + vtkSmartPointer myPointAreaPicker; + vtkSmartPointer myCellAreaPicker; vtkSmartPointer myPreHighlightProperty; vtkSmartPointer myHighlightProperty; @@ -246,9 +260,9 @@ class SVTK_EXPORT SVTK_Renderer : public vtkObject //---------------------------------------------------------------------------- vtkSmartPointer myCubeAxes; vtkSmartPointer myTrihedron; - vtkFloatingPointType myTrihedronSize; + double myTrihedronSize; bool myIsTrihedronRelative; - vtkFloatingPointType myBndBox[6]; + double myBndBox[6]; }; #ifdef WIN32