00001 
00002 
00003 
00004 
00005 
00006 
00007 
00008 
00009 
00010 
00011 
00012 
00013 
00014 
00039 #ifndef __vtkSubPixelPositionEdgels_h
00040 #define __vtkSubPixelPositionEdgels_h
00041 
00042 #include "vtkPolyDataAlgorithm.h"
00043 
00044 class vtkStructuredPoints;
00045 class vtkDataArray;
00046 
00047 class VTK_GRAPHICS_EXPORT vtkSubPixelPositionEdgels : public vtkPolyDataAlgorithm
00048 {
00049 public:
00050   static vtkSubPixelPositionEdgels *New();
00051   vtkTypeRevisionMacro(vtkSubPixelPositionEdgels,vtkPolyDataAlgorithm);
00052   void PrintSelf(ostream& os, vtkIndent indent);
00053 
00055 
00056   void SetGradMaps(vtkStructuredPoints *gm);
00057   vtkStructuredPoints *GetGradMaps();
00059 
00061 
00063   vtkSetMacro(TargetFlag, int);
00064   vtkGetMacro(TargetFlag, int);
00065   vtkBooleanMacro(TargetFlag, int);
00066   vtkSetMacro(TargetValue, double);
00067   vtkGetMacro(TargetValue, double);
00069   
00070 protected:
00071   vtkSubPixelPositionEdgels();
00072   ~vtkSubPixelPositionEdgels();
00073 
00074   
00075   virtual int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *);
00076   virtual int FillInputPortInformation(int port, vtkInformation *info);
00077 
00078   void Move(int xdim, int ydim, int zdim, int x, int y,
00079             float *img, vtkDataArray *inVecs, 
00080             double *result, int z, double *aspect, double *resultNormal);
00081   void Move(int xdim, int ydim, int zdim, int x, int y,
00082             double *img, vtkDataArray *inVecs, 
00083             double *result, int z, double *aspect, double *resultNormal);
00084   
00085   int TargetFlag;
00086   double TargetValue;
00087 private:
00088   vtkSubPixelPositionEdgels(const vtkSubPixelPositionEdgels&);  
00089   void operator=(const vtkSubPixelPositionEdgels&);  
00090 };
00091 
00092 #endif