Eclipse SUMO - Simulation of Urban MObility
GNEEdgeRelDataFrame.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 // The Widget for add EdgeRelationData elements
19 /****************************************************************************/
20 #include <config.h>
21 
25 #include <netedit/GNEViewNet.h>
26 
27 #include "GNEEdgeRelDataFrame.h"
28 
29 
30 // ===========================================================================
31 // method definitions
32 // ===========================================================================
33 
35  GNEGenericDataFrame(viewParent, viewNet, SUMO_TAG_EDGEREL, true) {
36 }
37 
38 
40 
41 
42 bool
44  // first check if we clicked over an edge
46  return myPathCreator->addEdge(viewObjects.getEdgeFront(), mouseButtonKeyPressed.shiftKeyPressed(), mouseButtonKeyPressed.controlKeyPressed());
47  } else {
48  // invalid parent parameters
49  return false;
50  }
51 }
52 
53 
54 bool
55 GNEEdgeRelDataFrame::createPath(const bool /*useLastRoute*/) {
56  // first check that we have at least two edges and parameters are valid
58  GNEDataHandler dataHandler(myViewNet->getNet(), "", true, false);
59  // create data interval object and fill it
64  CommonXMLStructure::SumoBaseObject* edgeRelationData = new CommonXMLStructure::SumoBaseObject(dataIntervalObject);
65  // create EdgeRelationData
66  dataHandler.buildEdgeRelationData(edgeRelationData, myPathCreator->getSelectedEdges().front()->getID(),
68  // abort path creation
70  delete dataIntervalObject;
71  return true;
72  } else {
73  return false;
74  }
75 }
76 
77 /****************************************************************************/
@ SUMO_TAG_EDGEREL
a relation between two edges
@ SUMO_ATTR_BEGIN
weights: time range begin
@ SUMO_ATTR_END
weights: time range end
@ SUMO_ATTR_ID
void addDoubleAttribute(const SumoXMLAttr attr, const double value)
add double attribute into current SumoBaseObject node
void addStringAttribute(const SumoXMLAttr attr, const std::string &value)
add string attribute into current SumoBaseObject node
const std::string getID() const
get ID (all Attribute Carriers have one)
void buildEdgeRelationData(const CommonXMLStructure::SumoBaseObject *sumoBaseObject, const std::string &fromEdgeID, const std::string &toEdgeID, const Parameterised::Map &parameters)
Builds edgeRelationData.
double getAttributeDouble(SumoXMLAttr key) const
GNEEdgeRelDataFrame(GNEViewParent *viewParent, GNEViewNet *viewNet)
Constructor.
~GNEEdgeRelDataFrame()
Destructor.
bool createPath(const bool useLastRoute)
create path
bool addEdgeRelationData(const GNEViewNetHelper::ViewObjectsSelector &viewObjects, const GNEViewNetHelper::MouseButtonKeyPressed &mouseButtonKeyPressed)
add additional element
bool areAttributesValid() const
check if current attributes are valid
const Parameterised::Map & getParametersMap() const
get parameters as map
GNEViewNet * myViewNet
FOX need this.
Definition: GNEFrame.h:117
GNEDataSet * getDataSet() const
get current select data set ID
GNEDataInterval * getDataInterval() const
get current select data set ID
GNEFrameAttributeModules::GenericDataAttributes * myGenericDataAttributes
parameters editor creator
IntervalSelector * myIntervalSelector
interval selector modul
DataSetSelector * myDataSetSelector
dataSet selector modul
GNEPathCreator * myPathCreator
edge path creator (used for Walks, rides and trips)
void abortPathCreation()
abort path creation
const std::vector< GNEEdge * > & getSelectedEdges() const
get current selected edges
bool addEdge(GNEEdge *edge, const bool shiftKeyPressed, const bool controlKeyPressed)
add edge
class used to group all variables related with objects under cursor after a click over view
GNEEdge * getEdgeFront() const
get front edge or a pointer to nullptr
GNENet * getNet() const
get the net object
A single child window which contains a view of the simulation area.
Definition: GNEViewParent.h:88
class used to group all variables related with mouse buttons and key pressed after certain events
bool shiftKeyPressed() const
check if SHIFT is pressed during current event
bool controlKeyPressed() const
check if CONTROL is pressed during current event