Cleaning up for DL.
[universe.git] / universe.h
index f87f112..07cf7f0 100644 (file)
@@ -9,32 +9,29 @@
 #include <cmath>
 
 #include "misc.h"
 #include <cmath>
 
 #include "misc.h"
+#include "canvas.h"
 #include "polygon.h"
 
 #ifdef X11_SUPPORT
 #include "simple_window.h"
 #endif
 
 #include "polygon.h"
 
 #ifdef X11_SUPPORT
 #include "simple_window.h"
 #endif
 
-#ifdef CAIRO_SUPPORT
-#include <cairo.h>
-#endif
-
 using namespace std;
 
 class Universe {
 using namespace std;
 
 class Universe {
-  scalar_t _xmax, _ymax;
+  scalar_t _width, _height;
 public:
   int _nb_max_polygons, _nb_polygons;
   Polygon **_polygons;
 
 public:
   int _nb_max_polygons, _nb_polygons;
   Polygon **_polygons;
 
-  inline scalar_t width() { return _xmax; }
-  inline scalar_t height() { return _ymax; }
+  inline scalar_t width() { return _width; }
+  inline scalar_t height() { return _height; }
 
 
-  Universe(int nb_max_polygons, scalar_t xmax, scalar_t ymax);
+  Universe(int nb_max_polygons, scalar_t width, scalar_t height);
   // The destructor deletes all the added polygons
   ~Universe();
 
   // The destructor deletes all the added polygons
   ~Universe();
 
-  void initialize(Polygon *p);
+  void initialize_polygon(Polygon *p);
   void clear();
   void add_polygon(Polygon *p);
   bool collide(Polygon *p);
   void clear();
   void add_polygon(Polygon *p);
   bool collide(Polygon *p);
@@ -42,20 +39,23 @@ public:
   // Compute collisions between projections of the polygons on a few
   // axis to speed up the computation
   void compute_pseudo_collisions(int nb_axis, int *nb_colliding_axis);
   // Compute collisions between projections of the polygons on a few
   // axis to speed up the computation
   void compute_pseudo_collisions(int nb_axis, int *nb_colliding_axis);
+  void apply_gravity(scalar_t dt, scalar_t fx, scalar_t fy);
   void apply_collision_forces(scalar_t dt);
   bool update(scalar_t dt);
 
   Polygon *pick_polygon(scalar_t x, scalar_t y);
 
   void apply_collision_forces(scalar_t dt);
   bool update(scalar_t dt);
 
   Polygon *pick_polygon(scalar_t x, scalar_t y);
 
+#ifdef XFIG_SUPPORT
   void print_xfig(XFigTracer *tracer);
   void print_xfig(XFigTracer *tracer);
+#endif
 
 #ifdef X11_SUPPORT
   void draw(SimpleWindow *window);
 #endif
 
 #ifdef CAIRO_SUPPORT
 
 #ifdef X11_SUPPORT
   void draw(SimpleWindow *window);
 #endif
 
 #ifdef CAIRO_SUPPORT
-  void draw(cairo_t *context_resource);
-#endif
+  void draw(Canvas *canvas);
 };
 };
+#endif
 
 #endif
 
 #endif