You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

85 lines
3.1 KiB
C

/*=========================================================================
Program: Visualization Toolkit
Module: vtkGenericRenderWindowInteractor.h
Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
All rights reserved.
See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
This software is distributed WITHOUT ANY WARRANTY; without even
the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
PURPOSE. See the above copyright notice for more information.
=========================================================================*/
/**
* @class vtkGenericRenderWindowInteractor
* @brief platform-independent programmable render window interactor.
*
*
* vtkGenericRenderWindowInteractor provides a way to translate native
* mouse and keyboard events into vtk Events. By calling the methods on
* this class, vtk events will be invoked. This will allow scripting
* languages to use vtkInteractorStyles and 3D widgets.
*/
#ifndef vtkGenericRenderWindowInteractor_h
#define vtkGenericRenderWindowInteractor_h
#include "vtkRenderWindowInteractor.h"
#include "vtkRenderingUIModule.h" // For export macro
class VTKRENDERINGUI_EXPORT vtkGenericRenderWindowInteractor : public vtkRenderWindowInteractor
{
public:
static vtkGenericRenderWindowInteractor* New();
vtkTypeMacro(vtkGenericRenderWindowInteractor, vtkRenderWindowInteractor);
void PrintSelf(ostream& os, vtkIndent indent) override;
/**
* Fire TimerEvent. SetEventInformation should be called just prior
* to calling any of these methods. These methods will Invoke the
* corresponding vtk event.
*/
virtual void TimerEvent();
//@{
/**
* Flag that indicates whether the TimerEvent method should call ResetTimer
* to simulate repeating timers with an endless stream of one shot timers.
* By default this flag is on and all repeating timers are implemented as a
* stream of sequential one shot timers. If the observer of
* CreateTimerEvent actually creates a "natively repeating" timer, setting
* this flag to off will prevent (perhaps many many) unnecessary calls to
* ResetTimer. Having the flag on by default means that "natively one
* shot" timers can be either one shot or repeating timers with no
* additional work. Also, "natively repeating" timers still work with the
* default setting, but with potentially many create and destroy calls.
*/
vtkSetMacro(TimerEventResetsTimer, vtkTypeBool);
vtkGetMacro(TimerEventResetsTimer, vtkTypeBool);
vtkBooleanMacro(TimerEventResetsTimer, vtkTypeBool);
//@}
protected:
vtkGenericRenderWindowInteractor();
~vtkGenericRenderWindowInteractor() override;
//@{
/**
* Generic internal timer methods. See the superclass for detailed
* documentation.
*/
int InternalCreateTimer(int timerId, int timerType, unsigned long duration) override;
int InternalDestroyTimer(int platformTimerId) override;
//@}
vtkTypeBool TimerEventResetsTimer;
private:
vtkGenericRenderWindowInteractor(const vtkGenericRenderWindowInteractor&) = delete;
void operator=(const vtkGenericRenderWindowInteractor&) = delete;
};
#endif