Skip to content

Commit b877557

Browse files
committed
Template get/set transform on mapnik:keys + shield_symbolizer properties [WIP] [skip ci]
1 parent c47176c commit b877557

3 files changed

Lines changed: 29 additions & 7 deletions

File tree

src/mapnik_shield_symbolizer.cpp

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,27 @@ void export_shield_symbolizer(py::module const& m)
4343
.def_property("file",
4444
&get_property<shield_symbolizer, mapnik::keys::file>,
4545
&set_path_property<shield_symbolizer, mapnik::keys::file>,
46-
"File path or mapnik.PathExpression")
46+
"Shield image file path or mapnik.PathExpression")
47+
.def_property("shield_dx",
48+
&get_property<shield_symbolizer, mapnik::keys::shield_dx>,
49+
&set_double_property<shield_symbolizer, mapnik::keys::shield_dx>,
50+
"shield_dx displacement")
51+
.def_property("shield_dy",
52+
&get_property<shield_symbolizer, mapnik::keys::shield_dy>,
53+
&set_double_property<shield_symbolizer, mapnik::keys::shield_dy>,
54+
"shield_dy displacement")
55+
.def_property("image_transform",
56+
&get_transform<mapnik::keys::image_transform>,
57+
&set_transform<mapnik::keys::image_transform>,
58+
"Shield image transform")
59+
.def_property("unlock_image",
60+
&get_property<shield_symbolizer, mapnik::keys::unlock_image>,
61+
&set_boolean_property<shield_symbolizer, mapnik::keys::unlock_image>,
62+
"Unlock shield image")
63+
.def_property("offset",
64+
&get_property<shield_symbolizer, mapnik::keys::offset>,
65+
&set_double_property<shield_symbolizer, mapnik::keys::offset>,
66+
"Shield offset")
4767
;
4868

4969
}

src/mapnik_symbolizer.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -210,8 +210,8 @@ void export_symbolizer(py::module const& m)
210210
&set_enum_property<symbolizer_base, mapnik::composite_mode_e, mapnik::keys::comp_op>,
211211
"Composite mode (comp-op)")
212212
.def_property("geometry_transform",
213-
&get_transform,
214-
&set_transform,
213+
&get_transform<mapnik::keys::geometry_transform>,
214+
&set_transform<mapnik::keys::geometry_transform>,
215215
"Geometry transform")
216216
;
217217

src/mapnik_symbolizer.hpp

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -277,17 +277,19 @@ void set(symbolizer_base & sym, Value const& val)
277277
mapnik::put<Value>(sym, Key, val);
278278
}
279279

280-
inline std::string get_transform(symbolizer_base const& sym)
280+
template <auto Key>
281+
std::string get_transform(symbolizer_base const& sym)
281282
{
282-
auto expr = mapnik::get<mapnik::transform_type>(sym, mapnik::keys::geometry_transform);
283+
auto expr = mapnik::get<mapnik::transform_type>(sym, Key);
283284
if (expr)
284285
return mapnik::transform_processor_type::to_string(*expr);
285286
return "";
286287
}
287288

288-
inline void set_transform(symbolizer_base & sym, std::string const& str)
289+
template <auto Key>
290+
void set_transform(symbolizer_base & sym, std::string const& str)
289291
{
290-
mapnik::put(sym, mapnik::keys::geometry_transform, mapnik::parse_transform(str));
292+
mapnik::put(sym, Key, mapnik::parse_transform(str));
291293
}
292294

293295
} // namespace python_mapnik

0 commit comments

Comments
 (0)