Eclipse SUMO - Simulation of Urban MObility
Loading...
Searching...
No Matches
GNEMoveElementView Class Reference

#include <GNEMoveElementView.h>

Inheritance diagram for GNEMoveElementView:
[legend]
Collaboration diagram for GNEMoveElementView:
[legend]

Public Types

enum class  AttributesFormat { POSITION , CARTESIAN , GEO }
 attributes format More...

Public Member Functions

GNEMoveOperationgetMoveOperation () override
 get move operation
 GNEMoveElementView (GNEAttributeCarrier *element, AttributesFormat attributesFormat, SumoXMLAttr posAttr, Position &position)
 constructor for element with fixed size
void removeGeometryPoint (const Position clickedPosition, GNEUndoList *undoList) override
 remove geometry point in the clicked position
void writeMoveAttributes (OutputDevice &device) const
 write move attributes
 ~GNEMoveElementView ()
functions related with moving attributes
std::string getMovingAttribute (SumoXMLAttr key) const override
 get moving attribute
double getMovingAttributeDouble (SumoXMLAttr key) const override
 get moving attribute double
Position getMovingAttributePosition (SumoXMLAttr key) const override
 get moving attribute position
PositionVector getMovingAttributePositionVector (SumoXMLAttr key) const override
 get moving attribute positionVector
void setMovingAttribute (SumoXMLAttr key, const std::string &value, GNEUndoList *undoList) override
 set moving attribute (using undo-list)
bool isMovingAttributeValid (SumoXMLAttr key, const std::string &value) const override
 check if the given moving attribute is valid
void setMovingAttribute (SumoXMLAttr key, const std::string &value) override
 set moving attribute

Static Public Member Functions

static void commitMove (const GNEViewNet *viewNet, GNEMoveOperation *moveOperation, const GNEMoveOffset &offset, GNEUndoList *undoList)
 commit move element for the given offset
static void moveElement (const GNEViewNet *viewNet, GNEMoveOperation *moveOperation, const GNEMoveOffset &offset)
 move element the for given offset (note: offset can be X-Y-0, 0-0-Z or X-Y-Z)

Data Fields

double myMovingLateralOffset = 0
 move element lateral offset

Protected Member Functions

GNEMoveOperationgetEditShapeOperation (const GUIGlObject *obj, const PositionVector originalShape, const bool maintainShapeClosed)
 calculate move shape operation

Protected Attributes

GNEAttributeCarriermyMovedElement = nullptr
 pointer to element

Private Member Functions

void commitMoveShape (const GNEMoveResult &moveResult, GNEUndoList *undoList) override
 commit move shape
 GNEMoveElementView (const GNEMoveElementView &)=delete
 Invalidated copy constructor.
GNEMoveElementViewoperator= (const GNEMoveElementView &)=delete
 Invalidated assignment operator.
void setMoveShape (const GNEMoveResult &moveResult) override
 set move shape

Static Private Member Functions

static PositionVector calculateExtrapolatedVector (const GNEMoveOperation *moveOperation, const GNEMoveResult &moveResult)
 calculate width/height shape
static double calculateLaneOffset (const GNEViewNet *viewNet, const GNELane *lane, const double firstPosition, const double lastPosition, const GNEMoveOffset &offset)
 calculate lane offset (used in calculateLanePosition)
static void calculateLanePosition (double &starPos, const GNEViewNet *viewNet, const GNELane *lane, const double posOverLane, const GNEMoveOffset &offset)
 calculate lane position over one lane with only one position (accesss, E1, star/end positions, etc.)
static void calculateLanePositions (double &starPos, double &endPos, const GNEViewNet *viewNet, const GNELane *firstLane, const double firstPosOverLane, const GNELane *lastLane, const double lastPosOverLane, const bool firstLaneClicked, const GNEMoveOffset &offset)
 calculate lane position over two lane with two positions (E2 Multilanes)
static void calculateLanePositions (double &starPos, double &endPos, const GNEViewNet *viewNet, const GNELane *lane, const double firstPosOverLane, const double lastPosOverLane, const GNEMoveOffset &offset)
 calculate lane position over one lane with two positions (stoppingPlaces, E2 single lanes)
static void calculateNewLaneChange (const GNEViewNet *viewNet, const GNELane *originalLane, const GNELane *&newLane, double &laneOffset)
 calculate new lane change

Private Attributes

AttributesFormat myAttributesFormat = AttributesFormat::POSITION
 pos attributes format
SumoXMLAttr myPosAttr
 pos attribute
PositionmyPosOverView
 position over view

Friends

class GNEMoveElementViewResizable
 resizable needs access

Detailed Description

Definition at line 31 of file GNEMoveElementView.h.

Member Enumeration Documentation

◆ AttributesFormat

attributes format

Enumerator
POSITION 
CARTESIAN 

position format

GEO 

cartesian format (x, y, z)

geo format (lon, lat, z)

Definition at line 38 of file GNEMoveElementView.h.

Constructor & Destructor Documentation

◆ GNEMoveElementView() [1/2]

GNEMoveElementView::GNEMoveElementView ( GNEAttributeCarrier * element,
AttributesFormat attributesFormat,
SumoXMLAttr posAttr,
Position & position )

constructor for element with fixed size

Definition at line 32 of file GNEMoveElementView.cpp.

References GNEMoveElement::GNEMoveElement(), myAttributesFormat, myPosAttr, and myPosOverView.

Referenced by GNEMoveElementView(), GNEMoveElementViewResizable::GNEMoveElementViewResizable(), and operator=().

Here is the caller graph for this function:

◆ ~GNEMoveElementView()

GNEMoveElementView::~GNEMoveElementView ( )

Definition at line 40 of file GNEMoveElementView.cpp.

◆ GNEMoveElementView() [2/2]

GNEMoveElementView::GNEMoveElementView ( const GNEMoveElementView & )
privatedelete

Invalidated copy constructor.

References GNEMoveElementView().

Member Function Documentation

◆ calculateExtrapolatedVector()

PositionVector GNEMoveElement::calculateExtrapolatedVector ( const GNEMoveOperation * moveOperation,
const GNEMoveResult & moveResult )
staticprivateinherited

calculate width/height shape

Definition at line 420 of file GNEMoveElement.cpp.

References PositionVector::extrapolate2D(), GNEMoveOperation::firstGeometryPoint, PositionVector::length2D(), PositionVector::nearest_offset_to_point2D(), GNEMoveOperation::originalShape, PositionVector::reverse(), GNEMoveOperation::shapeToMove, and GNEMoveResult::shapeToUpdate.

Referenced by commitMove(), and moveElement().

Here is the caller graph for this function:

◆ calculateLaneOffset()

double GNEMoveElement::calculateLaneOffset ( const GNEViewNet * viewNet,
const GNELane * lane,
const double firstPosition,
const double lastPosition,
const GNEMoveOffset & offset )
staticprivateinherited

calculate lane offset (used in calculateLanePosition)

Definition at line 280 of file GNEMoveElement.cpp.

References Position::add(), GNELane::getLaneShape(), PositionVector::length2D(), PositionVector::nearest_offset_to_point2D(), PositionVector::positionAtOffset2D(), GUISUMOAbstractView::snapToActiveGrid(), GNEMoveOffset::x, GNEMoveOffset::y, and GNEMoveOffset::z.

Referenced by calculateLanePosition(), and calculateLanePositions().

Here is the caller graph for this function:

◆ calculateLanePosition()

void GNEMoveElement::calculateLanePosition ( double & starPos,
const GNEViewNet * viewNet,
const GNELane * lane,
const double posOverLane,
const GNEMoveOffset & offset )
staticprivateinherited

calculate lane position over one lane with only one position (accesss, E1, star/end positions, etc.)

Definition at line 323 of file GNEMoveElement.cpp.

References calculateLaneOffset(), and GNELane::getLengthGeometryFactor().

Referenced by calculateLanePositions(), commitMove(), and moveElement().

Here is the caller graph for this function:

◆ calculateLanePositions() [1/2]

void GNEMoveElement::calculateLanePositions ( double & starPos,
double & endPos,
const GNEViewNet * viewNet,
const GNELane * firstLane,
const double firstPosOverLane,
const GNELane * lastLane,
const double lastPosOverLane,
const bool firstLaneClicked,
const GNEMoveOffset & offset )
staticprivateinherited

calculate lane position over two lane with two positions (E2 Multilanes)

Definition at line 344 of file GNEMoveElement.cpp.

References calculateLanePosition(), GNELane::getLaneShape(), and PositionVector::length2D().

◆ calculateLanePositions() [2/2]

void GNEMoveElement::calculateLanePositions ( double & starPos,
double & endPos,
const GNEViewNet * viewNet,
const GNELane * lane,
const double firstPosOverLane,
const double lastPosOverLane,
const GNEMoveOffset & offset )
staticprivateinherited

calculate lane position over one lane with two positions (stoppingPlaces, E2 single lanes)

Definition at line 333 of file GNEMoveElement.cpp.

References calculateLaneOffset(), and GNELane::getLengthGeometryFactor().

Referenced by commitMove(), and moveElement().

Here is the caller graph for this function:

◆ calculateNewLaneChange()

void GNEMoveElement::calculateNewLaneChange ( const GNEViewNet * viewNet,
const GNELane * originalLane,
const GNELane *& newLane,
double & laneOffset )
staticprivateinherited

calculate new lane change

Definition at line 388 of file GNEMoveElement.cpp.

References Position::distanceSquaredTo2D(), Position::distanceTo2D(), GNEHierarchicalElement::getChildLanes(), GNELane::getIndex(), GNELane::getLaneShape(), GNELane::getParentEdge(), GUISUMOAbstractView::getPositionInformation(), PositionVector::nearest_offset_to_point2D(), and PositionVector::positionAtOffset2D().

Referenced by commitMove(), and moveElement().

Here is the caller graph for this function:

◆ commitMove()

void GNEMoveElement::commitMove ( const GNEViewNet * viewNet,
GNEMoveOperation * moveOperation,
const GNEMoveOffset & offset,
GNEUndoList * undoList )
staticinherited

commit move element for the given offset

Definition at line 181 of file GNEMoveElement.cpp.

References PositionVector::add(), GNEMoveOperation::allowChangeLane, calculateExtrapolatedVector(), calculateLanePosition(), calculateLanePositions(), calculateNewLaneChange(), GNEMoveOperation::clickedFirstLane, commitMoveShape(), GNEMoveOperation::firstLane, GNEMoveResult::firstLaneOffset, GNEMoveOperation::firstPosition, GNEMoveOperation::geometryPointsToMove, GNEMoveResult::geometryPointsToMove, GNEMoveFrame::getCommonMoveOptions(), GNEMoveFrame::CommonMoveOptions::getMergeGeometryPoints(), GNEViewParent::getMoveFrame(), GNEViewNet::getViewParent(), GNEMoveOperation::HEIGHT, Position::INVALID, INVALID_DOUBLE, GNEMoveOperation::lastLane, GNEMoveOperation::lastPosition, GNEMoveOperation::LENGTH, GNEMoveOperation::moveElement, GNEMoveResult::newFirstLane, GNEMoveResult::newFirstPos, GNEMoveResult::newLastLane, GNEMoveResult::newLastPos, GNEMoveOperation::operationType, GNEMoveOperation::originalGeometryPoints, GNEMoveOperation::originalShape, PositionVector::removeDoublePoints(), setMoveShape(), GNEMoveOperation::shapeToMove, GNEMoveResult::shapeToUpdate, GUISUMOAbstractView::snapToActiveGrid(), GNEMoveOperation::WIDTH, GNEMoveOffset::x, GNEMoveOffset::y, and GNEMoveOffset::z.

Referenced by GNEViewNetHelper::MoveMultipleElementModul::finishMoveSelection(), GNEViewNetHelper::MoveSingleElementModul::finishMoveSingleElement(), GNEViewNetHelper::MoveMultipleElementModul::moveSelection(), and GNEViewNetHelper::MoveSingleElementModul::moveSingleElement().

Here is the caller graph for this function:

◆ commitMoveShape()

void GNEMoveElementView::commitMoveShape ( const GNEMoveResult & moveResult,
GNEUndoList * undoList )
overrideprivatevirtual

commit move shape

Implements GNEMoveElement.

Reimplemented in GNEMoveElementViewResizable.

Definition at line 153 of file GNEMoveElementView.cpp.

References GNEUndoList::begin(), GNEChange_Attribute::changeAttribute(), GNEUndoList::end(), GNEMoveElement::myMovedElement, GNEMoveResult::shapeToUpdate, SUMO_ATTR_POSITION, TLF, and toString().

Referenced by GNEMoveElementViewResizable::commitMoveShape().

Here is the caller graph for this function:

◆ getEditShapeOperation()

GNEMoveOperation * GNEMoveElement::getEditShapeOperation ( const GUIGlObject * obj,
const PositionVector originalShape,
const bool maintainShapeClosed )
protectedinherited

calculate move shape operation

Definition at line 71 of file GNEMoveElement.cpp.

References gViewObjectsHandler, PositionVector::indexOfClosest(), PositionVector::insertAtClosest(), and Position::INVALID.

Referenced by GNEMoveElementConnection::getMoveOperation(), GNEMoveElementCrossing::getMoveOperation(), GNEMoveElementEdge::getMoveOperation(), GNEMoveElementJunction::getMoveOperation(), GNEMoveElementLane::getMoveOperation(), and GNEMoveElementShape::getMoveOperation().

Here is the caller graph for this function:

◆ getMoveOperation()

GNEMoveOperation * GNEMoveElementView::getMoveOperation ( )
overridevirtual

get move operation

Note
returned GNEMoveOperation can be nullptr

Implements GNEMoveElement.

Reimplemented in GNEMoveElementViewResizable.

Definition at line 44 of file GNEMoveElementView.cpp.

References myPosOverView.

Referenced by GNEMoveElementViewResizable::getMoveOperation().

Here is the caller graph for this function:

◆ getMovingAttribute()

std::string GNEMoveElementView::getMovingAttribute ( SumoXMLAttr key) const
overridevirtual

get moving attribute

Implements GNEMoveElement.

Definition at line 51 of file GNEMoveElementView.cpp.

References GNEMoveElement::myMovedElement, myPosAttr, myPosOverView, and toString().

◆ getMovingAttributeDouble()

double GNEMoveElementView::getMovingAttributeDouble ( SumoXMLAttr key) const
overridevirtual

get moving attribute double

Implements GNEMoveElement.

Definition at line 61 of file GNEMoveElementView.cpp.

References GNEMoveElement::myMovedElement.

◆ getMovingAttributePosition()

Position GNEMoveElementView::getMovingAttributePosition ( SumoXMLAttr key) const
overridevirtual

get moving attribute position

Implements GNEMoveElement.

Definition at line 67 of file GNEMoveElementView.cpp.

References GNEMoveElement::myMovedElement, myPosAttr, and myPosOverView.

◆ getMovingAttributePositionVector()

PositionVector GNEMoveElementView::getMovingAttributePositionVector ( SumoXMLAttr key) const
overridevirtual

get moving attribute positionVector

Implements GNEMoveElement.

Definition at line 77 of file GNEMoveElementView.cpp.

References GNEMoveElement::myMovedElement.

◆ isMovingAttributeValid()

bool GNEMoveElementView::isMovingAttributeValid ( SumoXMLAttr key,
const std::string & value ) const
overridevirtual

check if the given moving attribute is valid

Implements GNEMoveElement.

Definition at line 93 of file GNEMoveElementView.cpp.

References GNEAttributeCarrier::canParse(), invalid_return< std::string >::value, GNEMoveElement::myMovedElement, and myPosAttr.

◆ moveElement()

◆ operator=()

GNEMoveElementView & GNEMoveElementView::operator= ( const GNEMoveElementView & )
privatedelete

Invalidated assignment operator.

References GNEMoveElementView().

◆ removeGeometryPoint()

void GNEMoveElementView::removeGeometryPoint ( const Position clickedPosition,
GNEUndoList * undoList )
overridevirtual

remove geometry point in the clicked position

Implements GNEMoveElement.

Definition at line 113 of file GNEMoveElementView.cpp.

◆ setMoveShape()

void GNEMoveElementView::setMoveShape ( const GNEMoveResult & moveResult)
overrideprivatevirtual

set move shape

Implements GNEMoveElement.

Reimplemented in GNEMoveElementViewResizable.

Definition at line 145 of file GNEMoveElementView.cpp.

References GNEMoveElement::myMovedElement, myPosOverView, and GNEMoveResult::shapeToUpdate.

Referenced by GNEMoveElementViewResizable::setMoveShape().

Here is the caller graph for this function:

◆ setMovingAttribute() [1/2]

void GNEMoveElementView::setMovingAttribute ( SumoXMLAttr key,
const std::string & value )
overridevirtual

◆ setMovingAttribute() [2/2]

void GNEMoveElementView::setMovingAttribute ( SumoXMLAttr key,
const std::string & value,
GNEUndoList * undoList )
overridevirtual

set moving attribute (using undo-list)

Implements GNEMoveElement.

Definition at line 83 of file GNEMoveElementView.cpp.

References GNEChange_Attribute::changeAttribute(), invalid_return< std::string >::value, GNEMoveElement::myMovedElement, and myPosAttr.

◆ writeMoveAttributes()

◆ GNEMoveElementViewResizable

resizable needs access

Definition at line 35 of file GNEMoveElementView.h.

References GNEMoveElementViewResizable.

Referenced by GNEMoveElementViewResizable.

Field Documentation

◆ myAttributesFormat

AttributesFormat GNEMoveElementView::myAttributesFormat = AttributesFormat::POSITION
private

pos attributes format

Definition at line 102 of file GNEMoveElementView.h.

Referenced by GNEMoveElementView(), and writeMoveAttributes().

◆ myMovedElement

GNEAttributeCarrier* GNEMoveElement::myMovedElement = nullptr
protectedinherited

pointer to element

Definition at line 96 of file GNEMoveElement.h.

Referenced by GNEMoveElementLaneDouble::commitMoveShape(), GNEMoveElementLaneSingle::commitMoveShape(), GNEMoveElementShape::commitMoveShape(), GNEMoveElementView::commitMoveShape(), GNEMoveElementViewResizable::commitMoveShape(), GNEMoveElementLaneDouble::fixMovingProblem(), GNEMoveElementLaneSingle::fixMovingProblem(), GNEMoveElementLaneSingle::getFixedPositionOverLane(), GNEMoveElementLaneDouble::getMoveOperation(), GNEMoveElementLaneSingle::getMoveOperation(), GNEMoveElementShape::getMoveOperation(), GNEMoveElementViewResizable::getMoveOperation(), getMovingAttribute(), GNEMoveElementConnection::getMovingAttribute(), GNEMoveElementCrossing::getMovingAttribute(), GNEMoveElementEdge::getMovingAttribute(), GNEMoveElementJunction::getMovingAttribute(), GNEMoveElementLane::getMovingAttribute(), GNEMoveElementLaneDouble::getMovingAttribute(), GNEMoveElementLaneSingle::getMovingAttribute(), GNEMoveElementPlan::getMovingAttribute(), GNEMoveElementPlanParent::getMovingAttribute(), GNEMoveElementShape::getMovingAttribute(), GNEMoveElementVehicle::getMovingAttribute(), GNEMoveElementView::getMovingAttribute(), getMovingAttributeDouble(), GNEMoveElementConnection::getMovingAttributeDouble(), GNEMoveElementCrossing::getMovingAttributeDouble(), GNEMoveElementEdge::getMovingAttributeDouble(), GNEMoveElementJunction::getMovingAttributeDouble(), GNEMoveElementLane::getMovingAttributeDouble(), GNEMoveElementLaneDouble::getMovingAttributeDouble(), GNEMoveElementLaneSingle::getMovingAttributeDouble(), GNEMoveElementPlan::getMovingAttributeDouble(), GNEMoveElementPlanParent::getMovingAttributeDouble(), GNEMoveElementShape::getMovingAttributeDouble(), GNEMoveElementVehicle::getMovingAttributeDouble(), GNEMoveElementView::getMovingAttributeDouble(), GNEMoveElementConnection::getMovingAttributePosition(), GNEMoveElementCrossing::getMovingAttributePosition(), GNEMoveElementEdge::getMovingAttributePosition(), GNEMoveElementJunction::getMovingAttributePosition(), GNEMoveElementLane::getMovingAttributePosition(), GNEMoveElementLaneDouble::getMovingAttributePosition(), GNEMoveElementLaneSingle::getMovingAttributePosition(), GNEMoveElementPlan::getMovingAttributePosition(), GNEMoveElementPlanParent::getMovingAttributePosition(), GNEMoveElementShape::getMovingAttributePosition(), GNEMoveElementVehicle::getMovingAttributePosition(), GNEMoveElementView::getMovingAttributePosition(), GNEMoveElementConnection::getMovingAttributePositionVector(), GNEMoveElementCrossing::getMovingAttributePositionVector(), GNEMoveElementEdge::getMovingAttributePositionVector(), GNEMoveElementJunction::getMovingAttributePositionVector(), GNEMoveElementLane::getMovingAttributePositionVector(), GNEMoveElementLaneDouble::getMovingAttributePositionVector(), GNEMoveElementLaneSingle::getMovingAttributePositionVector(), GNEMoveElementPlan::getMovingAttributePositionVector(), GNEMoveElementPlanParent::getMovingAttributePositionVector(), GNEMoveElementShape::getMovingAttributePositionVector(), GNEMoveElementVehicle::getMovingAttributePositionVector(), GNEMoveElementView::getMovingAttributePositionVector(), GNEMoveElementLaneDouble::getMovingProblem(), GNEMoveElementLaneSingle::getMovingProblem(), GNEMoveElement(), GNEMoveElementLaneDouble::isMoveElementValid(), GNEMoveElementLaneSingle::isMoveElementValid(), isMovingAttributeValid(), GNEMoveElementConnection::isMovingAttributeValid(), GNEMoveElementCrossing::isMovingAttributeValid(), GNEMoveElementEdge::isMovingAttributeValid(), GNEMoveElementJunction::isMovingAttributeValid(), GNEMoveElementLane::isMovingAttributeValid(), GNEMoveElementLaneDouble::isMovingAttributeValid(), GNEMoveElementLaneSingle::isMovingAttributeValid(), GNEMoveElementPlan::isMovingAttributeValid(), GNEMoveElementPlanParent::isMovingAttributeValid(), GNEMoveElementShape::isMovingAttributeValid(), GNEMoveElementVehicle::isMovingAttributeValid(), GNEMoveElementView::isMovingAttributeValid(), GNEMoveElementShape::removeGeometryPoint(), GNEMoveElementLaneDouble::setMoveShape(), GNEMoveElementLaneSingle::setMoveShape(), GNEMoveElementShape::setMoveShape(), GNEMoveElementView::setMoveShape(), setMovingAttribute(), setMovingAttribute(), GNEMoveElementConnection::setMovingAttribute(), GNEMoveElementConnection::setMovingAttribute(), GNEMoveElementCrossing::setMovingAttribute(), GNEMoveElementCrossing::setMovingAttribute(), GNEMoveElementEdge::setMovingAttribute(), GNEMoveElementEdge::setMovingAttribute(), GNEMoveElementJunction::setMovingAttribute(), GNEMoveElementJunction::setMovingAttribute(), GNEMoveElementLane::setMovingAttribute(), GNEMoveElementLane::setMovingAttribute(), GNEMoveElementLaneDouble::setMovingAttribute(), GNEMoveElementLaneDouble::setMovingAttribute(), GNEMoveElementLaneSingle::setMovingAttribute(), GNEMoveElementLaneSingle::setMovingAttribute(), GNEMoveElementPlan::setMovingAttribute(), GNEMoveElementPlan::setMovingAttribute(), GNEMoveElementPlanParent::setMovingAttribute(), GNEMoveElementPlanParent::setMovingAttribute(), GNEMoveElementShape::setMovingAttribute(), GNEMoveElementShape::setMovingAttribute(), GNEMoveElementVehicle::setMovingAttribute(), GNEMoveElementVehicle::setMovingAttribute(), GNEMoveElementView::setMovingAttribute(), GNEMoveElementView::setMovingAttribute(), GNEMoveElementLaneDouble::setSize(), GNEMoveElementLaneDouble::writeMoveAttributes(), GNEMoveElementLaneSingle::writeMoveAttributes(), and GNEMoveElementView::writeMoveAttributes().

◆ myMovingLateralOffset

double GNEMoveElement::myMovingLateralOffset = 0
inherited

◆ myPosAttr

SumoXMLAttr GNEMoveElementView::myPosAttr
private

◆ myPosOverView

Position& GNEMoveElementView::myPosOverView
private

The documentation for this class was generated from the following files: