mirror of
https://github.com/OpenFOAM/ThirdParty-6.git
synced 2025-12-08 06:57:43 +00:00
110 lines
3.4 KiB
C++
110 lines
3.4 KiB
C++
/*=========================================================================
|
|
|
|
Program: ParaView
|
|
Module: vtkPVAnimationCue.h
|
|
|
|
Copyright (c) Kitware, Inc.
|
|
All rights reserved.
|
|
See Copyright.txt or http://www.paraview.org/HTML/Copyright.html 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 vtkPVAnimationCue - proxy for vtkAnimationCue.
|
|
// .SECTION Description
|
|
// This is a proxy for vtkAnimationCue. All animation proxies are client
|
|
// side proxies.
|
|
// This class needs a vtkPVCueManipulator. The \b Manipulator
|
|
// performs the actual interpolation.
|
|
// .SECTION See Also
|
|
// vtkAnimationCue vtkSMAnimationSceneProxy
|
|
//
|
|
|
|
#ifndef vtkPVAnimationCue_h
|
|
#define vtkPVAnimationCue_h
|
|
|
|
#include "vtkAnimationCue.h"
|
|
#include "vtkPVAnimationModule.h" // needed for export macro
|
|
|
|
class vtkAnimationCue;
|
|
class vtkCommand;
|
|
class vtkPVCueManipulator;
|
|
|
|
class VTKPVANIMATION_EXPORT vtkPVAnimationCue : public vtkAnimationCue
|
|
{
|
|
public:
|
|
vtkTypeMacro(vtkPVAnimationCue, vtkAnimationCue);
|
|
void PrintSelf(ostream& os, vtkIndent indent);
|
|
|
|
// Description:
|
|
// The index of the element of the property this cue animates.
|
|
// If the index is -1, the cue will animate all the elements
|
|
// of the animated property.
|
|
vtkSetMacro(AnimatedElement, int);
|
|
vtkGetMacro(AnimatedElement, int);
|
|
|
|
// Description:
|
|
// Get/Set the manipulator used to compute values
|
|
// for each instance in the animation.
|
|
// Note that the time passed to the Manipulator is normalized [0,1]
|
|
// to the extents of this cue.
|
|
void SetManipulator(vtkPVCueManipulator*);
|
|
vtkGetObjectMacro(Manipulator, vtkPVCueManipulator);
|
|
|
|
// Description:
|
|
// Enable/Disable this cue.
|
|
vtkSetMacro(Enabled, int);
|
|
vtkGetMacro(Enabled, int);
|
|
vtkBooleanMacro(Enabled, int);
|
|
|
|
// Description:
|
|
// Used to update the animated item. This API makes it possible for vtk-level
|
|
// classes to update properties without actually linking with the
|
|
// ServerManager library. This only works since they object are created only
|
|
// on the client.
|
|
virtual void BeginUpdateAnimationValues() = 0;
|
|
virtual void SetAnimationValue(int index, double value) =0;
|
|
virtual void EndUpdateAnimationValues() = 0;
|
|
|
|
// Description:
|
|
// When set to true, the manipulator is skipped and the key frame value is set
|
|
// by using the ClockTime directly. false by default.
|
|
vtkSetMacro(UseAnimationTime, bool);
|
|
vtkGetMacro(UseAnimationTime, bool);
|
|
|
|
// Description:
|
|
// Overridden to ignore the calls when this->Enabled == false.
|
|
virtual void Initialize();
|
|
virtual void Tick(double currenttime, double deltatime, double clocktime);
|
|
virtual void Finalize();
|
|
|
|
protected:
|
|
vtkPVAnimationCue();
|
|
~vtkPVAnimationCue();
|
|
|
|
// Description:
|
|
virtual void StartCueInternal();
|
|
virtual void TickInternal(double currenttime, double deltatime,
|
|
double clocktime);
|
|
virtual void EndCueInternal();
|
|
|
|
//BTX
|
|
friend class vtkSMAnimationSceneProxy;
|
|
//ETX
|
|
|
|
unsigned long ObserverID;
|
|
bool UseAnimationTime;
|
|
int AnimatedElement;
|
|
int Enabled;
|
|
|
|
vtkAnimationCue *AnimationCue;
|
|
vtkPVCueManipulator* Manipulator;
|
|
private:
|
|
vtkPVAnimationCue(const vtkPVAnimationCue&); // Not implemented
|
|
void operator=(const vtkPVAnimationCue&); // Not implemented
|
|
};
|
|
|
|
#endif
|