diff options
| author | Jabier Arraiza Cenoz <jabier.arraiza@marker.es> | 2015-04-09 18:54:52 +0000 |
|---|---|---|
| committer | Jabiertxof <jtx@jtx.marker.es> | 2015-04-09 18:54:52 +0000 |
| commit | 42569eeea6a78406c723a0c2139a6adbb5f9c9cc (patch) | |
| tree | 480aff49241ce0c5b30837bf8bd6137e0a9f2789 /src/2geom | |
| parent | update to trunk (diff) | |
| parent | Cleaned up cmake files to build successfully on Linux. (diff) | |
| download | inkscape-42569eeea6a78406c723a0c2139a6adbb5f9c9cc.tar.gz inkscape-42569eeea6a78406c723a0c2139a6adbb5f9c9cc.zip | |
update to trunk
(bzr r12588.1.40)
Diffstat (limited to 'src/2geom')
| -rw-r--r-- | src/2geom/line.h | 17 |
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); } |
