You can not 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.3 KiB
97 lines
3.3 KiB
/*=========================================================================
|
|
|
|
Program: Visualization Toolkit
|
|
Module: $RCSfile: vtkInteractorStyleSwitch.h,v $
|
|
|
|
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.
|
|
|
|
=========================================================================*/
|
|
// .NAME vtkInteractorStyleSwitch - class to swap between interactory styles
|
|
// .SECTION Description
|
|
// The class vtkInteractorStyleSwitch allows handles interactively switching
|
|
// between four interactor styles -- joystick actor, joystick camera,
|
|
// trackball actor, and trackball camera. Type 'j' or 't' to select
|
|
// joystick or trackball, and type 'c' or 'a' to select camera or actor.
|
|
// The default interactor style is joystick camera.
|
|
// .SECTION See Also
|
|
// vtkInteractorStyleJoystickActor vtkInteractorStyleJoystickCamera
|
|
// vtkInteractorStyleTrackballActor vtkInteractorStyleTrackballCamera
|
|
|
|
#ifndef __vtkInteractorStyleSwitch_h
|
|
#define __vtkInteractorStyleSwitch_h
|
|
|
|
#include "vtkInteractorStyle.h"
|
|
|
|
#define VTKIS_JOYSTICK 0
|
|
#define VTKIS_TRACKBALL 1
|
|
|
|
#define VTKIS_CAMERA 0
|
|
#define VTKIS_ACTOR 1
|
|
|
|
class vtkInteractorStyleJoystickActor;
|
|
class vtkInteractorStyleJoystickCamera;
|
|
class vtkInteractorStyleTrackballActor;
|
|
class vtkInteractorStyleTrackballCamera;
|
|
|
|
class VTK_RENDERING_EXPORT vtkInteractorStyleSwitch : public vtkInteractorStyle
|
|
{
|
|
public:
|
|
static vtkInteractorStyleSwitch *New();
|
|
vtkTypeRevisionMacro(vtkInteractorStyleSwitch, vtkInteractorStyle);
|
|
void PrintSelf(ostream& os, vtkIndent indent);
|
|
|
|
// Description:
|
|
// The sub styles need the interactor too.
|
|
void SetInteractor(vtkRenderWindowInteractor *iren);
|
|
|
|
// Description:
|
|
// We must override this method in order to pass the setting down to
|
|
// the underlying styles
|
|
void SetAutoAdjustCameraClippingRange( int value );
|
|
|
|
// Description:
|
|
// Set/Get current style
|
|
vtkGetObjectMacro(CurrentStyle, vtkInteractorStyle);
|
|
void SetCurrentStyleToJoystickActor();
|
|
void SetCurrentStyleToJoystickCamera();
|
|
void SetCurrentStyleToTrackballActor();
|
|
void SetCurrentStyleToTrackballCamera();
|
|
|
|
// Description:
|
|
// Only care about the char event, which is used to switch between
|
|
// different styles.
|
|
virtual void OnChar();
|
|
|
|
// Description:
|
|
// Overridden from vtkInteractorObserver because the interactor styles
|
|
// used by this class must also be updated.
|
|
virtual void SetDefaultRenderer(vtkRenderer*);
|
|
virtual void SetCurrentRenderer(vtkRenderer*);
|
|
|
|
protected:
|
|
vtkInteractorStyleSwitch();
|
|
~vtkInteractorStyleSwitch();
|
|
|
|
void SetCurrentStyle();
|
|
|
|
vtkInteractorStyleJoystickActor *JoystickActor;
|
|
vtkInteractorStyleJoystickCamera *JoystickCamera;
|
|
vtkInteractorStyleTrackballActor *TrackballActor;
|
|
vtkInteractorStyleTrackballCamera *TrackballCamera;
|
|
vtkInteractorStyle* CurrentStyle;
|
|
|
|
int JoystickOrTrackball;
|
|
int CameraOrActor;
|
|
|
|
private:
|
|
vtkInteractorStyleSwitch(const vtkInteractorStyleSwitch&); // Not implemented.
|
|
void operator=(const vtkInteractorStyleSwitch&); // Not implemented.
|
|
};
|
|
|
|
#endif
|
|
|