Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00025 #ifndef __vtkKWEImageGradientMagnitude_h
00026 #define __vtkKWEImageGradientMagnitude_h
00027
00028 #include "vtkKWEGPUImageAlgorithmDriver.h"
00029
00030 class vtkShaderProgram2;
00031 class VTKEdge_HYBRID_EXPORT vtkKWEImageGradientMagnitude : public vtkKWEGPUImageAlgorithmDriver
00032 {
00033 public:
00034 static vtkKWEImageGradientMagnitude* New();
00035 vtkTypeRevisionMacro(vtkKWEImageGradientMagnitude, vtkKWEGPUImageAlgorithmDriver);
00036 void PrintSelf(ostream& os, vtkIndent indent);
00037
00039
00040 vtkSetClampMacro(Dimensionality,int,2,3);
00041 vtkGetMacro(Dimensionality,int);
00043
00044
00045 protected:
00046 vtkKWEImageGradientMagnitude();
00047 ~vtkKWEImageGradientMagnitude();
00048
00050
00053 virtual ExtentTypes GetSplitMode(vtkInformation* request,
00054 vtkInformationVector** inputVector,
00055 vtkInformationVector* outputVector);
00057
00059
00064 virtual int MapOutputExtentToInput(int input_extent[6],
00065 int port, int connection,
00066 vtkInformation* inInfo, const int output_extent[6]);
00068
00070
00071 virtual bool Execute(vtkBuses* upBuses, vtkDataTransferHelper* downBus);
00072 virtual void Execute() { this->Superclass::Execute(); }
00074
00076
00078 bool InitializeExecution(
00079 vtkInformation* request,
00080 vtkInformationVector** inputVector,
00081 vtkInformationVector* outputVector);
00083
00085
00087 bool FinalizeExecution(
00088 vtkInformation* request,
00089 vtkInformationVector** inputVector,
00090 vtkInformationVector* outputVector);
00092
00093 int Dimensionality;
00094 vtkSmartPointer<vtkShaderProgram2> GLSLProgram;
00095
00096 double SpacingReciprocal[3];
00097 private:
00098 vtkKWEImageGradientMagnitude(const vtkKWEImageGradientMagnitude&);
00099 void operator=(const vtkKWEImageGradientMagnitude&);
00100
00101 };
00102
00103 #endif
00104
00105