LCOV - code coverage report
Current view: top level - src/utils/geom - Bresenham.cpp (source / functions) Coverage Total Hit
Test: lcov.info Lines: 100.0 % 10 10
Test Date: 2024-11-22 15:46:21 Functions: 100.0 % 1 1

            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    Bresenham.cpp
      15              : /// @author  Daniel Krajzewicz
      16              : /// @author  Michael Behrisch
      17              : /// @date    Fri, 07 Jun 2002
      18              : ///
      19              : // A class to realise a uniform n:m - relationship using the
      20              : /****************************************************************************/
      21              : #include <config.h>
      22              : 
      23              : #include <iostream>
      24              : #include <utils/common/StdDefs.h>
      25              : #include "Bresenham.h"
      26              : 
      27              : 
      28              : // ===========================================================================
      29              : // method definitions
      30              : // ===========================================================================
      31              : void
      32       108122 : Bresenham::compute(BresenhamCallBack* callBack, const int val1, const int val2) {
      33              :     const int smaller = MIN2(val1, val2);
      34              :     const int greater = MAX2(val1, val2);
      35              :     int pos = 0;
      36              :     int c = smaller;
      37       656808 :     for (int i = 0; i < greater; i++) {
      38       548686 :         if (smaller == val1) {
      39       452738 :             callBack->execute(pos, i);
      40              :         } else {
      41        95948 :             callBack->execute(i, pos);
      42              :         }
      43       548686 :         c += 2 * smaller;
      44       548686 :         if (c >= 2 * greater) {
      45       123875 :             pos++;
      46       123875 :             c -= 2 * greater;
      47              :         }
      48              :     }
      49       108122 : }
      50              : 
      51              : 
      52              : /****************************************************************************/
        

Generated by: LCOV version 2.0-1