Snap Y-axis range to nice decimal bounds in gl2 figures.
PiperOrigin-RevId: 830355030 Change-Id: I2e9f145fb8c626dd671d286560c8334202586c6b
This commit is contained in:
committed by
Copybara-Service
parent
4e46db8903
commit
1c6a05de98
+20
-5
@@ -879,11 +879,26 @@ void mjr_figure(mjrRect viewport, mjvFigure* fig, const mjrContext* con) {
|
|||||||
range[axis][1] += 0.5f*needed;
|
range[axis][1] += 0.5f*needed;
|
||||||
}
|
}
|
||||||
|
|
||||||
// make y-range symmetric
|
// special handling for Y-axis
|
||||||
if (fig->flg_symmetric) {
|
if (axis == 1) {
|
||||||
float ymax = mjMAX(fabsf(range[1][0]), fabsf(range[1][1]));
|
// get current range
|
||||||
range[1][0] = -ymax;
|
float y_min = range[1][0];
|
||||||
range[1][1] = +ymax;
|
float y_max = range[1][1];
|
||||||
|
float diff = y_max - y_min;
|
||||||
|
|
||||||
|
// snap to nearest enclosing decimal bounds
|
||||||
|
if (diff > 0) {
|
||||||
|
float power = powf(10, floorf(log10f(diff)));
|
||||||
|
range[1][0] = floorf(y_min / power) * power;
|
||||||
|
range[1][1] = ceilf(y_max / power) * power;
|
||||||
|
}
|
||||||
|
|
||||||
|
// make range symmetric
|
||||||
|
if (fig->flg_symmetric) {
|
||||||
|
float y_sym = mjMAX(fabsf(range[1][0]), fabsf(range[1][1]));
|
||||||
|
range[1][0] = -y_sym;
|
||||||
|
range[1][1] = +y_sym;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user