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

Function agg2RenderVectorSymbol

mapagg.cpp:427–457  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

425
426
427int agg2RenderVectorSymbol(imageObj *img, double x, double y,
428 symbolObj *symbol, symbolStyleObj * style) {
429 AGG2Renderer *r = AGG_RENDERER(img);
430 double ox = symbol->sizex * 0.5;
431 double oy = symbol->sizey * 0.5;
432
433 mapserver::path_storage path = imageVectorSymbolAGG(symbol);
434 mapserver::trans_affine mtx;
435 mtx *= mapserver::trans_affine_translation(-ox,-oy);
436 mtx *= mapserver::trans_affine_scaling(style->scale);
437 mtx *= mapserver::trans_affine_rotation(-style->rotation);
438 mtx *= mapserver::trans_affine_translation(x, y);
439 path.transform(mtx);
440 if (style->color) {
441 r->m_rasterizer_aa.reset();
442 r->m_rasterizer_aa.filling_rule(mapserver::fill_even_odd);
443 r->m_rasterizer_aa.add_path(path);
444 r->m_renderer_scanline.color(aggColor(style->color));
445 mapserver::render_scanlines(r->m_rasterizer_aa, r->sl_poly, r->m_renderer_scanline);
446 }
447 if(style->outlinecolor) {
448 r->m_rasterizer_aa.reset();
449 r->m_rasterizer_aa.filling_rule(mapserver::fill_non_zero);
450 r->m_renderer_scanline.color(aggColor(style->outlinecolor));
451 mapserver::conv_stroke<mapserver::path_storage> stroke(path);
452 stroke.width(style->outlinewidth);
453 r->m_rasterizer_aa.add_path(stroke);
454 mapserver::render_scanlines(r->m_rasterizer_aa, r->sl_poly, r->m_renderer_scanline);
455 }
456 return MS_SUCCESS;
457}
458
459int agg2RenderPixmapSymbol(imageObj *img, double x, double y, symbolObj *symbol, symbolStyleObj * style) {
460 AGG2Renderer *r = AGG_RENDERER(img);

Callers

nothing calls this directly

Calls 11

imageVectorSymbolAGGFunction · 0.85
render_scanlinesFunction · 0.85
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