00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00031 #ifndef __vtkTemporalSnapToTimeStep_h
00032 #define __vtkTemporalSnapToTimeStep_h
00033
00034 #include "vtkTemporalDataSetAlgorithm.h"
00035
00036
00037 #include <vtkstd/vector>
00038
00039
00040 class VTK_HYBRID_EXPORT vtkTemporalSnapToTimeStep : public vtkTemporalDataSetAlgorithm
00041 {
00042 public:
00043 static vtkTemporalSnapToTimeStep *New();
00044 vtkTypeMacro(vtkTemporalSnapToTimeStep, vtkTemporalDataSetAlgorithm);
00045 void PrintSelf(ostream& os, vtkIndent indent);
00046
00047
00048 enum {
00049 VTK_SNAP_NEAREST=0,
00050 VTK_SNAP_NEXTBELOW_OR_EQUAL,
00051 VTK_SNAP_NEXTABOVE_OR_EQUAL
00052 };
00053
00054 vtkSetMacro(SnapMode,int);
00055 vtkGetMacro(SnapMode,int);
00056 void SetSnapModeToNearest() { this->SetSnapMode(VTK_SNAP_NEAREST); }
00057 void SetSnapModeToNextBelowOrEqual() { this->SetSnapMode(VTK_SNAP_NEXTBELOW_OR_EQUAL); }
00058 void SetSnapModeToNextAboveOrEqual() { this->SetSnapMode(VTK_SNAP_NEXTABOVE_OR_EQUAL); }
00059
00060 protected:
00061 vtkTemporalSnapToTimeStep();
00062 ~vtkTemporalSnapToTimeStep();
00063
00064 virtual int RequestUpdateExtent (vtkInformation *,
00065 vtkInformationVector **,
00066 vtkInformationVector *);
00067 virtual int RequestInformation (vtkInformation *,
00068 vtkInformationVector **,
00069 vtkInformationVector *);
00070
00071 virtual int RequestData(vtkInformation *,
00072 vtkInformationVector **,
00073 vtkInformationVector *);
00074
00075
00076 vtkstd::vector<double> InputTimeValues;
00077 int HasDiscrete;
00078 int SnapMode;
00079
00080
00081 private:
00082 vtkTemporalSnapToTimeStep(const vtkTemporalSnapToTimeStep&);
00083 void operator=(const vtkTemporalSnapToTimeStep&);
00084 };
00085
00086
00087
00088 #endif
00089
00090
00091