diff -r 738673e8a6b4 -r f4c80d92e71e src/editmodes/rectangleMode.cc
--- a/src/editmodes/rectangleMode.cc Tue Mar 03 17:42:21 2015 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,104 +0,0 @@
-/*
- * LDForge: LDraw parts authoring CAD
- * Copyright (C) 2013 - 2015 Teemu Piippo
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
- */
-
-#include
-#include
-#include "rectangleMode.h"
-#include "../ldObject.h"
-#include "../glRenderer.h"
-
-RectangleMode::RectangleMode (GLRenderer* renderer) :
- Super (renderer),
- m_rectangleVerts (QVector(4)) {}
-
-EditModeType RectangleMode::type() const
-{
- return EditModeType::Rectangle;
-}
-
-void RectangleMode::render (QPainter& painter) const
-{
- renderPolygon (painter, (m_drawedVerts.size() > 0) ? m_rectangleVerts :
- QVector ({renderer()->position3D()}), true, false);
-}
-
-bool RectangleMode::mouseReleased (MouseEventData const& data)
-{
- if (Super::mouseReleased (data))
- return true;
-
- if (data.releasedButtons & Qt::LeftButton)
- {
- if (m_drawedVerts.size() == 2)
- {
- LDQuadPtr quad (LDSpawn());
- updateRectVerts();
-
- for (int i = 0; i < quad->numVertices(); ++i)
- quad->setVertex (i, m_rectangleVerts[i]);
-
- quad->setColor (MainColor());
- finishDraw (LDObjectList ({quad}));
- return true;
- }
-
- addDrawnVertex (renderer()->position3D());
- return true;
- }
-
- return false;
-}
-
-//
-// Update rect vertices when the mouse moves since the 3d position likely has changed
-//
-bool RectangleMode::mouseMoved (QMouseEvent*)
-{
- updateRectVerts();
- return false;
-}
-
-void RectangleMode::updateRectVerts()
-{
- if (m_drawedVerts.isEmpty())
- {
- for (int i = 0; i < 4; ++i)
- m_rectangleVerts[i] = renderer()->position3D();
-
- return;
- }
-
- Vertex v0 = m_drawedVerts[0],
- v1 = (m_drawedVerts.size() >= 2) ? m_drawedVerts[1] : renderer()->position3D();
-
- const Axis localx = renderer()->getCameraAxis (false),
- localy = renderer()->getCameraAxis (true),
- localz = (Axis) (3 - localx - localy);
-
- for (int i = 0; i < 4; ++i)
- m_rectangleVerts[i].setCoordinate (localz, renderer()->getDepthValue());
-
- m_rectangleVerts[0].setCoordinate (localx, v0[localx]);
- m_rectangleVerts[0].setCoordinate (localy, v0[localy]);
- m_rectangleVerts[1].setCoordinate (localx, v1[localx]);
- m_rectangleVerts[1].setCoordinate (localy, v0[localy]);
- m_rectangleVerts[2].setCoordinate (localx, v1[localx]);
- m_rectangleVerts[2].setCoordinate (localy, v1[localy]);
- m_rectangleVerts[3].setCoordinate (localx, v0[localx]);
- m_rectangleVerts[3].setCoordinate (localy, v1[localy]);
-}