Commit graph

4318 commits

Author SHA1 Message Date
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
artemp
8ce7a1c43d refactor souce code files with the following rule: the physical filesytem path matches namespace structure
e.g `mapnik::geometry::centroid()` -> `$(MAPNIK_SOURCE)/include/mapnik/geometry/centroid.hpp`
2016-10-11 18:01:29 +02:00
Jiri Drbalek
0f3eecbe5e fix intersecting extents in different projections 2016-09-27 20:36:34 +00:00
artemp
8a8427daed GeoJSON feature/geometry grammars - split (a | b | ...) % lit(',') rule to avoid creating bogus temp synthesised attribute e.g boost::variant<a,b,..> which causes clang compiler >= 3.9 to segfault. (ref #3507)
NOTE: In general many Boost.Spirit gotchas can be fixed by simplifying rules (better control what gets synthesied under the bonet)
2016-09-22 12:18:34 +02:00
Mickey Rose
870b890042 remove redundant member pData_ from mapnik::image
I believe this is better than fixing swap() by also
swapping pData_
2016-09-07 20:03:17 +02:00
Jiri Drbalek
6e489a95a3 add extend parameter of text symbolizer 2016-09-07 11:46:59 +00:00
Jiri Drbalek
8733622885 add extend_converter 2016-09-07 11:46:59 +00:00
artemp
a63a50556a Merge branch 'master' into geometry-refactor 2016-09-06 10:01:15 +02:00
artemp
747ca7470c remove duplicate #pragma 2016-09-05 11:39:36 +02:00
artemp
8e0e344b72 Merge branch 'master' into geometry-refactor 2016-09-05 09:41:52 +01:00
Dane Springmeyer
3741a7f348 fix -Wshadow warnings caught by g++-5 2016-09-03 09:58:40 -07:00
artemp
38bff90a99 Merge branch 'master' into geometry-refactor 2016-09-01 16:06:20 +01:00
Dane Springmeyer
4b06dfe9b4 Avoid warnings when building the g++5 2016-08-31 11:09:27 -07:00
artemp
f360f50eed JSON - make generic_json a proper spirit grammar and reduce code bloat 2016-08-31 14:36:35 +01:00
artemp
842522b287 Merge branch 'master' into geometry-refactor 2016-08-26 09:06:05 +01:00
Jiri Drbalek
8b18c605fd no need for heap allocation 2016-08-25 08:01:31 +00:00
Jiri Drbalek
6da9de5739 fix closing segment 2016-08-25 08:01:25 +00:00
artemp
56c6a1ea62 Merge branch 'master' into geometry-refactor 2016-08-24 11:14:01 +01:00
artemp
fe007915df Revert "Revert "mapnik::variant - use std::tuple<Typess...> instead of mpl::vector<Types...> and remove Boost.MPL dependency""
and remove `<boost/fusion/adapted/std_tuple.hpp>`

This reverts commit b6cc48fd40.
2016-08-23 15:45:15 +01:00
Dane Springmeyer
f81583554a Merge branch 'master' of github.com:mapnik/mapnik into geometry-refactor 2016-08-22 16:19:17 -07:00
Dane Springmeyer
b6cc48fd40 Revert "mapnik::variant - use std::tuple<Typess...> instead of mpl::vector<Types...> and remove Boost.MPL dependency"
This reverts commit 6613222b84.
2016-08-22 11:40:06 -07:00
artemp
6613222b84 mapnik::variant - use std::tuple<Typess...> instead of mpl::vector<Types...> and remove Boost.MPL dependency 2016-08-22 12:16:48 +01:00
artemp
1e8f471448 minor formatting 2016-08-16 10:53:57 +01:00
artemp
b9279feee2 fix is_valid logic (ref #3494) 2016-08-15 12:49:43 +01:00
artemp
0471f3369a add order_by_name helper method 2016-08-15 12:20:19 +01:00
artemp
31814b32d0 rename empty_featureset => invalid_featureset to avoid ambiguity + add helper is_valid method 2016-08-15 10:41:30 +01:00
artemp
8dca305e7e json stringifier - add missing quoting in nested json objects (ref #3491) 2016-08-12 11:04:30 +01:00
Jiri Drbalek
621a5e51ac style level comp-op and opacity for Cairo renderer 2016-08-03 20:14:56 +00:00
Mickey Rose
f9d5c3a2f8 use proper feature-test macro for inheriting constructors 2016-08-03 00:29:51 +02:00
Artem Pavlenko
68db7ee224 Merge pull request #3475 from mapycz/logarithm
Add support for natural logarithm in expressions (via @talaj)
2016-08-01 15:07:01 +02:00
Jiri Drbalek
c1ab5c8e6c add support for natural logarithm function in expressions 2016-08-01 12:58:21 +00:00
Dane Springmeyer
148783da25 Revert "inherit ctor's from geometry_base"
- Fixes #3473 (windows compile)
 - TODO: @artemp get to the bottom of how to inherit from base class
   in a way that works with boost::variant and across platforms

This reverts commit bf99177da7.
2016-07-29 04:51:18 -07:00
artemp
bf99177da7 inherit ctor's from geometry_base 2016-07-25 15:55:20 +02:00
Dane Springmeyer
bd920daa16 fix decltype forwarding 2016-07-25 14:51:45 +02:00
Dane Springmeyer
f734368a73 limit mpl list size as well as vector size 2016-07-25 14:51:45 +02:00
artemp
2864d90460 more explicit conversions to the target variant type 2016-07-25 13:45:35 +02:00
artemp
7fa35f481e Support creating paletted images for any number of pixels e.g < 3 (ref #3466) 2016-07-20 14:01:14 +02:00
artemp
dc88582b4d Merge branch 'master' into geometry-refactor 2016-07-19 10:25:33 +01:00
artemp
6f8f286b8d Revert "allow "null" values when genrating Feature GeoJSON"
This reverts commit 8ce58ea29c.
2016-07-15 12:22:03 +01:00
artemp
54d51e2728 Revert "feature_kv_iterator - change logic in 'increment' to skip key/value's when value doesn't exist"
This reverts commit 3397b8f14f.
2016-07-15 12:21:41 +01:00
artemp
8ce58ea29c allow "null" values when genrating Feature GeoJSON 2016-07-14 10:09:34 +01:00
artemp
3397b8f14f feature_kv_iterator - change logic in 'increment' to skip key/value's when value doesn't exist 2016-07-14 09:46:37 +01:00
artemp
c457d93804 use count(key) 2016-07-14 09:45:55 +01:00
artemp
75781a999c add empty_featureset (returning feature_ptr()) implementation 2016-07-13 15:17:41 +01:00
artemp
132aa6654f add empty_featureset (returning feature_ptr()) implementation 2016-07-13 15:07:08 +01:00
artemp
45c5a3768f extract_bounding_box_grammar - make features optional / ref #3463 2016-07-12 17:44:19 +01:00
artemp
abb4271bea extract_bounding_box_grammar - make features optional / ref #3463 2016-07-12 17:42:53 +01:00
artemp
e08c3c1a20 using alias() doesn't work: line_string and linear_ring are different types (no-conversion) 2016-07-12 11:13:45 +01:00
artemp
fd41b682be geometry_generator - fix synthesised attribute types 2016-07-12 11:11:35 +01:00
artemp
74bf270d21 geometry is_simple - handle empty polygons 2016-07-11 11:55:20 +01:00