Commit graph

4427 commits

Author SHA1 Message Date
Mickey Rose
a0f90496fa BuildingSymbolizer: draw wall edges at corners 2018-09-05 19:22:43 +02:00
Mickey Rose
2b9849a25b BuildingSymbolizer: render only roof if height <= 0 2018-09-01 13:09:42 +02:00
Mickey Rose
874b8f531a BuildingSymbolizer: rewrite rendering algorithm
- cache transformed vertices for multiple passes

- perform each rendering stage on the whole (Multi)Polygon:
    1. stroke ground outline
    2. fill wall strips
    3. stroke and fill roof

- don't render back walls if roof and wall fills are opaque
2018-09-01 13:09:35 +02:00
Mickey Rose
c617b8763a BuildingSymbolizer: apply new stroke/fill properties
- change `render_building_symbolizer` namespace disguised as struct
  into class holding computed rendering parameters

- unify extraction of symbolizer properties (height, fill, etc.)

- miterlimit is a ratio of lengths (or alternatively, 1/sin(angle/2)),
  it should not depend on scale_factor;
  besides, the minimum sensible value is 1.0 (because sin(x) <= 1)
  and greater values produce spikes around walls with large |dy/dx|
  ratio due to the way they're stroked
2018-09-01 13:08:30 +02:00
Mickey Rose
8e7a93bc32 BuildingSymbolizer: parse newly supported properties
+ wall-fill=color
+ base-stroke=color
+ stroke=color
+ stroke-opacity=double
+ stroke-width=double
2018-09-01 13:04:30 +02:00
lightmare
a6e0b6b857
Merge pull request #3958 from mapycz/fix-buffer-size-with-scale-factor
Fix buffer-size with scale-factor
2018-08-14 17:11:31 +02:00
Mickey Rose
8a1fdb3900 dodge operator precedence warning 2018-08-13 19:11:58 +02:00
Mickey Rose
2b8226316f topojson: fix parsing empty topology 2018-08-13 19:08:38 +02:00
Artem Pavlenko
c2251faa91 second time lucky 2018-08-07 14:58:21 +01:00
Artem Pavlenko
242c9eba3c Revert "opps, adding lost change (re: boost>=1.67)"
This reverts commit 22f913d892.
2018-08-07 14:26:34 +01:00
Artem Pavlenko
22f913d892 opps, adding lost change (re: boost>=1.67) 2018-08-07 14:09:30 +01:00
Jiri Drbalek
8a0dca38a3 Fix buffer-size with scale-factor 2018-08-01 08:06:37 +00:00
Artem Pavlenko
af842a8bf9 Merge branch 'pi-is-wrong' of https://github.com/lightmare/mapnik into lightmare-pi-is-wrong 2018-07-30 10:40:51 +01:00
Jiri Drbalek
4a93209423 render building symbolizer rewrite
- make projection and view transforms first
- removed dependency on segment_t
- no need for sorting faces
2018-07-27 10:23:33 +00:00
Artem Pavlenko
5eca7731e9 rely on implicit std::reference_wrapper<T> -> T conversions (thanks @lightmare) 2018-07-23 13:26:22 +01:00
Artem Pavlenko
93d0eea8af Merge branch 'master' into boost_1_67 2018-07-23 11:35:14 +01:00
Artem Pavlenko
65080e2a95 add support for BOOST_VERSION < 106700 2018-07-23 10:58:27 +01:00
Emil Gedda
93c566638f
remove old render_box function declaration from cairo_renderer.hpp 2018-07-20 14:02:51 +02:00
Artem Pavlenko
5fe0dda890 Merge branch 'master' into boost_1_67 2018-07-20 11:53:47 +01:00
Artem Pavlenko
bdf7876652 const-ness 2018-07-19 15:36:00 +01:00
Artem Pavlenko
67dbb96580 use uint8_t to parse hex2 values to avoid overflowing (boost >= 1.67) 2018-07-19 15:34:40 +01:00
Artem Pavlenko
a98d1b8071 use std::uint8_t as an attribute for hex2 parser 2018-07-18 10:40:41 +01:00
Artem Pavlenko
4c31bd16d2 Merge branch 'master' into boost_1_67 2018-07-18 09:27:56 +01:00
Mickey Rose
f84191204e eradicate M_PI 2018-07-16 14:18:49 +02:00
Mickey Rose
32e7202223 well_known_srs: move implementation to .cpp
- add lonlat2merc, merc2lonlat overloads for single point
- add stride argument to overloads for coordinate arrays
- make all functions exported
- change static string constants to exported
- change static numeric constants to constexpr
- remove superfluous numeric constants
2018-07-16 14:18:32 +02:00
Mickey Rose
e11f3a660a offset_converter: minor refactoring
DRY: extract method for `joint_angle` calculation.
2018-07-14 12:46:53 +02:00
Mickey Rose
a0a2c78950 util/math: clamp, degrees, radians
Use common functions for degrees <-> radians conversions, except when
dealing with agg, where it makes sense to use available deg2rad/rad2deg
functions instead of including another header.
2018-07-13 12:34:25 +02:00
Mickey Rose
7c4ccf0209 make util::normalize_angle reasonably fast on large values
Because it simply calculates the remainder after division by full turn,
it shouldn't take time proportional to the magnitude of its operand.
2018-07-11 23:14:23 +02:00
Mickey Rose
c2c00570b3 define MAPNIK_MAKE_VERSION, MAPNIK_VERSION_AT_LEAST 2018-07-11 10:38:32 +02:00
Artem Pavlenko
2c2669d655 fixes typo (#3930) 2018-07-05 09:37:49 +02:00
Artem Pavlenko
9d44a73ad0 fix - add single quoted string escaped chars support + allow backtracking when escaped characters are not part of /u, /U. /x encodings (ref 3433397c30 (commitcomment-29512684)) 2018-07-02 15:07:41 +02:00
Raul Marin
8e11ef3fd7 Improve padding calculation 2018-06-06 18:39:15 +02:00
Artem Pavlenko
95d5fabad0 Merge branch 'master' into boost_1_67 2018-05-21 15:58:24 +01:00
Raul Marin
0195047d7a Marker symbolizer: Fix bug with lines with 0 length (division by zero) 2018-05-11 12:24:01 +02:00
Jiri Drbalek
89b5cb4f22 Remove useless ellipsoid.hpp 2018-05-08 15:39:13 +00:00
Artem Pavlenko
b7bdd08837 define BOOST_SPIRIT_INSTANTIATE_UNUSED once and re-use [skip-ci] 2018-04-18 14:18:40 +02:00
Artem Pavlenko
664d3508de remove reference_wrapper usage when injecting attributes into grammar ( >= boost_1_67) [skip-ci] 2018-04-18 12:53:17 +02:00
Artem Pavlenko
9e79e1edf1 update const-ness in x3::context definitions to support boost 1_67 [skip-ci] 2018-04-17 15:41:17 +02:00
Artem Pavlenko
def0fd1f31 prepare for breaking change in spirit::x3 (from boost 1.67.0) - remove with_context usage
(ref https://github.com/boostorg/spirit/pull/239)
2018-04-16 15:25:39 +02:00
Artem Pavlenko
b392b8214e add explicit instantiation declarations to DEFINE_ENUM macro to fix -Wundefined-var-template warnings. 2018-04-16 11:12:05 +02:00
Artem Pavlenko
fe5c4bb978 supress unused variable warning in boost state_machine 2018-04-16 11:08:08 +02:00
Raul Marin
1ddfe6c315 Qualify ICU types explicitly
ICU 61 has dropped the global `using namespace icu;`
http://site.icu-project.org/download/61#TOC-Migration-Issues
2018-04-03 13:18:43 +02:00
Blake Thompson
25e4bb3f6c A fix for two distinct issues associated with gdal featuresets, the first is overviews were not properly being utilized based on the resolution of the final image requested. The second is that allocation of far too much memory could be possible in GDAL to attempt to do resampling internally in mapnik. This now has a hard cap so that we allocate less memory in these situations but are still able to resample internally in mapnik. 2018-03-30 15:10:29 -05:00
Artem Pavlenko
a8d7fc1cfb Revert "avoid symbols duplication"
This reverts commit c737f4d56f.
2018-03-15 15:58:23 +01:00
Artem Pavlenko
c737f4d56f avoid symbols duplication 2018-03-09 09:57:49 +01:00
Artem Pavlenko
eb1a32eb79 fix dereferencing out-of-range iterator (caught by -fsanitize=undefined,integer) (#3867) 2018-03-01 11:54:41 +01:00
Artem Pavlenko
5b8b75e680 fix compiler warning
```include/mapnik/text/symbolizer_helpers.hpp:164:45: warning: template template parameter using 'typename' is a C++17 extension
      [-Wc++17-extensions]
    template <template <typename, typename> typename GridAdapter>
                                            ^~~~~~~~
                                            class
```
2018-03-01 10:56:55 +01:00
Artem Pavlenko
3ad43a33ae check language variable to avoid SIGILL in '-fsanitize-trap=integer,undefined' builds. 2018-02-28 15:20:13 +01:00
Artem Pavlenko
37b7f05180 Merge branch 'offset-converter-topology' of https://github.com/mapycz/mapnik into mapycz-offset-converter-topology 2018-02-26 16:06:19 +01:00
Artem Pavlenko
8876d13356 improve errors reporting in mapnik-index 2018-02-21 16:02:12 +01:00