Artem Pavlenko
792519e66a
SVG - add experimental "target" width and height which overwrite SVG's outermost "width" and "height" attributes [WIP]
2021-04-16 16:01:39 +01:00
Artem Pavlenko
f293371a9d
SVG rendering improvements:
...
* process `font-size` attributes and use them to scale `em` units
* fix default `color-stop` value
* store `viewBox` and use it to calculate `%` values correctly
* add more absolute/relative values
* default `DPI`:96
* default `font-size`: 10
* process style attributes on `<svg>` element
* use viewBox `width`, `height` and `normalized_diagonal` for relevant length values
* apply scale factor to gradient transforms
2021-04-13 09:19:33 +01:00
Artem Pavlenko
9c2132f895
Fix gradient transform calc (apply scale factor)
2021-04-13 09:17:48 +01:00
Artem Pavlenko
ff8c411749
Use DPI=96 + add absolute and relative sizes + add missing value units
2021-04-12 14:16:39 +01:00
Artem Pavlenko
6bab4e56fd
Move MAPNIK_DECL
to the front (ref https://github.com/mapnik/mapnik/pull/4220#issuecomment-814259514 )
2021-04-06 17:36:46 +01:00
Artem Pavlenko
b974a4a683
Simplify proj_transform_cache implementation (ref https://github.com/mapnik/mapnik/pull/4191#issuecomment-813377082 )
2021-04-06 10:30:12 +01:00
Mathis Logemann
ee90425de1
fixes proj_transform_cache incomplete type for gcc
2021-04-01 17:57:20 +02:00
Artem Pavlenko
3489bdbe36
rename PROJ_VERSION to MAPNIK_PROJ_VERSION to avoid clashes with libproj
2021-03-25 16:38:21 +00:00
Artem Pavlenko
503b9c5bbf
Move proj_transform_cache declarations and implementaion into separate translation unit (ref VC++ C2492)
2021-03-25 12:16:15 +00:00
Artem Pavlenko
6af16764aa
proj - add version check based on major*10000+minor*100+patch format
2021-03-19 13:22:16 +00:00
Artem Pavlenko
6b9b42f314
Declare proj_cache_
thread_local static
to allow mapnik::Map to be thread-safe under certain conditions + refactor
...
(benchmark/src/test_rendering_shared_map.cpp)
2021-03-18 16:05:58 +00:00
Artem Pavlenko
6099804559
Use POSIX definition of pi
constant (M_PI) + define tau
in terms of pi
+ better namings + remove deprecated proj4 style definitions
2021-03-15 18:06:26 +00:00
Artem Pavlenko
7cbbd7305b
Map::mapnik - restore non-const access to layers + create proj_transform and cache in get_proj_transform
+ declare proj_cache_
mutable
2021-03-09 10:48:32 +00:00
Artem Pavlenko
b532beccde
mapnik::Map ctor/operator= - initialise proj transforms
2021-03-04 10:19:44 +00:00
Artem Pavlenko
554556e4d5
Add support for libproj >=8
2021-03-04 10:18:42 +00:00
Artem Pavlenko
b75737fd6a
Implement proj_transform caching using boost::unordered_map which allows calling find
method with compatible key type.
...
In this case `std::pair<boost::string_view, boost::string_view>` avoiding potentially expensive temp string keys.
(TODO: In the future use c++20 `std::unordered_map::find` transparent keys facility)
2021-03-03 15:01:58 +00:00
Artem Pavlenko
11ff758c38
Add proj_transform::definition() method
2021-03-02 17:07:13 +00:00
Artem Pavlenko
a149ebed16
use std::size_t consistently (proj API)
2021-03-02 16:39:32 +00:00
Artem Pavlenko
cb75f00780
Move proj_transform initialisation to add_layer
method
2021-02-25 11:05:11 +00:00
Artem Pavlenko
e5c182591a
use unordered_map for proj_transform caching
2021-02-01 10:57:52 +00:00
Artem Pavlenko
5c086b0cd5
Add proj_transform caching to minimise expensive initialisations calls in libproj >= 6 [WIP]
2021-01-27 09:40:28 +00:00
Artem Pavlenko
db9829d702
Fix missing proj context and cleanup/simplify proj_transform
2021-01-22 15:23:11 +00:00
Artem Pavlenko
88241b32ee
Initial implementation of new proj7 APIs support
2021-01-15 15:21:09 +00:00
Artem Pavlenko
bd961c4da2
update copyright year [skip ci]
2021-01-05 14:39:07 +00:00
Mathis Logemann
8096bd869f
fix warning for unknown compiler
2020-11-25 08:47:51 +01:00
Mathis Logemann
16b98fe3e7
more msvc warnings
2020-11-19 17:53:44 +01:00
Mathis Logemann
a2df8b7ad2
use absolute include
2020-11-19 17:45:40 +01:00
Mathis Logemann
64054fade4
compiler independent warning ignore
...
Signed-off-by: Mathis Logemann <mathisloge@gmail.com>
2020-11-19 17:25:10 +01:00
Artem Pavlenko
3a58dd89b5
Use mapnik::value_integer for id
type in feature generator
2020-10-19 12:09:42 +01:00
Artem Pavlenko
7d1a559ae2
GeoJSON - allow 'null' properties in Feature
objects [ #4177 ]
2020-10-08 10:53:12 +01:00
Artem Pavlenko
9cb1b7e37f
perfect forwarding in apply_visitor alias
2020-07-13 10:26:59 +01:00
Artem Pavlenko
cc78a5de78
Fix for boost < 1.70.0 (ref #4143 )
2020-05-12 12:14:18 +01:00
Artem Pavlenko
a14d27f090
Attempting to fix boost_1_65_1 compile (WIP)
2020-05-12 12:00:25 +01:00
Artem Pavlenko
8f3dded093
Re-implement feature_json_generator by adapting feature_impl into boost::fusion container and removing use semantic actions (simpler code + boost_1_73 support) (ref #4143 )
2020-05-11 22:18:55 +01:00
Artem Pavlenko
52ae365c66
fix operator== (ref #4137 )
2020-04-23 18:20:32 +01:00
Artem Pavlenko
cb638eaabf
color::swap
- add missing premultiplied_
(ref #4137 )
2020-04-23 18:20:32 +01:00
Martin Ždila
657442947b
add support for spacing-offset
2020-03-23 23:07:49 +01:00
Artem Pavlenko
8d73767949
css-parser-grammar: parse values into iterator_range via boost::spirit::x3::raw directive (no conversions) + cleanup
2020-02-06 11:23:02 +00:00
Artem Pavlenko
2ddbff46d5
add bool css_style_ member variable to control CSS style processing.
2020-02-04 17:30:58 +00:00
Artem Pavlenko
cc9e8e3db3
add missing headers
2020-02-04 15:15:32 +00:00
Artem Pavlenko
27bf941211
SVG CSS: refactor unit value symbols table into separate header + add css_data member to svg_parser
2020-02-04 15:02:41 +00:00
Artem Pavlenko
00b888c1ef
Add CSS parser grammar + move into separate include/css and src/css dirs.
2020-02-04 10:38:34 +00:00
Artem Pavlenko
0636734f8f
Revert "move sparsehash out of mapnik dir"
...
This reverts commit 720fbc74a1
.
2020-01-30 15:14:37 +00:00
Artem Pavlenko
720fbc74a1
move sparsehash out of mapnik dir
2020-01-29 14:16:47 +00:00
Artem Pavlenko
c7d29b826f
Add "darkslategray" and "rebeccapurple" named colors (ref: https://drafts.csswg.org/css-color/#typedef-color )
2020-01-24 15:26:10 +00:00
Artem Pavlenko
d87cf7db48
re-use code [skip ci]
2020-01-22 13:40:33 +00:00
Artem Pavlenko
cab05f1f2c
Only use reflection of the second control point on the previous command relative to the current point as first control point when both last and prev( NOTE: before last command in AGG logic!) are curve commands. This fixes long outstanding SVG rendering bug aka Octocat
bug (ref #4115 )
2020-01-21 15:49:00 +00:00
Artem Pavlenko
c30adf39c8
format
2020-01-21 15:48:32 +00:00
Artem Pavlenko
60a33a9b8f
use numeric parser for arc flags
2020-01-16 10:38:10 +00:00
Artem Pavlenko
222835e73a
Fix SVG path grammar - parse arc and sweep flags using special single digit parser, numeric int_
parser was over greedy and didn't handle compact notation produced by svgo ( https://github.com/svg/svgo ).
2020-01-14 14:38:10 +00:00