X-Git-Url: https://www.fleuret.org/cgi-bin/gitweb/gitweb.cgi?p=flatland.git;a=blobdiff_plain;f=sequence_generator.cc;h=cd4d313c423f7c40ed75916b52202ccd8420ee7c;hp=bfba036621e9e4e8896ceeb6772d5af696736429;hb=1e3df5a4bc6dfdf8fcc89270fbaf2cc43b82fef2;hpb=4a824920ad843ba0d1bd3d9b10a8eb0188a2bc63 diff --git a/sequence_generator.cc b/sequence_generator.cc index bfba036..cd4d313 100644 --- a/sequence_generator.cc +++ b/sequence_generator.cc @@ -108,6 +108,9 @@ extern "C" void fl_generate_sequence(int nb_images, canvases[s] = new CanvasCairo(scaling, universe->width(), universe->height()); } + scalar_t gravity_fx = 0.0; + scalar_t gravity_fy = 1.0; + scalar_t grab_start_x, grab_start_y; int failed; @@ -214,9 +217,12 @@ extern "C" void fl_generate_sequence(int nb_images, } if(s < nb_simulated_frames - 1) { + // Run the simulation + for(int i = 0; i < nb_iterations_per_steps; i++) { if(pulling) { + // Pulling the grabbed rectangle scalar_t xf = grabbed_polygon->absolute_x(grab_relative_x, grab_relative_y); scalar_t yf = grabbed_polygon->absolute_y(grab_relative_x, grab_relative_y); if (xf < 0 || xf >= world_width || yf < 0 || yf >= world_height) { @@ -225,7 +231,9 @@ extern "C" void fl_generate_sequence(int nb_images, grabbed_polygon->apply_force(dt, xf, yf, 0.0, -1.0); } else { // Gravity + universe->apply_gravity(dt, gravity_fx, gravity_fy); } + universe->update(dt, 1.0 / scaling); } } @@ -234,7 +242,9 @@ extern "C" void fl_generate_sequence(int nb_images, total_nb_attempts++; if(total_nb_attempts >= max_total_nb_attempts) { - cerr << "There was " << max_total_nb_attempts << " attempts at generating the sequences." << endl; + cerr << "There was " + << max_total_nb_attempts + << " attempts at generating the sequences, aborting." << endl; abort(); }