diff --git a/cs677/final/mpi-fractals.cc b/cs677/final/mpi-fractals.cc index 2902f58..2bfa625 100644 --- a/cs677/final/mpi-fractals.cc +++ b/cs677/final/mpi-fractals.cc @@ -46,15 +46,15 @@ int main(int argc, char * argv[]) { if (!strncmp(argv[i], "-w", 2)) { - width = atoi(strlen(argv[i]) > 2 ? argv[i] + 1 : argv[++i]); + width = atoi(strlen(argv[i]) > 2 ? argv[i] + 2 : argv[++i]); } else if (!strncmp(argv[i], "-h", 2)) { - height = atoi(strlen(argv[i]) > 2 ? argv[i] + 1 : argv[++i]); + height = atoi(strlen(argv[i]) > 2 ? argv[i] + 2 : argv[++i]); } else if (!strncmp(argv[i], "-t", 2)) { - fractal_type = atoi(strlen(argv[i]) > 2 ? argv[i] + 1 : argv[++i]); + fractal_type = atoi(strlen(argv[i]) > 2 ? argv[i] + 2 : argv[++i]); } } getSizes(&my_rank, &world_size, &nprocs); @@ -104,6 +104,30 @@ int main(int argc, char * argv[]) if (event.key.keysym.sym == SDLK_q) going = false; break; + case SDL_MOUSEBUTTONDOWN: + switch (event.button.button) + { + case 1: /* left-click to re-center */ + x_center = getXVirt(event.button.x); + y_center = getYVirt(event.button.y); + redraw = true; + break; + case 3: /* re-center AND zoom in */ + x_center = getXVirt(event.button.x); + y_center = getYVirt(event.button.y); + zoom /= 2.0; + redraw = true; + break; + case 4: /* zoom in */ + zoom /= 2.0; + redraw = true; + break; + case 5: /* zoom out */ + zoom *= 2.0; + redraw = true; + break; + } + break; } } }