Mercurial > hg > octave-nkf
comparison src/graphics.cc @ 10792:91342260063e
mouse rotation for fltk backend
author | Shai Ayal <shaiay@users.sourceforge.net> |
---|---|
date | Mon, 19 Jul 2010 06:17:54 +0300 |
parents | f72a761a784c |
children | 89f4d7e294cc |
comparison
equal
deleted
inserted
replaced
10791:3140cb7a05a1 | 10792:91342260063e |
---|---|
4229 xlims (0) = x + factor * (xlims (0) - x); | 4229 xlims (0) = x + factor * (xlims (0) - x); |
4230 xlims (1) = x + factor * (xlims (1) - x); | 4230 xlims (1) = x + factor * (xlims (1) - x); |
4231 ylims (0) = y + factor * (ylims (0) - y); | 4231 ylims (0) = y + factor * (ylims (0) - y); |
4232 ylims (1) = y + factor * (ylims (1) - y); | 4232 ylims (1) = y + factor * (ylims (1) - y); |
4233 | 4233 |
4234 // Make sure we stay within the range og the plot | |
4235 xlims (0) = force_in_range (xlims (0), minx, maxx); | |
4236 xlims (1) = force_in_range (xlims (1), minx, maxx); | |
4237 ylims (0) = force_in_range (ylims (0), miny, maxy); | |
4238 ylims (1) = force_in_range (ylims (1), miny, maxy); | |
4239 | |
4240 zoom (xlims, ylims, push_to_zoom_stack); | 4234 zoom (xlims, ylims, push_to_zoom_stack); |
4241 } | 4235 } |
4242 | 4236 |
4243 void | 4237 void |
4244 axes::properties::zoom (const Matrix& xl, const Matrix& yl, bool push_to_zoom_stack) | 4238 axes::properties::zoom (const Matrix& xl, const Matrix& yl, bool push_to_zoom_stack) |
4278 double miny = octave_Inf; | 4272 double miny = octave_Inf; |
4279 double maxy = -octave_Inf; | 4273 double maxy = -octave_Inf; |
4280 double min_pos_y = octave_Inf; | 4274 double min_pos_y = octave_Inf; |
4281 get_children_limits (miny, maxy, min_pos_y, kids, 'y'); | 4275 get_children_limits (miny, maxy, min_pos_y, kids, 'y'); |
4282 | 4276 |
4283 // Make sure we don't exceed the borders | 4277 xlims (0) += delta_x; |
4284 if (delta_x > 0) | 4278 xlims (1) += delta_x; |
4285 delta_x = std::min (xlims (1) + delta_x, maxx) - xlims (1); | 4279 ylims (0) += delta_y; |
4286 else | 4280 ylims (1) += delta_y; |
4287 delta_x = std::max (xlims (0) + delta_x, minx) - xlims (0); | |
4288 xlims (0) = xlims (0) + delta_x; | |
4289 xlims (1) = xlims (1) + delta_x; | |
4290 | |
4291 if (delta_y > 0) | |
4292 delta_y = std::min (ylims (1) + delta_y, maxy) - ylims (1); | |
4293 else | |
4294 delta_y = std::max (ylims (0) + delta_y, miny) - ylims (0); | |
4295 ylims (0) = ylims (0) + delta_y; | |
4296 ylims (1) = ylims (1) + delta_y; | |
4297 | 4281 |
4298 zoom (xlims, ylims, false); | 4282 zoom (xlims, ylims, false); |
4283 } | |
4284 | |
4285 void | |
4286 axes::properties::rotate_view (double delta_el, double delta_az) | |
4287 { | |
4288 Matrix v = get_view ().matrix_value (); | |
4289 | |
4290 v (1) += delta_el; | |
4291 v (0) -= delta_az; | |
4292 | |
4293 set_view(v); | |
4294 update_transform(); | |
4299 } | 4295 } |
4300 | 4296 |
4301 void | 4297 void |
4302 axes::properties::unzoom (void) | 4298 axes::properties::unzoom (void) |
4303 { | 4299 { |