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