Commit graph

306 commits

Author SHA1 Message Date
Dane Springmeyer
1f29ce7d3d back to using shared_ptr for holding text_placement_info 2014-10-08 16:28:07 -07:00
Dane Springmeyer
a24b29624a remove unused include 2014-10-08 16:27:38 -07:00
Dane Springmeyer
65438f17aa further tests of path expressions for shields 2014-10-08 08:00:59 -07:00
Dane Springmeyer
7ce776a79c fix handling of shield-text-opacity/text-opacity - closes #2507 2014-10-06 21:52:29 -07:00
Dane Springmeyer
737c299341 fix back compat for text-placement-type:dummy - closes #2502 2014-10-06 11:37:39 -07:00
artemp
e8b3083a6a remove std::function usage in text_properties 2014-10-03 16:00:05 +01:00
Dane Springmeyer
f81fc53cbc fix compile on windows of font_feature_settings.cpp - refs #2489 2014-10-02 16:31:16 -07:00
Jiri Drbalek
5861980f91 add wrap-character support to Layout node of TextSymbolizer 2014-10-02 18:34:37 +00:00
artemp
2bab0512ff refactor vertex_cache to use unique_ptr's and less copying 2014-10-02 16:36:50 +01:00
artemp
a04276d90a use c++11 features over boost when available 2014-10-02 15:09:17 +01:00
Jiri Drbalek
667b6e3adc fix compile on ubuntu precise 2014-10-02 12:18:39 +00:00
Dane Springmeyer
d29add9db3 use face_manager_freetype typedef everywhere 2014-10-01 18:54:11 -07:00
Dane Springmeyer
767c51cea2 add missing stdexcept include 2014-10-01 18:51:17 -07:00
Dane Springmeyer
e6fe3cd8a6 new font_library raii class 2014-10-01 18:19:26 -07:00
artemp
745d45bb68 remove std::function from placement loop
(std::function incurs overhead of polymorphic dispatch internally and relatively expensive - avoid using in performance critic code)
2014-10-01 11:26:14 +01:00
Dane Springmeyer
822d3a5bce break apart symbolizer.hpp + fwd declars + svg output grammar impl 2014-09-30 12:50:08 -07:00
Dane Springmeyer
aaec8058fa fix property name in error message 2014-09-29 16:32:46 -07:00
Dane Springmeyer
aa239a65ed remove unneeded include 2014-09-24 12:23:54 -07:00
Jiri Drbalek
31607cb3f4 add text attribute horizontal-alignment="adjust" 2014-09-23 08:49:27 +00:00
Dane Springmeyer
d59529d22f map ExpressionFormat -> Format for 2.3.x back compat - refs #2429 2014-09-22 23:34:36 -07:00
Dane Springmeyer
69dd74e079 rename wrap-char -> wrap-character to match Mapnik 2.3.x - refs #2333 2014-09-19 16:53:03 -07:00
Dane Springmeyer
0c901f790e respect halo-transform in grid_renderer 2014-09-19 15:37:13 -07:00
Dane Springmeyer
9e78712dc4 Merge pull request #2377 from mapycz/3.x-fix-text-on-line-glyph-distance
text rendering with line placement on corners in 3.x
2014-09-19 15:12:32 -07:00
Dane Springmeyer
98adcc2d58 fix compile with clang++ after #2416 2014-09-19 14:51:27 -07:00
Jiri Drbalek
57be44d815 text ligatures off when character-spacing > 0 2014-09-17 19:22:14 +00:00
Jiri Drbalek
2dcfa9e4b7 add font-feature-settings 2014-09-17 19:22:07 +00:00
artemp
e545b68699 revert accidental removal of 'wrap-before' expression 2014-09-11 10:14:36 +01:00
artemp
246336d2b1 Merge branch 'min-dist-compatibility' of git://github.com/MapQuest/mapnik into MapQuest-min-dist-compatibility 2014-09-10 16:20:36 +01:00
artemp
f8dc7b023a text - add ``repeat-wrap-char`` parameter default:false (#2333) 2014-09-10 16:08:41 +01:00
Jordan Hollinger
9b5a9dfe3e Change text-margin option to margin. 2014-09-10 07:45:41 -04:00
artemp
b441586acf text-symbolizer: revive 'wrap-char' property which uses special (naive) line_breaker - ref #2333 2014-09-09 17:30:01 +01:00
artemp
635c3728f2 wrap BreakIterator into std::unique_ptr to avoid leaking memory
(per ICU docs: "The caller owns the returned object and is responsible for deleting it.")
2014-09-08 12:01:22 +01:00
Dane Springmeyer
479b9e13d0 Merge pull request #2383 from MapQuest/min-dist-compatibility
3.x -> 2.3.x compatibility for minimum-distance
2014-09-06 22:50:13 -07:00
Jiri Drbalek
b7e7e29781 fix text rendering with line placement on corners 2014-09-05 10:46:46 +00:00
Jiri Drbalek
1af6f5db10 format 2014-09-05 10:46:46 +00:00
Dane Springmeyer
7d5d02e031 Merge branch 'master' of github.com:mapnik/mapnik into 3x-msvs 2014-09-04 09:22:53 -07:00
Jiri Drbalek
67d8f41a1b fix angle calculation
Conflicts:
	src/text/vertex_cache.cpp
2014-09-03 11:53:23 -07:00
Dane Springmeyer
603ea3811f Merge branch 'master' of github.com:mapnik/mapnik into 3x-msvs 2014-08-30 20:05:33 -07:00
Dane Springmeyer
a8017ddae6 fix std:: prefixing for cmath 2014-08-30 15:13:34 -07:00
Dane Springmeyer
3f6a5ae246 re-enable harfbuzz shaper 2014-08-29 00:05:34 -07:00
Dane Springmeyer
3c66054524 Merge branch 'master' of github.com:mapnik/mapnik into 3x-msvs 2014-08-28 17:23:59 -07:00
artemp
ecfaec1027 rename ctrans.hpp to view_transform.hpp 2014-08-28 10:29:04 +01:00
artemp
de22d5900c rename CoordTransform to view_transform to better reflect its purpose and be consistent 2014-08-28 10:17:15 +01:00
Dane Springmeyer
ee1c2aec47 use icu shaper to avoid needing to build harfbuzz right now - refs #2396 2014-08-26 19:24:06 -07:00
Dane Springmeyer
5789777199 fix issue 7 from #2396 2014-08-26 19:23:24 -07:00
Jordan Hollinger
688dfcabc9 Disallow use of minimum-distance with either repeat-distance or text-margin. 2014-08-22 08:52:45 -04:00
Jordan Hollinger
a28d3dd99c Handle text-margin, repeat-distance, and backward compatible minimum-distance in placement_finder. Update visual tests. 2014-08-21 20:49:00 -04:00
Jordan Hollinger
c8c792277d Add attribute text-margin in place of minimum-distance. 2014-08-20 19:43:36 -04:00
artemp
801848ac97 Merge branch 'jh-min-repeat-distance' of git://github.com/MapQuest/mapnik into MapQuest-jh-min-repeat-distance
Conflicts:
	include/mapnik/renderer_common/process_group_symbolizer.hpp
	src/text/text_properties.cpp
2014-08-18 14:05:14 +01:00
artemp
95cea92a4a convert all boost::variant to util::variant
apart from topojson (TODO)
2014-08-12 13:40:45 +01:00
Jordan Hollinger
726274c2c9 Merge branch 'master' of github.com:mapnik/mapnik into jh-min-repeat-distance 2014-08-11 09:48:04 -04:00
artemp
9bfb41a39f convert symbolizer properties to use util::variant 2014-08-11 13:24:53 +01:00
Dane Springmeyer
8f183ac63a Merge pull request #2345 from mapnik/emplace
use emplace/emplace_back over insert/push_back - refs #2336
2014-08-08 11:30:14 -07:00
artemp
0490b7887c text_symbolizer - ``geometry-transform`` support 2014-08-06 14:54:38 +01:00
artemp
9835057b0f Use vertex_converters in text placement 2014-08-06 13:10:24 +01:00
Dane Springmeyer
ce8aee1994 be explicit about copy needed to safely pass glyph_info into text_line - closes #2337 2014-08-05 17:03:30 -07:00
Dane Springmeyer
d27b45553a use emplace/emplace_back over insert/push_back - refs #2336 2014-08-05 15:19:37 -07:00
Dane Springmeyer
7a013e8151 switch glyph_info cache to an unordered_map (but no perf diff on osx) 2014-08-05 14:31:29 -07:00
Dane Springmeyer
2c9e089317 move harfbuzz_shaper inc + other iwyu fixups 2014-08-05 11:10:49 -07:00
Dane Springmeyer
99a46f6910 re-enable glyph_info caching - refs #2326, #2265, #2334 2014-08-04 19:50:16 -07:00
Dane Springmeyer
75248e3376 remove obsolete wrap-character option for text symbolizer - closes #2333 2014-08-04 12:52:46 -07:00
jhollinger2
0aad860a75 Add repeat-distance to text symbolizer properties.
Update collision detector to handle minimum-distance and repeat-distance seperately.
Update placement_finder to use repeat-distance.
Update group symbolizer to handle minimum-distance and repeat-distance.
2014-08-03 16:10:21 -04:00
Dane Springmeyer
b7ecd00c31 complete support for face-name/fontset-name in <Format> node - closes #1900 2014-07-30 14:16:32 -07:00
Dane Springmeyer
da457eba81 Merge branch 'master' of github.com:mapnik/mapnik 2014-07-30 08:42:03 -07:00
artemp
a6272fc16d fix symbolizer helper 2014-07-30 14:09:15 +01:00
Dane Springmeyer
8646ccc83f start passing fontsets down to format and layout - refs #1900 2014-07-29 18:29:20 -07:00
Dane Springmeyer
1fa31d5d20 remove force-odd-labels - refs #2120 2014-07-29 14:37:29 -07:00
artemp
08c3dd1f88 convert remaining text properties to expressions 2014-07-29 14:43:26 +01:00
artemp
97f87b1946 aggregate text symbolizer properties loading 2014-07-29 10:09:54 +01:00
artemp
9d91f3ca82 c++11 : cleanup crufty code 2014-07-29 10:09:21 +01:00
Dane Springmeyer
cdb075f75f make clipping off by default - closes #2146 2014-07-28 20:31:10 -07:00
Dane Springmeyer
8feedd94cd rename mapnik::boolean to mapnik::boolean_type - closes #1899 2014-07-28 19:46:49 -07:00
artemp
f338028802 fix init order 2014-07-28 17:50:44 +01:00
artemp
0cf6e47006 c++ char_properties -> evaluated_format_properties 2014-07-28 17:22:32 +01:00
artemp
72fd012221 c++ style 2014-07-28 15:16:59 +01:00
artemp
fb3d9cd7b6 convert horizontal/vertical/justify_alignment properties to expressions 2014-07-28 15:09:29 +01:00
artemp
c93b7fd632 cleanup 2014-07-28 12:20:14 +01:00
artemp
51cf60125e rename source files to reflect class name e.g layout -> text_layout 2014-07-28 12:10:34 +01:00
artemp
70059cc346 remove redundant ExpressionFormat node 2014-07-25 14:26:13 +01:00
artemp
37245fdde1 text properties : add framework to handle expressions in enumerations
+ make text-transform an expression
2014-07-25 14:19:41 +01:00
artemp
ff96af0480 tex/formatting/format fix add_expressions 2014-07-24 14:51:34 +01:00
artemp
b53572ab9c update text/formatting/format 2014-07-24 14:45:02 +01:00
artemp
a65239bf4b fix format_node::to_xml - attach format_properties to new_node 2014-07-24 12:13:34 +01:00
artemp
9c39d4ebd2 collect expressions from format_properties 2014-07-24 12:00:46 +01:00
artemp
1927a00ee0 text-properties : make fill and halo-fill expressions 2014-07-24 11:37:16 +01:00
artemp
8502019310 more format_properties expessions 2014-07-23 18:09:18 +01:00
artemp
e67f046a0e start re-factoring char_property (TODO: change name!) 2014-07-23 16:19:14 +01:00
Dane Springmeyer
64e70fb374 iwyu 2014-07-22 22:40:39 -07:00
Dane Springmeyer
28a05c96ef iwyu + faster compile 2014-07-22 19:36:39 -07:00
artemp
498bba7cf8 c++ : pass arg by const ref 2014-07-22 16:09:10 +01:00
artemp
bfc6c61d62 c++ - pass by const ref etc. 2014-07-21 14:46:54 +01:00
artemp
eacde4fe43 remove dummy_shaper 2014-07-21 12:41:31 +01:00
artemp
3c2dd839e4 serialize color properties 2014-07-21 12:28:27 +01:00
artemp
a9062fe112 restore serialization in text_properties and text/formattin/layout 2014-07-21 11:43:59 +01:00
artemp
ee58762bd9 add property_serializer impl 2014-07-21 11:19:26 +01:00
artemp
93d40323c5 orientation -> symbolizer_base::value_type 2014-07-18 15:48:56 +01:00
artemp
594470ee17 expressions in text/formatting/layout (work-in-progress) 2014-07-18 11:18:54 +01:00
artemp
efe0cf57b4 move set_property_from_xml into separate header for re-use 2014-07-18 11:14:28 +01:00
artemp
dcb60d5842 make add_expressions pure virtual in base class 2014-07-17 17:26:54 +01:00
artemp
18d1d0b8d5 fix path_move_dx 2014-07-17 17:26:20 +01:00
artemp
620aa62ab5 remove unused member variable 2014-07-17 17:01:03 +01:00
artemp
21986e5d4a refactor pass 2014-07-17 16:55:22 +01:00
artemp
79c1ac96b4 avoid captures in displacement_evaluator 2014-07-17 16:55:22 +01:00
artemp
8a01cce2f7 move displacement_evaluator_ initialisation
c++ style fixes
2014-07-16 16:34:42 +01:00
artemp
4166fcdd5d store displacement logic in std::function and delay calc until dx/dy are evaluated (layout) 2014-07-16 14:24:00 +01:00
artemp
562058aff6 remove printing to cerr 2014-07-15 16:35:11 +01:00
artemp
6c03a617a5 text displacement expr : more re-factoring and various fixes 2014-07-15 16:31:43 +01:00
artemp
1f17620e18 make methods pure virtual where appropriate
pass std::string by const ref (!)
c++ style
2014-07-15 11:15:26 +01:00
artemp
72bae0d6b8 text properties : displacement expr 2014-07-15 10:15:56 +01:00
artemp
f8fc104e7d more meaningful names 2014-07-14 16:55:57 +01:00
artemp
a66c1ddb06 convert to expressions: text-ratio, wrap-before, rotate-displacement 2014-07-14 16:51:11 +01:00
artemp
24e21cd387 set_property_from_xml helper function 2014-07-14 16:08:58 +01:00
artemp
73bda71710 text_properties : add expression_ptr's to the expression_set 2014-07-14 14:15:36 +01:00
artemp
e066aa924f text_properties : wrap-width 2014-07-11 15:44:44 +01:00
artemp
4afd98a34a text_properties : store 'orientation' parameter in symbolizer_base::value_type 2014-07-11 14:43:56 +01:00
artemp
61c54b3943 c++ style 2014-07-11 10:12:33 +01:00
artemp
c79e74116d cleanups 2014-07-11 09:51:34 +01:00
artemp
9e84b6101b store const* in glyph_t 2014-07-10 12:46:42 +01:00
artemp
203a2c55e6 fix missing make_unique on c++11 compilers 2014-07-10 12:45:51 +01:00
artemp
6cd7026aac pass text_placement_info by ref to placement_finder + formatting 2014-07-10 11:44:46 +01:00
artemp
8c6015ec60 first take at cleaning-up text placement code
(NOTE: get_text_info is temp disabled in python bindings)
2014-07-09 11:31:03 +01:00
artemp
fb1ec4cee0 remove dead code 2014-07-09 10:28:00 +01:00
artemp
04facd3542 mode range ``for loops`` 2014-07-08 17:02:22 +01:00
artemp
fe215a684e c++11 style : replace (almost) all typedef with type alias's 2014-07-07 18:23:15 +01:00
artemp
3c72aedba0 moving instead of copying mapnik::glyph_info 2014-06-18 14:15:12 +01:00
artemp
a5547b0473 Merge branch 'master' into unscaled-glyphs 2014-06-18 10:18:16 +01:00
Mike Morris
f797c320ff remove unecessary x_scale/y_scale multiplication 2014-06-17 15:57:11 -04:00
artemp
2c3173c1aa support halo-comp-op property (#2267) 2014-06-17 15:11:34 +01:00
artemp
8bd044ec13 + serialize halo-opacity 2014-06-17 14:24:31 +01:00
artemp
cbab56fa79 text symbilizer : add halo-opactity property (#2268) 2014-06-16 11:24:16 +01:00
artemp
7eb8e25110 better namings + cleanup 2014-06-16 11:00:19 +01:00
Mike Morris
a99905cff5 fix char_height zero 2014-06-12 19:10:18 -04:00
Mike Morris
38966674f1 line_height, ymin, ymax and advance all look right now 2014-06-12 16:16:02 -04:00
Mike Morris
2b843ec6a9 first attempt at unscaled glyph dimensions 2014-06-11 19:56:55 -04:00
artemp
4ef9cd8b45 use math functions from std:: 2014-05-28 10:59:01 +01:00
Dane Springmeyer
2c661ed3d5 support for render time variables 2014-05-11 13:08:24 -07:00
Dane Springmeyer
01d580d747 fix variable shadowing 2014-05-06 18:38:04 -07:00
Jordan Hollinger
533820c63f Merge branch 'expr-v2' of github.com:mapnik/mapnik into expr-v2-group-symbolizer
Conflicts:
	src/text/placement_finder.cpp
	tests/visual_tests/test.py
2014-02-25 14:21:51 -05:00
Dane Springmeyer
14c02e76a7 Merge pull request #2138 from MapQuest/jmh-text-layouts
Multiple text layouts in text symbolizer
2014-02-18 17:59:56 -08: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
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
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
1c30683f23 fix round tripping of max-char-angle-delta value 2014-02-10 19:37:40 -08:00
Jordan Hollinger
489168d529 Use make_shared to create shared_ptr. 2014-02-10 11:48:33 -05:00
Jordan Hollinger
d8eda4898e Merge branch 'expr-v2' of github.com:mapnik/mapnik into jmh-text-layouts
Conflicts:
	tests/visual_tests/test.py
2014-02-10 07:38:25 -05:00
Jordan Hollinger
658d7e8888 Replace tabs with spaces. Remove unused method prototype. 2014-02-07 18:11:54 -05:00
Jordan Hollinger
6aa25090c0 Parse and support placement of multiple text layouts within a single text symbolizer. 2014-01-30 06:31:47 -05:00
Jordan Hollinger
269b038147 Extract text layout related properties (e.g. displacement, alignments) into seperate object from other placement related text symbolizer properties. 2014-01-30 06:01:57 -05:00
Matt Amos
944f34b3df Fix unaligned multi-line labels.
This forces offset lines to be aligned to the closest point to
the anchor point on the original line, meaning that they are
aligned where the offset line and original run parallel, or nearly
so.
2014-01-28 20:33:42 +00:00
Dane Springmeyer
a98de6a348 Merge branch 'master' of github.com:mapnik/mapnik into expr-v2
Conflicts:
	include/mapnik/expression_grammar_impl.hpp
	src/expression.cpp
2014-01-27 13:56:36 -08:00
Dane Springmeyer
87e0ae8124 adapt build to use BOOST_SPIRIT_NO_PREDEFINED_TERMINALS 2014-01-26 14:00:58 -08:00
artemp
3628b5f237 halo-transform initial impl 2014-01-17 11:47:18 +00:00
Dane Springmeyer
e9ca9c8790 symbolizer-expressions replayed against latest master 2013-11-27 22:50:15 -08:00
artemp
eb3da7d32d c++11 : use nullptr instead of NULL 2013-11-27 15:54:16 +00: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