X-Git-Url: https://fleuret.org/cgi-bin/gitweb/gitweb.cgi?a=blobdiff_plain;f=universe.cc;h=8dec7f5b016dc75bb66422b4e2c575334bcd5382;hb=1801b407a8243791f90465aaff7e32aeb241f00a;hp=47d7c88d0ec4dd2126e27e4aaf081f331886c0b1;hpb=6408d9fe6e1b82ad9aa71d6e1702ec100a8c3ca1;p=universe.git diff --git a/universe.cc b/universe.cc index 47d7c88..8dec7f5 100644 --- a/universe.cc +++ b/universe.cc @@ -16,11 +16,11 @@ Universe::Universe(int nb_max_polygons, } Universe::~Universe() { - for(int n = 0; n < _nb_polygons; n++) if(_polygons[n]) delete _polygons[n]; + clear(); delete[] _polygons; } -void Universe::initialize(Polygon *p) { +void Universe::initialize_polygon(Polygon *p) { p->initialize(_nb_max_polygons); } @@ -163,6 +163,14 @@ void Universe::draw(Canvas *canvas) { } } +void Universe::apply_gravity(scalar_t dt, scalar_t fx, scalar_t fy) { + for(int n = 0; n < _nb_polygons; n++) + if(_polygons[n]) + _polygons[n]->apply_force(dt, + _polygons[n]->_center_x, _polygons[n]->_center_y, + fx, fy); +} + void Universe::apply_collision_forces(scalar_t dt) { const int nb_axis = 2; int nb_collision[_nb_polygons * _nb_polygons];