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
00046 public:
00047 static vtkKWSimpleAnimationWidget* New();
00048 vtkTypeRevisionMacro(vtkKWSimpleAnimationWidget, vtkKWCompositeWidget);
00049 void PrintSelf(ostream& os, vtkIndent indent);
00050
00052
00054 vtkGetObjectMacro(RenderWidget, vtkKWRenderWidget);
00055 virtual void SetRenderWidget(vtkKWRenderWidget*);
00057
00059
00060 virtual void SetMaximumNumberOfFrames(int max);
00061 virtual void SetNumberOfFrames(int val);
00063
00065
00070 enum
00071 {
00072 AnimationTypeCamera = 0,
00073 AnimationTypeSlice
00074 };
00075
00076 virtual void SetAnimationType(int);
00077 vtkGetMacro(AnimationType, int);
00078 virtual void SetAnimationTypeToCamera();
00079 virtual void SetAnimationTypeToSlice();
00081
00083
00085 virtual void SetSliceRange(int min, int max);
00086 virtual void SetSliceRange(const int range[2])
00087 { this->SetSliceRange(range[0], range[1]); };
00089
00098 virtual void SetSliceSetCommand(vtkObject *object, const char *method);
00099
00109 virtual void SetSliceGetCommand(vtkObject *object, const char *method);
00110
00112
00118 virtual void SetSlicePostAnimationCommand(
00119 vtkObject *object, const char *method);
00121
00123
00124 virtual void SetXStart(double val);
00125 virtual void SetXRotation(double val);
00127
00129
00130 virtual void SetYStart(double val);
00131 virtual void SetYRotation(double val);
00133
00135
00136 virtual void SetZStart(double val);
00137 virtual void SetZRotation(double val);
00139
00141
00142 virtual void SetZoomStart(double val);
00143 virtual void SetZoomFactor(double val);
00145
00147
00153 virtual void SetCameraPostAnimationCommand(
00154 vtkObject *object, const char *method);
00156
00158
00159 virtual void PreviewCameraAnimation();
00160 virtual void CreateCameraAnimation(
00161 const char *filename, int width, int height, int fps, const char *fourcc);
00163
00165
00166 virtual void PreviewSliceAnimation();
00167 virtual void CreateSliceAnimation(
00168 const char *filename, int width, int height, int fps, const char *fourcc);
00170
00172 virtual void Update();
00173
00180 virtual void UpdateEnableState();
00181
00183
00184 virtual void PreviewAnimationCallback();
00185 virtual void CreateAnimationCallback();
00186 virtual void CancelAnimationCallback();
00188
00189
00190
00191 protected:
00192 vtkKWSimpleAnimationWidget();
00193 ~vtkKWSimpleAnimationWidget();
00194
00196 virtual void CreateWidget();
00197
00198 vtkKWRenderWidget *RenderWidget;
00199
00200
00201
00202 vtkKWScaleWithEntrySet *Parameters;
00203 vtkKWPushButtonSet *AnimationButtonSet;
00204 vtkKWLabelWithLabel *HelpLabel;
00205
00206 int AnimationType;
00207
00209
00210 enum
00211 {
00212 AnimationDone = 0,
00213 AnimationPreviewing = 1,
00214 AnimationCreating = 2,
00215 AnimationCanceled = 4,
00216 AnimationFailed = 8
00217 };
00218
00219 int AnimationStatus;
00221
00222 char *CameraPostAnimationCommand;
00223 char *SlicePostAnimationCommand;
00224 char *SliceGetCommand;
00225 char *SliceSetCommand;
00226
00227 virtual void InvokeSliceSetCommand(int);
00228 virtual int InvokeSliceGetCommand();
00229 virtual void InvokeSlicePostAnimationCommand();
00230 virtual void InvokeCameraPostAnimationCommand();
00231
00233 virtual void FixAnimationSize(const char *filename, int *width, int *height);
00234
00236
00237 virtual void DisableButtonsButCancel();
00238 virtual void EnableButtonsButCancel();
00240
00241
00242
00243 private:
00244 vtkKWSimpleAnimationWidget(const vtkKWSimpleAnimationWidget&);
00245 void operator=(const vtkKWSimpleAnimationWidget&);
00246 };
00247
00248 #endif
00249
00250