diff --git a/include/mapnik/placement_finder.hpp b/include/mapnik/placement_finder.hpp index 5be68bcbd..fb7cd13be 100644 --- a/include/mapnik/placement_finder.hpp +++ b/include/mapnik/placement_finder.hpp @@ -82,12 +82,8 @@ public: inline placements_type const& get_results() { return placements_; } - /** Additional boxes to take into account when finding placement. - * Used for finding line placements where multiple placements are returned. - * Boxes are relative to starting point of current placement. - * Only used for point placements! - */ - std::vector > additional_boxes; + std::vector > & additional_boxes() { return additional_boxes_;} + std::vector > const& additional_boxes() const { return additional_boxes_;} void set_collect_extents(bool collect) { collect_extents_ = collect; } bool get_collect_extents() const { return collect_extents_; } @@ -160,6 +156,13 @@ private: box2d extents_; /** Collect a bounding box of all texts placed. */ bool collect_extents_; + + /** Additional boxes to take into account when finding placement. + * Used for finding line placements where multiple placements are returned. + * Boxes are relative to starting point of current placement. + * Only used for point placements! + */ + std::vector > additional_boxes_; }; } diff --git a/src/placement_finder.cpp b/src/placement_finder.cpp index eefbf1b6e..f5a34b61e 100644 --- a/src/placement_finder.cpp +++ b/src/placement_finder.cpp @@ -500,9 +500,9 @@ void placement_finder::find_point_placement(double label_x, } // check the placement of any additional envelopes - if (!p.allow_overlap && !additional_boxes.empty()) + if (!p.allow_overlap && !additional_boxes_.empty()) { - BOOST_FOREACH(box2d box, additional_boxes) + BOOST_FOREACH(box2d const& box, additional_boxes_) { box2d pt(box.minx() + current_placement->center.x, box.miny() + current_placement->center.y, diff --git a/src/symbolizer_helpers.cpp b/src/symbolizer_helpers.cpp index 03d584502..87516c19d 100644 --- a/src/symbolizer_helpers.cpp +++ b/src/symbolizer_helpers.cpp @@ -380,9 +380,9 @@ template bool shield_symbolizer_helper::next_line_placement() { position const& pos = placement_->properties.displacement; - finder_->additional_boxes.clear(); + finder_->additional_boxes().clear(); //Markers are automatically centered - finder_->additional_boxes.push_back( + finder_->additional_boxes().push_back( box2d(-0.5 * marker_ext_.width() - pos.first, -0.5 * marker_ext_.height() - pos.second, 0.5 * marker_ext_.width() - pos.first,