115 FXGLVisual* glVis, FXGLCanvas* share, FXToolBar* toolBar);
153 long onKeyPress(FXObject* o, FXSelector sel,
void* data);
156 long onKeyRelease(FXObject* o, FXSelector sel,
void* data);
452 movingStartPos(false),
454 movingIndexShape(-1) {}
482 attributeCarrier(nullptr),
495 void updateObjectUnderCursor(
GUIGlID glIDObject,
GNEPoly* editedPolyShape, FXEvent* ev);
498 void swapLane2Edge();
501 bool shiftKeyPressed()
const;
504 bool controlKeyPressed()
const;
554 selectingUsingRectangle(false) {}
557 void processSelection(
GNEViewNet* viewNet,
bool shiftKeyPressed);
569 std::string reportDimensions();
576 testingEnabled(
OptionsCont::getOptions().getBool(
"gui-testing")),
void startEditCustomShape(GNENetElement *element, const PositionVector &shape, bool fill)
start edit custom shape
void buildColorRainbow(GUIColorScheme &scheme, int active, GUIGlObjectType objectType)
recalibrate color scheme according to the current value range
long onCmdResetEdgeEndpoint(FXObject *, FXSelector, void *)
change geometry endpoint
GNEViewParent * myViewParent
view parent
FXMenuCheck * getMenuCheckShowGrid() const
get grid button
testingMode myTestingMode
variable used to save variables related with testing mode
long onCmdRemoveRestrictedLaneGreenVerge(FXObject *, FXSelector, void *)
remove restricted lane for all vehicles
GNEPoly * polyToMove
the poly of which geometry is being moved
long onCmdResetJunctionShape(FXObject *, FXSelector, void *)
reset junction shape
GNEEdge * edgeToMove
the edge of which geometry is being moved
const GNEAttributeCarrier * getACUnderCursor() const
get AttributeCarrier under cursor
bool selectEdges()
whether inspection, selection and inversion should apply to edges or to lanes
GNEViewNet & operator=(const GNEViewNet &)=delete
Invalidated assignment operator.
long onCmdAddRestrictedLaneSidewalk(FXObject *, FXSelector, void *)
Add restricted lane for pedestrians.
long onCmdAddRestrictedLaneBikelane(FXObject *, FXSelector, void *)
Add restricted lane for bikes.
GNEAdditional * additional
additional element
void abortOperation(bool clearSelection=true)
abort current edition operation
void deleteSelectedJunctions()
delete all currently selected junctions
bool setColorScheme(const std::string &name)
set color scheme
long onCmdSetModeAdditional(FXObject *, FXSelector, void *)
called when user press the button for additional mode
bool restrictLane(SUMOVehicleClass vclass)
restrict lane
long onCmdDuplicateLane(FXObject *, FXSelector, void *)
duplicate selected lane
long onRightBtnPress(FXObject *, FXSelector, void *)
called when user press mouse's right button
bool myShowConnections
whether show connections has been activated once
SUMOVehicleClass
Definition of vehicle classes to differ between different lane usage and authority types...
StringBijection< EditMode > myEditModeNames
since we cannot switch on strings we map the mode names to an enum
long onMouseMove(FXObject *, FXSelector, void *)
called when user moves mouse
Mode for editing connection prohibits.
GNEViewNet()
FOX needs this.
MovedItems myMovedItems
variable use to save pointers to moved elements
void beginMoveSelection(GNEAttributeCarrier *originAC, const Position &originPosition)
begin move selection
long onCmdAddSelected(FXObject *, FXSelector, void *)
select AC under cursor
bool mySelectEdges
flag to check if select edges is enabled
long onCmdSetModeSelect(FXObject *, FXSelector, void *)
called when user press the button for select mode
GUIGlObjectType glType
GUI GL object type.
std::map< GNEEdge *, MovingEdges > myOriginShapesMovedPartialShapes
void hotkeyFocusFrame()
handle focus frame keypress
const GNEAttributeCarrier * myACUnderCursor
current AttributeCarrier under Mouse position
FXMenuCheck * myMenuCheckShowGrid
show grid button
void stopEditCustomShape()
edit edit shape
Position movingReference
variable for calculating moving offset (Used when user doesn't click exactly over the center of shape...
FXMenuCheck * myChainCreateEdge
whether the endpoint for a created edge should be set as the new source
std::set< GNEEdge * > getEdgesAtPopupPosition()
try to retrieve multiple edges at popup position
long onCmdSplitEdge(FXObject *, FXSelector, void *)
split edge at cursor position
GNEShape * shape
shape element (Poly and POIs)
long onCmdToogleSelectEdges(FXObject *, FXSelector, void *)
toogle selet edges
long onCmdAddRestrictedLaneBuslane(FXObject *, FXSelector, void *)
Add restricted lane for buses.
GNEViewParent * getViewParent() const
get the net object
MoveSingleElementValues myMoveSingleElementValues
variable used to save variables related with movement of single elements
bool myShiftKeyPressed
flag to check if shift key is pressed (can be changed after Key Press/Released and mouse Move) ...
Position selectionCorner1
firstcorner of the rectangle-selection
void setEditMode(EditMode mode)
set edit mode
MFXCheckableButton * myEditModeSelect
chekable button for edit mode select
long onCmdOpenPolygon(FXObject *, FXSelector, void *)
open closed polygon
GNEConnection * connection
connection
bool movingStartPos
bool to indicate that startPos are being moved
GNEAdditional * getAdditionalAtPopupPosition()
try to retrieve a additional at popup position
ObjectsUnderCursor myObjectsUnderCursor
variable use to save all pointers to objects under cursor after a click
long onCmdAddRestrictedLaneGreenVerge(FXObject *, FXSelector, void *)
Add restricted lane for all vehicles.
MFXCheckableButton * myEditModeMove
chekable button for edit mode move
int movingIndexShape
current index of shape that are being moved
MFXCheckableButton * myEditModeDelete
chekable button for edit mode delete
A NBNetBuilder extended by visualisation and editing capabilities.
This lane is powered by an underlying GNEEdge and basically knows how to draw itself.
PositionVector movingOriginalShape
Shape of elements before moving (needed for commmit shape changes)
long onCmdStraightenEdgesElevation(FXObject *, FXSelector, void *)
interpolate z values linear between junctions
void setEditModeFromHotkey(FXushort selid)
sets edit mode (from hotkey)
long onKeyPress(FXObject *o, FXSelector sel, void *data)
called when user press a key
long onCmdRemoveRestrictedLaneBikelane(FXObject *, FXSelector, void *)
remove restricted lane for bikes
long onCmdRestrictLaneGreenVerge(FXObject *, FXSelector, void *)
restrict lane to all vehicles
long onCmdEditConnectionShape(FXObject *, FXSelector, void *)
edit connection shape
ObjectsUnderCursor()
constructor
MFXCheckableButton * myEditModeProhibition
checkable button for edit mode polygon
void moveSelection(const Position &offset)
move selection
PositionVector originalShape
long onCmdRemoveSelected(FXObject *, FXSelector, void *)
unselect AC under cursor
long onCmdResetConnections(FXObject *, FXSelector, void *)
reset junction connections
void updateControls()
update control contents after undo/redo or recompute
EditMode myPreviousEditMode
the previous edit mode before edit junction's shapes
std::map< GNEJunction *, Position > myOriginPositionOfMovedJunctions
Selected Junctions that are being moved.
FXEvent * eventInfo
information of event of onLeftBtnPress
FXMenuCheck * myMenuCheckChangeAllPhases
menu check to set change all phases
void deleteSelectedShapes()
delete all currently selected shapes
GNEAdditional * additionalToMove
the stoppingPlace element which shape is being moved
A class that stores a 2D geometrical boundary.
A single child window which contains a view of the simulation area.
bool mergeJunctions(GNEJunction *moved, const Position &oldPos)
try to merge moved junction with another junction in that spot return true if merging did take place ...
int testingWidth
Width of viewNet in testing mode.
bool testingEnabled
flag to enable or disable testing mode
FXMenuCheck * myMenuCheckHideConnections
menu check to hide connections in connect mode
bool changeAllPhases() const
change all phases
long onCmdSetModeCrossing(FXObject *, FXSelector, void *)
called when user press the button for crossing mode
SelectingArea mySelectingArea
variable used to save variables related with selecting areas
void buildEditModeControls()
adds controls for setting the edit mode
FXMenuCheck * myMenuCheckMoveElevation
apply movement to elevation
GNEUndoList * getUndoList() const
get the undoList object
long onLeftBtnPress(FXObject *, FXSelector, void *)
long onRightBtnRelease(FXObject *, FXSelector, void *)
called when user releases mouse's right button
long onCmdSimplifyShape(FXObject *, FXSelector, void *)
simply shape of current polygon
PositionVector movingOriginalShape2
bool showLockIcon() const
check if lock icon should be visible
void deleteSelectedConnections()
delete all currently selected connections
mode for inspecting object attributes
FXMenuCheck * myMenuCheckShowConnections
menu check to show connections
void deleteSelectedCrossings()
delete all currently selected crossings
This object is responsible for drawing a shape and for supplying a a popup menu. Messages are routete...
virtual ~GNEViewNet()
destructor
GNEEdge * getEdgeAtPopupPosition()
try to retrieve an edge at popup position
long onCmdRemoveRestrictedLaneSidewalk(FXObject *, FXSelector, void *)
remove restricted lane for pedestrians
int testingHeight
Height of viewNet in testing mode.
long onCmdSetModeMove(FXObject *, FXSelector, void *)
called when user press the button for move mode
A point in 2D or 3D with translation and scaling methods.
GNEPOI * getPOIAtPopupPosition()
try to retrieve a POILane at popup position
long onCmdReplaceJunction(FXObject *, FXSelector, void *)
replace node by geometry
long onCmdClearConnections(FXObject *, FXSelector, void *)
clear junction connections
FXMenuCheck * myMenuCheckSelectEdges
menu check to select only edges
long onCmdRestrictLaneBuslane(FXObject *, FXSelector, void *)
restrict lane to buslanes
FXToolBar * myToolbar
a reference to the toolbar in myParent
SelectingArea()
default constructor
long onCmdToogleShowConnection(FXObject *, FXSelector, void *)
toogle show connections
MFXCheckableButton * myEditModeCreateEdge
bool showJunctionAsBubbles() const
return true if junction must be showed as bubbles
bool removeRestrictedLane(SUMOVehicleClass vclass)
remove restricted lane
long onCmdSplitEdgeBidi(FXObject *, FXSelector, void *)
split edge at cursor position
bool autoSelectNodes()
whether to autoselect nodes or to lanes
long onCmdSetModeProhibition(FXObject *, FXSelector, void *)
called when user press the button for polygon mode
MFXCheckableButton * myEditModeTrafficLight
chekable button for edit mode traffic light
GNECrossing * crossing
crossing
mode for selecting objects
MFXCheckableButton * myEditModeAdditional
chekable button for edit mode additional
GNEAttributeCarrier * attributeCarrier
attribute carrier
struct used to group all pointers to moved elements
std::map< GNEEdge *, PositionVector > myOriginShapesMovedEntireShapes
Selected Edges that are being moved < Edge, PositionVector >
struct used to group all variables related with selecting using a square or polygon ...
long onCmdEditEdgeEndpoint(FXObject *, FXSelector, void *)
change geometry endpoint
long onCmdResetLaneCustomShape(FXObject *, FXSelector, void *)
reset custom shapes of selected lanes
GNEConnection * getConnectionAtPopupPosition()
try to retrieve a connection at popup position
void doInit()
called after some features are already initialized
struct used to group all variables related with movement of single elements
FXMenuCheck * myAutoCreateOppositeEdge
long onCmdSplitJunction(FXObject *, FXSelector, void *)
split junction into multiple junctions
void setSelectionScaling(double selectionScale)
set selection scaling
EditMode getCurrentEditMode() const
get the current edit mode
MFXCheckableButton * myEditModeInspect
chekable button for edit mode inspect
FXMenuCheck * myMenuCheckExtendToEdgeNodes
menu check to extend to edge nodes
long onCmdClosePolygon(FXObject *, FXSelector, void *)
close opened polygon
A road/street connecting two junctions (netedit-version)
long onKeyRelease(FXObject *o, FXSelector sel, void *data)
called when user release a key
long onCmdRemoveRestrictedLaneBuslane(FXObject *, FXSelector, void *)
remove restricted lane for bus
GNEJunction * getJunctionAtPopupPosition()
try to retrieve a junction at popup position
long onCmdSmoothEdgesElevation(FXObject *, FXSelector, void *)
smooth elevation with regard to adjoining edges
Mode for editing Polygons.
GNENetElement * netElement
net element
FXMenuCheck * myMenuCheckWarnAboutMerge
whether we should warn about merging junctions
void setACUnderCursor(const GNEAttributeCarrier *AC)
set attributeCarrier under cursor
void buildSelectionACPopupEntry(GUIGLObjectPopupMenu *ret, GNEAttributeCarrier *AC)
Builds an entry which allows to (de)select the object.
class used to group all variables related with objects under cursor after a click over view ...
long onCmdDeleteGeometryPoint(FXObject *, FXSelector, void *)
delete the closes geometry point
FXMenuCheck * myMenuCheckShowBubbleOverJunction
show connection as buuble in "Move" mode.
bool selectingUsingRectangle
whether we have started rectangle-selection
An Element which don't belongs to GNENet but has influency in the simulation.
MFXCheckableButton * myEditModeConnection
chekable button for edit mode connection
bool showConnections()
show connections over junctions
GNEJunction * junction
junction
long onCmdReverseEdge(FXObject *, FXSelector, void *)
reverse edge
GNEPOI * poiToMove
the poi which is being moved
Position movingOriginalPosition
original Position of element before moving (needed for commmit position changes)
long onCmdSetModeTLS(FXObject *, FXSelector, void *)
called when user press the button for traffic lights mode
struct used to group all variables related with testing
int doPaintGL(int mode, const Boundary &bound)
do paintGL
GNEJunction * myCreateEdgeSource
source junction for new edge 0 if no edge source is selected an existing (or newly created) junction ...
A storage for options typed value containers)
long onCmdOpenAdditionalDialog(FXObject *, FXSelector, void *)
open additional dialog
GNEJunction * junctionToMove
the Junction to be moved.
void deleteSelectedAdditionals()
delete all currently selected additionals
GNECrossing * getCrossingAtPopupPosition()
try to retrieve a crossing at popup position
long onCmdSmoothEdges(FXObject *, FXSelector, void *)
smooth geometry
GNENet * getNet() const
get the net object
Position selectionCorner2
second corner of the rectangle-selection
void updateModeSpecificControls()
updates mode specific controls
MFXCheckableButton * myEditModeCrossing
chekable button for edit mode crossing
long onCmdEditCrossingShape(FXObject *, FXSelector, void *)
edit crossing shape
void setStatusBarText(const std::string &text)
set staturBar text
long onCmdSetModeConnect(FXObject *, FXSelector, void *)
called when user press the button for connect mode
Mode for editing additionals.
StringBijection< EditMode > myEditAdditionalModeNames
stringBijection for edit additional mode names
virtual void buildViewToolBars(GUIGlChildWindow &)
builds the view toolbars
long onCmdSetModePolygon(FXObject *, FXSelector, void *)
called when user press the button for polygon mode
Mode for editing crossing.
long onCmdStraightenEdges(FXObject *, FXSelector, void *)
makes selected edges straight
long onCmdSetModeInspect(FXObject *, FXSelector, void *)
called when user press the button for inspect mode
void finishMoveSelection()
finish moving selection
mode for connecting lanes
bool myMovingSelection
whether a selection is being moved
mode for creating new edges
long onCmdSetFirstGeometryPoint(FXObject *, FXSelector, void *)
set as first geometry point the closes geometry point
Position originalPosition
GNELane * getLaneAtPopupPosition()
try to retrieve a lane at popup position
long onCmdToogleShowBubbles(FXObject *, FXSelector, void *)
toogle show bubbles
long onCmdTransformPOI(FXObject *, FXSelector, void *)
Transform POI to POILane, and viceversa.
void hotkeyDel()
handle del keypress
long onCmdAddReversedEdge(FXObject *, FXSelector, void *)
add reversed edge
GNEPoly * myEditShapePoly
GNENet * myNet
Pointer to current net. (We are not responsible for deletion)
void hotkeyEnter()
handle enter keypress
long onCmdRestrictLaneBikelane(FXObject *, FXSelector, void *)
restrict lane to bikes
void deleteSelectedLanes()
delete all currently selected lanes
MoveSingleElementValues()
constructor
long onCmdEditJunctionShape(FXObject *, FXSelector, void *)
edit junction shape
long onLeftBtnRelease(FXObject *, FXSelector, void *)
called when user releases mouse's left button
long onCmdShowGrid(FXObject *, FXSelector, void *)
toogle show grid
void processClick(FXEvent *e, void *data)
Auxiliar function used by onLeftBtnPress(...)
long onCmdSetModeCreateEdge(FXObject *, FXSelector, void *)
long onCmdSetModeDelete(FXObject *, FXSelector, void *)
called when user press the button for delete mode
void deleteSelectedEdges()
delete all currently selected edges
GNEUndoList * myUndoList
a reference to the undolist maintained in the application
EditMode myEditMode
the current edit mode
bool addRestrictedLane(SUMOVehicleClass vclass)
add restricted lane
testingMode()
default constructor
MFXCheckableButton * myEditModePolygon
chekable button for edit mode polygon
GNEFrame * myCurrentFrame
the current frame
long onCmdRestrictLaneSidewalk(FXObject *, FXSelector, void *)
restrict lane to pedestrians
GNEPoly * getPolygonAtPopupPosition()
try to retrieve a polygon at popup position