Main Page | Class Hierarchy | Alphabetical List | Class List | File List | Class Members | File Members | Related Pages

GUI/Client/vtkPVAnimationScene.h

Go to the documentation of this file.
00001 /*=========================================================================
00002 
00003   Program:   ParaView
00004   Module:    $RCSfile: vtkPVAnimationScene.h,v $
00005 
00006   Copyright (c) Kitware, Inc.
00007   All rights reserved.
00008   See Copyright.txt or http://www.paraview.org/HTML/Copyright.html for details.
00009 
00010      This software is distributed WITHOUT ANY WARRANTY; without even
00011      the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
00012      PURPOSE.  See the above copyright notice for more information.
00013 
00014 =========================================================================*/
00020 #ifndef __vtkPVAnimationScene_h
00021 #define __vtkPVAnimationScene_h
00022 
00023 #include "vtkPVTracedWidget.h"
00024 
00025 class vtkPVAnimationSceneObserver;
00026 class vtkKWFrame;
00027 class vtkKWPushButton;
00028 class vtkKWCheckButton;
00029 class vtkKWScaleWithEntry;
00030 class vtkKWMenuButton;
00031 class vtkKWThumbWheel;
00032 class vtkKWLabel;
00033 class vtkSMAnimationSceneProxy;
00034 class vtkPVAnimationCue;
00035 class vtkPVRenderView;
00036 class vtkPVAnimationManager;
00037 class vtkPVWindow;
00038 class vtkPVVCRControl;
00039 
00040 class VTK_EXPORT vtkPVAnimationScene : public vtkPVTracedWidget
00041 {
00042 public:
00043   static vtkPVAnimationScene* New();
00044   vtkTypeRevisionMacro(vtkPVAnimationScene, vtkPVTracedWidget);
00045   void PrintSelf(ostream& os, vtkIndent indent);
00046 
00048   virtual void Create(vtkKWApplication* app);
00049 
00051 
00052   void SetPlayModeToSequence();
00053   void SetPlayModeToRealTime();
00054   void DurationChangedCallback();
00055   void DurationChangedKeyReleaseCallback();
00056   void LoopCheckButtonCallback();
00057   void ToolbarLoopCheckButtonCallback();
00058   void TimeScaleCallback();
00059   void ToolbarRecordCheckButtonCallback();
00060   void RecordCheckCallback();
00061   void SaveAnimationCallback();
00063 
00065   int  IsInPlay();
00066   void Play();
00067   void Stop();
00068   void GoToBeginning();
00069   void GoToEnd();
00071 
00073 
00074   void GoToNext();
00075   void GoToPrevious();
00077 
00078 
00079   void StartRecording();
00080   void StopRecording();
00081   void RecordState();
00082 
00084 
00085   void SetDuration(double seconds);
00086   void SetDurationWithTrace(double s);
00087   double GetDuration();
00089 
00091 
00092   void SetPlayMode(int mode);
00093   int GetPlayMode();
00095 
00097 
00098   void SetFrameRate(double fps);
00099   double GetFrameRate();
00101 
00103 
00104   void SetLoop(int loop);
00105   void SetLoopWithTrace(int loop);
00106   int GetLoop();
00108 
00110 
00112   void SetAnimationTime( double time);
00113   void SetAnimationTimeWithTrace(double time);
00115 
00117   double GetAnimationTime();
00118 
00120 
00122   void SetNormalizedAnimationTime(double ntime);
00123   double GetNormalizedAnimationTime();
00125 
00127 
00130   void AddAnimationCue(vtkPVAnimationCue* cue);
00131   void RemoveAnimationCue(vtkPVAnimationCue* cue);
00133 
00134   virtual void SaveInBatchScript(ofstream* file);
00135 
00136   void SaveState(ofstream* file);
00137 
00139 
00142   virtual void SetWindow(vtkPVWindow *window);
00143   vtkGetObjectMacro(Window, vtkPVWindow);
00145 
00146   void SetRenderView(vtkPVRenderView* pvRenderView);
00147   vtkGetObjectMacro(RenderView, vtkPVRenderView);
00148 
00149   void SetAnimationManager(vtkPVAnimationManager*);
00150 
00151   virtual void UpdateEnableState();
00152 
00153 
00155 
00157   void SaveImages(const char* fileRoot, const char* ext, int width, int height,
00158     double framerate);
00159   // Description:
00160   // Called when the user requests saving of animation geometry.
00161   void SaveGeometry(const char* filename);
00163 
00164   void InvalidateAllGeometries();
00165 
00167 
00168   void ShowAnimationToolbar() { this->SetAnimationToolbarVisibility(1); }
00169   void HideAnimationToolbar() { this->SetAnimationToolbarVisibility(0); }
00170   void SetAnimationToolbarVisibility(int visible);
00172 
00174 
00175   void SetCaching(int enable);
00176   int GetCaching();
00178 
00180 
00183   void SetPropertiesChangedCallback(vtkKWWidget* target, 
00184     const char* methodAndArgs);
00186 
00187   void PrepareForDelete();
00188 
00190 
00192   void OnBeginPlay();
00193   void OnEndPlay();
00195 
00196   // -------------------------------------------------------------------------
00197 
00199   VTK_LEGACY(void SetCurrentTime( double time));
00200 
00203   VTK_LEGACY(void SetCurrentTimeWithTrace(double time));
00204 
00205 #ifdef VTK_WORKAROUND_WINDOWS_MANGLE
00206   // Avoid windows name mangling.
00207 #define GetTickCount GetCurrentTime
00208 #endif
00209 
00210 
00211   VTK_LEGACY(double GetCurrentTime());
00212 #ifdef VTK_WORKAROUND_WINDOWS_MANGLE
00213 # undef GetTickCount
00214   //BTX
00215   int GetTickCount();
00216   //ETX
00218 #endif
00219 
00220   // -------------------------------------------------------------------------
00221 
00222 protected:
00223   vtkPVAnimationScene();
00224   ~vtkPVAnimationScene();
00225 
00226   void CaptureErrorEvents();
00227   void ReleaseErrorEvents();
00228 
00229   vtkPVRenderView* RenderView;
00230   vtkPVWindow* Window;
00231   vtkPVAnimationManager* AnimationManager;
00232 
00233   // Animation Control.
00234   vtkPVVCRControl* VCRControl;
00235   vtkPVVCRControl* VCRToolbar;
00236 
00237   vtkKWLabel* TimeLabel;
00238   vtkKWScaleWithEntry* TimeScale;
00239 
00240   vtkKWLabel* DurationLabel;
00241   vtkKWThumbWheel* DurationThumbWheel; 
00242 
00243   vtkKWLabel* PlayModeLabel;
00244   vtkKWMenuButton* PlayModeMenuButton;
00245   
00246   vtkSMAnimationSceneProxy* AnimationSceneProxy;
00247   char* AnimationSceneProxyName;
00248   vtkSetStringMacro(AnimationSceneProxyName);
00249 
00250   virtual void ExecuteEvent(vtkObject* , unsigned long event, void* calldata);
00251 //BTX
00252   vtkPVAnimationSceneObserver* Observer;
00253   friend class vtkPVAnimationSceneObserver;
00254 //ETX
00255   void CreateProxy();
00256   int InPlay;
00257   int InvokingError;
00258 
00259   // This flag is set when the play mode is Sequence mode.
00260   // It implies that the duration widget is to treated as 
00261   // an indication of max no. of frames.
00262   int InterpretDurationAsFrameMax;
00263   void SetInterpretDurationAsFrameMax(int val);
00264 
00265   unsigned long ErrorEventTag;
00266 
00267   char* PropertiesChangedCallbackCommand;
00268   vtkSetStringMacro(PropertiesChangedCallbackCommand);
00269   void InvokePropertiesChangedCallback();
00270 
00271 private:
00272   vtkPVAnimationScene(const vtkPVAnimationScene&); // Not implemented.
00273   void operator=(const vtkPVAnimationScene&); // Not implemented.
00274 };
00275 
00276 #endif

Generated on Tue May 30 12:31:38 2006 for ParaView by doxygen 1.3.5