VTK
dox/Hybrid/vtkTemporalSnapToTimeStep.h
Go to the documentation of this file.
00001 /*=========================================================================
00002 
00003   Program:   Visualization Toolkit
00004   Module:    vtkTemporalSnapToTimeStep.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 =========================================================================*/
00031 #ifndef __vtkTemporalSnapToTimeStep_h
00032 #define __vtkTemporalSnapToTimeStep_h
00033 
00034 #include "vtkTemporalDataSetAlgorithm.h"
00035 
00036 //BTX
00037 #include <vector> // used because I am a bad boy. So there.
00038 //ETX
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 //BTX
00048   enum {
00049     VTK_SNAP_NEAREST=0,
00050     VTK_SNAP_NEXTBELOW_OR_EQUAL,
00051     VTK_SNAP_NEXTABOVE_OR_EQUAL
00052   };
00053 //ETX
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 //BTX
00076     std::vector<double>  InputTimeValues;
00077     int HasDiscrete;
00078     int SnapMode;
00079 //ETX
00080 
00081 private:
00082   vtkTemporalSnapToTimeStep(const vtkTemporalSnapToTimeStep&);  // Not implemented.
00083   void operator=(const vtkTemporalSnapToTimeStep&);  // Not implemented.
00084 };
00085 
00086 
00087 
00088 #endif
00089 
00090 
00091