Commit graph

3858 commits

Author SHA1 Message Date
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
Jiri Drbalek
e243e16fd9 find text interior placement after reprojection 2017-12-13 21:48:13 +00:00
Artem Pavlenko
43d7278352 Don't apply preserveAscpectRatio logic logic if width and height expressed as % values (#3812) 2017-12-06 11:23:54 +01:00
Artem Pavlenko
bfb071233e fix 'prioritize_linking' option + remove depricated has_key usage 2017-11-23 11:30:35 +01:00
Artem Pavlenko
a04caf339e Merge branch 'master' into scons3 2017-11-22 15:47:03 +01:00
Artem Pavlenko
ce12610adc Add copyleft notice 2017-11-21 15:53:08 +01:00
Artem Pavlenko
5732df452c support SCons 3 (initial attempt) 2017-11-16 11:59:55 +01:00
Dane Springmeyer
f32f3b34ae add glibc_workaround.cpp if option is chosen
This reverts commit 751d9bff1672f6b8cbd2b5ebe2eb460223746806.
2017-11-15 20:32:38 -08: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
Artem Pavlenko
4aaba786fa fix warning: comparison of integers of different signs 2017-11-13 09:48:31 +01:00
Dane Springmeyer
c2ca920181 remove inadvertent change 2017-11-09 10:08:23 -08:00
Dane Springmeyer
1ad3ae044b at workaround for throw_out_of_range_fmt 2017-11-09 10:07:26 -08:00
Artem Pavlenko
98c26bcae0 SVG parser - fix default gradient vector in linear gradient [0,0,1,0] + support units in offset attribute. 2017-11-06 12:39:50 +01:00
Artem Pavlenko
743c14d3ff add UDL via operator"" _case 2017-11-06 10:31:53 +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
8347778abb fix memory leak (#3775) 2017-10-06 09:27:58 +02:00
talaj
377253bcc8 Check duplicate style names (#3770)
* Ported map I/O tests from Python.

These test loading, saving and round-tripping Map XML, and are
pretty much a direct port of the old Python `load_map_test.py` and
`save_map_test.py`.

* check duplicate style name

* update test data
2017-09-28 15:51:55 +02:00
Artem Pavlenko
3d4963f40c move implementatio into *.cpp + return 'closest_point_result' struct. 2017-09-22 13:21:50 +02:00
talaj
d14203561d color font support improvements (#3758)
👍
2017-09-13 10:14:46 +01:00
Artem Pavlenko
01574e8038 update comment 2017-09-12 09:43:50 +01:00
Dane Springmeyer
4bc7ec73de fix spelling in svg parser error 2017-09-10 08:59:54 -07:00
artemp
a682cea51e svg-parser - unify error messages text + update unit test 2017-08-08 12:38:24 +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
a26723b4a5 add missing ' in error message. 2017-08-02 10:32:00 +01:00
Jiri Drbalek
a3247c8dce remove superfluous line 2017-07-07 20:44:15 +00:00
artemp
b164117d99 disable handling unsupported attributes (leaving only well-known unsupported elements) to reduce verbosity. 2017-07-07 10:09:08 +02:00
talaj
53249053e4 cairo renderer: clear map background with given color as agg renderer does (#3718) 2017-07-04 16:32:45 +02:00
talaj
d0ecd51b63 Set premultiplied flag to the color font glyph bitmap (#3716)
* color font bitmap is premultiplied

* update visual tests
2017-07-03 17:15:07 +02:00
artemp
71344f78df wkb_reader : pre-allocate number of polygons in multi_polygon and number of geometries in geometry_collection via vector.reserce(...) 2017-07-03 15:18:23 +02:00
artemp
1e8ec57593 add <image> and <switch> to unsupported elements. 2017-06-29 09:41:16 +02:00
artemp
47bfe7cb91 make unsupported elements/attributes arrays const. 2017-06-29 09:41:16 +02:00
artemp
5118220c4c handle "well-known" unsupported elements and attributes. 2017-06-29 09:41:16 +02:00
artemp
8f2961b9e2 svg_parser - implement preserveAspectRatio support (ref https://www.w3.org/TR/SVG/coords.html#PreserveAspectRatioAttribute) 2017-06-29 09:41:16 +02:00
artemp
3edcd4afa2 fix viewBox coordinate system logic + apply transform in <use> element 2017-06-29 09:41:16 +02:00
artemp
fafc751e42 svg_parser - add support for "href" preserving deprecated (since SVG 2) "xlink:href" 2017-06-29 09:41:16 +02:00
artemp
c2ad505899 fix method name 2017-06-29 09:41:16 +02:00
artemp
aae7253ba1 SVG parser - refactor to use switch where appropriate + experimental support for <symbol> 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
2de8ce0eb7 svg_parser - don't log unsupported entities just yet (ref #763) 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
199a281627 remove debug stderr 2017-06-29 09:41:16 +02:00
artemp
ca4d140fb0 cleanup 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
e56233833e svg_parser - fix bug introduced in previous commit. 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
5aba57eb61 remove out-of-date comment line [skip ci] 2017-06-15 11:33:36 +02:00
artemp
3451d11b00 tiff_reader - fix num_rows logic in read_stripped method ref #3679 2017-06-12 17:55:24 +02:00
Jiri Drbalek
a734ff1e90 layers should be composited with zero offset 2017-06-02 15:32:00 +00:00
artemp
dfa8f100b2 freetype_engine - port singleton changes from v3.0.x 2017-06-01 12:47:18 +02:00
artemp
c61e85b875 unify namespace names 2017-05-23 18:49:25 +02:00
artemp
3a475517c0 TIFF I/O - use memory mapping in tiff_reader.cpp when MAPNIK_MEMORY_MAPPED_FILE is defined. 2017-05-22 16:29:22 +02:00
artemp
34a622f48e TIFF I/O - use memory mapping for file based I/O. 2017-05-22 13:07:42 +02:00
artemp
3c1be21162 tiff_reader - use image_reader_exception 2017-05-22 13:05:08 +02:00
artemp
12d6662009 TIFF I/O - read_tiled: remove std::swap_ranges and apply the same logic as in read_stripped. 2017-05-18 16:43:27 +02:00
artemp
4d8796dbd3 remove unused code 2017-05-18 15:23:22 +02:00
artemp
545bcb6585 remove bogus assert 2017-05-18 14:24:01 +02:00
artemp
cb7a3abfcb follow up fix for the bug reported by @flippmoke + fix return value check in TIFFReadRGBAStrip 2017-05-18 13:12:52 +02:00
Blake Thompson
efcb667f03 The last stripe of a tiff could be read incorrectly due to a swap 2017-05-17 17:06:40 -05:00
artemp
ef9b1025fa fix bug - use tile_width_ and tile_height_ + cleanup 2017-05-17 14:55:41 +02:00
artemp
1d95cad922 TIFF I/O - make read_stripped handle both RGBA and raw encoded strips (#3670) 2017-05-16 13:44:55 +02:00
artemp
e8cd4b9aef TIFF I/O : update and fix logic handling rgba vs grey scale. 2017-05-12 18:39:58 +02:00
artemp
e62bf6e18f TIFF I/O - use scanline to read stripped grey for now. 2017-05-12 15:55:46 +02:00
artemp
88fb137061 TIFF I/O - make read_tiled templated on ImageData ref #3669 #3670 (WIP) 2017-05-11 17:25:07 +02:00
artemp
db2eaf2e2b TIFF I/O : add support for interleaved data in void tiff_reader<T>::read_tiled(std::size_t x0,std::size_t y0, ImageData & image) ref #3669 #3670 2017-05-11 12:13:07 +02: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
77f849b136 TIFF I/O : add support for multiple bands in 'scanline reading method in read_any_gray` (partially fixes #3669)
(NOTE: we default to `scanline` even for `stripped` images, TODO add support as per #3670)
2017-05-10 13:21:51 +02:00
artemp
333ef9fde1 update copyright year 2017-05-05 13:02:01 +02:00
artemp
064b99168b geometry.hpp 2017-03-27 16:14:51 +01:00
artemp
fd36ac5279 Merge branch 'master' into geometry-refactor 2016-11-10 18:01:11 +01:00
Jiri Drbalek
0221cd36df take scale_factor into account when inflating buffer 2016-10-17 11:59:21 +00:00
Jiri Drbalek
b830469d2d multiply blur radius by scale_factor 2016-10-17 11:59:21 +00:00
artemp
8e0e344b72 Merge branch 'master' into geometry-refactor 2016-09-05 09:41:52 +01:00
Dane Springmeyer
fa44f0e247 Add memory_datasource test + fix returning of invalid_featureset for emptyset 2016-09-02 15:09:45 -07:00
artemp
38bff90a99 Merge branch 'master' into geometry-refactor 2016-09-01 16:06:20 +01:00
artemp
af099a57ef topojson grammar - change interface + instantiate with Iterator = char const* to reduce binary size 2016-08-31 17:42:18 +01:00
artemp
f360f50eed JSON - make generic_json a proper spirit grammar and reduce code bloat 2016-08-31 14:36:35 +01:00
Dane Springmeyer
f81583554a Merge branch 'master' of github.com:mapnik/mapnik into geometry-refactor 2016-08-22 16:19:17 -07:00
artemp
3788b2781e tiny format 2016-08-16 15:36:43 +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
aa77eb4550 Expressions - add more regex tests to cover #3483 2016-08-09 16:13:12 +01:00
Artem Pavlenko
b0cf57aa53 Merge pull request #3477 from mapycz/cairo-style-level-comp-op
Style level comp-op and opacity for Cairo renderer
2016-08-08 10:52:54 +01:00
Bas Couwenberg
2003415f09 Fix 'occured' typo, replace with 'occurred'. 2016-08-05 14:50:50 +02:00
Bas Couwenberg
388a8a7c4d Fix 'intialize' typo, replace with 'initialize'. 2016-08-05 14:49:45 +02:00
Jiri Drbalek
621a5e51ac style level comp-op and opacity for Cairo renderer 2016-08-03 20:14:56 +00:00
artemp
d3293f73e1 c++ format 2016-07-25 15:55:50 +02:00
Dane Springmeyer
7fc9dfe06b simplify visitor code in image_compositing 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
7712f253c9 represent value_null as an empty string e.g "" (text rendering logic) 2016-07-20 12:39:55 +02:00
artemp
dc88582b4d Merge branch 'master' into geometry-refactor 2016-07-19 10:25:33 +01:00
artemp
3d0b109739 value_null - always represent as "null" 2016-07-15 12:22:53 +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
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
bab985dd04 always return am empty featureset instead of featureset_ptr() 2016-07-13 15:17:51 +01:00
artemp
dc74551dc0 always return am empty featureset instead of featureset_ptr() 2016-07-13 15:16:33 +01:00
artemp
efabcc8081 make all mapnik::geometries aliases to mapbox::geometry and attempt to adapt new polygon model (one std::vector)
NOTE: some boost.geometry algorithms are broken as a result
2016-06-29 12:41:57 +01:00
artemp
19d376b7e6 make mapnik::geometry::point<T> an alias to mapbox::geometry::point 2016-06-27 09:45:37 +01:00
artemp
9dd00b28dc Merge remote-tracking branch 'origin/master' into geometry-refactor 2016-06-27 08:51:55 +01:00
artemp
7de7464caf tidy 2016-06-22 17:25:37 +01:00
artemp
2e8c0d36c2 implement custom char_array_bufrer and remove boost::iostreams dependency 2016-06-22 17:21:25 +01:00
artemp
67d2a0e141 Merge branch 'master' into geometry-refactor 2016-06-20 15:01:29 +01:00
Mickey Rose
217d18a996 use std::deque to store svg::path_attributes
- refs #3453
2016-06-16 22:34:24 +02:00
Joris Valette
7ca86b0947 Fix stroke-width size not included in markers ellipse bounding box 2016-06-03 11:12:14 +02:00
artemp
efdc90f699 fix building with BIGINT=no (NOTE: some tests will fail) 2016-05-26 17:23:53 +02:00
artemp
a24dfbf6a0 simplify logic a bit 2016-05-26 16:27:22 +02:00
artemp
081c003b0e c++ style 2016-05-26 16:27:22 +02:00
Artem Pavlenko
aec5949d5a Merge pull request #3416 from mapycz/scale-factor-improvements
Scale factor improvements
2016-05-18 15:05:04 +02:00
artemp
e596ffc1c2 don't instantiate types that are not used in core library 2016-05-03 18:33:06 +02:00
artemp
ff821c9239 geometry::envelope - deduct value_type of box2d<T> automatically + add missing typedefs 2016-05-03 18:02:42 +02:00
Jiri Drbalek
b930a5e7f7 apply scale factor to line spacing 2016-05-03 12:09:39 +00:00
Jiri Drbalek
cfc6b37d71 fix passing scale factor to evaluate_transform() 2016-05-03 12:09:39 +00:00
artemp
3184034414 refactor geometry core and algorithms templates + add missing typedefs + prepare for geometry update 2016-04-29 14:24:57 +02:00
artemp
ed87cd2883 c++ - make bbox standalone method 2016-04-22 12:54:57 +02:00
artemp
4611d8cad1 c++ style : prefix increment 2016-04-22 12:54:57 +02:00
artemp
a89c3fc007 c++ - make bbox standalone method 2016-04-22 12:51:20 +02:00
artemp
51069fe88a c++ style : prefix increment 2016-04-22 12:50:32 +02:00
artemp
4e57f7b115 Merge branch 'master' into geometry-refactor 2016-04-20 16:45:08 +02:00
artemp
6105463602 split box2d<T> implementation into *.hpp, *._impl.hpp and *.cpp ref #3405 2016-04-20 10:51:33 +02:00
artemp
633a2c1e07 Merge branch 'master' into geometry-refactor 2016-04-18 16:15:04 +02:00
artemp
c8902ac875 remove is_clockwise, use mapnik::util::is_clockwise to avoid duplication 2016-04-18 11:16:32 +02:00
artemp
2106d7b162 remove debug stderr 2016-04-12 14:48:24 +02:00
artemp
2e0d83aa91 geometry::multi_point - derive from std::vector<point<T>> instead of line_string<T> 2016-04-12 10:12:16 +02:00
artemp
0f711c0863 geometry - move point/line_string/polygon into separate headers 2016-04-12 09:17:53 +02:00
artemp
b24ade9a1c remove stderr for real 2016-04-11 13:08:19 +02:00
artemp
90f06093ae geometry - move point/line_string/polygon into separate headers 2016-04-11 12:23:11 +02:00
artemp
8bc4b28a76 small formatting 2016-04-06 11:36:18 +02:00
artemp
ccf26a743d remove extra ; 2016-04-06 11:35:49 +02:00
Dane Springmeyer
7ec640e989 register gdal once at plugin load - refs #3093 #3339 #3340 2016-04-05 16:43:07 -04:00
Dane Springmeyer
61cb4effb8 more explicit name for callback type from dlsym 2016-04-05 15:31:19 -04:00
Dane Springmeyer
f8a8ec616a c++ style: use nullptr rather than NULL 2016-04-05 15:27:32 -04:00
artemp
9bb20ce685 box2d<T> - expose value_type typedef + init(x, y) convinient method 2016-03-24 14:50:46 +00:00
artemp
0fb587875e enable box2d<float> 2016-03-21 11:51:32 +01:00
artemp
26f7856e83 grid - restore missing simplify_tag in process_polygon_pattern_symbolizer (ref #3329) 2016-03-18 16:38:38 +01:00
artemp
8f9134c72d file_io - rename open to is_open to be consistent with STL i/o via @lightmare (0d032c2618 (commitcomment-16753722)) 2016-03-18 10:02:19 +01:00
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
artemp
771d2844db Merge branch 'dot-scale' of https://github.com/naturalatlas/mapnik into naturalatlas-dot-scale 2015-08-12 10:40:12 +02:00
artemp
751abba262 add parse_jpeg_quality method + uint test parsing jpegXX and jpeg:quality=XX options
ref #3024
2015-08-12 10:29:57 +02:00
Blake Thompson
75522c0cc5 Merge branch 'master' into image_filters 2015-08-11 15:31:41 -05:00
Blake Thompson
792e94ae90 Removed image-filter from map object, made it so that premultiplication/demultiplication only took place when correctly required in image filters. 2015-08-11 14:31:29 -05:00
artemp
b5dedd0e69 JPEG - revive backward compatible quality format jpeg<N> e.g jpeg80, jpeg90 etc.
ref #3024
2015-08-11 17:13:54 +02:00
Artem Pavlenko
e68da0d083 Merge pull request #3016 from mapycz/text-null-bbox
Null text collision box
2015-08-10 12:18:31 +02:00
Blake Thompson
a492028f25 Initial commit of changes for image_filters so they can be called outside of agg renderer 2015-08-07 15:54:39 -05:00
Blake Thompson
ec73b50557 Added ability for image filters to be used on the map object, so that the entire map has an image filter applied. Corrected issues with colorblind algorithms due to incorrect algorithm used as colorspace was required to be in sRGBA rather then RGBA. 2015-08-05 12:35:17 -05:00
Jiri Drbalek
c1d8095d59 shields: set marker after collision test 2015-08-04 13:38:52 +00:00
Jiri Drbalek
162f82cba5 ensure null text has no bbox 2015-08-04 13:29:16 +00:00
Brian Reavis
9bdca97579 Fixed dot symbolizer not acknowledging scale factor. 2015-08-02 14:55:26 -06:00
artemp
42bf2303e0 fix parse_double_optional_percent grammar and update tests 2015-07-31 11:35:02 +02:00
artemp
3a4d57492f make parser strict - return marker_null() on SVG parser failures
redirect stderr to MAPNIK_LOG
2015-07-31 10:44:42 +02:00
artemp
56712c2435 fix XMLPARSER=libxml2 logic 2015-07-30 14:34:01 +02:00
artemp
ffcacf3509 make libxml2 optional dependency (XMLPARSER=libxml2) 2015-07-30 13:14:37 +02:00
artemp
9d43f69cf6 const correctness 2015-07-30 11:09:08 +02:00
artemp
e5c4dbf1c0 format 2015-07-30 11:04:17 +02:00
jakepruitt
b4bc16751c Adjusted error message logic for logging path ids 2015-07-29 22:37:30 -04:00
artemp
4cf6ce1866 correct error handling 2015-07-29 13:01:51 +02:00
artemp
9531adbf56 re-use attribute pointer and reduce number of local vars 2015-07-29 11:16:51 +02:00
artemp
a8f5ddff73 handle empty <g> element + fix visibity parsing 2015-07-28 19:37:55 +02:00
artemp
e9284ce62a c++ tidy 2015-07-28 16:50:06 +02:00
artemp
515da3f9a8 rapidxml based svg parser - initial impl 2015-07-28 16:33:39 +02:00
artemp
42c8da72e9 Merge branch 'master' into svg-parser-errors 2015-07-28 10:29:59 +02:00
Dane Springmeyer
a5db121231 followup to #2990 [skip ci] 2015-07-27 16:45:22 -07:00
Dane Springmeyer
90f2fd91f5 Merge pull request #2990 from mapycz/fix-text-minimum-path-length
fix text-minimum-path-length
2015-07-27 16:33:25 -07:00
artemp
8ebb9db431 add xml:id support ( ref #2989 ) 2015-07-27 15:55:34 -07:00
Dane Springmeyer
871a881634 Merge pull request #3002 from mapnik/issue-2971
Fix windows compile around glyph_info forward declare
2015-07-27 14:59:18 -07:00
Dane Springmeyer
ba8d51e029 include fixups 2015-07-27 14:57:57 -07:00
artemp
2e7d75f022 track errors parsing double values 2015-07-24 11:05:26 +02:00
artemp
ce2eaa02ee add operator==() 2015-07-23 12:58:14 +02:00
artemp
6a1a25efbf remove duplicate if else 2015-07-23 11:14:13 +02:00
artemp
4b9b1b5401 fix err message 2015-07-22 16:38:45 +02:00
artemp
9eadd48d7b add tests for no-existing svg file + bogus color in fill and stroke 2015-07-22 11:52:18 +02:00
artemp
34a1d1315a clamp rx/ry to valid range (<= 0.5*width/0.5*height)
SVG spec : ".. If 'rx' is greater than half of the width of the rectangle, then the user agent must process the 'rect' element with the effective value for 'rx' as half of the width of the rectangle. If 'ry' is greater than half of the height of the rectangle, then the user agent must process the 'rect' element with the effective value for 'ry' as half of the height of the rectangle.."
2015-07-21 20:50:26 +02:00
artemp
804115089b clamp rx/ry to valid range (<= 0.5*width/0.5*height)
SVG spec : ".. If 'rx' is greater than half of the width of the rectangle, then the user agent must process the 'rect' element with the effective value for 'rx' as half of the width of the rectangle. If 'ry' is greater than half of the height of the rectangle, then the user agent must process the 'rect' element with the effective value for 'ry' as half of the height of the rectangle.."
2015-07-21 20:48:43 +02:00
artemp
9af3313063 use parse_id_from_url for stroke 2015-07-21 14:56:23 +02:00
Jiri Drbalek
8faff70620 fix text-minimum-path-length 2015-07-21 12:54:16 +00:00
artemp
43b3770a95 make gradient movable 2015-07-21 14:12:47 +02:00
artemp
d1b39f5841 handle color parsing in one place 2015-07-21 11:45:11 +02:00
artemp
d7cf0d5bca add parse_id_from_url method 2015-07-21 11:30:04 +02:00
artemp
55a9855069 add xml:id support ( ref #2989 ) 2015-07-21 10:25:57 +02:00
artemp
52007b8019 Merge branch 'master' into svg-parser-errors 2015-07-21 09:46:38 +02:00
artemp
9ab1935a36 add boolean flag for tracking when to re-calculate extent (ref #2985) 2015-07-17 20:17:51 +02:00
artemp
bb8b835618 calculate percentage value inside parser, reduce local vars 2015-07-17 20:00:14 +02:00
artemp
a8da31b765 make '%' sign optional ( was 0 or N) 2015-07-17 19:49:28 +02:00
Dane Springmeyer
f9d65d0167 Merge branch 'master' of github.com:mapnik/mapnik into issue-2971 2015-07-17 07:23:10 -07:00
artemp
c4d8af702d don't return early from parse_linear_gradient 2015-07-17 09:42:05 +02:00
artemp
62a58937a4 try to never fail (almost) 2015-07-16 16:55:41 +02:00
artemp
d2cfd0f0ea log all errors without throwing 2015-07-16 12:58:32 +02:00
artemp
55215a7b30 Merge branch 'master' into svg-parser-errors 2015-07-16 12:18:25 +02:00
artemp
1733db5022 c++ - don't rely on implicit int to bool conversions 2015-07-15 17:46:27 +02:00
Dane Springmeyer
0a126a3765 attemp to fix #2971 2015-07-14 22:54:32 -07:00
artemp
ec68559d3d fix stderr 2015-07-14 19:54:41 +02:00
artemp
a46af76216 initial commit - make parse and parse_from_string return boolean ,collect error messages 2015-07-14 19:45:50 +02:00
artemp
c2295755f6 fix typo 2015-07-13 13:48:34 +02:00
artemp
0a484bf784 handle Multi-geoms + update cairo and grid renderers
update
2015-07-07 18:37:27 +02:00
artemp
56fe702bac agg line_symbolizer - dispatch to appropriate clipper based on geometry_type 2015-07-07 14:19:51 +02:00
Dane Springmeyer
a91d73779f revert the functionality of 944f34b - refs #2937 2015-07-06 19:27:05 -07:00
Dane Springmeyer
3ed7e347cb use unique_ptr instead of shared_ptr for glyph_positions_ptr - refs #2516 2015-07-06 18:47:47 -07:00
Dane Springmeyer
3f91186a74 avoid creating placements for off canvas placements - refs #2929 2015-07-06 18:28:37 -07:00
Jiri Drbalek
8fe19a7b45 fix rendering text on tile's borders 2015-07-03 13:22:23 +00:00