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.
97 lines
3.0 KiB
C++
97 lines
3.0 KiB
C++
/*=========================================================================
|
|
|
|
Program: Visualization Toolkit
|
|
Module: vtkTDxInteractorStyle.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 vtkTDxInteractorStyle
|
|
* @brief provide 3DConnexion device event-driven interface to the rendering window
|
|
*
|
|
*
|
|
* vtkTDxInteractorStyle is an abstract class defining an event-driven
|
|
* interface to support 3DConnexion device events send by
|
|
* vtkRenderWindowInteractor.
|
|
* vtkRenderWindowInteractor forwards events in a platform independent form to
|
|
* vtkInteractorStyle which can then delegate some processing to
|
|
* vtkTDxInteractorStyle.
|
|
*
|
|
* @sa
|
|
* vtkInteractorStyle vtkRenderWindowInteractor
|
|
* vtkTDxInteractorStyleCamera
|
|
*/
|
|
|
|
#ifndef vtkTDxInteractorStyle_h
|
|
#define vtkTDxInteractorStyle_h
|
|
|
|
#include "vtkObject.h"
|
|
#include "vtkRenderingCoreModule.h" // For export macro
|
|
|
|
class vtkTDxMotionEventInfo;
|
|
class vtkRenderer;
|
|
class vtkTDxInteractorStyleSettings;
|
|
|
|
class VTKRENDERINGCORE_EXPORT vtkTDxInteractorStyle : public vtkObject
|
|
{
|
|
public:
|
|
vtkTypeMacro(vtkTDxInteractorStyle, vtkObject);
|
|
void PrintSelf(ostream& os, vtkIndent indent) override;
|
|
|
|
/**
|
|
* Action on motion event. Default implementation is empty.
|
|
* \pre: motionInfo_exist: motionInfo!=0
|
|
*/
|
|
virtual void OnMotionEvent(vtkTDxMotionEventInfo* motionInfo);
|
|
|
|
/**
|
|
* Action on button pressed event. Default implementation is empty.
|
|
*/
|
|
virtual void OnButtonPressedEvent(int button);
|
|
|
|
/**
|
|
* Action on button released event. Default implementation is empty.
|
|
*/
|
|
virtual void OnButtonReleasedEvent(int button);
|
|
|
|
/**
|
|
* Dispatch the events TDxMotionEvent, TDxButtonPressEvent and
|
|
* TDxButtonReleaseEvent to OnMotionEvent(), OnButtonPressedEvent() and
|
|
* OnButtonReleasedEvent() respectively.
|
|
* It is called by the vtkInteractorStyle.
|
|
* This method is virtual for convenient but you should really override
|
|
* the On*Event() methods only.
|
|
* \pre renderer can be null.
|
|
*/
|
|
virtual void ProcessEvent(vtkRenderer* renderer, unsigned long event, void* calldata);
|
|
|
|
//@{
|
|
/**
|
|
* 3Dconnexion device settings. (sensitivity, individual axis filters).
|
|
* Initial object is not null.
|
|
*/
|
|
vtkGetObjectMacro(Settings, vtkTDxInteractorStyleSettings);
|
|
virtual void SetSettings(vtkTDxInteractorStyleSettings* settings);
|
|
//@}
|
|
|
|
protected:
|
|
vtkTDxInteractorStyle();
|
|
~vtkTDxInteractorStyle() override;
|
|
|
|
vtkTDxInteractorStyleSettings* Settings;
|
|
|
|
vtkRenderer* Renderer;
|
|
|
|
private:
|
|
vtkTDxInteractorStyle(const vtkTDxInteractorStyle&) = delete;
|
|
void operator=(const vtkTDxInteractorStyle&) = delete;
|
|
};
|
|
#endif
|