void operator () (polygon_pattern_symbolizer const& sym)
 {
     path_expression_ptr const& filename_expr = sym.get_filename();
     if (filename_expr)
     {
         path_processor_type::collect_attributes(*filename_expr,names_);
     }
     collect_transform(sym.get_image_transform());
     collect_transform(sym.get_transform());
 }
 void operator () (markers_symbolizer const& sym)
 {
     expression_ptr const& height_expr = sym.get_height();
     if (height_expr)
     {
         boost::apply_visitor(f_attr,*height_expr);
     }
     expression_ptr const& width_expr = sym.get_width();
     if (width_expr)
     {
         boost::apply_visitor(f_attr,*width_expr);
     }
     collect_transform(sym.get_image_transform());
     collect_transform(sym.get_transform());
 }
 void operator () (building_symbolizer const& sym)
 {
     expression_ptr const& height_expr = sym.height();
     if (height_expr)
     {
         boost::apply_visitor(f_attr,*height_expr);
     }
     collect_transform(sym.get_transform());
 }
    void operator () (shield_symbolizer const& sym)
    {
        expression_set::const_iterator it;
        expression_set expressions;
        sym.get_placement_options()->add_expressions(expressions);
        for (it=expressions.begin(); it != expressions.end(); it++)
        {
            if (*it) boost::apply_visitor(f_attr, **it);
        }

        path_expression_ptr const& filename_expr = sym.get_filename();
        if (filename_expr)
        {
            path_processor_type::collect_attributes(*filename_expr,names_);
        }
        collect_transform(sym.get_image_transform());
        collect_transform(sym.get_transform());
    }
 void operator () (text_symbolizer const& sym)
 {
     expression_set::const_iterator it;
     expression_set expressions;
     sym.get_placement_options()->add_expressions(expressions);
     for (it=expressions.begin(); it != expressions.end(); it++)
     {
         if (*it) boost::apply_visitor(f_attr, **it);
     }
     collect_transform(sym.get_transform());
 }
 void operator () (markers_symbolizer const& sym)
 {
     expression_ptr const& height_expr = sym.get_height();
     if (height_expr)
     {
         boost::apply_visitor(f_attr,*height_expr);
     }
     expression_ptr const& width_expr = sym.get_width();
     if (width_expr)
     {
         boost::apply_visitor(f_attr,*width_expr);
     }
     path_expression_ptr const& filename_expr = sym.get_filename();
     if (filename_expr)
     {
         path_processor_type::collect_attributes(*filename_expr,names_);
     }
     collect_transform(sym.get_image_transform());
     collect_transform(sym.get_transform());
 }
 void operator () (polygon_symbolizer const& sym)
 {
     collect_transform(sym.get_transform());
 }