diff --git a/include/mapnik/feature_type_style.hpp b/include/mapnik/feature_type_style.hpp index 45707fbdc..a623849f4 100644 --- a/include/mapnik/feature_type_style.hpp +++ b/include/mapnik/feature_type_style.hpp @@ -72,17 +72,17 @@ public: feature_type_style& operator=(feature_type_style const& rhs); void add_rule(rule const& rule); - rules const& get_rules() const; rule_ptrs const& get_if_rules(double scale_denom); rule_ptrs const& get_else_rules(double scale_denom); rule_ptrs const& get_also_rules(double scale_denom); - rules& get_rules_nonconst(); - void set_filter_mode(filter_mode_e mode); + bool active(double scale_denom) const; + void set_filter_mode(filter_mode_e mode); filter_mode_e get_filter_mode() const; + // filters std::vector const& image_filters() const; std::vector & image_filters(); diff --git a/src/feature_type_style.cpp b/src/feature_type_style.cpp index 2dc820895..ff588af7f 100644 --- a/src/feature_type_style.cpp +++ b/src/feature_type_style.cpp @@ -22,6 +22,9 @@ #include +// boost +#include + namespace mapnik { @@ -89,6 +92,18 @@ rules& feature_type_style::get_rules_nonconst() return rules_; } +bool feature_type_style::active(double scale_denom) const +{ + BOOST_FOREACH(rule const& r, rules_) + { + if (r.active(scale_denom)) + { + return true; + } + } + return false; +} + void feature_type_style::set_filter_mode(filter_mode_e mode) { filter_mode_ = mode;