libosmscout 1.1.1
Loading...
Searching...
No Matches
SymbolRendererCairo.h
Go to the documentation of this file.
1#ifndef OSMSCOUT_MAP_CAIRO_SYMBOLRENDERERCAIRO_H
2#define OSMSCOUT_MAP_CAIRO_SYMBOLRENDERERCAIRO_H
3
4/*
5 This source is part of the libosmscout-map library
6 Copyright (C) 2010 Tim Teulings
7 Copyright (C) 2022 Lukas Karas
8 Copyright (C) 2022 Tim Teulings
9
10 This library is free software; you can redistribute it and/or
11 modify it under the terms of the GNU Lesser General Public
12 License as published by the Free Software Foundation; either
13 version 2.1 of the License, or (at your option) any later version.
14
15 This library is distributed in the hope that it will be useful,
16 but WITHOUT ANY WARRANTY; without even the implied warranty of
17 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
18 Lesser General Public License for more details.
19
20 You should have received a copy of the GNU Lesser General Public
21 License along with this library; if not, write to the Free Software
22 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
23*/
24
25#if defined(__WIN32__) || defined(WIN32)
26#include <cairo.h>
27#else
28#include <cairo/cairo.h>
29#endif
30
32
34
35#include <osmscoutmap/Styles.h>
36
37
38namespace osmscout {
39
44private:
45 cairo_t *draw;
46 FillStyleRef fillStyle;
47 BorderStyleRef borderStyle;
48 double screenMmInPixel;
49
50public:
51 explicit SymbolRendererCairo(cairo_t *draw);
54
55 ~SymbolRendererCairo() override = default;
56
59
60protected:
61 void BeginPrimitive() override;
62 void SetFill(const FillStyleRef &fillStyle) override;
63 void SetBorder(const BorderStyleRef &borderStyle, double screenMmInPixel) override;
64 void DrawPolygon(const std::vector<Vertex2D> &polygonPixels) override;
65 void DrawRect(double x, double y, double w, double h) override;
66 void DrawCircle(double x, double y, double radius) override;
67 void EndPrimitive() override;
68};
69}
70
71#endif // OSMSCOUT_MAP_CAIRO_SYMBOLRENDERERCAIRO_H
#define OSMSCOUT_MAP_CAIRO_API
Definition MapCairoImportExport.h:45
SymbolRendererCairo(const SymbolRendererCairo &)=default
~SymbolRendererCairo() override=default
void SetFill(const FillStyleRef &fillStyle) override
SymbolRendererCairo & operator=(SymbolRendererCairo &&)=default
void DrawRect(double x, double y, double w, double h) override
SymbolRendererCairo & operator=(const SymbolRendererCairo &)=default
SymbolRendererCairo(cairo_t *draw)
void DrawCircle(double x, double y, double radius) override
void SetBorder(const BorderStyleRef &borderStyle, double screenMmInPixel) override
void BeginPrimitive() override
SymbolRendererCairo(SymbolRendererCairo &&)=default
void DrawPolygon(const std::vector< Vertex2D > &polygonPixels) override
Definition SymbolRenderer.h:34
Definition Area.h:39
std::shared_ptr< BorderStyle > BorderStyleRef
Definition Styles.h:464
std::shared_ptr< FillStyle > FillStyleRef
Definition Styles.h:356