Commit graph

440 commits

Author SHA1 Message Date
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
2cc3d82a87 iwyu 2013-11-08 19:13:51 -08:00
Dane Springmeyer
c7a6265869 organize text code in subdirectory 2013-11-07 20:09:22 -08:00
artemp
b315eb2167 + use std::shared_ptr and std::make_shared 2013-09-20 14:01:27 +01:00
Dane Springmeyer
c5dd5487a5 Merge pull request #1966 from mapnik/background-image-comp-op
Map background-image-comp-op and background-image-opacity
2013-09-05 12:25:47 -07:00
Petr Dlouhý
69185339a5 offset enabled for LinePatternSymbolizer 2013-08-22 10:35:44 +02:00
Dane Springmeyer
fad9af5263 add support for applying custom comp_op and opacity when blending map background image into background color at render time - refs mapnik/mapnik-support#8 2013-07-25 01:00:38 -04:00
Dane Springmeyer
5c13504cc0 remove unreachable break 2013-07-22 14:17:59 -04:00
Dane Springmeyer
b1a50d1000 iwyu 2013-06-18 14:26:58 -07:00
Dane Springmeyer
0365d3e081 start centralizing filesystem operations in mapnik::util::fs - refs #1177 2013-06-02 19:28:24 -07:00
Dane Springmeyer
1036eb1c99 support base_path adjustment when reading from xml file as well as from a string 2013-06-02 16:24:21 -07:00
Dane Springmeyer
e51c59aacc fix #1886 - TODO - refactor base_path logic since it is confusingly written 2013-06-02 16:06:32 -07:00
Dane Springmeyer
b0f15bf5de avoid muffling proj_init at render time and instead catch at load_map - closes #646 2013-05-29 15:16:44 -07:00
Dane Springmeyer
8634a04938 add support for drawing all geometry verticies with debug symbolizer mode=vertex and expose in python - closes #1848 2013-05-21 19:21:35 -07:00
Dane Springmeyer
55ec6a7942 cleanups around exception handling 2013-03-22 17:58:33 -07:00
Dane Springmeyer
71a04cd09d pass optional by const ref 2013-03-12 16:56:31 -07:00
Dane Springmeyer
e66d007627 add halo-rasterizer option for text symbolizer
- closes #1298
  - allows for much faster halo drawing and simliar quality for
    radius values in the 1-2 px range
  - also moves grid_renderer away from using freetype stroker completely
    since halo quality is not critical for this renderer
2013-03-08 20:32:39 -08:00
XinGang Li
df7db521bb Add parse_image_filters function to avoid python bindings access the internal structs. 2013-02-22 23:58:30 +08:00
Dane Springmeyer
19e52c0136 rename simplify-tolerance -> simplify to match clip/smooth params 2013-02-05 15:48:16 -08:00
Dane Springmeyer
41772edbd7 support reading raster-colorizer properties off of raster symbolizer as well as in standalone child element 2013-02-01 16:32:48 -05:00
Dane Springmeyer
e16567fecb fixup std:: prefixing of cmath functions - closes #1694 2013-01-17 13:53:48 -08:00
Dane Springmeyer
7087fb9698 amend c61335c277, unbreak datasource templates, and add a test to ensure it does not regress again 2013-01-04 14:36:24 -08:00
Dane Springmeyer
c61335c277 fix -Wshadow warnings 2013-01-03 19:14:19 -08:00
artemp
a38b252ccd Merge branch 'master' into bigint
Conflicts:
	plugins/input/geojson/geojson_datasource.cpp
	plugins/input/postgis/postgis_featureset.cpp
2012-12-18 13:57:39 +00:00
Dane Springmeyer
bb27156df0 use internal noncopyable class to speed up compile times slightly 2012-12-16 18:19:52 -08:00
artemp
c4bae9d30a Merge branch 'master' into bigint
Conflicts:
	bindings/python/mapnik_feature.cpp
	plugins/input/shape/dbfile.cpp
2012-12-14 10:01:21 +00:00
Dane Springmeyer
772c7f52fc knock out some msvc compiler warnings 2012-12-12 15:59:27 -08:00
Dane Springmeyer
7c58bf9fcb replace boost::trim with faster custom trim - closes #1633 2012-12-07 14:06:13 -08:00
Dane Springmeyer
390706b8c7 remove all remaining stringstream usage in load_map to avoid perf hit from locale lock - refs #1055 2012-12-06 20:15:27 -08:00
artemp
855aea95e0 + mapnik::value and mapnik::parameters - initial support for 64-bit integers 2012-12-03 13:12:09 +00:00
Dane Springmeyer
f39c3ad857 add marker-multi-policy parameter to support user-configurable rendering behavior for multi-geometries when using either point or interior placement - closes #1573, refs #1555 2012-11-20 17:58:39 -08:00
Dane Springmeyer
b46c5ddeb1 fix error language when a file cannot be found 2012-10-16 17:45:33 -07:00
Dane Springmeyer
0cafbc9460 warn if a Datasource template is not found 2012-10-10 14:33:56 -07:00
Dane Springmeyer
09726626cf add 'premultiplied' property on raster symbolizer to allow user to control (in rare cases) the premultiplied status of images in cases where tiffs mis-report it - closes #1512 2012-10-01 16:14:41 -07:00
Dane Springmeyer
acaee09598 fix debug output symbolizer name 2012-10-01 15:35:35 -07:00
artemp
d7abfc267b Merge branch 'master' into conv_simplify 2012-09-27 08:54:32 +01:00
Dane Springmeyer
b9b97ba652 after #1483 fontset is boost optional so check appropriately in load_map (solves assert) 2012-09-26 12:56:57 -07:00
artemp
01ae1a179d Merge branch 'master' into conv_simplify 2012-09-17 11:35:15 +01:00
Dane Springmeyer
ad8e4e4cc7 Merge pull request #1366 from mapnik/debugsymbolizer
Debug Symbolizer
2012-09-14 16:43:38 -07:00
Dane Springmeyer
8cfb40ae2f refactor fontsets making them optional on the symbolizer and removing the dangerous default contructor - closes #1483 (TODO - consider modifying insert_fontset to only take single arg of fontset instance) 2012-09-14 14:17:45 -07:00
artemp
29423cfc1c Merge branch 'master' into conv_simplify
Conflicts:
	bindings/python/mapnik_markers_symbolizer.cpp
	plugins/input/ogr/ogr_index_featureset.cpp
	plugins/input/shape/dbfile.cpp
	plugins/input/shape/shapefile.hpp
	src/load_map.cpp
2012-09-07 16:46:02 +01:00
artemp
967d6110bf + singleton: return ref from instance() method 2012-09-07 16:23:03 +01:00
artemp
11e6ba0c09 + make client methods non-static in classes derived from
mapnik::singleton<> (TODO: apply to all)
+ ensure client methods are accessed through instance() method
2012-09-07 14:56:30 +01:00
artemp
8fa0742a53 + make client methods non-static in classes derived from
mapnik::singleton<> (TODO: apply to all)
+ ensure client methods are accessed through instance() method
2012-09-07 14:51:25 +01:00
artemp
5f8bb423e8 Merge branch 'conv_simplify' of git://github.com/kkaefer/mapnik into kkaefer-conv_simplify 2012-09-06 13:12:39 +01:00
Colin Rundel
0e5f71408e Simplified path_parse implementation
path_parse and path_parse_from_string were redundant, replaced with overloaded path_parse function to achieve the same functionality.

Additional consistency cleanup in load_map.cpp.
2012-08-29 16:41:43 -04:00
Konstantin Käfer
13c46b6cc6 Merge branch 'master' into conv_simplify
Conflicts:
	bindings/python/mapnik_line_symbolizer.cpp
	bindings/python/mapnik_polygon_symbolizer.cpp
2012-08-24 23:29:43 +02:00
Konstantin Käfer
4e1423cefe Merge branch 'master' of git://github.com/mapnik/mapnik into conv_simplify
Conflicts:
	src/cairo_renderer.cpp
2012-08-24 23:24:31 +02:00
Dane Springmeyer
6806ca1509 load in load_map if image/svg files are not available when not using stock markers or dynamic expressions - closes #1439 2012-08-23 14:31:50 -07:00
Dane Springmeyer
1ca4bcf78d further improve the reporting of unprocessed nodes and attributes - refs #1441 2012-08-23 14:11:25 -07:00
Dane Springmeyer
03860b1728 improve error messages for exceptions thrown in symbolizers during load_map - closes #1441 2012-08-23 14:04:03 -07:00
Dane Springmeyer
bf3efbeab8 move image filter grammar to cpp and re-use in load map by attaching to xml_tree - closes #1435 2012-08-23 08:13:22 -07:00
Dane Springmeyer
e8101a070a partially repair backward compatibility in python for 'marker-type' - refs #1427 and #1285 2012-08-21 16:36:15 -07:00
Dane Springmeyer
7b7e556850 formatting 2012-08-20 16:27:38 -07:00
Dane Springmeyer
ad2250a4b5 back compatibility for raster-mode values using _ and shield-no-text 2012-08-16 19:20:29 -07:00
Dane Springmeyer
d95f81a588 c++ style 2012-08-16 17:58:08 -07:00
Dane Springmeyer
e0608a4aa4 only throw for unknown attributes if in strict mode 2012-08-16 16:10:23 -07:00
Konstantin Käfer
b243f03c90 use a set to make visvalingam a lot faster 2012-08-16 22:26:58 +02:00
Konstantin Käfer
22150f908f add facilities to choose the simplification algorithm 2012-08-16 16:53:38 +02:00
artemp
aecf0531f5 + remove metawriters for the upcoming 2.1 release 2012-08-15 09:47:03 +01:00
Konstantin Käfer
dcd7a07c8e simplify-tolerance property boilerplate 2012-08-14 17:04:57 +02:00
Dane Springmeyer
9f450bd986 avoid silencing invalid transform throw and use LOG_ERROR for invalid maximum-extent - closes #1363 2012-08-13 15:35:22 -07:00
Dane Springmeyer
9284c6369d correct rendering behavior of marker-opacity, which should not, as per svg, override fill-opacity and stroke-opacity but should combine with it 2012-08-03 14:14:03 -07:00
artemp
5541ea0271 + layer : minimum-extent and buffer-size
+ agg::process_xxx : remove ad-hoc query_extent modifiers
+ ctrans : simplify vertex skipping
2012-08-01 15:44:36 +01:00
Dane Springmeyer
16084ff335 support both interior placement and point for markers - helps prepare for #952 2012-07-31 18:13:50 -07:00
Dane Springmeyer
3821afd74d inherit default placement types from class instance 2012-07-31 18:06:52 -07:00
Hermann Kraus
f3326115ac Add debug symbolizer. 2012-08-01 01:16:48 +02:00
Dane Springmeyer
0d97b851fa markers: support opacity on bitmaps, and move to supporting both opacity and fill-opacity 2012-07-30 18:31:21 -07:00
Dane Springmeyer
e213f49d7c re-implement conditional stroke application in markers_symbolizer initially added in 9d756165e0, amended in 9f064960e3, and wrongly disabled in bd74d18f6d 2012-07-27 19:21:46 -07:00
Dane Springmeyer
bd74d18f6d no need anymore to have parse_stroke return a bool 2012-07-25 18:26:34 -07:00
Dane Springmeyer
9f064960e3 load_map: a stroke-width=0 is valid for markers now (for restyling svg) 2012-07-25 18:19:41 -07:00
Dane Springmeyer
6396b443ef default to MARKER_POINT_PLACEMENT for markers 2012-07-24 19:48:22 -07:00
Dane Springmeyer
b4f3d6da11 include what you use 2012-07-24 18:35:41 -07:00
Dane Springmeyer
214b24ed12 finish updating marker tests - closes #1304 2012-07-12 19:21:04 -07:00
Dane Springmeyer
3e895ac6b7 implement built in support for ellipse and arrow markers, make markers_symbolizer default to POINT placement and ellipse drawing, add back compatibility for deprecated marker-type property - refs #1285 and #1304 2012-07-10 22:38:53 -07:00
artemp
58bd55b075 + allow independent width and height
+ better namings
2012-07-09 10:21:12 +01:00
Dane Springmeyer
3823890b40 rollback 34c3128b0c, move 'scaling' to proper enum, and move image_scaling functions to new cpp/hpp 2012-07-06 16:45:58 -07:00
Dane Springmeyer
9beceae298 shuffle base parsing for shields so it is clearer the call is being made 2012-07-05 17:10:00 -07:00
Dane Springmeyer
0de815ba03 remove raster mode serialization and a few std::clog references in save_map and load_map 2012-07-05 16:07:38 -07:00
artemp
9d756165e0 + update to work with optional stroke (markers) 2012-07-05 17:16:11 +01:00
artemp
9b14a7206a remove arrow/ellipse ad-hoc markers - see #1285 2012-07-04 14:50:11 +01:00
Dane Springmeyer
7d9b4ce0da settle upon 'geometry-transform' naming - refs #1276 2012-07-03 18:34:11 -07:00
Dane Springmeyer
e4ff79d8d8 re-implement f866ab1f80 and da53af5c98 (re-closing #1277) since somehow these commits dissapeared from master 2012-07-03 18:04:35 -07:00
Dane Springmeyer
5c9186017b rename 'image-transform' to just 'transform' (for backward compatibility) and call transforms applied to geometries 'view-transform' 2012-06-29 15:59:56 -07:00
Dane Springmeyer
67e9b0d616 move marker width/height to expressions - closes #1102 and replaces #1255 2012-06-28 19:54:25 -07:00
Dane Springmeyer
48a543b5d5 implement style-level opacity - closes #314 2012-06-19 15:10:28 -04:00
Artem Pavlenko
65156a59ed + read opacity from .xml (polygon_pattern_symbolizer) 2012-06-18 18:53:41 -04:00
Mickey Rose
bd9609c370 new feature: transform expressions are now dynamic
(cherry picked from commit 173c402b5c142310087246b0ea54dbec54edcac8)

Conflicts:

	include/mapnik/vertex_converters.hpp
	src/agg/process_markers_symbolizer.cpp
	src/agg/process_point_symbolizer.cpp
	src/agg/process_polygon_pattern_symbolizer.cpp
	src/load_map.cpp
2012-06-06 17:34:26 +02:00
Dane Springmeyer
11e81fdb03 finish exposing markers symbolizer in python - closes #612 2012-06-04 13:42:51 -07:00
Artem Pavlenko
9dc4cb34cc + point symbolizer needs 'image-transform' via @lightmare 2012-05-29 12:03:14 +01:00
Artem Pavlenko
9c9753d2c8 + fix: set_image_transform 2012-05-15 14:20:56 +01:00
Dane Springmeyer
c1495c0c74 restore the fast line rasterizer (rasterizer_outline_aa) and improve its rendering quality and consistency with standard method - refs #873 2012-05-11 17:40:21 -07:00
Artem Pavlenko
5f5ca030b7 + parse symbolizer_base (raster) 2012-05-10 18:15:32 +01:00
Artem Pavlenko
7e49a6f44e + move 'smooth' property to symbolizer_base level
+ remove 'SYMBOLIZER_FAST' completely
2012-05-07 16:08:16 +01:00
Artem Pavlenko
44c5efbf75 + add miterlimit parameter 2012-05-02 17:04:24 +01:00
Artem Pavlenko
a475b6e0bc + add offset_converter 2012-05-02 15:13:46 +01:00
Artem Pavlenko
77dfac5622 + re-introduce transform on symbolizer_with_image 2012-05-01 16:47:33 +01:00
Artem Pavlenko
a72ee4ba66 Merge branch 'master' into compositing
Conflicts:
	include/mapnik/image_compositing.hpp
	include/mapnik/util/conversions.hpp
	include/mapnik/value.hpp
	src/agg/agg_renderer.cpp
	src/agg/process_line_symbolizer.cpp
	src/agg/process_polygon_symbolizer.cpp
	src/png_reader.cpp
	src/svg_parser.cpp
	utils/svg2png/svg2png.cpp
2012-05-01 12:35:49 +01:00
Artem Pavlenko
f57d2c28f0 + 'direct' image filter support: apply filter on main rendering buffer
(TODO: better user-friendly names)
+ allow empty string e.g image-filters="" (why not?)
2012-04-25 10:54:54 +01:00
Artem Pavlenko
c26ad5706e + move 'clip' property to symbolizer_base
+ support 'clip' accross relevant symbolizer (agg)
2012-04-24 11:10:54 +01:00
Dane Springmeyer
2b92f04926 optimize font rendering with fontsets in the case of some fontset fonts not being available on the users system - closes #1182 2012-04-19 11:22:42 -07:00
Artem Pavlenko
dd7035972d + remove debug printing 2012-04-19 13:41:09 +01:00
Dane Springmeyer
cfa2ffc52e better error output when we fail to parse comp-op or image-filters 2012-04-18 07:37:14 -07:00
Artem Pavlenko
668d6f2325 image-filters: initial implementation 2012-04-18 12:14:23 +01:00
Artem Pavlenko
294de4b95a + update to read "transform" attribute at symbolizer_base level 2012-04-18 09:46:19 +01:00
Artem Pavlenko
45b0dd6482 + support smooth conv in polygon_pattern_symbolizer 2012-04-10 15:46:38 +01:00
kunitoki
b60c508c1c - finish thrashing all the useless ifdef MAPNIK_LOG 2012-04-09 21:41:56 +02:00
kunitoki
1f351e0e09 implement new debug system 2012-04-08 02:20:56 +02:00
Dane Springmeyer
19f5f77417 reuse path_expression_grammar - finishes and closes #1028 2012-04-06 16:50:11 -07:00
Dane Springmeyer
98e470903c less lexical cast - refs #1055 2012-04-06 13:39:13 -07:00
Artem Pavlenko
738ff501fe remove CompositingSymbolizer 2012-04-05 17:04:11 +01:00
Artem Pavlenko
34c984b2b8 + support compositing across all symbolizers
(currently polygon and line symbolizers)
2012-04-05 15:59:11 +01:00
Artem Pavlenko
e7f0e8aac0 + support configurable vertex converter 2012-04-03 19:49:57 +01:00
Artem Pavlenko
347fce4db2 + add 'clip' property 2012-04-03 16:28:49 +01:00
Artem Pavlenko
81566a8f80 + use pre-multiplied pixel format in agg_renderer
(de-multiply in end_map_processing())
+ support for compositing at style level
+ image blur (TODO)
2012-04-03 13:10:30 +01:00
Artem Pavlenko
9840c7df4c Merge branch 'master' into compositing
Conflicts:
	include/mapnik/util/dasharray_parser.hpp
	src/agg/process_line_symbolizer.cpp
	src/image_compositing.cpp
2012-03-26 09:05:02 +01:00
Dane Springmeyer
ea5a46f230 remove the storage and serialization of 'font-directory' and 'minimum-version' since there is no strong need to have them accessible after initial parsing 2012-03-23 18:14:14 -07:00
Dane Springmeyer
586978f345 fix operator 2012-03-23 17:27:01 -07:00
Dane Springmeyer
3b498efbd9 fixup font registration code ensuring invalid fonts will warn but not throw and register_fonts will only return success if > one font is registered and none have failed 2012-03-23 15:07:28 -07:00
Artem Pavlenko
38fafc14bc + impl dasharray parser (supports 'none')
+ skip 0,0 dashes in load_map
2012-03-23 13:18:49 +00:00
Artem Pavlenko
b4e96c35b5 + impl dasharray parser (supports 'none')
+ skip 0,0 dashes in load_map
2012-03-23 11:58:07 +00:00
Dane Springmeyer
d991427737 formatting 2012-03-22 16:37:24 -07:00
Artem Pavlenko
f0b6fffcc9 Merge branch 'master' into compositing 2012-03-22 09:14:49 +00:00
Artem Pavlenko
95cfb061af + experimental compositing symbolizer (fill only) 2012-03-21 15:47:33 +00:00
Dane Springmeyer
3f06747407 braces for readibility 2012-03-20 16:40:07 -07:00
ldp
1542e3e513 add ignore-placement to MarkersSymbolizer 2012-03-18 22:35:02 +01:00
Hermann Kraus
725248628d C++ style. 2012-03-16 01:50:55 +01:00
Artem Pavlenko
70512dc03b + add optional smothing to line_symbolizer
( TODO: conv_dash )
2012-03-15 10:26:53 +00:00
Artem Pavlenko
87b22c29b2 + add optional polygon smoothing ( 0.0 < smooth < 1.0 )
using agg_conv_poly1_curve
2012-03-14 15:01:31 +00:00
Dane Springmeyer
93995d7c4b apply mapnik_format.el formatting 2012-03-13 07:56:11 -07:00
Hermann Kraus
2b68cea0a1 Merge branch 'new-xml'
Conflicts:
	include/mapnik/config_error.hpp
	include/mapnik/ptree_helpers.hpp
	src/formatting/text.cpp
	src/libxml2_loader.cpp
	src/load_map.cpp
	src/metawriter_factory.cpp
	src/text_placements/registry.cpp
	src/text_placements/simple.cpp
2012-03-13 11:11:28 +01:00
Hermann Kraus
150de2aac5 Add rapidxml parser. 2012-03-13 09:02:53 +01:00
Dane Springmeyer
fb6bf401e9 avoid constructing extra temp object 2012-03-12 13:22:07 -07:00
Artem Pavlenko
207ecfd597 remove camel-case names from layer.[h,c]pp 2012-03-12 15:39:59 +00:00
Hermann Kraus
f25a2231ff Warn about unused XML elements. 2012-03-12 02:12:58 +01:00
Hermann Kraus
02d8a98b3f Improve error messages. 2012-03-12 01:09:26 +01:00
Hermann Kraus
502773bea6 Only one grammar object per XML tree. 2012-03-11 23:24:28 +01:00
Dane Springmeyer
a6f89883d7 moar boost::make_shared 2012-03-09 16:20:50 -08:00
Hermann Kraus
cd8cfc6527 Improve error messages. 2012-03-08 18:52:53 +01:00
Hermann Kraus
adc8f9df1b Fix PointSymbolizer problem. 2012-03-08 13:00:40 +01:00
Hermann Kraus
2a7709a0cf Dump xml tree. 2012-03-08 01:29:19 +01:00
Dane Springmeyer
adfa73f64a avoid combining default arg with const& 2012-03-07 08:54:04 -08:00
Hermann Kraus
daf30ca0d1 Update metawriter_factory.hpp 2012-03-07 15:26:13 +01:00
Hermann Kraus
9a05dc1828 Add XML functions. 2012-03-07 03:57:31 +01:00
Hermann Kraus
7d3fd0755d Complete XML changes in load_map.cpp 2012-03-07 01:35:37 +01:00
Hermann Kraus
7a052f81f7 Update more functions. 2012-03-06 18:17:23 +01:00
Hermann Kraus
ac50834d92 Convert parse_map_include to xml_node. 2012-03-06 15:47:08 +01:00
Hermann Kraus
191d0f907a Convert first function to new XML structure. 2012-03-06 15:18:11 +01:00
Dane Springmeyer
f90b410ece formatting to use const& as per 6462af3 2012-03-05 11:10:04 -08:00
Dane Springmeyer
232256e136 load_map_string: do not pass optional arg by const& and better error if string is empty 2012-03-05 10:44:20 -08:00