VTK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
vtkTemporalInterpolator Class Reference

interpolate datasets between time steps to produce a new dataset More...

#include <vtkTemporalInterpolator.h>

Inherits vtkMultiTimeStepAlgorithm.

Public Types

typedef vtkMultiTimeStepAlgorithm Superclass
 

Public Member Functions

virtual int IsA (const char *type)
 
vtkTemporalInterpolatorNewInstance () const
 
void PrintSelf (ostream &os, vtkIndent indent)
 
virtual void SetDiscreteTimeStepInterval (double)
 
virtual double GetDiscreteTimeStepInterval ()
 
virtual void SetResampleFactor (int)
 
virtual int GetResampleFactor ()
 

Static Public Member Functions

static vtkTemporalInterpolatorNew ()
 
static int IsTypeOf (const char *type)
 
static vtkTemporalInterpolatorSafeDownCast (vtkObjectBase *o)
 

Protected Member Functions

virtual vtkObjectBase * NewInstanceInternal () const
 
 vtkTemporalInterpolator ()
 
 ~vtkTemporalInterpolator ()
 
virtual int FillInputPortInformation (int port, vtkInformation *info)
 
virtual int FillOutputPortInformation (int vtkNotUsed(port), vtkInformation *info)
 
virtual int RequestDataObject (vtkInformation *, vtkInformationVector **, vtkInformationVector *)
 
virtual int RequestUpdateExtent (vtkInformation *, vtkInformationVector **, vtkInformationVector *)
 
virtual int RequestInformation (vtkInformation *, vtkInformationVector **, vtkInformationVector *)
 
virtual int RequestData (vtkInformation *, vtkInformationVector **, vtkInformationVector *)
 
virtual bool VerifyArrays (vtkDataArray **arrays, int N)
 
vtkDataObject * InterpolateDataObject (vtkDataObject *in1, vtkDataObject *in2, double ratio)
 
virtual vtkDataSet * InterpolateDataSet (vtkDataSet *in1, vtkDataSet *in2, double ratio)
 
virtual vtkDataArray * InterpolateDataArray (double ratio, vtkDataArray **arrays, vtkIdType N)
 

Protected Attributes

double DiscreteTimeStepInterval
 
int ResampleFactor
 
double Ratio
 
double DeltaT
 
double Tfrac
 

Detailed Description

interpolate datasets between time steps to produce a new dataset

vtkTemporalInterpolator interpolates between two time steps to produce new data for an arbitrary T. vtkTemporalInterpolator has three modes of operation. The default mode is to produce a continuous range of time values as output, which enables a filter downstream to request any value of T within the range. The second mode of operation is enabled by setting DiscreteTimeStepInterval to a non zero value. When this mode is activated, the filter will report a finite number of Time steps separated by deltaT between the original range of values. This mode is useful when a dataset of N time steps has one (or more) missing datasets for certain T values and you simply wish to smooth over the missing steps but otherwise use the original data. The third mode of operation is enabled by setting ResampleFactor to a non zero positive integer value. When this mode is activated, the filter will report a finite number of Time steps which contain the original steps, plus N new values between each original step 1/ResampleFactor time units apart. Note that if the input time steps are irregular, then using ResampleFactor will produce an irregular sequence of regular steps between each of the original irregular steps (clear enough, yes?).

Higher order interpolation schemes will require changes to the API as most calls assume only two timesteps are used.

Thanks:
Ken Martin (Kitware) and John Bidiscombe of CSCS - Swiss National Supercomputing Centre for creating and contributing this class. For related material, please refer to : John Biddiscombe, Berk Geveci, Ken Martin, Kenneth Moreland, David Thompson, "Time Dependent Processing in a Parallel Pipeline Architecture", IEEE Visualization 2007.
Tests:
vtkTemporalInterpolator (Tests)

Definition at line 64 of file vtkTemporalInterpolator.h.

Member Typedef Documentation

typedef vtkMultiTimeStepAlgorithm vtkTemporalInterpolator::Superclass

Definition at line 68 of file vtkTemporalInterpolator.h.

Constructor & Destructor Documentation

vtkTemporalInterpolator::vtkTemporalInterpolator ( )
protected
vtkTemporalInterpolator::~vtkTemporalInterpolator ( )
protected

Member Function Documentation

static vtkTemporalInterpolator* vtkTemporalInterpolator::New ( )
static
static int vtkTemporalInterpolator::IsTypeOf ( const char *  type)
static
virtual int vtkTemporalInterpolator::IsA ( const char *  type)
virtual
static vtkTemporalInterpolator* vtkTemporalInterpolator::SafeDownCast ( vtkObjectBase *  o)
static
virtual vtkObjectBase* vtkTemporalInterpolator::NewInstanceInternal ( ) const
protectedvirtual
vtkTemporalInterpolator* vtkTemporalInterpolator::NewInstance ( ) const
void vtkTemporalInterpolator::PrintSelf ( ostream &  os,
vtkIndent  indent 
)
virtual void vtkTemporalInterpolator::SetDiscreteTimeStepInterval ( double  )
virtual

If you require a discrete number of outputs steps, to be generated from an input source - for example, you required N steps separated by T, then set DiscreteTimeStepInterval to T and you will get TIME_RANGE/DiscreteTimeStepInterval steps This is a useful option to use if you have a dataset with one missing time step and wish to 'fill-in' the missing data with an interpolated value from the steps either side

virtual double vtkTemporalInterpolator::GetDiscreteTimeStepInterval ( )
virtual

If you require a discrete number of outputs steps, to be generated from an input source - for example, you required N steps separated by T, then set DiscreteTimeStepInterval to T and you will get TIME_RANGE/DiscreteTimeStepInterval steps This is a useful option to use if you have a dataset with one missing time step and wish to 'fill-in' the missing data with an interpolated value from the steps either side

virtual void vtkTemporalInterpolator::SetResampleFactor ( int  )
virtual

When ResampleFactor is a non zero positive integer, each pair of input time steps will be interpolated between with the number of steps specified. For example an input of 1,2,3,4,5 and a resample factor of 10, will produce steps 0f 1.0, 1.1, 1.2.....1.9, 2.0 etc NB. Irregular input steps will produce irregular output steps. Resample factor wuill only be used if DiscreteTimeStepInterval is zero otherwise the DiscreteTimeStepInterval takes precedence

virtual int vtkTemporalInterpolator::GetResampleFactor ( )
virtual

When ResampleFactor is a non zero positive integer, each pair of input time steps will be interpolated between with the number of steps specified. For example an input of 1,2,3,4,5 and a resample factor of 10, will produce steps 0f 1.0, 1.1, 1.2.....1.9, 2.0 etc NB. Irregular input steps will produce irregular output steps. Resample factor wuill only be used if DiscreteTimeStepInterval is zero otherwise the DiscreteTimeStepInterval takes precedence

virtual int vtkTemporalInterpolator::FillInputPortInformation ( int  port,
vtkInformation *  info 
)
protectedvirtual
virtual int vtkTemporalInterpolator::FillOutputPortInformation ( int   vtkNotUsedport,
vtkInformation *  info 
)
protectedvirtual
virtual int vtkTemporalInterpolator::RequestDataObject ( vtkInformation *  ,
vtkInformationVector **  ,
vtkInformationVector *   
)
protectedvirtual
virtual int vtkTemporalInterpolator::RequestUpdateExtent ( vtkInformation *  ,
vtkInformationVector **  ,
vtkInformationVector *   
)
protectedvirtual
virtual int vtkTemporalInterpolator::RequestInformation ( vtkInformation *  ,
vtkInformationVector **  ,
vtkInformationVector *   
)
protectedvirtual
virtual int vtkTemporalInterpolator::RequestData ( vtkInformation *  ,
vtkInformationVector **  ,
vtkInformationVector *   
)
protectedvirtual
vtkDataObject* vtkTemporalInterpolator::InterpolateDataObject ( vtkDataObject *  in1,
vtkDataObject *  in2,
double  ratio 
)
protected

General interpolation routine for any type on input data. This is called recursively when heirarchical/multiblock data is encountered

virtual vtkDataSet* vtkTemporalInterpolator::InterpolateDataSet ( vtkDataSet *  in1,
vtkDataSet *  in2,
double  ratio 
)
protectedvirtual

Root level interpolation for a concrete dataset object. Point/Cell data and points are interpolated. Needs improving if connectivity is to be handled

virtual vtkDataArray* vtkTemporalInterpolator::InterpolateDataArray ( double  ratio,
vtkDataArray **  arrays,
vtkIdType  N 
)
protectedvirtual

Interpolate a single vtkDataArray. Called from the Interpolation routine on the points and pointdata/celldata

virtual bool vtkTemporalInterpolator::VerifyArrays ( vtkDataArray **  arrays,
int  N 
)
protectedvirtual

Called just before interpolation of each dataset to ensure each data array has the same number of tuples/components etc

Member Data Documentation

double vtkTemporalInterpolator::DiscreteTimeStepInterval
protected

Definition at line 100 of file vtkTemporalInterpolator.h.

int vtkTemporalInterpolator::ResampleFactor
protected

Definition at line 101 of file vtkTemporalInterpolator.h.

double vtkTemporalInterpolator::Ratio
protected

Definition at line 155 of file vtkTemporalInterpolator.h.

double vtkTemporalInterpolator::DeltaT
protected

Definition at line 156 of file vtkTemporalInterpolator.h.

double vtkTemporalInterpolator::Tfrac
protected

Definition at line 157 of file vtkTemporalInterpolator.h.


The documentation for this class was generated from the following file: