+ support smooth conv in polygon_pattern_symbolizer
This commit is contained in:
parent
6f7457f6b0
commit
45b0dd6482
4 changed files with 23 additions and 5 deletions
|
@ -50,11 +50,13 @@ struct MAPNIK_DECL polygon_pattern_symbolizer :
|
|||
double get_gamma() const;
|
||||
void set_gamma_method(gamma_method_e gamma_method);
|
||||
gamma_method_e get_gamma_method() const;
|
||||
|
||||
void set_smooth(double smooth);
|
||||
double smooth() const;
|
||||
private:
|
||||
pattern_alignment_e alignment_;
|
||||
double gamma_;
|
||||
gamma_method_e gamma_method_;
|
||||
double smooth_;
|
||||
};
|
||||
}
|
||||
|
||||
|
|
|
@ -135,14 +135,14 @@ void agg_renderer<T>::process(polygon_pattern_symbolizer const& sym,
|
|||
//metawriter_with_properties writer = sym.get_metawriter();
|
||||
|
||||
box2d<double> inflated_extent = query_extent_ * 1.1;
|
||||
typedef boost::mpl::vector<clip_poly_tag,transform_tag> conv_types;
|
||||
typedef boost::mpl::vector<clip_poly_tag,transform_tag,smooth_tag> conv_types;
|
||||
vertex_converter<box2d<double>,rasterizer,polygon_pattern_symbolizer, proj_transform, CoordTransform,conv_types>
|
||||
converter(inflated_extent,*ras_ptr,sym,t_,prj_trans);
|
||||
|
||||
//if (sym.clip())
|
||||
converter.set<clip_poly_tag>(); //optional clip (default: true)
|
||||
converter.set<transform_tag>(); //always transform
|
||||
//if (sym.smooth() > 0.0) converter.set<smooth_tag>(); // optional smooth converter
|
||||
if (sym.smooth() > 0.0) converter.set<smooth_tag>(); // optional smooth converter
|
||||
|
||||
BOOST_FOREACH( geometry_type & geom, feature->paths())
|
||||
{
|
||||
|
|
|
@ -1054,6 +1054,10 @@ void map_parser::parse_polygon_pattern_symbolizer(rule & rule,
|
|||
optional<gamma_method_e> gamma_method = sym.get_opt_attr<gamma_method_e>("gamma-method");
|
||||
if (gamma_method) symbol.set_gamma_method(*gamma_method);
|
||||
|
||||
// smooth value
|
||||
optional<double> smooth = sym.get_opt_attr<double>("smooth");
|
||||
if (smooth) symbol.set_smooth(*smooth);
|
||||
|
||||
parse_metawriter_in_symbolizer(symbol, sym);
|
||||
rule.append(symbol);
|
||||
}
|
||||
|
|
|
@ -39,13 +39,15 @@ polygon_pattern_symbolizer::polygon_pattern_symbolizer(path_expression_ptr file)
|
|||
: symbolizer_with_image(file), symbolizer_base(),
|
||||
alignment_(LOCAL_ALIGNMENT),
|
||||
gamma_(1.0),
|
||||
gamma_method_(GAMMA_POWER) {}
|
||||
gamma_method_(GAMMA_POWER),
|
||||
smooth_(0.0) {}
|
||||
|
||||
polygon_pattern_symbolizer::polygon_pattern_symbolizer(polygon_pattern_symbolizer const& rhs)
|
||||
: symbolizer_with_image(rhs), symbolizer_base(rhs),
|
||||
alignment_(rhs.alignment_),
|
||||
gamma_(rhs.gamma_),
|
||||
gamma_method_(rhs.gamma_method_) {}
|
||||
gamma_method_(rhs.gamma_method_),
|
||||
smooth_(rhs.smooth_) {}
|
||||
|
||||
pattern_alignment_e polygon_pattern_symbolizer::get_alignment() const
|
||||
{
|
||||
|
@ -77,5 +79,15 @@ gamma_method_e polygon_pattern_symbolizer::get_gamma_method() const
|
|||
return gamma_method_;
|
||||
}
|
||||
|
||||
void polygon_pattern_symbolizer::set_smooth(double smooth)
|
||||
{
|
||||
smooth_ = smooth;
|
||||
}
|
||||
|
||||
double polygon_pattern_symbolizer::smooth() const
|
||||
{
|
||||
return smooth_;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue