A IrregularGrid2DPlot is a layer to plot a 2D grid whose cells have variable widths and heigths. More...
#include <IrregularGrid2DPlot.h>
Signals | |
| void | clicked (int ix, int iy) |
Public Member Functions | |
| virtual Rect | boundingRect () const |
| virtual QString | coordinateTipInfo (const Point2D &p) const |
| const IrregularGrid2D & | grid () const |
| IrregularGrid2DPlot (AxisWindow *parent=0) | |
| virtual bool | mouseReleaseEvent (QMouseEvent *e, int) |
| void | setGrid (const IrregularGrid2D &grid) |
| void | setLinearPalette () |
| void | setLinearPalette (double minimum) |
| void | setLinearPalette (double minimum, double maximum) |
| virtual bool | trackRectangle (int, double rx1, double ry1, double rx2, double ry2, Qt::KeyboardModifiers eventState) |
| virtual const QString & | xml_tagName () const |
| ~IrregularGrid2DPlot () | |
Static Public Attributes | |
| static const QString | xmlIrregularGrid2DPlotTag = "IrregularGrid2DPlot" |
Protected Member Functions | |
| virtual void | paintData (const LayerPainterRequest &lp, QPainter &p, double dotpercm) const |
Protected Attributes | |
| IrregularGrid2D | _grid |
A IrregularGrid2DPlot is a layer to plot a 2D grid whose cells have variable widths and heigths.
| SciFigs::IrregularGrid2DPlot::IrregularGrid2DPlot | ( | AxisWindow * | parent = 0 | ) |
| Rect SciFigs::IrregularGrid2DPlot::boundingRect | ( | ) | const [virtual] |
Implements SciFigs::GraphContentLayer.
References _grid, QGpCoreTools::IrregularGrid2D::bottom(), QGpCoreTools::IrregularGrid2D::left(), QGpCoreTools::IrregularGrid2D::nx(), QGpCoreTools::IrregularGrid2D::ny(), QGpCoreTools::IrregularGrid2D::right(), QGpCoreTools::Rect::setLimits(), QGpCoreTools::IrregularGrid2D::top(), and TRACE.
Referenced by TFAResults::compute(), HistogramWidget::setHistogram(), and MonoStation::AbstractSummary::setLimits().
| void SciFigs::IrregularGrid2DPlot::clicked | ( | int | ix, |
| int | iy | ||
| ) | [signal] |
Referenced by mouseReleaseEvent().
| QString SciFigs::IrregularGrid2DPlot::coordinateTipInfo | ( | const Point2D & | p | ) | const [virtual] |
Reimplemented from SciFigs::GraphContentLayer.
References _grid, SciFigs::GraphContentLayer::graph(), QGpCoreTools::IrregularGrid2D::indexOfX(), QGpCoreTools::IrregularGrid2D::indexOfY(), SciFigs::Axis::numberPrecision, SciFigs::Axis::numberType, QGpCoreTools::IrregularGrid2D::nx(), QGpCoreTools::IrregularGrid2D::ny(), str, TRACE, QGpCoreTools::IrregularGrid2D::value(), QGpCoreTools::Point2D::x(), SciFigs::AxisWindow::xAxis(), QGpCoreTools::Point2D::y(), and SciFigs::AxisWindow::yAxis().
{
TRACE;
if(_grid.nx()==0 || _grid.ny()==0) return QString::null;
int ix=_grid.indexOfX(p.x());
int iy=_grid.indexOfY(p.y());
Axis * xAxis=graph()->xAxis();
Axis * yAxis=graph()->yAxis();
QString str("(%1 ; %2 ; %3)");
str=str.arg(Number::toString(p.x(), xAxis->numberType(), xAxis->numberPrecision()+2) )
.arg(Number::toString(p.y(), yAxis->numberType(), yAxis->numberPrecision()+2) );
if(ix>-1 && ix<_grid.nx() && iy>-1 && iy<_grid.ny()) {
return str.arg(_grid.value(ix, iy), 0, 'g');
} else {
return str.arg( "NaN");
}
}
| const IrregularGrid2D& SciFigs::IrregularGrid2DPlot::grid | ( | ) | const [inline] |
Referenced by HistogramWidget::fillGrid(), StatGridAnalyser::gridChanged(), StatGridAnalyser::on_freqScroll_valueChanged(), StatGridAnalyser::on_rejectAllBut_clicked(), StatGridAnalyser::on_rejectBut_clicked(), StatGridAnalyser::on_undoAllBut_clicked(), StatGridAnalyser::on_undoBut_clicked(), HVRotateStation::resultMaxAmplitude(), SpectrumRotateStation::resultMaxAmplitude(), HistogramWidget::select(), setGrid(), HistogramWidget::setHistogram(), and LinearFKActiveResults::stackGrids().
{return _grid;}
| bool SciFigs::IrregularGrid2DPlot::mouseReleaseEvent | ( | QMouseEvent * | e, |
| int | |||
| ) | [virtual] |
Reimplemented from SciFigs::GraphContentLayer.
References _grid, clicked(), SciFigs::GraphContentLayer::graphContent(), QGpCoreTools::IrregularGrid2D::indexOfX(), QGpCoreTools::IrregularGrid2D::indexOfY(), SciFigs::GraphContent::options(), SciFigs::GraphContentOptions::s2r2D(), TRACE, QGpCoreTools::Point2D::x(), and QGpCoreTools::Point2D::y().
| void SciFigs::IrregularGrid2DPlot::paintData | ( | const LayerPainterRequest & | lp, |
| QPainter & | p, | ||
| double | dotpercm | ||
| ) | const [protected, virtual] |
Implements SciFigs::GraphContentLayer.
References _grid, SciFigs::GridPlot::drawGrid2DBlock(), SciFigs::GridPlot::drawGrid2DSmooth(), SciFigs::GridPlot::drawGridLines(), QGpCoreTools::IrregularGrid2D::nx(), QGpCoreTools::IrregularGrid2D::ny(), SciFigs::LayerPainterRequest::options(), SciFigs::GridPlot::palette(), SciFigs::IrregularGrid2DDraw::setCellLimits(), SciFigs::IrregularGrid2DDraw::setCellNodes(), SciFigs::IrregularGrid2DDraw::setVisibleArea(), SciFigs::GridPlot::showGrid(), SciFigs::GridPlot::smooth(), and TRACE.
{
TRACE;
if(_grid.nx()<2 || _grid.ny()<2) return;
const GraphContentOptions& gc=lp.options();
IrregularGrid2DDraw d;
// Get the limit of visible area in terms of grid indexes
d.setVisibleArea(_grid, gc);
// Create two int vectors containing the x and y of nodes (centers of blocks)
d.setCellNodes(_grid, gc);
if(smooth()) {
if(showGrid()) d.setCellLimits();
drawGrid2DSmooth(_grid, palette(), lp, p, d);
} else {
d.setCellLimits();
drawGrid2DBlock(_grid, palette(), lp, p, d);
}
if(showGrid()) {
drawGridLines(p, d);
}
}
| void SciFigs::IrregularGrid2DPlot::setGrid | ( | const IrregularGrid2D & | grid | ) |
Set current grid.
References _grid, grid(), and TRACE.
Referenced by TFAResults::compute(), createGrid(), HistogramWidget::fillGrid(), HistogramWidget::initGrid(), SpacSelector::inverse(), HistogramWidget::setHistogram(), MonoStation::AbstractSummary::setSpectrumGridValues(), LinearFKActiveResults::stackGrids(), HVRotateStation::start(), and SpectrumRotateStation::start().
Adjust palette to grid minimum and maximum
References _grid, QGpCoreTools::IrregularGrid2D::maximumValue(), QGpCoreTools::IrregularGrid2D::minimumValue(), and TRACE.
Referenced by TFAResults::compute(), createGrid(), MonoStation::AbstractSummary::setLimits(), setLinearPalette(), and LinearFKActiveResults::stackGrids().
{
TRACE;
setLinearPalette(_grid.minimumValue(), _grid.maximumValue());
}
| void SciFigs::IrregularGrid2DPlot::setLinearPalette | ( | double | minimum | ) |
Adjust palette to maximum only
References _grid, QGpCoreTools::IrregularGrid2D::maximumValue(), setLinearPalette(), and TRACE.
{
TRACE;
setLinearPalette(minimum, _grid.maximumValue());
}
| void SciFigs::IrregularGrid2DPlot::setLinearPalette | ( | double | minVal, |
| double | maxVal | ||
| ) | [inline] |
Set a linear scale on palette. Safe for painting threads. For other modification of the palette see setPalette().
Reimplemented from SciFigs::GridPlot.
References SciFigs::GridPlot::setLinearPalette().
{GridPlot::setLinearPalette(minimum, maximum);}
| bool SciFigs::IrregularGrid2DPlot::trackRectangle | ( | int | , |
| double | rx1, | ||
| double | ry1, | ||
| double | rx2, | ||
| double | ry2, | ||
| Qt::KeyboardModifiers | eventState | ||
| ) | [virtual] |
Reimplemented from SciFigs::GraphContentLayer.
References SciFigs::GridPlot::_fillType, SciFigs::GridPlot::_fillValue, _grid, QGpCoreTools::IrregularGrid2D::coordinates(), SciFigs::GraphContent::deepUpdate(), SciFigs::GraphContentLayer::graphContent(), QGpCoreTools::Rect::includes(), QGpCoreTools::IrregularGrid2D::nx(), QGpCoreTools::IrregularGrid2D::ny(), TRACE, and QGpCoreTools::IrregularGrid2D::valuePointer().
{
TRACE;
Rect r(rx1, ry1, rx2, ry2);
int nx=_grid.nx(), ny=_grid.ny();
for(int iy=0;iy < ny;iy++ ) {
for(int ix=0;ix < nx;ix++ ) {
Point2D p=_grid.coordinates(ix, iy);
if(r.includes(p, _fillType) )
* _grid.valuePointer(ix, iy)=_fillValue;
}
}
graphContent()->deepUpdate();
return true;
}
| virtual const QString& SciFigs::IrregularGrid2DPlot::xml_tagName | ( | ) | const [inline, virtual] |
Reimplemented from SciFigs::GridPlot.
{return xmlIrregularGrid2DPlotTag;}
IrregularGrid2D SciFigs::IrregularGrid2DPlot::_grid [protected] |
Referenced by boundingRect(), coordinateTipInfo(), mouseReleaseEvent(), paintData(), setGrid(), setLinearPalette(), and trackRectangle().
const QString SciFigs::IrregularGrid2DPlot::xmlIrregularGrid2DPlotTag = "IrregularGrid2DPlot" [static] |
Referenced by SciFigs::LiveGridLayer::xml_tagName().