Eclipse SUMO - Simulation of Urban MObility
GNEVehicleFrame.cpp
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 // This program and the accompanying materials
5 // are made available under the terms of the Eclipse Public License v2.0
6 // which accompanies this distribution, and is available at
7 // http://www.eclipse.org/legal/epl-v20.html
8 // SPDX-License-Identifier: EPL-2.0
9 /****************************************************************************/
14 // The Widget for add Vehicles/Flows/Trips/etc. elements
15 /****************************************************************************/
16 
17 // ===========================================================================
18 // included modules
19 // ===========================================================================
20 #include <config.h>
21 
22 #include <netedit/GNENet.h>
23 #include <netedit/GNEViewNet.h>
30 
31 #include "GNEVehicleFrame.h"
32 
33 // ===========================================================================
34 // method definitions
35 // ===========================================================================
36 
37 // ---------------------------------------------------------------------------
38 // GNEVehicleFrame::HelpCreation - methods
39 // ---------------------------------------------------------------------------
40 
42  FXGroupBox(vehicleFrameParent->myContentFrame, "Help", GUIDesignGroupBoxFrame),
43  myVehicleFrameParent(vehicleFrameParent) {
44  myInformationLabel = new FXLabel(this, "", 0, GUIDesignLabelFrameInformation);
45 }
46 
47 
49 
50 
51 void
53  // first update help cration
54  updateHelpCreation();
55  // show modul
56  show();
57 }
58 
59 
60 void
62  hide();
63 }
64 
65 void
67  // create information label
68  std::ostringstream information;
69  // set text depending of selected vehicle type
70  switch (myVehicleFrameParent->myVehicleTagSelector->getCurrentTagProperties().getTag()) {
71  case SUMO_TAG_VEHICLE:
72  information
73  << "- Click over a route to\n"
74  << " create a vehicle.";
75  break;
76  case SUMO_TAG_TRIP:
77  information
78  << "- Select two edges to\n"
79  << " create a Trip.";
80  break;
81  case SUMO_TAG_ROUTEFLOW:
82  information
83  << "- Click over a route to\n"
84  << " create a routeFlow.";
85  break;
86  case SUMO_TAG_FLOW:
87  information
88  << "- Select two edges to\n"
89  << " create a flow.";
90  break;
91  default:
92  break;
93  }
94  // set information label
95  myInformationLabel->setText(information.str().c_str());
96 }
97 
98 // ---------------------------------------------------------------------------
99 // GNEVehicleFrame - methods
100 // ---------------------------------------------------------------------------
101 
102 GNEVehicleFrame::GNEVehicleFrame(FXHorizontalFrame* horizontalFrameParent, GNEViewNet* viewNet) :
103  GNEFrame(horizontalFrameParent, viewNet, "Vehicles") {
104 
105  // Create item Selector modul for vehicles
106  myVehicleTagSelector = new GNEFrameModuls::TagSelector(this, GNEAttributeCarrier::TagType::TAGTYPE_VEHICLE);
107 
108  // Create vehicle type selector
110 
111  // Create vehicle parameters
113 
114  // create EdgePathCreator Modul
115  myEdgePathCreator = new GNEFrameModuls::EdgePathCreator(this, GNEFrameModuls::EdgePathCreator::EdgePathCreatorModes::GNE_EDGEPATHCREATOR_FROM_TO_VIA);
116 
117  // Create Help Creation Modul
118  myHelpCreation = new HelpCreation(this);
119 
120  // set Vehicle as default vehicle
122 }
123 
124 
126 
127 
128 void
130  // refresh item selector
132  // show frame
133  GNEFrame::show();
134 }
135 
136 
137 bool
139  // obtain tag (only for improve code legibility)
141  // first check that current selected vehicle is valid
142  if (vehicleTag == SUMO_TAG_NOTHING) {
143  myViewNet->setStatusBarText("Current selected vehicle isn't valid.");
144  return false;
145  }
146  // now check if VType is valid
147  if (myVTypeSelector->getCurrentDemandElement() == nullptr) {
148  myViewNet->setStatusBarText("Current selected vehicle type isn't valid.");
149  return false;
150  }
151  // now check if parameters are valid
154  return false;
155  }
156  // Declare map to keep attributes from Frames from Frame
157  std::map<SumoXMLAttr, std::string> valuesMap = myVehicleAttributes->getAttributesAndValues(false);
158  // Check if ID has to be generated
159  if (valuesMap.count(SUMO_ATTR_ID) == 0) {
160  valuesMap[SUMO_ATTR_ID] = myViewNet->getNet()->generateDemandElementID("", vehicleTag);
161  }
162  // add VType
164  // set route or edges depending of vehicle type
165  if ((vehicleTag == SUMO_TAG_VEHICLE) || (vehicleTag == SUMO_TAG_ROUTEFLOW)) {
166  if (objectsUnderCursor.getDemandElementFront() && (objectsUnderCursor.getDemandElementFront()->getTagProperty().isRoute())) {
167  // obtain route
168  valuesMap[SUMO_ATTR_ROUTE] = (objectsUnderCursor.getDemandElementFront()->getTagProperty().getTag() == SUMO_TAG_ROUTE) ? objectsUnderCursor.getDemandElementFront()->getID() : "embedded";
169  // check if departLane is valid
170  if ((objectsUnderCursor.getDemandElementFront()->getTagProperty().getTag() == SUMO_TAG_ROUTE) &&
171  (valuesMap.count(SUMO_ATTR_DEPARTLANE) > 0) && GNEAttributeCarrier::canParse<double>(valuesMap[SUMO_ATTR_DEPARTLANE])) {
172  double departLane = GNEAttributeCarrier::parse<double>(valuesMap[SUMO_ATTR_DEPARTLANE]);
173  if (departLane >= objectsUnderCursor.getDemandElementFront()->getParentEdges().front()->getLanes().size()) {
175  return false;
176  }
177  }
178  // check if departSpeed is valid
179  if ((valuesMap.count(SUMO_ATTR_DEPARTSPEED) > 0) && GNEAttributeCarrier::canParse<double>(valuesMap[SUMO_ATTR_DEPARTSPEED])) {
180  double departSpeed = GNEAttributeCarrier::parse<double>(valuesMap[SUMO_ATTR_DEPARTSPEED]);
183  return false;
184  }
185  }
186  // check if we're creating a vehicle or a flow
187  if (vehicleTag == SUMO_TAG_VEHICLE) {
188  // Add parameter departure
189  if (valuesMap[SUMO_ATTR_DEPART].empty()) {
190  valuesMap[SUMO_ATTR_DEPART] = "0";
191  }
192  // declare SUMOSAXAttributesImpl_Cached to convert valuesMap into SUMOSAXAttributes
193  SUMOSAXAttributesImpl_Cached SUMOSAXAttrs(valuesMap, getPredefinedTagsMML(), toString(vehicleTag));
194  // obtain vehicle parameters in vehicleParameters
195  SUMOVehicleParameter* vehicleParameters = SUMOVehicleParserHelper::parseVehicleAttributes(SUMOSAXAttrs, false);
196  // check if vehicle was sucesfully created)
197  if (vehicleParameters) {
198  // check if we're creating a vehicle over a existent route or over a embedded route
199  if (objectsUnderCursor.getDemandElementFront()->getTagProperty().getTag() == SUMO_TAG_ROUTE) {
200  GNERouteHandler::buildVehicleOverRoute(myViewNet, true, *vehicleParameters);
201  } else {
202  GNERouteHandler::buildVehicleWithEmbeddedRoute(myViewNet, true, *vehicleParameters, objectsUnderCursor.getDemandElementFront());
203  }
204  // delete vehicleParameters
205  delete vehicleParameters;
206  }
207  } else {
208  // set begin and end attributes
209  if (valuesMap[SUMO_ATTR_BEGIN].empty()) {
210  valuesMap[SUMO_ATTR_BEGIN] = "0";
211  }
212  if (valuesMap[SUMO_ATTR_END].empty()) {
213  valuesMap[SUMO_ATTR_END] = "3600";
214  }
215  // declare SUMOSAXAttributesImpl_Cached to convert valuesMap into SUMOSAXAttributes
216  SUMOSAXAttributesImpl_Cached SUMOSAXAttrs(valuesMap, getPredefinedTagsMML(), toString(vehicleTag));
217  // obtain routeFlow parameters in routeFlowParameters
218  SUMOVehicleParameter* routeFlowParameters = SUMOVehicleParserHelper::parseFlowAttributes(SUMOSAXAttrs, false, 0, SUMOTime_MAX);
219  // check if flow was sucesfully created)
220  if (routeFlowParameters) {
221  // check if we're creating a vehicle over a existent route or over a embedded route
222  if (objectsUnderCursor.getDemandElementFront()->getTagProperty().getTag() == SUMO_TAG_ROUTE) {
223  GNERouteHandler::buildFlowOverRoute(myViewNet, true, *routeFlowParameters);
224  } else {
225  GNERouteHandler::buildFlowWithEmbeddedRoute(myViewNet, true, *routeFlowParameters, objectsUnderCursor.getDemandElementFront());
226  }
227  // delete routeFlowParameters
228  delete routeFlowParameters;
229  }
230  }
231  // refresh myVehicleAttributes
233  // all ok, then return true;
234  return true;
235  } else {
236  myViewNet->setStatusBarText(toString(vehicleTag) + " has to be placed within a route.");
237  return false;
238  }
239  } else if (((vehicleTag == SUMO_TAG_TRIP) || (vehicleTag == SUMO_TAG_FLOW)) && objectsUnderCursor.getEdgeFront()) {
240  // add clicked edge in EdgePathCreator
241  return myEdgePathCreator->addEdge(objectsUnderCursor.getEdgeFront());
242  } else {
243  return false;
244  }
245 }
246 
247 
250  return myEdgePathCreator;
251 }
252 
253 // ===========================================================================
254 // protected
255 // ===========================================================================
256 
257 void
260  // show vehicle type selector modul
262  // show AutoRute creator if we're editing a trip
266  } else {
268  }
269  } else {
270  // hide all moduls if vehicle isn't valid
274  }
275 }
276 
277 
278 void
281  // show vehicle attributes modul
283  // set current VTypeClass in TripCreator
285  // show help creation
287  } else {
288  // hide all moduls if selected item isn't valid
290  // hide help creation
292 
293  }
294 }
295 
296 
297 void
299  // first check that we have at least two edges
300  if (myEdgePathCreator->getClickedEdges().size() > 1) {
301  // obtain tag (only for improve code legibility)
303  // Declare map to keep attributes from Frames from Frame
304  std::map<SumoXMLAttr, std::string> valuesMap = myVehicleAttributes->getAttributesAndValues(false);
305  // Check if ID has to be generated
306  if (valuesMap.count(SUMO_ATTR_ID) == 0) {
307  valuesMap[SUMO_ATTR_ID] = myViewNet->getNet()->generateDemandElementID("", vehicleTag);
308  }
309  // add VType
311  // extract via attribute
312  std::vector<GNEEdge*> viaEdges;
313  for (int i = 1; i < ((int)myEdgePathCreator->getClickedEdges().size() - 1); i++) {
314  viaEdges.push_back(myEdgePathCreator->getClickedEdges().at(i));
315  }
316  // check if we're creating a trip or flow
317  if (vehicleTag == SUMO_TAG_TRIP) {
318  // Add parameter departure
319  if (valuesMap[SUMO_ATTR_DEPART].empty()) {
320  valuesMap[SUMO_ATTR_DEPART] = "0";
321  }
322  // declare SUMOSAXAttributesImpl_Cached to convert valuesMap into SUMOSAXAttributes
323  SUMOSAXAttributesImpl_Cached SUMOSAXAttrs(valuesMap, getPredefinedTagsMML(), toString(vehicleTag));
324  // obtain trip parameters
325  SUMOVehicleParameter* tripParameters = SUMOVehicleParserHelper::parseVehicleAttributes(SUMOSAXAttrs, false);
326  // build trip in GNERouteHandler
327  GNERouteHandler::buildTrip(myViewNet, true, *tripParameters, myEdgePathCreator->getClickedEdges().front(), myEdgePathCreator->getClickedEdges().back(), viaEdges);
328  // delete tripParameters
329  delete tripParameters;
330  } else {
331  // set begin and end attributes
332  if (valuesMap[SUMO_ATTR_BEGIN].empty()) {
333  valuesMap[SUMO_ATTR_BEGIN] = "0";
334  }
335  // declare SUMOSAXAttributesImpl_Cached to convert valuesMap into SUMOSAXAttributes
336  SUMOSAXAttributesImpl_Cached SUMOSAXAttrs(valuesMap, getPredefinedTagsMML(), toString(vehicleTag));
337  // obtain flow parameters
338  SUMOVehicleParameter* flowParameters = SUMOVehicleParserHelper::parseFlowAttributes(SUMOSAXAttrs, false, 0, SUMOTime_MAX);
339  // build flow in GNERouteHandler
340  GNERouteHandler::buildFlow(myViewNet, true, *flowParameters, myEdgePathCreator->getClickedEdges().front(), myEdgePathCreator->getClickedEdges().back(), viaEdges);
341  // delete flowParameters
342  delete flowParameters;
343  }
344  // refresh myVehicleAttributes
346  }
347 }
348 
349 /****************************************************************************/
SUMO_ATTR_MAXSPEED
Definition: SUMOXMLDefinitions.h:441
SUMO_ATTR_TYPE
Definition: SUMOXMLDefinitions.h:381
GNEVehicleFrame::HelpCreation::hideHelpCreation
void hideHelpCreation()
hide HelpCreation
Definition: GNEVehicleFrame.cpp:61
SUMO_ATTR_DEPART
Definition: SUMOXMLDefinitions.h:431
GNEVehicleFrame::HelpCreation::myInformationLabel
FXLabel * myInformationLabel
Label with creation information.
Definition: GNEVehicleFrame.h:63
GNEDemandElement::getVClass
virtual SUMOVehicleClass getVClass() const =0
obtain VClass related with this demand element
GNEAttributeCarrier::getID
const std::string getID() const
function to support debugging
Definition: GNEAttributeCarrier.cpp:1289
GNEFrameModuls::EdgePathCreator::setVClass
void setVClass(SUMOVehicleClass vClass)
set SUMOVehicleClass
Definition: GNEFrameModuls.cpp:581
GNERouteHandler::buildVehicleOverRoute
static void buildVehicleOverRoute(GNEViewNet *viewNet, bool undoDemandElements, const SUMOVehicleParameter &vehicleParameters)
build functions
Definition: GNERouteHandler.cpp:152
GNEHierarchicalParentElements::getParentEdges
const std::vector< GNEEdge * > & getParentEdges() const
get parent edges
Definition: GNEHierarchicalParentElements.cpp:181
SUMOVehicleParserHelper.h
GNEVehicleFrame::GNEVehicleFrame
GNEVehicleFrame(FXHorizontalFrame *horizontalFrameParent, GNEViewNet *viewNet)
Constructor.
Definition: GNEVehicleFrame.cpp:102
GNEFrameModuls::EdgePathCreator::showEdgePathCreator
void showEdgePathCreator()
show EdgePathCreator
Definition: GNEFrameModuls.cpp:555
GNEFrameAttributesModuls::AttributesCreator
Definition: GNEFrameAttributesModuls.h:148
GNEFrameAttributesModuls::AttributesCreator::areValuesValid
bool areValuesValid() const
check if parameters of attributes are valid
Definition: GNEFrameAttributesModuls.cpp:731
GNEViewNet::setStatusBarText
void setStatusBarText(const std::string &text)
set staturBar text
Definition: GNEViewNet.cpp:523
GNEFrameModuls::DemandElementSelector::showDemandElementSelector
void showDemandElementSelector()
show demand element selector
Definition: GNEFrameModuls.cpp:386
GNEAttributeCarrier::TagProperties::isRoute
bool isRoute() const
return true if tag correspond to a route element
Definition: GNEAttributeCarrier.cpp:744
GNEFrame
Definition: GNEFrame.h:34
GNEViewNet
Definition: GNEViewNet.h:42
GNEViewNetHelper::ObjectsUnderCursor::getEdgeFront
GNEEdge * getEdgeFront() const
get front edge (or a pointer to nullptr if there isn't)
Definition: GNEViewNetHelper.cpp:268
SUMO_ATTR_ID
Definition: SUMOXMLDefinitions.h:378
SUMOVehicleParameter
Structure representing possible vehicle parameter.
Definition: SUMOVehicleParameter.h:297
SUMO_TAG_NOTHING
invalid tag
Definition: SUMOXMLDefinitions.h:43
GUIDesigns.h
GNERouteHandler::buildTrip
static void buildTrip(GNEViewNet *viewNet, bool undoDemandElements, const SUMOVehicleParameter &vehicleParameters, GNEEdge *fromEdge, GNEEdge *toEdge, const std::vector< GNEEdge * > &via)
build trip
Definition: GNERouteHandler.cpp:340
SUMO_TAG_VTYPE
description of a vehicle type
Definition: SUMOXMLDefinitions.h:121
GNEVehicleFrame::HelpCreation::~HelpCreation
~HelpCreation()
destructor
Definition: GNEVehicleFrame.cpp:48
GNEVehicleFrame::HelpCreation::showHelpCreation
void showHelpCreation()
show HelpCreation
Definition: GNEVehicleFrame.cpp:52
SumoXMLTag
SumoXMLTag
Numbers representing SUMO-XML - element names.
Definition: SUMOXMLDefinitions.h:41
GNEVehicleFrame::addVehicle
bool addVehicle(const GNEViewNetHelper::ObjectsUnderCursor &objectsUnderCursor)
add vehicle element
Definition: GNEVehicleFrame.cpp:138
GNEVehicleFrame::tagSelected
void tagSelected()
Tag selected in TagSelector.
Definition: GNEVehicleFrame.cpp:258
GNEAttributeCarrier::TagProperties::getTag
SumoXMLTag getTag() const
get Tag vinculated with this attribute Property
Definition: GNEAttributeCarrier.cpp:523
GNEFrameModuls::EdgePathCreator::addEdge
bool addEdge(GNEEdge *edge)
add edge to route
Definition: GNEFrameModuls.cpp:605
SUMOVehicleParserHelper::parseVehicleAttributes
static SUMOVehicleParameter * parseVehicleAttributes(const SUMOSAXAttributes &attrs, const bool hardFail, const bool optionalID=false, const bool skipDepart=false, const bool isPerson=false)
Parses a vehicle's attributes.
Definition: SUMOVehicleParserHelper.cpp:231
SUMO_ATTR_BEGIN
weights: time range begin
Definition: SUMOXMLDefinitions.h:678
GNEFrameAttributesModuls::AttributesCreator::hideAttributesCreatorModul
void hideAttributesCreatorModul()
hide group box
Definition: GNEFrameAttributesModuls.cpp:659
GUIDesignLabelFrameInformation
#define GUIDesignLabelFrameInformation
label extended over frame without thick and with text justify to left, used to show information in fr...
Definition: GUIDesigns.h:194
GNEFrameModuls::EdgePathCreator
Definition: GNEFrameModuls.h:174
GNEVehicleFrame::myVTypeSelector
GNEFrameModuls::DemandElementSelector * myVTypeSelector
Vehicle Type selectors.
Definition: GNEVehicleFrame.h:102
GNEFrameAttributesModuls::AttributesCreator::getAttributesAndValues
std::map< SumoXMLAttr, std::string > getAttributesAndValues(bool includeAll) const
get attributes and their values
Definition: GNEFrameAttributesModuls.cpp:671
GNEViewNet::getNet
GNENet * getNet() const
get the net object
Definition: GNEViewNet.cpp:1014
SUMO_TAG_ROUTEFLOW
a flow definition nusing a route instead of a from-to edges route (used in NETEDIT)
Definition: SUMOXMLDefinitions.h:151
SUMO_TAG_FLOW
a flow definitio nusing a from-to edges instead of a route (used by router)
Definition: SUMOXMLDefinitions.h:149
GNEAttributeCarrier::getTagProperty
const TagProperties & getTagProperty() const
get Tag Property assigned to this object
Definition: GNEAttributeCarrier.cpp:1273
GNEVehicleFrame.h
GNEVehicleFrame::myHelpCreation
HelpCreation * myHelpCreation
Help creation.
Definition: GNEVehicleFrame.h:111
SUMOSAXAttributesImpl_Cached
Encapsulated Xerces-SAX-attributes.
Definition: SUMOSAXAttributesImpl_Cached.h:43
GNEFrameModuls::EdgePathCreator::hideEdgePathCreator
void hideEdgePathCreator()
show EdgePathCreator
Definition: GNEFrameModuls.cpp:566
GNEViewNetHelper::ObjectsUnderCursor
class used to group all variables related with objects under cursor after a click over view
Definition: GNEViewNetHelper.h:148
GNEFrameModuls::DemandElementSelector
Definition: GNEFrameModuls.h:112
GNEFrameModuls::TagSelector
Definition: GNEFrameModuls.h:44
GNEDemandElement::getAttributeDouble
virtual double getAttributeDouble(SumoXMLAttr key) const =0
GNEViewNet.h
SUMO_ATTR_DEPARTSPEED
Definition: SUMOXMLDefinitions.h:435
SUMO_ATTR_ROUTE
Definition: SUMOXMLDefinitions.h:440
SUMO_ATTR_DEPARTLANE
Definition: SUMOXMLDefinitions.h:432
GNEFrameModuls::DemandElementSelector::getCurrentDemandElement
GNEDemandElement * getCurrentDemandElement() const
get current demand element
Definition: GNEFrameModuls.cpp:361
GNEEdge.h
GNEFrame::myViewNet
GNEViewNet * myViewNet
View Net.
Definition: GNEFrame.h:121
GNEVehicleFrame::show
void show()
show Frame
Definition: GNEVehicleFrame.cpp:129
GNEFrame::getPredefinedTagsMML
const std::map< int, std::string > & getPredefinedTagsMML() const
get predefinedTagsMML
Definition: GNEFrame.cpp:281
GUIDesignGroupBoxFrame
#define GUIDesignGroupBoxFrame
Group box design extended over frame.
Definition: GUIDesigns.h:239
GNEFrameModuls::TagSelector::getCurrentTagProperties
const GNEAttributeCarrier::TagProperties & getCurrentTagProperties() const
get current type tag
Definition: GNEFrameModuls.cpp:203
GNEVehicleFrame
Definition: GNEVehicleFrame.h:32
GNEVehicleFrame::demandElementSelected
void demandElementSelected()
selected vehicle type in DemandElementSelector
Definition: GNEVehicleFrame.cpp:279
GNEVehicleFrame::HelpCreation::updateHelpCreation
void updateHelpCreation()
update HelpCreation
Definition: GNEVehicleFrame.cpp:66
SUMO_TAG_VEHICLE
description of a vehicle
Definition: SUMOXMLDefinitions.h:119
GNEVehicleFrame::myVehicleAttributes
GNEFrameAttributesModuls::AttributesCreator * myVehicleAttributes
internal vehicle attributes
Definition: GNEVehicleFrame.h:105
GNEFrameAttributesModuls::AttributesCreator::refreshRows
void refreshRows()
refresh rows (called after creating an element)
Definition: GNEFrameAttributesModuls.cpp:744
GNEVehicleFrame::myEdgePathCreator
GNEFrameModuls::EdgePathCreator * myEdgePathCreator
edge path creator (used for trips and flows)
Definition: GNEVehicleFrame.h:108
toString
std::string toString(const T &t, std::streamsize accuracy=gPrecision)
Definition: ToString.h:47
GNEFrameModuls::TagSelector::setCurrentTag
void setCurrentTag(SumoXMLTag newTag)
set current type manually
Definition: GNEFrameModuls.cpp:234
SUMOVehicleParserHelper::parseFlowAttributes
static SUMOVehicleParameter * parseFlowAttributes(const SUMOSAXAttributes &attrs, const bool hardFail, const SUMOTime beginDefault, const SUMOTime endDefault, bool isPerson=false)
Parses a flow's attributes.
Definition: SUMOVehicleParserHelper.cpp:56
GNERouteHandler::buildVehicleWithEmbeddedRoute
static void buildVehicleWithEmbeddedRoute(GNEViewNet *viewNet, bool undoDemandElements, SUMOVehicleParameter vehicleParameters, GNEDemandElement *embeddedRouteCopy)
build vehicle with a embedded route
Definition: GNERouteHandler.cpp:240
GNEFrameModuls::TagSelector::refreshTagProperties
void refreshTagProperties()
due myCurrentTagProperties is a Reference, we need to refresh it when frameParent is show
Definition: GNEFrameModuls.cpp:251
GNEViewNetHelper::ObjectsUnderCursor::getDemandElementFront
GNEDemandElement * getDemandElementFront() const
get front net element element (or a pointer to nullptr if there isn't)
Definition: GNEViewNetHelper.cpp:248
GNEVehicleFrame::HelpCreation::HelpCreation
HelpCreation(GNEVehicleFrame *vehicleFrameParent)
constructor
Definition: GNEVehicleFrame.cpp:41
SUMOSAXAttributesImpl_Cached.h
SUMO_TAG_ROUTE
begin/end of the description of a route
Definition: SUMOXMLDefinitions.h:125
config.h
GNEFrameModuls::DemandElementSelector::hideDemandElementSelector
void hideDemandElementSelector()
hide demand element selector
Definition: GNEFrameModuls.cpp:405
GNEVehicle.h
GNEVehicleFrame::edgePathCreated
void edgePathCreated()
finish edge path creation
Definition: GNEVehicleFrame.cpp:298
SUMO_ATTR_END
weights: time range end
Definition: SUMOXMLDefinitions.h:680
GNEFrameModuls::EdgePathCreator::getClickedEdges
std::vector< GNEEdge * > getClickedEdges() const
get current clicked edges
Definition: GNEFrameModuls.cpp:593
SUMOTime_MAX
#define SUMOTime_MAX
Definition: SUMOTime.h:35
GNENet::generateDemandElementID
std::string generateDemandElementID(const std::string &prefix, SumoXMLTag type) const
generate demand element id
Definition: GNENet.cpp:2461
GNERouteHandler::buildFlowOverRoute
static void buildFlowOverRoute(GNEViewNet *viewNet, bool undoDemandElements, const SUMOVehicleParameter &vehicleParameters)
build a flow over an existent route
Definition: GNERouteHandler.cpp:196
GNERouteHandler::buildFlow
static void buildFlow(GNEViewNet *viewNet, bool undoDemandElements, const SUMOVehicleParameter &vehicleParameters, GNEEdge *fromEdge, GNEEdge *toEdge, const std::vector< GNEEdge * > &via)
build flow
Definition: GNERouteHandler.cpp:390
GNEFrame::show
virtual void show()
show Frame
Definition: GNEFrame.cpp:107
GNEFrameAttributesModuls::AttributesCreator::showAttributesCreatorModul
void showAttributesCreatorModul(const GNEAttributeCarrier::TagProperties &tagProperties, const std::vector< SumoXMLAttr > &hiddenAttributes)
show AttributesCreator modul
Definition: GNEFrameAttributesModuls.cpp:603
GNEFrameAttributesModuls::AttributesCreator::showWarningMessage
void showWarningMessage(std::string extra="") const
show warning message with information about non-valid attributes
Definition: GNEFrameAttributesModuls.cpp:704
GNEFrame::hide
virtual void hide()
hide Frame
Definition: GNEFrame.cpp:116
GNERouteHandler::buildFlowWithEmbeddedRoute
static void buildFlowWithEmbeddedRoute(GNEViewNet *viewNet, bool undoDemandElements, SUMOVehicleParameter vehicleParameters, GNEDemandElement *embeddedRouteCopy)
build flow with a embedded route
Definition: GNERouteHandler.cpp:290
GNENet.h
GNEVehicleFrame::~GNEVehicleFrame
~GNEVehicleFrame()
Destructor.
Definition: GNEVehicleFrame.cpp:125
SUMO_TAG_TRIP
a single trip definition (used by router)
Definition: SUMOXMLDefinitions.h:145
GNEVehicleFrame::HelpCreation
Definition: GNEVehicleFrame.h:40
GNERouteHandler.h
GNEVehicleFrame::myVehicleTagSelector
GNEFrameModuls::TagSelector * myVehicleTagSelector
vehicle tag selector (used to select diffent kind of vehicles)
Definition: GNEVehicleFrame.h:99
GNEVehicleFrame::getEdgePathCreator
GNEFrameModuls::EdgePathCreator * getEdgePathCreator() const
get EdgePathCreator modul
Definition: GNEVehicleFrame.cpp:249