diff options
| author | Jabier Arraiza Cenoz <jabier.arraiza@marker.es> | 2015-04-10 22:54:49 +0000 |
|---|---|---|
| committer | Jabiertxof <jtx@jtx.marker.es> | 2015-04-10 22:54:49 +0000 |
| commit | 1df5d1b28c59070eeabeac749e2fad0ceb6a781d (patch) | |
| tree | 544be4e0eb7b62bc1fc5f62e2829ad996027acda /src/2geom | |
| parent | Fix coding style issues in transform by two points LPE (diff) | |
| parent | added info about multiple pen feature in gui (diff) | |
| download | inkscape-1df5d1b28c59070eeabeac749e2fad0ceb6a781d.tar.gz inkscape-1df5d1b28c59070eeabeac749e2fad0ceb6a781d.zip | |
update to trunk
(bzr r13879.1.16)
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); } |
