VTK
dox/Filters/Hybrid/vtkTemporalShiftScale.h
Go to the documentation of this file.
00001 /*=========================================================================
00002 
00003   Program:   Visualization Toolkit
00004   Module:    vtkTemporalShiftScale.h
00005 
00006   Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
00007   All rights reserved.
00008   See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
00009 
00010      This software is distributed WITHOUT ANY WARRANTY; without even
00011      the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
00012      PURPOSE.  See the above copyright notice for more information.
00013 
00014 =========================================================================*/
00035 #ifndef __vtkTemporalShiftScale_h
00036 #define __vtkTemporalShiftScale_h
00037 
00038 #include "vtkFiltersHybridModule.h" // For export macro
00039 #include "vtkAlgorithm.h"
00040 
00041 
00042 class VTKFILTERSHYBRID_EXPORT vtkTemporalShiftScale: public vtkAlgorithm
00043 {
00044 public:
00045   static vtkTemporalShiftScale *New();
00046   vtkTypeMacro(vtkTemporalShiftScale, vtkAlgorithm);
00047   void PrintSelf(ostream& os, vtkIndent indent);
00048 
00050 
00053   vtkSetMacro(PreShift, double);
00054   vtkGetMacro(PreShift, double);
00056 
00058 
00059   vtkSetMacro(PostShift, double);
00060   vtkGetMacro(PostShift, double);
00062 
00064 
00065   vtkSetMacro(Scale, double);
00066   vtkGetMacro(Scale, double);
00068 
00070 
00081   vtkSetMacro(Periodic, int);
00082   vtkGetMacro(Periodic, int);
00083   vtkBooleanMacro(Periodic, int);
00085 
00087 
00095   vtkSetMacro(PeriodicEndCorrection, int);
00096   vtkGetMacro(PeriodicEndCorrection, int);
00097   vtkBooleanMacro(PeriodicEndCorrection, int);
00099 
00101 
00105   vtkSetMacro(MaximumNumberOfPeriods, double);
00106   vtkGetMacro(MaximumNumberOfPeriods, double);
00108 
00109 protected:
00110   vtkTemporalShiftScale();
00111   ~vtkTemporalShiftScale();
00112 
00113   double PreShift;
00114   double PostShift;
00115   double Scale;
00116   int    Periodic;
00117   int    PeriodicEndCorrection;
00118   double MaximumNumberOfPeriods;
00119   //
00120   double InRange[2];
00121   double OutRange[2];
00122   double PeriodicRange[2];
00123   int    PeriodicN;
00124   double TempMultiplier;
00125 
00127 
00128   virtual int ProcessRequest(vtkInformation* request,
00129                              vtkInformationVector** inputVector,
00130                              vtkInformationVector* outputVector);
00132 
00133   virtual int RequestUpdateExtent (vtkInformation *,
00134                                    vtkInformationVector **,
00135                                    vtkInformationVector *);
00136 
00137   virtual int FillInputPortInformation(int port, vtkInformation* info);
00138   virtual int FillOutputPortInformation(int vtkNotUsed(port), vtkInformation* info);
00139 
00140 
00141   virtual int RequestDataObject(vtkInformation *,
00142                                 vtkInformationVector **,
00143                                 vtkInformationVector *);
00144 
00145 
00146   virtual int RequestInformation (vtkInformation *,
00147                                   vtkInformationVector **,
00148                                   vtkInformationVector *);
00149 
00150   virtual int RequestData(vtkInformation *,
00151                           vtkInformationVector **,
00152                           vtkInformationVector *);
00153 
00154   double ForwardConvert(double T0);
00155   double BackwardConvert(double T1);
00156 
00157 private:
00158   vtkTemporalShiftScale(const vtkTemporalShiftScale&);  // Not implemented.
00159   void operator=(const vtkTemporalShiftScale&);  // Not implemented.
00160 };
00161 
00162 
00163 
00164 #endif
00165 
00166 
00167