Eclipse SUMO - Simulation of Urban MObility
AGPosition.h
Go to the documentation of this file.
1 /****************************************************************************/
2 // Eclipse SUMO, Simulation of Urban MObility; see https://eclipse.org/sumo
3 // Copyright (C) 2001-2019 German Aerospace Center (DLR) and others.
4 // activitygen module
5 // Copyright 2010 TUM (Technische Universitaet Muenchen, http://www.tum.de/)
6 // This program and the accompanying materials
7 // are made available under the terms of the Eclipse Public License v2.0
8 // which accompanies this distribution, and is available at
9 // http://www.eclipse.org/legal/epl-v20.html
10 // SPDX-License-Identifier: EPL-2.0
11 /****************************************************************************/
19 // References a street of the city and defines a position in this street
20 /****************************************************************************/
21 #ifndef AGPOSITION_H
22 #define AGPOSITION_H
23 
24 
25 // ===========================================================================
26 // included modules
27 // ===========================================================================
28 #include <config.h>
29 
30 #include <list>
31 #include <map>
32 #include <utils/geom/Position.h>
33 
34 
35 // ===========================================================================
36 // class declarations
37 // ===========================================================================
38 class AGStreet;
39 
40 
41 // ===========================================================================
42 // class definitions
43 // ===========================================================================
55 class AGPosition {
56 public:
66  AGPosition(const AGStreet& str, double pos);
74  AGPosition(const AGStreet& str);
75 
80  const AGStreet& getStreet() const;
81 
89  double getPosition() const;
90 
99  bool operator==(const AGPosition& pos) const;
100 
106  double distanceTo(const AGPosition& otherPos) const;
107 
116  double minDistanceTo(const std::list<AGPosition>& positions) const;
117 
126  double minDistanceTo(const std::map<int, AGPosition>& positions) const;
127 
131  void print() const;
132 
133 private:
134  const AGStreet* street;
135  double position;
137 
142  static double randomPositionInStreet(const AGStreet& street);
143 
151  Position compute2dPosition() const;
152 };
153 
154 #endif /* AGPOSITION_H */
155 
156 /****************************************************************************/
AGPosition::randomPositionInStreet
static double randomPositionInStreet(const AGStreet &street)
Determines a random relative position on a street.
Definition: AGPosition.cpp:112
AGPosition::minDistanceTo
double minDistanceTo(const std::list< AGPosition > &positions) const
Computes the distance to the closest position in a list.
Definition: AGPosition.cpp:68
AGPosition::distanceTo
double distanceTo(const AGPosition &otherPos) const
Computes the distance between two AGPosition objects.
Definition: AGPosition.cpp:62
AGPosition::operator==
bool operator==(const AGPosition &pos) const
Tests whether two positions are at the same place.
Definition: AGPosition.cpp:56
AGPosition::getPosition
double getPosition() const
Provides the relative position of this AGPosition on the street.
Definition: AGPosition.cpp:106
AGPosition::position
double position
Definition: AGPosition.h:135
Position
A point in 2D or 3D with translation and scaling methods.
Definition: Position.h:38
AGPosition::pos2d
Position pos2d
Definition: AGPosition.h:136
AGStreet
A model of the street in the city.
Definition: AGStreet.h:52
Position.h
AGPosition::AGPosition
AGPosition(const AGStreet &str, double pos)
Constructs an AGPosition at a certain point on a street.
Definition: AGPosition.cpp:39
AGPosition::print
void print() const
Prints out a summary of the properties of this class on standard output.
Definition: AGPosition.cpp:50
AGPosition
A location in the 2D plane freely positioned on a street.
Definition: AGPosition.h:55
config.h
AGPosition::getStreet
const AGStreet & getStreet() const
Provides the street this AGPosition is located on.
Definition: AGPosition.cpp:100
AGPosition::compute2dPosition
Position compute2dPosition() const
Definition: AGPosition.cpp:118
AGPosition::street
const AGStreet * street
Definition: AGPosition.h:134