//
#include "mirroraction.h"
+#include "applicationwindow.h"
+#include "container.h"
+#include "drawingview.h"
#include "line.h"
+#include "mathconstants.h"
#include "painter.h"
//#include "vector.h"
MirrorAction::MirrorAction(): state(FIRST_POINT), line(NULL),
- shiftWasPressedOnNextPoint(false)
+ shiftWasPressedOnNextPoint(false), mirror(new Container(Vector()))
{
}
painter->DrawLine(p1, p2);
painter->DrawHandle(p2);
- QString text = tr("Length: %1 in.");
- text = text.arg(Vector::Magnitude(p1, p2));
+ double absAngle = (Vector(p2 - p1).Angle()) * RADIANS_TO_DEGREES;
+// double absLength = Vector(position - endpoint).Magnitude();
+
+ QString text = QChar(0x2221) + QObject::tr(": %1");
+ text = text.arg(absAngle);
+// QString text = tr("Length: %1 in.");
+// text = text.arg(Vector::Magnitude(p1, p2));
painter->DrawInformativeText(text);
+
+ mirror->Draw(painter);
}
}
if (state == FIRST_POINT)
p1 = point;
else
+ {
p2 = point;
+
+ mirror->Clear();
+ int itemsSelected = ApplicationWindow::drawing->document.ItemsSelected();
+
+ if (itemsSelected == 0)
+ return;
+
+ for(int i=0; i<itemsSelected; i++)
+ {
+ Object * object = ApplicationWindow::drawing->document.SelectedItem(i);
+ Object * mirrored = object->Mirror(p1, p2);
+ mirror->Add(mirrored);
+ }
+ }
}