further no terminal port
This commit is contained in:
parent
87e0ae8124
commit
63ea37b4c2
24 changed files with 186 additions and 150 deletions
|
@ -1717,7 +1717,8 @@ if not preconfigured:
|
|||
|
||||
# faster compile
|
||||
# http://www.boost.org/doc/libs/1_47_0/libs/spirit/doc/html/spirit/what_s_new/spirit_2_5.html#spirit.what_s_new.spirit_2_5.breaking_changes
|
||||
env.Append(CPPDEFINES = '-DBOOST_SPIRIT_NO_PREDEFINED_TERMINALS=1 -DBOOST_PHOENIX_NO_PREDEFINED_TERMINALS=1')
|
||||
env.Append(CPPDEFINES = '-DBOOST_SPIRIT_NO_PREDEFINED_TERMINALS=1')
|
||||
env.Append(CPPDEFINES = '-DBOOST_PHOENIX_NO_PREDEFINED_TERMINALS=1')
|
||||
# c++11 support / https://github.com/mapnik/mapnik/issues/1683
|
||||
# - upgrade to PHOENIX_V3 since that is needed for c++11 compile
|
||||
env.Append(CPPDEFINES = '-DBOOST_SPIRIT_USE_PHOENIX_V3=1')
|
||||
|
|
|
@ -440,13 +440,13 @@ struct css_color_grammar : qi::grammar<Iterator, css(), ascii_space_type>
|
|||
: css_color_grammar::base_type(css_color)
|
||||
|
||||
{
|
||||
using qi::lit;
|
||||
using qi::_val;
|
||||
using qi::double_;
|
||||
using qi::_1;
|
||||
using qi::_a;
|
||||
using qi::_b;
|
||||
using qi::_c;
|
||||
qi::lit_type lit;
|
||||
qi::_val_type _val;
|
||||
qi::double_type double_;
|
||||
qi::_1_type _1;
|
||||
qi::_a_type _a;
|
||||
qi::_b_type _b;
|
||||
qi::_c_type _c;
|
||||
using ascii::no_case;
|
||||
using phoenix::at_c;
|
||||
|
||||
|
|
|
@ -38,14 +38,14 @@ css_color_grammar<Iterator>::css_color_grammar()
|
|||
: css_color_grammar::base_type(css_color)
|
||||
|
||||
{
|
||||
using qi::lit;
|
||||
using qi::_val;
|
||||
using qi::double_;
|
||||
using qi::_1;
|
||||
using qi::_a;
|
||||
using qi::_b;
|
||||
using qi::_c;
|
||||
using ascii::no_case;
|
||||
qi::lit_type lit;
|
||||
qi::_val_type _val;
|
||||
qi::double_type double_;
|
||||
qi::_1_type _1;
|
||||
qi::_a_type _a;
|
||||
qi::_b_type _b;
|
||||
qi::_c_type _c;
|
||||
ascii::no_case_type no_case;
|
||||
using phoenix::at_c;
|
||||
|
||||
css_color %= rgba_color
|
||||
|
|
|
@ -72,21 +72,20 @@ expression_grammar<Iterator>::expression_grammar(mapnik::transcoder const& tr)
|
|||
regex_replace_(regex_replace_impl(tr))
|
||||
{
|
||||
using boost::phoenix::construct;
|
||||
using qi::_1;
|
||||
using qi::_a;
|
||||
using qi::_b;
|
||||
using qi::_r1;
|
||||
qi::_1_type _1;
|
||||
qi::_a_type _a;
|
||||
qi::_b_type _b;
|
||||
qi::_r1_type _r1;
|
||||
#if BOOST_VERSION > 104200
|
||||
using qi::no_skip;
|
||||
qi::no_skip_type no_skip;
|
||||
#endif
|
||||
using qi::lexeme;
|
||||
using qi::_val;
|
||||
using qi::lit;
|
||||
using qi::double_;
|
||||
using qi::hex;
|
||||
using qi::omit;
|
||||
using standard_wide::char_;
|
||||
using standard_wide::no_case;
|
||||
qi::_val_type _val;
|
||||
qi::lit_type lit;
|
||||
qi::double_type double_;
|
||||
qi::hex_type hex;
|
||||
qi::omit_type omit;
|
||||
standard_wide::char_type char_;
|
||||
standard_wide::no_case_type no_case;
|
||||
|
||||
expr = logical_expr.alias();
|
||||
|
||||
|
|
|
@ -65,12 +65,14 @@ struct feature_collection_grammar :
|
|||
ctx_(ctx),
|
||||
generate_id_(1)
|
||||
{
|
||||
using qi::lit;
|
||||
using qi::eps;
|
||||
using qi::_a;
|
||||
using qi::_b;
|
||||
using qi::_val;
|
||||
using qi::_r1;
|
||||
qi::lit_type lit;
|
||||
qi::eps_type eps;
|
||||
qi::_4_type _4;
|
||||
qi::_3_type _2;
|
||||
qi::_2_type _3;
|
||||
qi::_a_type _a;
|
||||
qi::_val_type _val;
|
||||
qi::_r1_type _r1;
|
||||
using phoenix::push_back;
|
||||
using phoenix::construct;
|
||||
using phoenix::new_;
|
||||
|
@ -114,9 +116,9 @@ struct feature_collection_grammar :
|
|||
feature_collection
|
||||
, std::clog
|
||||
<< phoenix::val("Error parsing GeoJSON ")
|
||||
<< qi::_4
|
||||
<< _4
|
||||
<< phoenix::val(" here: \"")
|
||||
<< construct<std::string>(qi::_3, qi::_2)
|
||||
<< construct<std::string>(_3, _2)
|
||||
<< phoenix::val('\"')
|
||||
<< std::endl
|
||||
);
|
||||
|
|
|
@ -147,8 +147,11 @@ struct escaped_string
|
|||
escaped_string()
|
||||
: escaped_string::base_type(esc_str)
|
||||
{
|
||||
using boost::spirit::karma::maxwidth;
|
||||
using boost::spirit::karma::right_align;
|
||||
karma::lit_type lit;
|
||||
karma::_r1_type _r1;
|
||||
karma::hex_type hex;
|
||||
karma::right_align_type right_align;
|
||||
karma::print_type kprint;
|
||||
|
||||
esc_char.add
|
||||
('"', "\\\"")
|
||||
|
@ -160,11 +163,11 @@ struct escaped_string
|
|||
('\t', "\\t")
|
||||
;
|
||||
|
||||
esc_str = karma::lit(karma::_r1)
|
||||
esc_str = lit(_r1)
|
||||
<< *(esc_char
|
||||
| karma::print
|
||||
| "\\u" << right_align(4,karma::lit('0'))[karma::hex])
|
||||
<< karma::lit(karma::_r1)
|
||||
| kprint
|
||||
| "\\u" << right_align(4,lit('0'))[hex])
|
||||
<< lit(_r1)
|
||||
;
|
||||
}
|
||||
|
||||
|
@ -185,15 +188,15 @@ struct feature_generator_grammar:
|
|||
, quote_("\"")
|
||||
|
||||
{
|
||||
using boost::spirit::karma::lit;
|
||||
using boost::spirit::karma::uint_;
|
||||
using boost::spirit::karma::bool_;
|
||||
using boost::spirit::karma::double_;
|
||||
using boost::spirit::karma::_val;
|
||||
using boost::spirit::karma::_1;
|
||||
using boost::spirit::karma::_r1;
|
||||
using boost::spirit::karma::string;
|
||||
using boost::spirit::karma::eps;
|
||||
boost::spirit::karma::lit_type lit;
|
||||
boost::spirit::karma::uint_type uint_;
|
||||
boost::spirit::karma::bool_type bool_;
|
||||
boost::spirit::karma::double_type double_;
|
||||
boost::spirit::karma::_val_type _val;
|
||||
boost::spirit::karma::_1_type _1;
|
||||
boost::spirit::karma::_r1_type _r1;
|
||||
boost::spirit::karma::string_type kstring;
|
||||
boost::spirit::karma::eps_type eps;
|
||||
|
||||
feature = lit("{\"type\":\"Feature\",\"id\":")
|
||||
<< uint_[_1 = id_(_val)]
|
||||
|
@ -208,7 +211,7 @@ struct feature_generator_grammar:
|
|||
;
|
||||
|
||||
pair = lit('"')
|
||||
<< string[_1 = phoenix::at_c<0>(_val)] << lit('"')
|
||||
<< kstring[_1 = phoenix::at_c<0>(_val)] << lit('"')
|
||||
<< lit(':')
|
||||
<< value(phoenix::at_c<1>(_val))
|
||||
;
|
||||
|
@ -216,7 +219,7 @@ struct feature_generator_grammar:
|
|||
value = (value_null_| bool_ | int__ | double_ | ustring)[_1 = value_base_(_r1)]
|
||||
;
|
||||
|
||||
value_null_ = string[_1 = "null"]
|
||||
value_null_ = kstring[_1 = "null"]
|
||||
;
|
||||
|
||||
ustring = escaped_string_(quote_.c_str())[_1 = utf8_(_val)]
|
||||
|
|
|
@ -231,14 +231,15 @@ struct geometry_generator_grammar :
|
|||
geometry_generator_grammar()
|
||||
: geometry_generator_grammar::base_type(coordinates)
|
||||
{
|
||||
using boost::spirit::karma::uint_;
|
||||
using boost::spirit::bool_;
|
||||
using boost::spirit::karma::_val;
|
||||
using boost::spirit::karma::_1;
|
||||
using boost::spirit::karma::lit;
|
||||
using boost::spirit::karma::_a;
|
||||
using boost::spirit::karma::_r1;
|
||||
using boost::spirit::karma::eps;
|
||||
boost::spirit::karma::uint_type uint_;
|
||||
boost::spirit::bool_type bool_;
|
||||
boost::spirit::karma::_val_type _val;
|
||||
boost::spirit::karma::_1_type _1;
|
||||
boost::spirit::karma::lit_type lit;
|
||||
boost::spirit::karma::_a_type _a;
|
||||
boost::spirit::karma::_r1_type _r1;
|
||||
boost::spirit::karma::eps_type eps;
|
||||
boost::spirit::karma::string_type kstring;
|
||||
|
||||
coordinates = point | linestring | polygon
|
||||
;
|
||||
|
@ -266,7 +267,7 @@ struct geometry_generator_grammar :
|
|||
;
|
||||
|
||||
polygon_coord %= ( &uint_(mapnik::SEG_MOVETO) << eps[_r1 += 1]
|
||||
<< karma::string[ if_ (_r1 > 1) [_1 = "],["]
|
||||
<< kstring[ if_ (_r1 > 1) [_1 = "],["]
|
||||
.else_[_1 = '[' ]]
|
||||
|
|
||||
&uint_(mapnik::SEG_LINETO)
|
||||
|
@ -308,13 +309,14 @@ struct multi_geometry_generator_grammar :
|
|||
multi_geometry_generator_grammar()
|
||||
: multi_geometry_generator_grammar::base_type(start)
|
||||
{
|
||||
using boost::spirit::karma::lit;
|
||||
using boost::spirit::karma::eps;
|
||||
using boost::spirit::karma::_val;
|
||||
using boost::spirit::karma::_1;
|
||||
using boost::spirit::karma::_a;
|
||||
using boost::spirit::karma::_r1;
|
||||
using boost::spirit::bool_;
|
||||
boost::spirit::karma::uint_type uint_;
|
||||
boost::spirit::bool_type bool_;
|
||||
boost::spirit::karma::_val_type _val;
|
||||
boost::spirit::karma::_1_type _1;
|
||||
boost::spirit::karma::lit_type lit;
|
||||
boost::spirit::karma::_a_type _a;
|
||||
boost::spirit::karma::eps_type eps;
|
||||
boost::spirit::karma::string_type kstring;
|
||||
|
||||
geometry_types.add
|
||||
(mapnik::geometry_type::types::Point,"\"Point\"")
|
||||
|
@ -338,9 +340,9 @@ struct multi_geometry_generator_grammar :
|
|||
geometry = ( &bool_(true)[_1 = not_empty_(_val)] << lit("{\"type\":")
|
||||
<< geometry_types[_1 = phoenix::at_c<0>(_a)][_a = multi_type_(_val)]
|
||||
<< lit(",\"coordinates\":")
|
||||
<< karma::string[ phoenix::if_ (phoenix::at_c<0>(_a) > 3) [_1 = '['].else_[_1 = ""]]
|
||||
<< kstring[ phoenix::if_ (phoenix::at_c<0>(_a) > 3) [_1 = '['].else_[_1 = ""]]
|
||||
<< coordinates
|
||||
<< karma::string[ phoenix::if_ (phoenix::at_c<0>(_a) > 3) [_1 = ']'].else_[_1 = ""]]
|
||||
<< kstring[ phoenix::if_ (phoenix::at_c<0>(_a) > 3) [_1 = ']'].else_[_1 = ""]]
|
||||
<< lit('}')) | lit("null")
|
||||
;
|
||||
|
||||
|
|
|
@ -34,18 +34,18 @@ template <typename Iterator>
|
|||
topojson_grammar<Iterator>::topojson_grammar()
|
||||
: topojson_grammar::base_type(topology, "topojson")
|
||||
{
|
||||
using qi::lit;
|
||||
using qi::double_;
|
||||
using qi::int_;
|
||||
using qi::no_skip;
|
||||
using qi::omit;
|
||||
using qi::_val;
|
||||
using qi::_1;
|
||||
using qi::_2;
|
||||
using qi::_3;
|
||||
using qi::_4;
|
||||
using qi::fail;
|
||||
using qi::on_error;
|
||||
qi::lit_type lit;
|
||||
qi::double_type double_;
|
||||
qi::int__type int_;
|
||||
qi::no_skip_type no_skip;
|
||||
qi::omit_type omit;
|
||||
qi::_val_type _val;
|
||||
qi::_1_type _1;
|
||||
qi::_2_type _2;
|
||||
qi::_3_type _3;
|
||||
qi::_4_type _4;
|
||||
qi::fail_type fail;
|
||||
qi::on_error_type on_error;
|
||||
|
||||
using standard_wide::char_;
|
||||
using phoenix::construct;
|
||||
|
|
|
@ -64,6 +64,7 @@ namespace mapnik { namespace svg {
|
|||
template <typename PathType>
|
||||
void generate_path(PathType const& path, path_output_attributes const& path_attributes)
|
||||
{
|
||||
karma::lit_type lit;
|
||||
util::svg_generator<OutputIterator,PathType> svg_path_grammer;
|
||||
karma::generate(output_iterator_, lit("<path ") << svg_path_grammer, path);
|
||||
path_attributes_grammar attributes_grammar;
|
||||
|
|
|
@ -100,18 +100,19 @@ struct svg_path_attributes_grammar : karma::grammar<OutputIterator, mapnik::svg:
|
|||
explicit svg_path_attributes_grammar()
|
||||
: svg_path_attributes_grammar::base_type(svg_path_attributes)
|
||||
{
|
||||
using karma::double_;
|
||||
using karma::string;
|
||||
using repository::confix;
|
||||
karma::lit_type lit;
|
||||
karma::double_type double_;
|
||||
karma::string_type kstring;
|
||||
repository::confix_type confix;
|
||||
|
||||
svg_path_attributes =
|
||||
lit("fill=") << confix('"', '"')[string]
|
||||
lit("fill=") << confix('"', '"')[kstring]
|
||||
<< lit(" fill-opacity=") << confix('"', '"')[double_]
|
||||
<< lit(" stroke=") << confix('"', '"')[string]
|
||||
<< lit(" stroke=") << confix('"', '"')[kstring]
|
||||
<< lit(" stroke-opacity=") << confix('"', '"')[double_]
|
||||
<< lit(" stroke-width=") << confix('"', '"')[double_ << lit("px")]
|
||||
<< lit(" stroke-linecap=") << confix('"', '"')[string]
|
||||
<< lit(" stroke-linejoin=") << confix('"', '"')[string]
|
||||
<< lit(" stroke-linecap=") << confix('"', '"')[kstring]
|
||||
<< lit(" stroke-linejoin=") << confix('"', '"')[kstring]
|
||||
<< lit(" stroke-dashoffset=") << confix('"', '"')[double_ << lit("px")];
|
||||
}
|
||||
|
||||
|
@ -124,8 +125,9 @@ struct svg_path_dash_array_grammar : karma::grammar<OutputIterator, mapnik::dash
|
|||
explicit svg_path_dash_array_grammar()
|
||||
: svg_path_dash_array_grammar::base_type(svg_path_dash_array)
|
||||
{
|
||||
using karma::double_;
|
||||
using repository::confix;
|
||||
karma::double_type double_;
|
||||
karma::lit_type lit;
|
||||
repository::confix_type confix;
|
||||
|
||||
svg_path_dash_array =
|
||||
lit("stroke-dasharray=")
|
||||
|
@ -142,16 +144,17 @@ struct svg_rect_attributes_grammar : karma::grammar<OutputIterator, mapnik::svg:
|
|||
explicit svg_rect_attributes_grammar()
|
||||
: svg_rect_attributes_grammar::base_type(svg_rect_attributes)
|
||||
{
|
||||
using karma::int_;
|
||||
using karma::string;
|
||||
using repository::confix;
|
||||
karma::lit_type lit;
|
||||
karma::int_type int_;
|
||||
karma::string_type kstring;
|
||||
repository::confix_type confix;
|
||||
|
||||
svg_rect_attributes =
|
||||
lit("x=") << confix('"', '"')[int_]
|
||||
<< lit(" y=") << confix('"', '"')[int_]
|
||||
<< lit(" width=") << confix('"', '"')[int_ << lit("px")]
|
||||
<< lit(" height=") << confix('"', '"')[int_ << lit("px")]
|
||||
<< lit(" fill=") << confix('"', '"')[string];
|
||||
<< lit(" fill=") << confix('"', '"')[kstring];
|
||||
}
|
||||
|
||||
karma::rule<OutputIterator, mapnik::svg::rect_output_attributes()> svg_rect_attributes;
|
||||
|
@ -163,16 +166,17 @@ struct svg_root_attributes_grammar : karma::grammar<OutputIterator, mapnik::svg:
|
|||
explicit svg_root_attributes_grammar()
|
||||
: svg_root_attributes_grammar::base_type(svg_root_attributes)
|
||||
{
|
||||
using karma::int_;
|
||||
using karma::string;
|
||||
using karma::double_;
|
||||
using repository::confix;
|
||||
karma::lit_type lit;
|
||||
karma::int_type int_;
|
||||
karma::string_type kstring;
|
||||
karma::double_type double_;
|
||||
repository::confix_type confix;
|
||||
|
||||
svg_root_attributes =
|
||||
lit("width=") << confix('"', '"')[int_ << lit("px")]
|
||||
<< lit(" height=") << confix('"', '"')[int_ << lit("px")]
|
||||
<< " version=" << confix('"', '"')[double_]
|
||||
<< " xmlns=" << confix('"', '"')[string]
|
||||
<< " xmlns=" << confix('"', '"')[kstring]
|
||||
<< lit(" xmlns:inkscape=\"http://www.inkscape.org/namespaces/inkscape\"");
|
||||
}
|
||||
|
||||
|
|
|
@ -24,6 +24,7 @@
|
|||
#define MAPNIK_SVG_RENDERER_HPP
|
||||
|
||||
// mapnik
|
||||
#undef BOOST_SPIRIT_NO_PREDEFINED_TERMINALS
|
||||
#include <mapnik/config.hpp>
|
||||
#include <mapnik/feature_style_processor.hpp>
|
||||
#include <mapnik/font_engine_freetype.hpp>
|
||||
|
|
|
@ -53,16 +53,16 @@ namespace mapnik { namespace svg {
|
|||
arc_to_(arc_to<PathType>(path)),
|
||||
close_(close<PathType>(path))
|
||||
{
|
||||
using qi::_1;
|
||||
using qi::_2;
|
||||
using qi::_3;
|
||||
using qi::_4;
|
||||
using qi::_5;
|
||||
using qi::_a;
|
||||
using qi::lit;
|
||||
using qi::double_;
|
||||
using qi::int_;
|
||||
using qi::no_case;
|
||||
qi::_1_type _1;
|
||||
qi::_2_type _2;
|
||||
qi::_3_type _3;
|
||||
qi::_4_type _4;
|
||||
qi::_5_type _5;
|
||||
qi::_a_type _a;
|
||||
qi::lit_type lit;
|
||||
qi::double_type double_;
|
||||
qi::int_type int_;
|
||||
qi::no_case_type no_case;
|
||||
|
||||
start = +cmd;
|
||||
cmd = M >> *drawto_cmd;
|
||||
|
|
|
@ -45,9 +45,9 @@ namespace mapnik { namespace svg {
|
|||
line_to_(line_to<PathType>(path)),
|
||||
close_(close<PathType>(path))
|
||||
{
|
||||
using qi::_1;
|
||||
using qi::_2;
|
||||
using qi::double_;
|
||||
qi::_1_type _1;
|
||||
qi::lit_type lit;
|
||||
qi::double_type double_;
|
||||
|
||||
start = coord[move_to_(_1,false)] // move_to
|
||||
>> *(-lit(',') >> coord [ line_to_(_1,false) ] ); // *line_to
|
||||
|
|
|
@ -207,18 +207,18 @@ namespace mapnik { namespace svg {
|
|||
scale_action(process_scale<TransformType>(tr)),
|
||||
skew_action(process_skew<TransformType>(tr))
|
||||
{
|
||||
using qi::_1;
|
||||
using qi::_2;
|
||||
using qi::_3;
|
||||
using qi::_4;
|
||||
using qi::_5;
|
||||
using qi::_6;
|
||||
using qi::_a;
|
||||
using qi::_b;
|
||||
using qi::_c;
|
||||
using qi::_val;
|
||||
using qi::double_;
|
||||
using qi::no_case;
|
||||
qi::_1_type _1;
|
||||
qi::_2_type _2;
|
||||
qi::_3_type _3;
|
||||
qi::_4_type _4;
|
||||
qi::_5_type _5;
|
||||
qi::_6_type _6;
|
||||
qi::_a_type _a;
|
||||
qi::_b_type _b;
|
||||
qi::_c_type _c;
|
||||
qi::lit_type lit;
|
||||
qi::double_type double_;
|
||||
qi::no_case_type no_case;
|
||||
|
||||
start = +transform_ ;
|
||||
|
||||
|
|
|
@ -33,22 +33,22 @@ namespace mapnik { namespace util {
|
|||
template <typename Iterator>
|
||||
bool parse_dasharray(Iterator first, Iterator last, std::vector<double>& dasharray)
|
||||
{
|
||||
using qi::double_;
|
||||
using qi::phrase_parse;
|
||||
using qi::_1;
|
||||
using qi::lit;
|
||||
using qi::char_;
|
||||
qi::double_type double_;
|
||||
qi::_1_type _1;
|
||||
qi::lit_type lit;
|
||||
qi::char_type char_;
|
||||
qi::ascii::space_type space;
|
||||
#if BOOST_VERSION > 104200
|
||||
using qi::no_skip;
|
||||
qi::no_skip_type no_skip;
|
||||
#else
|
||||
using qi::lexeme;
|
||||
qi::lexeme_type lexeme;
|
||||
#endif
|
||||
using phoenix::push_back;
|
||||
// SVG
|
||||
// dasharray ::= (length | percentage) (comma-wsp dasharray)?
|
||||
// no support for 'percentage' as viewport is unknown at load_map
|
||||
//
|
||||
bool r = phrase_parse(first, last,
|
||||
bool r = qi::phrase_parse(first, last,
|
||||
(double_[push_back(phoenix::ref(dasharray), _1)] %
|
||||
#if BOOST_VERSION > 104200
|
||||
no_skip[char_(", ")]
|
||||
|
@ -56,7 +56,7 @@ bool parse_dasharray(Iterator first, Iterator last, std::vector<double>& dasharr
|
|||
lexeme[char_(", ")]
|
||||
#endif
|
||||
| lit("none")),
|
||||
qi::ascii::space);
|
||||
space);
|
||||
if (first != last)
|
||||
{
|
||||
return false;
|
||||
|
|
|
@ -166,11 +166,12 @@ namespace mapnik { namespace util {
|
|||
svg_generator()
|
||||
: svg_generator::base_type(svg)
|
||||
{
|
||||
using boost::spirit::karma::uint_;
|
||||
using boost::spirit::karma::_val;
|
||||
using boost::spirit::karma::_1;
|
||||
using boost::spirit::karma::lit;
|
||||
using boost::spirit::karma::_a;
|
||||
boost::spirit::karma::uint_type uint_;
|
||||
boost::spirit::karma::_val_type _val;
|
||||
boost::spirit::karma::_1_type _1;
|
||||
boost::spirit::karma::lit_type lit;
|
||||
boost::spirit::karma::_a_type _a;
|
||||
boost::spirit::karma::string_type kstring;
|
||||
|
||||
svg = point | linestring | polygon
|
||||
;
|
||||
|
@ -194,7 +195,7 @@ namespace mapnik { namespace util {
|
|||
;
|
||||
|
||||
svg_path %= ((&uint_(mapnik::SEG_MOVETO) << lit('M')
|
||||
| &uint_(mapnik::SEG_LINETO) [_a +=1] << karma::string [if_(_a == 1) [_1 = "L" ].else_[_1 =""]])
|
||||
| &uint_(mapnik::SEG_LINETO) [_a +=1] << kstring [if_(_a == 1) [_1 = "L" ].else_[_1 =""]])
|
||||
<< lit(' ') << coordinate << lit(' ') << coordinate) % lit(' ')
|
||||
;
|
||||
|
||||
|
|
|
@ -99,9 +99,17 @@ namespace mapnik { namespace wkt {
|
|||
wkt_grammar()
|
||||
: wkt_grammar::base_type(geometry_tagged_text)
|
||||
{
|
||||
using qi::no_case;
|
||||
using qi::_1;
|
||||
using qi::_2;
|
||||
qi::_r1_type _r1;
|
||||
qi::_r2_type _r2;
|
||||
qi::_pass_type _pass;
|
||||
qi::eps_type eps;
|
||||
qi::_val_type _val;
|
||||
qi::lit_type lit;
|
||||
qi::no_case_type no_case;
|
||||
qi::double_type double_;
|
||||
qi::_1_type _1;
|
||||
qi::_2_type _2;
|
||||
qi::_a_type _a;
|
||||
using boost::phoenix::push_back;
|
||||
|
||||
geometry_tagged_text = point_tagged_text
|
||||
|
@ -223,9 +231,8 @@ struct wkt_collection_grammar : qi::grammar<Iterator, boost::ptr_vector<mapnik::
|
|||
wkt_collection_grammar()
|
||||
: wkt_collection_grammar::base_type(start)
|
||||
{
|
||||
using qi::_1;
|
||||
using qi::_val;
|
||||
using qi::no_case;
|
||||
qi::lit_type lit;
|
||||
qi::no_case_type no_case;
|
||||
using boost::phoenix::push_back;
|
||||
start = wkt | no_case[lit("GEOMETRYCOLLECTION")]
|
||||
>> (lit("(") >> wkt % lit(",") >> lit(")"));
|
||||
|
|
|
@ -184,16 +184,24 @@ void dbf_file::add_attribute(int col, mapnik::transcoder const& tr, mapnik::feat
|
|||
double val = 0.0;
|
||||
const char *itr = record_+fields_[col].offset_;
|
||||
const char *end = itr + fields_[col].length_;
|
||||
if (qi::phrase_parse(itr,end,double_,ascii::space,val))
|
||||
ascii::space_type space;
|
||||
qi::double_type double_;
|
||||
if (qi::phrase_parse(itr,end,double_,space,val))
|
||||
{
|
||||
f.put(name,val);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
mapnik::value_integer val = 0;
|
||||
const char *itr = record_+fields_[col].offset_;
|
||||
const char *end = itr + fields_[col].length_;
|
||||
if (qi::phrase_parse(itr,end,int_,ascii::space,val))
|
||||
ascii::space_type space;
|
||||
qi::int_type int_;
|
||||
if (qi::phrase_parse(itr,end,int_,space,val))
|
||||
{
|
||||
f.put(name,val);
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
|
|
@ -1,3 +1,5 @@
|
|||
#undef BOOST_SPIRIT_NO_PREDEFINED_TERMINALS
|
||||
|
||||
#define BOOST_TEST_MODULE background_color_test
|
||||
|
||||
/*
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
#undef BOOST_SPIRIT_NO_PREDEFINED_TERMINALS
|
||||
#define BOOST_TEST_MODULE combined_tests
|
||||
|
||||
// boost.test
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
#undef BOOST_SPIRIT_NO_PREDEFINED_TERMINALS
|
||||
#define BOOST_TEST_MODULE compile_test
|
||||
|
||||
// boost.test
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
#undef BOOST_SPIRIT_NO_PREDEFINED_TERMINALS
|
||||
#define BOOST_TEST_MODULE file_output_test
|
||||
|
||||
/*
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
#undef BOOST_SPIRIT_NO_PREDEFINED_TERMINALS
|
||||
#define BOOST_TEST_MODULE path_element_tests
|
||||
|
||||
// boost.test
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
#undef BOOST_SPIRIT_NO_PREDEFINED_TERMINALS
|
||||
#define BOOST_TEST_MODULE root_element_test
|
||||
|
||||
/*
|
||||
|
|
Loading…
Reference in a new issue