VTK
dox/Filters/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 =========================================================================*/
00034 #ifndef __vtkTemporalSnapToTimeStep_h
00035 #define __vtkTemporalSnapToTimeStep_h
00036 
00037 #include "vtkFiltersHybridModule.h" // For export macro
00038 #include "vtkAlgorithm.h"
00039 
00040 //BTX
00041 #include <vector> // used because I am a bad boy. So there.
00042 //ETX
00043 
00044 class VTKFILTERSHYBRID_EXPORT vtkTemporalSnapToTimeStep : public vtkAlgorithm
00045 {
00046 public:
00047   static vtkTemporalSnapToTimeStep *New();
00048   vtkTypeMacro(vtkTemporalSnapToTimeStep, vtkAlgorithm);
00049   void PrintSelf(ostream& os, vtkIndent indent);
00050 
00051 //BTX
00052   enum {
00053     VTK_SNAP_NEAREST=0,
00054     VTK_SNAP_NEXTBELOW_OR_EQUAL,
00055     VTK_SNAP_NEXTABOVE_OR_EQUAL
00056   };
00057 //ETX
00058   vtkSetMacro(SnapMode,int);
00059   vtkGetMacro(SnapMode,int);
00060   void SetSnapModeToNearest()          { this->SetSnapMode(VTK_SNAP_NEAREST); }
00061   void SetSnapModeToNextBelowOrEqual() { this->SetSnapMode(VTK_SNAP_NEXTBELOW_OR_EQUAL); }
00062   void SetSnapModeToNextAboveOrEqual() { this->SetSnapMode(VTK_SNAP_NEXTABOVE_OR_EQUAL); }
00063 
00064 protected:
00065   vtkTemporalSnapToTimeStep();
00066   ~vtkTemporalSnapToTimeStep();
00067 
00069 
00070   virtual int ProcessRequest(vtkInformation* request,
00071                              vtkInformationVector** inputVector,
00072                              vtkInformationVector* outputVector);
00074 
00075   virtual int FillInputPortInformation(int port, vtkInformation* info);
00076   virtual int FillOutputPortInformation(int vtkNotUsed(port), vtkInformation* info);
00077 
00078   virtual int RequestUpdateExtent (vtkInformation *,
00079                                    vtkInformationVector **,
00080                                    vtkInformationVector *);
00081   virtual int RequestInformation (vtkInformation *,
00082                                   vtkInformationVector **,
00083                                   vtkInformationVector *);
00084 
00085   virtual int RequestData(vtkInformation *,
00086                           vtkInformationVector **,
00087                           vtkInformationVector *);
00088 
00089 //BTX
00090     std::vector<double>  InputTimeValues;
00091     int HasDiscrete;
00092     int SnapMode;
00093 //ETX
00094 
00095 private:
00096   vtkTemporalSnapToTimeStep(const vtkTemporalSnapToTimeStep&);  // Not implemented.
00097   void operator=(const vtkTemporalSnapToTimeStep&);  // Not implemented.
00098 };
00099 
00100 
00101 
00102 #endif
00103 
00104 
00105