X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FSVTK%2FSVTK_Renderer.h;h=91421aa4ae0bf6a43c06ede1b4c3bcc8eb94f848;hb=8d54f199bd9ead3c2f0c704322975198e65264d6;hp=5f486543ca9c3e9f5f1a7fe1be48cb531619cb73;hpb=9f1a66957ba9a2308f8fdc3f9397140af9df5fd0;p=modules%2Fgui.git diff --git a/src/SVTK/SVTK_Renderer.h b/src/SVTK/SVTK_Renderer.h index 5f486543c..91421aa4a 100644 --- a/src/SVTK/SVTK_Renderer.h +++ b/src/SVTK/SVTK_Renderer.h @@ -1,35 +1,34 @@ -// SALOME VTKViewer : build VTK viewer into Salome desktop +// Copyright (C) 2007-2014 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, or (at your option) any later version. // -// Copyright (C) 2003 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 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 -// -// See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org +// 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 // +// 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 #include "SVTK.h" +#include "VTKViewer.h" #include #include @@ -43,7 +42,7 @@ class vtkPointPicker; class vtkCellPicker; class vtkProperty; -class SVTK_RectPicker; +class SVTK_AreaPicker; class VTKViewer_Trihedron; class VTKViewer_Transform; @@ -51,14 +50,17 @@ class SVTK_CubeAxesActor2D; class VTKViewer_Actor; class SVTK_Selector; +#ifdef WIN32 +#pragma warning ( disable:4251 ) +#endif -//! The class is a container for #vtkRenderer instance. -/*! +/*! + \class SVTK_Renderer + The class is a container for #vtkRenderer instance. Main goal of the class is to apply common behaviour to all #SALOME_Actor, like selection and preselection colors. Also, the class is responsible for management of internal actors like trihedron an so on. */ -//============================================================================ class SVTK_EXPORT SVTK_Renderer : public vtkObject { public: @@ -74,29 +76,29 @@ class SVTK_EXPORT SVTK_Renderer : public vtkObject virtual void Initialize(vtkRenderWindowInteractor* theInteractor, - SVTK_Selector* theSelector); + SVTK_Selector* theSelector); //---------------------------------------------------------------------------- - //! This method publishes pointed actor into the renderer + //! Publishes pointed actor into the renderer virtual void - AddActor(VTKViewer_Actor* theActor); + AddActor(VTKViewer_Actor* theActor, bool theIsAdjustActors = true); - //! This method removes pointed actor from the renderer + //! 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* GetTransform(); - //! This method allow to apply a scale on the whole scene + //! Allows to apply a scale on the whole scene virtual void SetScale( double theScale[3] ); - //! This method allow to get a scale that is applied on the whole scene + //! Allows to get a scale that is applied on the whole scene void GetScale( double theScale[3] ); @@ -104,21 +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 tollerance for the picking + //! Setup requested tolerance for the picking void SetSelectionTolerance(const double& theTolNodes = 0.025, - const double& theTolCell = 0.001); + const double& theTolCell = 0.001, + const double& theTolObjects = 0.025); //---------------------------------------------------------------------------- //! Adjust all intenal actors (trihedron and graduated rules) to the scene @@ -127,12 +130,16 @@ class SVTK_EXPORT SVTK_Renderer : public vtkObject //! Set size of the trihedron in percents from bounding box of the scene void - SetTrihedronSize(int theSize); + SetTrihedronSize(double theSize, const bool theRelative = true); //! Get size of the trihedron in percents from bounding box of the scene - int + double GetTrihedronSize() const; + //! Shows if the size of the trihedron is relative + bool + IsTrihedronRelative() const; + //---------------------------------------------------------------------------- //! Get trihedron control VTKViewer_Trihedron* @@ -195,7 +202,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(); @@ -205,7 +218,7 @@ class SVTK_EXPORT SVTK_Renderer : public vtkObject //---------------------------------------------------------------------------- // Priority at which events are processed - float myPriority; + double myPriority; // Used to process events vtkSmartPointer myEventCallbackCommand; @@ -229,8 +242,8 @@ class SVTK_EXPORT SVTK_Renderer : public vtkObject vtkSmartPointer myPointPicker; vtkSmartPointer myCellPicker; - vtkSmartPointer myPointRectPicker; - vtkSmartPointer myCellRectPicker; + vtkSmartPointer myPointAreaPicker; + vtkSmartPointer myCellAreaPicker; vtkSmartPointer myPreHighlightProperty; vtkSmartPointer myHighlightProperty; @@ -238,8 +251,13 @@ class SVTK_EXPORT SVTK_Renderer : public vtkObject //---------------------------------------------------------------------------- vtkSmartPointer myCubeAxes; vtkSmartPointer myTrihedron; - int myTrihedronSize; - float myBndBox[6]; + double myTrihedronSize; + bool myIsTrihedronRelative; + double myBndBox[6]; }; +#ifdef WIN32 +#pragma warning ( default:4251 ) +#endif + #endif