All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Defines
Signals | Public Member Functions | Static Public Attributes | Protected Member Functions | Protected Attributes
SciFigs::IrregularGrid2DPlot Class Reference

A IrregularGrid2DPlot is a layer to plot a 2D grid whose cells have variable widths and heigths. More...

#include <IrregularGrid2DPlot.h>

Inheritance diagram for SciFigs::IrregularGrid2DPlot:
SciFigs::GridPlot SciFigs::GraphContentLayer QGpGuiTools::PropertyItem QGpCoreTools::XMLClass

List of all members.

Signals

void clicked (int ix, int iy)

Public Member Functions

virtual Rect boundingRect () const
virtual QString coordinateTipInfo (const Point2D &p) const
const IrregularGrid2Dgrid () 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

Detailed Description

A IrregularGrid2DPlot is a layer to plot a 2D grid whose cells have variable widths and heigths.


Constructor & Destructor Documentation

References TRACE.

                                                            :
    GridPlot(parent)
{
  TRACE;
  addActions();
}

References TRACE.

{
  TRACE;
}

Member Function Documentation

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");
  }
}
bool SciFigs::IrregularGrid2DPlot::mouseReleaseEvent ( QMouseEvent *  e,
int   
) [virtual]
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);
  }
}

Adjust palette to maximum only

References _grid, QGpCoreTools::IrregularGrid2D::maximumValue(), setLinearPalette(), and TRACE.

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]
virtual const QString& SciFigs::IrregularGrid2DPlot::xml_tagName ( ) const [inline, virtual]

Reimplemented from SciFigs::GridPlot.


Member Data Documentation

const QString SciFigs::IrregularGrid2DPlot::xmlIrregularGrid2DPlotTag = "IrregularGrid2DPlot" [static]

The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Defines