00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00033 #ifndef __vtkKWSimpleAnimationWidget_h
00034 #define __vtkKWSimpleAnimationWidget_h
00035
00036 #include "vtkKWCompositeWidget.h"
00037
00038 class vtkKWLabelWithLabel;
00039 class vtkKWPushButtonSet;
00040 class vtkKWScaleWithEntrySet;
00041 class vtkKWRenderWidget;
00042
00043 class KWWIDGETS_EXPORT vtkKWSimpleAnimationWidget : public vtkKWCompositeWidget
00044 {
00045 public:
00046 static vtkKWSimpleAnimationWidget* New();
00047 vtkTypeRevisionMacro(vtkKWSimpleAnimationWidget, vtkKWCompositeWidget);
00048 void PrintSelf(ostream& os, vtkIndent indent);
00049
00051
00052 vtkGetObjectMacro(RenderWidget, vtkKWRenderWidget);
00053 virtual void SetRenderWidget(vtkKWRenderWidget*);
00055
00057 virtual void Create(vtkKWApplication *app);
00058
00060
00065 enum
00066 {
00067 AnimationTypeCamera = 0,
00068 AnimationTypeSlice
00069 };
00070
00071 virtual void SetAnimationType(int);
00072 vtkGetMacro(AnimationType, int);
00073 virtual void SetAnimationTypeToCamera()
00074 { this->SetAnimationType(
00075 vtkKWSimpleAnimationWidget::AnimationTypeCamera); };
00076 virtual void SetAnimationTypeToSlice()
00077 { this->SetAnimationType(
00078 vtkKWSimpleAnimationWidget::AnimationTypeSlice); };
00080
00082
00086 virtual void SetSliceSetCommand(vtkObject *object, const char *method);
00087 virtual void InvokeSliceSetCommand(int);
00089
00091
00096 virtual void SetSliceGetCommand(vtkObject *object, const char *method);
00097 virtual int InvokeSliceGetCommand();
00099
00101
00105 virtual void SetSliceGetMinAndMaxCommands(
00106 vtkObject *object, const char *get_min_method, const char *get_max_method);
00107 virtual int InvokeSliceGetMinCommand();
00108 virtual int InvokeSliceGetMaxCommand();
00110
00112
00114 virtual void SetSlicePostAnimationCommand(
00115 vtkObject *object, const char *method);
00116 virtual void InvokeSlicePostAnimationCommand();
00118
00120
00122 virtual void SetCameraPostAnimationCommand(
00123 vtkObject *object, const char *method);
00124 virtual void InvokeCameraPostAnimationCommand();
00126
00128 virtual void Update();
00129
00131
00132 virtual void PreviewAnimationCallback();
00133 virtual void CreateAnimationCallback();
00134 virtual void CancelAnimationCallback();
00136
00143 virtual void UpdateEnableState();
00144
00145 protected:
00146 vtkKWSimpleAnimationWidget();
00147 ~vtkKWSimpleAnimationWidget();
00148
00149 vtkKWRenderWidget *RenderWidget;
00150
00151
00152
00153 vtkKWScaleWithEntrySet *Parameters;
00154 vtkKWPushButtonSet *AnimationButtonSet;
00155 vtkKWLabelWithLabel *HelpLabel;
00156
00157 int AnimationType;
00158
00160
00161 enum
00162 {
00163 AnimationStopped = 0,
00164 AnimationPreviewing,
00165 AnimationCreating,
00166 AnimationCancelled
00167 };
00168
00169 int AnimationStatus;
00171
00172 char *CameraPostAnimationCommand;
00173 char *SlicePostAnimationCommand;
00174 char *SliceGetCommand;
00175 char *SliceGetMinCommand;
00176 char *SliceGetMaxCommand;
00177 char *SliceSetCommand;
00178
00180
00181 virtual void PreviewCameraAnimation();
00182 virtual void CreateCameraAnimation(
00183 const char *file_root, const char *ext, int width, int height);
00184 virtual void PerformCameraAnimation(
00185 const char *file_root, const char *ext, int width, int height);
00187
00189
00190 virtual void PreviewSliceAnimation();
00191 virtual void CreateSliceAnimation(
00192 const char *file_root, const char *ext, int width, int height);
00193 virtual void PerformSliceAnimation(
00194 const char *file_root, const char *ext, int width, int height);
00196
00198
00199 virtual void DisableButtonsButCancel();
00200 virtual void EnableButtonsButCancel();
00202
00203 private:
00204 vtkKWSimpleAnimationWidget(const vtkKWSimpleAnimationWidget&);
00205 void operator=(const vtkKWSimpleAnimationWidget&);
00206 };
00207
00208 #endif
00209