Merge branch 'master' of github.com:mapnik/mapnik

This commit is contained in:
Dane Springmeyer 2012-06-27 13:08:06 -07:00
commit 28ba3ae308

View file

@ -124,6 +124,7 @@ void agg_renderer<T>::process(markers_symbolizer const& sym,
geom.label_interior_position(&x, &y);
prj_trans.backward(x,y,z);
t_.forward(&x,&y);
geom_tr.transform(&x,&y);
agg::trans_affine matrix = marker_trans;
matrix.translate(x,y);
box2d<double> transformed_bbox = bbox * matrix;
@ -209,15 +210,6 @@ void agg_renderer<T>::process(markers_symbolizer const& sym,
if (marker_type == MARKER_ARROW)
{
extent = arrow_.extent();
double x1 = extent.minx();
double y1 = extent.miny();
double x2 = extent.maxx();
double y2 = extent.maxy();
tr.transform(&x1,&y1);
tr.transform(&x2,&y2);
extent.init(x1,y1,x2,y2);
//MAPNIK_LOG_DEBUG(agg_renderer) << "agg_renderer: " << x1 << " " << y1 << " " << x2 << " " << y2 << "\n";
}
else
{
@ -225,13 +217,12 @@ void agg_renderer<T>::process(markers_symbolizer const& sym,
double y1 = -1 *(dy);
double x2 = dx;
double y2 = dy;
tr.transform(&x1,&y1);
tr.transform(&x2,&y2);
extent.init(x1,y1,x2,y2);
//MAPNIK_LOG_DEBUG(agg_renderer) << "agg_renderer: " << x1 << " " << y1 << " " << x2 << " " << y2 << "\n";
}
coord2d center = extent.center();
agg::trans_affine_translation recenter(-center.x, -center.y);
agg::trans_affine marker_trans = recenter * tr;
double x;
double y;
@ -248,6 +239,7 @@ void agg_renderer<T>::process(markers_symbolizer const& sym,
geom.label_position(&x,&y);
prj_trans.backward(x,y,z);
t_.forward(&x,&y);
geom_tr.transform(&x,&y);
int px = int(floor(x - 0.5 * dx));
int py = int(floor(y - 0.5 * dy));
box2d<double> label_ext (px, py, px + dx +1, py + dy +1);
@ -289,7 +281,7 @@ void agg_renderer<T>::process(markers_symbolizer const& sym,
clipped.clip_box(query_extent_.minx(),query_extent_.miny(),query_extent_.maxx(),query_extent_.maxy());
path_type path(t_,clipped,prj_trans);
transformed_path_type path_transformed(path,geom_tr);
markers_placement<transformed_path_type, label_collision_detector4> placement(path_transformed, extent, agg::trans_affine(), *detector_,
markers_placement<transformed_path_type, label_collision_detector4> placement(path_transformed, extent, marker_trans, *detector_,
sym.get_spacing() * scale_factor_,
sym.get_max_error(),
sym.get_allow_overlap());
@ -303,7 +295,7 @@ void agg_renderer<T>::process(markers_symbolizer const& sym,
// todo proper bbox - this is buggy
agg::ellipse c(x_t, y_t, rx, ry);
marker.concat_path(c);
agg::trans_affine matrix;
agg::trans_affine matrix = marker_trans;
matrix *= agg::trans_affine_translation(-x_t,-y_t);
matrix *= agg::trans_affine_rotation(angle);
matrix *= agg::trans_affine_translation(x_t,y_t);
@ -312,11 +304,14 @@ void agg_renderer<T>::process(markers_symbolizer const& sym,
}
else
{
matrix = tr * agg::trans_affine_rotation(angle) * agg::trans_affine_translation(x_t, y_t);
matrix = marker_trans * agg::trans_affine_rotation(angle) * agg::trans_affine_translation(x_t, y_t);
}
if (/* DEBUG */ 0)
{
debug_draw_box(buf, extent*matrix, 0, 0, 0.0);
}
// TODO
if (writer.first)
{
//writer.first->add_box(label_ext, feature, t_, writer.second);