| 533 | } |
| 534 | |
| 535 | int agg2RenderEllipseSymbol(imageObj *image, double x, double y, |
| 536 | symbolObj *symbol, symbolStyleObj * style) { |
| 537 | AGG2Renderer *r = AGG_RENDERER(image); |
| 538 | mapserver::path_storage path; |
| 539 | mapserver::ellipse ellipse(x,y,symbol->sizex*style->scale/2,symbol->sizey*style->scale/2); |
| 540 | path.concat_path(ellipse); |
| 541 | if( style->rotation != 0) { |
| 542 | mapserver::trans_affine mtx; |
| 543 | mtx *= mapserver::trans_affine_translation(-x,-y); |
| 544 | /*agg angles are antitrigonometric*/ |
| 545 | mtx *= mapserver::trans_affine_rotation(-style->rotation); |
| 546 | mtx *= mapserver::trans_affine_translation(x,y); |
| 547 | path.transform(mtx); |
| 548 | } |
| 549 | |
| 550 | if(style->color) { |
| 551 | r->m_rasterizer_aa.reset(); |
| 552 | r->m_rasterizer_aa.filling_rule(mapserver::fill_even_odd); |
| 553 | r->m_rasterizer_aa.add_path(path); |
| 554 | r->m_renderer_scanline.color(aggColor(style->color)); |
| 555 | mapserver::render_scanlines(r->m_rasterizer_aa, r->sl_line, r->m_renderer_scanline); |
| 556 | } |
| 557 | if(style->outlinewidth) { |
| 558 | r->m_rasterizer_aa.reset(); |
| 559 | r->m_rasterizer_aa.filling_rule(mapserver::fill_non_zero); |
| 560 | mapserver::conv_stroke<mapserver::path_storage> stroke(path); |
| 561 | stroke.width(style->outlinewidth); |
| 562 | r->m_rasterizer_aa.add_path(stroke); |
| 563 | r->m_renderer_scanline.color(aggColor(style->outlinecolor)); |
| 564 | mapserver::render_scanlines(r->m_rasterizer_aa, r->sl_poly, r->m_renderer_scanline); |
| 565 | } |
| 566 | return MS_SUCCESS; |
| 567 | } |
| 568 | |
| 569 | int agg2RenderTruetypeSymbol(imageObj *img, double x, double y, |
| 570 | symbolObj *symbol, symbolStyleObj * style) { |
nothing calls this directly
no test coverage detected