summaryrefslogtreecommitdiffstats
path: root/src/2geom/point.cpp
diff options
context:
space:
mode:
authorKrzysztof Kosi??ski <tweenk.pl@gmail.com>2015-07-04 16:15:46 +0000
committerKrzysztof KosiƄski <tweenk.pl@gmail.com>2015-07-04 16:15:46 +0000
commit1112ab0a12fc0cb5a6b00d1bbd5b100c55eedff8 (patch)
treea91517f9165322b4e42c6cdeb4263beaedc4d02f /src/2geom/point.cpp
parentPackaging. New Win32 installer Danish translation. (diff)
parentUpgrade to 2Geom r2413 (diff)
downloadinkscape-1112ab0a12fc0cb5a6b00d1bbd5b100c55eedff8.tar.gz
inkscape-1112ab0a12fc0cb5a6b00d1bbd5b100c55eedff8.zip
Sync 2Geom to revision 2413.
May introduce regressions. (bzr r14226)
Diffstat (limited to 'src/2geom/point.cpp')
-rw-r--r--src/2geom/point.cpp14
1 files changed, 11 insertions, 3 deletions
diff --git a/src/2geom/point.cpp b/src/2geom/point.cpp
index b0b00b5da..bcdbab429 100644
--- a/src/2geom/point.cpp
+++ b/src/2geom/point.cpp
@@ -35,6 +35,7 @@
#include <assert.h>
#include <math.h>
+#include <2geom/coord.h>
#include <2geom/point.h>
#include <2geom/transforms.h>
@@ -146,8 +147,8 @@ bool is_zero(Point const &p) {
/** @brief True if the point has a length near 1. The are_near() function is used.
* @relates Point */
-bool is_unit_vector(Point const &p) {
- return are_near(L2(p), 1.0);
+bool is_unit_vector(Point const &p, Coord eps) {
+ return are_near(L2(p), 1.0, eps);
}
/** @brief Return the angle between the point and the +X axis.
* @return Angle in \f$(-\pi, \pi]\f$.
@@ -161,7 +162,7 @@ Coord atan2(Point const &p) {
* @return Angle in \f$(-\pi, \pi]\f$.
* @relates Point */
Coord angle_between(Point const &a, Point const &b) {
- return std::atan2(cross(b,a), dot(b,a));
+ return std::atan2(cross(a,b), dot(a,b));
}
/** @brief Create a normalized version of a point.
@@ -230,6 +231,13 @@ Point constrain_angle(Point const &A, Point const &B, unsigned int n, Point cons
return A + dir * Rotate(k * 2.0 * M_PI / (double)n) * L2(diff);
}
+std::ostream &operator<<(std::ostream &out, const Geom::Point &p)
+{
+ out << "(" << format_coord_nice(p[X]) << ", "
+ << format_coord_nice(p[Y]) << ")";
+ return out;
+}
+
} // end namespace Geom
/*