Main Page   Namespace List   Class Hierarchy   Compound List   File List   Namespace Members   Compound Members  

Function_2D::Base_2D Class Reference

Base class for the other functions. More...

#include <base_2D.h>

Inheritance diagram for Function_2D::Base_2D:

Function_2D::Direct_interface_2D Function_2D::Filter_interface_2D Function_2D::Gaussian Function_2D::Gaussian_step Function_2D::Gaussian_x_2nd_derivative Function_2D::Gaussian_x_derivative Function_2D::Gaussian_y_derivative Function_2D::Canny_Deriche Function_2D::FFT_normalized_gaussian Function_2D::Gabor Function_2D::Normalized_gaussian Function_2D::Normalized_gaussian_step Function_2D::Normalized_gaussian_x_2nd_derivative Function_2D::Normalized_gaussian_x_derivative Function_2D::Normalized_gaussian_y_derivative Function_2D::Riesz_1 Function_2D::Riesz_2 Function_2D::Shen_Castan List of all members.

Public Types

typedef double real_type

Public Methods

 Base_2D (const real_type in_offset_x=0, const real_type in_offset_y=0, const real_type in_scale_x=1, const real_type in_scale_y=1, const real_type in_rotation_angle=0, const real_type out_offset=0, const real_type out_scale=1)
virtual ~Base_2D ()
real_type operator() (const real_type x, const real_type y) const

Protected Methods

virtual real_type base_value_proxy (const real_type x, const real_type y) const=0
void update_input_rotation (const real_type a)

Protected Attributes

real_type input_rotation_angle
real_type output_scale
 The output value is scaled by this value before being translated.

real_type output_offset
 The output value is translated by this value after scaling.

real_type input_offset_x
real_type input_offset_y
real_type input_scale_x
real_type input_scale_y
real_type cos_a
 (Co)sine of the input rotation angle.

real_type sin_a
 (Co)sine of the input rotation angle.


Detailed Description

Base class for the other functions.

Must be derived to define the base_value_proxy() function. One should consider defining a static base_value() and to code as following:

  // virtual inline
  Gaussian::real_type Gaussian::base_value_proxy(const real_type x,
                                                 const real_type y) const{
    return Gaussian::base_value(x,y);
  }

  // static inline
  Gaussian::real_type Gaussian::base_value(const real_type x,
                                           const real_type y){
    return exp(-(x*x + y*y));
  }
It helps avoiding virtual multiple inheritance by providing a static function.


Member Typedef Documentation

typedef double Function_2D::Base_2D::real_type
 


Constructor & Destructor Documentation

Function_2D::Base_2D::Base_2D const real_type    in_offset_x = 0,
const real_type    in_offset_y = 0,
const real_type    in_scale_x = 1,
const real_type    in_scale_y = 1,
const real_type    in_rotation_angle = 0,
const real_type    out_offset = 0,
const real_type    out_scale = 1
[inline]
 

Function_2D::Base_2D::~Base_2D   [virtual]
 


Member Function Documentation

virtual real_type Function_2D::Base_2D::base_value_proxy const real_type    x,
const real_type    y
const [inline, protected, pure virtual]
 

Implemented in Function_2D::Canny_Deriche, Function_2D::Shen_Castan, Function_2D::Gabor, Function_2D::Gaussian, Function_2D::Normalized_gaussian, Function_2D::FFT_normalized_gaussian, Function_2D::Gaussian_x_derivative, Function_2D::Normalized_gaussian_x_derivative, Function_2D::Gaussian_y_derivative, Function_2D::Normalized_gaussian_y_derivative, Function_2D::Gaussian_x_2nd_derivative, Function_2D::Normalized_gaussian_x_2nd_derivative, Function_2D::Gaussian_step, Function_2D::Normalized_gaussian_step, Function_2D::Riesz_1, and Function_2D::Riesz_2.

Base_2D::real_type Function_2D::Base_2D::operator() const real_type    x,
const real_type    y
const [inline]
 

void Function_2D::Base_2D::update_input_rotation const real_type    a [inline, protected]
 


Member Data Documentation

real_type Function_2D::Base_2D::cos_a [protected]
 

(Co)sine of the input rotation angle.

real_type Function_2D::Base_2D::input_offset_x [protected]
 

This value is added to the corresponding input coordinate before rotation and scaling.

real_type Function_2D::Base_2D::input_offset_y [protected]
 

This value is added to the corresponding input coordinate before rotation and scaling.

real_type Function_2D::Base_2D::input_rotation_angle [protected]
 

The input coordinates are rotated by this angle after being translated and before being scaled.

real_type Function_2D::Base_2D::input_scale_x [protected]
 

This value is used to scale the corresponding input coordinate after rotation and offset.

real_type Function_2D::Base_2D::input_scale_y [protected]
 

This value is used to scale the corresponding input coordinate after rotation and offset.

real_type Function_2D::Base_2D::output_offset [protected]
 

The output value is translated by this value after scaling.

real_type Function_2D::Base_2D::output_scale [protected]
 

The output value is scaled by this value before being translated.

real_type Function_2D::Base_2D::sin_a [protected]
 

(Co)sine of the input rotation angle.


The documentation for this class was generated from the following file:
Generated on Fri Aug 20 12:08:01 2004 by doxygen1.2.18