1#ifndef OSMSCOUT_MAP_MAPPAINTERAGG_H
2#define OSMSCOUT_MAP_MAPPAINTERAGG_H
25#include <agg2/agg_conv_curve.h>
26#include <agg2/agg_conv_contour.h>
27#include <agg2/agg_path_storage.h>
28#include <agg2/agg_pixfmt_rgb.h>
29#include <agg2/agg_rasterizer_scanline_aa.h>
30#include <agg2/agg_renderer_base.h>
31#include <agg2/agg_rendering_buffer.h>
32#include <agg2/agg_renderer_scanline.h>
33#include <agg2/agg_scanline_p.h>
36#include <agg2/agg_font_freetype.h>
64 typedef agg::renderer_base<AggPixelFormat> AggRenderBase;
65 typedef agg::rasterizer_scanline_aa<> AggScanlineRasterizer;
66 typedef agg::scanline_p8 AggScanline;
67 typedef agg::renderer_scanline_aa_solid<AggRenderBase> AggScanlineRendererAA;
68 typedef agg::renderer_scanline_bin_solid<AggRenderBase> AggScanlineRendererBin;
70 typedef agg::font_engine_freetype_int32 AggFontEngine;
71 typedef agg::font_cache_manager<AggFontEngine> AggFontManager;
72 typedef agg::conv_curve<AggFontManager::path_adaptor_type> AggTextCurveConverter;
73 typedef agg::conv_contour<AggTextCurveConverter> AggTextContourConverter;
79 AggRenderBase *renderer_base;
80 AggScanlineRasterizer *rasterizer;
81 AggScanline *scanlineP8;
82 AggScanlineRendererAA *renderer_aa;
83 AggScanlineRendererBin *renderer_bin;
84 AggFontEngine *fontEngine;
85 AggFontManager *fontCacheManager;
86 AggTextCurveConverter *convTextCurves;
87 AggTextContourConverter *convTextContours;
93 const MapParameter& parameter,
95 agg::glyph_rendering ren_type = agg::glyph_ren_native_gray8);
97 void GetTextDimension(
const std::wstring& text,
100 void DrawText(
double x,
102 const std::wstring& text);
104 void DrawGlyph(
double x,
double y,
105 const agg::glyph_cache* glyph);
107 void DrawGlyphVector(
double x,
double baselineY,
108 const std::vector<MapPainterAgg::NativeGlyph> &glyphs);
111 const MapParameter& parameter,
114 agg::path_storage& path);
119 const MapParameter& parameter,
120 IconStyle& style)
override;
123 const MapParameter& parameter,
124 double fontSize)
override;
127 const MapParameter& parameter,
128 const FillStyle& style)
override;
131 const Vertex2D& centerPos,
132 double width,
double height)
override;
135 const MapParameter& parameter,
136 const Symbol& symbol,
137 const Vertex2D& screenPos,
138 double scaleFactor)
override;
141 const MapParameter& parameter,
144 const std::vector<double>& dash,
145 LineStyle::CapStyle startCap,
146 LineStyle::CapStyle endCap,
147 const CoordBufferRange& coordRange)
override;
150 const MapParameter& parameter,
156 const MapParameter ¶meter,
158 const std::vector<AggGlyph> &glyphs);
163 const MapParameter& parameter,
164 const std::string& text,
167 bool enableWrapping =
false,
168 bool contourLabel =
false);
175 const MapParameter ¶meter,
176 const ObjectFileRef& ref,
177 const std::vector<LabelData> &labels,
178 const Vertex2D &position,
179 double objectWidth)
override;
185 const MapParameter ¶meter,
186 const ObjectFileRef& ref,
191 const MapParameter& parameter,
192 const MapData& data)
override;
196 const MapParameter& parameter,
197 const MapData& data)
override;
200 const MapParameter& parameter,
201 const Symbol& symbol,
205 const MapParameter& parameter,
213 const MapParameter& parameter,
#define OSMSCOUT_MAP_AGG_API
Definition MapAggImportExport.h:45
Definition LabelLayouter.h:103
Definition LabelLayouter.h:57
Definition LabelLayouter.h:119
Definition LabelLayouter.h:230
Definition LabelPath.h:44
virtual void RegisterContourLabel(const Projection &projection, const MapParameter ¶meter, const ObjectFileRef &ref, const PathLabelData &label, const LabelPath &labelPath) override
void DrawArea(const Projection &projection, const MapParameter ¶meter, const AreaData &area) override
agg::pixfmt_rgb24 AggPixelFormat
Definition MapPainterAgg.h:47
LabelLayouter< NativeGlyph, NativeLabel, MapPainterAgg > AggLabelLayouter
Definition MapPainterAgg.h:60
void DrawSymbol(const Projection &projection, const MapParameter ¶meter, const Symbol &symbol, const Vertex2D &screenPos, double scaleFactor) override
void DrawGround(const Projection &projection, const MapParameter ¶meter, const FillStyle &style) override
MapPainterAgg(const StyleConfigRef &styleConfig)
osmscout::ScreenVectorRectangle GlyphBoundingBox(const NativeGlyph &glyph) const
virtual void BeforeDrawing(const StyleConfig &styleConfig, const Projection &projection, const MapParameter ¶meter, const MapData &data) override
virtual void RegisterRegularLabel(const Projection &projection, const MapParameter ¶meter, const ObjectFileRef &ref, const std::vector< LabelData > &labels, const Vertex2D &position, double objectWidth) override
bool HasIcon(const StyleConfig &styleConfig, const Projection &projection, const MapParameter ¶meter, IconStyle &style) override
double GetFontHeight(const Projection &projection, const MapParameter ¶meter, double fontSize) override
void DrawLabel(const Projection &projection, const MapParameter ¶meter, const ScreenVectorRectangle &labelRectangle, const LabelData &label, const NativeLabel &layout)
virtual void DrawLabels(const Projection &projection, const MapParameter ¶meter, const MapData &data) override
void DrawContourSymbol(const Projection &projection, const MapParameter ¶meter, const Symbol &symbol, const ContourSymbolData &data) override
void DrawPath(const Projection &projection, const MapParameter ¶meter, const Color &color, double width, const std::vector< double > &dash, LineStyle::CapStyle startCap, LineStyle::CapStyle endCap, const CoordBufferRange &coordRange) override
std::shared_ptr< AggLabel > Layout(const Projection &projection, const MapParameter ¶meter, const std::string &text, double fontSize, double objectWidth, bool enableWrapping=false, bool contourLabel=false)
~MapPainterAgg() override
void DrawIcon(const IconStyle *style, const Vertex2D ¢erPos, double width, double height) override
bool DrawMap(const Projection &projection, const MapParameter ¶meter, const MapData &data, AggPixelFormat *pf, RenderSteps startStep=RenderSteps::FirstStep, RenderSteps endStep=RenderSteps::LastStep)
void DrawGlyphs(const Projection &projection, const MapParameter ¶meter, const osmscout::PathTextStyleRef style, const std::vector< AggGlyph > &glyphs)
Label< NativeGlyph, NativeLabel > AggLabel
Definition MapPainterAgg.h:58
Glyph< NativeGlyph > AggGlyph
Definition MapPainterAgg.h:59
MapPainter(const StyleConfigRef &styleConfig)
StyleConfigRef styleConfig
Reference to the style configuration to be used.
Definition MapPainter.h:250
Definition LabelLayouter.h:46
Definition Projection.h:46
Index selectors by type and level.
Definition StyleConfig.h:552
std::shared_ptr< PathTextStyle > PathTextStyleRef
Definition Styles.h:890
std::shared_ptr< StyleConfig > StyleConfigRef
Definition StyleConfig.h:859
std::shared_ptr< BorderStyle > BorderStyleRef
Definition Styles.h:464
RenderSteps
Definition MapPainter.h:64
@ LastStep
Definition MapPainter.h:92
@ FirstStep
Definition MapPainter.h:65
std::shared_ptr< FillStyle > FillStyleRef
Definition Styles.h:356
Definition MapPainter.h:174
Definition MapPainter.h:200
Definition MapPainterAgg.h:49
double x
Definition MapPainterAgg.h:50
const agg::glyph_cache * aggGlyph
Definition MapPainterAgg.h:52
double y
Definition MapPainterAgg.h:51
Definition MapPainterAgg.h:54
std::wstring text
Definition MapPainterAgg.h:55
std::vector< NativeGlyph > glyphs
Definition MapPainterAgg.h:56
Definition LabelLayouterHelper.h:73