1 // Copyright (C) 2007-2015 CEA/DEN, EDF R&D, OPEN CASCADE
3 // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
4 // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
6 // This library is free software; you can redistribute it and/or
7 // modify it under the terms of the GNU Lesser General Public
8 // License as published by the Free Software Foundation; either
9 // version 2.1 of the License, or (at your option) any later version.
11 // This library is distributed in the hope that it will be useful,
12 // but WITHOUT ANY WARRANTY; without even the implied warranty of
13 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 // Lesser General Public License for more details.
16 // You should have received a copy of the GNU Lesser General Public
17 // License along with this library; if not, write to the Free Software
18 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
20 // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
23 // SALOME VTKViewer : build VTK viewer into Salome desktop
27 #ifndef SVTK_GenericRenderWindowInteractor_h
28 #define SVTK_GenericRenderWindowInteractor_h
33 #include <vtkGenericRenderWindowInteractor.h>
34 #include <vtkSmartPointer.h>
40 //class SVTK_Renderer;
43 #pragma warning ( disable:4251 )
47 \class QVTK_GenericRenderWindowInteractor
48 Introduction of the class is intended to implement Qt based #CreateTimer and #DestroyTimer functionality.
49 The class intendes to implement platform indepenedant subclass of vtkRenderWindowInteractor.
50 This is done by usage of Qt library.
52 The Signal/Slot mechanism used by Qt requires that QObject
53 appear as the first class when using multiple inheritance.
54 Hence the order of the two classes QObject and vtkRenderWindowInteractor
55 matters here. So, be careful, not to change the sequence of the inheritance by accident.
57 class SVTK_EXPORT QVTK_GenericRenderWindowInteractor:
59 public vtkGenericRenderWindowInteractor
64 static QVTK_GenericRenderWindowInteractor* New();
65 vtkTypeMacro(QVTK_GenericRenderWindowInteractor,vtkGenericRenderWindowInteractor);
67 //! Starts the QTimer instance on defined microseconds
72 //! Stops the QTimer instance
78 //! The slot connects to QTimer::timeout signal to invoke vtkCommand::TimerEvent
83 QVTK_GenericRenderWindowInteractor(); //!< Instatiate QTimer
84 ~QVTK_GenericRenderWindowInteractor(); //!< Destroy the instance of QTimer
86 QTimer* myTimer; //!< Qt timer device
91 \class SVTK_GenericRenderWindowInteractor
92 This class introduce SALOME specific to the base one
93 In this class new members is added (#mySelector and #myRenderWidget).
94 They are used for initialization of #SVTK_InteractorStyle by redefinition of
95 #SVTK_InteractorStyle::SetInteractor method
97 class SVTK_EXPORT SVTK_GenericRenderWindowInteractor: public QVTK_GenericRenderWindowInteractor
100 static SVTK_GenericRenderWindowInteractor* New();
101 vtkTypeMacro(SVTK_GenericRenderWindowInteractor,QVTK_GenericRenderWindowInteractor);
103 //! To get access to SVTK_Selector
107 //! To initialize mySelector field
109 SetSelector(SVTK_Selector* theSelector);
111 //! To get access to QWidget, where vtkRenderWindow maps to.
115 //! To initialize myRenderWidget field.
117 SetRenderWidget(QWidget* theRenderWidget);
120 SVTK_GenericRenderWindowInteractor();
121 ~SVTK_GenericRenderWindowInteractor();
123 SVTK_Selector* mySelector; //!< Keeps a pointer to SVTK_Selector
124 QWidget* myRenderWidget; //!< Keeps a pointer to QWidget, where vtkRenderWindow maps to.
128 #pragma warning ( default:4251 )