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
00050 class SoConvolution
00051 {
00052 private:
00054 virtual ~SoConvolution();
00055
00057 static void initClass();
00058
00060 static void exitClass();
00061
00062 public:
00064 SoConvolution();
00065
00084 virtual int doSeparateConvolution1D( SoBufferObject* sourceBufferObject,
00085 SoBufferObject* targetBufferObject,
00086 float* kernelData, int kernelSize,
00087 int width, int height );
00088
00089
00112 virtual int doSeparateConvolution2D( SoBufferObject* sourceBufferObject,
00113 SoBufferObject* targetBufferObject,
00114 float* kernelData, int kernelSize,
00115 int width, int height );
00116
00117
00134 virtual int doSeparateConvolutionRow( SoBufferObject* sourceBufferObject,
00135 SoBufferObject* targetBufferObject,
00136 float* kernelData, int kernelSize,
00137 int width, int height );
00138
00139
00156 virtual int doSeparateConvolutionColumn( SoBufferObject* sourceBufferObject,
00157 SoBufferObject* targetBufferObject,
00158 float* kernelData, int kernelSize,
00159 int width, int height );
00160
00161
00168 int doSeparateConvolution1D( SoCpuBufferObject* sourceBufferObject,
00169 SoCpuBufferObject* targetBufferObject,
00170 float* kernelData, int kernelSize,
00171 int width, int height );
00172
00173
00180 int doSeparateConvolution2D( SoCpuBufferObject* sourceBufferObject,
00181 SoCpuBufferObject* targetBufferObject,
00182 float* kernelData, int kernelSize,
00183 int width, int height );
00184
00185
00192 int doSeparateConvolutionRow( SoCpuBufferObject* sourceBufferObject,
00193 SoCpuBufferObject* targetBufferObject,
00194 float* kernelData, int kernelSize,
00195 int width, int height );
00196
00197
00204 int doSeparateConvolutionColumn( SoCpuBufferObject* sourceBufferObject,
00205 SoCpuBufferObject* targetBufferObject,
00206 float* kernelData, int kernelSize,
00207 int width, int height );
00208
00209
00210 };
00211
00212 #endif //SOCONVOLUTION_H
00213
00214