MCPcopy Create free account
hub / github.com/MapServer/MapServer / agg2RenderEllipseSymbol

Function agg2RenderEllipseSymbol

mapagg.cpp:535–567  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

533}
534
535int 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
569int agg2RenderTruetypeSymbol(imageObj *img, double x, double y,
570 symbolObj *symbol, symbolStyleObj * style) {

Callers

nothing calls this directly

Calls 10

render_scanlinesFunction · 0.85
concat_pathMethod · 0.80
transformMethod · 0.45
resetMethod · 0.45
filling_ruleMethod · 0.45
add_pathMethod · 0.45
colorMethod · 0.45
widthMethod · 0.45

Tested by

no test coverage detected