use c++11 in vertex_converters (work-in-progress)
This commit is contained in:
parent
60a55cb48b
commit
130e621ace
18 changed files with 124 additions and 108 deletions
|
@ -1778,7 +1778,7 @@ if not preconfigured:
|
|||
|
||||
# Common flags for g++/clang++ CXX compiler.
|
||||
# TODO: clean up code more to make -Wsign-conversion -Wconversion -Wshadow viable
|
||||
common_cxx_flags = '-Wall -Wsign-compare %s %s -ftemplate-depth-300 ' % (env['WARNING_CXXFLAGS'], pthread)
|
||||
common_cxx_flags = '-Wall -Wsign-compare %s %s -ftemplate-depth-500 ' % (env['WARNING_CXXFLAGS'], pthread)
|
||||
|
||||
if env['DEBUG']:
|
||||
env.Append(CXXFLAGS = common_cxx_flags + '-O0 -fno-inline')
|
||||
|
|
|
@ -50,12 +50,6 @@ void render_markers_symbolizer(markers_symbolizer const& sym,
|
|||
using renderer_context_type = T2;
|
||||
|
||||
using svg_attribute_type = agg::pod_bvector<path_attributes>;
|
||||
using conv_types = boost::mpl::vector<clip_line_tag,
|
||||
clip_poly_tag,
|
||||
transform_tag,
|
||||
affine_transform_tag,
|
||||
simplify_tag, smooth_tag,
|
||||
offset_transform_tag>;
|
||||
|
||||
std::string filename = get<std::string>(sym, keys::file, feature, common.vars_, "shape://ellipse");
|
||||
bool clip = get<value_bool>(sym, keys::clip, feature, common.vars_, false);
|
||||
|
@ -105,8 +99,12 @@ void render_markers_symbolizer(markers_symbolizer const& sym,
|
|||
snap_to_pixels,
|
||||
renderer_context);
|
||||
|
||||
vertex_converter<box2d<double>, vector_dispatch_type, markers_symbolizer,
|
||||
view_transform, proj_transform, agg::trans_affine, conv_types, feature_impl>
|
||||
vertex_converter<vector_dispatch_type,clip_line_tag,
|
||||
clip_poly_tag,
|
||||
transform_tag,
|
||||
affine_transform_tag,
|
||||
simplify_tag, smooth_tag,
|
||||
offset_transform_tag>
|
||||
converter(clip_box, rasterizer_dispatch, sym,common.t_,prj_trans,geom_tr,feature,common.vars_,common.scale_factor_);
|
||||
if (clip && feature.paths().size() > 0) // optional clip (default: true)
|
||||
{
|
||||
|
@ -145,8 +143,12 @@ void render_markers_symbolizer(markers_symbolizer const& sym,
|
|||
snap_to_pixels,
|
||||
renderer_context);
|
||||
|
||||
vertex_converter<box2d<double>, vector_dispatch_type, markers_symbolizer,
|
||||
view_transform, proj_transform, agg::trans_affine, conv_types, feature_impl>
|
||||
vertex_converter<vector_dispatch_type,clip_line_tag,
|
||||
clip_poly_tag,
|
||||
transform_tag,
|
||||
affine_transform_tag,
|
||||
simplify_tag, smooth_tag,
|
||||
offset_transform_tag>
|
||||
converter(clip_box, rasterizer_dispatch, sym,common.t_,prj_trans,geom_tr,feature,common.vars_,common.scale_factor_);
|
||||
if (clip && feature.paths().size() > 0) // optional clip (default: true)
|
||||
{
|
||||
|
@ -184,8 +186,12 @@ void render_markers_symbolizer(markers_symbolizer const& sym,
|
|||
common.vars_,
|
||||
renderer_context);
|
||||
|
||||
vertex_converter<box2d<double>, raster_dispatch_type, markers_symbolizer,
|
||||
view_transform, proj_transform, agg::trans_affine, conv_types, feature_impl>
|
||||
vertex_converter<raster_dispatch_type,clip_line_tag,
|
||||
clip_poly_tag,
|
||||
transform_tag,
|
||||
affine_transform_tag,
|
||||
simplify_tag, smooth_tag,
|
||||
offset_transform_tag>
|
||||
converter(clip_box, rasterizer_dispatch, sym,common.t_,prj_trans,geom_tr,feature,common.vars_,common.scale_factor_);
|
||||
|
||||
if (clip && feature.paths().size() > 0) // optional clip (default: true)
|
||||
|
|
|
@ -56,10 +56,7 @@ struct placement_finder_adapter
|
|||
|
||||
};
|
||||
|
||||
using conv_types = boost::mpl::vector<clip_line_tag , transform_tag, affine_transform_tag, simplify_tag, smooth_tag>;
|
||||
using vertex_converter_type = vertex_converter<box2d<double>, placement_finder_adapter<placement_finder> , symbolizer_base,
|
||||
view_transform, proj_transform, agg::trans_affine,
|
||||
conv_types, feature_impl>;
|
||||
using vertex_converter_type = vertex_converter<placement_finder_adapter<placement_finder>,clip_line_tag , transform_tag, affine_transform_tag, simplify_tag, smooth_tag>;
|
||||
|
||||
class base_symbolizer_helper
|
||||
{
|
||||
|
|
|
@ -38,8 +38,10 @@
|
|||
#include <mapnik/symbolizer_keys.hpp>
|
||||
#include <mapnik/symbolizer.hpp>
|
||||
|
||||
#include <type_traits>
|
||||
|
||||
// boost
|
||||
#include <boost/type_traits/is_same.hpp>
|
||||
//#include <boost/type_traits/is_same.hpp>
|
||||
|
||||
// mpl
|
||||
#include <boost/mpl/begin_end.hpp>
|
||||
|
@ -47,7 +49,7 @@
|
|||
#include <boost/mpl/deref.hpp>
|
||||
#include <boost/mpl/find.hpp>
|
||||
#include <boost/mpl/size.hpp>
|
||||
#include <boost/mpl/at.hpp>
|
||||
//#include <boost/mpl/at.hpp>
|
||||
#include <boost/mpl/int.hpp>
|
||||
|
||||
// fusion
|
||||
|
@ -107,7 +109,7 @@ struct converter_traits<T,mapnik::smooth_tag>
|
|||
template <typename Args>
|
||||
static void setup(geometry_type & geom, Args const& args)
|
||||
{
|
||||
typename boost::mpl::at<Args,boost::mpl::int_<2> >::type sym = boost::fusion::at_c<2>(args);
|
||||
auto const& sym = boost::fusion::at_c<2>(args);
|
||||
auto const& feat = boost::fusion::at_c<6>(args);
|
||||
auto const& vars = boost::fusion::at_c<7>(args);
|
||||
geom.smooth_value(get<value_double>(sym, keys::smooth, feat, vars));
|
||||
|
@ -123,7 +125,7 @@ struct converter_traits<T,mapnik::simplify_tag>
|
|||
template <typename Args>
|
||||
static void setup(geometry_type & geom, Args const& args)
|
||||
{
|
||||
typename boost::mpl::at<Args,boost::mpl::int_<2> >::type sym = boost::fusion::at_c<2>(args);
|
||||
auto const& sym = boost::fusion::at_c<2>(args);
|
||||
auto const& feat = boost::fusion::at_c<6>(args);
|
||||
auto const& vars = boost::fusion::at_c<7>(args);
|
||||
geom.set_simplify_algorithm(static_cast<simplify_algorithm_e>(get<value_integer>(sym, keys::simplify_algorithm, feat, vars)));
|
||||
|
@ -140,7 +142,7 @@ struct converter_traits<T, mapnik::clip_line_tag>
|
|||
template <typename Args>
|
||||
static void setup(geometry_type & geom, Args const& args)
|
||||
{
|
||||
typename boost::mpl::at<Args,boost::mpl::int_<0> >::type box = boost::fusion::at_c<0>(args);
|
||||
auto const& box = boost::fusion::at_c<0>(args);
|
||||
geom.clip_box(box.minx(),box.miny(),box.maxx(),box.maxy());
|
||||
}
|
||||
};
|
||||
|
@ -154,7 +156,7 @@ struct converter_traits<T, mapnik::dash_tag>
|
|||
template <typename Args>
|
||||
static void setup(geometry_type & geom, Args const& args)
|
||||
{
|
||||
typename boost::mpl::at<Args,boost::mpl::int_<2> >::type sym = boost::fusion::at_c<2>(args);
|
||||
auto const& sym = boost::fusion::at_c<2>(args);
|
||||
auto const& feat = boost::fusion::at_c<6>(args);
|
||||
auto const& vars = boost::fusion::at_c<7>(args);
|
||||
double scale_factor = boost::fusion::at_c<8>(args);
|
||||
|
@ -213,7 +215,7 @@ struct converter_traits<T, mapnik::stroke_tag>
|
|||
template <typename Args>
|
||||
static void setup(geometry_type & geom, Args const& args)
|
||||
{
|
||||
typename boost::mpl::at<Args,boost::mpl::int_<2> >::type sym = boost::fusion::at_c<2>(args);
|
||||
auto const& sym = boost::fusion::at_c<2>(args);
|
||||
auto const& feat = boost::fusion::at_c<6>(args);
|
||||
auto const& vars = boost::fusion::at_c<7>(args);
|
||||
set_join_caps(sym, geom, feat, vars);
|
||||
|
@ -233,7 +235,7 @@ struct converter_traits<T,mapnik::clip_poly_tag>
|
|||
template <typename Args>
|
||||
static void setup(geometry_type & geom, Args const& args)
|
||||
{
|
||||
typename boost::mpl::at<Args,boost::mpl::int_<0> >::type box = boost::fusion::at_c<0>(args);
|
||||
auto const& box = boost::fusion::at_c<0>(args);
|
||||
geom.clip_box(box.minx(),box.miny(),box.maxx(),box.maxy());
|
||||
//geom.set_clip_box(box);
|
||||
}
|
||||
|
@ -292,7 +294,7 @@ struct converter_traits<T,mapnik::offset_transform_tag>
|
|||
template <typename Args>
|
||||
static void setup(geometry_type & geom, Args const& args)
|
||||
{
|
||||
typename boost::mpl::at<Args,boost::mpl::int_<2> >::type sym = boost::fusion::at_c<2>(args);
|
||||
auto const& sym = boost::fusion::at_c<2>(args);
|
||||
auto const& feat = boost::fusion::at_c<6>(args);
|
||||
auto const& vars = boost::fusion::at_c<7>(args);
|
||||
double offset = get<value_double>(sym, keys::offset, feat, vars);
|
||||
|
@ -312,7 +314,7 @@ struct converter_fwd
|
|||
using conv_type = typename detail::converter_traits<geometry_type,conv_tag>::conv_type;
|
||||
conv_type conv(geom);
|
||||
detail::converter_traits<conv_type,conv_tag>::setup(conv,args);
|
||||
base.template dispatch<Iter,End>(conv, typename boost::is_same<Iter,End>::type());
|
||||
base.template dispatch<Iter,End>(conv, typename std::is_same<Iter,End>::type());
|
||||
}
|
||||
};
|
||||
|
||||
|
@ -322,7 +324,7 @@ struct converter_fwd<true>
|
|||
template <typename Base, typename T0,typename T1,typename T2, typename Iter,typename End>
|
||||
static void forward(Base& base, T0 & geom,T1 const& args)
|
||||
{
|
||||
base.template dispatch<Iter,End>(geom, typename boost::is_same<Iter,End>::type());
|
||||
base.template dispatch<Iter,End>(geom, typename std::is_same<Iter,End>::type());
|
||||
}
|
||||
};
|
||||
|
||||
|
@ -336,18 +338,17 @@ struct dispatcher
|
|||
dispatcher(args_type const& args)
|
||||
: args_(args)
|
||||
{
|
||||
//std::memset(&vec_[0], 0, sizeof(unsigned)*vec_.size());
|
||||
std::fill(vec_.begin(), vec_.end(), 0);
|
||||
}
|
||||
|
||||
template <typename Iter, typename End, typename Geometry>
|
||||
void dispatch(Geometry & geom, boost::mpl::true_)
|
||||
void dispatch(Geometry & geom, std::true_type)
|
||||
{
|
||||
boost::fusion::at_c<1>(args_).add_path(geom);
|
||||
}
|
||||
|
||||
template <typename Iter, typename End, typename Geometry>
|
||||
void dispatch(Geometry & geom, boost::mpl::false_)
|
||||
void dispatch(Geometry & geom, std::false_type)
|
||||
{
|
||||
using conv_tag = typename boost::mpl::deref<Iter>::type;
|
||||
using conv_type = typename detail::converter_traits<Geometry,conv_tag>::conv_type;
|
||||
|
@ -356,13 +357,12 @@ struct dispatcher
|
|||
std::size_t index = boost::mpl::distance<Iter,End>::value - 1;
|
||||
if (vec_[index] == 1)
|
||||
{
|
||||
converter_fwd<boost::is_same<Geometry,conv_type>::value>::
|
||||
converter_fwd<std::is_same<Geometry,conv_type>::value>::
|
||||
template forward<this_type,Geometry,args_type,conv_tag,Next,End>(*this,geom,args_);
|
||||
}
|
||||
else
|
||||
{
|
||||
converter_fwd<boost::mpl::true_::value>::
|
||||
template forward<this_type,Geometry,args_type,conv_tag,Next,End>(*this,geom,args_);
|
||||
dispatch<Next,End>(geom, typename std::is_same<Next,End>::type());
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -371,26 +371,53 @@ struct dispatcher
|
|||
{
|
||||
using begin = typename boost::mpl::begin<conv_types>::type;
|
||||
using end = typename boost::mpl::end <conv_types>::type;
|
||||
dispatch<begin,end,Geometry>(geom, boost::false_type());
|
||||
dispatch<begin,end,Geometry>(geom, std::false_type());
|
||||
}
|
||||
|
||||
std::array<unsigned, boost::mpl::size<conv_types>::value> vec_;
|
||||
args_type args_;
|
||||
};
|
||||
|
||||
template <typename Dispatcher, typename Converter, typename... ConverterTypes>
|
||||
struct converter_setter;
|
||||
|
||||
template <typename Dispatcher, typename Converter, typename Current, typename... ConverterTypes>
|
||||
struct converter_setter<Dispatcher,Converter,Current,ConverterTypes...>
|
||||
{
|
||||
static void set(Dispatcher & disp, int state)
|
||||
{
|
||||
if (std::is_same<Converter,Current>::value)
|
||||
{
|
||||
std::size_t index = sizeof...(ConverterTypes) ;
|
||||
disp.vec_[index] = state;
|
||||
}
|
||||
else
|
||||
{
|
||||
converter_setter<Dispatcher,Converter,ConverterTypes...>::set(disp, state);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
template <typename Dispatcher, typename Converter>
|
||||
struct converter_setter<Dispatcher,Converter>
|
||||
{
|
||||
static void set(Dispatcher & disp, int state) {}
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
template <typename B, typename R, typename S, typename T, typename P, typename A, typename C, typename F >
|
||||
template <typename R, typename... C >
|
||||
struct vertex_converter : private mapnik::noncopyable
|
||||
{
|
||||
using conv_types = C;
|
||||
using bbox_type = B;
|
||||
using conv_types = boost::mpl::vector<C...>;
|
||||
using bbox_type = box2d<double>;
|
||||
using rasterizer_type = R;
|
||||
using symbolizer_type = S;
|
||||
using trans_type = T;
|
||||
using proj_trans_type = P;
|
||||
using affine_trans_type = A;
|
||||
using feature_type = F;
|
||||
using args_type = typename boost::fusion::vector<
|
||||
using symbolizer_type = symbolizer_base;
|
||||
using trans_type = view_transform;
|
||||
using proj_trans_type = proj_transform;
|
||||
using affine_trans_type = agg::trans_affine;
|
||||
using feature_type = feature_impl;
|
||||
using args_type = typename boost::fusion::vector<
|
||||
bbox_type const&,
|
||||
rasterizer_type&,
|
||||
symbolizer_type const&,
|
||||
|
@ -402,6 +429,8 @@ struct vertex_converter : private mapnik::noncopyable
|
|||
double //scale-factor
|
||||
>;
|
||||
|
||||
using dispatcher_type = detail::dispatcher<args_type,conv_types>;
|
||||
|
||||
vertex_converter(bbox_type const& b,
|
||||
rasterizer_type & ras,
|
||||
symbolizer_type const& sym,
|
||||
|
@ -411,14 +440,14 @@ struct vertex_converter : private mapnik::noncopyable
|
|||
feature_type const& feature,
|
||||
attributes const& vars,
|
||||
double scale_factor)
|
||||
: disp_(args_type(boost::cref(b),
|
||||
boost::ref(ras),
|
||||
boost::cref(sym),
|
||||
boost::cref(tr),
|
||||
boost::cref(prj_trans),
|
||||
boost::cref(affine_trans),
|
||||
boost::cref(feature),
|
||||
boost::cref(vars),
|
||||
: disp_(args_type(std::cref(b),
|
||||
std::ref(ras),
|
||||
std::cref(sym),
|
||||
std::cref(tr),
|
||||
std::cref(prj_trans),
|
||||
std::cref(affine_trans),
|
||||
std::cref(feature),
|
||||
std::cref(vars),
|
||||
scale_factor)) {}
|
||||
|
||||
template <typename Geometry>
|
||||
|
@ -431,24 +460,16 @@ struct vertex_converter : private mapnik::noncopyable
|
|||
template <typename Conv>
|
||||
void set()
|
||||
{
|
||||
using iter = typename boost::mpl::find<conv_types,Conv>::type;
|
||||
using end = typename boost::mpl::end<conv_types>::type;
|
||||
std::size_t index = boost::mpl::distance<iter,end>::value - 1;
|
||||
if (index < disp_.vec_.size())
|
||||
disp_.vec_[index]=1;
|
||||
detail::converter_setter<dispatcher_type, Conv,C...>::set(disp_, 1);
|
||||
}
|
||||
|
||||
template <typename Conv>
|
||||
void unset()
|
||||
{
|
||||
using iter = typename boost::mpl::find<conv_types,Conv>::type;
|
||||
using end = typename boost::mpl::end<conv_types>::type;
|
||||
std::size_t index = boost::mpl::distance<iter,end>::value - 1;
|
||||
if (index < disp_.vec_.size())
|
||||
disp_.vec_[index]=0;
|
||||
detail::converter_setter<dispatcher_type, Conv, C...>::set(disp_, 0);
|
||||
}
|
||||
|
||||
detail::dispatcher<args_type,conv_types> disp_;
|
||||
dispatcher_type disp_;
|
||||
};
|
||||
|
||||
}
|
||||
|
|
|
@ -122,12 +122,14 @@ void agg_renderer<T0,T1>::process(line_pattern_symbolizer const& sym,
|
|||
clip_box.pad(padding);
|
||||
}
|
||||
|
||||
using conv_types = boost::mpl::vector<clip_line_tag, transform_tag,
|
||||
affine_transform_tag,
|
||||
simplify_tag,smooth_tag,
|
||||
offset_transform_tag>;
|
||||
vertex_converter<box2d<double>, rasterizer_type, line_pattern_symbolizer,
|
||||
view_transform, proj_transform, agg::trans_affine, conv_types, feature_impl>
|
||||
//using conv_types = boost::mpl::vector<clip_line_tag, transform_tag,
|
||||
// affine_transform_tag,
|
||||
// simplify_tag,smooth_tag,
|
||||
// offset_transform_tag>;
|
||||
vertex_converter<rasterizer_type, clip_line_tag, transform_tag,
|
||||
affine_transform_tag,
|
||||
simplify_tag,smooth_tag,
|
||||
offset_transform_tag>
|
||||
converter(clip_box,ras,sym,common_.t_,prj_trans,tr,feature,common_.vars_,common_.scale_factor_);
|
||||
|
||||
if (clip) converter.set<clip_line_tag>(); //optional clip (default: true)
|
||||
|
|
|
@ -116,11 +116,11 @@ void agg_renderer<T0,T1>::process(line_symbolizer const& sym,
|
|||
using blender_type = agg::comp_op_adaptor_rgba_pre<color_type, order_type>; // comp blender
|
||||
using pixfmt_comp_type = agg::pixfmt_custom_blend_rgba<blender_type, agg::rendering_buffer>;
|
||||
using renderer_base = agg::renderer_base<pixfmt_comp_type>;
|
||||
using conv_types = boost::mpl::vector<clip_line_tag, transform_tag,
|
||||
affine_transform_tag,
|
||||
simplify_tag, smooth_tag,
|
||||
offset_transform_tag,
|
||||
dash_tag, stroke_tag>;
|
||||
//using conv_types = boost::mpl::vector<clip_line_tag, transform_tag,
|
||||
// affine_transform_tag,
|
||||
// simplify_tag, smooth_tag,
|
||||
// offset_transform_tag,
|
||||
// dash_tag, stroke_tag>;
|
||||
|
||||
pixfmt_comp_type pixf(buf);
|
||||
pixf.comp_op(static_cast<agg::comp_op_e>(get<composite_mode_e>(sym, keys::comp_op, feature, common_.vars_, src_over)));
|
||||
|
@ -170,8 +170,11 @@ void agg_renderer<T0,T1>::process(line_symbolizer const& sym,
|
|||
rasterizer_type ras(ren);
|
||||
set_join_caps_aa(sym, ras, feature, common_.vars_);
|
||||
|
||||
vertex_converter<box2d<double>, rasterizer_type, line_symbolizer,
|
||||
view_transform, proj_transform, agg::trans_affine, conv_types, feature_impl>
|
||||
vertex_converter<rasterizer_type,clip_line_tag, transform_tag,
|
||||
affine_transform_tag,
|
||||
simplify_tag, smooth_tag,
|
||||
offset_transform_tag,
|
||||
dash_tag, stroke_tag>
|
||||
converter(clip_box,ras,sym,common_.t_,prj_trans,tr,feature,common_.vars_,common_.scale_factor_);
|
||||
if (clip) converter.set<clip_line_tag>(); // optional clip (default: true)
|
||||
converter.set<transform_tag>(); // always transform
|
||||
|
@ -190,8 +193,11 @@ void agg_renderer<T0,T1>::process(line_symbolizer const& sym,
|
|||
}
|
||||
else
|
||||
{
|
||||
vertex_converter<box2d<double>, rasterizer, line_symbolizer,
|
||||
view_transform, proj_transform, agg::trans_affine, conv_types, feature_impl>
|
||||
vertex_converter<rasterizer,clip_line_tag, transform_tag,
|
||||
affine_transform_tag,
|
||||
simplify_tag, smooth_tag,
|
||||
offset_transform_tag,
|
||||
dash_tag, stroke_tag>
|
||||
converter(clip_box,*ras_ptr,sym,common_.t_,prj_trans,tr,feature,common_.vars_,common_.scale_factor_);
|
||||
|
||||
if (clip) converter.set<clip_line_tag>(); // optional clip (default: true)
|
||||
|
|
|
@ -158,9 +158,8 @@ void agg_renderer<T0,T1>::process(polygon_pattern_symbolizer const& sym,
|
|||
auto transform = get_optional<transform_type>(sym, keys::geometry_transform);
|
||||
if (transform) evaluate_transform(tr, feature, common_.vars_, *transform, common_.scale_factor_);
|
||||
|
||||
using conv_types = boost::mpl::vector<clip_poly_tag,transform_tag,affine_transform_tag,simplify_tag,smooth_tag>;
|
||||
vertex_converter<box2d<double>, rasterizer, polygon_pattern_symbolizer,
|
||||
view_transform, proj_transform, agg::trans_affine, conv_types, feature_impl>
|
||||
//using conv_types = boost::mpl::vector<clip_poly_tag,transform_tag,affine_transform_tag,simplify_tag,smooth_tag>;
|
||||
vertex_converter<rasterizer, clip_poly_tag,transform_tag,affine_transform_tag,simplify_tag,smooth_tag>
|
||||
converter(clip_box,*ras_ptr,sym,common_.t_,prj_trans,tr,feature,common_.vars_,common_.scale_factor_);
|
||||
|
||||
if (prj_trans.equal() && clip) converter.set<clip_poly_tag>(); //optional clip (default: true)
|
||||
|
|
|
@ -49,10 +49,8 @@ void agg_renderer<T0,T1>::process(polygon_symbolizer const& sym,
|
|||
mapnik::feature_impl & feature,
|
||||
proj_transform const& prj_trans)
|
||||
{
|
||||
using conv_types = boost::mpl::vector<clip_poly_tag,transform_tag,affine_transform_tag,simplify_tag,smooth_tag>;
|
||||
using vertex_converter_type = vertex_converter<box2d<double>, rasterizer, polygon_symbolizer,
|
||||
view_transform, proj_transform, agg::trans_affine,
|
||||
conv_types, feature_impl>;
|
||||
//using conv_types = boost::mpl::vector<clip_poly_tag,transform_tag,affine_transform_tag,simplify_tag,smooth_tag>;
|
||||
using vertex_converter_type = vertex_converter<rasterizer,clip_poly_tag,transform_tag,affine_transform_tag,simplify_tag,smooth_tag>;
|
||||
|
||||
ras_ptr->reset();
|
||||
double gamma = get<value_double>(sym, keys::gamma, feature, common_.vars_, 1.0);
|
||||
|
|
|
@ -111,8 +111,7 @@ void cairo_renderer<T>::process(line_pattern_symbolizer const& sym,
|
|||
|
||||
using rasterizer_type = line_pattern_rasterizer<cairo_context>;
|
||||
rasterizer_type ras(context_, *pattern, width, height);
|
||||
vertex_converter<box2d<double>, rasterizer_type, line_pattern_symbolizer,
|
||||
view_transform, proj_transform, agg::trans_affine, conv_types, feature_impl>
|
||||
vertex_converter<rasterizer_type,conv_types>
|
||||
converter(clipping_extent, ras, sym, common_.t_, prj_trans, tr, feature, common_.vars_, common_.scale_factor_);
|
||||
|
||||
if (clip) converter.set<clip_line_tag>(); // optional clip (default: true)
|
||||
|
|
|
@ -84,8 +84,7 @@ void cairo_renderer<T>::process(line_symbolizer const& sym,
|
|||
padding *= common_.scale_factor_;
|
||||
clipping_extent.pad(padding);
|
||||
}
|
||||
vertex_converter<box2d<double>, cairo_context, line_symbolizer,
|
||||
view_transform, proj_transform, agg::trans_affine, conv_types, feature_impl>
|
||||
vertex_converter<cairo_context,conv_types>
|
||||
converter(clipping_extent,context_,sym,common_.t_,prj_trans,tr,feature,common_.vars_,common_.scale_factor_);
|
||||
|
||||
if (clip) converter.set<clip_line_tag>(); // optional clip (default: true)
|
||||
|
|
|
@ -103,8 +103,7 @@ void cairo_renderer<T>::process(polygon_pattern_symbolizer const& sym,
|
|||
if (geom_transform) { evaluate_transform(tr, feature, common_.vars_, *geom_transform, common_.scale_factor_); }
|
||||
|
||||
using conv_types = boost::mpl::vector<clip_poly_tag,transform_tag,affine_transform_tag,simplify_tag,smooth_tag>;
|
||||
vertex_converter<box2d<double>, cairo_context, polygon_pattern_symbolizer,
|
||||
view_transform, proj_transform, agg::trans_affine, conv_types, feature_impl>
|
||||
vertex_converter<cairo_context, conv_types>
|
||||
converter(clip_box, context_,sym,common_.t_,prj_trans,tr,feature,common_.vars_,common_.scale_factor_);
|
||||
|
||||
if (prj_trans.equal() && clip) converter.set<clip_poly_tag>(); //optional clip (default: true)
|
||||
|
|
|
@ -39,9 +39,7 @@ void cairo_renderer<T>::process(polygon_symbolizer const& sym,
|
|||
proj_transform const& prj_trans)
|
||||
{
|
||||
using conv_types = boost::mpl::vector<clip_poly_tag,transform_tag,affine_transform_tag,simplify_tag,smooth_tag>;
|
||||
using vertex_converter_type = vertex_converter<box2d<double>, cairo_context, polygon_symbolizer,
|
||||
view_transform, proj_transform, agg::trans_affine,
|
||||
conv_types, feature_impl>;
|
||||
using vertex_converter_type = vertex_converter<cairo_context, conv_types>;
|
||||
|
||||
cairo_save_restore guard(context_);
|
||||
composite_mode_e comp_op = get<composite_mode_e>(sym, keys::comp_op, feature, common_.vars_, src_over);
|
||||
|
|
|
@ -119,8 +119,7 @@ void grid_renderer<T>::process(line_pattern_symbolizer const& sym,
|
|||
put<value_double>(line, keys::simplify_tolerance, value_double(simplify_tolerance));
|
||||
put<value_double>(line, keys::smooth, value_double(smooth));
|
||||
|
||||
vertex_converter<box2d<double>, grid_rasterizer, line_symbolizer,
|
||||
view_transform, proj_transform, agg::trans_affine, conv_types, feature_impl>
|
||||
vertex_converter<grid_rasterizer,conv_types>
|
||||
converter(clipping_extent,*ras_ptr,line,common_.t_,prj_trans,tr,feature,common_.vars_,common_.scale_factor_);
|
||||
if (clip) converter.set<clip_line_tag>(); // optional clip (default: true)
|
||||
converter.set<transform_tag>(); // always transform
|
||||
|
|
|
@ -91,8 +91,7 @@ void grid_renderer<T>::process(line_symbolizer const& sym,
|
|||
clipping_extent.pad(padding);
|
||||
}
|
||||
|
||||
vertex_converter<box2d<double>, grid_rasterizer, line_symbolizer,
|
||||
view_transform, proj_transform, agg::trans_affine, conv_types, feature_impl>
|
||||
vertex_converter<grid_rasterizer, conv_types>
|
||||
converter(clipping_extent,*ras_ptr,sym,common_.t_,prj_trans,tr,feature,common_.vars_,common_.scale_factor_);
|
||||
if (clip) converter.set<clip_line_tag>(); // optional clip (default: true)
|
||||
converter.set<transform_tag>(); // always transform
|
||||
|
|
|
@ -53,7 +53,6 @@ porting notes -->
|
|||
|
||||
#include <mapnik/debug.hpp>
|
||||
#include <mapnik/geom_util.hpp>
|
||||
#include <mapnik/vertex_converters.hpp>
|
||||
#include <mapnik/marker.hpp>
|
||||
#include <mapnik/marker_cache.hpp>
|
||||
#include <mapnik/marker_helpers.hpp>
|
||||
|
|
|
@ -78,8 +78,7 @@ void grid_renderer<T>::process(polygon_pattern_symbolizer const& sym,
|
|||
}
|
||||
|
||||
using conv_types = boost::mpl::vector<clip_poly_tag,transform_tag,affine_transform_tag,smooth_tag>;
|
||||
vertex_converter<box2d<double>, grid_rasterizer, polygon_pattern_symbolizer,
|
||||
view_transform, proj_transform, agg::trans_affine, conv_types, feature_impl>
|
||||
vertex_converter<grid_rasterizer,conv_types>
|
||||
converter(common_.query_extent_,*ras_ptr,sym,common_.t_,prj_trans,tr,feature,common_.vars_,common_.scale_factor_);
|
||||
|
||||
if (prj_trans.equal() && clip) converter.set<clip_poly_tag>(); //optional clip (default: true)
|
||||
|
|
|
@ -54,9 +54,7 @@ void grid_renderer<T>::process(polygon_symbolizer const& sym,
|
|||
using pixfmt_type = typename grid_renderer_base_type::pixfmt_type;
|
||||
using color_type = typename grid_renderer_base_type::pixfmt_type::color_type;
|
||||
using conv_types = boost::mpl::vector<clip_poly_tag,transform_tag,affine_transform_tag,simplify_tag,smooth_tag>;
|
||||
using vertex_converter_type = vertex_converter<box2d<double>, grid_rasterizer, polygon_symbolizer,
|
||||
view_transform, proj_transform, agg::trans_affine,
|
||||
conv_types, feature_impl>;
|
||||
using vertex_converter_type = vertex_converter<grid_rasterizer,conv_types>;
|
||||
|
||||
ras_ptr->reset();
|
||||
|
||||
|
|
|
@ -63,8 +63,7 @@ boost::optional<std::string> linestring_bbox_clipping(mapnik::box2d<double> bbox
|
|||
using conv_types = boost::mpl::vector<clip_line_tag>;
|
||||
mapnik::context_ptr ctx = std::make_shared<mapnik::context_type>();
|
||||
mapnik::feature_impl f(ctx,0);
|
||||
vertex_converter<box2d<double>, output_geometry_backend, line_symbolizer,
|
||||
view_transform, proj_transform, agg::trans_affine, conv_types, feature_impl>
|
||||
vertex_converter<output_geometry_backend,conv_types>
|
||||
converter(bbox, backend, sym, t, prj_trans, tr, f, attributes(), 1.0);
|
||||
|
||||
converter.set<clip_line_tag>();
|
||||
|
@ -107,8 +106,7 @@ boost::optional<std::string> polygon_bbox_clipping(mapnik::box2d<double> bbox,
|
|||
using conv_types = boost::mpl::vector<clip_poly_tag>;
|
||||
mapnik::context_ptr ctx = std::make_shared<mapnik::context_type>();
|
||||
mapnik::feature_impl f(ctx,0);
|
||||
vertex_converter<box2d<double>, output_geometry_backend, polygon_symbolizer,
|
||||
view_transform, proj_transform, agg::trans_affine, conv_types, feature_impl>
|
||||
vertex_converter<output_geometry_backend, conv_types>
|
||||
converter(bbox, backend, sym, t, prj_trans, tr, f, attributes(), 1.0);
|
||||
|
||||
converter.set<clip_poly_tag>();
|
||||
|
|
Loading…
Add table
Reference in a new issue