X-Git-Url: https://fleuret.org/cgi-bin/gitweb/gitweb.cgi?a=blobdiff_plain;f=polygon.cc;h=e121e2cd19ff155f3af9a2ec4cdba443f78feeae;hb=8697ab57c9138aa2bb1657a971e4c2cc5e4a1606;hp=2ae238d3c1c39010c56da46953988655bfca6e58;hpb=3e51d77116e49ba279a6cbbf1dbbc893c4117eb4;p=universe.git diff --git a/polygon.cc b/polygon.cc index 2ae238d..e121e2c 100644 --- a/polygon.cc +++ b/polygon.cc @@ -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]; @@ -73,10 +74,39 @@ 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++) + // 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_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); +} +#endif + void Polygon::set_vertex(int k, scalar_t x, scalar_t y) { _relative_x[k] = x; _relative_y[k] = y; @@ -489,4 +519,3 @@ bool Polygon::collide(Polygon *p) { return false; } -