Eclipse SUMO - Simulation of Urban MObility
Loading...
Searching...
No Matches
GUIPerspectiveChanger Class Referenceabstract

#include <GUIPerspectiveChanger.h>

Inheritance diagram for GUIPerspectiveChanger:
[legend]
Collaboration diagram for GUIPerspectiveChanger:
[legend]

Public Types

enum  MouseState { MOUSEBTN_NONE = 0 , MOUSEBTN_LEFT = 1 , MOUSEBTN_RIGHT = 2 , MOUSEBTN_MIDDLE = 4 }
 mouse states More...
 

Public Member Functions

virtual void centerTo (const Position &pos, double radius, bool applyZoom=true)=0
 Centers the view to the given position, setting it to a size that covers the radius. Used for: Centering of vehicles and junctions *‍/.
 
virtual void changeCanvasSizeLeft (int change)=0
 
FXint getMouseXPosition () const
 Returns the last mouse x-position an event occurred at.
 
FXint getMouseYPosition () const
 Returns the last mouse y-position an event occurred at.
 
virtual double getRotation () const =0
 Returns the rotation of the canvas stored in this changer.
 
Boundary getViewport (bool fixRatio=true)
 get viewport
 
virtual double getXPos () const =0
 Returns the x-offset of the field to show stored in this changer.
 
virtual double getYPos () const =0
 Returns the y-offset of the field to show stored in this changer.
 
virtual double getZoom () const =0
 Returns the zoom factor computed stored in this changer.
 
virtual double getZPos () const =0
 Returns the camera height corresponding to the current zoom factor.
 
 GUIPerspectiveChanger (GUISUMOAbstractView &callBack, const Boundary &viewPort)
 Constructor.
 
virtual void onDoubleClicked (void *data)
 called when user click two times
 
virtual long onKeyPress (void *data)
 called when user press a key
 
virtual long onKeyRelease (void *data)
 called when user releases a key
 
virtual void onLeftBtnPress (void *data)
 mouse functions
 
virtual bool onLeftBtnRelease (void *data)
 called when user releases left button
 
virtual void onMiddleBtnPress (void *data)
 called when user press middle button
 
virtual bool onMiddleBtnRelease (void *data)
 called when user releases middle button
 
virtual void onMouseMove (void *data)
 called when user moves mouse
 
virtual void onMouseWheel (void *data)
 called when user changes mouse wheel
 
virtual void onRightBtnPress (void *data)
 called when user press right button
 
virtual bool onRightBtnRelease (void *data)
 called when user releases right button
 
virtual void setRotation (double rotation)=0
 Sets the rotation.
 
virtual void setViewport (const Boundary &viewPort)
 set viewport
 
virtual void setViewport (double zoom, double xPos, double yPos)=0
 Sets the viewport Used for: Adapting a new viewport.
 
virtual void setViewportFrom (double xPos, double yPos, double zPos)=0
 Alternative method for setting the viewport.
 
virtual double zoom2ZPos (double zoom) const =0
 Returns the camera height at which the given zoom level is reached.
 
virtual double zPos2Zoom (double zPos) const =0
 Returns the zoom level that is achieved at a given camera height.
 
virtual ~GUIPerspectiveChanger ()
 Destructor.
 

Protected Attributes

GUISUMOAbstractViewmyCallback
 The parent window (canvas to scale)
 
FXint myMouseXPosition
 the current mouse position
 
FXint myMouseYPosition
 
Boundary myViewPort
 the intended viewport
 

Private Member Functions

 GUIPerspectiveChanger (const GUIPerspectiveChanger &)
 Invalidated copy constructor.
 
GUIPerspectiveChangeroperator= (const GUIPerspectiveChanger &)
 Invalidated assignment operator.
 
Boundary patchedViewPort ()
 patched viewPort with the same aspect ratio as the canvas
 

Detailed Description

This is the interface for implementation of own classes that handle the interaction between the user and a display field. While most of our (IVF) interfaces allow zooming by choosing the rectangle to show, other types of interaction are possible and have been implemented. To differ between the behaviours, all types of interaction between the user and the canvas are send to this class: mouse moving, mouse button pressing and releasing.

Definition at line 50 of file GUIPerspectiveChanger.h.

Member Enumeration Documentation

◆ MouseState

mouse states

Enumerator
MOUSEBTN_NONE 
MOUSEBTN_LEFT 
MOUSEBTN_RIGHT 
MOUSEBTN_MIDDLE 

Definition at line 53 of file GUIPerspectiveChanger.h.

Constructor & Destructor Documentation

◆ GUIPerspectiveChanger() [1/2]

GUIPerspectiveChanger::GUIPerspectiveChanger ( GUISUMOAbstractView callBack,
const Boundary viewPort 
)

Constructor.

Definition at line 31 of file GUIPerspectiveChanger.cpp.

◆ ~GUIPerspectiveChanger()

GUIPerspectiveChanger::~GUIPerspectiveChanger ( )
virtual

Destructor.

Definition at line 37 of file GUIPerspectiveChanger.cpp.

◆ GUIPerspectiveChanger() [2/2]

GUIPerspectiveChanger::GUIPerspectiveChanger ( const GUIPerspectiveChanger )
private

Invalidated copy constructor.

Member Function Documentation

◆ centerTo()

virtual void GUIPerspectiveChanger::centerTo ( const Position pos,
double  radius,
bool  applyZoom = true 
)
pure virtual

Centers the view to the given position, setting it to a size that covers the radius. Used for: Centering of vehicles and junctions *‍/.

Implemented in GUIOSGPerspectiveChanger, and GUIDanielPerspectiveChanger.

Referenced by GUISUMOAbstractView::centerTo(), and GUISUMOAbstractView::centerTo().

Here is the caller graph for this function:

◆ changeCanvasSizeLeft()

virtual void GUIPerspectiveChanger::changeCanvasSizeLeft ( int  change)
pure virtual

◆ getMouseXPosition()

FXint GUIPerspectiveChanger::getMouseXPosition ( ) const

Returns the last mouse x-position an event occurred at.

Definition at line 112 of file GUIPerspectiveChanger.cpp.

References myMouseXPosition.

◆ getMouseYPosition()

FXint GUIPerspectiveChanger::getMouseYPosition ( ) const

Returns the last mouse y-position an event occurred at.

Definition at line 118 of file GUIPerspectiveChanger.cpp.

References myMouseYPosition.

◆ getRotation()

virtual double GUIPerspectiveChanger::getRotation ( ) const
pure virtual

◆ getViewport()

Boundary GUIPerspectiveChanger::getViewport ( bool  fixRatio = true)

get viewport

Definition at line 124 of file GUIPerspectiveChanger.cpp.

References myViewPort, and patchedViewPort().

Referenced by GUISUMOAbstractView::applyGLTransform(), GUISUMOAbstractView::getObjectsInBoundary(), GUISUMOAbstractView::getVisibleBoundary(), GUISUMOAbstractView::m2p(), GUISUMOAbstractView::makeSnapshot(), GUISUMOAbstractView::p2m(), GUISUMOAbstractView::paintGLGrid(), and GUISUMOAbstractView::screenPos2NetPos().

Here is the caller graph for this function:

◆ getXPos()

virtual double GUIPerspectiveChanger::getXPos ( ) const
pure virtual

◆ getYPos()

virtual double GUIPerspectiveChanger::getYPos ( ) const
pure virtual

◆ getZoom()

virtual double GUIPerspectiveChanger::getZoom ( ) const
pure virtual

Returns the zoom factor computed stored in this changer.

Implemented in GUIOSGPerspectiveChanger, and GUIDanielPerspectiveChanger.

Referenced by GUIDialog_EditViewport::onCmdLoad(), GUISUMOAbstractView::onMouseMove(), GUISUMOAbstractView::onMouseWheel(), GNEViewNet::saveVisualizationSettings(), and GUISUMOAbstractView::updateViewportValues().

Here is the caller graph for this function:

◆ getZPos()

virtual double GUIPerspectiveChanger::getZPos ( ) const
pure virtual

Returns the camera height corresponding to the current zoom factor.

Implemented in GUIOSGPerspectiveChanger, and GUIDanielPerspectiveChanger.

Referenced by GUISUMOAbstractView::copyViewportTo(), GUIApplicationWindow::onCmdOpenInNetedit(), GNEApplicationWindow::onCmdOpenSUMOGUI(), GUISUMOAbstractView::showViewportEditor(), and GUISUMOAbstractView::~GUISUMOAbstractView().

Here is the caller graph for this function:

◆ onDoubleClicked()

void GUIPerspectiveChanger::onDoubleClicked ( void *  data)
virtual

called when user click two times

Definition at line 80 of file GUIPerspectiveChanger.cpp.

◆ onKeyPress()

long GUIPerspectiveChanger::onKeyPress ( void *  data)
virtual

called when user press a key

Reimplemented in GUIDanielPerspectiveChanger.

Definition at line 98 of file GUIPerspectiveChanger.cpp.

Referenced by GUISUMOAbstractView::onKeyPress().

Here is the caller graph for this function:

◆ onKeyRelease()

long GUIPerspectiveChanger::onKeyRelease ( void *  data)
virtual

called when user releases a key

Definition at line 105 of file GUIPerspectiveChanger.cpp.

Referenced by GUISUMOAbstractView::onKeyRelease().

Here is the caller graph for this function:

◆ onLeftBtnPress()

void GUIPerspectiveChanger::onLeftBtnPress ( void *  data)
virtual

mouse functions

called when user press left button

Reimplemented in GUIDanielPerspectiveChanger.

Definition at line 42 of file GUIPerspectiveChanger.cpp.

Referenced by GUISUMOAbstractView::onLeftBtnPress(), and GNEViewNet::processClick().

Here is the caller graph for this function:

◆ onLeftBtnRelease()

bool GUIPerspectiveChanger::onLeftBtnRelease ( void *  data)
virtual

called when user releases left button

Reimplemented in GUIOSGPerspectiveChanger, and GUIDanielPerspectiveChanger.

Definition at line 48 of file GUIPerspectiveChanger.cpp.

Referenced by GUISUMOAbstractView::onLeftBtnRelease().

Here is the caller graph for this function:

◆ onMiddleBtnPress()

void GUIPerspectiveChanger::onMiddleBtnPress ( void *  data)
virtual

called when user press middle button

Reimplemented in GUIDanielPerspectiveChanger.

Definition at line 55 of file GUIPerspectiveChanger.cpp.

Referenced by GUISUMOAbstractView::onMiddleBtnPress().

Here is the caller graph for this function:

◆ onMiddleBtnRelease()

bool GUIPerspectiveChanger::onMiddleBtnRelease ( void *  data)
virtual

called when user releases middle button

Reimplemented in GUIOSGPerspectiveChanger, and GUIDanielPerspectiveChanger.

Definition at line 61 of file GUIPerspectiveChanger.cpp.

Referenced by GUISUMOAbstractView::onMiddleBtnRelease().

Here is the caller graph for this function:

◆ onMouseMove()

void GUIPerspectiveChanger::onMouseMove ( void *  data)
virtual

called when user moves mouse

Reimplemented in GUIOSGPerspectiveChanger, and GUIDanielPerspectiveChanger.

Definition at line 92 of file GUIPerspectiveChanger.cpp.

Referenced by GUISUMOAbstractView::onMouseMove().

Here is the caller graph for this function:

◆ onMouseWheel()

void GUIPerspectiveChanger::onMouseWheel ( void *  data)
virtual

called when user changes mouse wheel

Reimplemented in GUIDanielPerspectiveChanger.

Definition at line 86 of file GUIPerspectiveChanger.cpp.

Referenced by GUISUMOAbstractView::onMouseWheel().

Here is the caller graph for this function:

◆ onRightBtnPress()

void GUIPerspectiveChanger::onRightBtnPress ( void *  data)
virtual

called when user press right button

Reimplemented in GUIDanielPerspectiveChanger.

Definition at line 68 of file GUIPerspectiveChanger.cpp.

Referenced by GUISUMOAbstractView::onRightBtnPress().

Here is the caller graph for this function:

◆ onRightBtnRelease()

bool GUIPerspectiveChanger::onRightBtnRelease ( void *  data)
virtual

called when user releases right button

Reimplemented in GUIOSGPerspectiveChanger, and GUIDanielPerspectiveChanger.

Definition at line 74 of file GUIPerspectiveChanger.cpp.

Referenced by GUISUMOAbstractView::onRightBtnRelease(), GUISUMOAbstractView::openPopupDialog(), and GUISUMOAbstractView::replacePopup().

Here is the caller graph for this function:

◆ operator=()

GUIPerspectiveChanger & GUIPerspectiveChanger::operator= ( const GUIPerspectiveChanger )
private

Invalidated assignment operator.

◆ patchedViewPort()

Boundary GUIPerspectiveChanger::patchedViewPort ( )
private

patched viewPort with the same aspect ratio as the canvas

Definition at line 140 of file GUIPerspectiveChanger.cpp.

References Boundary::getHeight(), Boundary::getWidth(), Boundary::growHeight(), Boundary::growWidth(), myCallback, and myViewPort.

Referenced by getViewport().

Here is the caller graph for this function:

◆ setRotation()

virtual void GUIPerspectiveChanger::setRotation ( double  rotation)
pure virtual

Sets the rotation.

Implemented in GUIOSGPerspectiveChanger, and GUIDanielPerspectiveChanger.

Referenced by GUISUMOAbstractView::setViewportFromToRot().

Here is the caller graph for this function:

◆ setViewport() [1/2]

void GUIPerspectiveChanger::setViewport ( const Boundary viewPort)
virtual

set viewport

Reimplemented in GUIOSGPerspectiveChanger.

Definition at line 134 of file GUIPerspectiveChanger.cpp.

References myViewPort.

◆ setViewport() [2/2]

virtual void GUIPerspectiveChanger::setViewport ( double  zoom,
double  xPos,
double  yPos 
)
pure virtual

Sets the viewport Used for: Adapting a new viewport.

Implemented in GUIOSGPerspectiveChanger, and GUIDanielPerspectiveChanger.

Referenced by GUISUMOAbstractView::centerTo(), GUISUMOAbstractView::centerTo(), GUISUMOAbstractView::getObjectsInBoundary(), and GUISUMOAbstractView::recenterView().

Here is the caller graph for this function:

◆ setViewportFrom()

virtual void GUIPerspectiveChanger::setViewportFrom ( double  xPos,
double  yPos,
double  zPos 
)
pure virtual

Alternative method for setting the viewport.

Implemented in GUIOSGPerspectiveChanger, and GUIDanielPerspectiveChanger.

Referenced by GUISUMOAbstractView::setViewportFromToRot().

Here is the caller graph for this function:

◆ zoom2ZPos()

virtual double GUIPerspectiveChanger::zoom2ZPos ( double  zoom) const
pure virtual

Returns the camera height at which the given zoom level is reached.

Implemented in GUIOSGPerspectiveChanger, and GUIDanielPerspectiveChanger.

Referenced by GUISettingsHandler::applyViewport(), GUIDialog_EditViewport::onCmdChanged(), and GUIDialog_EditViewport::setValues().

Here is the caller graph for this function:

◆ zPos2Zoom()

virtual double GUIPerspectiveChanger::zPos2Zoom ( double  zPos) const
pure virtual

Returns the zoom level that is achieved at a given camera height.

Implemented in GUIOSGPerspectiveChanger, and GUIDanielPerspectiveChanger.

Referenced by GUIDialog_EditViewport::onCmdChanged(), and GUIDialog_EditViewport::setValues().

Here is the caller graph for this function:

Field Documentation

◆ myCallback

◆ myMouseXPosition

◆ myMouseYPosition

◆ myViewPort


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