diff options
author | Thales Lima Oliveira <thaleslima.ufu@gmail.com> | 2016-08-02 01:01:20 -0300 |
---|---|---|
committer | Thales Lima Oliveira <thaleslima.ufu@gmail.com> | 2016-08-02 01:01:20 -0300 |
commit | 0ac91e091e52cae5745b14d62f77f905e559cf92 (patch) | |
tree | 918ebb487422cb5b34b0076fff3f976968bd6e9d /Project/Workspace.cpp | |
parent | 5e0be3d0a505781c31b3d23450fd92d4cc7b7ce7 (diff) | |
download | PSP.git-0ac91e091e52cae5745b14d62f77f905e559cf92.tar.gz PSP.git-0ac91e091e52cae5745b14d62f77f905e559cf92.tar.xz PSP.git-0ac91e091e52cae5745b14d62f77f905e559cf92.zip |
Cycle dependence fixed.
Next step: remove mouse handler
Diffstat (limited to 'Project/Workspace.cpp')
-rw-r--r-- | Project/Workspace.cpp | 59 |
1 files changed, 33 insertions, 26 deletions
diff --git a/Project/Workspace.cpp b/Project/Workspace.cpp index ec27039..367ca4a 100644 --- a/Project/Workspace.cpp +++ b/Project/Workspace.cpp @@ -1,29 +1,36 @@ #include "Workspace.h" + #include "MouseEventsHandler.h" +#include "Bus.h" +// Camera Camera::Camera() { - m_translation = wxPoint2DDouble(0,0); - m_scale = 1.0; + m_translation = wxPoint2DDouble(0, 0); + m_scale = 1.0; } -Camera::~Camera() +Camera::~Camera() {} +wxPoint2DDouble Camera::ScreenToWorld(wxPoint2DDouble screenCoords) { + return wxPoint2DDouble(screenCoords.m_x / m_scale - m_translation.m_x, + screenCoords.m_y / m_scale - m_translation.m_y); } -wxPoint2DDouble Camera::ScreenToWorld(wxPoint2DDouble screenCoords) +// Workspace +Workspace::Workspace() : WorkspaceBase(NULL) { - return wxPoint2DDouble(screenCoords.m_x / m_scale - m_translation.m_x, - screenCoords.m_y / m_scale - m_translation.m_y); + m_glContext = new wxGLContext(m_glCanvas); + m_camera = new Camera(); } -Workspace::Workspace(wxWindow* parent, wxString name /*, int workspaceID*/) : WorkspaceBase(parent) +Workspace::Workspace(wxWindow* parent, wxString name) : WorkspaceBase(parent) { m_name = name; // m_workspaceID = workspaceID; m_glContext = new wxGLContext(m_glCanvas); - m_mouseEventsHandler = new MouseEventsHandler(this); - m_camera = new Camera(); + m_mouseEventsHandler = new MouseEventsHandler(this); + m_camera = new Camera(); } Workspace::~Workspace() @@ -33,9 +40,9 @@ Workspace::~Workspace() if(!(*it)) delete *it; it++; } - - delete m_camera; - delete m_mouseEventsHandler; + + delete m_camera; + delete m_mouseEventsHandler; } void Workspace::OnPaint(wxPaintEvent& event) @@ -54,7 +61,7 @@ void Workspace::OnPaint(wxPaintEvent& event) glFlush(); m_glCanvas->SwapBuffers(); - event.Skip(); + event.Skip(); } void Workspace::SetViewport() @@ -84,28 +91,28 @@ void Workspace::SetViewport() void Workspace::OnLeftClickDown(wxMouseEvent& event) { if(m_insertMode) m_insertMode = false; - event.Skip(); + event.Skip(); } /* void Workspace::OnKeyDown(wxKeyEvent& event) { if(event.GetKeyCode() == 'B' && !m_insertMode) { - Bus* newBus = new Bus(m_camera->ScreenToWorld(event.GetPosition())); - m_elementList.push_back(newBus); - m_insertMode = true; - Redraw(); - } - event.Skip(); + Bus* newBus = new Bus(m_camera->ScreenToWorld(event.GetPosition())); + m_elementList.push_back(newBus); + m_insertMode = true; + Redraw(); + } + event.Skip(); }*/ void Workspace::OnMouseMotion(wxMouseEvent& event) { - if(m_insertMode) { - std::vector<Element*>::iterator it = m_elementList.end() - 1; - Element* element = *it; - element->SetPosition(m_camera->ScreenToWorld(event.GetPosition())); - Redraw(); + if(m_insertMode) { + std::vector<Element*>::iterator it = m_elementList.end() - 1; + Element* element = *it; + element->SetPosition(m_camera->ScreenToWorld(event.GetPosition())); + Redraw(); } - event.Skip(); + event.Skip(); } |