58 #ifdef CHECK_MEMORY_LEAKS 74 myAdditionalSetParent(additionalSetParent),
75 myBlockIconRotation(0),
77 myInspectionable(true),
82 myAdditionalDialog(NULL) {
221 std::vector<SumoXMLAttr> attributes =
getAttrs();
223 if (std::find(attributes.begin(), attributes.end(),
SUMO_ATTR_LANE) != attributes.end()) {
229 new FXMenuCommand(ret, (
"inner position: " +
toString(innerPos)).c_str(), 0, 0, 0);
233 new FXMenuCommand(ret, (
"lane position: " +
toString(innerPos + lanePos)).c_str(), 0, 0, 0);
238 }
else if (std::find(attributes.begin(), attributes.end(),
SUMO_ATTR_EDGE) != attributes.end()) {
244 new FXMenuCommand(ret, (
"inner position: " +
toString(innerPos)).c_str(), 0, 0, 0);
248 new FXMenuCommand(ret, (
"edge position: " +
toString(innerPos + edgePos)).c_str(), 0, 0, 0);
259 new FXMenuSeparator(ret);
260 if (additionalSet->getNumberOfAdditionalChilds() > 0) {
261 new FXMenuCommand(ret, (
"number of additional childs: " +
toString(additionalSet->getNumberOfAdditionalChilds())).c_str(), 0, 0, 0);
262 }
else if (additionalSet->getNumberOfEdgeChilds() > 0) {
263 new FXMenuCommand(ret, (
"number of edge childs: " +
toString(additionalSet->getNumberOfEdgeChilds())).c_str(), 0, 0, 0);
264 }
else if (additionalSet->getNumberOfLaneChilds() > 0) {
265 new FXMenuCommand(ret, (
"number of lane childs: " +
toString(additionalSet->getNumberOfLaneChilds())).c_str(), 0, 0, 0);
268 new FXMenuSeparator(ret);
270 dynamic_cast<GNEViewNet&
>(parent).markPopupPosition();
280 std::vector<SumoXMLAttr> attributes =
getAttrs();
284 for (std::vector<SumoXMLAttr>::iterator i = attributes.begin(); i != attributes.end(); i++) {
312 }
else if (lane != NULL) {
334 glRotated(180, 0, 0, 1);
virtual void openAdditionalDialog()
open Additional Dialog
GNELane * getLane() const
get lane of additional, or NULL if additional isn't placed over a Lane
SumoXMLTag
Numbers representing SUMO-XML - element names.
GNEEdge * retrieveEdge(const std::string &id, bool failHard=true)
get edge by id
bool isAdditionalBlocked() const
Check if additional item is currently blocked (i.e. cannot be moved with mouse)
const std::string & getAdditionalID() const
returns the ID of additional
SUMOReal length() const
Returns the length.
GNELane * myLane
The lane this additional belongs NULL if additional doesnt' belongs to a lane.
bool myRotationLefthand
rotation depending of the option "Lefthand"
virtual const std::string & getParentName() const =0
Returns the name of the parent object (if any)
void removeAdditionalChild(GNEAdditional *additional)
remove additional child to this lane
PositionVector getShape() const
Returns additional element's shape.
void buildCenterPopupEntry(GUIGLObjectPopupMenu *ret, bool addSeparator=true)
Builds an entry which allows to center to the object.
bool isSelected(GUIGlObjectType type, GUIGlID id)
Returns the information whether the object with the given type and id is selected.
This lane is powered by an underlying GNEEdge and basically knows how to draw itself.
Copy typed object name - popup entry.
void commmitAdditionalGeometryMoved(const Position &oldPos, GNEUndoList *undoList)
updated geometry changes in the attributes of additional
GUIGLObjectPopupMenu * getPopUpMenu(GUIMainWindow &app, GUISUMOAbstractView &parent)
Returns an own popup-menu.
bool getBool(const std::string &name) const
Returns the boolean-value of the named option (only for Option_Bool)
void buildShowParamsPopupEntry(GUIGLObjectPopupMenu *ret, bool addSeparator=true)
Builds an entry which allows to open the parameter window.
An Element wich group additionalSet elements.
void buildPositionCopyEntry(GUIGLObjectPopupMenu *ret, bool addSeparator=true)
Builds an entry which allows to copy the cursor position if geo projection is used, also builds an entry for copying the geo-position.
#define UNUSED_PARAMETER(x)
A class that stores a 2D geometrical boundary.
virtual std::string getAttribute(SumoXMLAttr key) const =0
bool isAdditionalInspectionable() const
check if additional element is inspectionable (With GNEInspectorFrame)
static OptionsCont & getOptions()
Retrieves the options.
GNEAdditionalSet * getAdditionalSetParent() const
get additionalSet parent, or NULL if don't belongs to an additionalSet
SUMOReal nearest_offset_to_point2D(const Position &p, bool perpendicular=true) const
return the nearest offest to point 2D
Boundary getCenteringBoundary() const
Returns the boundary to which the view shall be centered in order to show the object.
GNEViewNet * myViewNet
The GNEViewNet this additional element belongs.
void addAdditionalChild(GNEAdditional *additional)
add additional child to this edge
bool showLockIcon() const
check if lock icon should be visible
void updateAdditionalID(const std::string &oldID, GNEAdditional *additional)
update additional ID in container
GUIGlObjectType getType() const
Returns the type of the object as coded in GUIGlObjectType.
void changeEdge(const std::string &edgeID)
change edge of additional
SUMOReal myBlockIconRotation
The rotation of the block icon.
bool myMovable
boolean to check if additional element is movable (with the mouse). By default true ...
GNEAdditional(const std::string &id, GNEViewNet *viewNet, Position pos, SumoXMLTag tag, GNEAdditionalSet *additionalSetParent=NULL, bool blocked=false)
Constructor.
void refreshAdditional(GNEAdditional *additional)
refreshes boundary information of an additional after a geometry update
Copy object name - popup entry.
PositionVector myShape
The shape of the additional element.
A point in 2D or 3D with translation and scaling methods.
void addAdditionalChild(GNEAdditional *additional)
add additional child to this lane
bool removeAdditionalGeometryChild(GNEAdditional *additional)
remove additional element to this set
GNELane * retrieveLane(const std::string &id, bool failHard=true)
get lane by id
void setBlockIconRotation(GNELane *lane=NULL)
bool addAdditionalChild(GNEAdditional *additional)
add additional element to this set
GUIParameterTableWindow * getParameterWindow(GUIMainWindow &app, GUISUMOAbstractView &parent)
Returns an own parameter window.
SUMOReal rotationDegreeAtOffset(SUMOReal pos) const
Returns the rotation at the given length.
SUMOReal x() const
Returns the x-position.
void drawLockIcon(SUMOReal size=0.5) const
draw lock icon
void setAdditionalID(const std::string &id)
set the ID of additional
virtual const std::string & getMicrosimID() const
Returns the id of the object as known to microsim.
std::vector< SumoXMLAttr > getAttrs() const
get vector of attributes
~GNEAdditional()
Destructor.
std::string toString(const T &t, std::streamsize accuracy=OUTPUT_ACCURACY)
void changeLane(const std::string &laneID)
change lane of additional
Position myBlockIconOffset
The offSet of the block icon.
A road/street connecting two junctions (netedit-version)
Boundary & grow(SUMOReal by)
extends the boundary by the given amount
GNEViewNet * getViewNet() const
Returns a pointer to GNEViewNet in which additional element is located.
const PositionVector & getShape() const
returns the shape of the lane
bool isAdditionalSelectable() const
check if additional element is selectable (With GNESelectorFrame)
bool myBlocked
boolean to check if additional element is blocked (i.e. cannot be moved with mouse) ...
const std::vector< GNELane * > & getLanes()
returns a reference to the lane vector
void moveAdditionalGeometry(const Position &offset)
change the position of the additional geometry
GNEAdditionalSet * myAdditionalSetParent
pointer to additional set parent, if belong to set
virtual void setMicrosimID(const std::string &newID)
Changes the microsimID of the object.
bool isAdditionalMovable() const
check if additional element is movable
SUMOReal getPositionRelativeToParametricLenght(SUMOReal position) const
void buildSelectionPopupEntry(GUIGLObjectPopupMenu *ret, bool addSeparator=true)
Builds an entry which allows to (de)select the object.
GNENet * getNet() const
get the net object
GUIGlID getGlID() const
Returns the numerical id of the object.
bool mySelectable
boolean to check if additional element is selectable (With GNESelectorFrame). By default true ...
Position myPosition
The position in which this additional element is located.
void setPositionInView(const Position &pos)
set new position in the view
Position getPositionInformation() const
Returns the cursor's x/y position within the network.
static bool isUnique(SumoXMLAttr attr)
whether an attribute is unique (may not be edited for a multi-selection)
Boundary getBoxBoundary() const
Returns a boundary enclosing this list of lines.
bool isAdditionalSelected() const
virtual void updateGeometry()=0
update pre-computed geometry information
void removeAdditionalChild(GNEAdditional *additional)
remove additional child from this edge
bool myInspectionable
boolean to check if additional element is inspectionable (With GNEInspectorFrame). By default true
GNEEdge * myEdge
The edge this additional belongs NULL if additional doesnt' belongs to a edge.
static GUIGlID getGif(GUITexture which)
returns a texture Gif previously defined in the enum GUITexture
SUMOReal y() const
Returns the y-position.
void mkItem(const char *name, bool dynamic, ValueSource< unsigned > *src)
Adds a row which obtains its value from an unsigned-ValueSource.
GUISelectedStorage gSelected
A global holder of selected objects.
void closeBuilding()
Closes the building of the table.
A window containing a gl-object's parameter.
static void drawTexturedBox(int which, SUMOReal size)
Draws a named texture as a box with the given size.
GNEEdge * getEdge() const
get edge of additional, or NULL if additional isn't placed over an edge
void buildPopupHeader(GUIGLObjectPopupMenu *ret, GUIMainWindow &app, bool addSeparator=true)
Builds the header.
Position myBlockIconPosition
position of the block icon
SumoXMLTag getTag() const
get Tag assigned to this object