Eclipse SUMO - Simulation of Urban MObility
NIVissimBoundedClusterObject.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 /****************************************************************************/
18 // -------------------
19 /****************************************************************************/
20 #include <config.h>
21 
22 
23 #include <cassert>
24 #include <utils/geom/Boundary.h>
26 
28 
30  : myBoundary(nullptr), myClusterID(-1) {
31  myDict.insert(this);
32 }
33 
34 
36  delete myBoundary;
37 }
38 
39 
40 bool
42  double offset) const {
43  assert(myBoundary != 0 && myBoundary->xmax() >= myBoundary->xmin());
44  return myBoundary->overlapsWith(poly, offset);
45 }
46 
47 
48 void
50  myClusterID = id;
51 }
52 
53 
54 bool
56  return myClusterID > 0;
57 }
58 
59 
60 void
62  for (ContType::iterator i = myDict.begin(); i != myDict.end(); i++) {
63  (*i)->computeBounding();
64  }
65 }
66 
67 
68 const Boundary&
70  return *myBoundary;
71 }
72 
73 
74 /****************************************************************************/
A class that stores a 2D geometrical boundary.
Definition: Boundary.h:39
double xmin() const
Returns minimum x-coordinate.
Definition: Boundary.cpp:118
bool overlapsWith(const AbstractPoly &poly, double offset=0) const
Returns whether the boundary overlaps with the given polygon.
Definition: Boundary.cpp:189
double xmax() const
Returns maximum x-coordinate.
Definition: Boundary.cpp:124
std::set< NIVissimBoundedClusterObject * > ContType
bool crosses(const AbstractPoly &poly, double offset=0) const