LCOV - code coverage report
Current view: top level - src/utils/gui/windows - GUIPerspectiveChanger.cpp (source / functions) Coverage Total Hit
Test: lcov.info Lines: 45.8 % 48 22
Test Date: 2024-12-21 15:45:41 Functions: 26.3 % 19 5

            Line data    Source code
       1              : /****************************************************************************/
       2              : // Eclipse SUMO, Simulation of Urban MObility; see https://eclipse.dev/sumo
       3              : // Copyright (C) 2001-2024 German Aerospace Center (DLR) and others.
       4              : // This program and the accompanying materials are made available under the
       5              : // terms of the Eclipse Public License 2.0 which is available at
       6              : // https://www.eclipse.org/legal/epl-2.0/
       7              : // This Source Code may also be made available under the following Secondary
       8              : // Licenses when the conditions for such availability set forth in the Eclipse
       9              : // Public License 2.0 are satisfied: GNU General Public License, version 2
      10              : // or later which is available at
      11              : // https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
      12              : // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-or-later
      13              : /****************************************************************************/
      14              : /// @file    GUIPerspectiveChanger.cpp
      15              : /// @author  Daniel Krajzewicz
      16              : /// @author  Jakob Erdmann
      17              : /// @author  Michael Behrisch
      18              : /// @date    Sept 2002
      19              : ///
      20              : // A class that allows to steer the visual output in dependence to user
      21              : /****************************************************************************/
      22              : #include <config.h>
      23              : 
      24              : #include "GUISUMOAbstractView.h"
      25              : #include "GUIPerspectiveChanger.h"
      26              : 
      27              : 
      28              : // ===========================================================================
      29              : // method definitions
      30              : // ===========================================================================
      31         7564 : GUIPerspectiveChanger::GUIPerspectiveChanger(GUISUMOAbstractView& callBack, const Boundary& viewPort) :
      32         7564 :     myCallback(callBack),
      33         7564 :     myViewPort(viewPort) {
      34         7564 : }
      35              : 
      36              : 
      37         7546 : GUIPerspectiveChanger::~GUIPerspectiveChanger() {
      38         7546 : }
      39              : 
      40              : 
      41              : void
      42            0 : GUIPerspectiveChanger::onLeftBtnPress(void*) {
      43              :     // reimplement in child
      44            0 : }
      45              : 
      46              : 
      47              : bool
      48            0 : GUIPerspectiveChanger::onLeftBtnRelease(void*) {
      49              :     // reimplement in child
      50            0 :     return false;
      51              : }
      52              : 
      53              : 
      54              : void
      55            0 : GUIPerspectiveChanger::onMiddleBtnPress(void*) {
      56              :     // reimplement in child
      57            0 : }
      58              : 
      59              : 
      60              : bool
      61            0 : GUIPerspectiveChanger::onMiddleBtnRelease(void*) {
      62              :     // reimplement in child
      63            0 :     return false;
      64              : }
      65              : 
      66              : 
      67              : void
      68            0 : GUIPerspectiveChanger::onRightBtnPress(void*) {
      69              :     // reimplement in child
      70            0 : }
      71              : 
      72              : 
      73              : bool
      74            0 : GUIPerspectiveChanger::onRightBtnRelease(void*) {
      75              :     // reimplement in child
      76            0 :     return false;
      77              : }
      78              : 
      79              : void
      80            0 : GUIPerspectiveChanger::onDoubleClicked(void*) {
      81              :     // reimplement in child
      82            0 : }
      83              : 
      84              : 
      85              : void
      86            0 : GUIPerspectiveChanger::onMouseWheel(void*) {
      87              :     // reimplement in child
      88            0 : }
      89              : 
      90              : 
      91              : void
      92            0 : GUIPerspectiveChanger::onMouseMove(void*) {
      93              :     // reimplement in child
      94            0 : }
      95              : 
      96              : 
      97              : long
      98            0 : GUIPerspectiveChanger::onKeyPress(void*) {
      99              :     // reimplement in child
     100            0 :     return 0;
     101              : }
     102              : 
     103              : 
     104              : long
     105            0 : GUIPerspectiveChanger::onKeyRelease(void*) {
     106              :     // reimplement in child
     107            0 :     return 0;
     108              : }
     109              : 
     110              : 
     111              : FXint
     112            0 : GUIPerspectiveChanger::getMouseXPosition() const {
     113            0 :     return myMouseXPosition;
     114              : }
     115              : 
     116              : 
     117              : FXint
     118            0 : GUIPerspectiveChanger::getMouseYPosition() const {
     119            0 :     return myMouseYPosition;
     120              : }
     121              : 
     122              : 
     123              : Boundary
     124      2765641 : GUIPerspectiveChanger::getViewport(bool fixRatio) {
     125      2765641 :     if (fixRatio) {
     126      2765641 :         return patchedViewPort();
     127              :     } else {
     128              :         return myViewPort;
     129              :     }
     130              : }
     131              : 
     132              : 
     133              : void
     134         7152 : GUIPerspectiveChanger::setViewport(const Boundary& viewPort) {
     135              :     myViewPort = viewPort;
     136         7152 : }
     137              : 
     138              : 
     139              : Boundary
     140      2765641 : GUIPerspectiveChanger::patchedViewPort() {
     141              :     // avoid division by zero
     142      2765641 :     if (myCallback.getHeight() == 0 ||
     143      2765641 :             myCallback.getWidth() == 0 ||
     144      8296923 :             myViewPort.getHeight() == 0 ||
     145      2765641 :             myViewPort.getWidth() == 0) {
     146              :         return myViewPort;
     147              :     }
     148              :     Boundary result = myViewPort;
     149      2765641 :     double canvasRatio = (double)myCallback.getWidth() / myCallback.getHeight();
     150      2765641 :     double ratio = result.getWidth() / result.getHeight();
     151      2765641 :     if (ratio < canvasRatio) {
     152      1700821 :         result.growWidth(result.getWidth() * (canvasRatio / ratio - 1) / 2);
     153              :     } else {
     154      1064820 :         result.growHeight(result.getHeight() * (ratio / canvasRatio - 1) / 2);
     155              :     }
     156              :     return result;
     157      2765641 : }
     158              : 
     159              : 
     160              : /****************************************************************************/
        

Generated by: LCOV version 2.0-1