Commit graph

208 commits

Author SHA1 Message Date
Artem Pavlenko
61113d7b4e + add clipping to text/shield/markers
Conflicts:

	include/mapnik/symbolizer_helpers.hpp
2012-03-09 13:37:53 +00:00
Artem Pavlenko
d8d5298f4e + update cairo_renderer to use clipped paths 2012-03-09 12:56:54 +00:00
Artem Pavlenko
40b9553722 + add clipping to text/shield/markers
Conflicts:

	include/mapnik/symbolizer_helpers.hpp
2012-03-09 12:54:13 +00:00
Artem Pavlenko
c12161bf19 + clip geometries before applying any
transformations.
2012-03-09 12:44:29 +00:00
Hermann Kraus
cd8cfc6527 Improve error messages. 2012-03-08 18:52:53 +01:00
Dane Springmeyer
f1aee03912 forward declare marker so marker_cache api access is cleaner 2012-03-08 08:37:58 -08:00
Hermann Kraus
ad86e9aebc Reenable text meta writers. 2012-03-04 23:25:13 +01:00
Hermann Kraus
4638b28c36 Store pointer to char_info in text_path instead of pointer to char_properties. 2012-03-04 03:53:39 +01:00
Hermann Kraus
b4eddaab24 Move variables from text_placements_info to placement_finder.
Reuse placement_finder objects.
Pass feature to placement_finder.
Refs #1048.
2012-03-04 01:49:01 +01:00
Hermann Kraus
46f80cc6aa Use double instead of int and avoid rounding when possible.
Closes #1078.
2012-02-20 19:32:34 +01:00
Hermann Kraus
2843ff3da8 Fix placement_finder.hpp includes. 2012-02-18 14:03:21 +01:00
Hermann Kraus
bb3ad18c95 Rename starting_{x,y} to center to reflect actual meaning. 2012-02-18 13:07:23 +01:00
Dane Springmeyer
8e61d9a6d2 remove used typedefs 2012-02-07 13:42:45 -08:00
Dane Springmeyer
17d13cff67 whitespace fixes - closes #911 2012-02-01 17:53:35 -08:00
Dane Springmeyer
07d7d7d537 convert to using feature_ptr rather than const& for renderers 2012-02-01 16:37:05 -08:00
Artem Pavlenko
b90de4874c Merge branch 'textplacement-merge' into feature-text-merge
Conflicts:
	docs/textrendering.gv
	include/mapnik/building_symbolizer.hpp
	include/mapnik/placement_finder.hpp
	include/mapnik/symbolizer_helpers.hpp
	include/mapnik/text_placements.hpp
	include/mapnik/text_placements_list.hpp
	include/mapnik/text_placements_simple.hpp
	include/mapnik/text_processing.hpp
	plugins/input/shape/shape_utils.hpp
	src/agg/process_shield_symbolizer.cpp
	src/agg/process_text_symbolizer.cpp
	src/cairo_renderer.cpp
	src/grid/process_shield_symbolizer.cpp
	src/grid/process_text_symbolizer.cpp
	src/load_map.cpp
	src/placement_finder.cpp
	src/shield_symbolizer.cpp
	src/text_placements.cpp
	src/text_processing.cpp
	src/text_symbolizer.cpp
	tests/visual_tests/clean.sh
	tests/visual_tests/test.py

Merge herm/textplacement-merge
2012-01-31 11:09:55 +00:00
Hermann Kraus
4a3a3fd82c ShieldSymbolizer for Cairo. 2012-01-29 05:03:38 +01:00
Hermann Kraus
dbc1280731 Process more than one geometry.
Start work on ShieldSymbolizer.
2012-01-26 20:05:38 +01:00
Artem Pavlenko
d1f16bb227 merge textplacement-merge into feature_impl 2012-01-26 13:04:08 +00:00
Hermann Kraus
1106dcb445 Support for cairo + grid renderer. 2012-01-25 16:17:38 +01:00
Hermann Kraus
581d35987e Disable ShieldSymbolizer in cairo_renderer.cpp (see fdd58903f9). 2012-01-22 18:47:23 +01:00
Hermann Kraus
fdd58903f9 Disable rendering of TextSymbolizer and ShieldSymbolizer.
This avoids breaking compiles with the next changes.
2012-01-22 18:24:28 +01:00
Hermann Kraus
b7f8e356f4 Make text_path use char_info. 2012-01-22 01:43:13 +01:00
Hermann Kraus
5fd7035527 Move font engine functions from .hpp to .cpp. 2012-01-21 01:47:02 +01:00
Hermann Kraus
537231f60e Remove glyph symbolizer. 2012-01-19 20:34:09 +01:00
Artem Pavlenko
de402b2450 + update colorizer call 2012-01-18 09:39:06 -05:00
Cezary Tarnowski
88af05fadc bugfix - a proper bugfix for rewinding geometry in building symbolizer 2012-01-09 13:41:38 +01:00
Cezary Tarnowski
4084d58309 bugfix - a proper bugfix for rewinding geometry in building symbolizer 2012-01-09 13:41:38 +01:00
Cezary Tarnowski
b438a56ada refactoring following comment on pull request 2011-12-13 15:28:18 +01:00
Cezary Tarnowski
79af8fdbc9 refactoring following comment on pull request 2011-12-13 15:28:18 +01:00
Cezary Tarnowski
8bf359451d Adding support for height as expression for building symbolizer 2011-12-09 12:08:50 +01:00
Cezary Tarnowski
c5eb808059 Adding support for height as expression for building symbolizer 2011-12-09 12:08:50 +01:00
Dane Springmeyer
efa1b95cb8 add support for rendering svg icons with point placement in markers symbolizer (originally markers just supported special line placement) - closes #953 - refs #952 2011-11-16 09:56:35 -08:00
Dane Springmeyer
758428a2ca add support for rendering svg icons with point placement in markers symbolizer (originally markers just supported special line placement) - closes #953 - refs #952 2011-11-16 09:56:35 -08:00
Artem Pavlenko
a35b9c4eaa add support for fractional text size
( use FT_Set_Char_Size )
NOTE: ensure it works as expected, currently
I see different results from different fonts.
2011-10-28 11:24:08 +01:00
Artem Pavlenko
87c1d126b8 add support for fractional text size
( use FT_Set_Char_Size )
NOTE: ensure it works as expected, currently
I see different results from different fonts.
2011-10-28 11:24:08 +01:00
kunitoki
f1fb0c1939 - fix copyright to 2011 (script to do this will follow) 2011-10-23 15:04:25 +02:00
kunitoki
596757a269 - fix copyright to 2011 (script to do this will follow) 2011-10-23 15:04:25 +02:00
Dane Springmeyer
8420e8a9c6 use boost:make_shared more widely - refs #909 2011-10-17 16:41:12 -07:00
Dane Springmeyer
3bd19a30b4 use boost:make_shared more widely - refs #909 2011-10-17 16:41:12 -07:00
Alberto Valverde
4ff5404a57 added includes for config.hpp (PROJ_ENEVLOPE_POINTS) 2011-09-16 14:35:47 +00:00
Alberto Valverde
4444907855 ported warer warping functionallity to cairo renderer. Closes #887 2011-09-16 14:34:14 +00:00
Dane Springmeyer
9bda9c7019 support raster reprojection - adapted from work at https://github.com/albertov/mapnik2/ - nice work alberto and meteogrid - closes #663 2011-09-12 18:41:44 +00:00
Dane Springmeyer
d4af1dbfaa add needed include 2011-09-01 01:18:10 +00:00
Dane Springmeyer
abcba2bc34 #759 is fixed, revert r3008 2011-07-16 00:25:30 +00:00
Dane Springmeyer
f156e147d3 rollback to using pre r2543 methods for bilinear scaling (non agg) - to be used until #759 is resolved 2011-07-07 21:24:17 +00:00
Hermann Kraus
8474976353 Prepare for merging "text_placement_info" and "placement". 2011-05-30 01:16:21 +00:00
Dane Springmeyer
90fbd6a204 use boost::make_shared to avoid explicit new and ensure fast and exception safe allocation 2011-05-10 21:09:54 +00:00
Dane Springmeyer
1b1bd4b02e sync cairo with agg renderer after r2876 2011-05-06 00:36:09 +00:00
Dane Springmeyer
d05b0c539f apply major refactor of RasterColorizer by ben moores from https://github.com/BenMoores/mapnik-trunk/wiki/RasterColorizer - closes #523 2011-05-04 00:20:17 +00:00
Dane Springmeyer
c413d67b82 sync cairo's text rendering with agg 2011-04-30 00:07:03 +00:00
Dane Springmeyer
2699ba42d0 avoid unused parameter compiler warnings 2011-04-04 04:35:28 +00:00
Dane Springmeyer
14068cad23 move segment y_order sort to header that can be used by each renderer 2011-03-22 00:02:50 +00:00
Robert Coup
8ace5b7e6b position shield symbolizer symbols centered (ie. with text), rather than top-left in cairo output. re #737 - thanks @jburgess for testing and @Ldp for the patch. 2011-03-15 22:25:37 +00:00
Dane Springmeyer
2ea0340e2d avoid unintialized variable warnings in g++ 2011-02-28 18:30:38 +00:00
Hermann Kraus
714f918332 Fix indentation. 2011-02-28 13:29:39 +00:00
Hermann Kraus
4af0696b9d Add support for multiple placements.
NOTE: In some places indention is not updated to keep this patch readable. This will be fixed in the next revision.
2011-02-28 13:17:46 +00:00
Dane Springmeyer
545960a340 fix point_placement enum checking 2011-02-24 18:05:07 +00:00
Dane Springmeyer
9d351be091 update cairo renderer to include text-transform 'captitalize' support 2011-02-21 20:46:07 +00:00
Dane Springmeyer
75649b8863 add 'interior' point placement option to point_symbolizer - closes #709 2011-02-01 08:16:32 +00:00
Dane Springmeyer
e803b1c2ec add 'interior' placement option to text_symbolizr - patch from Toby Collet - closes #709 2011-02-01 08:13:08 +00:00
Robert Coup
bea611a185 Fix positioning problem with scale() transforms for SVG symbols. Centering transform applied in the wrong order. Thanks to Toby Collett. 2011-01-31 09:56:31 +00:00
Dane Springmeyer
5bf6efafb0 apply patch from Craig de Stigter for better scaling methods using agg image filters - closes #656 2011-01-27 03:47:54 +00:00
Robert Coup
386a4f5daf #654 - add support for linear and radial gradients in SVG symbols. Thanks to Toby Collett for the coding & Paul Wicks for funding. 2011-01-26 01:18:40 +00:00
Marcin Rudowski
5a55d99f9a making TextSymbolizer label placement consistant with agg renderer to give more similar output 2011-01-23 22:45:28 +00:00
Dane Springmeyer
209b0697dc upgrade a hello world plugin and cairo renderer to fully use new geometry_type 2010-11-03 16:26:30 +00:00
Artem Pavlenko
ab101401cd + simplify geometry implementation
+ removed multiple geometry typedefs
+ use geometry_type
+ revert to storing vertices in vector_vertex
  (previous implementation using std::vector was
   fragmenting heap causing performance issues with large geometries)
+ FIXME: hit_test is broken!
2010-11-03 13:19:15 +00:00
Alberto Valverde
9c79d52ca0 Modified cairo_pattern in order to let cairo handle ownership of the image
buffer. This solves the issue mentioned in [2254] properly as it wasn't solved
properly before.
The bug is uncovered in cairo 1.10.0 and caused that images added to pdf
surfaces did not appear at all. My guess is that newest cairo reads the
pattern surface lazily when "trasnfering" it to the target surface and by the
time it does it the cairo_pattern which owns the buffer has already been
destroyed.
2010-10-01 11:22:39 +00:00
Alberto Valverde
215c223f68 Fixing issue when painting images into cairo PDFSurfaces which appears when using cairo 1.10.0. The context's surface needs to be marked as dirty after painting or else images won't be flushed. Earlier versions of cairo weren't as strict abouth this. Thanks to Company @ #cairo for helping out 2010-09-30 15:26:38 +00:00
Dane Springmeyer
49e6fa4480 fixup compile of cairo rendering backend after r2248 2010-09-28 18:27:42 +00:00
Dane Springmeyer
c35310445a rename text_convert to text_transform to match css naming convention (also matching enums to css) 2010-09-18 19:10:18 +00:00
Hermann Kraus
7dea58b625 Metawriter for Cairo. 2010-08-11 11:45:56 +00:00
Hermann Kraus
035e99d2f0 Only initialize proj_transform once in metawriter_json_stream. 2010-08-02 12:14:27 +00:00
Hermann Kraus
d5b0432dd7 Many metawriter improvements:
- Easier to configure
- Correct JSON output
- Handling more than one renderer run (writing pre-/postamble is no longer done in constructor/destructor)
- Collect all attributes required by metawriters
2010-07-12 15:27:33 +00:00
Hermann Kraus
9a0bcf23be Added basic infrastructure for metawriter and support for JSON output (limited to PointSymbolizer atm) 2010-07-06 00:37:05 +00:00
Artem Pavlenko
9b3809443c + fix naming style in mapnik::Map 2010-06-25 15:23:35 +00:00
Artem Pavlenko
cf26db081a + refactor path expressions parser 2010-06-18 15:39:32 +00:00
Artem Pavlenko
246731874b + apply 'mapnik-format' to *.cpp *.hpp 2010-06-02 11:03:30 +00:00
Dane Springmeyer
89f6b32b76 apply patch from Herm from #553 adding support for markers_symbolizer to Cairo renderer, new placement finder, and fill/spacing/overlap options - works nicely with new svg support being tested against markers_symbolizer 2010-05-30 03:16:51 +00:00
Alberto Valverde
1e2ffb22b7 cairo rendering for the glyph_symbolizer. Small refactoring in cairo_context::add_text to pass the paramaters which were picked up from the text_symbolizer param (size, fill, halo_radius and halo_fill) explicitly. This allows the glyph_symbolizer to piggy back on that functionality without specilizing add_text() for the glyph_symbolizer (which would have involved heavy amounts of copy+paste or a more elaborate refactoring strategy. Please ping me if this was not a good idea 2010-03-19 09:33:57 +00:00
Alberto Valverde
fc3a1beeef initial skeleton of glyph_symbolizer (coarsely ported from arrow_symbolizer). Mapnik compiles but symbolizer does nothing useful yet and is going to be heavily modified to make use of expressions to be general enough to be usable for purposes other than rendering arrows representing vector direction/intensity 2010-03-18 20:04:35 +00:00
Alberto Valverde
2f1d60b666 pre-eliminary raster coloring support 2010-03-12 13:34:13 +00:00
Dane Springmeyer
b8511eca65 restore default behavior of PointSymbolizer when used without an image, by defaulting to 4x4 black pixel - TODO - expose colors, shapes, and size for this in the future 2010-03-03 03:26:12 +00:00
Dane Springmeyer
b540dab73b apply slighly modified (env->box2d) mapnik-trunk.mr.raster-position2.diff from mar_rud to close #475 2010-03-03 03:23:53 +00:00
Artem Pavlenko
47dc1e197b + merge mapnik2 to trunk 2009-12-16 20:02:06 +00:00
Artem Pavlenko
85ecc33d7f + applied patch from Jochen Topf :
* text_convert="none|toupper|tolower"
 Convert all text to upper/lower case before rendering. "none" doesn't do
 anything with the text and is the default. Works for labels along lines
 or at points.

* line_spacing="<number>"
 Add this many pixels space between two lines in text labels that have
 been broken into several lines. Default is 0. Doesn't do anything for
 labels along lines.

* character_spacing="<number>"
 Add this many pixels space between two characters in a text. Default is 0.
 Currently only works for text labels on point geometries. This should
 also be implemented for labels along lines, but I'll leave that for
 another day.

* wrap_character="<character>"
 Instead of breaking text into lines on spaces, use this character. This
 is useful, when you want to make sure that labels are broken at the right
 spot. Note that you'll probably want to make wrap_width small so that
 your lines are actually broken, otherwise you'll see the wrap_character
 in the output. Default is ' ' (space). Doesn't do anything for labels
 along lines.
2009-07-20 15:30:19 +00:00
Dane Springmeyer
7eb01c0be4 +make cairo compilation conditional on CFLAG (as well as Scons) like bindings/python/python_cairo.cpp 2009-06-08 19:43:49 +00:00
Dane Springmeyer
544cbb249a Apply patch from Marcin to handle smooth transitions between raster layers for both gdal and raster plugin - closed #295 2009-04-07 23:06:51 +00:00
Artem Pavlenko
2eec236fc2 + applied "hill shading" patch from Marcin Rudowski
a) Raster opacity
   b) Raster merging modes (TODO:add more modes, consider agg impl)
   c) Raster scaling algos: fast,bilinear,bilinear8
      (TODO: add alpha support in bilinear8) 
   d) improvements to png256

   *Great work, thanks!*
2009-03-29 11:05:20 +00:00
Jon Burgess
d11654895b Utilise color alpha information when rendering. Multiplies the color alpha with the rendering opacity. Fixes 221. 2009-02-07 14:09:23 +00:00
Tom Hughes
220bb3e99a Revert the patch to add a show_page flag to the cairo renderer and
replace it with support for rendering to a cairo context rather than
a cairo surface.

When rendering to a surface a show_page is done, when rendering to a
context it is not so that multiple renders can be done, possibly with
modified scaling and/or translation.
2009-02-06 00:46:29 +00:00
Dane Springmeyer
51293f64ba + apply show_page.patch (thanks Berteun) (closes #201) 2009-02-05 18:09:14 +00:00
Artem Pavlenko
f657a2dfe4 + Alpha background patch for Cairo (Berteun) 2009-01-29 15:27:27 +00:00
Artem Pavlenko
6f98c95c1f + mapnik-fix-cairo-polygon-patterns.patch (jonb) 2009-01-24 18:02:33 +00:00
Artem Pavlenko
a07767ef3d + (c++) renamed mapnik::Color to mapnik::color
+ (c++) added mapnik::color ctor from named colours (TODO: consider not to export color_factory) 
+ (Python) fixed pickling
+ (Python) added to_hex_string method
2009-01-14 12:10:24 +00:00
Tom Hughes
9408a41a5c Add opacity support to the point symbolizer - taken from r743 which
added the same support to the agg renderer.
2008-10-31 00:51:41 +00:00
Tom Hughes
9d6a7f1075 Port shield placement enhancements from r741 and r745 from the agg
renderer to the cairo renderer. Should close #136.
2008-10-31 00:39:22 +00:00
Artem Pavlenko
20f3a9460d + expose buffer_size parameter (default 0)
influences envelope used by placement detector 
  ( i.e. 'avoid_edges' parameter)
2008-09-21 10:14:38 +00:00
Tom Hughes
779a0e67b2 Make the cairo renderer build again, with font fallback support now. 2008-07-25 23:26:02 +00:00
Artem Pavlenko
3f9127b5d0 reverting back to 700 2008-06-29 10:58:29 +00:00
Artem Pavlenko
3275cf9ce6 applied font fallbacj patch from Beau Gunderson 2008-06-29 10:40:08 +00:00
Tom Hughes
25c831378f Don't clip coordinates to 16 bits if we're using cairo 1.6 as it is no
longer limited to 16 bit coordinates.
2008-04-20 11:30:10 +00:00
Tom Hughes
0e6237270e Remove unused ifdefs. 2008-04-20 10:45:59 +00:00
Tom Hughes
889f36b8df Enable clipping for cairo 1.6.0 and later. 2008-04-19 23:22:03 +00:00
Tom Hughes
4483d59797 Revert previous fix for #89 and add a new improved fix that enhances the
value class to have a proper null type and do comparisions SQL style so
that null is neither equal nor not equal to other things.
2008-04-12 15:22:27 +00:00
Tom Hughes
a27bde741e Don't try and render text if the attribute containing the text does
not exist for the feature. Closes #89.
2008-04-11 23:11:35 +00:00
Artem Pavlenko
bb9290be8a fixed line_pattern_symbolizer transformations 2008-03-17 22:04:22 +00:00
Tom Hughes
02962156c5 Add support for rendering to a cairo surface. 2008-02-23 00:17:53 +00:00