00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023 #if !defined SOCONVOLUTION_H
00024 #define SOCONVOLUTION_H
00025
00026 #include <Inventor/sys/port.h>
00027
00028 #include <Inventor/SbDataType.h>
00029
00030 #include <Inventor/algorithms/SoAlgorithmsDefs.h>
00031
00032 class SoBufferObject;
00033 class SoCpuBufferObject;
00034
00051 class SoConvolution
00052 {
00053 private:
00055 virtual ~SoConvolution();
00056
00058 static void initClass();
00059
00061 static void exitClass();
00062
00063 public:
00065 SoConvolution();
00066
00085 virtual int doSeparateConvolution1D( SoBufferObject* sourceBufferObject,
00086 SoBufferObject* targetBufferObject,
00087 float* kernelData, int kernelSize,
00088 int width, int height );
00089
00090
00113 virtual int doSeparateConvolution2D( SoBufferObject* sourceBufferObject,
00114 SoBufferObject* targetBufferObject,
00115 float* kernelData, int kernelSize,
00116 int width, int height );
00117
00118
00135 virtual int doSeparateConvolutionRow( SoBufferObject* sourceBufferObject,
00136 SoBufferObject* targetBufferObject,
00137 float* kernelData, int kernelSize,
00138 int width, int height );
00139
00140
00157 virtual int doSeparateConvolutionColumn( SoBufferObject* sourceBufferObject,
00158 SoBufferObject* targetBufferObject,
00159 float* kernelData, int kernelSize,
00160 int width, int height );
00161
00162
00169 int doSeparateConvolution1D( SoCpuBufferObject* sourceBufferObject,
00170 SoCpuBufferObject* targetBufferObject,
00171 float* kernelData, int kernelSize,
00172 int width, int height );
00173
00174
00181 int doSeparateConvolution2D( SoCpuBufferObject* sourceBufferObject,
00182 SoCpuBufferObject* targetBufferObject,
00183 float* kernelData, int kernelSize,
00184 int width, int height );
00185
00186
00193 int doSeparateConvolutionRow( SoCpuBufferObject* sourceBufferObject,
00194 SoCpuBufferObject* targetBufferObject,
00195 float* kernelData, int kernelSize,
00196 int width, int height );
00197
00198
00205 int doSeparateConvolutionColumn( SoCpuBufferObject* sourceBufferObject,
00206 SoCpuBufferObject* targetBufferObject,
00207 float* kernelData, int kernelSize,
00208 int width, int height );
00209
00210
00211 };
00212
00213 #endif //SOCONVOLUTION_H
00214
00215