Eclipse SUMO - Simulation of Urban MObility
Loading...
Searching...
No Matches
Bresenham.cpp
Go to the documentation of this file.
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
/****************************************************************************/
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
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
for
(
int
i = 0; i < greater; i++) {
38
if
(smaller == val1) {
39
callBack->
execute
(pos, i);
40
}
else
{
41
callBack->
execute
(i, pos);
42
}
43
c += 2 * smaller;
44
if
(c >= 2 * greater) {
45
pos++;
46
c -= 2 * greater;
47
}
48
}
49
}
50
51
52
/****************************************************************************/
Bresenham.h
StdDefs.h
MIN2
T MIN2(T a, T b)
Definition
StdDefs.h:76
MAX2
T MAX2(T a, T b)
Definition
StdDefs.h:82
Bresenham::BresenhamCallBack
Definition
Bresenham.h:41
Bresenham::BresenhamCallBack::execute
virtual void execute(const int val1, const int val2)=0
Bresenham::compute
static void compute(BresenhamCallBack *callBack, const int val1, const int val2)
Definition
Bresenham.cpp:32
src
utils
geom
Bresenham.cpp
Generated on Tue Nov 5 2024 00:10:31 for Eclipse SUMO - Simulation of Urban MObility by
1.9.8