Engauge Digitizer 2
Loading...
Searching...
No Matches
GridLineNormalize Class Reference

Normalize the four parameters used to define a grid line for display or removal. More...

#include <GridLineNormalize.h>

Collaboration diagram for GridLineNormalize:
Collaboration graph

Public Member Functions

 GridLineNormalize (const MainWindowModel &modelMainWindow)
 Default constructor.
virtual ~GridLineNormalize ()
void normalize (bool isLinear, GridCoordDisable disable, double &start, double &step, double &stop, unsigned int &num) const
 Normalize the quartet of grid line parameters by adjusting the disabled one to achieve consistency.

Detailed Description

Normalize the four parameters used to define a grid line for display or removal.

Definition at line 15 of file GridLineNormalize.h.

Constructor & Destructor Documentation

◆ GridLineNormalize()

GridLineNormalize::GridLineNormalize ( const MainWindowModel & modelMainWindow)

Default constructor.

Definition at line 11 of file GridLineNormalize.cpp.

11 :
12 m_maximumGridLines (modelMainWindow.maximumGridLines())
13{
14}
int maximumGridLines() const
Get method for maximum number of grid lines.

◆ ~GridLineNormalize()

GridLineNormalize::~GridLineNormalize ( )
virtual

Definition at line 16 of file GridLineNormalize.cpp.

17{
18}

Member Function Documentation

◆ normalize()

void GridLineNormalize::normalize ( bool isLinear,
GridCoordDisable disable,
double & start,
double & step,
double & stop,
unsigned int & num ) const

Normalize the quartet of grid line parameters by adjusting the disabled one to achieve consistency.

Definition at line 20 of file GridLineNormalize.cpp.

26{
27 // Make sure we are not using any disabled parameters
28
29 double numMinus1 = qMax (1.0, num - 1.0);
30
31 if (isLinear) {
32
33 // Linear case
34 if (disable == GRID_COORD_DISABLE_START) {
35 start = stop - numMinus1 * step;
36 } else if (disable == GRID_COORD_DISABLE_STEP) {
37 step = (stop - start) / numMinus1;
38 } else if (disable == GRID_COORD_DISABLE_STOP) {
39 stop = start + numMinus1 * step;
40 } else if (disable == GRID_COORD_DISABLE_COUNT) {
41 if (qAbs (step) * m_maximumGridLines < qAbs (stop - start)) {
42 num = m_maximumGridLines;
43 } else {
44 num = qFloor (0.5 + 1.0 + (stop - start) / step);
45 }
46 }
47 } else {
48
49 // Log case
50 if (disable == GRID_COORD_DISABLE_START) {
51 start = stop / qPow (step, numMinus1);
52 } else if (disable == GRID_COORD_DISABLE_STEP) {
53 step = qExp (qLn (stop / start) / numMinus1);
54 } else if (disable == GRID_COORD_DISABLE_STOP) {
55 stop = start * qPow (step, numMinus1);
56 } else if (disable == GRID_COORD_DISABLE_COUNT) {
57 if (start <= 0.0 || step <= 0.0 || stop <= 0.) {
58 num = 2;
59 } else if (qAbs (qLn (step)) * m_maximumGridLines < qAbs (qLn (stop / start))) {
60 num = m_maximumGridLines;
61 } else {
62 num = qFloor (0.5 + 1.0 + qLn (stop / start) / qLn (step));
63 }
64 }
65 }
66}
@ GRID_COORD_DISABLE_STOP
@ GRID_COORD_DISABLE_START
@ GRID_COORD_DISABLE_STEP
@ GRID_COORD_DISABLE_COUNT

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