00001 
00002 
00003 
00004 
00005 
00006 
00007 
00008 
00009 
00010 
00011 
00012 
00013 
00014 
00032 #ifndef __vtkAnimationScene_h
00033 #define __vtkAnimationScene_h
00034 
00035 #include "vtkAnimationCue.h"
00036 
00037 class vtkAnimationCue;
00038 class vtkCollection;
00039 class vtkCollectionIterator;
00040 class vtkTimerLog;
00041 
00042 class VTK_COMMON_EXPORT vtkAnimationScene: public vtkAnimationCue
00043 {
00044 public:
00045   vtkTypeMacro(vtkAnimationScene, vtkAnimationCue);
00046   void PrintSelf(ostream& os, vtkIndent indent);
00047   static vtkAnimationScene* New();
00048 
00050 
00055   vtkSetMacro(PlayMode, int);
00056   void SetModeToSequence() { this->SetPlayMode(PLAYMODE_SEQUENCE); }
00057   void SetModeToRealTime() { this->SetPlayMode(PLAYMODE_REALTIME); }
00058   vtkGetMacro(PlayMode, int);
00060 
00062 
00065   vtkSetMacro(FrameRate, double);
00066   vtkGetMacro(FrameRate, double);
00068   
00070 
00072   void AddCue(vtkAnimationCue* cue);
00073   void RemoveCue(vtkAnimationCue* cue);
00074   void RemoveAllCues();
00075   int  GetNumberOfCues();
00077   
00080   virtual void Play();
00081 
00083   void Stop();
00084 
00086 
00087   vtkSetMacro(Loop, int);
00088   vtkGetMacro(Loop, int);
00090 
00092 
00093   void SetAnimationTime(double time);
00094   vtkGetMacro(AnimationTime, double);
00096 
00099   virtual void SetTimeMode(int mode);
00100 
00102   int IsInPlay() { return this->InPlay; } 
00103 
00104 
00105   enum PlayModes
00106   {
00107     PLAYMODE_SEQUENCE=0,
00108     PLAYMODE_REALTIME=1
00109   };
00110 
00111 
00112 protected:
00113   vtkAnimationScene();
00114   ~vtkAnimationScene();
00115 
00117 
00118   virtual void TickInternal(double currenttime, double deltatime, double clocktime);
00119   virtual void StartCueInternal();
00120   virtual void EndCueInternal();
00122 
00123   void InitializeChildren();
00124   void FinalizeChildren();
00125   
00126   int PlayMode;
00127   double FrameRate;
00128   int Loop;
00129   int InPlay;
00130   int StopPlay;
00131   double AnimationTime;
00132 
00133   vtkCollection* AnimationCues;
00134   vtkCollectionIterator* AnimationCuesIterator;
00135   vtkTimerLog* AnimationTimer;
00136   
00137 private:
00138   vtkAnimationScene(const vtkAnimationScene&); 
00139   void operator=(const vtkAnimationScene&); 
00140 };
00141 
00142 #endif