summaryrefslogtreecommitdiffstats
path: root/Project/Workspace.cpp
diff options
context:
space:
mode:
authorThales1330 <thaleslima.ufu@gmail.com>2017-01-24 18:25:17 -0200
committerThales1330 <thaleslima.ufu@gmail.com>2017-01-24 18:25:17 -0200
commitbdb0625280d827ba7333b6fc9d6c6534e0720100 (patch)
tree6511dd5568556115db2affce10696efb7ff62c8f /Project/Workspace.cpp
parent56b93d40596cc6e39930faad0f6fdf347275ee49 (diff)
downloadPSP.git-bdb0625280d827ba7333b6fc9d6c6534e0720100.tar.gz
PSP.git-bdb0625280d827ba7333b6fc9d6c6534e0720100.tar.xz
PSP.git-bdb0625280d827ba7333b6fc9d6c6534e0720100.zip
Control editor implementation start
Diffstat (limited to 'Project/Workspace.cpp')
-rw-r--r--Project/Workspace.cpp40
1 files changed, 1 insertions, 39 deletions
diff --git a/Project/Workspace.cpp b/Project/Workspace.cpp
index 1ed8d93..c53bd60 100644
--- a/Project/Workspace.cpp
+++ b/Project/Workspace.cpp
@@ -1,5 +1,5 @@
#include "Workspace.h"
-
+#include "Camera.h"
#include "Element.h"
//#include "Bus.h"
#include "Line.h"
@@ -17,44 +17,6 @@
#include "PowerFlow.h"
#include "Fault.h"
-// Camera
-Camera::Camera()
-{
- m_translation = wxPoint2DDouble(0, 0);
- m_scale = 1.0;
-}
-
-Camera::~Camera() {}
-wxPoint2DDouble Camera::ScreenToWorld(wxPoint2DDouble screenCoords) const
-{
- return wxPoint2DDouble(
- screenCoords.m_x / m_scale - m_translation.m_x, screenCoords.m_y / m_scale - m_translation.m_y);
-}
-
-void Camera::SetTranslation(wxPoint2DDouble screenPoint)
-{
- m_translation = screenPoint / m_scale - m_translationStartPt;
-}
-
-void Camera::SetScale(wxPoint2DDouble screenPoint, double delta)
-{
- m_translation -= screenPoint * (1.0 - m_scale) / m_scale;
-
- m_scale += delta;
-
- // Limits: 5% - 300%
- if(m_scale < m_zoomMin) m_scale = m_zoomMin;
- if(m_scale > m_zoomMax) m_scale = m_zoomMax;
-
- m_translation += screenPoint * (1.0 - m_scale) / m_scale;
-}
-
-wxPoint2DDouble Camera::GetMousePosition(bool worldCoords) const
-{
- if(worldCoords) return ScreenToWorld(m_mousePosition);
- return m_mousePosition;
-}
-
// Workspace
Workspace::Workspace()
: WorkspaceBase(NULL)