summaryrefslogtreecommitdiffstats
path: root/Project/Workspace.cpp
diff options
context:
space:
mode:
authorThales Lima Oliveira <thaleslima.ufu@gmail.com>2016-08-02 01:01:20 -0300
committerThales Lima Oliveira <thaleslima.ufu@gmail.com>2016-08-02 01:01:20 -0300
commit0ac91e091e52cae5745b14d62f77f905e559cf92 (patch)
tree918ebb487422cb5b34b0076fff3f976968bd6e9d /Project/Workspace.cpp
parent5e0be3d0a505781c31b3d23450fd92d4cc7b7ce7 (diff)
downloadPSP.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.cpp59
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();
}