mirror of
https://github.com/OpenFOAM/ThirdParty-6.git
synced 2025-12-08 06:57:43 +00:00
73 lines
2.3 KiB
C++
73 lines
2.3 KiB
C++
/*=========================================================================
|
|
|
|
Program: ParaView
|
|
Module: vtkPVSinusoidKeyFrame.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 vtkPVSinusoidKeyFrame
|
|
// .SECTION Description
|
|
// Interplates a sinusoid. At any given time \c t, the resultant
|
|
// value obtained from this keyframe is given by :
|
|
// value = this->Offset + (Key Value) * Sin (2*pi*theta);
|
|
// where theta = this->Frequency*t + (this->Phase/360).
|
|
// As is clear from the equation, the amplitude of the wave
|
|
// is obtained from the value of the keyframe.
|
|
|
|
#ifndef vtkPVSinusoidKeyFrame_h
|
|
#define vtkPVSinusoidKeyFrame_h
|
|
|
|
#include "vtkPVKeyFrame.h"
|
|
|
|
class VTKPVANIMATION_EXPORT vtkPVSinusoidKeyFrame : public vtkPVKeyFrame
|
|
{
|
|
public:
|
|
static vtkPVSinusoidKeyFrame* New();
|
|
vtkTypeMacro(vtkPVSinusoidKeyFrame, vtkPVKeyFrame);
|
|
void PrintSelf(ostream& os, vtkIndent indent);
|
|
|
|
// Description:
|
|
// This method will do the actual interpolation.
|
|
// currenttime is normalized to the time range between
|
|
// this key frame and the next key frame.
|
|
virtual void UpdateValue( double currenttime, vtkPVAnimationCue* cue,
|
|
vtkPVKeyFrame* next);
|
|
|
|
// Description:
|
|
// Get/Set the phase for the sine wave.
|
|
vtkSetMacro(Phase, double);
|
|
vtkGetMacro(Phase, double);
|
|
|
|
// Description:
|
|
// Get/Set the frequency for the sine wave in number of cycles
|
|
// for the entire length of this keyframe i.e. until the next key frame.
|
|
vtkSetMacro(Frequency, double);
|
|
vtkGetMacro(Frequency, double);
|
|
|
|
// Description:
|
|
// Get/Set the Wave offset.
|
|
vtkSetMacro(Offset, double);
|
|
vtkGetMacro(Offset, double);
|
|
|
|
protected:
|
|
vtkPVSinusoidKeyFrame();
|
|
~vtkPVSinusoidKeyFrame();
|
|
|
|
double Phase;
|
|
double Frequency;
|
|
double Offset;
|
|
|
|
private:
|
|
vtkPVSinusoidKeyFrame(const vtkPVSinusoidKeyFrame&); // Not implemented.
|
|
void operator=(const vtkPVSinusoidKeyFrame&); // Not implemented.
|
|
};
|
|
|
|
#endif
|