libosmscout
0.1
|
#include <MapPainterCairo.h>
Classes | |
struct | CairoNativeGlyph |
struct | CairoNativeLabel |
Public Types | |
using | CairoFont = cairo_scaled_font_t * |
using | CairoGlyph = Glyph< CairoNativeGlyph > |
using | CairoLabel = Label< CairoNativeGlyph, CairoNativeLabel > |
using | CairoLabelInstance = LabelInstance< CairoNativeGlyph, CairoNativeLabel > |
using | CairoLabelLayouter = LabelLayouter< CairoNativeGlyph, CairoNativeLabel, MapPainterCairo > |
![]() | |
using | WayPathDataIt = std::list< WayPathData >::iterator |
Public Member Functions | |
bool | DrawMap (const Projection &projection, const MapParameter ¶meter, const MapData &data, cairo_t *draw, RenderSteps startStep=RenderSteps::FirstStep, RenderSteps endStep=RenderSteps::LastStep) |
MapPainterCairo (const StyleConfigRef &styleConfig) | |
~MapPainterCairo () override | |
![]() | |
bool | Draw (const Projection &projection, const MapParameter ¶meter, const MapData &data) |
bool | Draw (const Projection &projection, const MapParameter ¶meter, const MapData &data, RenderSteps startStep, RenderSteps endStep) |
MapPainter (const StyleConfigRef &styleConfig) | |
virtual | ~MapPainter () |
Public Attributes | |
friend | CairoLabelLayouter |
Protected Member Functions | |
void | BeforeDrawing (const StyleConfig &styleConfig, const Projection &projection, const MapParameter ¶meter, const MapData &data) override |
void | DrawArea (const Projection &projection, const MapParameter ¶meter, const AreaData &area) override |
Draw the given area using the given FillStyle for the area outline. More... | |
void | DrawContourSymbol (const Projection &projection, const MapParameter ¶meter, const Symbol &symbol, const ContourSymbolData &data) override |
Draw the given Symbol on top of the contour of the given path. More... | |
void | DrawGlyphs (const Projection &projection, const MapParameter ¶meter, const osmscout::PathTextStyleRef &style, const std::vector< CairoGlyph > &glyphs) |
void | DrawGround (const Projection &projection, const MapParameter ¶meter, const FillStyle &style) override |
(Optionally) fills the area with the given default color for ground. More... | |
void | DrawIcon (const IconStyle *style, const Vertex2D ¢erPos, double width, double height) override |
Draw the Icon as defined by the IconStyle at the given pixel coordinate (icon center). More... | |
void | DrawLabel (const Projection &projection, const MapParameter ¶meter, const ScreenVectorRectangle &labelRectangle, const LabelData &label, const CairoNativeLabel &layout) |
void | DrawLabels (const Projection &projection, const MapParameter ¶meter, const MapData &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 |
Draw simple line with the given style,the given color, the given width and the given untransformed nodes. More... | |
void | DrawSymbol (const Projection &projection, const MapParameter ¶meter, const Symbol &symbol, const Vertex2D &screenPos, double scaleFactor) override |
Draw the Symbol as defined by the SymbolStyle at the given pixel coordinate (symbol center). More... | |
double | GetFontHeight (const Projection &projection, const MapParameter ¶meter, double fontSize) override |
Returns the height of the font. More... | |
osmscout::ScreenVectorRectangle | GlyphBoundingBox (const CairoNativeGlyph &glyph) const |
bool | HasIcon (const StyleConfig &styleConfig, const Projection &projection, const MapParameter ¶meter, IconStyle &style) override |
Return true, if the icon in the IconStyle is available and can be drawn. More... | |
bool | HasPattern (const MapParameter ¶meter, const FillStyle &style) |
std::shared_ptr< CairoLabel > | Layout (const Projection &projection, const MapParameter ¶meter, const std::string &text, double fontSize, double objectWidth, bool enableWrapping=false, bool contourLabel=false) |
void | RegisterContourLabel (const Projection &projection, const MapParameter ¶meter, const ObjectFileRef &ref, const PathLabelData &label, const LabelPath &labelPath) override |
Register contour label. More... | |
void | RegisterRegularLabel (const Projection &projection, const MapParameter ¶meter, const ObjectFileRef &ref, const std::vector< LabelData > &labels, const Vertex2D &position, double objectWidth) override |
Register regular label with given text at the given pixel coordinate in a style defined by the given LabelStyle. More... | |
![]() | |
virtual void | AfterDrawing (const StyleConfig &styleConfig, const Projection &projection, const MapParameter ¶meter, const MapData &data) |
virtual void | AfterPreprocessing (const StyleConfig &styleConfig, const Projection &projection, const MapParameter ¶meter, const MapData &data) |
Low level drawing routines that have to be implemented by the concrete drawing engine. More... | |
virtual void | DrawContourLines (const Projection &projection, const MapParameter ¶meter, const MapData &data) |
virtual void | DrawHillShading (const Projection &projection, const MapParameter ¶meter, const MapData &data) |
virtual void | DrawWay (const StyleConfig &styleConfig, const Projection &projection, const MapParameter ¶meter, const WayData &data) |
const std::list< AreaData > & | GetAreaData () const |
double | GetProjectedWidth (const Projection &projection, double minPixel, double width) const |
double | GetProjectedWidth (const Projection &projection, double width) const |
virtual double | GetProposedLabelWidth (const MapParameter ¶meter, double averageCharWidth, double objectWidth, size_t stringLength) |
Compute suggested label width for given parameters. More... | |
const std::list< WayData > & | GetWayData () const |
bool | IsVisibleArea (const Projection &projection, const GeoBox &boundingBox, double pixelOffset) const |
Useful global helper functions. More... | |
bool | IsVisibleWay (const Projection &projection, const GeoBox &boundingBox, double pixelOffset) const |
std::vector< OffsetRel > | ParseLaneTurns (const LanesFeatureValue &feature) const |
Additional Inherited Members | |
![]() | |
AccessFeatureValueReader | accessReader |
Value reader for the 'lanes' feature. More... | |
AddressFeatureValueReader | addressReader |
Value reader for the 'address' feature. More... | |
FillStyle | areaMarkStyle |
Marker fill style for internal debugging. More... | |
FeatureValueBuffer | coastlineSegmentAttributes |
ColorFeatureValueReader | colorReader |
Value reader for the 'color' feature. More... | |
double | contourLabelOffset |
Same value as in MapParameter but converted to pixel. More... | |
double | contourLabelSpace |
Same value as in MapParameter but converted to pixel. More... | |
CoordBuffer | coordBuffer |
Coordinate buffer. More... | |
TextStyleRef | debugLabel |
std::vector< double > | emptyDash |
Presets, precalculations and similar. More... | |
FillStyleRef | landFill |
Fallback styles in case they are missing for the style sheet. More... | |
LanesFeatureValueReader | lanesReader |
Value reader for the 'lanes' feature. More... | |
LayerFeatureValueReader | layerReader |
Value reader for the 'layer' feature. More... | |
NameAltFeatureValueReader | nameAltReader |
Value reader for the 'alternative name' feature. More... | |
NameFeatureValueReader | nameReader |
Attribute readers. More... | |
RefFeatureValueReader | refReader |
Value reader for the 'ref' feature. More... | |
FillStyleRef | seaFill |
double | shieldGridSizeHoriz |
Width of a cell for shield label placement. More... | |
double | shieldGridSizeVert |
Height of a cell for shield label placement. More... | |
StyleConfigRef | styleConfig |
Reference to the style configuration to be used. More... | |
TransBuffer | transBuffer |
Internal coordinate transformation data structures. More... | |
std::vector< double > | tunnelDash |
Dash array for drawing tunnel border. More... | |
WidthFeatureValueReader | widthReader |
Value reader for the 'width' feature. More... | |
using osmscout::MapPainterCairo::CairoFont = cairo_scaled_font_t* |
using osmscout::MapPainterCairo::CairoLabelInstance = LabelInstance<CairoNativeGlyph, CairoNativeLabel> |
using osmscout::MapPainterCairo::CairoLabelLayouter = LabelLayouter<CairoNativeGlyph, CairoNativeLabel, MapPainterCairo> |
|
explicit |
|
override |
|
overrideprotectedvirtual |
Reimplemented from osmscout::MapPainter.
References osmscout::Projection::ConvertWidthToPixel(), osmscout::MapParameter::GetLabelLayouterOverlap(), osmscout::ScreenVectorRectangle::height, osmscout::LabelLayouter< NativeGlyph, NativeLabel, TextLayouter >::SetLayoutOverlap(), osmscout::LabelLayouter< NativeGlyph, NativeLabel, TextLayouter >::SetViewport(), osmscout::ScreenVectorRectangle::width, osmscout::ScreenVectorRectangle::x, and osmscout::ScreenVectorRectangle::y.
|
overrideprotectedvirtual |
Draw the given area using the given FillStyle for the area outline.
Implements osmscout::MapPainter.
References osmscout::MapPainter::AreaData::borderStyle, osmscout::MapPainter::AreaData::clippings, osmscout::MapPainter::AreaData::coordRange, osmscout::MapPainter::AreaData::fillStyle, osmscout::CoordBufferRange::Get(), osmscout::CoordBufferRange::GetEnd(), osmscout::CoordBufferRange::GetFirst(), osmscout::CoordBufferRange::GetStart(), osmscout::Vertex2D::GetX(), and osmscout::Vertex2D::GetY().
|
overrideprotectedvirtual |
Draw the given Symbol on top of the contour of the given path.
Implements osmscout::MapPainter.
References osmscout::MapPainter::ContourSymbolData::coordRange, osmscout::CoordBufferRange::Get(), osmscout::Symbol::GetBoundingBox(), osmscout::CoordBufferRange::GetEnd(), osmscout::CoordBufferRange::GetFirst(), osmscout::ScreenBox::GetHeight(), osmscout::CoordBufferRange::GetLength(), osmscout::CoordBufferRange::GetStart(), osmscout::ScreenBox::GetWidth(), osmscout::Vertex2D::GetX(), osmscout::Vertex2D::GetY(), osmscout::MapPathOnPath(), osmscout::SymbolRenderer::Render(), osmscout::MapPainter::ContourSymbolData::symbolOffset, osmscout::MapPainter::ContourSymbolData::symbolScale, and osmscout::MapPainter::ContourSymbolData::symbolSpace.
|
protected |
|
overrideprotectedvirtual |
(Optionally) fills the area with the given default color for ground.
In 2D backends this just fills the given area, 3D backends might draw a sphere or an infinite plane.
Implements osmscout::MapPainter.
References osmscout::Color::GetB(), osmscout::FillStyle::GetFillColor(), osmscout::Color::GetG(), osmscout::Projection::GetHeight(), osmscout::Color::GetR(), and osmscout::Projection::GetWidth().
|
overrideprotectedvirtual |
Draw the Icon as defined by the IconStyle at the given pixel coordinate (icon center).
Implements osmscout::MapPainter.
References osmscout::IconStyle::GetIconId(), osmscout::Vertex2D::GetX(), and osmscout::Vertex2D::GetY().
|
protected |
References osmscout::LabelData::alpha, osmscout::MapPainterCairo::CairoNativeLabel::fontExtents, osmscout::ScreenVectorRectangle::height, osmscout::TextStyle::normal, osmscout::LabelData::style, osmscout::LabelData::text, osmscout::ScreenVectorRectangle::width, osmscout::ScreenVectorRectangle::x, and osmscout::ScreenVectorRectangle::y.
|
overrideprotectedvirtual |
bool osmscout::MapPainterCairo::DrawMap | ( | const Projection & | projection, |
const MapParameter & | parameter, | ||
const MapData & | data, | ||
cairo_t * | draw, | ||
RenderSteps | startStep = RenderSteps::FirstStep , |
||
RenderSteps | endStep = RenderSteps::LastStep |
||
) |
|
overrideprotectedvirtual |
Draw simple line with the given style,the given color, the given width and the given untransformed nodes.
Implements osmscout::MapPainter.
References osmscout::LineStyle::capButt, osmscout::LineStyle::capRound, osmscout::LineStyle::capSquare, osmscout::CoordBufferRange::Get(), osmscout::CoordBufferRange::GetEnd(), osmscout::CoordBufferRange::GetFirst(), osmscout::CoordBufferRange::GetLast(), osmscout::CoordBufferRange::GetStart(), osmscout::Vertex2D::GetX(), and osmscout::Vertex2D::GetY().
|
overrideprotectedvirtual |
Draw the Symbol as defined by the SymbolStyle at the given pixel coordinate (symbol center).
Implements osmscout::MapPainter.
References osmscout::SymbolRenderer::Render().
|
overrideprotectedvirtual |
Returns the height of the font.
Implements osmscout::MapPainter.
|
protected |
|
overrideprotectedvirtual |
Return true, if the icon in the IconStyle is available and can be drawn.
If this method returns false, possibly a fallback (using a Symbol) will be chosen.
Icon style dimensions and iconId may be setup for later usage.
Implements osmscout::MapPainter.
References osmscout::Projection::ConvertWidthToPixel(), osmscout::Log::Debug(), osmscout::Log::Error(), osmscout::IconStyle::GetIconId(), osmscout::MapParameter::GetIconMode(), osmscout::IconStyle::GetIconName(), osmscout::MapParameter::GetIconPaths(), osmscout::MapParameter::GetIconPixelSize(), osmscout::MapParameter::GetIconSize(), osmscout::IconStyle::GetWidth(), osmscout::LoadPNG(), osmscout::log, osmscout::MapParameter::OriginalPixmap, osmscout::MapParameter::Scalable, osmscout::MapParameter::ScaledPixmap, osmscout::IconStyle::SetHeight(), osmscout::IconStyle::SetIconId(), and osmscout::IconStyle::SetWidth().
|
protected |
|
protected |
References osmscout::UTF8StringToWString().
|
overrideprotectedvirtual |
Register contour label.
Implements osmscout::MapPainter.
References osmscout::LabelLayouter< NativeGlyph, NativeLabel, TextLayouter >::RegisterContourLabel().
|
overrideprotectedvirtual |
Register regular label with given text at the given pixel coordinate in a style defined by the given LabelStyle.
Implements osmscout::MapPainter.
References osmscout::LabelLayouter< NativeGlyph, NativeLabel, TextLayouter >::RegisterLabel().