00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00030 #ifndef __vtkPVAnimationCueTree_h
00031 #define __vtkPVAnimationCueTree_h
00032
00033 #include "vtkPVAnimationCue.h"
00034
00035 class vtkCollection;
00036 class vtkCollectionIterator;
00037 class vtkKWFrame;
00038 class vtkKWCanvas;
00039
00040 class VTK_EXPORT vtkPVAnimationCueTree : public vtkPVAnimationCue
00041 {
00042 public:
00043 static vtkPVAnimationCueTree* New();
00044 vtkTypeRevisionMacro(vtkPVAnimationCueTree, vtkPVAnimationCue);
00045 void PrintSelf(ostream& os, vtkIndent indent);
00046
00048 virtual void Create(vtkKWApplication* app);
00049
00053 void AddChildCue(vtkPVAnimationCue* child);
00054
00056 void RemoveChildCue(vtkPVAnimationCue* child);
00057
00061 vtkPVAnimationCue* GetChild(const char* name);
00062
00065 vtkCollectionIterator* NewChildrenIterator();
00066
00067 virtual void PackWidget();
00068 virtual void UnpackWidget();
00069
00070
00072
00073 virtual void ToggleExpandedState();
00074 void SetExpanded(int expand);
00076
00080 virtual void SetTimeBounds(double bounds[2], int enable_scaling=0);
00081
00082
00084
00086 vtkBooleanMacro(ScaleChildrenOnEndPointsChange, int);
00087 vtkSetMacro(ScaleChildrenOnEndPointsChange, int);
00088 vtkGetMacro(ScaleChildrenOnEndPointsChange, int);
00090
00092
00095 vtkBooleanMacro(MoveEndPointsWhenChildrenChange, int);
00096 vtkSetMacro(MoveEndPointsWhenChildrenChange, int);
00097 vtkGetMacro(MoveEndPointsWhenChildrenChange, int);
00099
00100
00103 virtual void GetFocus();
00104
00106 virtual void RemoveFocus();
00107
00109 virtual int HasFocus();
00110
00114 virtual void SetTimeMarker( double time);
00115
00117 virtual void StartRecording();
00118
00120 virtual void StopRecording();
00121
00123
00124 virtual void RecordState(double ntime, double offset);
00125 virtual void RecordState(double ntime, double offset, int onlyFocus);
00127
00134 virtual void UpdateEnableState();
00135
00136
00137 virtual void SaveState(ofstream* file);
00138
00139 virtual void Zoom(double range[2]);
00140
00142 virtual void RemoveAllKeyFrames();
00143
00146 virtual void UpdateCueVisibility(int advanced);
00147
00150 virtual void Detach();
00151
00152 protected:
00153 vtkPVAnimationCueTree();
00154 ~vtkPVAnimationCueTree();
00155
00156 int Expanded;
00157 vtkCollection* Children;
00158
00159 vtkKWFrame* NavigatorContainer;
00160 vtkKWCanvas* NavigatorCanvas;
00161 vtkKWFrame* NavigatorChildrenFrame;
00162
00163 vtkKWFrame* TimeLineChildrenFrame;
00164
00165 virtual void ExecuteEvent(vtkObject* wdg, unsigned long event, void* calldata);
00166
00167
00168 void DrawChildConnections(vtkPVAnimationCue* child);
00169
00170 double LastParameterBounds[2];
00171 vtkSetVector2Macro(LastParameterBounds, double);
00172
00173 void ScaleChildren(double old_bounds[2], double new_bounds[2]);
00174
00175 int ScaleChildrenOnEndPointsChange;
00176 int MoveEndPointsWhenChildrenChange;
00177
00178
00179
00180 int ForceBounds;
00181
00182 void RemoveChildrenFocus(vtkPVAnimationCue* exception = NULL);
00183 void AdjustEndPoints();
00184 private:
00185 vtkPVAnimationCueTree(const vtkPVAnimationCueTree&);
00186 void operator=(const vtkPVAnimationCueTree&);
00187 };
00188
00189
00190 #endif
00191