From 72aba43e422ebb0b122c91bae5c20c7b6549027e Mon Sep 17 00:00:00 2001 From: Tavmjong Bah Date: Tue, 24 Sep 2019 13:17:51 +0200 Subject: Remove use of sp_round. --- src/ui/tools/spiral-tool.cpp | 17 +++++++++++------ src/ui/tools/star-tool.cpp | 12 +++++++----- 2 files changed, 18 insertions(+), 11 deletions(-) (limited to 'src') diff --git a/src/ui/tools/spiral-tool.cpp b/src/ui/tools/spiral-tool.cpp index dd4a839e4..9de9800ec 100644 --- a/src/ui/tools/spiral-tool.cpp +++ b/src/ui/tools/spiral-tool.cpp @@ -26,18 +26,20 @@ #include "desktop.h" #include "document-undo.h" #include "document.h" -#include "include/macros.h" #include "message-context.h" -#include "ui/pixmaps/cursor-spiral.xpm" #include "selection.h" #include "verbs.h" #include "display/sp-canvas-item.h" #include "display/sp-canvas.h" +#include "include/sp-round.h" +#include "include/macros.h" + #include "object/sp-namedview.h" #include "object/sp-spiral.h" +#include "ui/pixmaps/cursor-spiral.xpm" #include "ui/shape-editor.h" #include "ui/tools/spiral-tool.h" @@ -361,10 +363,13 @@ void SpiralTool::drag(Geom::Point const &p, guint state) { Geom::Point const delta = p1 - p0; gdouble const rad = Geom::L2(delta); - gdouble arg = Geom::atan2(delta) - 2.0*M_PI*this->spiral->revo; + // Start angle calculated from end angle and number of revolutions. + gdouble arg = Geom::atan2(delta) - 2.0*M_PI * spiral->revo; if (state & GDK_CONTROL_MASK) { - arg = sp_round(arg, M_PI/snaps); + /* Snap start angle */ + double snaps_radian = M_PI/snaps; + arg = std::round(arg/snaps_radian) * snaps_radian; } /* Fixme: these parameters should be got from dialog box */ @@ -378,8 +383,8 @@ void SpiralTool::drag(Geom::Point const &p, guint state) { Inkscape::Util::Quantity q = Inkscape::Util::Quantity(rad, "px"); Glib::ustring rads = q.string(desktop->namedview->display_units); this->message_context->setF(Inkscape::IMMEDIATE_MESSAGE, - _("Spiral: radius %s, angle %5g°; with Ctrl to snap angle"), - rads.c_str(), sp_round((arg + 2.0*M_PI*this->spiral->revo)*180/M_PI, 0.0001)); + _("Spiral: radius %s, angle %.2f°; with Ctrl to snap angle"), + rads.c_str(), arg * 180/M_PI + 360*spiral->revo); } void SpiralTool::finishItem() { diff --git a/src/ui/tools/star-tool.cpp b/src/ui/tools/star-tool.cpp index a6a143ec0..8b916ae36 100644 --- a/src/ui/tools/star-tool.cpp +++ b/src/ui/tools/star-tool.cpp @@ -26,7 +26,6 @@ #include "desktop.h" #include "document-undo.h" #include "document.h" -#include "include/macros.h" #include "message-context.h" #include "selection.h" #include "verbs.h" @@ -34,6 +33,8 @@ #include "display/sp-canvas.h" #include "display/sp-canvas-item.h" +#include "include/macros.h" + #include "object/sp-namedview.h" #include "object/sp-star.h" @@ -381,7 +382,8 @@ void StarTool::drag(Geom::Point p, guint state) if (state & GDK_CONTROL_MASK) { /* Snap angle */ - arg1 = sp_round(arg1, M_PI / snaps); + double snaps_radian = M_PI/snaps; + arg1 = std::round(arg1/snaps_radian) * snaps_radian; } sp_star_position_set(this->star, this->magnitude, p0, r1, r1 * this->proportion, @@ -392,9 +394,9 @@ void StarTool::drag(Geom::Point p, guint state) Glib::ustring rads = q.string(desktop->namedview->display_units); this->message_context->setF(Inkscape::IMMEDIATE_MESSAGE, ( this->isflatsided? - _("Polygon: radius %s, angle %5g°; with Ctrl to snap angle") - : _("Star: radius %s, angle %5g°; with Ctrl to snap angle") ), - rads.c_str(), sp_round((arg1) * 180 / M_PI, 0.0001)); + _("Polygon: radius %s, angle %.2f°; with Ctrl to snap angle") : + _("Star: radius %s, angle %.2f°; with Ctrl to snap angle") ), + rads.c_str(), arg1 * 180 / M_PI); } void StarTool::finishItem() { -- cgit v1.2.3