Dane Springmeyer
52e9531179
always return a value from evaluate_displacement
2014-10-14 21:35:20 -07:00
Jiri Drbalek
1252369292
add horizontal-alignment="adjust" with immutability of style objects in
...
mind
2014-10-13 12:16:48 +00:00
Dane Springmeyer
885a98f9c1
improve handling of format properties - refs #2516
...
- changes evaluated_format_properties_ptr to unique_ptr
- refactors group symbolizer helper to keep scope by
having each "thunk" own its helper
- glyph_info can now be noncopyable
- format node children now need an owner for their
evaluated_format_ptr so the enclosing parent layout
now allocates and holds pointers in a deque
- plus other noncopyable/move constructor fixes
2014-10-12 21:41:59 -07:00
Dane Springmeyer
a9f58c70b4
shuffle complexity into layout constructor
...
- should reduce mistakes in refactoring
- gives top level ownership of evaluated_format_properties_ptr to a layout node (#2516 )
- not sure ^^ if this actually keeps it in scope enough for rendering?
- moves data transformation functions off of text_symbolizer_properties
2014-10-12 16:07:26 -07:00
Dane Springmeyer
f3eba54078
noncopyable glyph_info - refs #2516
2014-10-12 14:24:57 -07:00
Dane Springmeyer
2000c1713d
in place construction of glyph_positions
2014-10-12 13:54:07 -07:00
Dane Springmeyer
4e7feaf747
move glyph_positions to new cpp
2014-10-12 13:46:35 -07:00
Dane Springmeyer
39ff0945ef
in place construction of pixel_positions
2014-10-12 13:38:18 -07:00
Dane Springmeyer
e4c895d4c1
zero copy usage of text_line
2014-10-12 13:23:03 -07:00
Dane Springmeyer
a648538bcd
add more code comments to placement_finder to help explain layouts
2014-10-12 12:18:59 -07:00
Dane Springmeyer
a8c8ea9ac4
reserve space for glyph_pos in renderer prepare_glyphs
2014-10-11 22:59:56 -07:00
Dane Springmeyer
3d142c2712
move evaluate_text_properties to standalone function - refs #2516
2014-10-11 22:48:00 -07:00
Dane Springmeyer
e6a66aaaba
finish work to pass font_feature_settings by value - refs #2516
2014-10-11 22:39:40 -07:00
Dane Springmeyer
a61364d263
revert halign support - refs #2426
2014-10-11 20:03:56 -07:00
Dane Springmeyer
477d6cc7ee
zero-copy text_item insertion
2014-10-11 19:12:15 -07:00
Dane Springmeyer
eabdf46118
drop unwise glyph_info caching - reverts 99a46f6910
- re-opens #2334
2014-10-11 17:32:41 -07:00
Dane Springmeyer
ba285aa9fa
remove unused (after 8bc7a56cda
) font_face::char_height_
2014-10-11 15:55:15 -07:00
Dane Springmeyer
e1eb9fa5b1
reduce pointer usage in text renderer - refs #2516
2014-10-10 18:01:24 -07:00
Dane Springmeyer
8bc7a56cda
use real max glyph height
...
- avoids breakage on fonts lacking an `X` glyph (#2506 )
- avoids needing to create and mutate a temporary glyph (#2516 )
- lots of minor visual changes - mostly improvements notably more correct collision boxes for lines with tall glyphs
2014-10-10 15:18:11 -07:00
artemp
74e872c48b
avoid storing evaluated text properties in text_symbolizer_properties (all style related strucures must be read-only)
...
make process(..) method const
2014-10-10 12:38:06 +01:00
Dane Springmeyer
c6ed108a72
start marking as much of the text structures as const as possible - refs #2516
2014-10-09 23:00:39 -07:00
Dane Springmeyer
2d88f736fe
remove uneeded access to format tree
2014-10-09 20:51:43 -07:00
Dane Springmeyer
c26c60e48e
remove set_old_style_expression
2014-10-09 20:51:43 -07:00
Dane Springmeyer
364af033a2
stash work on trying to convert font_feature_settings to be passed by value
2014-10-09 19:23:11 -07:00
Dane Springmeyer
536b23bfde
fix uneeded pointer indirection with glyph_info/glyph_position
2014-10-09 18:38:29 -07:00
Dane Springmeyer
aed5243302
avoid creating evaluated_format_properties on the stack
2014-10-09 18:24:39 -07:00
Dane Springmeyer
1fead3396b
cleanup unused clipped_ member of base_symbolizer_helper after 9835057b0f
2014-10-09 11:40:30 -07:00
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