32 #include <QApplication>
37 #include <qwt_raster_data.h>
39 #include <qwt_plot_spectrogram.h>
40 #include <qwt_plot_marker.h>
59 int levels(){
return (
int)contourLevels().size();};
127 QwtDoubleInterval
range()
const;
130 virtual QImage
renderImage(
const QwtScaleMap &xMap,
const QwtScaleMap &yMap,
const QwtDoubleRect &rect)
const;
131 virtual void drawContourLines (QPainter *p,
const QwtScaleMap &xMap,
const QwtScaleMap &yMap,
const QwtRasterData::ContourLines &lines)
const;
132 void updateLabels(QPainter *p,
const QwtScaleMap &xMap,
const QwtScaleMap &yMap,
const QwtRasterData::ContourLines &lines)
const;
177 QwtRasterData(m->boundingRect()),
221 for(
int row = 0; row <
n_rows; row++){
222 double r = row + 1.0;
225 for(
int col = 0; col <
n_cols; col++){
226 double c = col + 1.0;
237 for(
int row = 0; row <
n_rows; row++){
238 double r = row + 1.0;
241 for(
int col = 0; col <
n_cols; col++){
242 double c = col + 1.0;
251 qApp->processEvents();
265 virtual QwtRasterData *
copy()
const
273 virtual QwtDoubleInterval
range()
const
283 virtual double value(
double x,
double y)
const;
bool labelsWhiteOut()
Definition: Spectrogram.h:96
Definition: Spectrogram.h:51
void createLabels()
Definition: Spectrogram.cpp:384
Definition: Spectrogram.h:51
bool hasLabels()
Definition: Spectrogram.h:85
void setColorMapPen(bool on=true)
Definition: Spectrogram.cpp:692
QList< PlotMarker * > labelsList()
Definition: Spectrogram.h:86
QVariant eval()
Definition: muParserScript.cpp:444
bool selectedLabels(const QPoint &pos)
Definition: Spectrogram.cpp:571
void setLevelsNumber(int levels)
Definition: Spectrogram.cpp:131
double d_labels_y_offset
Definition: Spectrogram.h:155
A 2D-plotting widget.
Definition: Graph.h:123
ScriptingEnv * scriptingEnv()
Definition: Script.h:158
QString saveToString()
Used when saving a project file.
Definition: Spectrogram.cpp:312
double x_start
X axis left value in the data matrix.
Definition: Spectrogram.h:299
void selectLabel(bool on)
Definition: Spectrogram.cpp:596
Spectrogram * copy(Graph *g)
Definition: Spectrogram.cpp:230
virtual double value(double x, double y) const
Definition: Spectrogram.cpp:809
bool useMatrixFormula()
Definition: Spectrogram.h:123
ColorMapPolicy color_map_policy
Flags.
Definition: Spectrogram.h:143
double labelsRotation()
Definition: Spectrogram.h:104
Graph * d_graph
Pointer to the parent plot.
Definition: Spectrogram.h:135
void setLabelsColor(const QColor &c)
Definition: Spectrogram.cpp:508
int numCols()
Return the number of columns.
Definition: Matrix.h:118
double y_start
Y axis bottom value in the data matrix.
Definition: Spectrogram.h:302
double d_labels_x_offset
Definition: Spectrogram.h:155
Definition: Spectrogram.h:46
TODO.
Definition: muParserScript.h:42
bool d_use_matrix_formula
Flag telling that we evaluate the matrix expression instead of using the matrix data.
Definition: Spectrogram.h:165
bool d_color_map_pen
Flag telling if we use the color map to calculate the pen (QwtPlotSpectrogram::contourPen()).
Definition: Spectrogram.h:168
Matrix * d_matrix
Pointer to the source data matrix.
Definition: Spectrogram.h:287
virtual void setVisible(bool on)
Definition: Spectrogram.cpp:672
double yStart()
Returns the Y value corresponding to row 1.
Definition: Matrix.h:270
double d_click_pos_y
Definition: Spectrogram.h:162
void setDefaultColorMap()
Definition: Spectrogram.cpp:284
double labelsXOffset()
Definition: Spectrogram.h:99
void setLabelsOffset(double x, double y)
Definition: Spectrogram.cpp:539
bool d_white_out_labels
Flag telling if we paint a white background for the labels.
Definition: Spectrogram.h:153
bool compile(bool asFunction=true)
Definition: muParserScript.cpp:349
void setContourPenList(QList< QPen > lst)
Definition: Spectrogram.cpp:701
Definition: Spectrogram.h:51
virtual QwtDoubleRect boundingRect() const
Definition: Spectrogram.cpp:379
QList< QPen > d_pen_list
Definition: Spectrogram.h:170
double labelsYOffset()
Definition: Spectrogram.h:100
A customized QwtLinearColorMap.
Definition: LinearColorMap.h:39
QColor d_labels_color
Labels color.
Definition: Spectrogram.h:149
LinearColorMap color_map
Definition: Spectrogram.h:145
muParserScript * d_mup
Pointer to a muParserScript.
Definition: Spectrogram.h:305
virtual QwtDoubleInterval range() const
Definition: Spectrogram.h:273
bool hasColorScale()
Definition: Spectrogram.cpp:152
void setLabelsWhiteOut(bool whiteOut)
Definition: Spectrogram.cpp:522
LinearColorMap * colorMapPointer()
Definition: Spectrogram.h:75
int colorScaleAxis()
Definition: Spectrogram.h:64
Matrix * matrix()
Definition: Spectrogram.h:56
QFont d_labels_font
Labels font.
Definition: Spectrogram.h:151
bool setMatrix(Matrix *m, bool useFormula=false)
Definition: Spectrogram.cpp:96
int numRows()
Return the number of rows.
Definition: Matrix.h:114
double d_click_pos_x
Keep track of the coordinates of the point where the user clicked when selecting the labels...
Definition: Spectrogram.h:162
ColorMapPolicy
Definition: Spectrogram.h:51
double dx
Data resolution in x(columns) and y(rows)
Definition: Spectrogram.h:296
void updateData()
Definition: Spectrogram.cpp:71
Matrix * d_matrix
Pointer to the source data matrix.
Definition: Spectrogram.h:137
virtual QwtRasterData * copy() const
Definition: Spectrogram.h:265
QList< PlotMarker * > d_labels_list
List of the text labels associated to this spectrogram.
Definition: Spectrogram.h:158
bool useColorMapPen()
Definition: Spectrogram.h:116
void setContourLevels(const QwtValueList &levels)
Definition: Spectrogram.cpp:146
QwtDoubleInterval range() const
Definition: Spectrogram.cpp:86
double min_z
Min and max values in the source data matrix.
Definition: Spectrogram.h:293
int n_cols
Definition: Spectrogram.h:290
ColorMapPolicy colorMapPolicy()
Definition: Spectrogram.h:81
QString formula()
Return the matrix formula.
Definition: Matrix.h:231
QList< QPen > contourPenList()
Definition: Spectrogram.h:118
Matrix worksheet class.
Definition: Matrix.h:57
void setColorBarWidth(int width)
Definition: Spectrogram.cpp:221
int colorBarWidth()
Definition: Spectrogram.cpp:212
void clearLabels()
Definition: Spectrogram.cpp:663
QColor labelsColor()
Definition: Spectrogram.h:93
void setLabelsRotation(double angle)
Definition: Spectrogram.cpp:560
virtual QPen contourPen(double level) const
Definition: Spectrogram.cpp:679
void setColorScaleAxis(int axis)
Definition: Spectrogram.h:65
void setLabelsFont(const QFont &font)
Definition: Spectrogram.cpp:494
Definition: PlotCurve.h:237
double * d_ri
Definition: Spectrogram.h:307
void showContourLineLabels(bool show=true)
Definition: Spectrogram.cpp:413
virtual QImage renderImage(const QwtScaleMap &xMap, const QwtScaleMap &yMap, const QwtDoubleRect &rect) const
Definition: Spectrogram.cpp:740
double * defineVariable(const char *name, double val=0.0)
Definition: muParserScript.cpp:249
void showColorScale(int axis, bool on=true)
Definition: Spectrogram.cpp:167
QFont labelsFont()
Definition: Spectrogram.h:90
int n_rows
Data size.
Definition: Spectrogram.h:290
~MatrixData()
Definition: Spectrogram.h:259
double dy
Definition: Spectrogram.h:296
bool d_show_labels
Flag telling if we display the labels.
Definition: Spectrogram.h:147
double evalSingleLine()
Definition: muParserScript.cpp:429
PlotMarker * d_selected_label
Keeps track of the plot marker on which the user clicked when selecting the labels.
Definition: Spectrogram.h:160
void range(double *min, double *max)
Min and max values of the matrix.
Definition: Matrix.cpp:1185
bool hasSelectedLabels()
Definition: Spectrogram.cpp:620
bool canCalculate(bool useMuParser=true)
Definition: Matrix.cpp:546
void setGrayScale()
Definition: Spectrogram.cpp:270
double * d_x
Pointers to internal variables of the muParserScript.
Definition: Spectrogram.h:307
double * d_rr
Definition: Spectrogram.h:307
virtual QSize rasterHint(const QwtDoubleRect &) const
Definition: Spectrogram.h:278
void setContourLinePen(int index, const QPen &pen)
Definition: Spectrogram.cpp:708
bool setUseMatrixFormula(bool on=true)
Definition: Spectrogram.cpp:730
double d_labels_angle
Definition: Spectrogram.h:154
Definition: Spectrogram.h:173
double * d_cj
Definition: Spectrogram.h:307
void setLabelOffset(int index, double x, double y)
Definition: Spectrogram.cpp:548
int codeLines()
Definition: muParserScript.h:59
LinearColorMap colorMap()
Definition: Spectrogram.h:74
virtual void drawContourLines(QPainter *p, const QwtScaleMap &xMap, const QwtScaleMap &yMap, const QwtRasterData::ContourLines &lines) const
Definition: Spectrogram.cpp:428
int color_axis
Axis used to display the color scale.
Definition: Spectrogram.h:140
double dx()
Returns the step of the X axis.
Definition: Matrix.h:275
void setCustomColorMap(const LinearColorMap &map)
Definition: Spectrogram.cpp:298
double * d_y
Definition: Spectrogram.h:307
double dy()
Returns the step of the Y axis.
Definition: Matrix.h:277
Spectrogram(Graph *graph, Matrix *m)
Definition: Spectrogram.cpp:41
Graph * graph()
Definition: Spectrogram.h:54
void updateLabels(QPainter *p, const QwtScaleMap &xMap, const QwtScaleMap &yMap, const QwtRasterData::ContourLines &lines) const
Definition: Spectrogram.cpp:459
int levels()
Definition: Spectrogram.h:59
void moveLabel(const QPoint &pos)
Definition: Spectrogram.cpp:638
double xStart()
Returns the X value corresponding to column 1.
Definition: Matrix.h:266
double max_z
Definition: Spectrogram.h:293
MatrixData(Matrix *m, bool useMatrixFormula=false)
Definition: Spectrogram.h:176
double * d_cc
Definition: Spectrogram.h:307