mirror of https://github.com/KLayout/klayout.git
Implemented solution for #2057 (nanometer scalebar)
The scale bar switches to nm below 0.1µm. Correspondingly it will switch to mm above 100µm.
This commit is contained in:
parent
7b865451ee
commit
6cccb81293
|
|
@ -538,7 +538,22 @@ GridNet::render_bg (const lay::Viewport &vp, ViewObjectCanvas &canvas)
|
|||
db::Point (xoffset + int (floor (0.5 + 2 * dgrid)), vp.height () - yoffset + rh / 2),
|
||||
ruler_color);
|
||||
|
||||
painter.draw_text (tl::sprintf ("%g \265m", grid * 2).c_str (),
|
||||
double grid_value = grid * 2;
|
||||
std::string fmt = "%g \265m";
|
||||
if (grid_value < 0.1 * (1 + db::epsilon)) {
|
||||
grid_value *= 1000.0;
|
||||
fmt = "%g nm";
|
||||
} else if (grid_value < 100.0 * (1 + db::epsilon)) {
|
||||
fmt = "%g \265m";
|
||||
} else if (grid_value < 100000.0 * (1 + db::epsilon)) {
|
||||
grid_value *= 1e-3;
|
||||
fmt = "%g mm";
|
||||
} else {
|
||||
grid_value *= 1e-6;
|
||||
fmt = "%g m";
|
||||
}
|
||||
|
||||
painter.draw_text (tl::sprintf (fmt, grid_value).c_str (),
|
||||
db::Point (xoffset + int (floor (0.5 + trans.ctrans (2 * grid))), vp.height () - yoffset - rh / 2 - 2),
|
||||
ruler_color, -1, 1);
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue