X-Git-Url: https://fleuret.org/cgi-bin/gitweb/gitweb.cgi?a=blobdiff_plain;f=polygon.cc;h=e957ec11e845a49c763371860c6c0f800c4ef754;hb=fe0be986e63c5dabed472d68b0aa7c91ca0651db;hp=1b8b3629e3d2e15d65b3e9e3c321f12f4a16723f;hpb=762714b0bd3e8db3e57ef1e29bcf2adfefe7e5a5;p=universe.git diff --git a/polygon.cc b/polygon.cc index 1b8b362..e957ec1 100644 --- a/polygon.cc +++ b/polygon.cc @@ -47,8 +47,13 @@ Polygon *Polygon::clone() { return new Polygon(_mass, _red, _green, _blue, _relative_x, _relative_y, _nb_vertices); } -void Polygon::print_fig(XFigTracer *tracer) { - tracer->draw_polygon(_nb_vertices, _x, _y); +void Polygon::color_xfig(XFigTracer *tracer) { + tracer->add_color(int(255 * _red), int(255 * _green), int(255 * _blue)); +} + +void Polygon::print_xfig(XFigTracer *tracer) { + tracer->draw_polygon(int(255 * _red), int(255 * _green), int(255 * _blue), + _nb_vertices, _x, _y); } void Polygon::draw(SimpleWindow *window) { @@ -68,10 +73,26 @@ void Polygon::draw_contours(SimpleWindow *window) { y[n] = int(_y[n]); } window->color(0.0, 0.0, 0.0); - for(int n = 0; n < _nb_vertices; n++) + 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]); + } +} + +#ifdef CAIRO_SUPPORT +void Polygon::draw(cairo_t* context_resource) { } +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); + for(int n = 0; n < _nb_vertices; n++) { + cairo_move_to(context_resource, _x[n], _y[n]); + cairo_line_to(context_resource, _x[(n+1)%_nb_vertices], _y[(n+1)%_nb_vertices]); + } + cairo_stroke(context_resource); +} +#endif + void Polygon::set_vertex(int k, scalar_t x, scalar_t y) { _relative_x[k] = x; _relative_y[k] = y; @@ -484,4 +505,3 @@ bool Polygon::collide(Polygon *p) { return false; } -