Power System Platform  2026w10a-beta
Loading...
Searching...
No Matches
Camera Class Reference

Class responsible for the correct visualization of the elements on screen. More...

#include <Camera.h>

Public Member Functions

void SetScale (wxPoint2DDouble screenPoint, double delta)
 
void SetScale (double scale)
 
void SetTranslation (wxPoint2DDouble screenPoint)
 
void StartTranslation (wxPoint2DDouble startPoint)
 
void UpdateMousePosition (wxPoint2DDouble mousePosition)
 
double GetScale () const
 
wxPoint2DDouble GetTranslation () const
 
wxPoint2DDouble GetMousePosition (bool worldCoords=true) const
 
wxPoint2DDouble ScreenToWorld (wxPoint2DDouble screenCoords) const
 
double GetZoomMin () const
 
double GetZoomMax () const
 

Protected Attributes

wxPoint2DDouble m_translation
 
wxPoint2DDouble m_translationStartPt
 
double m_scale
 
wxPoint2DDouble m_mousePosition
 
double m_zoomMin = 0.01
 
double m_zoomMax = 3.0
 

Detailed Description

Class responsible for the correct visualization of the elements on screen.

Author
Thales Lima Oliveira thale.nosp@m.s@uf.nosp@m.u.br
Date
05/10/2017

Definition at line 30 of file Camera.h.

Constructor & Destructor Documentation

◆ Camera()

Camera::Camera ( )

Definition at line 20 of file Camera.cpp.

21{
22 m_translation = wxPoint2DDouble(0, 0);
23 m_scale = 1.0;
24}

◆ ~Camera()

Camera::~Camera ( )

Definition at line 26 of file Camera.cpp.

26{}

Member Function Documentation

◆ GetMousePosition()

wxPoint2DDouble Camera::GetMousePosition ( bool  worldCoords = true) const

Definition at line 51 of file Camera.cpp.

52{
53 if(worldCoords) return ScreenToWorld(m_mousePosition);
54 return m_mousePosition;
55}

◆ GetScale()

double Camera::GetScale ( ) const
inline

Definition at line 41 of file Camera.h.

41{ return m_scale; }

◆ GetTranslation()

wxPoint2DDouble Camera::GetTranslation ( ) const
inline

Definition at line 42 of file Camera.h.

42{ return m_translation; }

◆ GetZoomMax()

double Camera::GetZoomMax ( ) const
inline

Definition at line 46 of file Camera.h.

46{ return m_zoomMax; }

◆ GetZoomMin()

double Camera::GetZoomMin ( ) const
inline

Definition at line 45 of file Camera.h.

45{ return m_zoomMin; }

◆ ScreenToWorld()

wxPoint2DDouble Camera::ScreenToWorld ( wxPoint2DDouble  screenCoords) const

Definition at line 27 of file Camera.cpp.

28{
29 return wxPoint2DDouble(screenCoords.m_x / m_scale - m_translation.m_x,
30 screenCoords.m_y / m_scale - m_translation.m_y);
31}

◆ SetScale() [1/2]

void Camera::SetScale ( double  scale)
inline

Definition at line 37 of file Camera.h.

37{ m_scale = scale; }

◆ SetScale() [2/2]

void Camera::SetScale ( wxPoint2DDouble  screenPoint,
double  delta 
)

Definition at line 38 of file Camera.cpp.

39{
40 m_translation -= screenPoint * (1.0 - m_scale) / m_scale;
41
42 m_scale += delta;
43
44 // Limits: 5% - 300%
45 if(m_scale < m_zoomMin) m_scale = m_zoomMin;
46 if(m_scale > m_zoomMax) m_scale = m_zoomMax;
47
48 m_translation += screenPoint * (1.0 - m_scale) / m_scale;
49}

◆ SetTranslation()

void Camera::SetTranslation ( wxPoint2DDouble  screenPoint)

Definition at line 33 of file Camera.cpp.

34{
35 m_translation = screenPoint / m_scale - m_translationStartPt;
36}

◆ StartTranslation()

void Camera::StartTranslation ( wxPoint2DDouble  startPoint)
inline

Definition at line 39 of file Camera.h.

39{ this->m_translationStartPt = startPoint; }

◆ UpdateMousePosition()

void Camera::UpdateMousePosition ( wxPoint2DDouble  mousePosition)
inline

Definition at line 40 of file Camera.h.

40{ this->m_mousePosition = mousePosition; }

Member Data Documentation

◆ m_mousePosition

wxPoint2DDouble Camera::m_mousePosition
protected

Definition at line 52 of file Camera.h.

◆ m_scale

double Camera::m_scale
protected

Definition at line 50 of file Camera.h.

◆ m_translation

wxPoint2DDouble Camera::m_translation
protected

Definition at line 48 of file Camera.h.

◆ m_translationStartPt

wxPoint2DDouble Camera::m_translationStartPt
protected

Definition at line 49 of file Camera.h.

◆ m_zoomMax

double Camera::m_zoomMax = 3.0
protected

Definition at line 55 of file Camera.h.

◆ m_zoomMin

double Camera::m_zoomMin = 0.01
protected

Definition at line 54 of file Camera.h.


The documentation for this class was generated from the following files: