Commit graph

3520 commits

Author SHA1 Message Date
artemp
db9b3f46af create an geometry_empty when input WKB has x and y set to NaN
e.g `\x0101000000000000000000f87f000000000000f87f => mapnil::geometry::geometry_empty`
2016-03-16 14:52:42 +01:00
Mickey Rose
a981f560b6 fix empty string value::to_expresssion_string 2016-03-15 00:29:17 +01:00
artemp
1f61aa3981 TWKB - port CartoDB implementation to mapnik 3.x.x
ref https://github.com/CartoDB/mapnik/blob/2.3.x.cartodb/plugins/input/postgis/postgis_utils.cpp
ref https://github.com/CartoDB/mapnik/tree/2.3.x.cartodb/plugins/input/postgis#23xcartodb
2016-03-11 16:20:07 +01:00
Dane Springmeyer
8f4e211ebd suppress more third party warnings 2016-03-10 12:46:00 -08:00
Dane Springmeyer
192f5c26c1 use c++ style casts 2016-03-10 12:45:47 -08:00
Dane Springmeyer
9dd07fd40b use c++ style casts 2016-03-10 11:44:23 -08:00
Dane Springmeyer
341db51aa7 finish wrapping boost includes to suppress warnings - add agg wrapper - refs #2907 2016-03-09 16:42:15 -08:00
Dane Springmeyer
7ae0e6d902 share stringify macro from common header 2016-03-09 16:16:14 -08:00
artemp
6856100433 box2d operator<< - output "box2d(INVALID)" for invalid box. 2016-03-07 13:51:50 +01:00
artemp
a5cfd27594 split svg_path_grammar,svg_points_grammar,svg_transform_grammar into *.hpp, *_impl.hpp + move boost::phoenix::function initialisation into ctor's
(ref #3343)
2016-03-04 15:34:45 +01:00
artemp
76bb2d9c01 make svg_transform_grammar stateless ref #3343
(https://github.com/mapnik/mapnik/pull/2231)
2016-03-04 13:15:11 +01:00
artemp
4659f40401 make svg_path_grammar and svg_points_grammar stateless ref #3343
(https://github.com/mapnik/mapnik/pull/2231)
2016-03-04 12:42:44 +01:00
Dane Springmeyer
23fb010ea2 disable dlclose when building with --coverage - refs #3344 2016-03-03 15:02:03 -08:00
Dane Springmeyer
833703026d add COVERAGE configure option - only set coverage flags on libmapnik and plugins - refs #3344 2016-03-03 14:19:12 -08:00
Dane Springmeyer
a855a12532 make code comment about needing immutable grammars - refs #3342 [skip ci] 2016-03-03 09:14:06 -08:00
Mickey Rose
489631ca34 remove reference on template parameter Detector 2016-03-03 00:17:41 +01:00
Mickey Rose
c8e3a0d549 refactor render_markers_symbolizer_visitor
- extract some common code into functions
- for cleaner dif: git show -w --patience
2016-03-03 00:07:18 +01:00
Dane Springmeyer
296f8d467d avoid grammar_impl usage in headers - other minor refactoring around json spirit 2016-03-02 12:48:07 -08:00
Dane Springmeyer
d148a966c8 from_geojson/to_geojson are now used in unit tests, csv plugin, and node-mapnik so move these to cpp 2016-03-02 11:26:56 -08:00
artemp
f11cc5920f revive lost to_utf8 method but move it into '<mapnik/unicode.hpp>' 2016-03-02 16:47:55 +01:00
artemp
65da617ec0 re-use vector_converter + move apply_marker_multi into *.cpp 2016-03-02 16:20:10 +01:00
Mickey Rose
66e7ef58d7 refactor markers_placement_finder
- refs #3327

Replace member variant of placement-type implementations with plain
union. The active implementation is chosen at construction time like
before.

Make placement-type implementation classes virtual to allow invoking
the active union member through a base class pointer.
2016-03-02 00:53:45 +01:00
artemp
77eaaa1259 move vertex_adapters implementation into .cpp - mark extern 2016-03-01 21:55:47 +01:00
artemp
bd5d1c8df8 prune include directives a bit more 2016-02-24 12:24:06 +01:00
artemp
50db396760 move value implementation into *.cpp 2016-02-23 23:05:19 +01:00
artemp
d43bc3232f remove unused include 2016-02-22 15:38:15 +01:00
artemp
2c931a238f color.cpp - port premultiply/demultiply and remove agg dependency 2016-02-22 14:39:31 +01:00
artemp
3e8ee9a559 simplify color generators - remove boost::phoenix usage
(ref: https://github.com/mapbox/windows-builds/issues/81)
2016-02-22 12:45:28 +01:00
Mickey Rose
ea54876d79 remove unused includes 2016-02-20 01:16:11 +01:00
artemp
96175554ae Add explicit instantiation declaration of singleton<mapped_memory_cache, CreateStatic> to avoid multiple instantiations across translation units. (ref #3306) 2016-02-19 11:00:58 +01:00
artemp
085a2afe40 minor formatting 2016-02-18 17:17:44 +01:00
Mickey Rose
1499475d04 remove to_utf8, instead use UnicodeString::toUTF8String 2016-02-15 21:07:01 +01:00
Dane Springmeyer
10bd37ddd7 avoid unneccesary dependence on << operator of mapnik::enumeration 2016-02-09 10:09:12 -08:00
Dane Springmeyer
6c1b6e301d gradient does not need to be a fancy enumeration 2016-02-09 09:56:57 -08:00
Dane Springmeyer
834028db7a remove miniz support - library is unused in mapnik and unmaintained since 2013 (https://code.google.com/archive/p/miniz/) 2016-02-02 11:37:26 -08:00
Mickey Rose
4ef8efd554 remove struct member designators from initialization - fixes #3277
- it's C99 syntax, illegal in C++11 braced-init-list
- interestingly it's accepted in C++ by GCC and Clang,
  rejected by MSVC
2016-01-30 20:44:40 +01:00
Mickey Rose
1eb298f48c fix text_render_thunk construction
- this reverts render_thunk_extractor visitation by text/shield
  symbolizer back to how it works in master, only amended to avoid
  passing temporaries to text_symbolizer_helper
2016-01-29 00:12:18 +01:00
Mickey Rose
7bbc758fbc cleanup extraneous includes 2016-01-29 00:12:18 +01:00
Mickey Rose
6d84094f77 move render_markers_symbolizer to separate .cpp 2016-01-29 00:12:18 +01:00
Mickey Rose
f99c0e5a6f refactor render_markers_symbolizer 2016-01-29 00:10:19 +01:00
Mickey Rose
8a55eefbb5 derive virtual_renderer_common from renderer_common 2016-01-29 00:10:19 +01:00
Mickey Rose
844021a892 make face_manager copyable 2016-01-29 00:10:18 +01:00
Mickey Rose
a7ecabcde3 move render_group_symbolizer to separate .cpp
- use abstract class render_thunk_list_dispatch for the callback
  instead of template parameter render_thunks
- add class scoped_glyph_positions_offset for temporary shifting
  of glyph positions
- remove render_offset_placements
2016-01-29 00:10:18 +01:00
Mickey Rose
9d7b3d00e1 minor namespace cleanup in group_layout_manager 2016-01-29 00:10:18 +01:00
Mickey Rose
7761d32ec5 split common group symbolizer stuff 2016-01-29 00:10:18 +01:00
Dane Springmeyer
ed076bf3f5 compile image_filter_grammar separately 2016-01-28 12:04:36 -08:00
artemp
d027ed67c7 more const strictness, update to work with latest mapbox::variant/visitor-no-copy branch 2016-01-27 14:50:17 +01:00
Mickey Rose
8d7fca3236 svg_parse_value - add 'px' unit, report trailing garbage
- avoid operator comma in semantic action, refs #3249
2016-01-23 20:44:14 +01:00
Blake Thompson
d3d1106865 Fixed bug around set envelope in memorydatasource 2016-01-21 15:20:50 -06:00
artemp
e5db888673 remove redundant t == "png" check as it results in slower code ref #3243 2016-01-20 16:48:26 +01:00
artemp
1bfabec6be parse_svg_value - add DPI template parameter (default 90) (#3233) 2016-01-15 09:38:46 +00:00
artemp
c615708a2a restore local variant_io.hpp with specialisation for bool (https://github.com/mapnik/node-mapnik/issues/582) 2016-01-15 09:26:42 +00:00
Artem Pavlenko
7997f3725e Merge pull request #3235 from mapnik/raster_mem_ds
Raster Type Memory Datasource
2016-01-14 16:19:43 +00:00
artemp
3333f3e1fa inherit mapnik::util::variant from mapbox::variant and add mapbox::variant as submodule 2016-01-14 15:02:41 +00:00
Blake Thompson
044c21db13 Made it possible to change the type of a memory datasource by inspecting the features that are added to the memory datasource 2016-01-14 08:36:12 -06:00
artemp
cc635df7bc svg_parser - use parse_svg_value 2016-01-14 11:03:55 +00:00
artemp
48c043ec42 implement "parse_svg_value" supporting SVG units (https://www.w3.org/TR/SVG/coords.html#Units) (#3233) 2016-01-14 10:54:33 +00:00
artemp
1dff67e1fe fix namespace qualifiers 2016-01-14 10:24:40 +00:00
artemp
9e7f7917e3 export path_parse<svg_converter_type> 2016-01-12 15:06:30 +00:00
artemp
0a5f006bb9 SVG : add support for stroke-dashoffset 2016-01-11 10:56:04 +00:00
artemp
d3fc7f8fed Merge branch 'master' into svg-dash-array 2016-01-08 16:08:11 +00:00
artemp
479a657437 make SVG path parser stricter by failing if not all input parsed ref #3225 2016-01-08 11:59:59 +00:00
artemp
b1c22ba853 SVG :initial support for "stroke-dasharray" 2016-01-07 15:54:34 +00:00
artemp
ca83ca167d svg - move stroke-dasharray setup into dash-array parser method 2016-01-07 11:20:22 +00:00
Dane Springmeyer
bb8cd10751 tiff reader: read_generic is not implemented so throw in all cases not just if we can open the image 2016-01-06 09:17:35 -08:00
artemp
e0c756ee8d geometry_envelope - add missing linear_ring 2015-12-17 12:07:05 +00:00
Dane Springmeyer
50d1e2fbb3 handle more gcc 4.9 -Wshadow warnings 2015-12-04 14:07:42 -05:00
artemp
da617f92eb add scale_image_agg' and reproject_and_scale_raster` overloads for backward caps 2015-11-19 12:26:16 +00:00
artemp
6d599dff0a Merge branch 'fix-gray-scaling-2' of https://github.com/mapycz/mapnik into mapycz-fix-gray-scaling-2 2015-11-17 15:03:37 +00:00
artemp
4d6a735f53 initialise default (invalid) box2d with +/-std::numeric_limits<T>::max() to be in sync with Boost.Geometry 2015-11-11 15:50:56 +00:00
Jiri Drbalek
924aa62662 raster scaling: fixes nodata handling, acurracy when working with small floats and clipping floats by [0; 255] 2015-11-10 20:37:45 +00:00
Dane Springmeyer
7608040906 centralize warning suppression 2015-11-07 17:53:09 -08:00
artemp
cb31692f37 image : fix buffer's copy ctor - only std::copy when rhs owns the data (#3152) 2015-11-02 09:47:05 +00:00
Dane Springmeyer
8813e73cfc rename SHAPE_MEMORY_MAPPED_FILE to MAPNIK_MEMORY_MAPPED_FILE 2015-10-16 13:34:53 -07:00
artemp
2906706a40 geojson.input - split parsing FeatureCollection and single Feature/Geometry into separate grammars 2015-10-15 15:12:16 +01:00
Dane Springmeyer
7fa1e58ab7 better c++11 usage 2015-10-12 10:10:12 -07:00
Dane Springmeyer
25eaf96e98 silence -Wsign-compare warning from boost [skip ci] 2015-10-07 08:33:24 -07:00
Dane Springmeyer
efee15c2e7 remove unused typedef [skip ci] 2015-10-06 15:39:42 -07:00
Dane Springmeyer
20e72ccc82 remove unused typedef [skip ci] 2015-10-06 15:39:42 -07:00
Dane Springmeyer
7122fdc6e5 fix #3096 2015-09-30 14:23:21 -07:00
artemp
d6d9e94e36 svg_parser - fix double_list grammar to handle whitespace | comma correctly 2015-09-28 14:22:30 +01:00
jakepruitt
344c5ae844 Fix boost parser for viewbox 2015-09-25 12:05:57 -07:00
jakepruitt
a787d20e36 Add viewbox fallback logic for dimension parsing
SVG's now have fallback on viewbox. Still debugging the boost Qi parser
2015-09-25 12:05:57 -07:00
jakepruitt
fcbb91a00e Add int list parser 2015-09-23 12:08:50 -07:00
artemp
d54eca9dca image - fix copy/move implementation and update/improve tests 2015-09-16 14:28:55 +01:00
artemp
acb8feea01 image - update shallow constructor to take raw bytes pointer
detail::buffer - inline data() size() methods
update unit test
2015-09-16 10:14:40 +01:00
Dane Springmeyer
b2d08ea4ea re-enable zero allocation image interface - refs #3069 2015-09-14 16:45:58 -07:00
artemp
ad80c91657 cache processed layouts to ensure there are stay in scope (placement_finder) - via @talaj 2015-09-11 15:29:28 +02:00
bergwerkgis
9146f785f4 Windows: fix loading of SVG files from unicode paths. Surfaced in https://github.com/mapnik/node-mapnik/issues/517 2015-09-10 11:10:38 +00:00
artemp
a32fbdf635 use atomic<> where possible to avoid locking 2015-09-08 12:28:16 +02:00
artemp
ee65873159 oops fix 2015-08-27 17:37:18 +02:00
artemp
6d1ffc8a93 enable optional checking env for "MAPNIK_LOG_FORMAT" (via MAPNIK_CHECK_ENV) 2015-08-27 17:08:41 +02:00
artemp
0ea5ccc7bc fix typo 2015-08-27 13:07:51 +02:00
Jiri Drbalek
75a299ab1d remove incorrect and meaningless comments 2015-08-26 14:29:09 +00:00
Jiri Drbalek
883c9c83bf remove unused members 2015-08-26 12:59:11 +00:00
Matt Amos
3d7b84a598 Fix deadlock in recursive datasource registration.
The datasource cache was taking an exclusive lock on the simple
mutex used to protect the singleton's data pointer. This works
okay when everyone always calls it non-recursively, but when the
recursive flag is true then it will always deadlock when called
on any directory with subdirectories.

Additionally, many methods which accessed private data members of
the cache were not protected by any locks.

Since the call pattern of registering datasources is strictly
tree-shaped then it's a good candidate for a recursive mutex. This
has a slightly higher overhead than a simple mutex, so rather than
change the singleton's mutex to be recursive, I've added a new
instance mutex to the datasource cache.

Also, added a very basic test which reproduces the problem and
shows that it's fixed with this patch.
2015-08-23 20:25:35 +01:00
Blake Thompson
10ad41d218 Removed unrequired MAPNIK_DECL from src/image_util_jpeg added pragma to prevent warning on linux with clang. 2015-08-12 13:00:04 -05:00
Blake Thompson
3d262c7426 Fixed linking errors in parse jpeg. closes #3031 2015-08-12 09:32:32 -05:00
artemp
715cff3f2a fix - pass by const ref 2015-08-12 12:09:40 +02:00
artemp
ebf4d66900 Merge branch 'master' into image_filters 2015-08-12 11:27:59 +02:00