From 9cef6be6fbc166e1d97b258611905af8b92a0317 Mon Sep 17 00:00:00 2001 From: "Jon A. Cruz" Date: Sun, 24 Mar 2013 18:41:57 -0700 Subject: Fixed uninitialized variables & misc warnings. (bzr r12241) --- src/2geom/elliptical-arc.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/2geom/elliptical-arc.cpp') diff --git a/src/2geom/elliptical-arc.cpp b/src/2geom/elliptical-arc.cpp index 75b6777a2..29e983ad4 100644 --- a/src/2geom/elliptical-arc.cpp +++ b/src/2geom/elliptical-arc.cpp @@ -202,7 +202,7 @@ std::vector EllipticalArc::roots(Coord v, Dim2 d) const { return sol; } - double ray_prj; + double ray_prj = 0.0; switch(d) { case X: -- cgit v1.2.3 From 917478418da526f439edce20efa935080e3c5e11 Mon Sep 17 00:00:00 2001 From: Tavmjong Bah Date: Mon, 14 Oct 2013 15:17:05 +0200 Subject: Fix tangent calculation for counter-clockwise arcs. (bzr r12687) --- src/2geom/elliptical-arc.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/2geom/elliptical-arc.cpp') diff --git a/src/2geom/elliptical-arc.cpp b/src/2geom/elliptical-arc.cpp index 29e983ad4..d2cb0b707 100644 --- a/src/2geom/elliptical-arc.cpp +++ b/src/2geom/elliptical-arc.cpp @@ -360,7 +360,7 @@ EllipticalArc::pointAndDerivatives(Coord t, unsigned int n) const for ( unsigned int i = 0; i < m; ++i ) { result.push_back( ea->pointAtAngle(angle) ); - angle += M_PI/2; + angle += (_sweep ? M_PI/2 : -M_PI/2); if ( !(angle < 2*M_PI) ) angle -= 2*M_PI; } m = nn / 4; -- cgit v1.2.3 From 5eb9b4815a12cc0dafd07905f7715a7e15a92b41 Mon Sep 17 00:00:00 2001 From: "Johan B. C. Engelen" Date: Mon, 13 Jan 2014 00:25:39 +0100 Subject: update 2geom's copy to r2142 (bzr r12921) --- src/2geom/elliptical-arc.cpp | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) (limited to 'src/2geom/elliptical-arc.cpp') diff --git a/src/2geom/elliptical-arc.cpp b/src/2geom/elliptical-arc.cpp index d2cb0b707..c96d5f1a6 100644 --- a/src/2geom/elliptical-arc.cpp +++ b/src/2geom/elliptical-arc.cpp @@ -115,9 +115,11 @@ Rect EllipticalArc::boundsExact() const if ( arc_extremes[2] < arc_extremes[3] ) std::swap(arc_extremes[2], arc_extremes[3]); - for (unsigned i = 0; i < 4; ++i) { - if (containsAngle(extremes[i])) { - arc_extremes[i] = valueAtAngle(extremes[i], (i >> 1) ? Y : X); + if ( !are_near(initialPoint(), finalPoint()) ) { + for (unsigned i = 0; i < 4; ++i) { + if (containsAngle(extremes[i])) { + arc_extremes[i] = valueAtAngle(extremes[i], (i >> 1) ? Y : X); + } } } @@ -264,7 +266,7 @@ std::vector EllipticalArc::roots(Coord v, Dim2 d) const } double rotx, roty; - sincos(_rot_angle, roty, rotx); + sincos(_rot_angle, roty, rotx); /// \todo sin and cos are calculated in many places in this function, optimize this a bit! if (d == X) roty = -roty; double rxrotx = ray(X) * rotx; @@ -569,7 +571,7 @@ std::vector EllipticalArc::allNearestPoints( Point const& p, double from double mindistsq1 = std::numeric_limits::max(); double mindistsq2 = std::numeric_limits::max(); double dsq; - unsigned int mi1, mi2; + unsigned int mi1 = 0, mi2 = 0; for ( unsigned int i = 0; i < real_sol.size(); ++i ) { dsq = distanceSq(p, pointAtAngle(real_sol[i])); -- cgit v1.2.3