Eclipse SUMO - Simulation of Urban MObility
Loading...
Searching...
No Matches
GNEMoveElementEdge.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-2025 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 moving edge shapes
19/****************************************************************************/
20#pragma once
21#include <config.h>
22
23#include "GNEMoveElement.h"
24
25// ===========================================================================
26// class definitions
27// ===========================================================================
28
29class GNEEdge;
30
31// ===========================================================================
32// class definitions
33// ===========================================================================
34
36
37public:
40
43
48
51
53 std::string getMovingAttribute(SumoXMLAttr key) const override;
54
56 double getMovingAttributeDouble(SumoXMLAttr key) const override;
57
60
63
65 void setMovingAttribute(SumoXMLAttr key, const std::string& value, GNEUndoList* undoList) override;
66
68 bool isMovingAttributeValid(SumoXMLAttr key, const std::string& value) const override;
69
71 void setMovingAttribute(SumoXMLAttr key, const std::string& value) override;
72
74
76 void removeGeometryPoint(const Position clickedPosition, GNEUndoList* undoList) override;
77
78protected:
80 GNEEdge* myEdge = nullptr;
81
82private:
84 void setMoveShape(const GNEMoveResult& moveResult) override;
85
87 void commitMoveShape(const GNEMoveResult& moveResult, GNEUndoList* undoList) override;
88
90 GNEMoveOperation* processMoveFromJunctionSelected(const PositionVector originalShape, const Position mousePosition, const double snapRadius);
91
93 GNEMoveOperation* processMoveToJunctionSelected(const PositionVector originalShape, const Position mousePosition, const double snapRadius);
94
97
99 GNEMoveOperation* processNoneJunctionSelected(const double snapRadius);
100
103
106
109};
SumoXMLAttr
Numbers representing SUMO-XML - attributes.
PositionVector getMovingAttributePositionVector(SumoXMLAttr key) const override
get moving attribute positionVector
GNEMoveOperation * processMoveFromJunctionSelected(const PositionVector originalShape, const Position mousePosition, const double snapRadius)
process moving edge when only from junction is selected
Position getMovingAttributePosition(SumoXMLAttr key) const override
get moving attribute position
double getMovingAttributeDouble(SumoXMLAttr key) const override
get moving attribute double
GNEMoveOperation * processMoveToJunctionSelected(const PositionVector originalShape, const Position mousePosition, const double snapRadius)
process moving edge when only to junction is selected
GNEMoveElementEdge()=delete
invalidate default constructor
GNEMoveElementEdge(const GNEMoveElementEdge &)=delete
Invalidated copy constructor.
GNEMoveOperation * processNoneJunctionSelected(const double snapRadius)
process moving edge when none junction are selected
void setMovingAttribute(SumoXMLAttr key, const std::string &value, GNEUndoList *undoList) override
set moving attribute (using undo-list)
GNEMoveOperation * getMoveOperation()
get move operation
bool isMovingAttributeValid(SumoXMLAttr key, const std::string &value) const override
check if the given moving attribute is valid
GNEMoveElementEdge & operator=(const GNEMoveElementEdge &)=delete
Invalidated assignment operator.
GNEEdge * myEdge
pointer to edge
void setMoveShape(const GNEMoveResult &moveResult) override
set move shape
GNEMoveOperation * processMoveBothJunctionSelected()
process moving edge when both junctions are selected
void commitMoveShape(const GNEMoveResult &moveResult, GNEUndoList *undoList) override
commit move shape
void removeGeometryPoint(const Position clickedPosition, GNEUndoList *undoList) override
remove geometry point in the clicked position
std::string getMovingAttribute(SumoXMLAttr key) const override
get moving attribute
A point in 2D or 3D with translation and scaling methods.
Definition Position.h:37
A list of positions.