dox/Rendering/vtkInteractorStyleUnicam.h
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00079
#ifndef __vtkInteractorStyleUnicam_h
00080
#define __vtkInteractorStyleUnicam_h
00081
00082
#include "vtkInteractorStyle.h"
00083
00084
class vtkCamera;
00085
class vtkWorldPointPicker;
00086
00087
00088
00089
00090
00091
00092
00093
00094
00095
00096 #define VTK_UNICAM_NONE 0
00097 #define VTK_UNICAM_BUTTON_LEFT 1
00098 #define VTK_UNICAM_BUTTON_MIDDLE 2
00099 #define VTK_UNICAM_BUTTON_RIGHT 3
00100
00101
00102 #define VTK_UNICAM_CAM_INT_ROT 0
00103 #define VTK_UNICAM_CAM_INT_CHOOSE 1
00104 #define VTK_UNICAM_CAM_INT_PAN 2
00105 #define VTK_UNICAM_CAM_INT_DOLLY 3
00106
00107 class VTK_RENDERING_EXPORT vtkInteractorStyleUnicam :
public vtkInteractorStyle
00108 {
00109
public:
00110
static vtkInteractorStyleUnicam *
New();
00111 vtkTypeRevisionMacro(vtkInteractorStyleUnicam,
vtkInteractorStyle);
00112
void PrintSelf(ostream& os,
vtkIndent indent);
00113
00114 void SetWorldUpVector(
double a[3]) {this->SetWorldUpVector(a[0],a[1],a[2]);}
00115
void SetWorldUpVector(
double x,
double y,
double z);
00116 vtkGetVectorMacro(WorldUpVector,
double, 3);
00117
00119
00120
virtual void OnMouseMove();
00121
virtual void OnLeftButtonDown();
00122
virtual void OnLeftButtonUp();
00123
virtual void OnLeftButtonMove();
00125
00128
virtual void OnTimer();
00129
00130
protected:
00131 vtkInteractorStyleUnicam();
00132
virtual ~vtkInteractorStyleUnicam();
00133
00134 vtkWorldPointPicker *InteractionPicker;
00135
00136 int ButtonDown;
00137 double DTime;
00138 double Dist;
00139 double StartPix[2];
00140 double LastPos[2];
00141 double LastPix[2];
00142 double DownPt[3];
00143 double Center [3];
00144
00145 double WorldUpVector[3];
00146
00147 vtkActor *FocusSphere;
00148 int IsDot;
00149 vtkRenderer *FocusSphereRenderer;
00150
00151 int state;
00152
00153
void ChooseXY(
int X,
int Y );
00154
void RotateXY(
int X,
int Y );
00155
void DollyXY(
int X,
int Y );
00156
void PanXY(
int X,
int Y );
00157
00158
00159
void MyTranslateCamera(
double v[3]);
00160
void MyRotateCamera(
double cx,
double cy,
double cz,
00161
double ax,
double ay,
double az,
00162
double angle);
00163
00164
00165
00166
00167
00168
00169
void GetRightVandUpV(
double *p,
vtkCamera *cam,
00170
double *rightV,
double *upV);
00171
00172
00173
void NormalizeMouseXY(
int X,
int Y,
double *NX,
double *NY);
00174
00175
00176
double WindowAspect();
00177
private:
00178 vtkInteractorStyleUnicam(
const vtkInteractorStyleUnicam&);
00179
void operator=(
const vtkInteractorStyleUnicam&);
00180 };
00181
00182
#endif // __vtkInteractorStyleUnicam_h
00183
00184
00185