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.

71 lines
2.2 KiB
C++

/*=========================================================================
Program: Visualization Toolkit
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.
=========================================================================*/
#ifndef vtkAbstractInteractionDevice_h
#define vtkAbstractInteractionDevice_h
#include "vtkObject.h"
#include "vtkRenderingCoreModule.h" // For export macro
class vtkRenderWidget;
class vtkAbstractRenderDevice;
class VTKRENDERINGCORE_EXPORT vtkAbstractInteractionDevice : public vtkObject
{
public:
vtkTypeMacro(vtkAbstractInteractionDevice, vtkObject);
void PrintSelf(ostream& os, vtkIndent indent) override;
/**
* @brief Make a new device, this class is abstract and one of its derived
* forms will be returned, or NULL if no override has been provided.
* @return A derived interaction device, or NULL if no suitable override is set.
*/
static vtkAbstractInteractionDevice* New();
/**
* @brief Initialize the interaction device.
*/
virtual void Initialize() = 0;
/**
* @brief Start the event loop.
*/
virtual void Start() = 0;
/**
* @brief Process any pending events, this can be used to process OS level
* events without running a full event loop.
*/
virtual void ProcessEvents() = 0;
void SetRenderWidget(vtkRenderWidget* widget);
vtkRenderWidget* GetRenderWidget() { return this->RenderWidget; }
void SetRenderDevice(vtkAbstractRenderDevice* device);
vtkAbstractRenderDevice* GetRenderDevice() { return this->RenderDevice; }
protected:
vtkAbstractInteractionDevice();
~vtkAbstractInteractionDevice() override;
bool Initialized;
vtkRenderWidget* RenderWidget;
vtkAbstractRenderDevice* RenderDevice;
private:
vtkAbstractInteractionDevice(const vtkAbstractInteractionDevice&) = delete;
void operator=(const vtkAbstractInteractionDevice&) = delete;
};
#endif