Eclipse SUMO - Simulation of Urban MObility
GNEContour.h
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 // class used for show contour elements
19 /****************************************************************************/
20 #pragma once
21 #include <config.h>
22 
24 
25 // ===========================================================================
26 // class declaration
27 // ===========================================================================
28 
29 class GNENet;
30 class GNEEdge;
32 
33 // ===========================================================================
34 // class definitions
35 // ===========================================================================
36 
37 class GNEContour {
38 
39 public:
41  GNEContour();
42 
44  ~GNEContour();
45 
48 
50  void clearContour();
51 
54 
57  const GUIGlObject* glObject, const PositionVector& shape, const double scale) const;
58 
61  const GUIGlObject* glObject, const PositionVector& shape, const double extrusionWidth,
62  const double scale, const bool closeFirstExtrem, const bool closeLastExtrem,
63  const double offset) const;
64 
67  const GUIGlObject* glObject, const Position& pos, const double width, const double height,
68  const double offsetX, const double offsetY, const double rot, const double scale) const;
69 
72  const GUIGlObject* glObject, const Position& pos, double radius, const double scale) const;
73 
76  const GNEEdge* edge, const GUIGlObject* elementToRegister, const bool closeFirstExtrem,
77  const bool closeLastExtrem) const;
78 
81  const GNEEdge* fromEdge, const GNEEdge* toEdge) const;
82 
85  const GUIGlObject* glObject, const PositionVector& shape, const double radius,
86  const double scale) const;
87 
90  const GUIGlObject* glObject, const PositionVector& shape, const double radius,
91  const double scale) const;
92 
95  const GUIGlObject* glObject, const PositionVector& shape, const double radius,
96  const double scale) const;
97 
100  const GUIGlObject* glObject, const PositionVector& shape, const double radius,
101  const double scale, const bool calculatePosOverShape) const;
102 
105  const GNEEdge* edge, const double radius, const bool calculatePosOverShape,
106  const bool firstExtrem, const bool lastExtrem) const;
108 
111 
114  const GNEAttributeCarrier* AC, const double lineWidth, const bool addOffset) const;
115 
118  const GNEAttributeCarrier* AC, const PositionVector& shape, const double radius,
119  const double scale, const double lineWidth) const;
120 
123  const PositionVector& shape, const double scale, const double lineWidth) const;
125 
126 private:
128  std::vector<GUIDottedGeometry>* myDottedGeometries;
129 
132 
135 
138 
141 
144  const PositionVector& shape, const double scale) const;
145 
148  const PositionVector& shape, const double extrusionWidth, const double scale,
149  const bool closeFirstExtrem, const bool closeLastExtrem, const double offset) const;
150 
153  const Position& pos, const double width, const double height, const double offsetX,
154  const double offsetY, const double rot, const double scale) const;
155 
158  const Position& pos, double radius, const double scale) const;
159 
162  const GNEEdge* edge, const bool closeFirstExtrem, const bool closeLastExtrem) const;
163 
166  const GNEEdge* fromEdge, const GNEEdge* toEdge) const;
168 
171  const double lineWidth, const bool addOffset) const;
172 
174  GNEContour(const GNEContour&) = delete;
175 
177  GNEContour& operator=(const GNEContour& src) = delete;
178 };
A class that stores a 2D geometrical boundary.
Definition: Boundary.h:39
void calculateContourExtrudedShape(const GUIVisualizationSettings &s, const GUIVisualizationSettings::Detail d, const GUIGlObject *glObject, const PositionVector &shape, const double extrusionWidth, const double scale, const bool closeFirstExtrem, const bool closeLastExtrem, const double offset) const
calculate contour extruded (used in elements formed by a central shape)
Definition: GNEContour.cpp:88
GNEContour()
Constructor.
Definition: GNEContour.cpp:44
static GUIDottedGeometry::DottedGeometryColor myDottedGeometryColor
dotted geometry color
Definition: GNEContour.h:137
void calculateContourLastGeometryPoint(const GUIVisualizationSettings &s, const GUIVisualizationSettings::Detail d, const GUIGlObject *glObject, const PositionVector &shape, const double radius, const double scale) const
calculate contour for last geometry point
Definition: GNEContour.cpp:164
void buildContourCircle(const GUIVisualizationSettings &s, const GUIVisualizationSettings::Detail d, const Position &pos, double radius, const double scale) const
build contour aorund circle
Definition: GNEContour.cpp:476
void calculateContourEdge(const GUIVisualizationSettings &s, const GUIVisualizationSettings::Detail d, const GNEEdge *edge, const GUIGlObject *elementToRegister, const bool closeFirstExtrem, const bool closeLastExtrem) const
calculate contour edge
Definition: GNEContour.cpp:130
void calculateContourEdges(const GUIVisualizationSettings &s, const GUIVisualizationSettings::Detail d, const GNEEdge *fromEdge, const GNEEdge *toEdge) const
calculate contour between two consecutive edges
Definition: GNEContour.cpp:144
void buildContourEdge(const GUIVisualizationSettings &s, const GUIVisualizationSettings::Detail d, const GNEEdge *edge, const bool closeFirstExtrem, const bool closeLastExtrem) const
build contour around edge
Definition: GNEContour.cpp:506
void buildContourExtrudedShape(const GUIVisualizationSettings &s, const GUIVisualizationSettings::Detail d, const PositionVector &shape, const double extrusionWidth, const double scale, const bool closeFirstExtrem, const bool closeLastExtrem, const double offset) const
build contour around extruded shape (ej. lane)
Definition: GNEContour.cpp:404
void buildContourRectangle(const GUIVisualizationSettings &s, const GUIVisualizationSettings::Detail d, const Position &pos, const double width, const double height, const double offsetX, const double offsetY, const double rot, const double scale) const
build contour around rectangle
Definition: GNEContour.cpp:445
GNEContour(const GNEContour &)=delete
Invalidated copy constructor.
void clearContour()
void clear contour
Definition: GNEContour.cpp:65
std::vector< GUIDottedGeometry > * myDottedGeometries
dotted geometries
Definition: GNEContour.h:128
GNEContour & operator=(const GNEContour &src)=delete
Invalidated assignment operator.
void calculateContourCircleShape(const GUIVisualizationSettings &s, const GUIVisualizationSettings::Detail d, const GUIGlObject *glObject, const Position &pos, double radius, const double scale) const
calculate contour (circle elements)
Definition: GNEContour.cpp:117
void calculateContourAllGeometryPoints(const GUIVisualizationSettings &s, const GUIVisualizationSettings::Detail d, const GUIGlObject *glObject, const PositionVector &shape, const double radius, const double scale, const bool calculatePosOverShape) const
calculate contour for all geometry points
Definition: GNEContour.cpp:192
PositionVector * myCalculatedShape
calculated shape
Definition: GNEContour.h:134
void drawDottedContourGeometryPoints(const GUIVisualizationSettings &s, const GUIVisualizationSettings::Detail d, const GNEAttributeCarrier *AC, const PositionVector &shape, const double radius, const double scale, const double lineWidth) const
draw dotted contour for geometry points
Definition: GNEContour.cpp:307
void calculateContourRectangleShape(const GUIVisualizationSettings &s, const GUIVisualizationSettings::Detail d, const GUIGlObject *glObject, const Position &pos, const double width, const double height, const double offsetX, const double offsetY, const double rot, const double scale) const
calculate contour (for rectangled elements)
Definition: GNEContour.cpp:103
void buildContourEdges(const GUIVisualizationSettings &s, const GUIVisualizationSettings::Detail d, const GNEEdge *fromEdge, const GNEEdge *toEdge) const
build contour between two from-to edgeds
Definition: GNEContour.cpp:547
Boundary * myContourBoundary
contourboundary
Definition: GNEContour.h:131
void calculateContourEdgeGeometryPoints(const GUIVisualizationSettings &s, const GUIVisualizationSettings::Detail d, const GNEEdge *edge, const double radius, const bool calculatePosOverShape, const bool firstExtrem, const bool lastExtrem) const
calculate contour for edge geometry points
Definition: GNEContour.cpp:210
void drawInnenContourClosed(const GUIVisualizationSettings &s, const GUIVisualizationSettings::Detail d, const PositionVector &shape, const double scale, const double lineWidth) const
draw innen contour (currently used only in walkingAreas)
Definition: GNEContour.cpp:358
void calculateContourMiddleGeometryPoints(const GUIVisualizationSettings &s, const GUIVisualizationSettings::Detail d, const GUIGlObject *glObject, const PositionVector &shape, const double radius, const double scale) const
calculate contour for middle geometry point
Definition: GNEContour.cpp:176
void drawDottedContours(const GUIVisualizationSettings &s, const GUIVisualizationSettings::Detail d, const GNEAttributeCarrier *AC, const double lineWidth, const bool addOffset) const
drawing contour functions
Definition: GNEContour.cpp:265
Boundary getContourBoundary() const
get contour boundary
Definition: GNEContour.cpp:59
~GNEContour()
destructor
Definition: GNEContour.cpp:51
void calculateContourClosedShape(const GUIVisualizationSettings &s, const GUIVisualizationSettings::Detail d, const GUIGlObject *glObject, const PositionVector &shape, const double scale) const
calculate contours
Definition: GNEContour.cpp:75
void buildContourClosedShape(const GUIVisualizationSettings &s, const GUIVisualizationSettings::Detail d, const PositionVector &shape, const double scale) const
build contour around closed shape (ej. polygon)
Definition: GNEContour.cpp:383
void calculateContourFirstGeometryPoint(const GUIVisualizationSettings &s, const GUIVisualizationSettings::Detail d, const GUIGlObject *glObject, const PositionVector &shape, const double radius, const double scale) const
calculate contour for first geometry point
Definition: GNEContour.cpp:152
void drawDottedContour(const GUIVisualizationSettings &s, GUIDottedGeometry::DottedContourType type, const double lineWidth, const bool addOffset) const
draw dotted contour
Definition: GNEContour.cpp:555
A road/street connecting two junctions (netedit-version)
Definition: GNEEdge.h:53
A NBNetBuilder extended by visualisation and editing capabilities.
Definition: GNENet.h:42
class for pack all variables related with GUIDottedGeometry color
Stores the information about how to visualize structures.
A point in 2D or 3D with translation and scaling methods.
Definition: Position.h:37
A list of positions.