Commit graph

516 commits

Author SHA1 Message Date
Jordan Hollinger
08ea56996a Add shield symbolizer support in group symbolizer processing.
Update some test cases to use ShieldSymbolizer instead of point and text.
2014-02-25 08:53:35 -05:00
Jordan Hollinger
07dc6e37a2 Merge branch 'expr-v2' of github.com:mapnik/mapnik into expr-v2-group-symbolizer
Conflicts:
	include/mapnik/attribute_collector.hpp
2014-02-18 18:22:01 -05:00
Jordan Hollinger
3d1c30db1e Extracted a lot of code from agg render process_group_symbolizer.
Move a lot of processing into a common process_group_symbolizer function.
Also, extract column collection out of process_group_symbolizer function.
This will reduce duplication needed for other renderers.
2014-02-18 15:06:40 -05:00
Matt Amos
efc29649ab Added test for group symbolizer, fixed segfault.
Segfault was due to `glyph_position` structs keeping a pointer to
`glyph_info` objects which went out of scope at a different time.
The (rather ugly) fix for the moment is to copy that information
into the thunk object.
2014-02-18 14:06:05 -05:00
Jordan Hollinger
76329028d2 Find placements and render in process_group_symbolizer.
Create a group_symbolizer_helper for group placments, and extract some code from
text_symbolizer_helper into a base class to share with group_symbolizer_helper.
Also, move tolerance_iterator into its own header file. Use helper in
process_group_symbolizer to find placement positions.
2014-02-18 14:01:04 -05:00
Matt Amos
1ccdc5b76d Added code to render frozen thunks.
This renders the saved information from previous calls to the
bounding box extraction code, offset by some amount which should
be determined from running the `placement_finder`. Note that this
doesn't implement that bit, just the rendering.
2014-02-18 11:11:07 -05:00
Matt Amos
b85e7d0764 Added method to extract bounding boxes for symbolizers.
This is done by creating a fake 'virtual' environment at a fake
point and running the symbolizer render code. The actual render
is saved in a thunk for after the group layout has been done.
2014-02-18 11:11:06 -05:00
Jordan Hollinger
fbc2a0d1e3 Framework for group symbolizer.
This includes XML parsing of group symbolizer and related objects and
process_group_symbolizer method in the AGG renderer. This also includes
code to collect group symbolizer indexed columns, create sub features,
and match them to group rules.
2014-02-18 11:07:52 -05:00
Dane Springmeyer
89f72f02e8 pass feature to vertex_converters - refs #2148/#2140 2014-02-08 22:10:14 -08:00
Dane Springmeyer
83bde5fef2 use premultiplied renderer for points/shields - closes #2117 2014-01-22 22:44:33 -08:00
Dane Springmeyer
7bcbcb0c4f use premultiplied renderer for points/shields - closes #2117 2014-01-22 22:44:04 -08:00
Dane Springmeyer
4731baab93 use premultiplied renderer for points/shields - closes #2117 2014-01-22 22:43:34 -08:00
artemp
3628b5f237 halo-transform initial impl 2014-01-17 11:47:18 +00:00
Matt Amos
ceaea9a948 Factored out common implementation of polygon symbolizer. 2013-12-09 20:42:00 +00: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
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
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
Dane Springmeyer
e9ca9c8790 symbolizer-expressions replayed against latest master 2013-11-27 22:50:15 -08: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
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
0250538149 add support for geometry-transform in pattern symbolizers - closes #2065 2013-11-05 16:40:09 -08:00
artemp
3837c68762 use non-zero filling rule when rasterising lines 2013-10-29 12:26:33 +00:00
artemp
2eaf6a1ead use even/odd polygon filling rule ref https://github.com/mapbox/tilemill/issues/2110 2013-10-28 15:57:35 +00:00
Dane Springmeyer
730f8e36e2 remove dead code 2013-10-23 18:24:35 -07:00
Dane Springmeyer
f14854912c backport ecf8c20938 from master 2013-10-23 18:24:04 -07:00
Dane Springmeyer
ecf8c20938 completely fix (across various g++ versions) clipping regression - closes #2049 2013-10-23 18:09:22 -07:00
Dane Springmeyer
cb04fc0b34 apply bbox clipping fix to shield symbolizer as applied to text in 96fff72837 - refs #2049 2013-10-23 17:41:24 -07:00
Dane Springmeyer
bc2ee11d9a fix text related test failures on ubuntu precise/g++-4.7 - refs #2049 2013-10-23 17:41:15 -07:00
Dane Springmeyer
78f7de16b8 apply bbox clipping fix to shield symbolizer as applied to text in 96fff72837 - refs #2049 2013-10-23 17:39:46 -07:00
Dane Springmeyer
96fff72837 fix text related test failures on ubuntu precise/g++-4.7 - refs #2049 2013-10-24 00:33:26 +00:00
Dane Springmeyer
8272b0b3db remove dead code 2013-10-22 21:13:02 -07:00
artemp
7adee4ab36 c++11 : remove boost::make_shared includes 2013-10-17 15:09:56 +01:00
artemp
3edfc69c81 == c++11
use std::tuple with std::get<>
2013-10-11 12:36:04 +01:00
artemp
7f035f9226 + remove unused vertex tags 2013-10-10 13:43:59 +01:00
Dane Springmeyer
ddf2226b6f merge with branch 2.3.x 2013-10-05 15:37:29 -07:00
Dane Springmeyer
0224ce3019 add support for seamless blurring - closes #1478 2013-10-03 16:37:09 -07:00
Dane Springmeyer
8e9028e931 use std::fabs not fabs 2013-10-03 13:28:42 -07:00
Dane Springmeyer
681f8853d3 pull in changes from master 2013-09-24 22:57:01 -07:00
artemp
09ce29489e use const std::unique_ptr<> instead of boost::scoped_ptr<> 2013-09-20 14:22:58 +01:00
artemp
b315eb2167 + use std::shared_ptr and std::make_shared 2013-09-20 14:01:27 +01:00
Dane Springmeyer
9df4deac73 consistent use of agg::rgba8_pre to construct premultiplied colors - refs #2011 2013-09-19 19:41:46 -07:00
Dane Springmeyer
5b78b6b2dc fix #2011 2013-09-19 19:19:11 -07:00
artemp
ec0bdb21ad Merge branch 'geometry-types' into c++11 2013-09-16 14:18:22 +01:00
artemp
b690015d63 Merge branch 'master' into c++11 2013-09-09 12:32:47 +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
artemp
d4b9a48cb1 + geometry::types Exterior/Interior polygon loops 2013-09-03 12:15:31 +01:00
artemp
4f4e2b001e Merge branch 'master' into c++11
Conflicts:
	SConstruct
	benchmark/run.cpp
	bindings/python/mapnik_datasource.cpp
	bindings/python/mapnik_feature.cpp
	bindings/python/python_optional.hpp
	include/mapnik/css_color_grammar.hpp
	include/mapnik/expression_grammar.hpp
	include/mapnik/feature.hpp
	include/mapnik/feature_style_processor_impl.hpp
	include/mapnik/image_filter_types.hpp
	include/mapnik/image_util.hpp
	include/mapnik/json/geometry_generator_grammar.hpp
	include/mapnik/json/geometry_grammar.hpp
	include/mapnik/processed_text.hpp
	include/mapnik/tiff_io.hpp
	include/mapnik/util/geometry_svg_generator.hpp
	include/mapnik/util/geometry_wkt_generator.hpp
	include/mapnik/utils.hpp
	include/mapnik/webp_io.hpp
	include/mapnik/wkt/wkt_grammar.hpp
	plugins/input/shape/shape_datasource.cpp
	plugins/input/shape/shapefile.hpp
	src/expression_grammar.cpp
	src/expression_string.cpp
	src/image_util.cpp
	src/json/feature_collection_parser.cpp
	src/json/feature_parser.cpp
	src/miniz.c
	src/symbolizer_helpers.cpp
	src/tiff_reader.cpp
	src/webp_reader.cpp
	tests/cpp_tests/geometry_converters_test.cpp
	tests/cpp_tests/image_io_test.cpp
	tests/cpp_tests/map_request_test.cpp
	tests/python_tests/image_test.py
	tests/visual_tests/test.py
2013-08-30 09:46:09 +01:00