Commit graph

4569 commits

Author SHA1 Message Date
Artem Pavlenko
c24568f033 Merge branch 'polylabel-as-interior' of https://github.com/mapycz/mapnik into mapycz-polylabel-as-interior 2018-01-08 10:21:09 +00:00
Artem Pavlenko
e2d741bdb7
Merge pull request #3809 from IMQS/pr-text-placements-export
Export all text_placements_ classes from mapnik.dll
2018-01-05 13:02:58 +00:00
Artem Pavlenko
c29f944726 Merge branch 'fix-group-symbolizer-crash' of https://github.com/lightmare/mapnik into lightmare-fix-group-symbolizer-crash 2018-01-05 12:16:41 +00:00
Artem Pavlenko
92afd0bebf Use macro to apply __attribute__((init_priority(val))) where it's supported (gcc+clang) (#3821) 2018-01-04 14:29:00 +00:00
Artem Pavlenko
50169e95b2 Enforce global variables initialisation order via __attribute__((init_priority(<priority>))) (#3821) 2018-01-04 12:22:04 +00:00
Artem Pavlenko
a67f5abb67 consistent syntax 2018-01-03 17:38:16 +00:00
Jiri Drbalek
f52a0fa4f6 new interior algorithm 2017-12-13 21:48:13 +00:00
Jiri Drbalek
ea7ba2c099 add polylabel placement method 2017-12-13 21:48:13 +00:00
Ben Harper
5507ab817a Export all text_placements_ classes from mapnik.dll
Previously, only text_placements_dummy had a MAPNIK_DECL annotation.
This commit adds that annotation to text_placements_simple and
text_placements_list, so that they are also exposed from the Windows DLL
build.
2017-11-28 11:30:35 +02:00
Artem Pavlenko
3cb74f0871 attempting to fix #3793 2017-11-14 10:10:26 +01:00
Artem Pavlenko
97f520c7cf cleanup 2017-11-14 10:10:26 +01:00
Jiri Drbalek
fe268b0e71 char_array_buffer should implement also seekpos() 2017-11-13 22:42:37 +00:00
Artem Pavlenko
5db45d9fa3 use semantic actions to fix #3744 ( >= boost_1_65) 2017-11-13 13:15:47 +01:00
Artem Pavlenko
743c14d3ff add UDL via operator"" _case 2017-11-06 10:31:53 +01:00
Artem Pavlenko
2271e4a5a4 use unsigned int for indexed access 2017-10-31 10:52:09 +01:00
Ben Harper
05849f0da5 Add new angled-point marker placement mode for lines
This adds a new mode called 'angled-point' to the marker-placement modes.
The full list of modes is then:
  point, angled-point, interior, line, vertex-first, vertex-last

Angled point is identical to point, except that when placing a marker on
a line, the marker's angle is taken from the angle of the line segment.

There is another possible use of the "angled-point" concept for polygons,
and that is for placing labels on stand (aka erf) polygons. By computing
a dominant angle for a mostly rectangular polygon, this can produce quite
good results. I'm not sure whether I should implement that now, or if I
could do that later.
2017-10-26 15:09:17 +02:00
talaj
f3cf1ad388 Fix centroid and interior algorithms (#3771)
* fix interior algorithm - closing segment handling

* fix centroid algorithm - closing segment handling

* update visual tests
2017-09-25 15:45:02 +02:00
Artem Pavlenko
3d4963f40c move implementatio into *.cpp + return 'closest_point_result' struct. 2017-09-22 13:21:50 +02:00
Artem Pavlenko
143d1e57cf add 'closest_point' geometry algorithm 2017-09-21 15:40:30 +02:00
Artem Pavlenko
5d5ef602be rename 'geometry_type' to 'topojson_geometry_type' to avoid names clashing
(this was causing miscompilation on linux (ubuntu 17.04/clang))
2017-09-18 11:35:39 +01:00
talaj
d14203561d color font support improvements (#3758)
👍
2017-09-13 10:14:46 +01:00
Artem Pavlenko
acec6ae824 Merge branch 'master' into bbox-index 2017-09-12 14:57:12 +01:00
Artem Pavlenko
8bc080c7b8 Merge branch 'nested-layers-fixes' of https://github.com/mapycz/mapnik into mapycz-nested-layers-fixes 2017-09-12 14:09:47 +01:00
Artem Pavlenko
04f9db4b18 minor format 2017-09-11 17:30:37 +01:00
Jiri Drbalek
6777721391 enclosing calls forgotten in https://github.com/mapnik/mapnik/pull/3474 2017-09-11 15:25:19 +00:00
artemp
441687ecff boost_adapters - apply temp fix via @Algunenano for boost 1.64 (ref #3733) 2017-08-21 14:14:00 +01:00
artemp
9b0fd7a8d7 boost_adapters - apply temp fix via @Algunenano for boost 1.64. 2017-08-21 14:12:12 +01:00
artemp
40c51c469c shape.input/shapeindex - update to use bounding box per item *.index format. 2017-08-21 11:02:34 +01:00
artemp
6c19efa990 store box2d<float> directly in index_record to avoid conversions. 2017-08-18 16:59:58 +01:00
artemp
2aa0ce9d74 New *.index format (bounding box per item) implementation 2017-08-18 11:16:44 +01:00
artemp
2426a44671 initial updated spatial-index implementation 2017-08-16 13:59:44 +01:00
artemp
add410e619 use arch independent types for serialised values 2017-08-15 11:14:11 +01:00
artemp
c4a1df6e91 simplify impl + const correctness + minor cleanup 2017-08-15 11:13:11 +01:00
artemp
6f73181e9b Enforce consistent error handling policy - always throw on fatal errors (both strict and non-strict). In strict mode throw on first parsing error. Remove return values from parse,parse_from_string and traverse_tree methods. Update unit tests. 2017-08-02 10:32:13 +01:00
artemp
093fcee6d1 only include <unicode/unistr.h> if ICU >= 59 (attempting to fix current coverage build on travis). 2017-07-21 10:37:22 +02:00
artemp
9e58c89043 Add support for U_ICU_VERSION_MAJOR_NUM >= 59 (#3729) 2017-07-19 16:07:39 +02:00
artemp
3ae71eea0f JSON - wrap lamda functions into anonymous namespace to fix linking on Windows with VS2017. 2017-07-06 16:09:38 +02:00
artemp
e653f4cc4c make constructor explicit to avoid C2664 error with VS2017. 2017-07-06 16:01:06 +02:00
artemp
e08616aed3 Didn't play well with VS2017, reverting "re-use lamdas definitions and aviod duplicate symbols when building with vs2017"
This reverts commit 4c9322bc0d.
2017-07-06 11:17:14 +02:00
artemp
631c0a59c4 Revert "trying to inline lambdas (VS2017) (!)" this is not allowed in c++14 requires c++17
This reverts commit 0ad1c58009.
2017-07-06 11:14:24 +02:00
artemp
0ad1c58009 trying to inline lambdas (VS2017) (!) 2017-07-06 11:11:01 +02:00
artemp
4c9322bc0d re-use lamdas definitions and aviod duplicate symbols when building with vs2017 2017-07-06 10:59:42 +02:00
artemp
148e77884c don't include xml_parser_read_rapidxml.hpp - forward declaring xml_node is sufficient. 2017-06-29 09:41:16 +02:00
artemp
3fbce913d0 store viewbox transform 2017-06-29 09:41:16 +02:00
artemp
87abf93da3 move name_to_int into separate header for re-use. 2017-06-29 09:41:16 +02:00
artemp
53a69463ea SVG parser - add support for <use> element (ref #763). 2017-06-29 09:41:16 +02:00
artemp
a4e8603af1 svg transform - correct rotate(<a> [<x> <y>]) rule (ref #763)
(The transform attribute defines a list of transform definitions that are applied to an element and the element's children. The items in the transform list are separated by whitespace and/or commas, and are applied from right to left.)
2017-06-29 09:41:16 +02:00
artemp
b6aa45144c svg_parser - refactor => remove mutable temporary_gradient_ member variable + process stop elements from within linearGradient and radialGradient. 2017-06-29 09:41:16 +02:00
artemp
6da83bc986 svg_parser - store unresolved gradient nodes for deferred initalisation. 2017-06-29 09:41:16 +02:00
artemp
ef6c2e71b8 svg-parser : handle parsing failures via error_handler ( throw in strict mode and log+continue when strict==false) 2017-06-29 09:41:16 +02:00
artemp
3f591af871 initial support for strict SVG parsing (WIP) 2017-06-29 09:41:16 +02:00
artemp
dfa8f100b2 freetype_engine - port singleton changes from v3.0.x 2017-06-01 12:47:18 +02:00
Jiri Drbalek
7590cdabb0 fix typo in file name 2017-05-24 13:59:47 +00:00
Jiri Drbalek
0781f230be fix polygon handling 2017-05-24 13:59:44 +00:00
Jiri Drbalek
4084e670ec fix closing polygons on reprojection 2017-05-24 12:10:11 +00:00
artemp
1725b1ebba TIFF.input - port changes from https://github.com/mapnik/mapnik/pull/3668 (ref #3669) 2017-05-10 14:33:29 +02:00
artemp
97a796ba0e fix polygon_coord rule to generate required enclosing brackets. 2017-05-05 16:29:33 +02:00
artemp
333ef9fde1 update copyright year 2017-05-05 13:02:01 +02:00
artemp
d84991bae3 add debug log 2017-05-04 10:50:49 +02:00
artemp
85aebf7268 set most common language based on script for each text run (#3655) 2017-05-03 10:23:42 +02:00
artemp
e75db3aa18 make box2d<T> adapters more generic. 2017-04-10 13:18:00 +01:00
artemp
20824cce79 add const_interior_rings type and stop abusing type system. (NOTE: iterator/const_iterator types are required by boost::range_iterator) 2017-04-03 13:00:35 +01:00
artemp
53a32b59b9 add boost::geometry::traits::push_back specialisation for mapnik::interior_rings<CoordinateType> 2017-03-30 14:04:57 +01:00
artemp
d96e6abe81 const correctness via @flippmoke 2017-03-30 09:54:12 +01:00
artemp
ef7da04cc9 cleanup 2017-03-30 09:23:58 +01:00
artemp
e3bf8cb558 use range based loop via @flippmoke 2017-03-30 09:23:11 +01:00
artemp
c28bf77d5d Merge branch 'master' into geometry.hpp 2017-03-30 08:23:56 +01:00
artemp
dd079183c5 add boost::geometry::resize and boost::geometry::clear traits specialisations for mapnik::interior_rings<CoordinateType> 2017-03-29 17:44:07 +01:00
artemp
3e803b52bb remove has_empty + fix is_empty implementaion to work with geometry.hpp 2017-03-29 11:39:04 +01:00
artemp
064b99168b geometry.hpp 2017-03-27 16:14:51 +01:00
artemp
60e6f5a9ff geojson - fix geometry generator grammar. 2017-03-22 15:09:15 +00:00
artemp
38b4b65911 GeoJSON - refactor geometry generator to preserve geometry type in output (ref https://github.com/mapnik/python-mapnik/issues/139) 2017-03-21 16:48:41 +00:00
artemp
b4b5e33b05 refactor WKT generator to retain geometry type for empty geometries (avoid short-cutting to POINT EMPTY)
For example:

| in |   | out   |
|`POINT EMPTY` |  <--> | 'POINT EMPTY`|
|`LINESTRING EMPTY` |  --> | 'POINT EMPTY`|

| in |   | out   |
|`POINT EMPTY` |  <--> | 'POINT EMPTY`|
|`LINESTRING EMPTY` |  <--> | 'LINESTRING EMPTY`|
etc.
2017-03-21 12:43:42 +00:00
artemp
d9063db0a0 GeoJSON - make geometry element stricter and throw on invalid input. 2017-03-21 12:40:58 +00:00
artemp
5450255c5b revert back to separate tests #if HB_VERSION_MAJOR > 0 #if HB_VERSION_ATLEAST(1, 0 , 5) ref #3642 2017-03-20 14:24:34 +00:00
Jiri Drbalek
d7ba7dc0db agg renderer: recycle internal buffers 2017-03-16 06:54:16 +00:00
Jiri Drbalek
03929b5c76 nested layers, layer level comp-op and opacity 2017-03-16 06:54:16 +00:00
artemp
1d06afeea2 Merge branch 'postgis-quoting' of https://github.com/lightmare/mapnik into lightmare-postgis-quoting 2017-03-14 12:29:32 +00:00
artemp
c1053181f5 Merge branch 'text-extend' of https://github.com/mapycz/mapnik into mapycz-text-extend 2017-03-14 11:53:52 +00:00
artemp
0dff423c44 cleanup 2017-03-14 11:22:11 +00:00
artemp
203d767e73 follow up from 32f5703ed1 - more generic specialisation 2017-03-14 10:26:09 +00:00
artemp
32f5703ed1 provide is_substitute specialisation for mapnik::geometry::linear_ring<double> const& (gcc6) 2017-03-14 11:05:33 +01:00
artemp
a50efcb2bb refactor unicode string grammar - add escaped_unicode rule + use it in expressions. 2017-03-03 15:41:46 +01:00
artemp
fb7139bc63 expressions - only import escaped rule from unicode_string_grammar and construct single/double quoted string rules locally to match expression grammar. NOTE: single quoted strings don't accept unicode encodings 2017-03-03 15:14:01 +01:00
artemp
92f07b7a7a handle utf16 encoding correctly by parsing as sequence and applying utf16->utf32->utf8 conversion. 2017-03-01 18:46:48 +01:00
artemp
04dd05c971 minimise shared_ptr assignments and simplify code 2017-03-01 12:59:34 +01:00
artemp
d29be8a689 If I'm reading docs correctly \uNNNN + \UNNNNNNNN are correct
Revert "relax hex4 parser to allow 5 character \unnnnn code points"

This reverts commit 378fa41db6.
2017-03-01 12:08:22 +01:00
artemp
2d2c5a191b expression_grammar: re-use unicode_string_grammar and add initial support for \uNNNNN code points (TODO) 2017-03-01 11:58:18 +01:00
artemp
378fa41db6 relax hex4 parser to allow 5 character \unnnnn code points 2017-03-01 11:53:27 +01:00
artemp
571b2a0d6a Merge branch 'harfbuzz-shaper' into color-emoji 2017-03-01 11:30:33 +01:00
artemp
7cb587a901 Merge branch 'master' into harfbuzz-shaper 2017-03-01 11:30:08 +01:00
artemp
131f785dce Make parsing \xXX format strict via hex2 parser + append UTF8 encoded \xXX characters directly (fixes #3631) 2017-03-01 11:25:43 +01:00
artemp
e95b16c5ca make hex parser strict (expecting two characters after \x) to avoid greedy parsing of trailing characters as in
"\xF0\x9F\x8D\xB7abc" ==>  ... + "\xB7" +  "abc" not "\xB7abc"
2017-03-01 10:35:39 +01:00
artemp
0076a5a916 make hex parser strict (expecting two characters after \x) to avoid greedy parsing of trailing characters as in
"\xF0\x9F\x8D\xB7abc" ==>  ... + "\xB7" +  "abc" not "\xB7abc"
2017-03-01 10:34:16 +01:00
artemp
570126bd76 make hex parser strict (expecting two characters after \x) to avoid greedy parsing of trailing characters as in
"\xF0\x9F\x8D\xB7abc" ==>  ... + "\xB7" +  "abc" not "\xB7abc"
2017-03-01 10:27:12 +01:00
artemp
cbacaaf0c5 initialize to reasonable values. 2017-02-28 15:05:37 +01:00
artemp
1b67779290 implement color bitmap extraction/scaling/compositing into target pixmap 2017-02-28 15:04:49 +01:00
artemp
7c93514fbc avoid division by zero (units_per_EM is set to 0 for bitmap fonts) 2017-02-28 15:01:46 +01:00
artemp
8e97803e81 add color_font_ member 2017-02-28 14:59:14 +01:00
artemp
32e592fb7a use explicit const& 2017-02-22 12:33:18 +01:00
artemp
d9c81d46fd use else if 2017-02-20 12:12:22 +01:00
artemp
86e5f9305b quarantee glyphinfos has enough capacity to hold cluster 2017-02-17 17:16:36 +01:00
artemp
fbdff42d47 use std::vector<std::vector<T>> instead of std::map<unsigned,std::vector> to simplify lookups 2017-02-17 16:52:31 +01:00
artemp
20cafae780 ensure insert has worked 2017-02-17 15:40:37 +01:00
artemp
e55918788c fix test logic 2017-02-17 15:32:03 +01:00
artemp
302e4c75dd simplify further 2017-02-17 15:28:13 +01:00
artemp
fe7d1e2f53 simplify logic 2017-02-17 15:23:00 +01:00
artemp
49c28cb6ad new font fallback implementation - it is rather inefficient but attempting to do a right thing.
(NOTE: some visual text failures need further look to see if latest implementation is correct)
2017-02-17 14:20:32 +01:00
Mickey Rose
2587bb3a1d sql_utils: improved table_from_sql 2017-02-10 18:55:22 +01:00
Mickey Rose
a4e8ea21be sql_utils: deprecate flawed un-quote functions
unquote* just strip all quotes from both ends of the string,
and don't collapse inner quotes.

quote_attr doesn't duplicate inner quotes.
2017-02-10 18:55:22 +01:00
Mickey Rose
7b217133e2 sql_utils: on-the-fly quoting via operator << 2017-02-10 18:55:22 +01:00
artemp
755d178d20 alternative exaustive face fallback implementation ref #3534 #3559 2017-01-31 17:44:25 +01:00
artemp
d053bddb43 add support for PNG filters (http://www.libpng.org/pub/png/libpng-manual.txt) ref #3479 2017-01-26 15:45:08 +01:00
artemp
2ede054e93 c++ style - use pre-(de)increment operators by default 2017-01-26 14:19:28 +01:00
artemp
f13848e210 move box2.hpp and related files into geometry dir 2017-01-26 09:51:37 +01:00
artemp
a220bda05d check return value from std::fread 2017-01-13 14:38:00 +01:00
artemp
f76060274d Revert back again fixing a typo! (thanks @springmeyer 2f55f0962e (commitcomment-20461372))
"It doesn't work with GCC reverting back "disable [-Wunused-result] warning GCC : https://gcc.gnu.org/bugzilla/show_bug.cgi?id=25509""

This reverts commit 2f55f0962e.
2017-01-13 09:42:12 +01:00
artemp
0a7e8bb429 fix GCC shadows a member warning [-Wshadow] 2017-01-12 17:48:56 +01:00
artemp
2f55f0962e It doesn't work with GCC reverting back "disable [-Wunused-result] warning GCC : https://gcc.gnu.org/bugzilla/show_bug.cgi?id=25509"
This reverts commit 3c76e8d7ef.
2017-01-12 11:39:57 +01:00
artemp
3c76e8d7ef disable [-Wunused-result] warning GCC : https://gcc.gnu.org/bugzilla/show_bug.cgi?id=25509 2017-01-12 11:23:46 +01:00
artemp
7db3beda01 add parentheses to supress gcc warning [-Wparentheses] 2017-01-12 10:55:33 +01:00
artemp
de2b44712a move transform related headers into transform dir to minimize clutter 2017-01-11 11:10:03 +01:00
artemp
91f9508654 relax expression_grammar: allow _ underscore characters in global attribute names 2017-01-11 10:38:11 +01:00
artemp
f207ec2da2 cleanup 2017-01-10 17:19:28 +01:00
artemp
65dcb1c935 fix transform grammar to support whitespace/comma argument separation rules (https://github.com/mapnik/mapnik/pull/1416) ref #3569 2017-01-10 17:13:45 +01:00
artemp
7326c0d558 expressions - simplify attribute parsing by combining feature attribute and geometry_type attribute processing. 2017-01-10 11:54:08 +01:00
Artem Pavlenko
e5a93bce52 Merge pull request #3596 from mapycz/text-simple-placement-center
Text simple placement: add center 'C' placement
2017-01-09 11:57:03 +01:00
artemp
6190784350 remove remaining usage of deprecated dymamic exceptions: dtors are implicitely noexcept + qualify what methods with noexcept 2017-01-09 11:47:52 +01:00
Jiri Drbalek
4eae86b7bc text simple placement: add center 'C' placement 2017-01-08 09:05:44 +00:00
artemp
07ab49830f disable is_substitute instantiation for BOOST_VERSION > 106300, fixes gcc6+boost-1_63 build 2017-01-04 18:39:42 +01:00
artemp
e210dfaf8c fix GCC warning by adding missing parentheses around comparison in operand of '|' 2017-01-04 18:23:31 +01:00
Mickey Rose
962bcf84c5 change render_thunk_list to std::list<render_thunk>
Wrapping render_thunk in std::unique_ptr is one extra allocation per
element, with no purpose. The somewhat costly xyz_render_thunk move
constructor is only called once upon insertion, regardless of whether
we're emplacing render_thunk or unique_ptr.
2017-01-03 20:53:55 +01:00
artemp
d3a9e4c4d7 revive support for an empty array => geometry_empty
RFC 7946 "...GeoJSON processors MAY interpret Geometry objects with
          empty "coordinates" arrays as null objects."
2017-01-03 16:17:46 +01:00
artemp
7a8e8014b7 Revert "add ```template <typename T>" - oops we don't need this in master!
This reverts commit b3c4aff2c7.
2017-01-03 11:28:40 +01:00
artemp
b3c4aff2c7 add ```template <typename T>
transform_node(boost::value_initialized<T> const&)
          : base_() {}
``` to address

```c:\mb\windows-builds-64\packages\mapnik-windows\include\mapnik/transform_expression.hpp(175):
error C2664: 'mapbox::util::variant<mapnik::identity_node,mapnik::matrix_node,mapnik::translate_node,mapnik::scale_node,mapnik::rotate_node,mapnik::skewX_node,mapnik::skewY_node>::variant(mapbox::util::variant<mapnik::identity_node,mapnik::matrix_node,mapnik::translate_node,mapnik::scale_node,mapnik::rotate_node,mapnik::skewX_node,mapnik::skewY_node> &&) noexcept(false)':
cannot convert argument 1 from 'const boost::value_initialized<T>' to 'mapbox::util::no_init' [c:\mb\windows-builds-64\packages\mapnik-windows\mapnik-gyp\build\mapnik.vcxproj]
```
when building with VS2017 RC
2017-01-03 11:24:32 +01:00
lightmare
e41f41b0a6 Merge pull request #3566 from mapycz/better-largest-bbox
Better largest bbox
2017-01-02 03:25:14 +01:00
lightmare
a40ce9eefd Merge pull request #3578 from mapnik/cxx11-friendly
C++14-like type traits aliases
2017-01-02 03:24:59 +01:00
artemp
ed648ced46 SVG transform - implement in terms of boost::spirit::x3 2016-12-23 16:32:05 +01:00
artemp
3b52ae97c0 add missing header 2016-12-23 14:42:18 +01:00
artemp
95cc560167 SVG points - implement using boost::spirit::x3 + refactor parse_rule instantiations into separate *.cpp 2016-12-23 14:40:59 +01:00
artemp
584fda88e0 SVG path grammar - return start rule by const& 2016-12-23 13:26:37 +01:00
artemp
30749031cf SVG path parser - boost::spirit::x3 based implementation 2016-12-22 14:57:26 +01:00
artemp
9d0096eff6 remove unused include directive 2016-12-21 15:20:52 +01:00
artemp
506390b735 use curly braces initialiser (c++ style) 2016-12-21 09:05:31 +01:00
artemp
5745bedbd9 update copyright year to 2016 2016-12-20 17:57:22 +01:00
artemp
7f4fd0cc76 include guards - add missing and normalise namings 2016-12-20 17:45:38 +01:00
artemp
b73901edab remove from forthcoming 3.1.x release 2016-12-20 17:45:00 +01:00
artemp
f3cd36f0cd reserve std::vector capacity prior oppending + remove const qualifier 2016-12-20 10:40:50 +01:00
artemp
8b049230b3 topojson_grammar_x3 : make rules const 2016-12-20 10:31:52 +01:00
artemp
f1ccc66162 avoid parsing synthesised std::tuple<> + more fine-grained rules 2016-12-19 17:53:58 +01:00
artemp
18f721fd17 TopoJSON - implement parsing using spirit::x3 2016-12-19 16:18:19 +01:00
artemp
053eca1232 JSON - add geometry_grammar_x3 2016-12-16 11:21:20 +01:00
Mickey Rose
e6ed16e94e make mapnik_value_type_t C++11-friendly 2016-12-15 11:58:50 +01:00
Mickey Rose
568507349b bring C++14 type traits aliases for C++11 support 2016-12-15 11:51:02 +01:00
artemp
7affd45511 refactor json_value into separate header and reduce include bloat 2016-12-15 11:29:29 +01:00
artemp
4ba87b1e9d c++14 support is not sufficient on windows: reverting back and start tracking Windows workarounds in separate branch
Revert "move BOOST_SPIRIT_DEFINE into separate headers + use across all grammar defs (#3573)"

This reverts commit 81cfa721db.

Revert "windows : fix errors C3259 + C3249"

This reverts commit 8327905aba.

Revert "Workaround for VC++ C2995 via redifining BOOST_SPIRIT_DEFINE macro (#3573)"

This reverts commit 2a2f0bf00a.
2016-12-14 17:11:59 +01:00
artemp
81cfa721db move BOOST_SPIRIT_DEFINE into separate headers + use across all grammar defs (#3573) 2016-12-14 16:35:24 +01:00
artemp
8327905aba windows : fix errors C3259 + C3249 2016-12-14 15:53:07 +01:00
artemp
2a2f0bf00a Workaround for VC++ C2995 via redifining BOOST_SPIRIT_DEFINE macro (#3573) 2016-12-14 15:10:22 +01:00
Mickey Rose
7c14964de3 simplify mapnik::value conversion rules
- fixes #3570

- avoids recursive exception-specification on value constructor
  by only constructing a temporary for arithmetic types (everything
  else passes a reference to the base variant constructor)

- also removes `is_same<decay_t<T>, value>` SFINAE check -- because
  we're only passing a reference down, explicitly forcing the compiler
  to use the implicitly-defined copy/move instead is pointless
2016-12-14 02:37:27 +01:00
artemp
c2a61161a6 remove hash_combine (unused) 2016-12-13 15:51:57 +01:00
artemp
0307499753 simplify hash calculation (we don't need combine with which(), using hash<T> is sufficient) 2016-12-13 15:50:00 +01:00
artemp
8e15353818 minor format tweak 2016-12-13 15:49:03 +01:00
artemp
2924d736a8 update version to 3.1.0 2016-12-09 17:07:23 +01:00
artemp
0d703ee552 cleanup include directives 2016-12-08 18:55:55 +01:00
artemp
fe7e9a7dc5 use mapbox namespace to fix name resolution 2016-12-06 15:14:28 +01:00
artemp
df10fab439 only add valid bounding boxes (make backward compatible) 2016-12-06 12:23:09 +01:00
Jiri Drbalek
2174c10b2f find max element instead of std::sort 2016-12-03 14:33:55 +00:00
Dane Springmeyer
8262eb5206 avoid -Wshadow and 'unrecognized command line option' with gcc 2016-12-02 13:43:43 -08:00
artemp
5ea5f18a7e cleanups 2016-12-02 12:42:07 +01:00
artemp
6824f4c477 fix more gcc warnings 2016-12-02 11:42:57 +01:00
artemp
069de8e266 fix gcc6 compilation issue 2016-12-02 11:04:11 +01:00
artemp
2f8da6dfd5 reduce compiler warnings (gcc 6) 2016-12-01 17:17:56 +01:00
artemp
b01481ded7 refactor feature_grammar_x3 to have a cleaner separation between feature and geometry rules 2016-11-30 11:33:35 +01:00
artemp
2dc57effb8 allow null geometry 2016-11-29 16:26:58 +01:00
Jiri Drbalek
2b852ad1f9 remove methods that are not referenced anywhere 2016-11-29 14:55:06 +00:00
artemp
36eb7f61bd implement from_geojson in terms of parse_(feature|geometry) 2016-11-29 10:48:06 +01:00
artemp
941a025682 remove spirit::qi usage from (Geo)JSON 2016-11-29 10:46:23 +01:00
artemp
160c1c9471 pass iterator pair by ref,const& ref to match spirit::x3 APIs and be able check for fully consumed input (needed by geojson.input logic) 2016-11-28 18:40:03 +01:00
artemp
f4f39993d0 allow accessing geometry by ref 2016-11-28 18:38:40 +01:00
artemp
cc9f23c470 allow empty "properties" 2016-11-28 18:38:04 +01:00
artemp
b05d0caba1 implement support for "GeometryCollection" type 2016-11-28 17:05:46 +01:00
artemp
0ea1c7cce2 Merge branch 'master' into develop-master 2016-11-28 15:26:13 +01:00
artemp
af1b39c689 support both box2d<float> and box2d<double> 2016-11-28 10:14:49 +01:00
artemp
d4e1cb9ae7 add an extra extract_bounding_boxes_reverse_context_type definition 2016-11-27 17:06:02 +01:00
artemp
f32b423428 attempting to keep clang on Travis happy 2016-11-25 17:59:44 +01:00
artemp
483f709541 don't include xxx_def.hpp + make rules const 2016-11-25 16:52:56 +01:00
artemp
8a436c8cdc add extract_bounding_boxes_x3 parser configuration 2016-11-25 16:49:42 +01:00
artemp
be4f9ca79b add missing context type definitions + BOOST_SPIRIT_INSTANTIATE_UNUSED macro to instantiate parse_rule with boost::spirit::x3::unused_type attribute 2016-11-25 16:46:10 +01:00
artemp
163a82fd1e add feature_grammar_x3 implementation 2016-11-25 16:45:23 +01:00
artemp
cad029bf7c make hex rules const 2016-11-25 16:44:20 +01:00
talaj
994a327c7f remove superfluous declaration 2016-11-25 13:31:55 +01:00
artemp
23ba18ead2 make rules const 2016-11-25 11:48:16 +01:00
artemp
988966c68e declare in using one macro 2016-11-25 11:47:33 +01:00
artemp
4aa60d669e adapt box2d<float> to boost::geometry 2016-11-23 18:22:11 +01:00
artemp
71c112a0b0 add coord2f type 2016-11-23 18:21:44 +01:00
artemp
a112e88e23 fix compilation - move extract_bounding_boxes into mapnik-index src dir 2016-11-23 17:44:35 +01:00
artemp
ed5ee69c3c refactor GeoJSON bounding box extraction into separate method for re-use and more... 2016-11-23 16:18:38 +01:00
artemp
20d6f84b3b use char const* 2016-11-22 10:43:41 +01:00
artemp
2a0bc9db6c GeoJSON - refactor feature/geometry parsing 2016-11-21 16:08:15 +01:00
artemp
3d629bf76d add missing generic_json_grammar_x3 2016-11-21 11:15:21 +01:00
artemp
ead152499b fix - ensure stringifier called recursively for nested json objects 2016-11-18 09:42:47 +01:00
artemp
493b662f16 add create_feature helper method (geojson_value -> mapnik::feature_impl) 2016-11-17 16:44:09 +01:00
artemp
21a121df18 avoid name clashing 2016-11-17 13:13:07 +01:00
artemp
ca96d3e137 fix duplicate feature to geojson code 2016-11-17 10:33:05 +01:00
artemp
190023a085 remove unused include (#include <mapnik/json/value_converters.hpp>) 2016-11-17 10:31:55 +01:00
artemp
fec5715a69 update to use boost::bimap 2016-11-16 16:05:40 +01:00
artemp
4588c23274 use boost:bimap to store key/name mapping for inverse searching caps 2016-11-16 16:04:54 +01:00
artemp
69b79b303f make create_geometry a method 2016-11-16 16:03:25 +01:00
artemp
c2d7ecbef7 move keys_map initilizer with well-known-names into separate inline method 2016-11-15 17:23:27 +01:00
artemp
1b74544b08 start well-known-names enum from 1 + pre-initialise keys_map with well-known-names 2016-11-15 11:18:44 +01:00
artemp
d6bedd235c parse well-known-names as un-quoted strings 2016-11-15 11:16:58 +01:00
artemp
1e238be7ee move wkn_to_string to json_grammar_config.hpp 2016-11-15 10:15:10 +01:00
artemp
ae30675e98 move json well_known_names 2016-11-15 10:13:36 +01:00
Dane Springmeyer
3283f50639 Merge branch 'master' of github.com:mapnik/mapnik into develop-master 2016-11-14 15:32:39 -08:00
Dane Springmeyer
5a6d16d4fe default scale_factor for filter_visitor (unbreaks node-mapnik compile) 2016-11-14 15:31:18 -08:00
Dane Springmeyer
4449f81e03 restore to_wkt on geometry<std::int64_t> 2016-11-14 15:23:29 -08:00
Dane Springmeyer
657dd7d73a suppress boost warnings 2016-11-14 15:04:07 -08:00
artemp
92d35d1e40 fix json_value name clashing + add skeleton feature validation method 2016-11-14 12:18:36 +01:00
artemp
2b6f23890b remove redundant mapnik::util::recursive_wrapper 2016-11-14 12:13:26 +01:00
artemp
fd36ac5279 Merge branch 'master' into geometry-refactor 2016-11-10 18:01:11 +01:00
artemp
6fb3dbd63f remove BIGINT redifinition 2016-11-10 17:28:16 +01:00
artemp
e46a52c3f0 GeoJSON - spirit::x3 based parsing building blocks 2016-11-10 17:26:24 +01:00
artemp
88b16e0ca8 pass context by const ref + extract _attr(ctx) once and re-use 2016-10-20 17:16:03 +02:00
artemp
eea427b19f cleanup include directives 2016-10-19 13:15:59 +02:00
artemp
7622aa25be cleanup include directives 2016-10-19 13:15:15 +02:00
artemp
e74af890fb Silence -Wundefined-var-template warnings in enumeration.hpp 2016-10-17 16:58:22 +02:00
artemp
9846632daa Merge branch 'master' into develop-master 2016-10-17 16:56:08 +02:00
Jiri Drbalek
b830469d2d multiply blur radius by scale_factor 2016-10-17 11:59:21 +00:00
artemp
6790e27712 remove redundant includes directives 2016-10-17 10:49:56 +02:00
artemp
62012fbf19 re-use literal parser implementation between separator and quote primitives 2016-10-14 14:32:44 +02:00
artemp
83cc819c39 upgrade CSV parser to boost::spirit::x3 2016-10-14 14:24:44 +02:00
artemp
01fbbafc26 remove duplicate 'transcoder_tag` 2016-10-14 09:24:52 +02:00
artemp
4c7d4a51e6 remove unused <bitset> header 2016-10-13 17:00:12 +02:00
artemp
b27cddc101 Silence -Wundefined-var-template warnings in enumeration.hpp 2016-10-13 17:00:12 +02:00
artemp
d934630bc5 Fix clang >= 3.9.0 compilation by using mapbox::util::variant as alias (via deps/mapbox/variant => "types" branch) 2016-10-13 17:00:12 +02:00
artemp
ab86171c2b GeoJSON generator - implement using geometry<double> karma adapters 2016-10-13 17:00:12 +02:00
artemp
b770db56c3 remove unused rule 2016-10-13 17:00:12 +02:00
artemp
9de3c80b0d add specialisations for coord_type = std::int64_t 2016-10-13 17:00:12 +02:00
artemp
a63a491ba0 wkt generator - remove boost::phoenix headers 2016-10-13 17:00:12 +02:00
artemp
beee2fd539 mapnik::geometry - refactor karma adaper into separate header for re-use 2016-10-13 17:00:12 +02:00
artemp
9853353353 adapt mapnik::geometry::geometry<double> to work with boost::spirit::karma + simplify and optimise WKT generator 2016-10-13 17:00:12 +02:00
artemp
67468ef356 refactor path_expression_grammar 2016-10-13 17:00:11 +02:00
artemp
d2f64604a3 consistently return x3 grammars by const& 2016-10-13 17:00:11 +02:00
artemp
1cb966cee2 upgrade WKT grammar to boost::spirit::x3 2016-10-13 17:00:11 +02:00
artemp
3d80a62531 remove unused include directives 2016-10-13 17:00:11 +02:00
artemp
ce0f87fb71 merge spirit-x3 2016-10-13 17:00:11 +02:00
artemp
9a82ffbde7 add geometry and value dirs 2016-10-11 18:01:30 +02:00
artemp
923efd589c geometry_to_path.hpp => geometry/to_path.hpp 2016-10-11 18:01:30 +02:00
artemp
b5c9966e4b refactor value related objects into include/value dir 2016-10-11 18:01:30 +02:00