QtiPlot  0.9.8.2
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
Filter Class Reference

Abstract base class for data analysis operations. More...

#include <Filter.h>

Inheritance diagram for Filter:
Convolution Correlation Differentiation FFT FFTFilter Fit Integration Interpolation SmoothFilter

Public Member Functions

int dataSize ()
 Returns the size of the input data set. More...
 
virtual void enableGraphicsDisplay (bool on=true, Graph *g=0)
 
bool error ()
 
 Filter (ApplicationWindow *parent, Table *t=0, const QString &name=QString())
 
 Filter (ApplicationWindow *parent, Graph *g=0, const QString &name=QString())
 
 Filter (ApplicationWindow *parent, Matrix *m, const QString &name=QString())
 
 Filter (ApplicationWindow *parent, QwtPlotCurve *c)
 
virtual QString legendInfo ()
 Output string added to the plot as a new legend. More...
 
GraphoutputGraph ()
 Returns a pointer to the graph where the result curve should be displayed. More...
 
QwtPlotCurve * resultCurve ()
 Returns a pointer to the plot curve created to display the results. More...
 
TableresultTable ()
 Returns a pointer to the table created to display the results. More...
 
virtual bool run ()
 Actually does the job. Should be reimplemented in derived classes. More...
 
void setColor (int colorId)
 Obsolete: sets the color of the output fit curve. More...
 
void setColor (const QColor &color)
 Sets the color of the output fit curve. More...
 
void setColor (const QString &colorName)
 Sets the color of the output fit curve. Provided for convenience. To be used in scripts only! More...
 
virtual void setDataCurve (QwtPlotCurve *curve, double start, double end)
 
bool setDataFromCurve (QwtPlotCurve *c)
 
bool setDataFromCurve (QwtPlotCurve *c, double from, double to)
 
bool setDataFromCurve (const QString &curveTitle, Graph *g=0)
 
bool setDataFromCurve (const QString &curveTitle, double from, double to, Graph *g=0)
 
virtual bool setDataFromTable (Table *, const QString &, const QString &, int=1, int=-1, bool=false)
 
void setError (bool on=true)
 
void setInterval (double from, double to)
 Changes the data range if the source curve was already assigned. Provided for convenience. More...
 
void setMaximumIterations (int iter)
 Sets the maximum number of iterations to be performed during an iterative session. More...
 
void setOutputPoints (int points)
 Sets the number of points in the output curve. More...
 
void setOutputPrecision (int digits)
 Sets the precision used for the output. More...
 
void setSortData (bool on=true)
 
void setTolerance (double eps)
 Sets the tolerance used by the GSL routines. More...
 
void setUpdateOutputGraph (bool update=true)
 
virtual void showLegend ()
 Adds a new legend to the plot. Calls virtual legendInfo() More...
 
double * x ()
 Returns the x values of the input data set. More...
 
double * y ()
 Returns the y values of the input data set. More...
 
 ~Filter ()
 

Protected Member Functions

QwtPlotCurve * addResultCurve (double *x, double *y)
 Adds the result curve to the target output plot window. Creates a hidden table and frees the input data from memory. More...
 
virtual void calculateOutputData (double *X, double *Y)
 Calculates the data for the output curve and store it in the X an Y vectors. More...
 
MultiLayercreateOutputGraph ()
 
virtual int curveData (QwtPlotCurve *c, double start, double end, double **x, double **y)
 
int curveIndex (const QString &curveTitle, Graph *g)
 Performs checks and returns the index of the source data curve if OK, -1 otherwise. More...
 
int curveRange (QwtPlotCurve *c, double start, double end, int *iStart, int *iEnd)
 
virtual void freeMemory ()
 Frees the memory allocated for the X and Y data sets. More...
 
void init ()
 
virtual QString logInfo ()
 Output string added to the log pannel of the application. More...
 
void memoryErrorMessage ()
 
virtual void output ()
 Performs the data analysis and takes care of the output. More...
 
virtual int sortedCurveData (QwtPlotCurve *c, double start, double end, double **x, double **y)
 Same as curveData, but sorts the points by their x value. More...
 

Protected Attributes

QwtPlotCurve * d_curve
 The curve to be analysed. More...
 
QColor d_curveColor
 Color index of the result curve. More...
 
QString d_explanation
 String explaining the operation in the comment of the result table and in the project explorer. More...
 
double d_from
 Data interval. More...
 
Graphd_graph
 The source graph with the curve to be analyzed. More...
 
bool d_graphics_display
 Specifies if the filter should display a result curve. More...
 
bool d_init_err
 Error flag telling if something went wrong during the initialization phase. More...
 
Matrixd_matrix
 
int d_max_iterations
 Maximum number of iterations per fit. More...
 
int d_min_points
 Minimum number of data points necessary to perform the operation. More...
 
int d_n
 Size of the data arrays. More...
 
Graphd_output_graph
 The graph where the result curve should be displayed. More...
 
int d_points
 Number of result points to de calculated and displayed in the output curve. More...
 
int d_prec
 Precision (number of significant digits) used for the results output. More...
 
QwtPlotCurve * d_result_curve
 The resulting curve. More...
 
Tabled_result_table
 The table displaying the results of the filtering operation (not alvays valid!) More...
 
bool d_sort_data
 Specifies if the filter needs sorted data as input. More...
 
Tabled_table
 A table source of data. More...
 
double d_to
 
double d_tolerance
 GSL Tolerance, if ever needed... More...
 
bool d_update_output_graph
 Specifies if the filter should update the output graph. More...
 
double * d_x
 x data set to be analysed More...
 
double * d_y
 y data set to be analysed More...
 
QString d_y_col_name
 

Detailed Description

Abstract base class for data analysis operations.

Constructor & Destructor Documentation

◆ Filter() [1/4]

Filter::Filter ( ApplicationWindow parent,
Table t = 0,
const QString &  name = QString() 
)

References d_table, and init().

◆ Filter() [2/4]

Filter::Filter ( ApplicationWindow parent,
Graph g = 0,
const QString &  name = QString() 
)

References d_graph, d_output_graph, and init().

◆ Filter() [3/4]

Filter::Filter ( ApplicationWindow parent,
Matrix m,
const QString &  name = QString() 
)

References d_matrix, and init().

◆ Filter() [4/4]

Filter::Filter ( ApplicationWindow parent,
QwtPlotCurve *  c 
)

References init().

◆ ~Filter()

Filter::~Filter ( )

References d_n, and freeMemory().

Member Function Documentation

◆ addResultCurve()

QwtPlotCurve * Filter::addResultCurve ( double *  x,
double *  y 
)
protected

◆ calculateOutputData()

virtual void Filter::calculateOutputData ( double *  X,
double *  Y 
)
inlineprotectedvirtual

Calculates the data for the output curve and store it in the X an Y vectors.

Reimplemented in FFTFilter, SmoothFilter, and Interpolation.

References createOutputGraph().

Referenced by output().

◆ createOutputGraph()

MultiLayer * Filter::createOutputGraph ( )
protected

◆ curveData()

int Filter::curveData ( QwtPlotCurve *  c,
double  start,
double  end,
double **  x,
double **  y 
)
protectedvirtual

Sets x and y to the curve points between start and end. Memory will be allocated with new double[]. Returns the number of points within range == size of x and y arrays.

References curveRange(), and memoryErrorMessage().

Referenced by setDataCurve(), and setUpdateOutputGraph().

◆ curveIndex()

int Filter::curveIndex ( const QString &  curveTitle,
Graph g 
)
protected

Performs checks and returns the index of the source data curve if OK, -1 otherwise.

References Graph::curveIndex(), d_graph, d_init_err, and d_output_graph.

Referenced by setDataFromCurve(), and setUpdateOutputGraph().

◆ curveRange()

int Filter::curveRange ( QwtPlotCurve *  c,
double  start,
double  end,
int *  iStart,
int *  iEnd 
)
protected

◆ dataSize()

int Filter::dataSize ( )
inline

◆ enableGraphicsDisplay()

void Filter::enableGraphicsDisplay ( bool  on = true,
Graph g = 0 
)
virtual

◆ error()

bool Filter::error ( )
inline

◆ freeMemory()

void Filter::freeMemory ( )
protectedvirtual

Frees the memory allocated for the X and Y data sets.

Reimplemented in Fit.

References d_x, and d_y.

Referenced by Fit::freeMemory(), setDataCurve(), Correlation::setDataFromTable(), Convolution::setDataFromTable(), FFT::setDataFromTable(), setDataFromTable(), setUpdateOutputGraph(), and ~Filter().

◆ init()

void Filter::init ( )
protected

◆ legendInfo()

virtual QString Filter::legendInfo ( )
inlinevirtual

Output string added to the plot as a new legend.

Reimplemented in Fit, NonLinearFit, and PolynomialFit.

Referenced by showLegend().

◆ logInfo()

virtual QString Filter::logInfo ( )
inlineprotectedvirtual

Output string added to the log pannel of the application.

Reimplemented in Integration.

References output().

Referenced by run().

◆ memoryErrorMessage()

void Filter::memoryErrorMessage ( )
protected

◆ output()

void Filter::output ( )
protectedvirtual

Performs the data analysis and takes care of the output.

Reimplemented in Deconvolution, FFT, Integration, Convolution, Correlation, and Differentiation.

References addResultCurve(), calculateOutputData(), d_init_err, d_points, memoryErrorMessage(), x(), and y().

Referenced by logInfo(), and run().

◆ outputGraph()

Graph* Filter::outputGraph ( )
inline

Returns a pointer to the graph where the result curve should be displayed.

References d_output_graph.

Referenced by ApplicationWindow::differentiate(), ApplicationWindow::fitLinear(), and ApplicationWindow::fitSlope().

◆ resultCurve()

QwtPlotCurve* Filter::resultCurve ( )
inline

Returns a pointer to the plot curve created to display the results.

References d_result_curve.

Referenced by FitDialog::accept().

◆ resultTable()

Table* Filter::resultTable ( )
inline

Returns a pointer to the table created to display the results.

References d_result_table.

◆ run()

bool Filter::run ( )
virtual

◆ setColor() [1/3]

void Filter::setColor ( int  colorId)

◆ setColor() [2/3]

void Filter::setColor ( const QColor &  color)
inline

Sets the color of the output fit curve.

References d_curveColor, and setColor().

◆ setColor() [3/3]

void Filter::setColor ( const QString &  colorName)

Sets the color of the output fit curve. Provided for convenience. To be used in scripts only!

References d_curveColor, and ColorBox::isValidColor().

◆ setDataCurve()

void Filter::setDataCurve ( QwtPlotCurve *  curve,
double  start,
double  end 
)
virtual

◆ setDataFromCurve() [1/4]

bool Filter::setDataFromCurve ( QwtPlotCurve *  c)

◆ setDataFromCurve() [2/4]

bool Filter::setDataFromCurve ( QwtPlotCurve *  c,
double  from,
double  to 
)

◆ setDataFromCurve() [3/4]

bool Filter::setDataFromCurve ( const QString &  curveTitle,
Graph g = 0 
)

◆ setDataFromCurve() [4/4]

bool Filter::setDataFromCurve ( const QString &  curveTitle,
double  from,
double  to,
Graph g = 0 
)

◆ setDataFromTable()

bool Filter::setDataFromTable ( Table t,
const QString &  xColName,
const QString &  yColName,
int  startRow = 1,
int  endRow = -1,
bool  sort = false 
)
virtual

◆ setError()

void Filter::setError ( bool  on = true)
inline

◆ setInterval()

void Filter::setInterval ( double  from,
double  to 
)

Changes the data range if the source curve was already assigned. Provided for convenience.

References d_curve, and setDataFromCurve().

◆ setMaximumIterations()

void Filter::setMaximumIterations ( int  iter)
inline

Sets the maximum number of iterations to be performed during an iterative session.

References d_max_iterations.

Referenced by FitDialog::accept().

◆ setOutputPoints()

void Filter::setOutputPoints ( int  points)
inline

Sets the number of points in the output curve.

References d_points.

Referenced by BaselineDialog::createBaseline(), and InterpolationDialog::interpolate().

◆ setOutputPrecision()

void Filter::setOutputPrecision ( int  digits)
inline

◆ setSortData()

void Filter::setSortData ( bool  on = true)
inline

◆ setTolerance()

void Filter::setTolerance ( double  eps)
inline

Sets the tolerance used by the GSL routines.

References d_tolerance, and setColor().

Referenced by IntDialog::accept(), and FitDialog::accept().

◆ setUpdateOutputGraph()

void Filter::setUpdateOutputGraph ( bool  update = true)
inline

◆ showLegend()

void Filter::showLegend ( )
virtual

◆ sortedCurveData()

int Filter::sortedCurveData ( QwtPlotCurve *  c,
double  start,
double  end,
double **  x,
double **  y 
)
protectedvirtual

Same as curveData, but sorts the points by their x value.

Reimplemented in Interpolation.

References curveRange(), and memoryErrorMessage().

Referenced by setDataCurve(), and setUpdateOutputGraph().

◆ x()

double* Filter::x ( )
inline

◆ y()

double* Filter::y ( )
inline

Member Data Documentation

◆ d_curve

QwtPlotCurve* Filter::d_curve
protected

◆ d_curveColor

QColor Filter::d_curveColor
protected

◆ d_explanation

QString Filter::d_explanation
protected

◆ d_from

double Filter::d_from
protected

◆ d_graph

Graph* Filter::d_graph
protected

◆ d_graphics_display

bool Filter::d_graphics_display
protected

◆ d_init_err

bool Filter::d_init_err
protected

◆ d_matrix

Matrix* Filter::d_matrix
protected

◆ d_max_iterations

int Filter::d_max_iterations
protected

Maximum number of iterations per fit.

Referenced by Fit::fit(), Fit::fitGSL(), Fit::fitSimplex(), init(), Fit::init(), and setMaximumIterations().

◆ d_min_points

int Filter::d_min_points
protected

◆ d_n

int Filter::d_n
protected

Size of the data arrays.

Referenced by Correlation::addResultCurve(), Convolution::addResultCurve(), LogisticFit::calculateFitCurveData(), PluginFit::calculateFitCurveData(), ExponentialFit::calculateFitCurveData(), SigmoidalFit::calculateFitCurveData(), PolynomialFit::calculateFitCurveData(), NonLinearFit::calculateFitCurveData(), TwoExpFit::calculateFitCurveData(), LinearFit::calculateFitCurveData(), ThreeExpFit::calculateFitCurveData(), LinearSlopeFit::calculateFitCurveData(), GaussAmpFit::calculateFitCurveData(), Interpolation::calculateOutputData(), FFTFilter::calculateOutputData(), dataSize(), Fit::errors(), FFT::fftCurve(), FFT::fftTable(), PolynomialFit::fit(), Fit::fit(), LinearFit::fit(), LinearSlopeFit::fit(), Fit::fitGSL(), MultiPeakFit::generateFitCurve(), Fit::generateFitCurve(), LogisticFit::guessInitialValues(), SigmoidalFit::guessInitialValues(), MultiPeakFit::guessInitialValues(), GaussAmpFit::guessInitialValues(), SmoothFilter::init(), FFTFilter::init(), init(), Fit::init(), Integration::Integration(), Fit::lcl(), Fit::legendInfo(), Fit::logFitInfo(), Integration::logInfo(), Correlation::output(), Differentiation::output(), FFT::output(), NonLinearFit::removeDataSingularities(), NonLinearFit::removePole(), Fit::residuals(), Fit::rmse(), Fit::rSquare(), run(), setDataCurve(), Fit::setDataCurve(), Convolution::setDataFromTable(), Correlation::setDataFromTable(), FFT::setDataFromTable(), setDataFromTable(), Fit::setDataFromTable(), Interpolation::setMethod(), Fit::setWeightingData(), Fit::showConfidenceLimits(), Fit::showPredictionLimits(), Fit::showResiduals(), SmoothFilter::smoothAverage(), SmoothFilter::smoothFFT(), SmoothFilter::smoothLowess(), SmoothFilter::smoothSavGol(), Integration::trapez(), Fit::ucl(), Fit::writeParametersToTable(), and ~Filter().

◆ d_output_graph

Graph* Filter::d_output_graph
protected

◆ d_points

int Filter::d_points
protected

◆ d_prec

int Filter::d_prec
protected

◆ d_result_curve

QwtPlotCurve* Filter::d_result_curve
protected

The resulting curve.

Referenced by addResultCurve(), init(), Fit::insertFitFunctionCurve(), and resultCurve().

◆ d_result_table

Table* Filter::d_result_table
protected

◆ d_sort_data

bool Filter::d_sort_data
protected

◆ d_table

Table* Filter::d_table
protected

◆ d_to

double Filter::d_to
protected

◆ d_tolerance

double Filter::d_tolerance
protected

◆ d_update_output_graph

bool Filter::d_update_output_graph
protected

Specifies if the filter should update the output graph.

Referenced by addResultCurve(), Fit::generateFitCurve(), init(), Differentiation::output(), and setUpdateOutputGraph().

◆ d_x

double* Filter::d_x
protected

◆ d_y

double* Filter::d_y
protected

◆ d_y_col_name

QString Filter::d_y_col_name
protected

The documentation for this class was generated from the following files: