Cloned library of VTK-5.0.0 with extra build files for internal package management.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

133 lines
4.0 KiB

/*=========================================================================
Program: Visualization Toolkit
Module: $RCSfile: vtkAnimationScene.h,v $
Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
All rights reserved.
See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
This software is distributed WITHOUT ANY WARRANTY; without even
the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
PURPOSE. See the above copyright notice for more information.
=========================================================================*/
// .NAME vtkAnimationScene - the animation scene manager.
// .SECTION Description
// vtkAnimationCue and vtkAnimationScene provide the framework to support
// animations in VTK. vtkAnimationCue represents an entity that changes/
// animates with time, while vtkAnimationScene represents scene or setup
// for the animation, which consists on individual cues or other scenes.
//
// A scene can be played in real time mode, or as a seqence of frames
// 1/frame rate apart in time.
// .SECTION See Also
// vtkAnimationCue
#ifndef __vtkAnimationScene_h
#define __vtkAnimationScene_h
#include "vtkAnimationCue.h"
class vtkAnimationCue;
class vtkCollection;
class vtkCollectionIterator;
class vtkTimerLog;
class VTK_COMMON_EXPORT vtkAnimationScene: public vtkAnimationCue
{
public:
vtkTypeRevisionMacro(vtkAnimationScene, vtkAnimationCue);
void PrintSelf(ostream& os, vtkIndent indent);
static vtkAnimationScene* New();
// Description:
// Get/Set the PlayMode for running/playing the animation scene.
// In the Sequence mode, all the frames are generated one after the other.
// The time reported to each Tick of the constituent cues (during Play) is
// incremented by 1/frame rate, irrespective of the current time.
// In the RealTime mode, time indicates the instance in time.
vtkSetMacro(PlayMode, int);
void SetModeToSequence() { this->SetPlayMode(PLAYMODE_SEQUENCE); }
void SetModeToRealTime() { this->SetPlayMode(PLAYMODE_REALTIME); }
vtkGetMacro(PlayMode, int);
// Description:
// Get/Set the frame rate (in frames per second).
// This parameter affects only in the Sequence mode. The time interval
// indicated to each cue on every tick is progressed by 1/frame-rate seconds.
vtkSetMacro(FrameRate, double);
vtkGetMacro(FrameRate, double);
// Description:
// Add/Remove an AnimationCue to/from the Scene.
// It's an error to add a cue twice to the Scene.
void AddCue(vtkAnimationCue* cue);
void RemoveCue(vtkAnimationCue* cue);
// Description:
// Starts playing the animation scene.
void Play();
// Description:
// Stops the animation scene that is running.
void Stop();
// Description:
// Enable/Disable animation loop.
vtkSetMacro(Loop, int);
vtkGetMacro(Loop, int);
// Description:
// Makes the state of the scene same as the given time.
void SetAnimationTime(double time);
// Description:
// Overridden to allow change to Normalized mode only
// if none of the constituent cues is in Relative time mode.
virtual void SetTimeMode(int mode);
// Description:
// Returns if the animation is being played.
int IsInPlay() { return this->InPlay; }
//BTX
enum PlayModes
{
PLAYMODE_SEQUENCE=0,
PLAYMODE_REALTIME=1
};
//ETX
protected:
vtkAnimationScene();
~vtkAnimationScene();
// Description:
// Called on every valid tick.
// Calls ticks on all the contained cues.
virtual void TickInternal(double currenttime, double deltatime);
virtual void StartCueInternal();
virtual void EndCueInternal();
void InitializeChildren();
void FinalizeChildren();
int PlayMode;
double FrameRate;
int Loop;
int InPlay;
int StopPlay;
double AnimationTime;
vtkCollection* AnimationCues;
vtkCollectionIterator* AnimationCuesIterator;
vtkTimerLog* AnimationTimer;
private:
vtkAnimationScene(const vtkAnimationScene&); // Not implemented.
void operator=(const vtkAnimationScene&); // Not implemented.
};
#endif