SUMO - Simulation of Urban MObility
NWWriter_OpenDrive.h
Go to the documentation of this file.
1 /****************************************************************************/
7 // Exporter writing networks using the openDRIVE format
8 /****************************************************************************/
9 // SUMO, Simulation of Urban MObility; see http://sumo.dlr.de/
10 // Copyright (C) 2001-2016 DLR (http://www.dlr.de/) and contributors
11 /****************************************************************************/
12 //
13 // This file is part of SUMO.
14 // SUMO is free software: you can redistribute it and/or modify
15 // it under the terms of the GNU General Public License as published by
16 // the Free Software Foundation, either version 3 of the License, or
17 // (at your option) any later version.
18 //
19 /****************************************************************************/
20 #ifndef NWWriter_OpenDrive_h
21 #define NWWriter_OpenDrive_h
22 
23 
24 // ===========================================================================
25 // included modules
26 // ===========================================================================
27 #ifdef _MSC_VER
28 #include <windows_config.h>
29 #else
30 #include <config.h>
31 #endif
32 
35 
36 
37 // ===========================================================================
38 // class declarations
39 // ===========================================================================
40 class NBNetBuilder;
41 class NBEdge;
42 class OptionsCont;
43 class PositionVector;
44 class OutputDevice;
46 
47 
48 // ===========================================================================
49 // class definitions
50 // ===========================================================================
57 public:
63  static void writeNetwork(const OptionsCont& oc, NBNetBuilder& nb);
64 
65 protected:
67  static SUMOReal writeGeomLines(const PositionVector& shape, OutputDevice& device, OutputDevice& elevationDevice, SUMOReal offset = 0);
68 
70  static bool writeGeomSmooth(const PositionVector& shape, SUMOReal speed, OutputDevice& device, OutputDevice& elevationDevice);
71 
73  static SUMOReal writeGeomPP3(OutputDevice& device,
74  OutputDevice& elevationDevice,
75  PositionVector init,
76  SUMOReal length,
77  SUMOReal offset = 0);
78 
79  static void writeElevationProfile(const PositionVector& shape, OutputDevice& device, const OutputDevice_String& elevationDevice);
80 
81  static void writeEmptyCenterLane(OutputDevice& device, const std::string& mark, SUMOReal markWidth);
82  static int getID(const std::string& origID, StringBijection<int>& map, int& lastID);
83 
84  static std::string getLaneType(SVCPermissions permissions);
85 
87  static PositionVector getLeftLaneBorder(const NBEdge* edge, int laneIndex = -1);
88 };
89 
90 
91 #endif
92 
93 /****************************************************************************/
94 
static SUMOReal writeGeomLines(const PositionVector &shape, OutputDevice &device, OutputDevice &elevationDevice, SUMOReal offset=0)
write geometry as sequence of lines (sumo style)
static SUMOReal writeGeomPP3(OutputDevice &device, OutputDevice &elevationDevice, PositionVector init, SUMOReal length, SUMOReal offset=0)
write geometry as a single bezier curve (paramPoly3)
static bool writeGeomSmooth(const PositionVector &shape, SUMOReal speed, OutputDevice &device, OutputDevice &elevationDevice)
write geometry as sequence of lines and bezier curves
int SVCPermissions
The representation of a single edge during network building.
Definition: NBEdge.h:71
static void writeNetwork(const OptionsCont &oc, NBNetBuilder &nb)
Writes the network into a openDRIVE-file.
A list of positions.
Exporter writing networks using the openDRIVE format.
static void writeEmptyCenterLane(OutputDevice &device, const std::string &mark, SUMOReal markWidth)
static std::string getLaneType(SVCPermissions permissions)
Instance responsible for building networks.
Definition: NBNetBuilder.h:112
A storage for options typed value containers)
Definition: OptionsCont.h:99
static PositionVector getLeftLaneBorder(const NBEdge *edge, int laneIndex=-1)
get the left border of the given lane (the leftmost one by default)
Static storage of an output device and its base (abstract) implementation.
Definition: OutputDevice.h:71
#define SUMOReal
Definition: config.h:213
static int getID(const std::string &origID, StringBijection< int > &map, int &lastID)
static void writeElevationProfile(const PositionVector &shape, OutputDevice &device, const OutputDevice_String &elevationDevice)
An output device that encapsulates an ofstream.