Commit graph

2501 commits

Author SHA1 Message Date
artemp
5416bd6c3a impl move ctor 2014-01-29 18:08:21 +00:00
artemp
4a2c5d84b7 make ImageData explicitly movable 2014-01-29 14:39:56 +00:00
artemp
5a1888a3b9 mapnik::color operator= 2014-01-29 09:56:44 +00:00
Dane Springmeyer
f286363ad0 more consistent memset/memcpy usage 2014-01-28 15:05:10 -08:00
Matt Amos
944f34b3df Fix unaligned multi-line labels.
This forces offset lines to be aligned to the closest point to
the anchor point on the original line, meaning that they are
aligned where the offset line and original run parallel, or nearly
so.
2014-01-28 20:33:42 +00:00
artemp
6ccaf8beb2 1. return by ref from operator=
2. provide operator= overload
2014-01-28 16:50:41 +00:00
artemp
9b08d1ba00 unify assignment op's 2014-01-28 16:49:52 +00:00
artemp
c6b96d2f36 remove vertex_type (unused) 2014-01-28 16:19:36 +00:00
artemp
1d8d5964d4 operator= overload 2014-01-28 16:18:47 +00:00
artemp
1aa6cafea1 remove noexcept - we can't guarantee noexcept in std::swap(a,b)
and

```c++
    static_assert( noexcept ( std::swap(*this,rhs)), "throwing swap");
```

would fail at compile time
2014-01-28 14:21:58 +00:00
artemp
322b378971 operator= using std::swap § 2014-01-28 10:57:26 +00:00
artemp
6f81c88f9a mapnik::Map - implement assignment-op in terms of swap 2014-01-28 09:58:47 +00:00
Dane Springmeyer
a602518a10 remove c++11 feature that should not be used in 2.3.x branch 2014-01-27 16:35:59 -08:00
Dane Springmeyer
a98de6a348 Merge branch 'master' of github.com:mapnik/mapnik into expr-v2
Conflicts:
	include/mapnik/expression_grammar_impl.hpp
	src/expression.cpp
2014-01-27 13:56:36 -08:00
Dane Springmeyer
84166882d9 minimum boost version is 1.47 - remove obsolete code handling older versions 2014-01-27 13:19:21 -08:00
Dane Springmeyer
dec15c257b geometry envelope: calculate size once 2014-01-27 12:19:49 -08:00
Dane Springmeyer
c5aad93428 fix topojson compile and centralize confix workaround 2014-01-26 16:19:27 -08:00
Dane Springmeyer
63ea37b4c2 further no terminal port 2014-01-26 14:49:03 -08:00
Dane Springmeyer
cd24a7b877 Merge branch 'master' of github.com:mapnik/mapnik into expr-v2
Conflicts:
	tests/cpp_tests/svg_renderer_tests/path_element_test.cpp
2014-01-26 14:12:03 -08:00
Dane Springmeyer
0fc7b8bc01 include <array> header for std::array 2014-01-26 13:45:29 -08:00
Dane Springmeyer
29e7b19007 boost::array -> std::array 2014-01-26 13:44:30 -08:00
Dane Springmeyer
8181aa9dec addLayer -> add_layer (change also coming in expr-v2 branch) 2014-01-26 13:41:30 -08:00
Dane Springmeyer
7520c15e86 Merge branch 'master' of github.com:mapnik/mapnik into expr-v2 2014-01-22 20:48:07 -08:00
Dane Springmeyer
328df74c13 correct include for std::min/max 2014-01-22 17:02:28 -08:00
Dane Springmeyer
3bd9e1b283 correct include for std::min/max 2014-01-22 17:01:38 -08:00
Dane Springmeyer
cdaa31aa5e Revert "branch 2.3.x from master at v2.2.0-242-ge85cdda"
This reverts commit 9e66317af1.
2014-01-20 14:39:28 -08:00
Dane Springmeyer
50f978777d remove uneeded include 2014-01-19 16:26:38 -08:00
Dane Springmeyer
2b08987903 Merge branch 'master' into expr-v2 2014-01-17 19:59:05 -08:00
artemp
3628b5f237 halo-transform initial impl 2014-01-17 11:47:18 +00:00
Dane Springmeyer
833cfb9827 Revert "branch 2.3.x from master at v2.2.0-242-ge85cdda"
This reverts commit 9e66317af1.
2014-01-09 12:39:35 -08:00
artemp
d9f289e4f2 Merge branch 'MapQuest-mla-expr-v2-renderer-common' into expr-v2 2014-01-07 16:05:56 +00:00
Matt Amos
fcbc727f63 scale_factor_ now in common_. 2014-01-07 16:00:11 +00:00
artemp
2884bd0443 fix : use 'template' keyword to treat 'set' as a dependent template name error (clang) 2014-01-07 15:52:28 +00:00
Matt Amos
6479785648 Merge remote-tracking branch 'upstream/expr-v2' into mla-expr-v2-renderer-common 2013-12-19 14:09:09 +00:00
Dane Springmeyer
e52b4ebf9a harfbuzz_shaper: just call hb_shape not hb_shape_full 2013-12-18 12:22:40 -05:00
artemp
5dae2999b1 symbolizers: set_property helper 2013-12-11 17:27:52 -05:00
artemp
f21152a6a9 register target type for symbolizer properties 2013-12-11 17:27:52 -05:00
artemp
d5a0537471 convert json value into symbolizer_base::value_type 2013-12-11 17:27:52 -05:00
artemp
7cf452da77 generic ``to_integral`` helper function (convert strongly typed enumeration values to underlying type) 2013-12-11 17:27:52 -05:00
artemp
b7dda95d84 move symbolizer to json into core
symbolizer json grammar (needs more work)
2013-12-10 15:51:07 -05:00
Matt Amos
5e13658cf9 Merge remote-tracking branch 'upstream/expr-v2' into mla-expr-v2-renderer-common 2013-12-10 11:47:36 +00:00
Matt Amos
ceaea9a948 Factored out common implementation of polygon symbolizer. 2013-12-09 20:42:00 +00:00
Dane Springmeyer
eca1c6e46b Merge branch 'master' of github.com:mapnik/mapnik into expr-v2
Conflicts:
	src/load_map.cpp
2013-12-09 11:40:55 -08:00
Matt Amos
dd9584bdd6 Factored out markers symbolizer logic.
It's not ideal - there's still a bunch of "dispatch" objects from
which the common elements could be factored for greater
readability.
2013-12-09 18:50:00 +00:00
Dane Springmeyer
3376a2e1a0 avoid duplicate call to start_layer_processing
Conflicts:
	include/mapnik/feature_style_processor_impl.hpp
2013-12-07 15:11:26 -08:00
Dane Springmeyer
bead269923 avoid duplicate call to start_layer_processing 2013-12-07 15:09:35 -08:00
Matt Amos
f01953e8f7 Factored out common implementation of raster symbolizer. 2013-12-06 18:09:24 +00:00
Matt Amos
da5574d247 Factored out common implementation of point symbolizer. 2013-12-06 17:30:06 +00:00
Matt Amos
05982c4caf Factored out common code for building symbolizer.
There's a lot of code common between symbolizers which do things
like layout, setup, etc... So it seems sensible to extract the
common operations & loops into a single place which is
independent of the actual renderer.

I've started doing this with C++11 lambdas, although that might
not be the best implementation long term. Should be easy enough
to change, though.
2013-12-06 16:33:26 +00:00
Matt Amos
a9627f835b Factored common renderer code from SVG renderer. 2013-12-06 14:14:14 +00:00
artemp
fb63d51b37 add quoting for relevant types 2013-12-06 13:11:24 +00:00
Matt Amos
4f871d1fc7 Factored out common fields from grid renderer. 2013-12-05 19:34:32 +00:00
Matt Amos
ee018dc589 Factor common fields out of cairo renderer.
This involved making the freetype engine stack allocated and
accessible via a `shared_ptr` because `FT_Face` elements stored
in it are referenced from cairo structures which persist beyond
the lifetime of the `cairo_renderer` object.

Hopefully this can be resolved in a future commit.
2013-12-05 18:39:09 +00:00
artemp
7245a6f5bd symbolizer property value to string 2013-12-05 16:28:44 +00:00
artemp
7169e14d90 use constexpr to allow combining type traits 2013-12-05 16:26:42 +00:00
Matt Amos
a76e441174 Factored out common renderer fields.
The idea here is that much of the code in the renderers and the
various `process_*` rendering methods is shared, but this sharing
is obfuscated by the lack of sharing of renderer fields and
methods.

This is the first step in trying to factor out commonalities in
order to simplify the implementation of the renderers and make
them easier to understand and modify.
2013-12-05 16:21:55 +00:00
artemp
9945822cc7 make apply() static and disable copy ctor/assignment 2013-12-04 15:14:53 +00:00
artemp
7eb84ad1ab more meaningful error message 2013-12-04 15:09:45 +00:00
artemp
442ffbe911 expression grammar : allow '-' in @attribute
e.g ```@water-fill```
note: this might clash with subtraction ops (fixme)
2013-12-04 11:44:18 +00:00
artemp
1c490f5312 global attributes evaluator 2013-12-04 11:43:16 +00:00
artemp
72378c4c62 symbolizer hash initial impl 2013-12-03 09:10:15 +00:00
artemp
3d7cd37760 symbolizer : operator== impl 2013-12-02 16:49:23 +00:00
Matt Amos
d64b86dcdf Updated grid renderer for expr-v2 branch.
All the grid visual tests pass.

One small issue is that in the grid line pattern symbolizer it
constructs a 'fake' line symbolizer to re-use code (as the grid
renderer cares nothing for patterns), but doesn't pass the
offset parameter to it. The tests currently require this
behaviour, but they should probably be changed as it seems
incorrect.
2013-12-02 13:49:53 +00:00
artemp
b22eaa28a7 format : fix copy note 2013-12-02 11:00:42 +00:00
artemp
6705f01a8f expressions grammar : fix global attribute rule 2013-12-02 10:47:54 +00:00
artemp
eebc638d28 c++11 : add chrono based auto timer 2013-12-02 10:13:51 +00:00
Dane Springmeyer
a6d75ab9d0 fix wkt_multi_generator typedef - previously accidentally matched mapnik::geometry_container - bug spotted by @mojodna - refs #2098 2013-12-02 09:00:16 +00:00
Dane Springmeyer
523cb96e22 fix wkt_multi_generator typedef - previously accidentally matched mapnik::geometry_container - bug spotted by @mojodna - refs #2098 2013-11-30 16:55:25 -08:00
Dane Springmeyer
199b550e98 fix wkt_multi_generator typedef - previously accidentally matched mapnik::geometry_container - bug spotted by @mojodna - refs #2098 2013-11-30 16:53:39 -08:00
artemp
c98903b7a6 make Map equality comparable (work-in-progress) 2013-11-29 17:00:40 +00:00
artemp
85dfd045ec reduce verbosity :D 2013-11-29 14:38:44 +00:00
artemp
06592cedc3 re-use evaluator object 2013-11-29 14:10:58 +00:00
artemp
a1c2bd0d86 pass filter_type by r-value 2013-11-28 15:13:22 +00:00
Dane Springmeyer
e9ca9c8790 symbolizer-expressions replayed against latest master 2013-11-27 22:50:15 -08:00
artemp
eb3da7d32d c++11 : use nullptr instead of NULL 2013-11-27 15:54:16 +00:00
Dane Springmeyer
64d5153aea Improved support for international text
- Implementation by @herm for GSOC 2012 (http://mapnik.org/news/2012/10/06/gsoc2012-status9/)
 - C++11 port, improvements, optimizations by @artemp
 - Testing and integration with master by @springmeyer
 - Thank you to all the support from @behdad along the way
 - Thanks for help testing @toton6868, @stephankn, @nirvn, @mfrasca, @simonsonc and many others

Refs: #2073,#2070,#2038,#2037,#1953,#1820,#1819,#1714,#1634,#1547,#1532,#1319,#1208,#1154,#1146
2013-11-22 00:06:32 -08:00
Dane Springmeyer
e5bb5ed8aa backport geojson parsing/generation fixes from master to 2.3.x - refs #2083 2013-11-21 14:11:47 -08:00
Dane Springmeyer
7b9ca29f60 remove unused code 2013-11-21 13:29:04 -08:00
Dane Springmeyer
e4460150d3 merge with branch 2.3.x 2013-11-21 13:23:27 -08:00
Dane Springmeyer
1c56f0dc19 Merge branch '2.3.x' of github.com:mapnik/mapnik 2013-11-21 13:09:52 -08:00
Dane Springmeyer
cab6d239f2 apply 5eb406c7df to non PHOENIX_V3 code 2013-11-21 13:09:18 -08:00
artemp
9d7d024cf4 geojson parser : add phoenix v2 not_empty implementation 2013-11-21 10:10:43 +00:00
artemp
2b8b71fc98 geojson generator : catch empty geometries early
```json
{"type":"Feature","id":1,"geometry":null,"properties":{}}
```
2013-11-21 10:10:43 +00:00
artemp
4aa3023a9d cleanup commented out code 2013-11-21 10:10:43 +00:00
Dane Springmeyer
15373f8e48 iwyu 2013-11-20 17:46:58 -08:00
artemp
6e4007b8c0 geojson generator : catch empty geomeries 2013-11-20 16:00:11 +00:00
artemp
5eb406c7df geojson parser : only close path if we have at least 3 vertices 2013-11-20 16:00:11 +00:00
Dane Springmeyer
37341a1282 fix hit_test for lines + add tests - refs #2041 2013-11-19 20:01:34 -08:00
Dane Springmeyer
c480d9d878 break out benchmark suite into individual cpp 2013-11-14 23:11:21 -08:00
Dane Springmeyer
03fdf7e596 Merge branch '2.3.x' of github.com:mapnik/mapnik
Conflicts:
	src/deepcopy.cpp
	src/expression.cpp
	src/rule.cpp
2013-11-13 20:00:13 -08:00
Dane Springmeyer
5de5ffb764 remove unused and broken deepcopy support to be replaced in #2081 - refs #1390 and #946 2013-11-13 19:26:17 -08:00
Dane Springmeyer
4ae6c0ac61 fix typo 2013-11-13 18:47:38 -08:00
Dane Springmeyer
410c65eb37 consistenly use std::memcpy and std::memset 2013-11-09 23:02:24 -08:00
Dane Springmeyer
81869a5532 iwyu 2013-11-08 19:11:06 -08:00
Dane Springmeyer
c7a6265869 organize text code in subdirectory 2013-11-07 20:09:22 -08:00
Dane Springmeyer
08fa9fd8ec Merge branch '2.3.x' of github.com:mapnik/mapnik
Conflicts:
	bindings/python/mapnik_building_symbolizer.cpp
	bindings/python/mapnik_debug_symbolizer.cpp
	bindings/python/mapnik_line_pattern_symbolizer.cpp
	bindings/python/mapnik_line_symbolizer.cpp
	bindings/python/mapnik_markers_symbolizer.cpp
	bindings/python/mapnik_point_symbolizer.cpp
	bindings/python/mapnik_polygon_symbolizer.cpp
	bindings/python/mapnik_python.cpp
	bindings/python/mapnik_raster_symbolizer.cpp
	bindings/python/mapnik_shield_symbolizer.cpp
	bindings/python/mapnik_symbolizer.cpp
2013-11-07 09:21:05 -08:00
Dane Springmeyer
49829bf2f6 fix #1846 in 2.3.x branch for unix (msvc still a mystery) 2013-11-06 13:43:10 -08:00
Dane Springmeyer
d0619bc402 update copyright year for scons build files 2013-11-05 16:54:13 -08:00
Dane Springmeyer
ca25d6797a Merge branch '2.3.x' of github.com:mapnik/mapnik 2013-11-04 09:40:58 -08:00
Dane Springmeyer
412f90a3ee Fix -Wshadow warning 2013-11-04 09:38:04 -08:00
artemp
afd58da6e2 geojson - feature_collection_parser
(allow single feature and geometry input)
2013-11-04 12:39:10 +00:00
Dane Springmeyer
f998b2bda6 Merge branch '2.3.x' of github.com:mapnik/mapnik
Conflicts:
	deps/agg/build.py
	deps/clipper/build.py
	include/mapnik/feature_style_processor_impl.hpp
	plugins/input/csv/csv_datasource.cpp
2013-11-03 23:10:21 -08:00
Dane Springmeyer
2d268d3a95 features_with_context: no need for default arg 2013-11-03 23:07:03 -08:00
Dane Springmeyer
f1c381e2c6 feature_style_processor: remove unused arg 2013-11-03 23:07:03 -08:00
Dane Springmeyer
a5f8ba5c6c fix -Wsign-conversion warnings 2013-11-03 23:07:03 -08:00
Dane Springmeyer
d9bc3dbb81 fix -Wsign-conversion warnings 2013-11-03 23:07:02 -08:00
Dane Springmeyer
eb1c976bc9 fix -Wsign-conversion warnings 2013-11-03 23:07:02 -08:00
Dane Springmeyer
a659332284 fix -Wsign-conversion warnings 2013-11-03 23:07:02 -08:00
Dane Springmeyer
dd5848aff0 fix linking on windows - accidentally broken in 8b5323f101 (restores fix from 03d8b6d9d7) 2013-11-03 15:22:28 -08:00
artemp
febf712343 Revert "+ std::unordered_map to store properties"
This reverts commit d909c6dede.
2013-10-29 14:17:45 +00:00
artemp
fe1c88f4a5 topojson : allow individual geometries not just geometry collections 2013-10-29 10:55:13 +00:00
artemp
c7a989ae83 first attempt to re-use generic JSON rules in geojson/topojson parsers 2013-10-28 15:57:51 +00:00
Dane Springmeyer
9755296091 Merge branch '2.3.x' of github.com:mapnik/mapnik 2013-10-24 00:00:53 -07:00
Dane Springmeyer
dcbbcdd8a9 make label-position-tolerance a double, as it should have been all along 2013-10-23 23:48:24 -07:00
Dane Springmeyer
882ee3cb32 Merge branch '2.3.x' of github.com:mapnik/mapnik 2013-10-23 21:12:54 -07:00
Dane Springmeyer
2ef7f13d53 fix indent 2013-10-23 21:12:36 -07:00
Dane Springmeyer
427e1c03b7 polygon clipper: ensure we return from function 2013-10-23 16:10:06 -07:00
Dane Springmeyer
a248f880d6 include <mutex>: fixes compile on ubuntu precise/g++4.7/libstdc++ 2013-10-23 15:43:54 -07:00
artemp
043f52d0a6 style : format 2013-10-22 17:15:27 +01:00
artemp
e1fc9aed82 c++11
fix mapnik::noncopyable

Conflicts:
	include/mapnik/noncopyable.hpp
2013-10-21 16:46:41 +01:00
artemp
7adee4ab36 c++11 : remove boost::make_shared includes 2013-10-17 15:09:56 +01:00
Dane Springmeyer
e01b39729f respect args passed to apply_to_layer which repairs broken mapnik::request usage (#1737) after 7495d2f381 2013-10-16 09:42:57 +01:00
Dane Springmeyer
c881fee7f0 respect args passed to apply_to_layer which repairs broken mapnik::request usage (#1737) after 7495d2f381 2013-10-15 18:12:07 -04:00
Seth Fitzsimmons
1304a6a1b8 Fix reference to non-existent 'colors'
Allows builds with DEBUG=true to succeed.
2013-10-14 14:40:19 -07:00
artemp
10f9371088 + fix typo 2013-10-14 13:06:20 +01:00
artemp
582ca02f44 remove unused boost.thread includes 2013-10-11 13:39:39 +01:00
artemp
0e40b3c87d == c++11
use std::thread (removes boost.thread dependency)
2013-10-11 13:20:46 +01:00
artemp
3edfc69c81 == c++11
use std::tuple with std::get<>
2013-10-11 12:36:04 +01:00
artemp
6fe204ce2a + log clipper errors/warnings 2013-10-11 10:18:05 +01:00
artemp
a71f0b8a93 + fix typo 2013-10-10 13:59:21 +01:00
artemp
07a6fee1ed == polygon clipper
+ don't build boost::geometry structures when :

 * input bounding box is contained by clipping box (return original verticies)
 * input box is outside of clipping box ( return SEG_END)
2013-10-10 13:44:32 +01:00
artemp
89586fbdf1 + only extract expected types from mapnik::parameters
aka mapnik::value_xxx types
2013-10-09 15:32:47 +01:00
artemp
be127927cb + add operator>> 2013-10-09 15:32:00 +01:00
artemp
01bf5e775e == topojson
+ allow multiple geometry collections
+ support id parsing
2013-10-07 17:44:22 +01:00
artemp
d909c6dede + std::unordered_map to store properties 2013-10-07 17:43:38 +01:00
Dane Springmeyer
1e024984e7 correct signed/unsigned comparison in image filter visitor 2013-10-05 17:37:23 -07:00
Dane Springmeyer
ddf2226b6f merge with branch 2.3.x 2013-10-05 15:37:29 -07:00
artemp
e3f18717d3 == topojson ==
support multi geometries
2013-10-04 15:40:06 +01:00
Dane Springmeyer
732fefb9e1 webp: use WebPConfig instead of custom options struct 2013-10-04 00:24:30 -07:00
Dane Springmeyer
be7d0a55c2 webp: cleanup option handling 2013-10-03 23:59:10 -07:00
Dane Springmeyer
0fb718a4fd default to hextree encoding for 'png' format + png options cleanup 2013-10-03 23:40:19 -07:00
Dane Springmeyer
0224ce3019 add support for seamless blurring - closes #1478 2013-10-03 16:37:09 -07:00
Dane Springmeyer
5f092c7130 ctrans: add getter for offsets 2013-10-03 12:06:52 -07:00
Dane Springmeyer
879aec064a ensure we do not query layers with no active styles 2013-10-03 11:25:05 -07:00
artemp
56a14368bf cleanup usage 2013-10-03 17:16:21 +01:00
artemp
ac8ececf1c == topojson ==
+ use boost::variant<> for storing properties
+ parse properties as top level key/value pairs
2013-10-03 15:32:07 +01:00
Dane Springmeyer
9c8f7cc90d merge with 2.3.x branch 2013-10-02 18:25:24 -07:00
Dane Springmeyer
f9e630bbd3 Merge remote-tracking branch 'origin/2.3.x' 2013-10-02 18:23:09 -07:00
Dane Springmeyer
371d79774a avoid integer overflows in agg by using clamping in agg:iround with agg::rasterizer_sl_clip_int_sat - closes #2000 2013-10-02 17:08:22 -07:00
artemp
77d0ecc459 c++11
remove BOOST_FOREACH
2013-10-02 09:42:03 +01:00