insilmaril@139: #include insilmaril@139: insilmaril@0: #include insilmaril@164: #include insilmaril@0: insilmaril@0: #include "misc.h" insilmaril@0: insilmaril@792: #include "geometry.h" insilmaril@792: insilmaril@129: QString qpointToString (const QPoint &p) insilmaril@792: { return "(" + QString("%1").arg(p.x()) +","+ QString ("%1").arg (p.y()) +")"; } insilmaril@0: insilmaril@792: QString qpointFToString (const QPointF &p) insilmaril@792: { return "(" + QString("%1").arg(p.x()) +","+ QString ("%1").arg (p.y()) +")"; } insilmaril@792: insilmaril@792: QString VectorToString (const Vector &p) insilmaril@792: { return "(" + QString("%1").arg(p.x()) +","+ QString ("%1").arg (p.y()) +")"; } insilmaril@408: insilmaril@0: ostream &operator<< (ostream &stream, QPoint const &p) insilmaril@0: { insilmaril@366: stream << "("<=0) insilmaril@0: return M_PI_2; insilmaril@0: else insilmaril@0: return 3* M_PI_2; insilmaril@0: } else insilmaril@0: { insilmaril@0: if (p.y()>0) insilmaril@408: return (qreal)(M_PI - atan ( (qreal)(p.x()) / (qreal)(p.y()) ) ); insilmaril@0: else insilmaril@0: if (p.x()<0) insilmaril@408: return (qreal)( 2*M_PI - atan ( (qreal)(p.x()) / (qreal)(p.y()) ) ); insilmaril@0: else insilmaril@408: return (qreal)( - atan ( (qreal)(p.x()) / (qreal)(p.y()) ) ); insilmaril@0: } insilmaril@0: } insilmaril@0: insilmaril@408: qreal max(qreal a, qreal b) insilmaril@0: { insilmaril@0: if (a>b) insilmaril@0: return a; insilmaril@0: return b; insilmaril@0: } insilmaril@0: