//***************************************************************************
#ifndef GAUSSIAN_H
#define GAUSSIAN_H
//***************************************************************************
#include "matrix.h"
//***************************************************************************
enum FilterType {
        GAUSSmask,      // Gaussian
        GDmask,         // Derivative of Gaussian
        DOOGmask        // Difference of Offset Gaussian
};
//***************************************************************************
void FilteredImg(Matrix *Out, Matrix &Inp, FilterType filter, 
        double sigma, double theta, int side);

void Gaussian(Matrix *M, double sigma, double theta);
void GD(Matrix *M, double sigma, double theta);
void DOOG(Matrix *M, double sigma, double theta);

double Gaussian(double x, double y, double sigma);
double GD(double x, double y, double sigma, double theta);
double DOOG(double x, double y, double sigma, double theta);
//***************************************************************************
#endif // GAUSSIAN_H
//***************************************************************************