From cb46131bc505ef646e7b57b63cffed5b62a998de Mon Sep 17 00:00:00 2001 From: Jiri Drbalek Date: Fri, 31 Oct 2014 18:38:59 +0000 Subject: [PATCH] move text-specific inverted y axis logic from vertex_cache to placement_finder --- src/text/placement_finder.cpp | 4 +++- src/vertex_cache.cpp | 10 ++++------ 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/text/placement_finder.cpp b/src/text/placement_finder.cpp index 5d2731390..c180c8984 100644 --- a/src/text/placement_finder.cpp +++ b/src/text/placement_finder.cpp @@ -328,7 +328,9 @@ double placement_finder::normalize_angle(double angle) { angle += 2.0 * M_PI; } - return angle; + // y axis is inverted. + // See note about coordinate systems in placement_finder::find_point_placement(). + return -angle; } double placement_finder::get_spacing(double path_length, double layout_width) const diff --git a/src/vertex_cache.cpp b/src/vertex_cache.cpp index 5df556bca..319b9b6df 100644 --- a/src/vertex_cache.cpp +++ b/src/vertex_cache.cpp @@ -45,14 +45,12 @@ vertex_cache::vertex_cache(vertex_cache && rhs) double vertex_cache::current_segment_angle() { - return std::atan2(-(current_segment_->pos.y - segment_starting_point_.y), - current_segment_->pos.x - segment_starting_point_.x); + return std::atan2(current_segment_->pos.y - segment_starting_point_.y, + current_segment_->pos.x - segment_starting_point_.x); } double vertex_cache::angle(double width) { - // IMPORTANT NOTE: See note about coordinate systems in placement_finder::find_point_placement() - // for imformation about why the y axis is inverted! double tmp = width + position_in_segment_; if ((tmp <= current_segment_->length) && (tmp >= 0)) { @@ -68,8 +66,8 @@ double vertex_cache::angle(double width) if (move(width)) { pixel_position const& old_pos = s.get_state().position(); - return std::atan2(-(current_position_.y - old_pos.y), - current_position_.x - old_pos.x); + return std::atan2(current_position_.y - old_pos.y, + current_position_.x - old_pos.x); } else {