MCPcopy Create free account
hub / github.com/CieNTi/serial_port_plotter / sanitizedForLogScale

Method sanitizedForLogScale

qcustomplot/qcustomplot.cpp:2037–2080  ·  view source on GitHub ↗

! Returns a sanitized version of the range. Sanitized means for logarithmic scales, that the range won't span the positive and negative sign domain, i.e. contain zero. Further \a lower will always be numerically smaller (or equal) to \a upper. If the original range does span positive and negative sign domains or contains zero, the returned range will try to approximate the original ra

Source from the content-addressed store, hash-verified

2035 is wider than the positive interval, this time by changing the \a upper bound.
2036*/
2037QCPRange QCPRange::sanitizedForLogScale() const
2038{
2039 double rangeFac = 1e-3;
2040 QCPRange sanitizedRange(lower, upper);
2041 sanitizedRange.normalize();
2042 // can't have range spanning negative and positive values in log plot, so change range to fix it
2043 //if (qFuzzyCompare(sanitizedRange.lower+1, 1) && !qFuzzyCompare(sanitizedRange.upper+1, 1))
2044 if (sanitizedRange.lower == 0.0 && sanitizedRange.upper != 0.0)
2045 {
2046 // case lower is 0
2047 if (rangeFac < sanitizedRange.upper*rangeFac)
2048 sanitizedRange.lower = rangeFac;
2049 else
2050 sanitizedRange.lower = sanitizedRange.upper*rangeFac;
2051 } //else if (!qFuzzyCompare(lower+1, 1) && qFuzzyCompare(upper+1, 1))
2052 else if (sanitizedRange.lower != 0.0 && sanitizedRange.upper == 0.0)
2053 {
2054 // case upper is 0
2055 if (-rangeFac > sanitizedRange.lower*rangeFac)
2056 sanitizedRange.upper = -rangeFac;
2057 else
2058 sanitizedRange.upper = sanitizedRange.lower*rangeFac;
2059 } else if (sanitizedRange.lower < 0 && sanitizedRange.upper > 0)
2060 {
2061 // find out whether negative or positive interval is wider to decide which sign domain will be chosen
2062 if (-sanitizedRange.lower > sanitizedRange.upper)
2063 {
2064 // negative is wider, do same as in case upper is 0
2065 if (-rangeFac > sanitizedRange.lower*rangeFac)
2066 sanitizedRange.upper = -rangeFac;
2067 else
2068 sanitizedRange.upper = sanitizedRange.lower*rangeFac;
2069 } else
2070 {
2071 // positive is wider, do same as in case lower is 0
2072 if (rangeFac < sanitizedRange.upper*rangeFac)
2073 sanitizedRange.lower = rangeFac;
2074 else
2075 sanitizedRange.lower = sanitizedRange.upper*rangeFac;
2076 }
2077 }
2078 // due to normalization, case lower>0 && upper<0 should never occur, because that implies upper<lower
2079 return sanitizedRange;
2080}
2081
2082/*!
2083 Returns a sanitized version of the range. Sanitized means for linear scales, that

Callers 7

setScaleTypeMethod · 0.80
setRangeMethod · 0.80
setRangeLowerMethod · 0.80
setRangeUpperMethod · 0.80
scaleRangeMethod · 0.80
setDataScaleTypeMethod · 0.80
setDataRangeMethod · 0.80

Calls 1

normalizeMethod · 0.80

Tested by

no test coverage detected