00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00021 #ifndef __vtkPVCameraKeyFrame_h
00022 #define __vtkPVCameraKeyFrame_h
00023
00024 #include "vtkPVProxyKeyFrame.h"
00025 class vtkKWApplication;
00026 class vtkKWLabel;
00027 class vtkKWPushButton;
00028 class vtkKWThumbWheel;
00029 class vtkSMDoubleVectorProperty;
00030 class vtkSMProxy;
00031
00032 class VTK_EXPORT vtkPVCameraKeyFrame : public vtkPVProxyKeyFrame
00033 {
00034 public:
00035 static vtkPVCameraKeyFrame* New();
00036 vtkTypeRevisionMacro(vtkPVCameraKeyFrame, vtkPVProxyKeyFrame);
00037 void PrintSelf(ostream& os, vtkIndent indent);
00038
00040 virtual void InitializeKeyValueUsingCurrentState();
00041
00045 virtual void InitializeKeyValueDomainUsingCurrentState() { };
00046
00048
00050 virtual void SetValueToMinimum() { }
00051 virtual void SetValueToMaximum() { }
00053
00055
00056 virtual void SetKeyValue(vtkSMProxy* cameraProxy);
00057 void SetPosition(double x, double y, double z);
00058 void SetFocalPoint(double x, double y, double z);
00059 void SetViewUp(double x, double y, double z);
00060 void SetViewAngle(double angle);
00062
00064
00065 void SetPositionWithTrace(double x, double y, double z);
00066 void SetFocalPointWithTrace(double x, double y, double z);
00067 void SetViewUpWithTrace(double x, double y, double z);
00068 void SetViewAngleWithTrace(double a);
00070
00071
00073
00074 void SetProperty(const char* name, double val);
00075 void SetProperty(const char* name, double x, double y, double z);
00076 void SetProperty(const char* name ,vtkSMDoubleVectorProperty* sdvp);
00078
00079
00081
00082 void CaptureCurrentCameraCallback();
00083 void PositionChangedCallback();
00084 void FocalPointChangedCallback();
00085 void ViewUpChangedCallback();
00086 void ViewAngleChangedCallback();
00088
00090 virtual void SaveState(ofstream* file);
00091
00092 protected:
00093 vtkPVCameraKeyFrame();
00094 ~vtkPVCameraKeyFrame();
00095
00097 void SetProperty(const char* name, const double* value);
00098
00100 virtual void ChildCreate(vtkKWApplication* app);
00101
00103 virtual void UpdateValuesFromProxy();
00104
00105 vtkKWLabel* PositionLabel;
00106 vtkKWLabel* FocalPointLabel;
00107 vtkKWLabel* ViewUpLabel;
00108 vtkKWLabel* ViewAngleLabel;
00109 vtkKWPushButton* CaptureCurrentCamera;
00110
00111 vtkKWThumbWheel* PositionWheels[3];
00112 vtkKWThumbWheel* FocalPointWheels[3];
00113 vtkKWThumbWheel* ViewUpWheels[3];
00114 vtkKWThumbWheel* ViewAngleWheel;
00115
00116 private:
00117 vtkPVCameraKeyFrame(const vtkPVCameraKeyFrame&);
00118 void operator=(const vtkPVCameraKeyFrame&);
00119 };
00120
00121
00122 #endif
00123