Update.
[universe.git] / polygon.cc
index 1c109c3..4068919 100644 (file)
@@ -56,6 +56,7 @@ void Polygon::print_xfig(XFigTracer *tracer) {
                        _nb_vertices, _x, _y);
 }
 
+#ifdef X11_SUPPORT
 void Polygon::draw(SimpleWindow *window) {
   window->color(_red, _green, _blue);
   int x[_nb_vertices], y[_nb_vertices];
@@ -72,38 +73,23 @@ void Polygon::draw_contours(SimpleWindow *window) {
     x[n] = int(_x[n]);
     y[n] = int(_y[n]);
   }
-  // window->color(0.0, 0.0, 0.0);
-  window->color(1.0, 1.0, 1.0);
+  window->color(0.0, 0.0, 0.0);
+  // window->color(1.0, 1.0, 1.0);
   for(int n = 0; n < _nb_vertices; n++) {
     window->draw_line(x[n], y[n], x[(n+1)%_nb_vertices], y[(n+1)%_nb_vertices]);
   }
 }
+#endif
 
-#ifdef CAIRO_SUPPORT
-void Polygon::draw(cairo_t* context_resource) {
-  cairo_set_line_width(context_resource, 1.0);
-  cairo_set_source_rgb (context_resource, _red, _green, _blue);
-  cairo_move_to(context_resource, _x[0], _y[0]);
-  for(int n = 0; n < _nb_vertices; n++) {
-    cairo_line_to(context_resource, _x[n], _y[n]);
-  }
-  cairo_close_path(context_resource);
-  cairo_stroke_preserve(context_resource);
-  cairo_fill(context_resource);
+void Polygon::draw(Canvas *canvas) {
+  canvas->set_drawing_color(_red, _green, _blue);
+  canvas->draw_polygon(1, _nb_vertices, _x, _y);
 }
 
-void Polygon::draw_contours(cairo_t* context_resource) {
-  cairo_set_line_width(context_resource, 1.0);
-  // cairo_set_source_rgb (context_resource, 0.0, 0.0, 0.0);
-  cairo_set_source_rgb (context_resource, 1.0, 1.0, 1.0);
-  cairo_move_to(context_resource, _x[0], _y[0]);
-  for(int n = 0; n < _nb_vertices; n++) {
-    cairo_line_to(context_resource, _x[n], _y[n]);
-  }
-  cairo_close_path(context_resource);
-  cairo_stroke(context_resource);
+void Polygon::draw_contours(Canvas *canvas) {
+  canvas->set_drawing_color(0.0, 0.0, 0.0);
+  canvas->draw_polygon(0, _nb_vertices, _x, _y);
 }
-#endif
 
 void Polygon::set_vertex(int k, scalar_t x, scalar_t y) {
   _relative_x[k] = x;
@@ -207,7 +193,9 @@ void Polygon::initialize(int nb_polygons) {
 
   _nb_polygons = nb_polygons;
 
-  a = _relative_x[_nb_vertices - 1] * _relative_y[0] - _relative_x[0] * _relative_y[_nb_vertices - 1];
+  a = _relative_x[_nb_vertices - 1] * _relative_y[0]
+    - _relative_x[0] * _relative_y[_nb_vertices - 1];
+
   for(int n = 0; n < _nb_vertices - 1; n++)
     a += _relative_x[n] * _relative_y[n+1] - _relative_x[n+1] * _relative_y[n];
   a *= 0.5;