summaryrefslogtreecommitdiffstats
path: root/src/2geom
diff options
context:
space:
mode:
authorJabier Arraiza Cenoz <jabier.arraiza@marker.es>2015-04-10 20:11:50 +0000
committerJabiertxof <jtx@jtx.marker.es>2015-04-10 20:11:50 +0000
commit5be72612bc09d01581d572d152dafdd64f5cfd7e (patch)
tree569b4adb875b53b26aa7166379c2b8d36a37439c /src/2geom
parentFix coding style issues in mirror symmetry code (diff)
parentadded info about multiple pen feature in gui (diff)
downloadinkscape-5be72612bc09d01581d572d152dafdd64f5cfd7e.tar.gz
inkscape-5be72612bc09d01581d572d152dafdd64f5cfd7e.zip
update to trunk
(bzr r13682.1.26)
Diffstat (limited to 'src/2geom')
-rw-r--r--src/2geom/line.h17
1 files changed, 16 insertions, 1 deletions
diff --git a/src/2geom/line.h b/src/2geom/line.h
index ade67f818..cbd68fa08 100644
--- a/src/2geom/line.h
+++ b/src/2geom/line.h
@@ -35,6 +35,7 @@
#define LIB2GEOM_SEEN_LINE_H
#include <cmath>
+#include <iostream>
#include <boost/optional.hpp>
#include <2geom/bezier-curve.h> // for LineSegment
#include <2geom/rect.h>
@@ -258,9 +259,19 @@ public:
dist = -dot(n, m_origin);
return n;
}
- /// @}
+
+ friend inline std::ostream &operator<< (std::ostream &out_file, const Geom::Line &in_line);
+/// @}
}; // end class Line
+/** @brief Output operator for lines.
+ * Prints out representation (point + versor)
+ */
+inline std::ostream &operator<< (std::ostream &out_file, const Geom::Line &in_line) {
+ out_file << "X: " << in_line.m_origin[X] << " Y: " << in_line.m_origin[Y]
+ << " dX: " << in_line.m_versor[X] << " dY: " << in_line.m_versor[Y];
+ return out_file;
+}
inline
double distance(Point const& _point, Line const& _line)
@@ -365,6 +376,10 @@ inline
Line make_angle_bisector_line(Point const& A, Point const& O, Point const& B)
{
Point M = middle_point(A,B);
+ if (are_near(O,M)) {
+ Line l(A,B);
+ M += (make_orthogonal_line(O,l)).versor();
+ }
return Line(O,M);
}