diff options
author | neoraider <devnull@localhost> | 2008-04-06 15:29:03 +0200 |
---|---|---|
committer | neoraider <devnull@localhost> | 2008-04-06 15:29:03 +0200 |
commit | 356efaf89afdad141b313767e1a2b89de3c08d0a (patch) | |
tree | 37edb2a0fc0ea15f4f60e45ed411cbea7b4c12c5 /ToolRotate.cpp | |
parent | 258eb984bafe0f667d1e76de61c8afaa23f39ef4 (diff) | |
download | zoomedit-356efaf89afdad141b313767e1a2b89de3c08d0a.tar zoomedit-356efaf89afdad141b313767e1a2b89de3c08d0a.zip |
zoomedit: Recreated ZoomEdit based on Glademm.
Diffstat (limited to 'ToolRotate.cpp')
-rw-r--r-- | ToolRotate.cpp | 96 |
1 files changed, 0 insertions, 96 deletions
diff --git a/ToolRotate.cpp b/ToolRotate.cpp deleted file mode 100644 index 342ae2e..0000000 --- a/ToolRotate.cpp +++ /dev/null @@ -1,96 +0,0 @@ -#include "ToolRotate.h" -#include <GL/gl.h> - - -ToolRotate::ToolRotate(EditManager *editManager) : Renderer(editManager), sidebar(editManager) { - this->editManager = editManager; - - pressed = false; - - image = gtk_image_new_from_stock(GTK_STOCK_MISSING_IMAGE, GTK_ICON_SIZE_BUTTON); - g_object_ref_sink(G_OBJECT(image)); -} - -ToolRotate::~ToolRotate() { - g_object_unref(G_OBJECT(image)); -} - -void ToolRotate::activate() { - pressed = false; - editManager->setSelectedObject(NULL); -} - -bool ToolRotate::buttonPress(unsigned int button, const Vertex *v) { - if(button != 1 || !editManager->getHoveredObject()) - return false; - - pressed = true; - valid = false; - vertexRot = vertex = *v; - - editManager->setSelectedObject(editManager->getHoveredObject()); - - editManager->redraw(); - sidebar.update(); - - return true; -} - -bool ToolRotate::buttonRelease(unsigned int button, const Vertex *v) { - if(button != 1) - return false; - - pressed = false; - - editManager->setSelectedObject(NULL); - - editManager->redraw(); - sidebar.update(); - - return true; -} - -bool ToolRotate::motion(const Vertex *v, float scale) { - if(!pressed) - return false; - - if(!v) - return false; - - vertex = *v; - - float a = atan2((vertex-vertexRot).getY(), (vertex-vertexRot).getX()); - - if(vertexRot.distanceSq(vertex) > (10*10)/(scale*scale)) { - if(valid) - editManager->getSelectedObject()->rotate(vertexRot, a-angle); - - else - valid = true; - } - else - valid = false; - - angle = a; - - return false; -} - -void ToolRotate::render(const Level &level, const Rectangle &rect, float scale) { - Renderer::render(level, rect, scale); - - if(pressed && valid) { - glLineWidth(1.0f); - glColor4f(1.0f, 1.0f, 1.0f, 0.7f); - drawCircleDotted(vertexRot, vertexRot.distance(vertex), 64, 16, angle); - - glLineWidth(2.0f); - - glBegin(GL_LINES); - - glVertex2f(vertexRot.getX(), vertexRot.getY()); - glVertex2f(vertex.getX(), vertex.getY()); - - glEnd(); - } -} |