00001 
00002 
00003 
00004 
00005 
00006 
00007 
00008 
00009 
00010 
00011 
00012 
00013 
00014 
00040 #ifndef __vtkAnimationCue_h
00041 #define __vtkAnimationCue_h
00042 
00043 #include "vtkObject.h"
00044 
00045 class VTK_COMMON_EXPORT vtkAnimationCue: public vtkObject
00046 {
00047 public:
00048   vtkTypeRevisionMacro(vtkAnimationCue,vtkObject);
00049   void PrintSelf(ostream& os, vtkIndent indent);
00050 
00051   static vtkAnimationCue* New();
00052 
00053   
00054   
00055   
00056   
00057   
00058   
00059   
00060   class AnimationCueInfo
00061     {
00062   public:
00063     double StartTime;
00064     double EndTime;
00065     double AnimationTime;
00066     double DeltaTime;   
00067     double ClockTime;   
00068     };
00069   
00070   
00072 
00077   virtual void SetTimeMode(int mode);
00078   vtkGetMacro(TimeMode, int);
00079   void SetTimeModeToRelative() 
00080     { this->SetTimeMode(TIMEMODE_RELATIVE); }
00081   void SetTimeModeToNormalized() 
00082     { this->SetTimeMode(TIMEMODE_NORMALIZED); }
00084 
00086 
00093   vtkSetMacro(StartTime, double);
00094   vtkGetMacro(StartTime, double);
00096 
00098 
00104   vtkSetMacro(EndTime, double);
00105   vtkGetMacro(EndTime, double);
00107  
00121   virtual void Tick(double currenttime, double deltatime, double clocktime);
00122 
00125   virtual void Initialize();
00126 
00129   virtual void Finalize();
00130 
00132 
00135   vtkGetMacro(AnimationTime, double);
00137 
00139 
00142   vtkGetMacro(DeltaTime, double);
00144 
00146 
00150   vtkGetMacro(ClockTime, double);
00152 
00153 
00154   enum TimeCodes
00155   {
00156     TIMEMODE_NORMALIZED=0,
00157     TIMEMODE_RELATIVE=1
00158   };
00159 
00160 protected:
00161   vtkAnimationCue();
00162   ~vtkAnimationCue();
00163 
00164   enum {
00165     UNINITIALIZED=0,
00166     INACTIVE,
00167     ACTIVE
00168   };
00169 
00170   double StartTime;
00171   double EndTime;
00172   int TimeMode;
00173 
00174   
00175   
00176   
00177   double AnimationTime;
00178   double DeltaTime;
00179   double ClockTime;
00180   
00182   int CueState;
00183 
00185 
00188   virtual void StartCueInternal();
00189   virtual void TickInternal(double currenttime, double deltatime,
00190     double clocktime);
00191   virtual void EndCueInternal();
00193  
00194 private:
00195   vtkAnimationCue(const vtkAnimationCue&);  
00196   void operator=(const vtkAnimationCue&);  
00197 };
00198 
00199 #endif
00200 
00201 
00202