| 4104 | } |
| 4105 | |
| 4106 | void |
| 4107 | LayoutViewBase::shift_window (double f, double dx, double dy) |
| 4108 | { |
| 4109 | db::DBox b = mp_canvas->viewport ().box (); |
| 4110 | |
| 4111 | db::DPoint s = mp_canvas->viewport ().global_trans ().inverted () * db::DPoint (dx, dy); |
| 4112 | db::DPoint c = b.center () + db::DVector (b.width () * s.x (), b.height () * s.y ()); |
| 4113 | |
| 4114 | double w = b.width () * f; |
| 4115 | double h = b.height () * f; |
| 4116 | |
| 4117 | db::DVector d (w * 0.5, h * 0.5); |
| 4118 | |
| 4119 | zoom_box (db::DBox (c - d, c + d)); |
| 4120 | } |
| 4121 | |
| 4122 | void |
| 4123 | LayoutViewBase::goto_window (const db::DPoint &p, double s) |