00001 
00002 
00003 
00004 
00005 
00006 
00007 
00008 
00009 
00010 
00011 
00012 
00013 
00014 
00035 #ifndef __vtkImplicitWindowFunction_h
00036 #define __vtkImplicitWindowFunction_h
00037 
00038 #include "vtkImplicitFunction.h"
00039 
00040 class VTK_FILTERING_EXPORT vtkImplicitWindowFunction : public vtkImplicitFunction
00041 {
00042 public:
00043   vtkTypeMacro(vtkImplicitWindowFunction,vtkImplicitFunction);
00044   void PrintSelf(ostream& os, vtkIndent indent);
00045 
00047   static vtkImplicitWindowFunction *New();
00048 
00050 
00051   double EvaluateFunction(double x[3]);
00052   double EvaluateFunction(double x, double y, double z)
00053     {return this->vtkImplicitFunction::EvaluateFunction(x, y, z); } ;
00055 
00058   void EvaluateGradient(double x[3], double n[3]);
00059 
00061 
00062   virtual void SetImplicitFunction(vtkImplicitFunction*);
00063   vtkGetObjectMacro(ImplicitFunction,vtkImplicitFunction);
00065 
00067 
00070   vtkSetVector2Macro(WindowRange,double);
00071   vtkGetVectorMacro(WindowRange,double,2);
00073 
00075 
00078   vtkSetVector2Macro(WindowValues,double);
00079   vtkGetVectorMacro(WindowValues,double,2);
00081 
00083   unsigned long GetMTime();
00084 
00086 
00087   virtual void Register(vtkObjectBase* o);
00088   virtual void UnRegister(vtkObjectBase* o);
00090 
00091 protected:
00092   vtkImplicitWindowFunction();
00093   ~vtkImplicitWindowFunction();
00094 
00095   virtual void ReportReferences(vtkGarbageCollector*);
00096 
00097   vtkImplicitFunction *ImplicitFunction;
00098   double WindowRange[2];
00099   double WindowValues[2];
00100 
00101 private:
00102   vtkImplicitWindowFunction(const vtkImplicitWindowFunction&);  
00103   void operator=(const vtkImplicitWindowFunction&);  
00104 };
00105 
00106 #endif
00107 
00108