Brief description of class still missing. More...
#include <IrregularGrid2DDraw.h>
Public Member Functions | |
| IrregularGrid2DDraw () | |
| void | setCellLimits () |
| void | setCellNodes (const IrregularGrid2D &grid, const GraphContentOptions &gc) |
| void | setVisibleArea (const IrregularGrid2D &grid, const GraphContentOptions &gc) |
| ~IrregularGrid2DDraw () | |
Public Attributes | |
| int * | limx |
| int * | limy |
| int * | nodex |
| int * | nodey |
| int | nx |
| int | ny |
| int | startix |
| int | startiy |
| int | stopix |
| int | stopiy |
Brief description of class still missing.
Full description of class still missing
| SciFigs::IrregularGrid2DDraw::IrregularGrid2DDraw | ( | ) | [inline] |
| SciFigs::IrregularGrid2DDraw::~IrregularGrid2DDraw | ( | ) | [inline] |
Returns the x and y limits of the cells inside the visible areaas well as the screen coordinates of the cell nodes. start/stop/ix/iy must have been initialized before calling this function (see getVisibleArea() and getCellNodes())
References limx, limy, nodex, nodey, nx, ny, and TRACE.
Referenced by SciFigs::IrregularGrid2DPlot::paintData(), and SciFigs::LiveGridLayer::paintData().
{
TRACE;
// Calculate the limits of blocks in for x axis (limx)
limx=new int [ nx + 1 ];
limx[ 0 ]=(3 * nodex[ 0 ] - nodex[ 1 ] ) >> 1;
for(int ix=1;ix < nx;ix++ )
limx[ ix ]=(nodex[ ix - 1 ] + nodex[ ix ] ) >> 1;
limx[ nx ]=(3 * nodex[ nx - 1 ] - nodex[ nx - 2 ] ) >> 1;
// Calculate the limits of blocks in for y axis (limy)
limy=new int [ ny + 1 ];
limy[ 0 ]=(3 * nodey[ 0 ] - nodey[ 1 ] ) >> 1;
for(int iy=1;iy < ny;iy++ )
limy[ iy ]=(nodey[ iy - 1 ] + nodey[ iy ] ) >> 1;
limy[ ny ]=(3 * nodey[ ny - 1 ] - nodey[ ny - 2 ] ) >> 1;
}
| void SciFigs::IrregularGrid2DDraw::setCellNodes | ( | const IrregularGrid2D & | grid, |
| const GraphContentOptions & | gc | ||
| ) |
Returns the x and y screen coordinates of the cell nodes inside the visible areaas start/stop/ix/iy must have been initialized before calling this function (see getVisibleArea())
References nodex, nodey, nx, ny, startix, startiy, stopix, stopiy, TRACE, QGpCoreTools::IrregularGrid2D::x(), SciFigs::GraphContentOptions::xr2s(), QGpCoreTools::IrregularGrid2D::y(), and SciFigs::GraphContentOptions::yr2s().
Referenced by SciFigs::IrregularGrid2DPlot::paintData(), and SciFigs::LiveGridLayer::paintData().
{
TRACE;
// Create two int vectors containing the x and y of nodes (centers of blocks)
nx=stopix-startix+1;
ASSERT(nx>0);
nodex=new int[nx];
int * ptr=nodex;
for(int ix=startix; ix<=stopix; ix++, ptr++) {
*ptr=gc.xr2s(grid.x(ix));
}
ny=stopiy-startiy+1;
ASSERT(ny>0);
nodey=new int[ny];
ptr=nodey;
for(int iy=startiy; iy<=stopiy; iy++, ptr++) {
*ptr=gc.yr2s(grid.y(iy));
}
}
| void SciFigs::IrregularGrid2DDraw::setVisibleArea | ( | const IrregularGrid2D & | grid, |
| const GraphContentOptions & | gc | ||
| ) |
Returns the x and y index limits of the visible area. The grid index order is the same as the axis, hence there is no need to check the correctness of startix<stopix, this is always true.
References QGpCoreTools::IrregularGrid2D::indexOfX(), QGpCoreTools::IrregularGrid2D::indexOfY(), QGpCoreTools::IrregularGrid2D::nx(), QGpCoreTools::IrregularGrid2D::ny(), startix, startiy, stopix, stopiy, TRACE, TRACE_BUG, TRACE_BUG_INT, TRACE_BUG_N, SciFigs::GraphContentOptions::xVisMax(), SciFigs::GraphContentOptions::xVisMin(), SciFigs::GraphContentOptions::yVisMax(), and SciFigs::GraphContentOptions::yVisMin().
Referenced by SciFigs::IrregularGrid2DPlot::paintData(), and SciFigs::LiveGridLayer::paintData().
{
TRACE;
TRACE_BUG;
startix=grid.indexOfX(gc.xVisMin());
stopix=grid.indexOfX(gc.xVisMax());
TRACE_BUG_INT(startix);
TRACE_BUG_INT(stopix);
TRACE_BUG_INT(grid.nx());
startix--;
stopix++;
if(startix<0) startix=0;
if(stopix>=grid.nx()) stopix=grid.nx()-1;
ASSERT(stopix-startix+1>0);
TRACE_BUG_N(1);
startiy=grid.indexOfY(gc.yVisMin());
stopiy=grid.indexOfY(gc.yVisMax());
TRACE_BUG_INT(startiy);
TRACE_BUG_INT(stopiy);
TRACE_BUG_INT(grid.ny());
startiy--;
stopiy++;
if(startiy<0) startiy=0;
if(stopiy>=grid.ny()) stopiy=grid.ny()-1;
ASSERT(stopiy-startiy+1>0);
}
Referenced by SciFigs::GridPlot::drawGrid2DBlock(), SciFigs::GridPlot::drawGridLines(), setCellLimits(), and setCellNodes().
Referenced by SciFigs::GridPlot::drawGrid2DBlock(), SciFigs::GridPlot::drawGridLines(), setCellLimits(), and setCellNodes().
Referenced by SciFigs::GridPlot::drawGrid2DSmooth(), setCellNodes(), and setVisibleArea().
Referenced by SciFigs::GridPlot::drawGrid2DSmooth(), setCellNodes(), and setVisibleArea().